diff --git a/alphatrion/agents/claude.py b/alphatrion/agents/claude.py index 9be757af..989e1e7d 100644 --- a/alphatrion/agents/claude.py +++ b/alphatrion/agents/claude.py @@ -12,7 +12,13 @@ from alphatrion.storage import runtime from alphatrion.storage.sql_models import Status -from alphatrion.tracing.clickhouse_exporter import determine_semantic_kind +from alphatrion.tracing.span_processor import ( + SEMANTIC_KIND_CHAT, + SEMANTIC_KIND_REASONING, + SEMANTIC_KIND_TOOL, + SEMANTIC_KIND_UNKNOWN, +) +from alphatrion.utils.pricing import calculate_cost def handle_hook(hook_type: str): @@ -548,15 +554,6 @@ def process_transcript_incremental( # Turn is complete, create run and multiple LLM spans user_message = current_user_msg.get("message", {}) - # Calculate total tokens and duration from all messages - total_input_tokens = 0 - total_output_tokens = 0 - for msg in current_assistant_messages: - msg_usage = msg.get("message", {}).get("usage", {}) - total_input_tokens += msg_usage.get("input_tokens", 0) - total_output_tokens += msg_usage.get("output_tokens", 0) - total_tokens = total_input_tokens + total_output_tokens - # Calculate duration from timestamps # (first user message to last assistant message) duration = calculate_duration( @@ -598,11 +595,6 @@ def process_transcript_incremental( user_id=session.user_id, status=run_status, duration=duration, - usage={ - "input_tokens": total_input_tokens, - "output_tokens": total_output_tokens, - "total_tokens": total_tokens, - }, ) # Prepare user content (original user message only) @@ -1009,8 +1001,12 @@ def create_clickhouse_spans_for_turn( msg_content = [] msg_usage = message_data.get("usage", {}) - msg_input_tokens = msg_usage.get("input_tokens", 0) - msg_output_tokens = msg_usage.get("output_tokens", 0) + input_tokens = msg_usage.get("input_tokens", 0) + output_tokens = msg_usage.get("output_tokens", 0) + cache_creation_input_tokens = msg_usage.get( + "cache_creation_input_tokens", 0 + ) + cache_read_input_tokens = msg_usage.get("cache_read_input_tokens", 0) # Determine content type tool_use_blocks = [ @@ -1083,13 +1079,17 @@ def create_clickhouse_spans_for_turn( span_id = str(uuid.uuid4()).replace("-", "")[:16] # Determine semantic kind - semantic_kind = determine_semantic_kind({}, msg_content) + semantic_kind = determine_semantic_kind(msg_content) - # Token assignment: - # Each message has actual token usage from Claude API - # Assign actual tokens to each span for accurate aggregation - input_tokens = msg_input_tokens - output_tokens = msg_output_tokens + # Calculate cost for this span + span_costs = calculate_cost( + provider="anthropic", + model=model, + input_tokens=input_tokens, + output_tokens=output_tokens, + cache_creation_input_tokens=cache_creation_input_tokens, + cache_read_input_tokens=cache_read_input_tokens, + ) # Build span attributes span_attributes = { @@ -1099,7 +1099,25 @@ def create_clickhouse_spans_for_turn( "gen_ai.response.model": model, "gen_ai.usage.input_tokens": str(input_tokens), "gen_ai.usage.output_tokens": str(output_tokens), - "llm.usage.total_tokens": str(input_tokens + output_tokens), + "gen_ai.usage.cache_creation_input_tokens": str( + cache_creation_input_tokens + ), + "gen_ai.usage.cache_read_input_tokens": str(cache_read_input_tokens), + "llm.usage.total_tokens": str( + input_tokens + + output_tokens + + cache_creation_input_tokens + + cache_read_input_tokens + ), + "alphatrion.cost.total_tokens": str(span_costs["total_cost"]), + "alphatrion.cost.input_tokens": str(span_costs["input_cost"]), + "alphatrion.cost.output_tokens": str(span_costs["output_cost"]), + "alphatrion.cost.cache_creation_input_tokens": str( + span_costs["cache_creation_input_cost"] + ), + "alphatrion.cost.cache_read_input_tokens": str( + span_costs["cache_read_input_cost"] + ), } # Add prompt to first span only (where the user input is sent) @@ -1222,3 +1240,37 @@ def create_clickhouse_spans_for_turn( import logging logging.error(f"Failed to create ClickHouse spans: {e}", exc_info=True) + + +def determine_semantic_kind(content_blocks: list) -> str: + """Determine semantic kind of a message based on content blocks. + + - If contains tool_use block → "tool" + - Else if contains thinking block → "thinking" + - Else → "text" + + Args: + content_blocks: List of content blocks in the message + + Returns: + Semantic kind string + """ + has_tool_use = any( + isinstance(b, dict) and b.get("type") == "tool_use" for b in content_blocks + ) + if has_tool_use: + return SEMANTIC_KIND_TOOL + + has_thinking = any( + isinstance(b, dict) and b.get("type") == "thinking" for b in content_blocks + ) + if has_thinking: + return SEMANTIC_KIND_REASONING + + has_text = any( + isinstance(b, dict) and b.get("type") == "text" for b in content_blocks + ) + if has_text: + return SEMANTIC_KIND_CHAT + + return SEMANTIC_KIND_UNKNOWN diff --git a/alphatrion/experiment/base.py b/alphatrion/experiment/base.py index 311d33ca..11a77cfa 100644 --- a/alphatrion/experiment/base.py +++ b/alphatrion/experiment/base.py @@ -220,16 +220,9 @@ def _start( # to avoid confusion. if exp_obj and exp_obj.status != Status.COMPLETED: self._id = exp_obj.uuid - usage = exp_obj.usage - - # reset to running status, also need to reset the tokens. - if usage and "total_tokens" in usage: - # delete the tokens in the usage - set to None instead of empty dict - usage = None self._runtime._metadb.update_experiment( experiment_id=self._id, status=Status.RUNNING, - usage=usage, ) elif exp_obj and exp_obj.status == Status.COMPLETED: raise RuntimeError( diff --git a/alphatrion/runtime/runtime.py b/alphatrion/runtime/runtime.py index 726e4e6a..777ac5dc 100644 --- a/alphatrion/runtime/runtime.py +++ b/alphatrion/runtime/runtime.py @@ -1,10 +1,15 @@ # ruff: noqa: PLW0603 +import logging import os +import sys import uuid from alphatrion import envs from alphatrion.storage import runtime as storage_runtime from alphatrion.storage.sqlstore import SQLStore +from alphatrion.utils.pricing import load_pricing_config + +logger = logging.getLogger(__name__) __RUNTIME__ = None @@ -57,6 +62,15 @@ def __init__( team_id: uuid.UUID | None = None, org_id: uuid.UUID | None = None, ): + # Load pricing config at startup - exit if it fails + try: + load_pricing_config() + logger.info("Successfully loaded model pricing configuration") + except Exception as e: + logger.error(f"Failed to load pricing configuration: {e}") + logger.error("Application cannot start without valid pricing configuration") + sys.exit(1) + storage_runtime.init() self._metadb = storage_runtime.storage_runtime().metadb self._tracestore = storage_runtime.storage_runtime().tracestore diff --git a/alphatrion/server/cmd/app.py b/alphatrion/server/cmd/app.py index b8cccc5a..19c8ac10 100644 --- a/alphatrion/server/cmd/app.py +++ b/alphatrion/server/cmd/app.py @@ -109,8 +109,26 @@ async def receive(): return response +# Wrapper to convert context auth errors to HTTP exceptions +async def get_context_with_error_handling(request: Request): + """Wrap get_context to convert auth errors to proper HTTP status codes.""" + try: + return await get_context(request) + except ValueError as e: + # Authentication/authorization errors from get_context + error_msg = str(e).lower() + if ( + "authorization" in error_msg + or "token" in error_msg + or "missing" in error_msg + ): + raise HTTPException(status_code=401, detail=str(e)) + # Other validation errors + raise HTTPException(status_code=400, detail=str(e)) + + # Create GraphQL router with context -graphql_app = GraphQLRouter(schema, context_getter=get_context) +graphql_app = GraphQLRouter(schema, context_getter=get_context_with_error_handling) # Mount /graphql endpoint app.include_router(graphql_app, prefix="/graphql") diff --git a/alphatrion/server/cmd/main.py b/alphatrion/server/cmd/main.py index 0d49ae69..1ef894a8 100644 --- a/alphatrion/server/cmd/main.py +++ b/alphatrion/server/cmd/main.py @@ -204,7 +204,10 @@ def init_command(args): if len(password) < character_length_at_least: console.print( - Text(f"❌ Error: Password must be at least {character_length_at_least} characters", style="bold red") + Text( + f"❌ Error: Password must be at least {character_length_at_least} characters", + style="bold red", + ) ) return diff --git a/alphatrion/server/graphql/resolvers.py b/alphatrion/server/graphql/resolvers.py index 58a57228..4bfee0d9 100644 --- a/alphatrion/server/graphql/resolvers.py +++ b/alphatrion/server/graphql/resolvers.py @@ -12,7 +12,6 @@ from alphatrion.server.graphql.types import ArtifactFile from alphatrion.storage import runtime from alphatrion.storage.sql_models import ( - FINISHED_STATUS, AgentType, Status, ) @@ -25,7 +24,7 @@ ArtifactTag, CreateTeamInput, CreateUserInput, - DailyTokenUsage, + DailyCostUsage, Dataset, Experiment, GraphQLAgentTypeEnum, @@ -235,7 +234,6 @@ def list_experiments( duration=e.duration, status=GraphQLStatusEnum[Status(e.status).name], kind=GraphQLExperimentTypeEnum[GraphQLExperimentType(e.kind).name], - cost=e.cost, created_at=e.created_at, updated_at=e.updated_at, ) @@ -269,7 +267,6 @@ def get_experiment( duration=exp.duration, status=GraphQLStatusEnum[Status(exp.status).name], kind=GraphQLExperimentTypeEnum[GraphQLExperimentType(exp.kind).name], - cost=exp.cost, created_at=exp.created_at, updated_at=exp.updated_at, ) @@ -311,7 +308,6 @@ def list_runs( meta=r.meta, status=GraphQLStatusEnum[Status(r.status).name], duration=r.duration, - cost=r.cost, created_at=r.created_at, ) for r in runs @@ -336,7 +332,6 @@ def get_run(info: Info[GraphQLContext, None], id: strawberry.ID) -> Run | None: meta=run.meta, status=GraphQLStatusEnum[Status(run.status).name], duration=run.duration, - cost=run.cost, created_at=run.created_at, ) return None @@ -510,7 +505,6 @@ def list_runs_by_session_id( meta=r.meta, status=GraphQLStatusEnum[Status(r.status).name], duration=r.duration, - cost=r.cost, created_at=r.created_at, ) for r in runs @@ -635,11 +629,18 @@ def total_datasets(info: Info[GraphQLContext, None], team_id: strawberry.ID) -> return metadb.count_datasets(team_id=team_id) @staticmethod - def aggregate_team_tokens( + def aggregate_team_usage( info: Info[GraphQLContext, None], team_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, int | float]: if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } org_id = uuid.UUID(info.context.org_id) user_id = uuid.UUID(info.context.user_id) @@ -652,19 +653,32 @@ def aggregate_team_tokens( ) trace_store = runtime.storage_runtime().tracestore - result = trace_store.get_llm_tokens_by_team_id(org_id=org_id, team_id=team_id) - # get_llm_tokens_by_team_id returns a list with one dict + result = trace_store.get_llm_usage_by_team_id(org_id=org_id, team_id=team_id) if result and len(result) > 0: return result[0] - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } @staticmethod - def aggregate_agent_tokens( + def aggregate_agent_usage( info: Info[GraphQLContext, None], agent_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, int | float]: """Aggregate token usage from all spans for an agent.""" if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } ctx = info.context org_id = uuid.UUID(ctx.org_id) @@ -677,20 +691,34 @@ def aggregate_agent_tokens( ) trace_store = runtime.storage_runtime().tracestore - result = trace_store.get_llm_tokens_by_agent_id( + result = trace_store.get_llm_usage_by_agent_id( org_id=org_id, team_id=agent.team_id, agent_id=agent_id ) if result and len(result) > 0: return result[0] - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } @staticmethod - def aggregate_session_tokens( + def aggregate_session_usage( info: Info[GraphQLContext, None], session_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, int | float]: """Aggregate token usage from all spans for a session.""" if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } ctx = info.context org_id = uuid.UUID(ctx.org_id) @@ -705,12 +733,19 @@ def aggregate_session_tokens( ) trace_store = runtime.storage_runtime().tracestore - result = trace_store.get_llm_tokens_by_session_id( + result = trace_store.get_llm_usage_by_session_id( org_id=org_id, team_id=session.team_id, session_id=session.uuid ) if result and len(result) > 0: return result[0] - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } @staticmethod def aggregate_model_distributions( @@ -775,7 +810,6 @@ def list_exps_by_timeframe( duration=e.duration, status=GraphQLStatusEnum[Status(e.status).name], kind=GraphQLExperimentTypeEnum[GraphQLExperimentType(e.kind).name], - cost=e.cost, created_at=e.created_at, updated_at=e.updated_at, ) @@ -939,48 +973,32 @@ async def get_artifact_content( raise RuntimeError(f"Failed to get artifact content: {e}") from e @staticmethod - def aggregate_run_tokens( + def aggregate_run_usage( info: Info[GraphQLContext, None], run_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, int | float]: """Aggregate token usage from all traces for a run.""" if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } user_id = info.context.user_id metadb = runtime.storage_runtime().metadb if not metadb.run_is_accessible_to_user(run_id=run_id, user_id=user_id): raise RuntimeError("Not allowed to access run that user does not belong to") - try: - run = runtime.storage_runtime().metadb.get_run(run_id=run_id) - if run.status in FINISHED_STATUS: - if run.usage and "total_tokens" in run.usage: - return { - "total_tokens": run.usage.get("total_tokens", 0), - "input_tokens": run.usage.get("input_tokens", 0), - "output_tokens": run.usage.get("output_tokens", 0), - } - else: - usage = GraphQLResolvers.get_run_usage(info, run_id) - runtime.storage_runtime().metadb.update_run( - run_id=run_id, usage=usage - ) - return usage - else: - return GraphQLResolvers.get_run_usage(info, run_id) - except Exception as e: - import logging - - logging.error( - f"Failed to aggregate tokens for run {run_id}: {e}", exc_info=True - ) - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return GraphQLResolvers.get_run_usage(info, run_id) @staticmethod def get_run_usage( info: Info[GraphQLContext, None], run_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, float]: ctx = info.context org_id = uuid.UUID(ctx.org_id) run = runtime.storage_runtime().metadb.get_run(run_id=run_id) @@ -994,6 +1012,9 @@ def get_run_usage( total_tokens = 0 input_tokens = 0 output_tokens = 0 + cache_read_input_tokens = 0 + cache_creation_input_tokens = 0 + total_cost = 0.0 for span in spans: span_attrs = span.get("SpanAttributes", {}) @@ -1005,17 +1026,30 @@ def get_run_usage( input_tokens += int(span_attrs["gen_ai.usage.input_tokens"]) if "gen_ai.usage.output_tokens" in span_attrs: output_tokens += int(span_attrs["gen_ai.usage.output_tokens"]) + if "gen_ai.usage.cache_read_input_tokens" in span_attrs: + cache_read_input_tokens += int( + span_attrs["gen_ai.usage.cache_read_input_tokens"] + ) + if "gen_ai.usage.cache_creation_input_tokens" in span_attrs: + cache_creation_input_tokens += int( + span_attrs["gen_ai.usage.cache_creation_input_tokens"] + ) + if "alphatrion.cost.total_tokens" in span_attrs: + total_cost += float(span_attrs["alphatrion.cost.total_tokens"]) return { "total_tokens": total_tokens, "input_tokens": input_tokens, "output_tokens": output_tokens, + "cache_read_input_tokens": cache_read_input_tokens, + "cache_creation_input_tokens": cache_creation_input_tokens, + "total_cost": total_cost, } @staticmethod - def aggregate_experiment_tokens( + def aggregate_experiment_usage( info: Info[GraphQLContext, None], experiment_id: strawberry.ID - ) -> dict[str, int]: + ) -> dict[str, int | float]: """Aggregate token usage from all spans in an experiment.""" org_id = info.context.org_id user_id = info.context.user_id @@ -1029,41 +1063,24 @@ def aggregate_experiment_tokens( ) if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} - - try: - exp = runtime.storage_runtime().metadb.get_experiment( - experiment_id=experiment_id - ) - if exp.status in FINISHED_STATUS: - if exp.usage and "total_tokens" in exp.usage: - return { - "total_tokens": exp.usage.get("total_tokens", 0), - "input_tokens": exp.usage.get("input_tokens", 0), - "output_tokens": exp.usage.get("output_tokens", 0), - } - else: - usage = GraphQLResolvers.get_experiment_usage( - org_id, exp.team_id, experiment_id - ) - metadb.update_experiment(experiment_id=experiment_id, usage=usage) - return usage - else: - return GraphQLResolvers.get_experiment_usage( - org_id, exp.team_id, experiment_id - ) - except Exception as e: - import logging - - logging.error( - f"Failed to aggregate tokens for experiment {experiment_id}: {e}" - ) - return {"total_tokens": 0, "input_tokens": 0, "output_tokens": 0} + return { + "total_tokens": 0, + "input_tokens": 0, + "output_tokens": 0, + "cache_read_input_tokens": 0, + "cache_creation_input_tokens": 0, + "total_cost": 0.0, + } + + exp = runtime.storage_runtime().metadb.get_experiment( + experiment_id=experiment_id + ) + return GraphQLResolvers.get_experiment_usage(org_id, exp.team_id, experiment_id) @staticmethod def get_experiment_usage( org_id: strawberry.ID, team_id: strawberry.ID, experiment_id: strawberry.ID - ): + ) -> tuple[dict[str, int], dict[str, float]]: trace_store = runtime.storage_runtime().tracestore # Get all LLM spans for this experiment in a single query spans = trace_store.get_llm_spans_by_exp_id( @@ -1074,6 +1091,9 @@ def get_experiment_usage( total_tokens = 0 input_tokens = 0 output_tokens = 0 + cache_read_input_tokens = 0 + cache_creation_input_tokens = 0 + total_cost = 0.0 for span in spans: span_attrs = span.get("SpanAttributes", {}) @@ -1085,11 +1105,24 @@ def get_experiment_usage( input_tokens += int(span_attrs["gen_ai.usage.input_tokens"]) if "gen_ai.usage.output_tokens" in span_attrs: output_tokens += int(span_attrs["gen_ai.usage.output_tokens"]) + if "gen_ai.usage.cache_read_input_tokens" in span_attrs: + cache_read_input_tokens += int( + span_attrs["gen_ai.usage.cache_read_input_tokens"] + ) + if "gen_ai.usage.cache_creation_input_tokens" in span_attrs: + cache_creation_input_tokens += int( + span_attrs["gen_ai.usage.cache_creation_input_tokens"] + ) + if "alphatrion.cost.total_tokens" in span_attrs: + total_cost += float(span_attrs["alphatrion.cost.total_tokens"]) return { "total_tokens": total_tokens, "input_tokens": input_tokens, "output_tokens": output_tokens, + "cache_read_input_tokens": cache_read_input_tokens, + "cache_creation_input_tokens": cache_creation_input_tokens, + "total_cost": total_cost, } @staticmethod @@ -1265,10 +1298,10 @@ def list_spans_by_session_id( return [] @staticmethod - def get_daily_token_usage( + def get_daily_cost_usage( info: Info[GraphQLContext, None], team_id: strawberry.ID, days: int = 7 - ) -> list[DailyTokenUsage]: - """Get daily token usage from LLM calls for a team.""" + ) -> list[DailyCostUsage]: + """Get daily cost usage from LLM calls for a team.""" # Check if tracing is enabled if os.getenv(envs.ENABLE_TRACING, "false").lower() != "true": @@ -1285,24 +1318,29 @@ def get_daily_token_usage( try: trace_store = runtime.storage_runtime().tracestore - daily_usage = trace_store.get_daily_token_usage( + daily_cost = trace_store.get_daily_cost_usage( org_id=org_id, team_id=team_id, days=days ) # Don't close - it's a shared singleton connection - # Convert to GraphQL DailyTokenUsage objects + # Convert to GraphQL DailyCostUsage objects return [ - DailyTokenUsage( + DailyCostUsage( date=item["date"], - total_tokens=item["total_tokens"], - input_tokens=item["input_tokens"], - output_tokens=item["output_tokens"], + total_cost=item["total_cost"], + total_tokens=item.get("total_tokens", 0), + input_tokens=item.get("input_tokens", 0), + output_tokens=item.get("output_tokens", 0), + cache_read_input_tokens=item.get("cache_read_input_tokens", 0), + cache_creation_input_tokens=item.get( + "cache_creation_input_tokens", 0 + ), ) - for item in daily_usage + for item in daily_cost ] except Exception as e: # Log error and return empty list - don't fail the GraphQL query - print(f"Failed to fetch daily token usage: {e}") + print(f"Failed to fetch daily cost usage: {e}") return [] @staticmethod diff --git a/alphatrion/server/graphql/schema.py b/alphatrion/server/graphql/schema.py index 312f9515..43cf702b 100644 --- a/alphatrion/server/graphql/schema.py +++ b/alphatrion/server/graphql/schema.py @@ -12,7 +12,7 @@ ArtifactTag, CreateTeamInput, CreateUserInput, - DailyTokenUsage, + DailyCostUsage, Dataset, Experiment, Organization, @@ -125,13 +125,13 @@ def spans_by_session_id( ) @strawberry.field - def daily_token_usage( + def daily_cost_usage( self, team_id: strawberry.ID, days: int = 7, info: Info[GraphQLContext, None] = None, - ) -> list[DailyTokenUsage]: - return GraphQLResolvers.get_daily_token_usage( + ) -> list[DailyCostUsage]: + return GraphQLResolvers.get_daily_cost_usage( team_id=team_id, days=days, info=info ) diff --git a/alphatrion/server/graphql/types.py b/alphatrion/server/graphql/types.py index 0226f712..7827f924 100644 --- a/alphatrion/server/graphql/types.py +++ b/alphatrion/server/graphql/types.py @@ -8,10 +8,15 @@ @strawberry.type -class TokenStats: +class AggregatedUsage: + """Aggregated usage and cost information for tokens.""" + total_tokens: int input_tokens: int output_tokens: int + cache_read_input_tokens: int + cache_creation_input_tokens: int + total_cost: float @strawberry.type @@ -21,11 +26,14 @@ class ModelDistribution: @strawberry.type -class DailyTokenUsage: +class DailyCostUsage: date: str + total_cost: float total_tokens: int input_tokens: int output_tokens: int + cache_read_input_tokens: int + cache_creation_input_tokens: int @strawberry.type @@ -86,14 +94,17 @@ def total_sessions(self, info: Info) -> int: return GraphQLResolvers.total_sessions(info=info, team_id=self.id) @strawberry.field - def aggregated_tokens(self, info: Info) -> TokenStats: + def aggregated_usage(self, info: Info) -> AggregatedUsage: from .resolvers import GraphQLResolvers - token_data = GraphQLResolvers.aggregate_team_tokens(info=info, team_id=self.id) - return TokenStats( - total_tokens=token_data["total_tokens"], - input_tokens=token_data["input_tokens"], - output_tokens=token_data["output_tokens"], + usage = GraphQLResolvers.aggregate_team_usage(info=info, team_id=self.id) + return AggregatedUsage( + total_tokens=usage["total_tokens"], + input_tokens=usage["input_tokens"], + output_tokens=usage["output_tokens"], + cache_read_input_tokens=usage["cache_read_input_tokens"], + cache_creation_input_tokens=usage["cache_creation_input_tokens"], + total_cost=usage["total_cost"], ) @strawberry.field @@ -182,7 +193,6 @@ class Experiment: params: JSON | None duration: float status: GraphQLStatusEnum - cost: JSON | None created_at: datetime updated_at: datetime @@ -205,16 +215,19 @@ def metrics(self, info: Info) -> list["Metric"]: return GraphQLResolvers.list_exp_metrics(info=info, experiment_id=self.id) @strawberry.field - def aggregated_tokens(self, info: Info) -> TokenStats: + def aggregated_usage(self, info: Info) -> AggregatedUsage: from .resolvers import GraphQLResolvers - tokens = GraphQLResolvers.aggregate_experiment_tokens( + usage = GraphQLResolvers.aggregate_experiment_usage( info=info, experiment_id=self.id ) - return TokenStats( - total_tokens=tokens["total_tokens"], - input_tokens=tokens["input_tokens"], - output_tokens=tokens["output_tokens"], + return AggregatedUsage( + total_tokens=usage["total_tokens"], + input_tokens=usage["input_tokens"], + output_tokens=usage["output_tokens"], + cache_read_input_tokens=usage["cache_read_input_tokens"], + cache_creation_input_tokens=usage["cache_creation_input_tokens"], + total_cost=usage["total_cost"], ) @strawberry.field @@ -255,16 +268,17 @@ def sessions( ) @strawberry.field - def aggregated_tokens(self, info: Info) -> TokenStats: + def aggregated_usage(self, info: Info) -> AggregatedUsage: from .resolvers import GraphQLResolvers - token_data = GraphQLResolvers.aggregate_agent_tokens( - info=info, agent_id=self.id - ) - return TokenStats( - total_tokens=token_data["total_tokens"], - input_tokens=token_data["input_tokens"], - output_tokens=token_data["output_tokens"], + usage = GraphQLResolvers.aggregate_agent_usage(info=info, agent_id=self.id) + return AggregatedUsage( + total_tokens=usage["total_tokens"], + input_tokens=usage["input_tokens"], + output_tokens=usage["output_tokens"], + cache_read_input_tokens=usage["cache_read_input_tokens"], + cache_creation_input_tokens=usage["cache_creation_input_tokens"], + total_cost=usage["total_cost"], ) @@ -288,16 +302,17 @@ def runs(self, info: Info, page: int = 0, page_size: int = 10) -> list["Run"]: ) @strawberry.field - def aggregated_tokens(self, info: Info) -> TokenStats: + def aggregated_usage(self, info: Info) -> AggregatedUsage: from .resolvers import GraphQLResolvers - token_data = GraphQLResolvers.aggregate_session_tokens( - info=info, session_id=self.id - ) - return TokenStats( - total_tokens=token_data["total_tokens"], - input_tokens=token_data["input_tokens"], - output_tokens=token_data["output_tokens"], + usage = GraphQLResolvers.aggregate_session_usage(info=info, session_id=self.id) + return AggregatedUsage( + total_tokens=usage["total_tokens"], + input_tokens=usage["input_tokens"], + output_tokens=usage["output_tokens"], + cache_read_input_tokens=usage["cache_read_input_tokens"], + cache_creation_input_tokens=usage["cache_creation_input_tokens"], + total_cost=usage["total_cost"], ) @@ -312,7 +327,6 @@ class Run: meta: JSON | None duration: float status: GraphQLStatusEnum - cost: JSON | None created_at: datetime @strawberry.field @@ -330,15 +344,18 @@ def spans(self, info: Info) -> list["Span"]: return GraphQLResolvers.list_spans_by_run_id(info=info, run_id=self.id) @strawberry.field - def aggregated_tokens(self, info: Info) -> TokenStats: + def aggregated_usage(self, info: Info) -> AggregatedUsage: """Get aggregated token usage for this run.""" from .resolvers import GraphQLResolvers - token_data = GraphQLResolvers.aggregate_run_tokens(info=info, run_id=self.id) - return TokenStats( - total_tokens=token_data["total_tokens"], - input_tokens=token_data["input_tokens"], - output_tokens=token_data["output_tokens"], + usage = GraphQLResolvers.aggregate_run_usage(info=info, run_id=self.id) + return AggregatedUsage( + total_tokens=usage["total_tokens"], + input_tokens=usage["input_tokens"], + output_tokens=usage["output_tokens"], + cache_read_input_tokens=usage["cache_read_input_tokens"], + cache_creation_input_tokens=usage["cache_creation_input_tokens"], + total_cost=usage["total_cost"], ) diff --git a/alphatrion/storage/runtime.py b/alphatrion/storage/runtime.py index 94f58858..3135706e 100644 --- a/alphatrion/storage/runtime.py +++ b/alphatrion/storage/runtime.py @@ -4,6 +4,7 @@ from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import BatchSpanProcessor from traceloop.sdk import Traceloop from alphatrion import envs @@ -11,7 +12,8 @@ from alphatrion.storage.sqlstore import SQLStore from alphatrion.storage.tracestore import TraceStore from alphatrion.tracing.clickhouse_exporter import ClickHouseSpanExporter -from alphatrion.tracing.prometheus_span_processor import PrometheusSpanProcessor +from alphatrion.tracing.cost_enrichment_processor import CostEnrichmentProcessor +from alphatrion.tracing.prometheus_exporter import PrometheusExporter from alphatrion.tracing.span_processor import ContextAttributesSpanProcessor __STORAGE_RUNTIME__ = None @@ -62,23 +64,31 @@ def __init__(self): telemetry_enabled=False, ) - # Add custom span processor to inject context attributes (run_id, etc.) - # into all spans, including child spans created by instrumented libraries + # Add custom span processors tracer_provider = trace.get_tracer_provider() + + # 1. Context attributes processor - injects context (run_id, etc.) into all spans tracer_provider.add_span_processor(ContextAttributesSpanProcessor()) - # Add Prometheus span processor if enabled + # 2. Cost enrichment processor - calculates costs from tokens and adds to span attributes + # This runs early so downstream processors/exporters can access cost data + tracer_provider.add_span_processor(CostEnrichmentProcessor()) + + # 3. Add Prometheus exporter if enabled if os.getenv(envs.ENABLE_PROMETHEUS, "false").lower() == "true": pushgateway_url = os.getenv( envs.PROMETHEUS_PUSHGATEWAY_URL, "localhost:9091" ) job_name = os.getenv(envs.PROMETHEUS_JOB_NAME, "alphatrion") - prometheus_processor = PrometheusSpanProcessor( + prometheus_exporter = PrometheusExporter( pushgateway_url=pushgateway_url, job_name=job_name, ) - tracer_provider.add_span_processor(prometheus_processor) + # Use BatchSpanProcessor for better performance + tracer_provider.add_span_processor( + BatchSpanProcessor(prometheus_exporter) + ) artifact_insecure = os.getenv(envs.ARTIFACT_INSECURE, "false").lower() == "true" if artifact_storage_enabled(): diff --git a/alphatrion/storage/sql_models.py b/alphatrion/storage/sql_models.py index f5cac099..09b57934 100644 --- a/alphatrion/storage/sql_models.py +++ b/alphatrion/storage/sql_models.py @@ -188,17 +188,6 @@ class Experiment(Base): 0: UNKNOWN, 1: PENDING, 2: RUNNING, 9: COMPLETED, \ 10: CANCELLED, 11: FAILED", ) - usage = Column( - MutableDict.as_mutable(JSON), - nullable=True, - comment="The usage information, e.g. for LLM calls: \ - {total_tokens: int, input_tokens: int, output_tokens: int}", - ) - cost = Column( - MutableDict.as_mutable(JSON), - nullable=True, - comment="Cost of the experiment in dollars", - ) created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(UTC)) updated_at = Column( @@ -308,17 +297,6 @@ class Run(Base): 0: UNKNOWN, 1: PENDING, 2: RUNNING, 9: COMPLETED, \ 10: CANCELLED, 11: FAILED", ) - usage = Column( - MutableDict.as_mutable(JSON), - nullable=True, - comment="The usage information, e.g. for LLM calls: \ - {total_tokens: int, input_tokens: int, output_tokens: int}", - ) - cost = Column( - MutableDict.as_mutable(JSON), - nullable=True, - comment="Cost of the run in dollars", - ) created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(UTC)) updated_at = Column( diff --git a/alphatrion/storage/sqlstore.py b/alphatrion/storage/sqlstore.py index e0acd7fa..c860dc1b 100644 --- a/alphatrion/storage/sqlstore.py +++ b/alphatrion/storage/sqlstore.py @@ -958,7 +958,6 @@ def create_run( meta: dict | None = None, status: Status = Status.PENDING, duration: float | None = None, - usage: dict | None = None, ) -> uuid.UUID: session = self._session() @@ -971,7 +970,6 @@ def create_run( meta=meta, status=status, duration=duration, - usage=usage, ) session.add(new_run) session.commit() @@ -1241,6 +1239,7 @@ def team_is_accessible_to_user( ) -> bool: session = self._session() + # Check if user is super admin if self.user_is_super_admin_in_org(user_id, org_id): session.close() return True diff --git a/alphatrion/storage/tracestore.py b/alphatrion/storage/tracestore.py index f0baa1e1..ec108be7 100644 --- a/alphatrion/storage/tracestore.py +++ b/alphatrion/storage/tracestore.py @@ -357,16 +357,16 @@ def get_llm_spans_by_exp_id( logger.error(f"Failed to get spans by exp_id: {e}") return [] - def get_llm_tokens_by_team_id( + def get_llm_usage_by_team_id( self, org_id: uuid.UUID, team_id: uuid.UUID ) -> list[dict[str, Any]]: - """Get all LLM spans for a specific team_id. + """Get aggregated tokens and cost for a team. Args: org_id: The organization ID to filter by team_id: The team ID to filter by Returns: - List of LLM span dictionaries + List with one dict containing tokens and cost """ with self._lock: try: @@ -374,29 +374,36 @@ def get_llm_tokens_by_team_id( SELECT SUM(toInt64OrZero(SpanAttributes['llm.usage.total_tokens'])) as total_tokens, SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.input_tokens'])) as input_tokens, - SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_read_input_tokens'])) as cache_read_input_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_creation_input_tokens'])) as cache_creation_input_tokens, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.total_tokens'])) as total_cost FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' """ result = self.client.query(query) - # Convert date to string format and ensure integers return [ { "total_tokens": int(row["total_tokens"]), "input_tokens": int(row["input_tokens"]), "output_tokens": int(row["output_tokens"]), + "cache_read_input_tokens": int(row["cache_read_input_tokens"]), + "cache_creation_input_tokens": int( + row["cache_creation_input_tokens"] + ), + "total_cost": float(row["total_cost"]), } for row in result.named_results() ] except Exception as e: - logger.error(f"Failed to get daily token usage: {e}") + logger.error(f"Failed to get tokens and cost by team: {e}") return [] - def get_llm_tokens_by_agent_id( + def get_llm_usage_by_agent_id( self, org_id: uuid.UUID, team_id: uuid.UUID, agent_id: uuid.UUID ) -> list[dict[str, Any]]: - """Get aggregated LLM token usage for a specific agent. + """Get aggregated LLM token usage and cost for a specific agent. Args: org_id: The organization ID to filter by @@ -411,7 +418,10 @@ def get_llm_tokens_by_agent_id( SELECT SUM(toInt64OrZero(SpanAttributes['llm.usage.total_tokens'])) as total_tokens, SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.input_tokens'])) as input_tokens, - SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_read_input_tokens'])) as cache_read_input_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_creation_input_tokens'])) as cache_creation_input_tokens, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.total_tokens'])) as total_cost FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' AND AgentId = '{agent_id}' """ @@ -422,6 +432,11 @@ def get_llm_tokens_by_agent_id( "total_tokens": int(row["total_tokens"]), "input_tokens": int(row["input_tokens"]), "output_tokens": int(row["output_tokens"]), + "cache_read_input_tokens": int(row["cache_read_input_tokens"]), + "cache_creation_input_tokens": int( + row["cache_creation_input_tokens"] + ), + "total_cost": float(row["total_cost"]), } for row in result.named_results() ] @@ -429,10 +444,10 @@ def get_llm_tokens_by_agent_id( logger.error(f"Failed to get agent token usage: {e}") return [] - def get_llm_tokens_by_session_id( + def get_llm_usage_by_session_id( self, org_id: uuid.UUID, team_id: uuid.UUID, session_id: uuid.UUID ) -> list[dict[str, Any]]: - """Get aggregated LLM token usage for a specific session. + """Get aggregated LLM token usage and cost for a specific session. Args: org_id: The organization ID to filter by @@ -447,7 +462,10 @@ def get_llm_tokens_by_session_id( SELECT SUM(toInt64OrZero(SpanAttributes['llm.usage.total_tokens'])) as total_tokens, SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.input_tokens'])) as input_tokens, - SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_read_input_tokens'])) as cache_read_input_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_creation_input_tokens'])) as cache_creation_input_tokens, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.total_tokens'])) as total_cost FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' AND SessionId = '{session_id}' """ @@ -458,6 +476,11 @@ def get_llm_tokens_by_session_id( "total_tokens": int(row["total_tokens"]), "input_tokens": int(row["input_tokens"]), "output_tokens": int(row["output_tokens"]), + "cache_read_input_tokens": int(row["cache_read_input_tokens"]), + "cache_creation_input_tokens": int( + row["cache_creation_input_tokens"] + ), + "total_cost": float(row["total_cost"]), } for row in result.named_results() ] @@ -484,7 +507,9 @@ def get_token_distribution_by_semantic_kind( SemanticKind as semantic_kind, SUM(toInt64OrZero(SpanAttributes['llm.usage.total_tokens'])) as total_tokens, SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.input_tokens'])) as input_tokens, - SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_read_input_tokens'])) as cache_read_input_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_creation_input_tokens'])) as cache_creation_input_tokens FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' GROUP BY SemanticKind @@ -498,6 +523,10 @@ def get_token_distribution_by_semantic_kind( "total_tokens": int(row["total_tokens"]), "input_tokens": int(row["input_tokens"]), "output_tokens": int(row["output_tokens"]), + "cache_read_input_tokens": int(row["cache_read_input_tokens"]), + "cache_creation_input_tokens": int( + row["cache_creation_input_tokens"] + ), } for row in result.named_results() ] @@ -529,27 +558,28 @@ def get_model_distributions_by_team_id( COUNT(*) as count FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' - AND SemanticKind IN ('llm', 'thinking', 'text-generation', 'tool') GROUP BY model ORDER BY count DESC """ result = self.client.query(query) + # ignore empty models return [ { "model": row["model"], "count": int(row["count"]), } for row in result.named_results() + if row["model"] is not None and row["model"] != "" ] except Exception as e: logger.error(f"Failed to get model distributions: {e}") return [] - def get_daily_token_usage( + def get_daily_cost_usage( self, org_id: uuid.UUID, team_id: uuid.UUID, days: int = 30 ) -> list[dict[str, Any]]: - """Get daily token usage from LLM calls for a team. + """Get daily cost and token usage from LLM calls for a team. Args: org_id: The organization ID to filter by @@ -557,16 +587,23 @@ def get_daily_token_usage( days: Number of days to look back (default: 30) Returns: - List of dicts with keys: date, total_tokens, input_tokens, output_tokens + List of dicts with keys: date, total_cost, input_cost, output_cost, total_tokens, input_tokens, output_tokens """ with self._lock: try: query = f""" SELECT toDate(Timestamp) as date, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.total_tokens'])) as total_cost, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.input_tokens'])) as input_cost, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.output_tokens'])) as output_cost, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.cache_creation_input_tokens'])) as cache_creation_input_cost, + SUM(toFloat64OrZero(SpanAttributes['alphatrion.cost.cache_read_input_tokens'])) as cache_read_input_cost, SUM(toInt64OrZero(SpanAttributes['llm.usage.total_tokens'])) as total_tokens, SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.input_tokens'])) as input_tokens, - SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.output_tokens'])) as output_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_read_input_tokens'])) as cache_read_input_tokens, + SUM(toInt64OrZero(SpanAttributes['gen_ai.usage.cache_creation_input_tokens'])) as cache_creation_input_tokens FROM {self.database}.otel_spans WHERE OrgId = '{org_id}' AND TeamId = '{team_id}' AND Timestamp >= now() - INTERVAL {days} DAY @@ -575,18 +612,29 @@ def get_daily_token_usage( """ result = self.client.query(query) - # Convert date to string format and ensure integers + # Convert date to string format return [ { "date": row["date"].strftime("%Y-%m-%d"), + "total_cost": float(row["total_cost"]), + "input_cost": float(row["input_cost"]), + "output_cost": float(row["output_cost"]), + "cache_creation_input_cost": float( + row["cache_creation_input_cost"] + ), + "cache_read_input_cost": float(row["cache_read_input_cost"]), "total_tokens": int(row["total_tokens"]), "input_tokens": int(row["input_tokens"]), "output_tokens": int(row["output_tokens"]), + "cache_read_input_tokens": int(row["cache_read_input_tokens"]), + "cache_creation_input_tokens": int( + row["cache_creation_input_tokens"] + ), } for row in result.named_results() ] except Exception as e: - logger.error(f"Failed to get daily token usage: {e}") + logger.error(f"Failed to get daily cost usage: {e}") return [] def get_trace_stats_by_exp_id( diff --git a/alphatrion/tracing/clickhouse_exporter.py b/alphatrion/tracing/clickhouse_exporter.py index 64653e0c..27afb921 100644 --- a/alphatrion/tracing/clickhouse_exporter.py +++ b/alphatrion/tracing/clickhouse_exporter.py @@ -8,6 +8,11 @@ from opentelemetry.trace import StatusCode from alphatrion.storage.tracestore import TraceStore +from alphatrion.tracing.span_processor import ( + SEMANTIC_KIND_DB, + SEMANTIC_KIND_REASONING, + SEMANTIC_KIND_UNKNOWN, +) logger = logging.getLogger(__name__) @@ -122,6 +127,19 @@ def _convert_span(self, span: ReadableSpan) -> dict[str, Any]: if span.attributes: span_attributes = {k: str(v) for k, v in span.attributes.items()} + # Calculate cost for LLM spans with token usage + # Store cost per span to enable model-level cost analytics + if "alphatrion.cost.total_tokens" in span_attributes: + try: + # Cost attributes are already enriched by CostEnrichmentProcessor + # Just ensure they exist in span_attributes for ClickHouse storage + # (they should already be present from the span) + pass + + except Exception as e: + logger.warning(f"Failed to process LLM span {span.name}: {e}") + # Don't fail span export if processing fails + # Extract core identifiers from span attributes org_id = span_attributes.get("org_id", "") team_id = span_attributes.get("team_id", "") @@ -227,64 +245,33 @@ def force_flush(self, timeout_millis: int = 30000) -> bool: return True -def determine_semantic_kind( - attributes: dict[str, str], content_blocks: list[dict] = None -) -> str: +def determine_semantic_kind(attributes: dict[str, str]) -> str: """Determine the semantic kind of a span. - Priority order: - 1. Content type based (thinking, llm, tool) - if content_blocks provided - 2. Tool calls (has tool attributes) - 3. LLM calls (has token usage) - 4. Database operations (has db attributes) - 5. HTTP requests (has http attributes) - 6. Traceloop semantic kinds (workflow, task, agent) - 7. Unknown - Args: attributes: Span attributes - content_blocks: Optional list of content blocks (for Claude agents) Returns: Semantic kind string """ - # Check content type first (Claude agents) - if content_blocks: - content_types = [b.get("type") for b in content_blocks if isinstance(b, dict)] - if "tool_use" in content_types: - return "tool" - elif "thinking" in content_types: - return "thinking" - elif "text" in content_types: - return "text-generation" - # Has content blocks but unknown type - fallback to llm - elif content_types: - return "llm" - - # Check for tool calls (fallback) - if "tool.name" in attributes: - return "tool" - - # Check for LLM calls (fallback) + if ( - "llm.usage.total_tokens" in attributes - or "gen_ai.usage.output_tokens" in attributes + "gen_ai.usage.reasoning_tokens" in attributes + and int(attributes["gen_ai.usage.reasoning_tokens"]) > 0 ): - return "llm" + return SEMANTIC_KIND_REASONING - # Check for Traceloop semantic kinds - if "traceloop.span.kind" in attributes: - traceloop_kind = attributes["traceloop.span.kind"] - if traceloop_kind in ("workflow", "task", "agent"): - return traceloop_kind + if "llm.request.type" in attributes: + return attributes["llm.request.type"] # Check for database operations if "db.system" in attributes or "db.statement" in attributes: - return "database" + return SEMANTIC_KIND_DB - # Check for HTTP requests - if "http.method" in attributes or "http.url" in attributes: - return "http" + # One of workflow, task, agent, tool + if "traceloop.span.kind" in attributes: + traceloop_kind = attributes["traceloop.span.kind"] + return traceloop_kind # Default to unknown - return "unknown" + return SEMANTIC_KIND_UNKNOWN diff --git a/alphatrion/tracing/cost_enrichment_processor.py b/alphatrion/tracing/cost_enrichment_processor.py new file mode 100644 index 00000000..aa02a869 --- /dev/null +++ b/alphatrion/tracing/cost_enrichment_processor.py @@ -0,0 +1,144 @@ +""" +Cost Enrichment Span Processor. + +This processor enriches spans with cost information by calculating costs from token usage. +It runs early in the processing chain so that downstream processors and exporters can +access pre-calculated costs from span attributes. +""" + +import logging + +from opentelemetry.context import Context +from opentelemetry.sdk.trace import ReadableSpan +from opentelemetry.sdk.trace.export import SpanProcessor + +from alphatrion.utils.pricing import calculate_cost + +logger = logging.getLogger(__name__) + + +class CostEnrichmentProcessor(SpanProcessor): + """ + Span processor that enriches spans with cost information. + + This processor checks if cost attributes are already present in a span. + If not, it calculates costs from token usage and adds them to the span's + attributes dictionary. This ensures all downstream processors and exporters + have access to consistent cost data. + """ + + def on_start(self, span: ReadableSpan, parent_context: Context | None = None): + """Called when a span is started. No-op for this processor.""" + pass + + def on_end(self, span: ReadableSpan): + """ + Called when a span ends. Calculate and add cost attributes if missing. + + Args: + span: The completed span + """ + try: + # Only process spans with attributes + if not span.attributes: + return + + # Check if costs are already present + if "alphatrion.cost.total_tokens" in span.attributes: + # Costs already calculated (e.g., in claude.py) + return + + # Check if this is an LLM span with token usage + if "gen_ai.usage.input_tokens" not in span.attributes: + # Not an LLM span, skip + return + + # Extract token usage + attributes = span.attributes + provider = determine_provider(str(attributes.get("gen_ai.openai.api_base"))) + model = str( + attributes.get("gen_ai.request.model") + or attributes.get("gen_ai.response.model", "") + ) + input_tokens = int(attributes.get("gen_ai.usage.input_tokens", 0)) + output_tokens = int(attributes.get("gen_ai.usage.output_tokens", 0)) + cache_creation_input_tokens = int( + attributes.get("gen_ai.usage.cache_creation_input_tokens", 0) + ) + cache_read_input_tokens = int( + attributes.get("gen_ai.usage.cache_read_input_tokens", 0) + ) + + # Calculate costs + cost_result = calculate_cost( + provider=provider, + model=model, + input_tokens=input_tokens, + output_tokens=output_tokens, + cache_creation_input_tokens=cache_creation_input_tokens, + cache_read_input_tokens=cache_read_input_tokens, + ) + + # Add cost attributes to span + # Note: We can't modify ReadableSpan.attributes directly after span ends, + # but we can modify the underlying _attributes dict that will be read + # by exporters. This is a bit of a hack but it's the only way to enrich + # spans post-creation without modifying OpenTelemetry internals. + if hasattr(span, "_attributes"): + span._attributes["alphatrion.cost.total_tokens"] = str( + cost_result["total_cost"] + ) + span._attributes["alphatrion.cost.input_tokens"] = str( + cost_result["input_cost"] + ) + span._attributes["alphatrion.cost.output_tokens"] = str( + cost_result["output_cost"] + ) + span._attributes["alphatrion.cost.cache_creation_input_tokens"] = str( + cost_result["cache_creation_input_cost"] + ) + span._attributes["alphatrion.cost.cache_read_input_tokens"] = str( + cost_result["cache_read_input_cost"] + ) + logger.debug( + f"Enriched span {span.name} with cost: ${cost_result['total_cost']:.6f}" + ) + + except Exception as e: + logger.warning(f"Failed to enrich span with cost: {e}", exc_info=True) + + def shutdown(self): + """Shutdown the processor.""" + logger.info("CostEnrichmentProcessor shut down successfully") + + def force_flush(self, timeout_millis: int = 30000) -> bool: + """ + Force flush (no-op for this processor). + + Args: + timeout_millis: Timeout in milliseconds + + Returns: + True always + """ + return True + + +def determine_provider(api_base: str) -> str: + """Determine provider from API base URL. + + Args: + api_base: API base URL (e.g., "https://api.anthropic.com") + + Returns: + Provider name (e.g., "anthropic", "openai", "deepinfra", or "unknown") + """ + api_base = api_base.lower() + if "anthropic" in api_base: + return "anthropic" + elif "deepinfra" in api_base: + return "deepinfra" + elif "openai" in api_base: + return "openai" + else: + return "unknown" diff --git a/alphatrion/tracing/prometheus_exporter.py b/alphatrion/tracing/prometheus_exporter.py new file mode 100644 index 00000000..3f3ee916 --- /dev/null +++ b/alphatrion/tracing/prometheus_exporter.py @@ -0,0 +1,392 @@ +""" +Prometheus Span Exporter. + +Exports OpenTelemetry span metrics to Prometheus push gateway. +""" + +import logging +import socket +import uuid + +from opentelemetry.sdk.trace import ReadableSpan +from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult +from prometheus_client import ( + CollectorRegistry, + Counter, + Histogram, + pushadd_to_gateway, +) + +logger = logging.getLogger(__name__) + + +class PrometheusExporter(SpanExporter): + """ + Span exporter that exports metrics to Prometheus push gateway. + """ + + def __init__( + self, + pushgateway_url: str, + job_name: str = "alphatrion", + grouping_key: dict[str, str] | None = None, + ): + """ + Initialize the Prometheus exporter. + + Args: + pushgateway_url: URL of the Prometheus push gateway + job_name: Job name for the metrics in Prometheus + grouping_key: Additional grouping labels + """ + self.pushgateway_url = pushgateway_url + self.job_name = job_name + + if grouping_key is None: + try: + hostname = socket.gethostname() + instance_id = ( + f"{hostname}-{uuid.uuid4().hex}" if hostname else uuid.uuid4().hex + ) + except Exception: + instance_id = uuid.uuid4().hex + + self.grouping_key = {"instance": instance_id} + else: + self.grouping_key = grouping_key + + self.registry = CollectorRegistry() + self._init_metrics() + + logger.info( + f"PrometheusExporter initialized: pushgateway={pushgateway_url}, job={job_name}" + ) + + def _init_metrics(self): + """Initialize Prometheus metrics.""" + # Token metrics + self.llm_tokens_total = Counter( + "llm_tokens_total", + "Total LLM tokens consumed", + ["team_id", "experiment_id", "model", "token_type"], + registry=self.registry, + ) + + self.llm_input_tokens_total = Counter( + "llm_input_tokens_total", + "Total LLM input tokens consumed", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_output_tokens_total = Counter( + "llm_output_tokens_total", + "Total LLM output tokens consumed", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_cache_read_input_tokens_total = Counter( + "llm_cache_read_input_tokens_total", + "Total LLM cache read input tokens", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_cache_creation_input_tokens_total = Counter( + "llm_cache_creation_input_tokens_total", + "Total LLM cache creation input tokens", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + # Cost metrics + self.llm_cost_total = Counter( + "llm_cost_total", + "Total LLM cost in USD", + ["team_id", "experiment_id", "model", "cost_type"], + registry=self.registry, + ) + + self.llm_input_cost_total = Counter( + "llm_input_cost_total", + "Total LLM input cost in USD", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_output_cost_total = Counter( + "llm_output_cost_total", + "Total LLM output cost in USD", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_cache_read_cost_total = Counter( + "llm_cache_read_cost_total", + "Total LLM cache read cost in USD", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + self.llm_cache_creation_cost_total = Counter( + "llm_cache_creation_cost_total", + "Total LLM cache creation cost in USD", + ["team_id", "experiment_id", "model"], + registry=self.registry, + ) + + # Request metrics + self.llm_requests_total = Counter( + "llm_requests_total", + "Total number of LLM requests", + ["team_id", "experiment_id", "model", "status"], + registry=self.registry, + ) + + # Latency metrics + self.llm_request_duration_seconds = Histogram( + "llm_request_duration_seconds", + "LLM request duration in seconds", + ["team_id", "experiment_id", "model"], + buckets=[0.1, 0.5, 1.0, 2.0, 5.0, 10.0, 30.0, 60.0], + registry=self.registry, + ) + + # Error metrics + self.llm_errors_total = Counter( + "llm_errors_total", + "Total LLM errors by type", + ["error_type"], + registry=self.registry, + ) + + def export(self, spans: list[ReadableSpan]) -> SpanExportResult: + """ + Export spans to Prometheus push gateway. + + Args: + spans: List of spans to export + + Returns: + SpanExportResult indicating success or failure + """ + try: + for span in spans: + self._process_span(span) + + self._push_metrics() + return SpanExportResult.SUCCESS + + except Exception as e: + logger.error(f"Failed to export spans to Prometheus: {e}", exc_info=True) + return SpanExportResult.FAILURE + + def _process_span(self, span: ReadableSpan): + """Process a single span and update metrics.""" + try: + if not span.attributes or "traceloop.workflow.name" not in span.attributes: + return + + attributes = {k: str(v) for k, v in span.attributes.items()} + team_id = attributes.get("team_id", "unknown") + experiment_id = attributes.get("experiment_id", "unknown") + + if "llm.usage.total_tokens" not in attributes: + return + + duration = (span.end_time - span.start_time) / 1_000_000_000 + status_map = {0: "UNSET", 1: "OK", 2: "ERROR"} + status = status_map.get(span.status.status_code.value, "UNSET") + + if status == "ERROR": + error_type = self._classify_error(span, attributes) + self.llm_errors_total.labels(error_type=error_type).inc() + + self._process_llm_span( + span, attributes, team_id, experiment_id, duration, status + ) + + except Exception as e: + logger.error(f"Failed to process span: {e}", exc_info=True) + + def _classify_error(self, span: ReadableSpan, attributes: dict[str, str]) -> str: + """Classify error type from span.""" + status_msg = (span.status.description or "").lower() + + if "timeout" in status_msg or "timed out" in status_msg: + return "timeout" + elif "rate limit" in status_msg or "429" in status_msg: + return "rate_limit" + elif "auth" in status_msg or "401" in status_msg or "403" in status_msg: + return "auth_error" + elif "not found" in status_msg or "404" in status_msg: + return "not_found" + elif "invalid" in status_msg or "400" in status_msg: + return "invalid_request" + elif "connection" in status_msg or "network" in status_msg: + return "connection_error" + elif "500" in status_msg or "502" in status_msg or "503" in status_msg: + return "server_error" + else: + return "unknown" + + def _process_llm_span( + self, + span: ReadableSpan, + attributes: dict[str, str], + team_id: str, + experiment_id: str, + duration: float, + status: str, + ): + """Process LLM-specific metrics from a span.""" + model = attributes.get( + "gen_ai.request.model", attributes.get("gen_ai.response.model", "unknown") + ) + + # Token metrics + total_tokens = int(attributes.get("llm.usage.total_tokens", 0)) + input_tokens = int(attributes.get("gen_ai.usage.input_tokens", 0)) + output_tokens = int(attributes.get("gen_ai.usage.output_tokens", 0)) + cache_read_input_tokens = int( + attributes.get("gen_ai.usage.cache_read_input_tokens", 0) + ) + cache_creation_input_tokens = int( + attributes.get("gen_ai.usage.cache_creation_input_tokens", 0) + ) + + if total_tokens > 0: + self.llm_tokens_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + token_type="total", + ).inc(total_tokens) + + if input_tokens > 0: + self.llm_input_tokens_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(input_tokens) + self.llm_tokens_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + token_type="input", + ).inc(input_tokens) + + if output_tokens > 0: + self.llm_output_tokens_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(output_tokens) + self.llm_tokens_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + token_type="output", + ).inc(output_tokens) + + if cache_read_input_tokens > 0: + self.llm_cache_read_input_tokens_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(cache_read_input_tokens) + self.llm_tokens_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + token_type="cache_read_input", + ).inc(cache_read_input_tokens) + + if cache_creation_input_tokens > 0: + self.llm_cache_creation_input_tokens_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(cache_creation_input_tokens) + self.llm_tokens_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + token_type="cache_creation_input", + ).inc(cache_creation_input_tokens) + + # Cost metrics - read from enriched attributes + try: + total_cost = float(attributes.get("alphatrion.cost.total_tokens", 0)) + input_cost = float(attributes.get("alphatrion.cost.input_tokens", 0)) + output_cost = float(attributes.get("alphatrion.cost.output_tokens", 0)) + cache_read_cost = float( + attributes.get("alphatrion.cost.cache_read_input_tokens", 0) + ) + cache_creation_cost = float( + attributes.get("alphatrion.cost.cache_creation_input_tokens", 0) + ) + + if total_cost > 0: + self.llm_cost_total.labels( + team_id=team_id, + experiment_id=experiment_id, + model=model, + cost_type="total", + ).inc(total_cost) + + if input_cost > 0: + self.llm_input_cost_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(input_cost) + + if output_cost > 0: + self.llm_output_cost_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(output_cost) + + if cache_read_cost > 0: + self.llm_cache_read_cost_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(cache_read_cost) + + if cache_creation_cost > 0: + self.llm_cache_creation_cost_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).inc(cache_creation_cost) + + except (ValueError, TypeError) as e: + logger.debug(f"No cost data available for span: {e}") + + # Request count + self.llm_requests_total.labels( + team_id=team_id, experiment_id=experiment_id, model=model, status=status + ).inc() + + # Duration + self.llm_request_duration_seconds.labels( + team_id=team_id, experiment_id=experiment_id, model=model + ).observe(duration) + + def _push_metrics(self): + """Push metrics to Prometheus push gateway.""" + try: + pushadd_to_gateway( + self.pushgateway_url, + job=self.job_name, + registry=self.registry, + grouping_key=self.grouping_key, + ) + logger.debug("Successfully pushed metrics to Prometheus push gateway") + except Exception as e: + logger.warning(f"Failed to push metrics to Prometheus: {e}") + + def shutdown(self): + """Shutdown the exporter and perform final push.""" + try: + self._push_metrics() + logger.info("PrometheusExporter shut down successfully") + except Exception as e: + logger.error(f"Error during PrometheusExporter shutdown: {e}") + + def force_flush(self, timeout_millis: int = 30000) -> bool: + """Force flush metrics to push gateway.""" + try: + self._push_metrics() + return True + except Exception as e: + logger.error(f"Failed to force flush metrics: {e}") + return False diff --git a/alphatrion/tracing/prometheus_span_processor.py b/alphatrion/tracing/prometheus_span_processor.py deleted file mode 100644 index 6cfd75b1..00000000 --- a/alphatrion/tracing/prometheus_span_processor.py +++ /dev/null @@ -1,322 +0,0 @@ -# ruff: noqa: PLR0911 - -import logging -import socket -import uuid - -from opentelemetry.context import Context -from opentelemetry.sdk.trace import ReadableSpan -from opentelemetry.sdk.trace.export import SpanProcessor -from prometheus_client import ( - CollectorRegistry, - Counter, - Histogram, - pushadd_to_gateway, -) - -logger = logging.getLogger(__name__) - - -class PrometheusSpanProcessor(SpanProcessor): - """ - Span processor that exports OpenTelemetry span metrics to Prometheus push gateway. - - This processor extracts metrics from LLM spans (tokens, latency, etc.) and pushes - them to a Prometheus push gateway, making them available for scraping by Prometheus. - """ - - def __init__( - self, - pushgateway_url: str, - job_name: str = "alphatrion", - grouping_key: dict[str, str] | None = None, - ): - """ - Initialize the Prometheus span processor. - - Args: - pushgateway_url: URL of the Prometheus push gateway (e.g., "localhost:9091") - job_name: Job name for the metrics in Prometheus - grouping_key: Additional grouping labels (e.g., {"instance": "app-1"}) - """ - self.pushgateway_url = pushgateway_url - self.job_name = job_name - - # Generate unique instance identifier to prevent metrics from being overwritten - # Combines hostname (for traceability) with UUID (for uniqueness) - if grouping_key is None: - try: - hostname = socket.gethostname() - if hostname: - instance_id = f"{hostname}-{uuid.uuid4().hex}" - else: - instance_id = uuid.uuid4().hex - except Exception: - instance_id = uuid.uuid4().hex - - self.grouping_key = {"instance": instance_id} - else: - self.grouping_key = grouping_key - - # Create a separate registry for push gateway metrics - self.registry = CollectorRegistry() - - # Define metrics - self._init_metrics() - - logger.info( - f"PrometheusSpanProcessor initialized: pushgateway={pushgateway_url}, " - f"job={job_name}" - ) - - def _init_metrics(self): - """Initialize Prometheus metrics.""" - - # LLM Token usage metrics - self.llm_tokens_total = Counter( - "alphatrion_llm_tokens_total", - "Total LLM tokens consumed", - ["team_id", "experiment_id", "model", "token_type"], - registry=self.registry, - ) - - self.llm_input_tokens_total = Counter( - "alphatrion_llm_input_tokens_total", - "Total LLM input tokens consumed", - ["team_id", "experiment_id", "model"], - registry=self.registry, - ) - - self.llm_output_tokens_total = Counter( - "alphatrion_llm_output_tokens_total", - "Total LLM output tokens consumed", - ["team_id", "experiment_id", "model"], - registry=self.registry, - ) - - # LLM Request metrics - self.llm_requests_total = Counter( - "alphatrion_llm_requests_total", - "Total number of LLM requests", - ["team_id", "experiment_id", "model", "status"], - registry=self.registry, - ) - - # LLM Latency metrics - self.llm_duration_seconds = Histogram( - "alphatrion_llm_duration_seconds", - "LLM request duration in seconds", - ["team_id", "experiment_id", "model"], - buckets=[0.1, 0.5, 1.0, 2.0, 5.0, 10.0, 30.0, 60.0], - registry=self.registry, - ) - - # Error tracking - self.llm_errors_total = Counter( - "alphatrion_llm_errors_total", - "Total LLM errors by type", - ["error_type"], - registry=self.registry, - ) - - def on_start(self, span: ReadableSpan, parent_context: Context | None = None): - """Called when a span is started. No-op for this processor.""" - pass - - def on_end(self, span: ReadableSpan): - """ - Called when a span ends. Extract metrics and push to Prometheus. - - Args: - span: The completed span - """ - try: - # Only process spans with traceloop attributes - # (same filter as ClickHouse exporter) - if not span.attributes or "traceloop.workflow.name" not in span.attributes: - return - - # Extract common attributes - attributes = {k: str(v) for k, v in span.attributes.items()} - team_id = attributes.get("team_id", "unknown") - experiment_id = attributes.get("experiment_id", "unknown") - - # Only process LLM spans - if "llm.usage.total_tokens" not in attributes: - return - - # Calculate duration in seconds - duration = (span.end_time - span.start_time) / 1_000_000_000 - - # Status - status_map = {0: "UNSET", 1: "OK", 2: "ERROR"} - status = status_map.get(span.status.status_code.value, "UNSET") - - # Track errors - if status == "ERROR": - error_type = self._classify_error(span, attributes) - self.llm_errors_total.labels( - error_type=error_type, - ).inc() - - # Process LLM-specific metrics - self._process_llm_span( - span, attributes, team_id, experiment_id, duration, status - ) - - # Push to gateway - self._push_metrics() - - except Exception as e: - logger.error(f"Failed to process span metrics: {e}", exc_info=True) - - def _classify_error(self, span: ReadableSpan, attributes: dict[str, str]) -> str: - """ - Classify error type from span. - - Args: - span: The span with error - attributes: Span attributes - - Returns: - Error type string - """ - # Check status message for common error patterns - status_msg = span.status.description or "" - status_msg_lower = status_msg.lower() - - # Common error patterns - if "timeout" in status_msg_lower or "timed out" in status_msg_lower: - return "timeout" - elif "rate limit" in status_msg_lower or "429" in status_msg_lower: - return "rate_limit" - elif ( - "auth" in status_msg_lower - or "401" in status_msg_lower - or "403" in status_msg_lower - ): - return "auth_error" - elif "not found" in status_msg_lower or "404" in status_msg_lower: - return "not_found" - elif "invalid" in status_msg_lower or "400" in status_msg_lower: - return "invalid_request" - elif "connection" in status_msg_lower or "network" in status_msg_lower: - return "connection_error" - elif ( - "500" in status_msg_lower - or "502" in status_msg_lower - or "503" in status_msg_lower - ): - return "server_error" - else: - return "unknown" - - def _process_llm_span( - self, - span: ReadableSpan, - attributes: dict[str, str], - team_id: str, - experiment_id: str, - duration: float, - status: str, - ): - """Process LLM-specific metrics from a span.""" - # Extract model name - model = attributes.get( - "gen_ai.request.model", attributes.get("gen_ai.response.model", "unknown") - ) - - # Token metrics - total_tokens = int(attributes.get("llm.usage.total_tokens", 0)) - input_tokens = int(attributes.get("gen_ai.usage.input_tokens", 0)) - output_tokens = int(attributes.get("gen_ai.usage.output_tokens", 0)) - - if total_tokens > 0: - self.llm_tokens_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - token_type="total", - ).inc(total_tokens) - - if input_tokens > 0: - self.llm_input_tokens_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - ).inc(input_tokens) - - self.llm_tokens_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - token_type="input", - ).inc(input_tokens) - - if output_tokens > 0: - self.llm_output_tokens_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - ).inc(output_tokens) - - self.llm_tokens_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - token_type="output", - ).inc(output_tokens) - - # Request count - self.llm_requests_total.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - status=status, - ).inc() - - # Duration - self.llm_duration_seconds.labels( - team_id=team_id, - experiment_id=experiment_id, - model=model, - ).observe(duration) - - def _push_metrics(self): - """Push metrics to Prometheus push gateway.""" - try: - # Use pushadd_to_gateway to accumulate counters instead of replacing them - pushadd_to_gateway( - self.pushgateway_url, - job=self.job_name, - registry=self.registry, - grouping_key=self.grouping_key, - ) - logger.debug("Successfully pushed metrics to Prometheus push gateway") - except Exception as e: - logger.warning(f"Failed to push metrics to Prometheus: {e}") - - def shutdown(self): - """Shutdown the processor and perform final push.""" - try: - self._push_metrics() - logger.info("PrometheusSpanProcessor shut down successfully") - except Exception as e: - logger.error(f"Error during PrometheusSpanProcessor shutdown: {e}") - - def force_flush(self, timeout_millis: int = 30000) -> bool: - """ - Force flush metrics to push gateway. - - Args: - timeout_millis: Timeout in milliseconds (not used) - - Returns: - True if successful, False otherwise - """ - try: - self._push_metrics() - return True - except Exception as e: - logger.error(f"Failed to force flush metrics: {e}") - return False diff --git a/alphatrion/tracing/span_processor.py b/alphatrion/tracing/span_processor.py index 4d5015a9..48e59660 100644 --- a/alphatrion/tracing/span_processor.py +++ b/alphatrion/tracing/span_processor.py @@ -10,6 +10,13 @@ logger = logging.getLogger(__name__) +# Semantic kind enums: +SEMANTIC_KIND_TOOL = "tool" +SEMANTIC_KIND_REASONING = "reasoning" +SEMANTIC_KIND_CHAT = "chat" +SEMANTIC_KIND_DB = "db" +SEMANTIC_KIND_UNKNOWN = "unknown" + class ContextAttributesSpanProcessor(SpanProcessor): """SpanProcessor that adds run_id, org_id, team_id, user_id, experiment_id to all spans. @@ -34,6 +41,9 @@ def on_start(self, span: Span, parent_context: Context | None = None) -> None: if run_id is None: # No run context, skip setting attributes + logger.debug( + "Span started with no run_id in context, skipping attribute injection" + ) return if exp_id is None: @@ -50,9 +60,7 @@ def on_start(self, span: Span, parent_context: Context | None = None) -> None: span.set_attribute("org_id", str(runtime.org_id)) span.set_attribute("team_id", str(runtime.team_id)) span.set_attribute("user_id", str(runtime.user_id)) - - if exp_id: - span.set_attribute("experiment_id", str(exp_id)) + span.set_attribute("experiment_id", str(exp_id)) except (RuntimeError, AttributeError) as e: logger.debug(f"Could not set span attributes in processor: {e}") diff --git a/alphatrion/utils/pricing.py b/alphatrion/utils/pricing.py new file mode 100644 index 00000000..d9fbf840 --- /dev/null +++ b/alphatrion/utils/pricing.py @@ -0,0 +1,121 @@ +"""LLM pricing utilities for cost calculation.""" + +import logging +from pathlib import Path +from typing import Any + +import yaml + +logger = logging.getLogger(__name__) + +# Cache pricing config in memory +_PRICING_CACHE: dict[str, Any] | None = None + + +def load_pricing_config() -> dict[str, Any]: + """Load pricing config from YAML file. + + Returns: + Dict with model pricing information + """ + global _PRICING_CACHE + + if _PRICING_CACHE is not None: + return _PRICING_CACHE + + config_path = Path(__file__).parent.parent.parent / "config" / "modelspec.yaml" + + try: + with open(config_path) as f: + config = yaml.safe_load(f) + _PRICING_CACHE = config + logger.info(f"Loaded pricing config from {config_path}") + return config + except Exception as e: + logger.error(f"Failed to load pricing config: {e}") + raise + + +def get_model_pricing(provider: str, model: str) -> dict[str, float]: + """Get pricing for a specific model. + + Args: + provider: Provider name (e.g., "anthropic", "zai-org") + model: Model name (e.g., "claude-4-sonnet", "GLM-4.7-Flash") + + Returns: + Dict with keys: input, output, cache_creation, cache_read (all in USD per MTok) + """ + config = load_pricing_config() + + # Search through all providers + provider_config = config.get(provider, {}) + models = provider_config.get("models", {}) + if model in models: + model_config = models[model] + # Map new field names to expected names + return { + "input_tokens_price": model_config["input_tokens_price"], + "output_tokens_price": model_config["output_tokens_price"], + "cache_creation_input_tokens_price": model_config[ + "cache_creation_input_tokens_price" + ], + "cache_read_input_tokens_price": model_config[ + "cache_read_input_tokens_price" + ], + } + + # Fall back to default + logger.warning(f"No pricing found for model '{model}', using default") + # default to anthropic/claude-4-sonnet. + return { + "input_tokens_price": 3.3, + "output_tokens_price": 16.5, + "cache_creation_input_tokens_price": 3.3, + "cache_read_input_tokens_price": 3.3, + } + + +def calculate_cost( + provider: str, + model: str, + input_tokens: int = 0, + output_tokens: int = 0, + cache_creation_input_tokens: int = 0, + cache_read_input_tokens: int = 0, +) -> dict[str, float]: + """Calculate cost from token usage. + + Args: + provider: Provider name (e.g., "anthropic", "deepinfra") + model: Model name (e.g., "claude-4-sonnet", "GLM-4.7-Flash") + input_tokens: Regular input tokens + output_tokens: Output tokens + cache_creation_input_tokens: Tokens written to cache + cache_read_input_tokens: Tokens read from cache + + Returns: + Dict with keys: input_cost, output_cost, cache_creation_cost, + cache_read_cost, total_cost (all in USD) + """ + pricing = get_model_pricing(provider, model) + + # Convert tokens to millions and multiply by price per MTok + input_cost = (input_tokens / 1_000_000) * pricing["input_tokens_price"] + output_cost = (output_tokens / 1_000_000) * pricing["output_tokens_price"] + cache_creation_cost = (cache_creation_input_tokens / 1_000_000) * pricing[ + "cache_creation_input_tokens_price" + ] + cache_read_cost = (cache_read_input_tokens / 1_000_000) * pricing[ + "cache_read_input_tokens_price" + ] + + total_cost = input_cost + output_cost + cache_creation_cost + cache_read_cost + + return { + "total_cost": round(total_cost, 8), + "input_cost": round(input_cost, 8), + "output_cost": round(output_cost, 8), + "cache_creation_input_cost": round(cache_creation_cost, 8), + "cache_read_input_cost": round(cache_read_cost, 8), + } diff --git a/config/grafana/dashboards/alphatrion-platform.json b/config/grafana/dashboards/alphatrion-platform.json index e977ff3e..8313a08b 100644 --- a/config/grafana/dashboards/alphatrion-platform.json +++ b/config/grafana/dashboards/alphatrion-platform.json @@ -12,67 +12,220 @@ "title": "Total Platform Tokens", "type": "stat", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 6, "x": 0, "y": 0}, - "targets": [{"expr": "sum(alphatrion_llm_tokens_total{token_type=\"total\"})", "refId": "A"}], + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 0 + }, + "targets": [ + { + "expr": "sum(llm_tokens_total{token_type=\"total\"})", + "refId": "A" + } + ], "fieldConfig": { "defaults": { "unit": "short", - "color": {"mode": "thresholds"}, - "thresholds": {"mode": "absolute", "steps": [{"color": "green", "value": null}]} + "color": { + "mode": "thresholds" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } } }, - "options": {"colorMode": "value", "graphMode": "area", "orientation": "auto"} + "options": { + "colorMode": "value", + "graphMode": "area", + "orientation": "auto" + } }, { "title": "Total Platform Requests", "type": "stat", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 6, "x": 6, "y": 0}, - "targets": [{"expr": "sum(alphatrion_llm_requests_total)", "refId": "A"}], + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 0 + }, + "targets": [ + { + "expr": "sum(llm_requests_total)", + "refId": "A" + } + ], "fieldConfig": { "defaults": { "unit": "short", - "color": {"mode": "thresholds"}, - "thresholds": {"mode": "absolute", "steps": [{"color": "green", "value": null}]} + "color": { + "mode": "thresholds" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } } }, - "options": {"colorMode": "value", "graphMode": "area", "orientation": "auto"} + "options": { + "colorMode": "value", + "graphMode": "area", + "orientation": "auto" + } }, { "title": "Error Rate", "type": "stat", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 6, "x": 12, "y": 0}, - "targets": [{"expr": "sum(rate(alphatrion_llm_requests_total{status=\"ERROR\"}[5m])) / sum(rate(alphatrion_llm_requests_total[5m]))", "refId": "A"}], + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 0 + }, + "targets": [ + { + "expr": "sum(rate(llm_requests_total{status=\"ERROR\"}[5m])) / sum(rate(llm_requests_total[5m]))", + "refId": "A" + } + ], "fieldConfig": { "defaults": { "unit": "percentunit", - "color": {"mode": "thresholds"}, - "thresholds": {"mode": "absolute", "steps": [{"color": "green", "value": null}, {"color": "red", "value": 0.05}]} + "color": { + "mode": "thresholds" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 0.05 + } + ] + } } }, - "options": {"colorMode": "value", "graphMode": "area", "orientation": "auto"} + "options": { + "colorMode": "value", + "graphMode": "area", + "orientation": "auto" + } + }, + { + "title": "Total Platform Cost", + "type": "stat", + "datasource": "Prometheus", + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 0 + }, + "targets": [ + { + "expr": "sum(llm_cost_total{cost_type=\"total\"})", + "refId": "A" + } + ], + "fieldConfig": { + "defaults": { + "unit": "currencyUSD", + "decimals": 4, + "color": { + "mode": "thresholds" + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 10 + }, + { + "color": "red", + "value": 100 + } + ] + } + } + }, + "options": { + "colorMode": "value", + "graphMode": "area", + "orientation": "auto" + } }, { "title": "Errors by Type", "type": "piechart", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 6, "x": 18, "y": 0}, - "targets": [{"expr": "sum by (error_type) (alphatrion_llm_errors_total)", "legendFormat": "{{error_type}}", "refId": "A"}], - "options": {"legend": {"displayMode": "list", "placement": "bottom"}, "pieType": "pie"} + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 5 + }, + "targets": [ + { + "expr": "sum by (error_type) (llm_errors_total)", + "legendFormat": "{{error_type}}", + "refId": "A" + } + ], + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + }, + "pieType": "pie" + } }, { "title": "Active Experiments (Time Window)", "type": "timeseries", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 12, "x": 0, "y": 6}, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 5 + }, "targets": [ - {"expr": "count(sum by (experiment_id) (increase(alphatrion_llm_requests_total[5m])) > 0)", "legendFormat": "Active Experiments", "refId": "A"} + { + "expr": "count(sum by (experiment_id) (increase(llm_requests_total[5m])) > 0)", + "legendFormat": "Active Experiments", + "refId": "A" + } ], "fieldConfig": { "defaults": { "unit": "short", - "color": {"mode": "fixed", "fixedColor": "blue"}, + "color": { + "mode": "fixed", + "fixedColor": "blue" + }, "custom": { "lineWidth": 2, "fillOpacity": 10, @@ -81,7 +234,10 @@ } }, "options": { - "legend": {"displayMode": "list", "placement": "bottom"} + "legend": { + "displayMode": "list", + "placement": "bottom" + } }, "description": "Number of unique experiments with activity in the last 5 minutes. Drops to 0 when experiments finish." }, @@ -89,14 +245,26 @@ "title": "Active Teams (Time Window)", "type": "timeseries", "datasource": "Prometheus", - "gridPos": {"h": 6, "w": 12, "x": 12, "y": 6}, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 5 + }, "targets": [ - {"expr": "count(sum by (team_id) (increase(alphatrion_llm_requests_total[5m])) > 0)", "legendFormat": "Active Teams", "refId": "A"} + { + "expr": "count(sum by (team_id) (increase(llm_requests_total[5m])) > 0)", + "legendFormat": "Active Teams", + "refId": "A" + } ], "fieldConfig": { "defaults": { "unit": "short", - "color": {"mode": "fixed", "fixedColor": "green"}, + "color": { + "mode": "fixed", + "fixedColor": "green" + }, "custom": { "lineWidth": 2, "fillOpacity": 10, @@ -105,7 +273,10 @@ } }, "options": { - "legend": {"displayMode": "list", "placement": "bottom"} + "legend": { + "displayMode": "list", + "placement": "bottom" + } }, "description": "Number of unique teams with activity in the last 5 minutes. Drops when teams stop running experiments." }, @@ -113,11 +284,38 @@ "title": "Token Usage (Platform-wide, Cumulative)", "type": "timeseries", "datasource": "Prometheus", - "gridPos": {"h": 8, "w": 24, "x": 0, "y": 12}, + "gridPos": { + "h": 8, + "w": 14, + "x": 0, + "y": 11 + }, "targets": [ - {"expr": "sum(alphatrion_llm_tokens_total{token_type=\"total\"})", "legendFormat": "Total Tokens", "refId": "A"}, - {"expr": "sum(alphatrion_llm_input_tokens_total)", "legendFormat": "Input Tokens", "refId": "B"}, - {"expr": "sum(alphatrion_llm_output_tokens_total)", "legendFormat": "Output Tokens", "refId": "C"} + { + "expr": "sum(llm_tokens_total{token_type=\"input\"})", + "legendFormat": "Input Tokens", + "refId": "A" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"output\"})", + "legendFormat": "Output Tokens", + "refId": "B" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"cache_read_input\"})", + "legendFormat": "Cache Read Input Tokens", + "refId": "C" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"cache_creation_input\"})", + "legendFormat": "Cache Creation Input Tokens", + "refId": "D" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"total\"})", + "legendFormat": "Total Tokens", + "refId": "E" + } ], "fieldConfig": { "defaults": { @@ -128,67 +326,468 @@ }, "overrides": [ { - "matcher": {"id": "byName", "options": "Total Tokens"}, + "matcher": { + "id": "byName", + "options": "Input Tokens" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "green" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Output Tokens" + }, "properties": [ - {"id": "color", "value": {"mode": "fixed", "fixedColor": "blue"}}, - {"id": "custom.lineWidth", "value": 3} + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "orange" + } + } ] }, { - "matcher": {"id": "byName", "options": "Input Tokens"}, + "matcher": { + "id": "byName", + "options": "Cache Read Input Tokens" + }, "properties": [ - {"id": "color", "value": {"mode": "fixed", "fixedColor": "green"}} + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "purple" + } + } ] }, { - "matcher": {"id": "byName", "options": "Output Tokens"}, + "matcher": { + "id": "byName", + "options": "Cache Creation Input Tokens" + }, "properties": [ - {"id": "color", "value": {"mode": "fixed", "fixedColor": "orange"}} + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "yellow" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total Tokens" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "blue" + } + }, + { + "id": "custom.lineWidth", + "value": 3 + } ] } ] }, - "options": {"legend": {"displayMode": "list", "placement": "bottom"}}, - "description": "Accumulated tokens across ALL teams and experiments. Total = Input + Output. Should keep growing as you run more experiments." + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + } + }, + "description": "Accumulated tokens across ALL teams and experiments. Total = Input + Output + Cache tokens. Should keep growing as you run more experiments." + }, + { + "title": "Cost Usage (Platform-wide, Cumulative)", + "type": "timeseries", + "datasource": "Prometheus", + "gridPos": { + "h": 8, + "w": 14, + "x": 0, + "y": 19 + }, + "targets": [ + { + "expr": "sum(llm_cost_total{cost_type=\"total\"})", + "legendFormat": "Total Cost", + "refId": "A" + }, + { + "expr": "sum(llm_input_cost_total)", + "legendFormat": "Input Cost", + "refId": "B" + }, + { + "expr": "sum(llm_output_cost_total)", + "legendFormat": "Output Cost", + "refId": "C" + }, + { + "expr": "sum(llm_cache_read_cost_total)", + "legendFormat": "Cache Read Cost", + "refId": "D" + }, + { + "expr": "sum(llm_cache_creation_cost_total)", + "legendFormat": "Cache Creation Cost", + "refId": "E" + } + ], + "fieldConfig": { + "defaults": { + "unit": "currencyUSD", + "decimals": 4, + "custom": { + "fillOpacity": 10, + "lineWidth": 2 + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Total Cost" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "blue" + } + }, + { + "id": "custom.lineWidth", + "value": 3 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Input Cost" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "green" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Output Cost" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "orange" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cache Read Cost" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "purple" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cache Creation Cost" + }, + "properties": [ + { + "id": "color", + "value": { + "mode": "fixed", + "fixedColor": "yellow" + } + } + ] + } + ] + }, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom" + } + }, + "description": "Accumulated costs in USD across ALL teams and experiments. Tracks input, output, and cache-related costs." + }, + { + "title": "Token Breakdown by Type", + "type": "piechart", + "datasource": "Prometheus", + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 11 + }, + "targets": [ + { + "expr": "sum(llm_tokens_total{token_type=\"input\"})", + "legendFormat": "Input", + "refId": "A" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"output\"})", + "legendFormat": "Output", + "refId": "B" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"cache_read_input\"})", + "legendFormat": "Cache Read Input", + "refId": "C" + }, + { + "expr": "sum(llm_tokens_total{token_type=\"cache_creation_input\"})", + "legendFormat": "Cache Creation Input", + "refId": "D" + } + ], + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] + }, + "pieType": "pie" + } + }, + { + "title": "Cost Breakdown by Type", + "type": "piechart", + "datasource": "Prometheus", + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 19 + }, + "targets": [ + { + "expr": "sum(llm_input_cost_total)", + "legendFormat": "Input", + "refId": "A" + }, + { + "expr": "sum(llm_output_cost_total)", + "legendFormat": "Output", + "refId": "B" + }, + { + "expr": "sum(llm_cache_read_cost_total)", + "legendFormat": "Cache Read", + "refId": "C" + }, + { + "expr": "sum(llm_cache_creation_cost_total)", + "legendFormat": "Cache Creation", + "refId": "D" + } + ], + "fieldConfig": { + "defaults": { + "unit": "currencyUSD", + "decimals": 4 + } + }, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] + }, + "pieType": "pie" + } }, { "title": "Requests by Model", "type": "piechart", "datasource": "Prometheus", - "gridPos": {"h": 8, "w": 12, "x": 0, "y": 20}, - "targets": [{"expr": "sum by (model) (alphatrion_llm_requests_total)", "legendFormat": "{{model}}", "refId": "A"}], - "options": {"legend": {"displayMode": "table", "placement": "right", "values": ["value"]}, "pieType": "pie"} + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 27 + }, + "targets": [ + { + "expr": "sum by (model) (llm_requests_total)", + "legendFormat": "{{model}}", + "refId": "A" + } + ], + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] + }, + "pieType": "pie" + } }, { "title": "Tokens by Model", "type": "piechart", "datasource": "Prometheus", - "gridPos": {"h": 8, "w": 12, "x": 12, "y": 20}, - "targets": [{"expr": "sum by (model) (alphatrion_llm_tokens_total{token_type=\"total\"})", "legendFormat": "{{model}}", "refId": "A"}], - "options": {"legend": {"displayMode": "table", "placement": "right", "values": ["value"]}, "pieType": "pie"} + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 27 + }, + "targets": [ + { + "expr": "sum by (model) (llm_tokens_total{token_type=\"total\"})", + "legendFormat": "{{model}}", + "refId": "A" + } + ], + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] + }, + "pieType": "pie" + } + }, + { + "title": "Cost by Model", + "type": "piechart", + "datasource": "Prometheus", + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 27 + }, + "targets": [ + { + "expr": "sum by (model) (llm_cost_total{cost_type=\"total\"})", + "legendFormat": "{{model}}", + "refId": "A" + } + ], + "fieldConfig": { + "defaults": { + "unit": "currencyUSD", + "decimals": 4 + } + }, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "values": [ + "value" + ] + }, + "pieType": "pie" + } }, { "title": "LLM Latency (P50, P95) by Model", "type": "timeseries", "datasource": "Prometheus", - "gridPos": {"h": 8, "w": 24, "x": 0, "y": 28}, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 34 + }, "targets": [ - {"expr": "histogram_quantile(0.95, sum by (model, le) (rate(alphatrion_llm_duration_seconds_bucket[5m])))", "legendFormat": "p95 - {{model}}", "refId": "A"}, - {"expr": "histogram_quantile(0.50, sum by (model, le) (rate(alphatrion_llm_duration_seconds_bucket[5m])))", "legendFormat": "p50 - {{model}}", "refId": "B"} + { + "expr": "histogram_quantile(0.95, sum by (model, le) (rate(llm_request_duration_seconds_bucket[5m])))", + "legendFormat": "p95 - {{model}}", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.50, sum by (model, le) (rate(llm_request_duration_seconds_bucket[5m])))", + "legendFormat": "p50 - {{model}}", + "refId": "B" + } ], - "fieldConfig": {"defaults": {"unit": "s"}}, - "options": {"legend": {"displayMode": "table", "placement": "right", "calcs": ["mean", "max"]}} + "fieldConfig": { + "defaults": { + "unit": "s" + } + }, + "options": { + "legend": { + "displayMode": "table", + "placement": "right", + "calcs": [ + "mean", + "max" + ] + } + } } ], "refresh": "10s", "schemaVersion": 38, "style": "dark", - "tags": ["alphatrion", "platform"], - "templating": {"list": []}, - "time": {"from": "now-24h", "to": "now"}, + "tags": [ + "alphatrion", + "platform" + ], + "templating": { + "list": [] + }, + "time": { + "from": "now-24h", + "to": "now" + }, "timepicker": {}, "timezone": "browser", "title": "AlphaTrion - Platform Dashboard", "uid": "alphatrion-platform", "version": 1 -} +} \ No newline at end of file diff --git a/config/modelspec.yaml b/config/modelspec.yaml new file mode 100644 index 00000000..49a0933c --- /dev/null +++ b/config/modelspec.yaml @@ -0,0 +1,34 @@ +# Model specifications and pricing +# All prices are in USD per 1 million tokens (MTok) +# Last updated: 2025-04-01 + +anthropic: + models: [] + +deepinfra: + models: + zai-org/GLM-4.7-Flash: + description: "" + input_tokens_price: 0.06 + output_tokens_price: 0.4 + cache_read_input_tokens_price: 0.01 + cache_creation_input_tokens_price: 0.06 + moonshotai/Kimi-K2.5: + description: "" + input_tokens_price: 0.45 + output_tokens_price: 2.25 + cache_read_input_tokens_price: 0.07 + cache_creation_input_tokens_price: 0.45 + Qwen/Qwen3-Coder-480B-A35B-Instruct: + description: "" + quantization: "fp8" + input_tokens_price: 0.4 + output_tokens_price: 1.6 + cache_read_input_tokens_price: 0.4 + cache_creation_input_tokens_price: 0.4 + openai/gpt-oss-120b: + description: "" + input_tokens_price: 0.039 + output_tokens_price: 0.19 + cache_read_input_tokens_price: 0.039 + cache_creation_input_tokens_price: 0.039 \ No newline at end of file diff --git a/dashboard/src/components/dashboard/daily-cost-usage-chart.tsx b/dashboard/src/components/dashboard/daily-cost-usage-chart.tsx new file mode 100644 index 00000000..8e6e2c43 --- /dev/null +++ b/dashboard/src/components/dashboard/daily-cost-usage-chart.tsx @@ -0,0 +1,294 @@ +import { useMemo } from 'react'; +import { + LineChart, + Line, + XAxis, + YAxis, + CartesianGrid, + Tooltip, + Legend, + ResponsiveContainer, +} from 'recharts'; +import { format, subDays, startOfDay } from 'date-fns'; +import type { DailyCostUsage } from '../../hooks/use-cost-usage'; + +interface DailyCostUsageChartProps { + data: DailyCostUsage[]; + timeRange: '7days' | '1month' | '3months'; +} + +type TimeRange = '7days' | '1month' | '3months'; + +const TIME_RANGE_OPTIONS: { value: TimeRange; label: string; days: number }[] = [ + { value: '7days', label: '7 Days', days: 7 }, + { value: '1month', label: '1 Month', days: 30 }, + { value: '3months', label: '3 Months', days: 90 }, +]; + +export function DailyCostUsageChart({ data, timeRange }: DailyCostUsageChartProps) { + const chartData = useMemo(() => { + const selectedRange = TIME_RANGE_OPTIONS.find((r) => r.value === timeRange); + if (!selectedRange) return []; + + const now = new Date(); + + // Create date map for aggregation - fill all dates with 0 + const dateMap = new Map(); + + // Initialize all dates in range with 0 + for (let i = 0; i < selectedRange.days; i++) { + const date = subDays(now, selectedRange.days - 1 - i); + const dateKey = format(startOfDay(date), 'yyyy-MM-dd'); + dateMap.set(dateKey, { + totalCost: 0, + totalTokens: 0, + inputTokens: 0, + outputTokens: 0, + cacheReadInputTokens: 0, + cacheCreationInputTokens: 0, + }); + } + + // Fill in actual data + data.forEach((item) => { + const dateKey = format(new Date(item.date), 'yyyy-MM-dd'); + if (dateMap.has(dateKey)) { + dateMap.set(dateKey, { + totalCost: item.totalCost, + totalTokens: item.totalTokens, + inputTokens: item.inputTokens, + outputTokens: item.outputTokens, + cacheReadInputTokens: item.cacheReadInputTokens, + cacheCreationInputTokens: item.cacheCreationInputTokens, + }); + } + }); + + // Convert to array and format for chart + return Array.from(dateMap.entries()) + .map(([date, values]) => ({ + date, + displayDate: format(new Date(date), 'MMM dd'), + totalCost: values.totalCost, + totalTokens: values.totalTokens, + inputTokens: values.inputTokens, + outputTokens: values.outputTokens, + cacheReadInputTokens: values.cacheReadInputTokens, + cacheCreationInputTokens: values.cacheCreationInputTokens, + })) + .sort((a, b) => a.date.localeCompare(b.date)); + }, [data, timeRange]); + + // Calculate totals across all days + const totalCost = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.totalCost, 0); + }, [chartData]); + + const totalTokens = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.totalTokens, 0); + }, [chartData]); + + const totalInputTokens = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.inputTokens, 0); + }, [chartData]); + + const totalOutputTokens = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.outputTokens, 0); + }, [chartData]); + + const totalCacheReadInputTokens = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.cacheReadInputTokens, 0); + }, [chartData]); + + const totalCacheCreationInputTokens = useMemo(() => { + return chartData.reduce((sum, item) => sum + item.cacheCreationInputTokens, 0); + }, [chartData]); + + return ( +
+
+

Cost & Token Usage

+
+ ${totalCost.toFixed(4)} • {totalTokens.toLocaleString()} tokens (in:{totalInputTokens.toLocaleString()} out:{totalOutputTokens.toLocaleString()} cache-r:{totalCacheReadInputTokens.toLocaleString()} cache-c:{totalCacheCreationInputTokens.toLocaleString()}) +
+
+ + + + + + {/* Left Y-Axis for Tokens */} + { + if (value >= 1000000) return `${(value / 1000000).toFixed(1)}M`; + if (value >= 1000) return `${(value / 1000).toFixed(1)}K`; + return value.toString(); + }} + label={{ + value: 'Tokens', + angle: -90, + position: 'insideLeft', + offset: 0, + style: { textAnchor: 'middle', fontSize: 9 } + }} + /> + {/* Right Y-Axis for Cost */} + + value >= 1 + ? `$${value.toFixed(2)}` + : value >= 0.01 + ? `$${value.toFixed(3)}` + : `$${value.toFixed(4)}` + } + label={{ + value: 'Cost (USD)', + angle: 90, + position: 'insideRight', + offset: 0, + style: { textAnchor: 'middle', fontSize: 9 } + }} + /> + { + if (!active || !payload || !payload.length) return null; + const data = payload[0].payload; + return ( +
+
{label}
+
+
+
+ Cost: + ${data.totalCost.toFixed(4)} +
+
+
+ Total Tokens: + {data.totalTokens.toLocaleString()} +
+
+
+ Input: + {data.inputTokens.toLocaleString()} +
+
+
+ Output: + {data.outputTokens.toLocaleString()} +
+
+
+ Cache Read: + {data.cacheReadInputTokens.toLocaleString()} +
+
+
+ Cache Creation: + {data.cacheCreationInputTokens.toLocaleString()} +
+
+
+ ); + }} + /> + + {/* Token Lines - Left Y-Axis */} + + + + + + {/* Cost Line - Right Y-Axis */} + +
+
+
+ ); +} diff --git a/dashboard/src/components/traces/trace-timeline.tsx b/dashboard/src/components/traces/trace-timeline.tsx index f529e087..b08ea212 100644 --- a/dashboard/src/components/traces/trace-timeline.tsx +++ b/dashboard/src/components/traces/trace-timeline.tsx @@ -1,4 +1,4 @@ -import { useState, useMemo } from 'react'; +import { useState, useMemo, useEffect } from 'react'; import { ChevronDown, ChevronRight, Clock, Zap, Database, Globe, Bot, X, GitBranch } from 'lucide-react'; import type { Span } from '../../types'; import { Card, CardContent } from '../ui/card'; @@ -26,28 +26,53 @@ const STATUS_COLORS: Record = { 'UNSET': 'bg-green-500', // Treat UNSET as successful (default behavior) }; -// Span type detection and styling +// Span type styling - uses backend's semanticKind directly as label const getSpanType = (span: Span): { label: string; icon: JSX.Element; badgeColor: string } => { - const name = span.spanName.toLowerCase(); - const kind = span.spanKind; - - if (name.includes('openai') || name.includes('chat') || name.includes('completion')) { - return { label: 'LLM', icon: , badgeColor: 'bg-purple-100 text-purple-700 border-purple-200' }; - } - if (kind === 'CLIENT' || name.includes('http') || name.includes('api')) { - return { label: 'API', icon: , badgeColor: 'bg-blue-100 text-blue-700 border-blue-200' }; - } - if (name.includes('db') || name.includes('database') || name.includes('query')) { - return { label: 'DB', icon: , badgeColor: 'bg-cyan-100 text-cyan-700 border-cyan-200' }; - } - if (span.spanAttributes?.['traceloop.span.kind'] === 'workflow') { - return { label: 'Workflow', icon: , badgeColor: 'bg-indigo-100 text-indigo-700 border-indigo-200' }; - } - if (span.spanAttributes?.['traceloop.span.kind'] === 'task') { - return { label: 'Task', icon: , badgeColor: 'bg-amber-100 text-amber-700 border-amber-200' }; + const semantic = span.semanticKind; + + // Map semantic kinds to icons and colors + let icon = ; + let badgeColor = 'bg-gray-100 text-gray-700 border-gray-200'; + + switch (semantic) { + case 'tool': + icon = ; + badgeColor = 'bg-lime-100 text-lime-700 border-lime-200'; + break; + case 'reasoning': + icon = ; + badgeColor = 'bg-amber-100 text-amber-700 border-amber-200'; + break; + case 'chat': + icon = ; + badgeColor = 'bg-sky-100 text-sky-700 border-sky-200'; + break; + case 'db': + icon = ; + badgeColor = 'bg-cyan-100 text-cyan-700 border-cyan-200'; + break; + case 'workflow': + icon = ; + badgeColor = 'bg-emerald-100 text-emerald-700 border-emerald-200'; + break; + case 'task': + icon = ; + badgeColor = 'bg-indigo-100 text-indigo-700 border-indigo-200'; + break; + case 'agent': + icon = ; + badgeColor = 'bg-violet-100 text-violet-700 border-violet-200'; + break; + case 'unknown': + default: + icon = ; + badgeColor = 'bg-slate-100 text-slate-700 border-slate-200'; } - return { label: 'Span', icon: , badgeColor: 'bg-gray-100 text-gray-700 border-gray-200' }; + // Use semanticKind directly as label (capitalize) + const label = semantic.charAt(0).toUpperCase() + semantic.slice(1); + + return { label, icon, badgeColor }; }; export function TraceTimeline({ spans }: TraceTimelineProps) { @@ -56,6 +81,12 @@ export function TraceTimeline({ spans }: TraceTimelineProps) { return new Set(spans.filter(s => !s.parentSpanId || s.parentSpanId === '').map(s => s.spanId)); }); const [selectedSpan, setSelectedSpan] = useState(null); + const [showAllAttributes, setShowAllAttributes] = useState(false); + + // Reset showAllAttributes when span changes + useEffect(() => { + setShowAllAttributes(false); + }, [selectedSpan]); const expandAll = () => { const allSpanIds = new Set(spans.map(s => s.spanId)); @@ -323,6 +354,7 @@ export function TraceTimeline({ spans }: TraceTimelineProps) { const renderSpanDetails = (span: Span) => { const spanType = getSpanType(span); const attrs = span.spanAttributes || {}; + const semantic = span.semanticKind; // Extract model parameters const model = attrs['gen_ai.request.model'] || attrs['gen_ai.response.model']; @@ -353,8 +385,12 @@ export function TraceTimeline({ spans }: TraceTimelineProps) { i++; } - // Check if this is a simple span (no prompts/completions, just basic info) - const isSimpleSpan = prompts.length === 0 && completions.length === 0; + const hasChatHistory = prompts.length > 0 || completions.length > 0; + + // Extract function input/output for workflow and task spans + const functionInput = attrs['traceloop.entity.input']; + const functionOutput = attrs['traceloop.entity.output']; + const hasFunctionIO = functionInput || functionOutput; return ( @@ -378,42 +414,8 @@ export function TraceTimeline({ spans }: TraceTimelineProps) { - {/* Span Attributes */} - {Object.keys(span.spanAttributes).length > 0 && ( -
-
- Span Attributes -
-
- {Object.entries(span.spanAttributes).map(([key, value]) => ( -
- {key}: - {value} -
- ))} -
-
- )} - - {/* Resource Attributes */} - {Object.keys(span.resourceAttributes).length > 0 && ( -
-
- Resource Attributes -
-
- {Object.entries(span.resourceAttributes).map(([key, value]) => ( -
- {key}: - {value} -
- ))} -
-
- )} - - {/* Model Configuration - only show if model parameters exist */} - {!isSimpleSpan && model && ( + {/* Model Configuration - show for chat/reasoning */} + {(semantic === 'chat' || semantic === 'reasoning') && model && (
@@ -442,11 +444,32 @@ export function TraceTimeline({ spans }: TraceTimelineProps) {
)} + {/* Function Input/Output - show for workflow and task spans */} + {(semantic === 'workflow' || semantic === 'task') && hasFunctionIO && ( +
+ {functionInput && ( +
+
+ Input +
+
{functionInput}
+
+ )} + {functionOutput && ( +
+
+ Output +
+
{functionOutput}
+
+ )} +
+ )} - {/* Content - Prompts and Completions */} - {(prompts.length > 0 || completions.length > 0) && ( -
- {/* Prompts */} + + {/* Chat History - for chat/reasoning spans */} + {(semantic === 'chat' || semantic === 'reasoning') && hasChatHistory && ( +
{prompts.map((prompt, idx) => (
@@ -459,9 +482,7 @@ export function TraceTimeline({ spans }: TraceTimelineProps) {
))} - {/* Completions */} {completions.map((completion, idx) => { - // Determine color based on role let roleColor = 'bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400'; if (completion.role === 'thinking') { roleColor = 'bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-400'; @@ -487,6 +508,57 @@ export function TraceTimeline({ spans }: TraceTimelineProps) {
)} + {/* Show All Attributes Toggle */} + {(Object.keys(span.spanAttributes).length > 0 || Object.keys(span.resourceAttributes).length > 0) && ( +
+ + + {showAllAttributes && ( +
+ {/* Span Attributes */} + {Object.keys(span.spanAttributes).length > 0 && ( +
+
+ Span Attributes +
+
+ {Object.entries(span.spanAttributes).map(([key, value]) => ( +
+ {key}: + {value} +
+ ))} +
+
+ )} + + {/* Resource Attributes */} + {Object.keys(span.resourceAttributes).length > 0 && ( +
+
+ Resource Attributes +
+
+ {Object.entries(span.resourceAttributes).map(([key, value]) => ( +
+ {key}: + {value} +
+ ))} +
+
+ )} +
+ )} +
+ )} + ); diff --git a/dashboard/src/hooks/use-cost-usage.ts b/dashboard/src/hooks/use-cost-usage.ts new file mode 100644 index 00000000..69095e80 --- /dev/null +++ b/dashboard/src/hooks/use-cost-usage.ts @@ -0,0 +1,35 @@ +import { useQuery } from '@tanstack/react-query'; +import { graphqlQuery, queries } from '../lib/graphql-client'; + +export interface DailyCostUsage { + date: string; + totalCost: number; + totalTokens: number; + inputTokens: number; + outputTokens: number; + cacheReadInputTokens: number; + cacheCreationInputTokens: number; +} + +interface GetDailyCostUsageResponse { + dailyCostUsage: DailyCostUsage[]; +} + +/** + * Hook to fetch daily cost usage for a team + * Only includes LLM calls (spans with alphatrion.cost.total_tokens) + */ +export function useDailyCostUsage(teamId: string, days = 30) { + return useQuery({ + queryKey: ['dailyCostUsage', teamId, days], + queryFn: async () => { + const data = await graphqlQuery( + queries.getDailyCostUsage, + { teamId, days } + ); + return data.dailyCostUsage; + }, + enabled: !!teamId, + staleTime: 5 * 60 * 1000, // 5 minutes + }); +} diff --git a/dashboard/src/lib/graphql-client.ts b/dashboard/src/lib/graphql-client.ts index 1ae016a7..0163e350 100644 --- a/dashboard/src/lib/graphql-client.ts +++ b/dashboard/src/lib/graphql-client.ts @@ -20,6 +20,24 @@ const getApiBaseUrl = () => { const API_BASE_URL = getApiBaseUrl(); const GRAPHQL_ENDPOINT = `${API_BASE_URL}/graphql`; +// Setup axios interceptor to handle auth errors globally +axios.interceptors.response.use( + (response) => response, + (error) => { + // Check for 401 Unauthorized or 403 Forbidden + if (error.response?.status === 401 || error.response?.status === 403) { + // Clear stored auth data + localStorage.removeItem('alphatrion_token'); + localStorage.removeItem('alphatrion_org_id'); + localStorage.removeItem('alphatrion_user_id'); + + // Redirect to login page + window.location.href = '/login'; + } + return Promise.reject(error); + } +); + export interface GraphQLResponse { data?: T; errors?: Array<{ @@ -86,6 +104,7 @@ export async function graphqlQuery( return response.data.data; } catch (error) { + // Auth errors are handled by axios interceptor if (axios.isAxiosError(error)) { throw new Error( `GraphQL request failed: ${error.message}` @@ -152,10 +171,13 @@ export const queries = { totalDatasets totalAgents totalSessions - aggregatedTokens { + aggregatedUsage { totalTokens inputTokens outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost } } } @@ -244,10 +266,13 @@ export const queries = { status createdAt updatedAt - aggregatedTokens { + aggregatedUsage { totalTokens inputTokens outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost } traceStats { totalSpans @@ -293,10 +318,13 @@ export const queries = { duration status createdAt - aggregatedTokens { + aggregatedUsage { totalTokens inputTokens outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost } metrics { id @@ -421,6 +449,20 @@ export const queries = { } `, + getDailyCostUsage: ` + query GetDailyCostUsage($teamId: ID!, $days: Int = 30) { + dailyCostUsage(teamId: $teamId, days: $days) { + date + totalCost + totalTokens + inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens + } + } + `, + listDatasets: ` query ListDatasets($teamId: ID!, $page: Int, $pageSize: Int) { datasets(teamId: $teamId, page: $page, pageSize: $pageSize) { diff --git a/dashboard/src/pages/dashboard/index.tsx b/dashboard/src/pages/dashboard/index.tsx index b1dcb4d1..c076e85d 100644 --- a/dashboard/src/pages/dashboard/index.tsx +++ b/dashboard/src/pages/dashboard/index.tsx @@ -2,7 +2,7 @@ import { useState, useMemo } from 'react'; import { useTeamContext } from '../../context/team-context'; import { useTeam } from '../../hooks/use-teams'; import { useTeamExperiments } from '../../hooks/use-team-experiments'; -import { useDailyTokenUsage } from '../../hooks/use-token-usage'; +import { useDailyCostUsage } from '../../hooks/use-cost-usage'; import { useModelDistributions } from '../../hooks/use-model-distributions'; import { Card, @@ -12,10 +12,10 @@ import { Button } from '../../components/ui/button'; import { Skeleton } from '../../components/ui/skeleton'; import { ExperimentsTimelineChart } from '../../components/dashboard/experiments-timeline-chart'; import { ExperimentsStatusChart } from '../../components/dashboard/experiments-status-chart'; -import { DailyTokenUsageChart } from '../../components/dashboard/daily-token-usage-chart'; +import { DailyCostUsageChart } from '../../components/dashboard/daily-cost-usage-chart'; import { ModelDistributionChart } from '../../components/dashboard/model-distribution-chart'; import { subDays, subMonths } from 'date-fns'; -import { FlaskConical, Coins, Bot, MessagesSquare } from 'lucide-react'; +import { FlaskConical, Coins, Bot, MessagesSquare, DollarSign } from 'lucide-react'; type TimeRange = '7days' | '1month' | '3months'; @@ -39,7 +39,7 @@ export function DashboardPage() { // Get days for selected time range const days = TIME_RANGE_OPTIONS.find((opt) => opt.value === timeRange)?.days || 30; - const { data: dailyTokenUsage, isLoading: tokenUsageLoading } = useDailyTokenUsage( + const { data: dailyCostUsage, isLoading: costUsageLoading } = useDailyCostUsage( selectedTeamId || '', days ); @@ -144,9 +144,9 @@ export function DashboardPage() {

TOKENS

- {(team?.aggregatedTokens?.totalTokens || 0).toLocaleString()} + {(team?.aggregatedUsage?.totalTokens || 0).toLocaleString()} - ({(team?.aggregatedTokens?.inputTokens || 0).toLocaleString()}↓ {(team?.aggregatedTokens?.outputTokens || 0).toLocaleString()}↑) + ({(team?.aggregatedUsage?.inputTokens || 0).toLocaleString()}↓ {(team?.aggregatedUsage?.outputTokens || 0).toLocaleString()}↑)

@@ -156,6 +156,23 @@ export function DashboardPage() {
+ + {/* Total Cost */} + + +
+
+

COST

+

+ ${(team?.aggregatedUsage?.totalCost || 0).toFixed(4)} +

+
+
+ +
+
+
+
)} @@ -172,8 +189,8 @@ export function DashboardPage() { size="sm" onClick={() => setTimeRange(option.value)} className={`h-7 px-2 text-[11px] transition-colors ${timeRange === option.value - ? 'bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100' - : 'bg-white hover:bg-gray-50' + ? 'bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100' + : 'bg-white hover:bg-gray-50' }`} > {option.label} @@ -207,7 +224,7 @@ export function DashboardPage() {
- {/* Second Row: Model Distribution and Token Usage */} + {/* Second Row: Model Distribution and Combined Cost/Token Usage */}
{/* Model Distribution Pie Chart */} @@ -220,16 +237,16 @@ export function DashboardPage() { - {/* Token Usage Chart */} + {/* Combined Cost & Token Usage Chart */} - {tokenUsageLoading ? ( + {costUsageLoading ? ( - ) : dailyTokenUsage ? ( - + ) : dailyCostUsage ? ( + ) : (
- No token usage data available for this time range + No usage data available for this time range
)}
diff --git a/dashboard/src/pages/experiments/[id].tsx b/dashboard/src/pages/experiments/[id].tsx index e753fbdf..4ce284e6 100644 --- a/dashboard/src/pages/experiments/[id].tsx +++ b/dashboard/src/pages/experiments/[id].tsx @@ -189,12 +189,12 @@ export function ExperimentDetailPage() {
Total Tokens
- {experiment.aggregatedTokens?.totalTokens !== undefined && experiment.aggregatedTokens.totalTokens > 0 ? ( + {experiment.aggregatedUsage?.totalTokens !== undefined && experiment.aggregatedUsage.totalTokens > 0 ? ( <> - {Number(experiment.aggregatedTokens.totalTokens).toLocaleString()} - {experiment.aggregatedTokens.inputTokens !== undefined && experiment.aggregatedTokens.outputTokens !== undefined && ( + {Number(experiment.aggregatedUsage.totalTokens).toLocaleString()} + {experiment.aggregatedUsage.inputTokens !== undefined && experiment.aggregatedUsage.outputTokens !== undefined && ( - ({Number(experiment.aggregatedTokens.inputTokens).toLocaleString()}↓ {Number(experiment.aggregatedTokens.outputTokens).toLocaleString()}↑) + ({Number(experiment.aggregatedUsage.inputTokens).toLocaleString()}↓ {Number(experiment.aggregatedUsage.outputTokens).toLocaleString()}↑) )} @@ -203,6 +203,16 @@ export function ExperimentDetailPage() { )}
+
+
Total Cost
+
+ {experiment.aggregatedUsage?.totalCost !== undefined && experiment.aggregatedUsage.totalCost > 0 ? ( + <>${experiment.aggregatedUsage.totalCost.toFixed(4)} + ) : ( + - + )} +
+
Duration
diff --git a/dashboard/src/pages/runs/[id].tsx b/dashboard/src/pages/runs/[id].tsx index dad847c1..ee9d8332 100644 --- a/dashboard/src/pages/runs/[id].tsx +++ b/dashboard/src/pages/runs/[id].tsx @@ -106,65 +106,75 @@ export function RunDetailPage() { {/* Run Overview */} - -

Overview

-
-
-
Total Tokens
-
- {run.aggregatedTokens?.totalTokens !== undefined && run.aggregatedTokens.totalTokens > 0 ? ( - <> - {Number(run.aggregatedTokens.totalTokens).toLocaleString()} - - ({Number(run.aggregatedTokens.inputTokens || 0).toLocaleString()}↓ {Number(run.aggregatedTokens.outputTokens || 0).toLocaleString()}↑) - - - ) : ( - - - )} -
-
-
-
Duration
-
- {run.duration !== undefined && run.duration > 0 ? ( - formatDuration(run.duration) - ) : ( - - - )} -
-
-
-
Created
-
- {formatDistanceToNow(new Date(run.createdAt), { - addSuffix: true, - })} -
-
-
- - - {/* Metadata */} - {run.meta && Object.keys(run.meta).filter(k => k !== 'execution_result').length > 0 && ( -
-

Metadata

+ +

Overview

- {Object.entries(run.meta) - .filter(([key]) => key !== 'execution_result') - .map(([key, value]) => ( -
-
{key}
-
- {typeof value === 'string' ? value : JSON.stringify(value)} -
-
- ))} +
+
Total Tokens
+
+ {run.aggregatedUsage?.totalTokens !== undefined && run.aggregatedUsage.totalTokens > 0 ? ( + <> + {Number(run.aggregatedUsage.totalTokens).toLocaleString()} + + ({Number(run.aggregatedUsage.inputTokens || 0).toLocaleString()}↓ {Number(run.aggregatedUsage.outputTokens || 0).toLocaleString()}↑) + + + ) : ( + - + )} +
+
+
+
Total Cost
+
+ {run.aggregatedUsage?.totalCost !== undefined && run.aggregatedUsage.totalCost > 0 ? ( + <>${run.aggregatedUsage.totalCost.toFixed(4)} + ) : ( + - + )} +
+
+
+
Duration
+
+ {run.duration !== undefined && run.duration > 0 ? ( + formatDuration(run.duration) + ) : ( + - + )} +
+
+
+
Created
+
+ {formatDistanceToNow(new Date(run.createdAt), { + addSuffix: true, + })} +
+
-
- )} -
-
+ + + {/* Metadata */} + {run.meta && Object.keys(run.meta).filter(k => k !== 'execution_result').length > 0 && ( +
+

Metadata

+
+ {Object.entries(run.meta) + .filter(([key]) => key !== 'execution_result') + .map(([key, value]) => ( +
+
{key}
+
+ {typeof value === 'string' ? value : JSON.stringify(value)} +
+
+ ))} +
+
+ )} + + {/* Metrics */} diff --git a/dashboard/src/pages/runs/index.tsx b/dashboard/src/pages/runs/index.tsx index 2d486979..9845046a 100644 --- a/dashboard/src/pages/runs/index.tsx +++ b/dashboard/src/pages/runs/index.tsx @@ -162,9 +162,9 @@ export function RunsPage() { {filteredRuns.map((run) => { - const totalTokens = run.aggregatedTokens?.totalTokens || 0; - const inputTokens = run.aggregatedTokens?.inputTokens || 0; - const outputTokens = run.aggregatedTokens?.outputTokens || 0; + const totalTokens = run.aggregatedUsage?.totalTokens || 0; + const inputTokens = run.aggregatedUsage?.inputTokens || 0; + const outputTokens = run.aggregatedUsage?.outputTokens || 0; return ( { - const totalTokens = runs.reduce((sum, r) => sum + (r.aggregatedTokens?.totalTokens || 0), 0); - const inputTokens = runs.reduce((sum, r) => sum + (r.aggregatedTokens?.inputTokens || 0), 0); - const outputTokens = runs.reduce((sum, r) => sum + (r.aggregatedTokens?.outputTokens || 0), 0); + const totalTokens = runs.reduce((sum, r) => sum + (r.aggregatedUsage?.totalTokens || 0), 0); + const inputTokens = runs.reduce((sum, r) => sum + (r.aggregatedUsage?.inputTokens || 0), 0); + const outputTokens = runs.reduce((sum, r) => sum + (r.aggregatedUsage?.outputTokens || 0), 0); const totalDuration = runs.reduce((sum, r) => sum + (r.duration || 0), 0); const avgDuration = runs.length > 0 ? totalDuration / runs.length : 0; const completedRuns = runs.filter(r => r.status === 'COMPLETED').length; @@ -309,9 +309,9 @@ export function SessionDetailPage() { return runs.map((run, idx) => ({ index: idx + 1, name: `Run ${idx + 1}`, - inputTokens: run.aggregatedTokens?.inputTokens || 0, - outputTokens: run.aggregatedTokens?.outputTokens || 0, - totalTokens: run.aggregatedTokens?.totalTokens || 0, + inputTokens: run.aggregatedUsage?.inputTokens || 0, + outputTokens: run.aggregatedUsage?.outputTokens || 0, + totalTokens: run.aggregatedUsage?.totalTokens || 0, })); }, [runs]); @@ -646,367 +646,364 @@ export function SessionDetailPage() {
{runSpans.slice(completionsPage * COMPLETIONS_PAGE_SIZE, (completionsPage + 1) * COMPLETIONS_PAGE_SIZE).map((runWithSpans, idx) => { const actualIdx = completionsPage * COMPLETIONS_PAGE_SIZE + idx; - const isExpanded = selectedRunIdx === actualIdx; - - // Extract user input from spans - // Sort spans by timestamp to get the first one - const sortedSpans = [...runWithSpans.spans].sort((a, b) => { - const timeA = a.timestamp ? new Date(a.timestamp).getTime() : 0; - const timeB = b.timestamp ? new Date(b.timestamp).getTime() : 0; - return timeA - timeB; - }); - - // Try to find user input from the first span with content (skip processing spans) - let userInput = ''; - for (const span of sortedSpans) { - const attrs = span.spanAttributes || {}; - - // Try different attribute paths in order of likelihood - const promptContent = attrs['gen_ai.prompt.0.content'] as string; - - if (promptContent && promptContent.trim()) { - userInput = promptContent; - break; + const isExpanded = selectedRunIdx === actualIdx; + + // Extract user input from spans + // Sort spans by timestamp to get the first one + const sortedSpans = [...runWithSpans.spans].sort((a, b) => { + const timeA = a.timestamp ? new Date(a.timestamp).getTime() : 0; + const timeB = b.timestamp ? new Date(b.timestamp).getTime() : 0; + return timeA - timeB; + }); + + // Try to find user input from the first span with content (skip processing spans) + let userInput = ''; + for (const span of sortedSpans) { + const attrs = span.spanAttributes || {}; + + // Try different attribute paths in order of likelihood + const promptContent = attrs['gen_ai.prompt.0.content'] as string; + + if (promptContent && promptContent.trim()) { + userInput = promptContent; + break; + } + + // Fallback to other possible locations + if (!userInput) { + userInput = attrs['llm.prompts.0.content'] as string || + attrs['input.value'] as string || + attrs['input'] as string || ''; + } + + if (userInput && userInput.trim()) break; } - // Fallback to other possible locations - if (!userInput) { - userInput = attrs['llm.prompts.0.content'] as string || - attrs['input.value'] as string || - attrs['input'] as string || ''; - } + const displayInput = userInput.length > 100 ? userInput.substring(0, 100) + '...' : userInput; + + return ( + { + setSelectedRunIdx(isExpanded ? null : actualIdx); + setSelectedTimelineItemIdx(null); // Reset timeline item selection + }} + > + + {/* Completion Header */} +
+
+
+ {/* User Input */} +
+ {userInput ? ( +

+ {displayInput} +

+ ) : ( +

+ [No user input] +

+ )} + + {runWithSpans.run.status} + +
+ + {/* Metadata */} +
+ {formatDistanceToNow(new Date(runWithSpans.run.createdAt), { addSuffix: true })} + {runWithSpans.run.duration && ( + <> + + + {formatDuration(runWithSpans.run.duration)} + + )} + {runWithSpans.run.aggregatedUsage && runWithSpans.run.aggregatedUsage.totalTokens > 0 && ( + <> + + + {runWithSpans.run.aggregatedUsage.totalTokens.toLocaleString()} tokens + + )} + {runWithSpans.spans.length > 0 && ( + <> + + {runWithSpans.spans.length} span{runWithSpans.spans.length !== 1 ? 's' : ''} + + )} +
+
+
- if (userInput && userInput.trim()) break; - } + {/* Expanded Content */} + {isExpanded && ( +
- const displayInput = userInput.length > 100 ? userInput.substring(0, 100) + '...' : userInput; - - return ( - { - setSelectedRunIdx(isExpanded ? null : actualIdx); - setSelectedTimelineItemIdx(null); // Reset timeline item selection - }} - > - - {/* Completion Header */} -
-
-
- {/* User Input */} -
- {userInput ? ( -

- {displayInput} -

- ) : ( -

- [No user input] -

- )} - - {runWithSpans.run.status} - -
+ {/* Timeline */} +
+ {(() => { + // Build timeline from all spans + const timeline = buildTimelineFromSpans(runWithSpans.spans, runWithSpans.run.duration || 0); - {/* Metadata */} -
- {formatDistanceToNow(new Date(runWithSpans.run.createdAt), { addSuffix: true })} - {runWithSpans.run.duration && ( - <> - - - {formatDuration(runWithSpans.run.duration)} - - )} - {runWithSpans.run.aggregatedTokens && runWithSpans.run.aggregatedTokens.totalTokens > 0 && ( - <> - - - {runWithSpans.run.aggregatedTokens.totalTokens.toLocaleString()} tokens - - )} - {runWithSpans.spans.length > 0 && ( - <> - - {runWithSpans.spans.length} span{runWithSpans.spans.length !== 1 ? 's' : ''} - - )} -
-
-
- - {/* Expanded Content */} - {isExpanded && ( -
- - {/* Timeline */} -
- {(() => { - // Build timeline from all spans - const timeline = buildTimelineFromSpans(runWithSpans.spans, runWithSpans.run.duration || 0); - - if (timeline.length === 0) { - return ( -
- No timeline data available -
- ); - } - - // Get actual time range from timeline items - const timestamps = timeline.filter(t => t.timestamp && t.timestamp > 0).map(t => t.timestamp!); - const minTimestamp = Math.min(...timestamps); - const maxTimestamp = Math.max(...timestamps); - - // Calculate actual duration based on timestamps, with padding for last operation - const lastItem = timeline[timeline.length - 1]; - const lastItemEnd = lastItem.timestamp && lastItem.duration - ? lastItem.timestamp + (lastItem.duration * 1000) - : maxTimestamp; - const totalDurationMs = Math.max(lastItemEnd - minTimestamp, 1000); // At least 1 second - - return ( - <> - {/* Timeline Header */} -
-
-

Timeline

- - {timeline.length - 1} operations • {formatDuration(totalDurationMs / 1000)} - -
- {runWithSpans.run.aggregatedTokens && ( -
- - {runWithSpans.run.aggregatedTokens.inputTokens}↓ {runWithSpans.run.aggregatedTokens.outputTokens}↑ -
- )} -
- - {/* Timeline Table */} -
- {/* Column Headers */} -
-
- Operation + if (timeline.length === 0) { + return ( +
+ No timeline data available
-
- Duration -
-
- Timeline + ); + } + + // Get actual time range from timeline items + const timestamps = timeline.filter(t => t.timestamp && t.timestamp > 0).map(t => t.timestamp!); + const minTimestamp = Math.min(...timestamps); + const maxTimestamp = Math.max(...timestamps); + + // Calculate actual duration based on timestamps, with padding for last operation + const lastItem = timeline[timeline.length - 1]; + const lastItemEnd = lastItem.timestamp && lastItem.duration + ? lastItem.timestamp + (lastItem.duration * 1000) + : maxTimestamp; + const totalDurationMs = Math.max(lastItemEnd - minTimestamp, 1000); // At least 1 second + + return ( + <> + {/* Timeline Header */} +
+
+

Timeline

+ + {timeline.length - 1} operations • {formatDuration(totalDurationMs / 1000)} + +
+ {runWithSpans.run.aggregatedUsage && ( +
+ + {runWithSpans.run.aggregatedUsage.inputTokens}↓ {runWithSpans.run.aggregatedUsage.outputTokens}↑ +
+ )}
-
- - {/* Timeline Rows */} - {timeline.map((item, idx) => { - const hasActualDuration = item.duration !== undefined && item.duration > 0; - const displayDuration = item.duration || 0; - - // Position: bar STARTS at timestamp and extends for duration - const itemTimestamp = item.timestamp || minTimestamp; - const startOffsetMs = itemTimestamp - minTimestamp; - const leftPercent = (startOffsetMs / totalDurationMs) * 100; - - // Bar width: how long the operation takes - const durationMs = displayDuration * 1000; - const widthPercent = (durationMs / totalDurationMs) * 100; - - let badgeColor = ''; - let barColor = ''; - let icon = null; - let typeLabel = ''; - - if (item.type === 'user_input') { - badgeColor = 'bg-green-100 text-green-700 border-green-200'; - barColor = 'bg-green-500'; - icon = ; - typeLabel = 'User'; - } else if (item.type === 'thinking') { - badgeColor = 'bg-purple-100 text-purple-700 border-purple-200'; - barColor = 'bg-purple-500'; - icon = ; - typeLabel = 'Think'; - } else if (item.type === 'text') { - badgeColor = 'bg-gray-100 text-gray-700 border-gray-200'; - barColor = 'bg-gray-500'; - icon = ; - typeLabel = 'Text'; - } else if (item.type === 'tool_use') { - if (item.isError) { - badgeColor = 'bg-red-100 text-red-700 border-red-200'; - barColor = 'bg-red-500'; - } else { - badgeColor = 'bg-blue-100 text-blue-700 border-blue-200'; - barColor = 'bg-blue-500'; - } - icon = ; - typeLabel = 'Tool'; - } else if (item.type === 'processing') { - badgeColor = 'bg-slate-100 text-slate-600 border-slate-200'; - barColor = 'bg-slate-400'; - icon = ; - typeLabel = 'Proc'; - } - - return ( -
-
{ - e.stopPropagation(); - setSelectedTimelineItemIdx(selectedTimelineItemIdx === idx ? null : idx); - }} - > - {/* Operation Name */} -
- - {icon} - {typeLabel} - - - {item.name} - -
- {/* Duration */} -
- - {hasActualDuration ? formatDuration(displayDuration) : ~0ms} - -
- - {/* Timeline Bar */} -
- {hasActualDuration && ( -
- {formatDuration(displayDuration)} -
- )} -
+ {/* Timeline Table */} +
+ {/* Column Headers */} +
+
+ Operation
+
+ Duration +
+
+ Timeline +
+
- {/* Details Panel */} - {selectedTimelineItemIdx === idx && item.type !== 'processing' && ( -
- {item.type === 'user_input' && item.content && ( -
-
User Input
-
-
-                                                    {item.content}
-                                                  
-
+ {/* Timeline Rows */} + {timeline.map((item, idx) => { + const hasActualDuration = item.duration !== undefined && item.duration > 0; + const displayDuration = item.duration || 0; + + // Position: bar STARTS at timestamp and extends for duration + const itemTimestamp = item.timestamp || minTimestamp; + const startOffsetMs = itemTimestamp - minTimestamp; + const leftPercent = (startOffsetMs / totalDurationMs) * 100; + + // Bar width: how long the operation takes + const durationMs = displayDuration * 1000; + const widthPercent = (durationMs / totalDurationMs) * 100; + + let badgeColor = ''; + let barColor = ''; + let icon = null; + let typeLabel = ''; + + if (item.type === 'user_input') { + badgeColor = 'bg-green-100 text-green-700 border-green-200'; + barColor = 'bg-green-500'; + icon = ; + typeLabel = 'User'; + } else if (item.type === 'thinking') { + badgeColor = 'bg-purple-100 text-purple-700 border-purple-200'; + barColor = 'bg-purple-500'; + icon = ; + typeLabel = 'Think'; + } else if (item.type === 'text') { + badgeColor = 'bg-gray-100 text-gray-700 border-gray-200'; + barColor = 'bg-gray-500'; + icon = ; + typeLabel = 'Text'; + } else if (item.type === 'tool_use') { + if (item.isError) { + badgeColor = 'bg-red-100 text-red-700 border-red-200'; + barColor = 'bg-red-500'; + } else { + badgeColor = 'bg-blue-100 text-blue-700 border-blue-200'; + barColor = 'bg-blue-500'; + } + icon = ; + typeLabel = 'Tool'; + } else if (item.type === 'processing') { + badgeColor = 'bg-slate-100 text-slate-600 border-slate-200'; + barColor = 'bg-slate-400'; + icon = ; + typeLabel = 'Proc'; + } + + return ( +
+
{ + e.stopPropagation(); + setSelectedTimelineItemIdx(selectedTimelineItemIdx === idx ? null : idx); + }} + > + {/* Operation Name */} +
+ + {icon} + {typeLabel} + + + {item.name} +
- )} - {item.type === 'thinking' && item.content && ( -
-
Thinking
-
-
-                                                    {item.content}
-                                                  
-
+ {/* Duration */} +
+ + {hasActualDuration ? formatDuration(displayDuration) : ~0ms} +
- )} - {item.type === 'text' && item.content && ( -
-
Response
-
-
-                                                    {item.content}
-                                                  
-
+ {/* Timeline Bar */} +
+ {hasActualDuration && ( +
+ {formatDuration(displayDuration)} +
+ )}
- )} +
+ + {/* Details Panel */} + {selectedTimelineItemIdx === idx && item.type !== 'processing' && ( +
+ {item.type === 'user_input' && item.content && ( +
+
User Input
+
+
+                                                        {item.content}
+                                                      
+
+
+ )} - {item.type === 'tool_use' && ( -
- {item.input && ( + {item.type === 'thinking' && item.content && (
-
Input
+
Thinking
-
-                                                        {(() => {
-                                                          try {
-                                                            return JSON.stringify(JSON.parse(item.input), null, 2);
-                                                          } catch {
-                                                            return item.input;
-                                                          }
-                                                        })()}
+                                                      
+                                                        {item.content}
                                                       
)} - {item.output && ( + {item.type === 'text' && item.content && (
-
Output
+
Response
-
-                                                        {item.output}
+                                                      
+                                                        {item.content}
                                                       
)} - {item.isError && ( -
-

- Tool execution failed -

+ {item.type === 'tool_use' && ( +
+ {item.input && ( +
+
Input
+
+
+                                                            {(() => {
+                                                              try {
+                                                                return JSON.stringify(JSON.parse(item.input), null, 2);
+                                                              } catch {
+                                                                return item.input;
+                                                              }
+                                                            })()}
+                                                          
+
+
+ )} + + {item.output && ( +
+
Output
+
+
+                                                            {item.output}
+                                                          
+
+
+ )} + + {item.isError && ( +
+

+ Tool execution failed +

+
+ )}
)}
)}
- )} -
- ); - })} -
- - ); - })()} + ); + })} +
+ + ); + })()} +
-
- )} - - - ); - })} -
- - {/* Pagination */} - - + )} + + + ); + })} +
+ + {/* Pagination */} + + )} diff --git a/dashboard/src/types/index.ts b/dashboard/src/types/index.ts index 604af9b1..df11c6a8 100644 --- a/dashboard/src/types/index.ts +++ b/dashboard/src/types/index.ts @@ -19,10 +19,13 @@ export enum AgentType { CLAUDE = 1, } -export interface TokenStats { +export interface AggregatedUsage { totalTokens: number; inputTokens: number; outputTokens: number; + cacheReadInputTokens: number; + cacheCreationInputTokens: number; + totalCost: number; } export interface Team { @@ -38,7 +41,7 @@ export interface Team { totalDatasets: number; totalAgents: number; totalSessions: number; - aggregatedTokens: TokenStats; + aggregatedUsage: AggregatedUsage; } export interface Organization { @@ -87,7 +90,7 @@ export interface Experiment { status: Status; createdAt: string; updatedAt: string; - aggregatedTokens: TokenStats; + aggregatedUsage: AggregatedUsage; traceStats?: TraceStats; metrics?: Metric[]; } @@ -102,7 +105,7 @@ export interface Run { duration: number; status: Status; createdAt: string; - aggregatedTokens: TokenStats; + aggregatedUsage: AggregatedUsage; metrics?: Metric[]; spans?: Span[]; } diff --git a/dashboard/static/assets/index-BN5cvIeh.css b/dashboard/static/assets/index-BN5cvIeh.css deleted file mode 100644 index a0b07b19..00000000 --- a/dashboard/static/assets/index-BN5cvIeh.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 20% 98%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 93.4%;--input: 214.3 31.8% 93.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}*{border-color:hsl(var(--border))}html,body,#root{height:100%;overflow:hidden}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-40{z-index:40}.z-50{z-index:50}.col-span-12{grid-column:span 12 / span 12}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[200px\]{height:200px}.h-\[550px\]{height:550px}.h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-9{min-height:2.25rem}.min-h-\[36px\]{min-height:36px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[12\%\]{width:12%}.w-\[14\%\]{width:14%}.w-\[18px\]{width:18px}.w-\[20\%\]{width:20%}.w-\[28\%\]{width:28%}.w-\[8\%\]{width:8%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.max-w-5xl{max-width:64rem}.max-w-\[100px\]{max-width:100px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-sm{border-top-right-radius:calc(var(--radius) - 4px);border-bottom-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-y-\[10px\]{border-top-width:10px;border-bottom-width:10px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r-\[7px\]{border-right-width:7px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-current{border-color:currentColor}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-fuchsia-300{--tw-border-opacity: 1;border-color:rgb(240 171 252 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-300{--tw-border-opacity: 1;border-color:rgb(165 180 252 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-lime-300{--tw-border-opacity: 1;border-color:rgb(190 242 100 / var(--tw-border-opacity, 1))}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-pink-300{--tw-border-opacity: 1;border-color:rgb(249 168 212 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-purple-300{--tw-border-opacity: 1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-stone-300{--tw-border-opacity: 1;border-color:rgb(214 211 209 / var(--tw-border-opacity, 1))}.border-teal-300{--tw-border-opacity: 1;border-color:rgb(94 234 212 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.border-zinc-300{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}.border-y-transparent{border-top-color:transparent;border-bottom-color:transparent}.border-r-amber-100{--tw-border-opacity: 1;border-right-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-r-blue-100{--tw-border-opacity: 1;border-right-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-r-cyan-100{--tw-border-opacity: 1;border-right-color:rgb(207 250 254 / var(--tw-border-opacity, 1))}.border-r-emerald-100{--tw-border-opacity: 1;border-right-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-r-fuchsia-100{--tw-border-opacity: 1;border-right-color:rgb(250 232 255 / var(--tw-border-opacity, 1))}.border-r-green-100{--tw-border-opacity: 1;border-right-color:rgb(220 252 231 / var(--tw-border-opacity, 1))}.border-r-indigo-100{--tw-border-opacity: 1;border-right-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-r-lime-100{--tw-border-opacity: 1;border-right-color:rgb(236 252 203 / var(--tw-border-opacity, 1))}.border-r-orange-100{--tw-border-opacity: 1;border-right-color:rgb(255 237 213 / var(--tw-border-opacity, 1))}.border-r-pink-100{--tw-border-opacity: 1;border-right-color:rgb(252 231 243 / var(--tw-border-opacity, 1))}.border-r-purple-100{--tw-border-opacity: 1;border-right-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.border-r-red-100{--tw-border-opacity: 1;border-right-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-r-rose-100{--tw-border-opacity: 1;border-right-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-r-sky-100{--tw-border-opacity: 1;border-right-color:rgb(224 242 254 / var(--tw-border-opacity, 1))}.border-r-slate-100{--tw-border-opacity: 1;border-right-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-r-stone-100{--tw-border-opacity: 1;border-right-color:rgb(245 245 244 / var(--tw-border-opacity, 1))}.border-r-teal-100{--tw-border-opacity: 1;border-right-color:rgb(204 251 241 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.border-r-violet-100{--tw-border-opacity: 1;border-right-color:rgb(237 233 254 / var(--tw-border-opacity, 1))}.border-r-yellow-100{--tw-border-opacity: 1;border-right-color:rgb(254 249 195 / var(--tw-border-opacity, 1))}.border-r-zinc-100{--tw-border-opacity: 1;border-right-color:rgb(244 244 245 / var(--tw-border-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-fuchsia-100{--tw-bg-opacity: 1;background-color:rgb(250 232 255 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-lime-100{--tw-bg-opacity: 1;background-color:rgb(236 252 203 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-400{--tw-bg-opacity: 1;background-color:rgb(192 132 252 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-stone-100{--tw-bg-opacity: 1;background-color:rgb(245 245 244 / var(--tw-bg-opacity, 1))}.bg-teal-100{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-slate-100{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-1{padding-left:.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-1\.5{padding-right:.375rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.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)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-fuchsia-700{--tw-text-opacity: 1;color:rgb(162 28 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-lime-700{--tw-text-opacity: 1;color:rgb(77 124 15 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-pink-700{--tw-text-opacity: 1;color:rgb(190 24 93 / var(--tw-text-opacity, 1))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-stone-700{--tw-text-opacity: 1;color:rgb(68 64 60 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-zinc-700{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary{--tw-ring-color: hsl(var(--primary))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-width:0px}.checked\:border-primary:checked{border-color:hsl(var(--primary))}.checked\:bg-primary:checked{background-color:hsl(var(--primary))}.hover\:border-blue-200:hover{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/30:hover{background-color:hsl(var(--accent) / .3)}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/20:hover{background-color:hsl(var(--muted) / .2)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-blue-50:focus{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=active\]\:block[data-state=active]{display:block}.data-\[state\=inactive\]\:hidden[data-state=inactive]{display:none}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 37 84 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(66 32 6 / var(--tw-bg-opacity, 1))}.dark\:from-slate-900:is(.dark *){--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-slate-800:is(.dark *){--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:max-w-\[440px\]{max-width:440px}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/dashboard/static/assets/index-CQp73O8i.css b/dashboard/static/assets/index-CQp73O8i.css new file mode 100644 index 00000000..d6907f86 --- /dev/null +++ b/dashboard/static/assets/index-CQp73O8i.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 20% 98%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 93.4%;--input: 214.3 31.8% 93.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}*{border-color:hsl(var(--border))}html,body,#root{height:100%;overflow:hidden}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-40{z-index:40}.z-50{z-index:50}.col-span-12{grid-column:span 12 / span 12}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[200px\]{height:200px}.h-\[550px\]{height:550px}.h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-9{min-height:2.25rem}.min-h-\[36px\]{min-height:36px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[12\%\]{width:12%}.w-\[14\%\]{width:14%}.w-\[18px\]{width:18px}.w-\[20\%\]{width:20%}.w-\[28\%\]{width:28%}.w-\[8\%\]{width:8%}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.max-w-5xl{max-width:64rem}.max-w-\[100px\]{max-width:100px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-sm{border-top-right-radius:calc(var(--radius) - 4px);border-bottom-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-y-\[10px\]{border-top-width:10px;border-bottom-width:10px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r-\[7px\]{border-right-width:7px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-current{border-color:currentColor}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity, 1))}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-fuchsia-300{--tw-border-opacity: 1;border-color:rgb(240 171 252 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-300{--tw-border-opacity: 1;border-color:rgb(165 180 252 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-lime-200{--tw-border-opacity: 1;border-color:rgb(217 249 157 / var(--tw-border-opacity, 1))}.border-lime-300{--tw-border-opacity: 1;border-color:rgb(190 242 100 / var(--tw-border-opacity, 1))}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-pink-300{--tw-border-opacity: 1;border-color:rgb(249 168 212 / var(--tw-border-opacity, 1))}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-purple-300{--tw-border-opacity: 1;border-color:rgb(216 180 254 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-stone-300{--tw-border-opacity: 1;border-color:rgb(214 211 209 / var(--tw-border-opacity, 1))}.border-teal-300{--tw-border-opacity: 1;border-color:rgb(94 234 212 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-200{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.border-zinc-300{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}.border-y-transparent{border-top-color:transparent;border-bottom-color:transparent}.border-r-amber-100{--tw-border-opacity: 1;border-right-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-r-blue-100{--tw-border-opacity: 1;border-right-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-r-cyan-100{--tw-border-opacity: 1;border-right-color:rgb(207 250 254 / var(--tw-border-opacity, 1))}.border-r-emerald-100{--tw-border-opacity: 1;border-right-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-r-fuchsia-100{--tw-border-opacity: 1;border-right-color:rgb(250 232 255 / var(--tw-border-opacity, 1))}.border-r-green-100{--tw-border-opacity: 1;border-right-color:rgb(220 252 231 / var(--tw-border-opacity, 1))}.border-r-indigo-100{--tw-border-opacity: 1;border-right-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-r-lime-100{--tw-border-opacity: 1;border-right-color:rgb(236 252 203 / var(--tw-border-opacity, 1))}.border-r-orange-100{--tw-border-opacity: 1;border-right-color:rgb(255 237 213 / var(--tw-border-opacity, 1))}.border-r-pink-100{--tw-border-opacity: 1;border-right-color:rgb(252 231 243 / var(--tw-border-opacity, 1))}.border-r-purple-100{--tw-border-opacity: 1;border-right-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.border-r-red-100{--tw-border-opacity: 1;border-right-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-r-rose-100{--tw-border-opacity: 1;border-right-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-r-sky-100{--tw-border-opacity: 1;border-right-color:rgb(224 242 254 / var(--tw-border-opacity, 1))}.border-r-slate-100{--tw-border-opacity: 1;border-right-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-r-stone-100{--tw-border-opacity: 1;border-right-color:rgb(245 245 244 / var(--tw-border-opacity, 1))}.border-r-teal-100{--tw-border-opacity: 1;border-right-color:rgb(204 251 241 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.border-r-violet-100{--tw-border-opacity: 1;border-right-color:rgb(237 233 254 / var(--tw-border-opacity, 1))}.border-r-yellow-100{--tw-border-opacity: 1;border-right-color:rgb(254 249 195 / var(--tw-border-opacity, 1))}.border-r-zinc-100{--tw-border-opacity: 1;border-right-color:rgb(244 244 245 / var(--tw-border-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/50{background-color:hsl(var(--accent) / .5)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-fuchsia-100{--tw-bg-opacity: 1;background-color:rgb(250 232 255 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-lime-100{--tw-bg-opacity: 1;background-color:rgb(236 252 203 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-400{--tw-bg-opacity: 1;background-color:rgb(192 132 252 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-stone-100{--tw-bg-opacity: 1;background-color:rgb(245 245 244 / var(--tw-bg-opacity, 1))}.bg-teal-100{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-slate-100{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-1{padding-left:.25rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-1\.5{padding-right:.375rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.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)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-fuchsia-700{--tw-text-opacity: 1;color:rgb(162 28 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-lime-700{--tw-text-opacity: 1;color:rgb(77 124 15 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-pink-700{--tw-text-opacity: 1;color:rgb(190 24 93 / var(--tw-text-opacity, 1))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-stone-700{--tw-text-opacity: 1;color:rgb(68 64 60 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-zinc-700{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary{--tw-ring-color: hsl(var(--primary))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-width:0px}.checked\:border-primary:checked{border-color:hsl(var(--primary))}.checked\:bg-primary:checked{background-color:hsl(var(--primary))}.hover\:border-blue-200:hover{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/30:hover{background-color:hsl(var(--accent) / .3)}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/20:hover{background-color:hsl(var(--muted) / .2)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-blue-50:focus{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=active\]\:block[data-state=active]{display:block}.data-\[state\=inactive\]\:hidden[data-state=inactive]{display:none}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-slate-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/30:is(.dark *){background-color:#78350f4d}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 37 84 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-900\/10:is(.dark *){background-color:#7f1d1d1a}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(66 32 6 / var(--tw-bg-opacity, 1))}.dark\:from-slate-900:is(.dark *){--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-slate-800:is(.dark *){--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:max-w-\[440px\]{max-width:440px}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:col-span-4{grid-column:span 4 / span 4}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/dashboard/static/assets/index-DWJXXRKj.js b/dashboard/static/assets/index-DWJXXRKj.js new file mode 100644 index 00000000..beafc803 --- /dev/null +++ b/dashboard/static/assets/index-DWJXXRKj.js @@ -0,0 +1,928 @@ +var Iw=e=>{throw TypeError(e)};var Lm=(e,t,r)=>t.has(e)||Iw("Cannot "+r);var I=(e,t,r)=>(Lm(e,t,"read from private field"),r?r.call(e):t.get(e)),re=(e,t,r)=>t.has(e)?Iw("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Q=(e,t,r,n)=>(Lm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),me=(e,t,r)=>(Lm(e,t,"access private method"),r);var yf=(e,t,r,n)=>({set _(a){Q(e,t,a,r)},get _(){return I(e,t,n)}});function DM(e,t){for(var r=0;rn[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(a){if(a.ep)return;a.ep=!0;const i=r(a);fetch(a.href,i)}})();var xf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var bA={exports:{}},dp={},wA={exports:{}},be={};/** + * @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 qc=Symbol.for("react.element"),RM=Symbol.for("react.portal"),LM=Symbol.for("react.fragment"),FM=Symbol.for("react.strict_mode"),zM=Symbol.for("react.profiler"),BM=Symbol.for("react.provider"),UM=Symbol.for("react.context"),WM=Symbol.for("react.forward_ref"),KM=Symbol.for("react.suspense"),qM=Symbol.for("react.memo"),HM=Symbol.for("react.lazy"),Dw=Symbol.iterator;function VM(e){return e===null||typeof e!="object"?null:(e=Dw&&e[Dw]||e["@@iterator"],typeof e=="function"?e:null)}var SA={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jA=Object.assign,OA={};function dl(e,t,r){this.props=e,this.context=t,this.refs=OA,this.updater=r||SA}dl.prototype.isReactComponent={};dl.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=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,e,t,"setState")};dl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function NA(){}NA.prototype=dl.prototype;function c0(e,t,r){this.props=e,this.context=t,this.refs=OA,this.updater=r||SA}var f0=c0.prototype=new NA;f0.constructor=c0;jA(f0,dl.prototype);f0.isPureReactComponent=!0;var Rw=Array.isArray,PA=Object.prototype.hasOwnProperty,d0={current:null},AA={key:!0,ref:!0,__self:!0,__source:!0};function kA(e,t,r){var n,a={},i=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)PA.call(t,n)&&!AA.hasOwnProperty(n)&&(a[n]=t[n]);var s=arguments.length-2;if(s===1)a.children=r;else if(1>>1,q=T[H];if(0>>1;Ha(ve,W))Nea(we,ve)?(T[H]=we,T[Ne]=W,H=Ne):(T[H]=ve,T[Y]=W,H=Y);else if(Nea(we,W))T[H]=we,T[Ne]=W,H=Ne;else break e}}return F}function a(T,F){var W=T.sortIndex-F.sortIndex;return W!==0?W:T.id-F.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var l=[],u=[],f=1,d=null,h=3,p=!1,g=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(T){for(var F=r(u);F!==null;){if(F.callback===null)n(u);else if(F.startTime<=T)n(u),F.sortIndex=F.expirationTime,t(l,F);else break;F=r(u)}}function S(T){if(m=!1,b(T),!g)if(r(l)!==null)g=!0,C(w);else{var F=r(u);F!==null&&D(S,F.startTime-T)}}function w(T,F){g=!1,m&&(m=!1,x(P),P=-1),p=!0;var W=h;try{for(b(F),d=r(l);d!==null&&(!(d.expirationTime>F)||T&&!E());){var H=d.callback;if(typeof H=="function"){d.callback=null,h=d.priorityLevel;var q=H(d.expirationTime<=F);F=e.unstable_now(),typeof q=="function"?d.callback=q:d===r(l)&&n(l),b(F)}else n(l);d=r(l)}if(d!==null)var L=!0;else{var Y=r(u);Y!==null&&D(S,Y.startTime-F),L=!1}return L}finally{d=null,h=W,p=!1}}var O=!1,j=null,P=-1,A=5,_=-1;function E(){return!(e.unstable_now()-_T||125H?(T.sortIndex=W,t(u,T),r(l)===null&&T===r(u)&&(m?(x(P),P=-1):m=!0,D(S,W-H))):(T.sortIndex=q,t(l,T),g||p||(g=!0,C(w))),T},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(T){var F=h;return function(){var W=h;h=F;try{return T.apply(this,arguments)}finally{h=W}}}})($A);CA.exports=$A;var aI=CA.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 iI=N,Tr=aI;function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),uv=Object.prototype.hasOwnProperty,oI=/^[: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]*$/,Fw={},zw={};function sI(e){return uv.call(zw,e)?!0:uv.call(Fw,e)?!1:oI.test(e)?zw[e]=!0:(Fw[e]=!0,!1)}function lI(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function uI(e,t,r,n){if(t===null||typeof t>"u"||lI(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ir(e,t,r,n,a,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Lt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Lt[e]=new ir(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Lt[t]=new ir(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Lt[e]=new ir(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Lt[e]=new ir(e,2,!1,e,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(e){Lt[e]=new ir(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Lt[e]=new ir(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Lt[e]=new ir(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Lt[e]=new ir(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Lt[e]=new ir(e,5,!1,e.toLowerCase(),null,!1,!1)});var m0=/[\-:]([a-z])/g;function g0(e){return e[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(e){var t=e.replace(m0,g0);Lt[t]=new ir(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(m0,g0);Lt[t]=new ir(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(m0,g0);Lt[t]=new ir(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Lt[e]=new ir(e,1,!1,e.toLowerCase(),null,!1,!1)});Lt.xlinkHref=new ir("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Lt[e]=new ir(e,1,!1,e.toLowerCase(),null,!0,!0)});function v0(e,t,r,n){var a=Lt.hasOwnProperty(t)?Lt[t]:null;(a!==null?a.type!==0:n||!(2s||a[o]!==i[s]){var l=` +`+a[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{Bm=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?su(e):""}function cI(e){switch(e.tag){case 5:return su(e.type);case 16:return su("Lazy");case 13:return su("Suspense");case 19:return su("SuspenseList");case 0:case 2:case 15:return e=Um(e.type,!1),e;case 11:return e=Um(e.type.render,!1),e;case 1:return e=Um(e.type,!0),e;default:return""}}function hv(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ho:return"Fragment";case qo:return"Portal";case cv:return"Profiler";case y0:return"StrictMode";case fv:return"Suspense";case dv:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case DA:return(e.displayName||"Context")+".Consumer";case IA:return(e._context.displayName||"Context")+".Provider";case x0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case b0:return t=e.displayName||null,t!==null?t:hv(e.type)||"Memo";case Ma:t=e._payload,e=e._init;try{return hv(e(t))}catch{}}return null}function fI(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return hv(t);case 8:return t===y0?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function pi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function LA(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function dI(e){var t=LA(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var a=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){n=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Sf(e){e._valueTracker||(e._valueTracker=dI(e))}function FA(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=LA(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Ad(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function pv(e,t){var r=t.checked;return et({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Uw(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=pi(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function zA(e,t){t=t.checked,t!=null&&v0(e,"checked",t,!1)}function mv(e,t){zA(e,t);var r=pi(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?gv(e,t.type,r):t.hasOwnProperty("defaultValue")&&gv(e,t.type,pi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ww(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function gv(e,t,r){(t!=="number"||Ad(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var lu=Array.isArray;function ls(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=jf.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function $u(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var hu={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},hI=["Webkit","ms","Moz","O"];Object.keys(hu).forEach(function(e){hI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),hu[t]=hu[e]})});function KA(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||hu.hasOwnProperty(e)&&hu[e]?(""+t).trim():t+"px"}function qA(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,a=KA(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,a):e[r]=a}}var pI=et({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 xv(e,t){if(t){if(pI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function bv(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 wv=null;function w0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Sv=null,us=null,cs=null;function Hw(e){if(e=Gc(e)){if(typeof Sv!="function")throw Error(V(280));var t=e.stateNode;t&&(t=vp(t),Sv(e.stateNode,e.type,t))}}function HA(e){us?cs?cs.push(e):cs=[e]:us=e}function VA(){if(us){var e=us,t=cs;if(cs=us=null,Hw(e),t)for(e=0;e>>=0,e===0?32:31-(NI(e)/PI|0)|0}var Of=64,Nf=4194304;function uu(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Td(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,i=e.pingedLanes,o=r&268435455;if(o!==0){var s=o&~a;s!==0?n=uu(s):(i&=o,i!==0&&(n=uu(i)))}else o=r&~a,o!==0?n=uu(o):i!==0&&(n=uu(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&a)&&(a=n&-n,i=t&-t,a>=i||a===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function Hc(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-fn(t),e[t]=r}function _I(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=mu),t1=" ",r1=!1;function hk(e,t){switch(e){case"keyup":return aD.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pk(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Vo=!1;function oD(e,t){switch(e){case"compositionend":return pk(t);case"keypress":return t.which!==32?null:(r1=!0,t1);case"textInput":return e=t.data,e===t1&&r1?null:e;default:return null}}function sD(e,t){if(Vo)return e==="compositionend"||!E0&&hk(e,t)?(e=fk(),cd=P0=Ya=null,Vo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=o1(r)}}function yk(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?yk(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function xk(){for(var e=window,t=Ad();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Ad(e.document)}return t}function _0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function gD(e){var t=xk(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&yk(r.ownerDocument.documentElement,r)){if(n!==null&&_0(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=r.textContent.length,i=Math.min(n.start,a);n=n.end===void 0?i:Math.min(n.end,a),!e.extend&&i>n&&(a=n,n=i,i=a),a=s1(r,i);var o=s1(r,n);a&&o&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Go=null,kv=null,vu=null,Ev=!1;function l1(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Ev||Go==null||Go!==Ad(n)||(n=Go,"selectionStart"in n&&_0(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),vu&&Fu(vu,n)||(vu=n,n=Md(kv,"onSelect"),0Qo||(e.current=Iv[Qo],Iv[Qo]=null,Qo--)}function Be(e,t){Qo++,Iv[Qo]=e.current,e.current=t}var mi={},Ht=yi(mi),hr=yi(!1),uo=mi;function Cs(e,t){var r=e.type.contextTypes;if(!r)return mi;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in r)a[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function pr(e){return e=e.childContextTypes,e!=null}function Dd(){He(hr),He(Ht)}function m1(e,t,r){if(Ht.current!==mi)throw Error(V(168));Be(Ht,t),Be(hr,r)}function kk(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var a in n)if(!(a in t))throw Error(V(108,fI(e)||"Unknown",a));return et({},r,n)}function Rd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mi,uo=Ht.current,Be(Ht,e),Be(hr,hr.current),!0}function g1(e,t,r){var n=e.stateNode;if(!n)throw Error(V(169));r?(e=kk(e,t,uo),n.__reactInternalMemoizedMergedChildContext=e,He(hr),He(Ht),Be(Ht,e)):He(hr),Be(hr,r)}var Vn=null,yp=!1,rg=!1;function Ek(e){Vn===null?Vn=[e]:Vn.push(e)}function kD(e){yp=!0,Ek(e)}function xi(){if(!rg&&Vn!==null){rg=!0;var e=0,t=Me;try{var r=Vn;for(Me=1;e>=o,a-=o,Jn=1<<32-fn(t)+a|r<P?(A=j,j=null):A=j.sibling;var _=h(x,j,b[P],S);if(_===null){j===null&&(j=A);break}e&&j&&_.alternate===null&&t(x,j),v=i(_,v,P),O===null?w=_:O.sibling=_,O=_,j=A}if(P===b.length)return r(x,j),Ve&&Ci(x,P),w;if(j===null){for(;PP?(A=j,j=null):A=j.sibling;var E=h(x,j,_.value,S);if(E===null){j===null&&(j=A);break}e&&j&&E.alternate===null&&t(x,j),v=i(E,v,P),O===null?w=E:O.sibling=E,O=E,j=A}if(_.done)return r(x,j),Ve&&Ci(x,P),w;if(j===null){for(;!_.done;P++,_=b.next())_=d(x,_.value,S),_!==null&&(v=i(_,v,P),O===null?w=_:O.sibling=_,O=_);return Ve&&Ci(x,P),w}for(j=n(x,j);!_.done;P++,_=b.next())_=p(j,x,P,_.value,S),_!==null&&(e&&_.alternate!==null&&j.delete(_.key===null?P:_.key),v=i(_,v,P),O===null?w=_:O.sibling=_,O=_);return e&&j.forEach(function(k){return t(x,k)}),Ve&&Ci(x,P),w}function y(x,v,b,S){if(typeof b=="object"&&b!==null&&b.type===Ho&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case wf:e:{for(var w=b.key,O=v;O!==null;){if(O.key===w){if(w=b.type,w===Ho){if(O.tag===7){r(x,O.sibling),v=a(O,b.props.children),v.return=x,x=v;break e}}else if(O.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Ma&&x1(w)===O.type){r(x,O.sibling),v=a(O,b.props),v.ref=Wl(x,O,b),v.return=x,x=v;break e}r(x,O);break}else t(x,O);O=O.sibling}b.type===Ho?(v=ao(b.props.children,x.mode,S,b.key),v.return=x,x=v):(S=yd(b.type,b.key,b.props,null,x.mode,S),S.ref=Wl(x,v,b),S.return=x,x=S)}return o(x);case qo:e:{for(O=b.key;v!==null;){if(v.key===O)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){r(x,v.sibling),v=a(v,b.children||[]),v.return=x,x=v;break e}else{r(x,v);break}else t(x,v);v=v.sibling}v=cg(b,x.mode,S),v.return=x,x=v}return o(x);case Ma:return O=b._init,y(x,v,O(b._payload),S)}if(lu(b))return g(x,v,b,S);if(Ll(b))return m(x,v,b,S);Cf(x,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(r(x,v.sibling),v=a(v,b),v.return=x,x=v):(r(x,v),v=ug(b,x.mode,S),v.return=x,x=v),o(x)):r(x,v)}return y}var Ms=$k(!0),Mk=$k(!1),zd=yi(null),Bd=null,es=null,M0=null;function I0(){M0=es=Bd=null}function D0(e){var t=zd.current;He(zd),e._currentValue=t}function Lv(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function ds(e,t){Bd=e,M0=es=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(fr=!0),e.firstContext=null)}function Yr(e){var t=e._currentValue;if(M0!==e)if(e={context:e,memoizedValue:t,next:null},es===null){if(Bd===null)throw Error(V(308));es=e,Bd.dependencies={lanes:0,firstContext:e}}else es=es.next=e;return t}var zi=null;function R0(e){zi===null?zi=[e]:zi.push(e)}function Ik(e,t,r,n){var a=t.interleaved;return a===null?(r.next=r,R0(t)):(r.next=a.next,a.next=r),t.interleaved=r,fa(e,n)}function fa(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Ia=!1;function L0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Dk(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function na(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ai(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,Oe&2){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,fa(e,r)}return a=n.interleaved,a===null?(t.next=t,R0(n)):(t.next=a.next,a.next=t),n.interleaved=t,fa(e,r)}function dd(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,j0(e,r)}}function b1(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function Ud(e,t,r,n){var a=e.updateQueue;Ia=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,s=a.shared.pending;if(s!==null){a.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?i=u:o.next=u,o=l;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==o&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=l))}if(i!==null){var d=a.baseState;o=0,f=u=l=null,s=i;do{var h=s.lane,p=s.eventTime;if((n&h)===h){f!==null&&(f=f.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(h=t,p=r,m.tag){case 1:if(g=m.payload,typeof g=="function"){d=g.call(p,d,h);break e}d=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,h=typeof g=="function"?g.call(p,d,h):g,h==null)break e;d=et({},d,h);break e;case 2:Ia=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=a.effects,h===null?a.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=p,l=d):f=f.next=p,o|=h;if(s=s.next,s===null){if(s=a.shared.pending,s===null)break;h=s,s=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);if(f===null&&(l=d),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=f,t=a.shared.interleaved,t!==null){a=t;do o|=a.lane,a=a.next;while(a!==t)}else i===null&&(a.shared.lanes=0);ho|=o,e.lanes=o,e.memoizedState=d}}function w1(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=ag.transition;ag.transition={};try{e(!1),t()}finally{Me=r,ag.transition=n}}function Zk(){return Xr().memoizedState}function CD(e,t,r){var n=oi(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},eE(e))tE(t,r);else if(r=Ik(e,t,r,n),r!==null){var a=tr();dn(r,e,n,a),rE(r,t,n)}}function $D(e,t,r){var n=oi(e),a={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(eE(e))tE(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,s=i(o,r);if(a.hasEagerState=!0,a.eagerState=s,mn(s,o)){var l=t.interleaved;l===null?(a.next=a,R0(t)):(a.next=l.next,l.next=a),t.interleaved=a;return}}catch{}finally{}r=Ik(e,t,a,n),r!==null&&(a=tr(),dn(r,e,n,a),rE(r,t,n))}}function eE(e){var t=e.alternate;return e===Ze||t!==null&&t===Ze}function tE(e,t){yu=Kd=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function rE(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,j0(e,r)}}var qd={readContext:Yr,useCallback:zt,useContext:zt,useEffect:zt,useImperativeHandle:zt,useInsertionEffect:zt,useLayoutEffect:zt,useMemo:zt,useReducer:zt,useRef:zt,useState:zt,useDebugValue:zt,useDeferredValue:zt,useTransition:zt,useMutableSource:zt,useSyncExternalStore:zt,useId:zt,unstable_isNewReconciler:!1},MD={readContext:Yr,useCallback:function(e,t){return On().memoizedState=[e,t===void 0?null:t],e},useContext:Yr,useEffect:j1,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,pd(4194308,4,Gk.bind(null,t,e),r)},useLayoutEffect:function(e,t){return pd(4194308,4,e,t)},useInsertionEffect:function(e,t){return pd(4,2,e,t)},useMemo:function(e,t){var r=On();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=On();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=CD.bind(null,Ze,e),[n.memoizedState,e]},useRef:function(e){var t=On();return e={current:e},t.memoizedState=e},useState:S1,useDebugValue:H0,useDeferredValue:function(e){return On().memoizedState=e},useTransition:function(){var e=S1(!1),t=e[0];return e=TD.bind(null,e[1]),On().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Ze,a=On();if(Ve){if(r===void 0)throw Error(V(407));r=r()}else{if(r=t(),Ct===null)throw Error(V(349));fo&30||zk(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,j1(Uk.bind(null,n,i,e),[e]),n.flags|=2048,Vu(9,Bk.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=On(),t=Ct.identifierPrefix;if(Ve){var r=Zn,n=Jn;r=(n&~(1<<32-fn(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=qu++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[kn]=t,e[Uu]=n,dE(e,t,!1,!1),t.stateNode=e;e:{switch(o=bv(r,n),r){case"dialog":We("cancel",e),We("close",e),a=n;break;case"iframe":case"object":case"embed":We("load",e),a=n;break;case"video":case"audio":for(a=0;aRs&&(t.flags|=128,n=!0,Kl(i,!1),t.lanes=4194304)}else{if(!n)if(e=Wd(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Kl(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Ve)return Bt(t),null}else 2*ft()-i.renderingStartTime>Rs&&r!==1073741824&&(t.flags|=128,n=!0,Kl(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(r=i.last,r!==null?r.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=ft(),t.sibling=null,r=Qe.current,Be(Qe,n?r&1|2:r&1),t):(Bt(t),null);case 22:case 23:return J0(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?Sr&1073741824&&(Bt(t),t.subtreeFlags&6&&(t.flags|=8192)):Bt(t),null;case 24:return null;case 25:return null}throw Error(V(156,t.tag))}function UD(e,t){switch(C0(t),t.tag){case 1:return pr(t.type)&&Dd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Is(),He(hr),He(Ht),B0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return z0(t),null;case 13:if(He(Qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(V(340));$s()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He(Qe),null;case 4:return Is(),null;case 10:return D0(t.type._context),null;case 22:case 23:return J0(),null;case 24:return null;default:return null}}var Mf=!1,Wt=!1,WD=typeof WeakSet=="function"?WeakSet:Set,J=null;function ts(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){at(e,t,n)}else r.current=null}function Vv(e,t,r){try{r()}catch(n){at(e,t,n)}}var M1=!1;function KD(e,t){if(_v=Cd,e=xk(),_0(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,s=-1,l=-1,u=0,f=0,d=e,h=null;t:for(;;){for(var p;d!==r||a!==0&&d.nodeType!==3||(s=o+a),d!==i||n!==0&&d.nodeType!==3||(l=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)h=d,d=p;for(;;){if(d===e)break t;if(h===r&&++u===a&&(s=o),h===i&&++f===n&&(l=o),(p=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=p}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(Tv={focusedElem:e,selectionRange:r},Cd=!1,J=t;J!==null;)if(t=J,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,J=e;else for(;J!==null;){t=J;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,y=g.memoizedState,x=t.stateNode,v=x.getSnapshotBeforeUpdate(t.elementType===t.type?m:rn(t.type,m),y);x.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(S){at(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,J=e;break}J=t.return}return g=M1,M1=!1,g}function xu(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,i!==void 0&&Vv(t,r,i)}a=a.next}while(a!==n)}}function wp(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Gv(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function mE(e){var t=e.alternate;t!==null&&(e.alternate=null,mE(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[kn],delete t[Uu],delete t[Mv],delete t[PD],delete t[AD])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function gE(e){return e.tag===5||e.tag===3||e.tag===4}function I1(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||gE(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Yv(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Id));else if(n!==4&&(e=e.child,e!==null))for(Yv(e,t,r),e=e.sibling;e!==null;)Yv(e,t,r),e=e.sibling}function Xv(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Xv(e,t,r),e=e.sibling;e!==null;)Xv(e,t,r),e=e.sibling}var It=null,on=!1;function ka(e,t,r){for(r=r.child;r!==null;)vE(e,t,r),r=r.sibling}function vE(e,t,r){if($n&&typeof $n.onCommitFiberUnmount=="function")try{$n.onCommitFiberUnmount(hp,r)}catch{}switch(r.tag){case 5:Wt||ts(r,t);case 6:var n=It,a=on;It=null,ka(e,t,r),It=n,on=a,It!==null&&(on?(e=It,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):It.removeChild(r.stateNode));break;case 18:It!==null&&(on?(e=It,r=r.stateNode,e.nodeType===8?tg(e.parentNode,r):e.nodeType===1&&tg(e,r),Ru(e)):tg(It,r.stateNode));break;case 4:n=It,a=on,It=r.stateNode.containerInfo,on=!0,ka(e,t,r),It=n,on=a;break;case 0:case 11:case 14:case 15:if(!Wt&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){a=n=n.next;do{var i=a,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Vv(r,t,o),a=a.next}while(a!==n)}ka(e,t,r);break;case 1:if(!Wt&&(ts(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){at(r,t,s)}ka(e,t,r);break;case 21:ka(e,t,r);break;case 22:r.mode&1?(Wt=(n=Wt)||r.memoizedState!==null,ka(e,t,r),Wt=n):ka(e,t,r);break;default:ka(e,t,r)}}function D1(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new WD),t.forEach(function(n){var a=ZD.bind(null,e,n);r.has(n)||(r.add(n),n.then(a,a))})}}function en(e,t){var r=t.deletions;if(r!==null)for(var n=0;na&&(a=o),n&=~i}if(n=a,n=ft()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*HD(n/1960))-n,10e?16:e,Xa===null)var n=!1;else{if(e=Xa,Xa=null,Gd=0,Oe&6)throw Error(V(331));var a=Oe;for(Oe|=4,J=e.current;J!==null;){var i=J,o=i.child;if(J.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lft()-X0?no(e,0):Y0|=r),mr(e,t)}function NE(e,t){t===0&&(e.mode&1?(t=Nf,Nf<<=1,!(Nf&130023424)&&(Nf=4194304)):t=1);var r=tr();e=fa(e,t),e!==null&&(Hc(e,t,r),mr(e,r))}function JD(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),NE(e,r)}function ZD(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(V(314))}n!==null&&n.delete(t),NE(e,r)}var PE;PE=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||hr.current)fr=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return fr=!1,zD(e,t,r);fr=!!(e.flags&131072)}else fr=!1,Ve&&t.flags&1048576&&_k(t,Fd,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;md(e,t),e=t.pendingProps;var a=Cs(t,Ht.current);ds(t,r),a=W0(null,t,n,e,a,r);var i=K0();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,pr(n)?(i=!0,Rd(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,L0(t),a.updater=bp,t.stateNode=a,a._reactInternals=t,zv(t,n,e,r),t=Wv(null,t,n,!0,i,r)):(t.tag=0,Ve&&i&&T0(t),Yt(null,t,a,r),t=t.child),t;case 16:n=t.elementType;e:{switch(md(e,t),e=t.pendingProps,a=n._init,n=a(n._payload),t.type=n,a=t.tag=tR(n),e=rn(n,e),a){case 0:t=Uv(null,t,n,e,r);break e;case 1:t=T1(null,t,n,e,r);break e;case 11:t=E1(null,t,n,e,r);break e;case 14:t=_1(null,t,n,rn(n.type,e),r);break e}throw Error(V(306,n,""))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:rn(n,a),Uv(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:rn(n,a),T1(e,t,n,a,r);case 3:e:{if(uE(t),e===null)throw Error(V(387));n=t.pendingProps,i=t.memoizedState,a=i.element,Dk(e,t),Ud(t,n,null,r);var o=t.memoizedState;if(n=o.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){a=Ds(Error(V(423)),t),t=C1(e,t,n,r,a);break e}else if(n!==a){a=Ds(Error(V(424)),t),t=C1(e,t,n,r,a);break e}else for(Pr=ni(t.stateNode.containerInfo.firstChild),kr=t,Ve=!0,un=null,r=Mk(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if($s(),n===a){t=da(e,t,r);break e}Yt(e,t,n,r)}t=t.child}return t;case 5:return Rk(t),e===null&&Rv(t),n=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,o=a.children,Cv(n,a)?o=null:i!==null&&Cv(n,i)&&(t.flags|=32),lE(e,t),Yt(e,t,o,r),t.child;case 6:return e===null&&Rv(t),null;case 13:return cE(e,t,r);case 4:return F0(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Ms(t,null,n,r):Yt(e,t,n,r),t.child;case 11:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:rn(n,a),E1(e,t,n,a,r);case 7:return Yt(e,t,t.pendingProps,r),t.child;case 8:return Yt(e,t,t.pendingProps.children,r),t.child;case 12:return Yt(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,a=t.pendingProps,i=t.memoizedProps,o=a.value,Be(zd,n._currentValue),n._currentValue=o,i!==null)if(mn(i.value,o)){if(i.children===a.children&&!hr.current){t=da(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var l=s.firstContext;l!==null;){if(l.context===n){if(i.tag===1){l=na(-1,r&-r),l.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?l.next=l:(l.next=f.next,f.next=l),u.pending=l}}i.lanes|=r,l=i.alternate,l!==null&&(l.lanes|=r),Lv(i.return,r,t),s.lanes|=r;break}l=l.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(V(341));o.lanes|=r,s=o.alternate,s!==null&&(s.lanes|=r),Lv(o,r,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Yt(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,n=t.pendingProps.children,ds(t,r),a=Yr(a),n=n(a),t.flags|=1,Yt(e,t,n,r),t.child;case 14:return n=t.type,a=rn(n,t.pendingProps),a=rn(n.type,a),_1(e,t,n,a,r);case 15:return oE(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:rn(n,a),md(e,t),t.tag=1,pr(n)?(e=!0,Rd(t)):e=!1,ds(t,r),nE(t,n,a),zv(t,n,a,r),Wv(null,t,n,!0,e,r);case 19:return fE(e,t,r);case 22:return sE(e,t,r)}throw Error(V(156,t.tag))};function AE(e,t){return ek(e,t)}function eR(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function qr(e,t,r,n){return new eR(e,t,r,n)}function eb(e){return e=e.prototype,!(!e||!e.isReactComponent)}function tR(e){if(typeof e=="function")return eb(e)?1:0;if(e!=null){if(e=e.$$typeof,e===x0)return 11;if(e===b0)return 14}return 2}function si(e,t){var r=e.alternate;return r===null?(r=qr(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function yd(e,t,r,n,a,i){var o=2;if(n=e,typeof e=="function")eb(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ho:return ao(r.children,a,i,t);case y0:o=8,a|=8;break;case cv:return e=qr(12,r,t,a|2),e.elementType=cv,e.lanes=i,e;case fv:return e=qr(13,r,t,a),e.elementType=fv,e.lanes=i,e;case dv:return e=qr(19,r,t,a),e.elementType=dv,e.lanes=i,e;case RA:return jp(r,a,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case IA:o=10;break e;case DA:o=9;break e;case x0:o=11;break e;case b0:o=14;break e;case Ma:o=16,n=null;break e}throw Error(V(130,e==null?e:typeof e,""))}return t=qr(o,r,t,a),t.elementType=e,t.type=n,t.lanes=i,t}function ao(e,t,r,n){return e=qr(7,e,n,t),e.lanes=r,e}function jp(e,t,r,n){return e=qr(22,e,n,t),e.elementType=RA,e.lanes=r,e.stateNode={isHidden:!1},e}function ug(e,t,r){return e=qr(6,e,null,t),e.lanes=r,e}function cg(e,t,r){return t=qr(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function rR(e,t,r,n,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Km(0),this.expirationTimes=Km(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Km(0),this.identifierPrefix=n,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function tb(e,t,r,n,a,i,o,s,l){return e=new rR(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=qr(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},L0(i),e}function nR(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(TE)}catch(e){console.error(e)}}TE(),TA.exports=Cr;var ib=TA.exports;const lR=_e(ib);var K1=ib;lv.createRoot=K1.createRoot,lv.hydrateRoot=K1.hydrateRoot;var ml=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},uR={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},za,u0,uA,cR=(uA=class{constructor(){re(this,za,uR);re(this,u0,!1)}setTimeoutProvider(e){Q(this,za,e)}setTimeout(e,t){return I(this,za).setTimeout(e,t)}clearTimeout(e){I(this,za).clearTimeout(e)}setInterval(e,t){return I(this,za).setInterval(e,t)}clearInterval(e){I(this,za).clearInterval(e)}},za=new WeakMap,u0=new WeakMap,uA),Ui=new cR;function fR(e){setTimeout(e,0)}var mo=typeof window>"u"||"Deno"in globalThis;function Xt(){}function dR(e,t){return typeof e=="function"?e(t):e}function ty(e){return typeof e=="number"&&e>=0&&e!==1/0}function CE(e,t){return Math.max(e+(t||0)-Date.now(),0)}function li(e,t){return typeof e=="function"?e(t):e}function Br(e,t){return typeof e=="function"?e(t):e}function q1(e,t){const{type:r="all",exact:n,fetchStatus:a,predicate:i,queryKey:o,stale:s}=e;if(o){if(n){if(t.queryHash!==ob(o,t.options))return!1}else if(!Yu(t.queryKey,o))return!1}if(r!=="all"){const l=t.isActive();if(r==="active"&&!l||r==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||a&&a!==t.state.fetchStatus||i&&!i(t))}function H1(e,t){const{exact:r,status:n,predicate:a,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(r){if(go(t.options.mutationKey)!==go(i))return!1}else if(!Yu(t.options.mutationKey,i))return!1}return!(n&&t.state.status!==n||a&&!a(t))}function ob(e,t){return((t==null?void 0:t.queryKeyHashFn)||go)(e)}function go(e){return JSON.stringify(e,(t,r)=>ry(r)?Object.keys(r).sort().reduce((n,a)=>(n[a]=r[a],n),{}):r)}function Yu(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Yu(e[r],t[r])):!1}var hR=Object.prototype.hasOwnProperty;function $E(e,t){if(e===t)return e;const r=V1(e)&&V1(t);if(!r&&!(ry(e)&&ry(t)))return t;const a=(r?e:Object.keys(e)).length,i=r?t:Object.keys(t),o=i.length,s=r?new Array(o):{};let l=0;for(let u=0;u{Ui.setTimeout(t,e)})}function ny(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?$E(e,t):t}function mR(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function gR(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var sb=Symbol();function ME(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===sb?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function IE(e,t){return typeof e=="function"?e(...t):!!e}var Gi,Ba,xs,cA,vR=(cA=class extends ml{constructor(){super();re(this,Gi);re(this,Ba);re(this,xs);Q(this,xs,t=>{if(!mo&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){I(this,Ba)||this.setEventListener(I(this,xs))}onUnsubscribe(){var t;this.hasListeners()||((t=I(this,Ba))==null||t.call(this),Q(this,Ba,void 0))}setEventListener(t){var r;Q(this,xs,t),(r=I(this,Ba))==null||r.call(this),Q(this,Ba,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){I(this,Gi)!==t&&(Q(this,Gi,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof I(this,Gi)=="boolean"?I(this,Gi):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Gi=new WeakMap,Ba=new WeakMap,xs=new WeakMap,cA),lb=new vR;function ay(){let e,t;const r=new Promise((a,i)=>{e=a,t=i});r.status="pending",r.catch(()=>{});function n(a){Object.assign(r,a),delete r.resolve,delete r.reject}return r.resolve=a=>{n({status:"fulfilled",value:a}),e(a)},r.reject=a=>{n({status:"rejected",reason:a}),t(a)},r}var yR=fR;function xR(){let e=[],t=0,r=s=>{s()},n=s=>{s()},a=yR;const i=s=>{t?e.push(s):a(()=>{r(s)})},o=()=>{const s=e;e=[],s.length&&a(()=>{n(()=>{s.forEach(l=>{r(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||o()}return l},batchCalls:s=>(...l)=>{i(()=>{s(...l)})},schedule:i,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{a=s}}}var St=xR(),bs,Ua,ws,fA,bR=(fA=class extends ml{constructor(){super();re(this,bs,!0);re(this,Ua);re(this,ws);Q(this,ws,t=>{if(!mo&&window.addEventListener){const r=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){I(this,Ua)||this.setEventListener(I(this,ws))}onUnsubscribe(){var t;this.hasListeners()||((t=I(this,Ua))==null||t.call(this),Q(this,Ua,void 0))}setEventListener(t){var r;Q(this,ws,t),(r=I(this,Ua))==null||r.call(this),Q(this,Ua,t(this.setOnline.bind(this)))}setOnline(t){I(this,bs)!==t&&(Q(this,bs,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return I(this,bs)}},bs=new WeakMap,Ua=new WeakMap,ws=new WeakMap,fA),Jd=new bR;function wR(e){return Math.min(1e3*2**e,3e4)}function DE(e){return(e??"online")==="online"?Jd.isOnline():!0}var iy=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function RE(e){let t=!1,r=0,n;const a=ay(),i=()=>a.status!=="pending",o=m=>{var y;if(!i()){const x=new iy(m);h(x),(y=e.onCancel)==null||y.call(e,x)}},s=()=>{t=!0},l=()=>{t=!1},u=()=>lb.isFocused()&&(e.networkMode==="always"||Jd.isOnline())&&e.canRun(),f=()=>DE(e.networkMode)&&e.canRun(),d=m=>{i()||(n==null||n(),a.resolve(m))},h=m=>{i()||(n==null||n(),a.reject(m))},p=()=>new Promise(m=>{var y;n=x=>{(i()||u())&&m(x)},(y=e.onPause)==null||y.call(e)}).then(()=>{var m;n=void 0,i()||(m=e.onContinue)==null||m.call(e)}),g=()=>{if(i())return;let m;const y=r===0?e.initialPromise:void 0;try{m=y??e.fn()}catch(x){m=Promise.reject(x)}Promise.resolve(m).then(d).catch(x=>{var O;if(i())return;const v=e.retry??(mo?0:3),b=e.retryDelay??wR,S=typeof b=="function"?b(r,x):b,w=v===!0||typeof v=="number"&&ru()?void 0:p()).then(()=>{t?h(x):g()})})};return{promise:a,status:()=>a.status,cancel:o,continue:()=>(n==null||n(),a),cancelRetry:s,continueRetry:l,canStart:f,start:()=>(f()?g():p().then(g),a)}}var Yi,dA,LE=(dA=class{constructor(){re(this,Yi)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ty(this.gcTime)&&Q(this,Yi,Ui.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(mo?1/0:5*60*1e3))}clearGcTimeout(){I(this,Yi)&&(Ui.clearTimeout(I(this,Yi)),Q(this,Yi,void 0))}},Yi=new WeakMap,dA),Xi,Ss,Fr,Qi,kt,zc,Ji,nn,Kn,hA,SR=(hA=class extends LE{constructor(t){super();re(this,nn);re(this,Xi);re(this,Ss);re(this,Fr);re(this,Qi);re(this,kt);re(this,zc);re(this,Ji);Q(this,Ji,!1),Q(this,zc,t.defaultOptions),this.setOptions(t.options),this.observers=[],Q(this,Qi,t.client),Q(this,Fr,I(this,Qi).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Q(this,Xi,Y1(this.options)),this.state=t.state??I(this,Xi),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=I(this,kt))==null?void 0:t.promise}setOptions(t){if(this.options={...I(this,zc),...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=Y1(this.options);r.data!==void 0&&(this.setData(r.data,{updatedAt:r.dataUpdatedAt,manual:!0}),Q(this,Xi,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&I(this,Fr).remove(this)}setData(t,r){const n=ny(this.state.data,t,this.options);return me(this,nn,Kn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t,r){me(this,nn,Kn).call(this,{type:"setState",state:t,setStateOptions:r})}cancel(t){var n,a;const r=(n=I(this,kt))==null?void 0:n.promise;return(a=I(this,kt))==null||a.cancel(t),r?r.then(Xt).catch(Xt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(I(this,Xi))}isActive(){return this.observers.some(t=>Br(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===sb||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>li(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!CE(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=I(this,kt))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=I(this,kt))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),I(this,Fr).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||(I(this,kt)&&(I(this,Ji)?I(this,kt).cancel({revert:!0}):I(this,kt).cancelRetry()),this.scheduleGc()),I(this,Fr).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||me(this,nn,Kn).call(this,{type:"invalidate"})}async fetch(t,r){var l,u,f,d,h,p,g,m,y,x,v,b;if(this.state.fetchStatus!=="idle"&&((l=I(this,kt))==null?void 0:l.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if(I(this,kt))return I(this,kt).continueRetry(),I(this,kt).promise}if(t&&this.setOptions(t),!this.options.queryFn){const S=this.observers.find(w=>w.options.queryFn);S&&this.setOptions(S.options)}const n=new AbortController,a=S=>{Object.defineProperty(S,"signal",{enumerable:!0,get:()=>(Q(this,Ji,!0),n.signal)})},i=()=>{const S=ME(this.options,r),O=(()=>{const j={client:I(this,Qi),queryKey:this.queryKey,meta:this.meta};return a(j),j})();return Q(this,Ji,!1),this.options.persister?this.options.persister(S,O,this):S(O)},s=(()=>{const S={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:I(this,Qi),state:this.state,fetchFn:i};return a(S),S})();(u=this.options.behavior)==null||u.onFetch(s,this),Q(this,Ss,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((f=s.fetchOptions)==null?void 0:f.meta))&&me(this,nn,Kn).call(this,{type:"fetch",meta:(d=s.fetchOptions)==null?void 0:d.meta}),Q(this,kt,RE({initialPromise:r==null?void 0:r.initialPromise,fn:s.fetchFn,onCancel:S=>{S instanceof iy&&S.revert&&this.setState({...I(this,Ss),fetchStatus:"idle"}),n.abort()},onFail:(S,w)=>{me(this,nn,Kn).call(this,{type:"failed",failureCount:S,error:w})},onPause:()=>{me(this,nn,Kn).call(this,{type:"pause"})},onContinue:()=>{me(this,nn,Kn).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0}));try{const S=await I(this,kt).start();if(S===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(S),(p=(h=I(this,Fr).config).onSuccess)==null||p.call(h,S,this),(m=(g=I(this,Fr).config).onSettled)==null||m.call(g,S,this.state.error,this),S}catch(S){if(S instanceof iy){if(S.silent)return I(this,kt).promise;if(S.revert){if(this.state.data===void 0)throw S;return this.state.data}}throw me(this,nn,Kn).call(this,{type:"error",error:S}),(x=(y=I(this,Fr).config).onError)==null||x.call(y,S,this),(b=(v=I(this,Fr).config).onSettled)==null||b.call(v,this.state.data,S,this),S}finally{this.scheduleGc()}}},Xi=new WeakMap,Ss=new WeakMap,Fr=new WeakMap,Qi=new WeakMap,kt=new WeakMap,zc=new WeakMap,Ji=new WeakMap,nn=new WeakSet,Kn=function(t){const r=n=>{switch(t.type){case"failed":return{...n,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...FE(n.data,this.options),fetchMeta:t.meta??null};case"success":const a={...n,data:t.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return Q(this,Ss,t.manual?a:void 0),a;case"error":const i=t.error;return{...n,error:i,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),St.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),I(this,Fr).notify({query:this,type:"updated",action:t})})},hA);function FE(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:DE(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Y1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var sr,Se,Bc,Vt,Zi,js,Gn,Wa,Uc,Os,Ns,eo,to,Ka,Ps,Ee,fu,oy,sy,ly,uy,cy,fy,dy,zE,pA,jR=(pA=class extends ml{constructor(t,r){super();re(this,Ee);re(this,sr);re(this,Se);re(this,Bc);re(this,Vt);re(this,Zi);re(this,js);re(this,Gn);re(this,Wa);re(this,Uc);re(this,Os);re(this,Ns);re(this,eo);re(this,to);re(this,Ka);re(this,Ps,new Set);this.options=r,Q(this,sr,t),Q(this,Wa,null),Q(this,Gn,ay()),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(I(this,Se).addObserver(this),X1(I(this,Se),this.options)?me(this,Ee,fu).call(this):this.updateResult(),me(this,Ee,uy).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return hy(I(this,Se),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return hy(I(this,Se),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,me(this,Ee,cy).call(this),me(this,Ee,fy).call(this),I(this,Se).removeObserver(this)}setOptions(t){const r=this.options,n=I(this,Se);if(this.options=I(this,sr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Br(this.options.enabled,I(this,Se))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");me(this,Ee,dy).call(this),I(this,Se).setOptions(this.options),r._defaulted&&!Qd(this.options,r)&&I(this,sr).getQueryCache().notify({type:"observerOptionsUpdated",query:I(this,Se),observer:this});const a=this.hasListeners();a&&Q1(I(this,Se),n,this.options,r)&&me(this,Ee,fu).call(this),this.updateResult(),a&&(I(this,Se)!==n||Br(this.options.enabled,I(this,Se))!==Br(r.enabled,I(this,Se))||li(this.options.staleTime,I(this,Se))!==li(r.staleTime,I(this,Se)))&&me(this,Ee,oy).call(this);const i=me(this,Ee,sy).call(this);a&&(I(this,Se)!==n||Br(this.options.enabled,I(this,Se))!==Br(r.enabled,I(this,Se))||i!==I(this,Ka))&&me(this,Ee,ly).call(this,i)}getOptimisticResult(t){const r=I(this,sr).getQueryCache().build(I(this,sr),t),n=this.createResult(r,t);return NR(this,n)&&(Q(this,Vt,n),Q(this,js,this.options),Q(this,Zi,I(this,Se).state)),n}getCurrentResult(){return I(this,Vt)}trackResult(t,r){return new Proxy(t,{get:(n,a)=>(this.trackProp(a),r==null||r(a),a==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&I(this,Gn).status==="pending"&&I(this,Gn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,a))})}trackProp(t){I(this,Ps).add(t)}getCurrentQuery(){return I(this,Se)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=I(this,sr).defaultQueryOptions(t),n=I(this,sr).getQueryCache().build(I(this,sr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return me(this,Ee,fu).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),I(this,Vt)))}createResult(t,r){var A;const n=I(this,Se),a=this.options,i=I(this,Vt),o=I(this,Zi),s=I(this,js),u=t!==n?t.state:I(this,Bc),{state:f}=t;let d={...f},h=!1,p;if(r._optimisticResults){const _=this.hasListeners(),E=!_&&X1(t,r),k=_&&Q1(t,n,r,a);(E||k)&&(d={...d,...FE(f.data,t.options)}),r._optimisticResults==="isRestoring"&&(d.fetchStatus="idle")}let{error:g,errorUpdatedAt:m,status:y}=d;p=d.data;let x=!1;if(r.placeholderData!==void 0&&p===void 0&&y==="pending"){let _;i!=null&&i.isPlaceholderData&&r.placeholderData===(s==null?void 0:s.placeholderData)?(_=i.data,x=!0):_=typeof r.placeholderData=="function"?r.placeholderData((A=I(this,Ns))==null?void 0:A.state.data,I(this,Ns)):r.placeholderData,_!==void 0&&(y="success",p=ny(i==null?void 0:i.data,_,r),h=!0)}if(r.select&&p!==void 0&&!x)if(i&&p===(o==null?void 0:o.data)&&r.select===I(this,Uc))p=I(this,Os);else try{Q(this,Uc,r.select),p=r.select(p),p=ny(i==null?void 0:i.data,p,r),Q(this,Os,p),Q(this,Wa,null)}catch(_){Q(this,Wa,_)}I(this,Wa)&&(g=I(this,Wa),p=I(this,Os),m=Date.now(),y="error");const v=d.fetchStatus==="fetching",b=y==="pending",S=y==="error",w=b&&v,O=p!==void 0,P={status:y,fetchStatus:d.fetchStatus,isPending:b,isSuccess:y==="success",isError:S,isInitialLoading:w,isLoading:w,data:p,dataUpdatedAt:d.dataUpdatedAt,error:g,errorUpdatedAt:m,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:d.dataUpdateCount>0||d.errorUpdateCount>0,isFetchedAfterMount:d.dataUpdateCount>u.dataUpdateCount||d.errorUpdateCount>u.errorUpdateCount,isFetching:v,isRefetching:v&&!b,isLoadingError:S&&!O,isPaused:d.fetchStatus==="paused",isPlaceholderData:h,isRefetchError:S&&O,isStale:ub(t,r),refetch:this.refetch,promise:I(this,Gn),isEnabled:Br(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const _=R=>{P.status==="error"?R.reject(P.error):P.data!==void 0&&R.resolve(P.data)},E=()=>{const R=Q(this,Gn,P.promise=ay());_(R)},k=I(this,Gn);switch(k.status){case"pending":t.queryHash===n.queryHash&&_(k);break;case"fulfilled":(P.status==="error"||P.data!==k.value)&&E();break;case"rejected":(P.status!=="error"||P.error!==k.reason)&&E();break}}return P}updateResult(){const t=I(this,Vt),r=this.createResult(I(this,Se),this.options);if(Q(this,Zi,I(this,Se).state),Q(this,js,this.options),I(this,Zi).data!==void 0&&Q(this,Ns,I(this,Se)),Qd(r,t))return;Q(this,Vt,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:a}=this.options,i=typeof a=="function"?a():a;if(i==="all"||!i&&!I(this,Ps).size)return!0;const o=new Set(i??I(this,Ps));return this.options.throwOnError&&o.add("error"),Object.keys(I(this,Vt)).some(s=>{const l=s;return I(this,Vt)[l]!==t[l]&&o.has(l)})};me(this,Ee,zE).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&me(this,Ee,uy).call(this)}},sr=new WeakMap,Se=new WeakMap,Bc=new WeakMap,Vt=new WeakMap,Zi=new WeakMap,js=new WeakMap,Gn=new WeakMap,Wa=new WeakMap,Uc=new WeakMap,Os=new WeakMap,Ns=new WeakMap,eo=new WeakMap,to=new WeakMap,Ka=new WeakMap,Ps=new WeakMap,Ee=new WeakSet,fu=function(t){me(this,Ee,dy).call(this);let r=I(this,Se).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(Xt)),r},oy=function(){me(this,Ee,cy).call(this);const t=li(this.options.staleTime,I(this,Se));if(mo||I(this,Vt).isStale||!ty(t))return;const n=CE(I(this,Vt).dataUpdatedAt,t)+1;Q(this,eo,Ui.setTimeout(()=>{I(this,Vt).isStale||this.updateResult()},n))},sy=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(I(this,Se)):this.options.refetchInterval)??!1},ly=function(t){me(this,Ee,fy).call(this),Q(this,Ka,t),!(mo||Br(this.options.enabled,I(this,Se))===!1||!ty(I(this,Ka))||I(this,Ka)===0)&&Q(this,to,Ui.setInterval(()=>{(this.options.refetchIntervalInBackground||lb.isFocused())&&me(this,Ee,fu).call(this)},I(this,Ka)))},uy=function(){me(this,Ee,oy).call(this),me(this,Ee,ly).call(this,me(this,Ee,sy).call(this))},cy=function(){I(this,eo)&&(Ui.clearTimeout(I(this,eo)),Q(this,eo,void 0))},fy=function(){I(this,to)&&(Ui.clearInterval(I(this,to)),Q(this,to,void 0))},dy=function(){const t=I(this,sr).getQueryCache().build(I(this,sr),this.options);if(t===I(this,Se))return;const r=I(this,Se);Q(this,Se,t),Q(this,Bc,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},zE=function(t){St.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r(I(this,Vt))}),I(this,sr).getQueryCache().notify({query:I(this,Se),type:"observerResultsUpdated"})})},pA);function OR(e,t){return Br(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function X1(e,t){return OR(e,t)||e.state.data!==void 0&&hy(e,t,t.refetchOnMount)}function hy(e,t,r){if(Br(t.enabled,e)!==!1&&li(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&ub(e,t)}return!1}function Q1(e,t,r,n){return(e!==t||Br(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&ub(e,r)}function ub(e,t){return Br(t.enabled,e)!==!1&&e.isStaleByTime(li(t.staleTime,e))}function NR(e,t){return!Qd(e.getCurrentResult(),t)}function J1(e){return{onFetch:(t,r)=>{var f,d,h,p,g;const n=t.options,a=(h=(d=(f=t.fetchOptions)==null?void 0:f.meta)==null?void 0:d.fetchMore)==null?void 0:h.direction,i=((p=t.state.data)==null?void 0:p.pages)||[],o=((g=t.state.data)==null?void 0:g.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const u=async()=>{let m=!1;const y=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?m=!0:t.signal.addEventListener("abort",()=>{m=!0}),t.signal)})},x=ME(t.options,t.fetchOptions),v=async(b,S,w)=>{if(m)return Promise.reject();if(S==null&&b.pages.length)return Promise.resolve(b);const j=(()=>{const E={client:t.client,queryKey:t.queryKey,pageParam:S,direction:w?"backward":"forward",meta:t.options.meta};return y(E),E})(),P=await x(j),{maxPages:A}=t.options,_=w?gR:mR;return{pages:_(b.pages,P,A),pageParams:_(b.pageParams,S,A)}};if(a&&i.length){const b=a==="backward",S=b?PR:Z1,w={pages:i,pageParams:o},O=S(n,w);s=await v(w,O,b)}else{const b=e??i.length;do{const S=l===0?o[0]??n.initialPageParam:Z1(n,s);if(l>0&&S==null)break;s=await v(s,S),l++}while(l{var m,y;return(y=(m=t.options).persister)==null?void 0:y.call(m,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=u}}}function Z1(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function PR(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var Wc,Nn,Gt,ro,Pn,Ca,mA,AR=(mA=class extends LE{constructor(t){super();re(this,Pn);re(this,Wc);re(this,Nn);re(this,Gt);re(this,ro);Q(this,Wc,t.client),this.mutationId=t.mutationId,Q(this,Gt,t.mutationCache),Q(this,Nn,[]),this.state=t.state||BE(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){I(this,Nn).includes(t)||(I(this,Nn).push(t),this.clearGcTimeout(),I(this,Gt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Q(this,Nn,I(this,Nn).filter(r=>r!==t)),this.scheduleGc(),I(this,Gt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){I(this,Nn).length||(this.state.status==="pending"?this.scheduleGc():I(this,Gt).remove(this))}continue(){var t;return((t=I(this,ro))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,s,l,u,f,d,h,p,g,m,y,x,v,b,S,w,O,j,P,A;const r=()=>{me(this,Pn,Ca).call(this,{type:"continue"})},n={client:I(this,Wc),meta:this.options.meta,mutationKey:this.options.mutationKey};Q(this,ro,RE({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(_,E)=>{me(this,Pn,Ca).call(this,{type:"failed",failureCount:_,error:E})},onPause:()=>{me(this,Pn,Ca).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>I(this,Gt).canRun(this)}));const a=this.state.status==="pending",i=!I(this,ro).canStart();try{if(a)r();else{me(this,Pn,Ca).call(this,{type:"pending",variables:t,isPaused:i}),await((s=(o=I(this,Gt).config).onMutate)==null?void 0:s.call(o,t,this,n));const E=await((u=(l=this.options).onMutate)==null?void 0:u.call(l,t,n));E!==this.state.context&&me(this,Pn,Ca).call(this,{type:"pending",context:E,variables:t,isPaused:i})}const _=await I(this,ro).start();return await((d=(f=I(this,Gt).config).onSuccess)==null?void 0:d.call(f,_,t,this.state.context,this,n)),await((p=(h=this.options).onSuccess)==null?void 0:p.call(h,_,t,this.state.context,n)),await((m=(g=I(this,Gt).config).onSettled)==null?void 0:m.call(g,_,null,this.state.variables,this.state.context,this,n)),await((x=(y=this.options).onSettled)==null?void 0:x.call(y,_,null,t,this.state.context,n)),me(this,Pn,Ca).call(this,{type:"success",data:_}),_}catch(_){try{throw await((b=(v=I(this,Gt).config).onError)==null?void 0:b.call(v,_,t,this.state.context,this,n)),await((w=(S=this.options).onError)==null?void 0:w.call(S,_,t,this.state.context,n)),await((j=(O=I(this,Gt).config).onSettled)==null?void 0:j.call(O,void 0,_,this.state.variables,this.state.context,this,n)),await((A=(P=this.options).onSettled)==null?void 0:A.call(P,void 0,_,t,this.state.context,n)),_}finally{me(this,Pn,Ca).call(this,{type:"error",error:_})}}finally{I(this,Gt).runNext(this)}}},Wc=new WeakMap,Nn=new WeakMap,Gt=new WeakMap,ro=new WeakMap,Pn=new WeakSet,Ca=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),St.batch(()=>{I(this,Nn).forEach(n=>{n.onMutationUpdate(t)}),I(this,Gt).notify({mutation:this,type:"updated",action:t})})},mA);function BE(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Yn,an,Kc,gA,kR=(gA=class extends ml{constructor(t={}){super();re(this,Yn);re(this,an);re(this,Kc);this.config=t,Q(this,Yn,new Set),Q(this,an,new Map),Q(this,Kc,0)}build(t,r,n){const a=new AR({client:t,mutationCache:this,mutationId:++yf(this,Kc)._,options:t.defaultMutationOptions(r),state:n});return this.add(a),a}add(t){I(this,Yn).add(t);const r=Rf(t);if(typeof r=="string"){const n=I(this,an).get(r);n?n.push(t):I(this,an).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if(I(this,Yn).delete(t)){const r=Rf(t);if(typeof r=="string"){const n=I(this,an).get(r);if(n)if(n.length>1){const a=n.indexOf(t);a!==-1&&n.splice(a,1)}else n[0]===t&&I(this,an).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=Rf(t);if(typeof r=="string"){const n=I(this,an).get(r),a=n==null?void 0:n.find(i=>i.state.status==="pending");return!a||a===t}else return!0}runNext(t){var n;const r=Rf(t);if(typeof r=="string"){const a=(n=I(this,an).get(r))==null?void 0:n.find(i=>i!==t&&i.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){St.batch(()=>{I(this,Yn).forEach(t=>{this.notify({type:"removed",mutation:t})}),I(this,Yn).clear(),I(this,an).clear()})}getAll(){return Array.from(I(this,Yn))}find(t){const r={exact:!0,...t};return this.getAll().find(n=>H1(r,n))}findAll(t={}){return this.getAll().filter(r=>H1(t,r))}notify(t){St.batch(()=>{this.listeners.forEach(r=>{r(t)})})}resumePausedMutations(){const t=this.getAll().filter(r=>r.state.isPaused);return St.batch(()=>Promise.all(t.map(r=>r.continue().catch(Xt))))}},Yn=new WeakMap,an=new WeakMap,Kc=new WeakMap,gA);function Rf(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Xn,qa,lr,Qn,la,xd,py,vA,ER=(vA=class extends ml{constructor(r,n){super();re(this,la);re(this,Xn);re(this,qa);re(this,lr);re(this,Qn);Q(this,Xn,r),this.setOptions(n),this.bindMethods(),me(this,la,xd).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(r){var a;const n=this.options;this.options=I(this,Xn).defaultMutationOptions(r),Qd(this.options,n)||I(this,Xn).getMutationCache().notify({type:"observerOptionsUpdated",mutation:I(this,lr),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&go(n.mutationKey)!==go(this.options.mutationKey)?this.reset():((a=I(this,lr))==null?void 0:a.state.status)==="pending"&&I(this,lr).setOptions(this.options)}onUnsubscribe(){var r;this.hasListeners()||(r=I(this,lr))==null||r.removeObserver(this)}onMutationUpdate(r){me(this,la,xd).call(this),me(this,la,py).call(this,r)}getCurrentResult(){return I(this,qa)}reset(){var r;(r=I(this,lr))==null||r.removeObserver(this),Q(this,lr,void 0),me(this,la,xd).call(this),me(this,la,py).call(this)}mutate(r,n){var a;return Q(this,Qn,n),(a=I(this,lr))==null||a.removeObserver(this),Q(this,lr,I(this,Xn).getMutationCache().build(I(this,Xn),this.options)),I(this,lr).addObserver(this),I(this,lr).execute(r)}},Xn=new WeakMap,qa=new WeakMap,lr=new WeakMap,Qn=new WeakMap,la=new WeakSet,xd=function(){var n;const r=((n=I(this,lr))==null?void 0:n.state)??BE();Q(this,qa,{...r,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",isIdle:r.status==="idle",mutate:this.mutate,reset:this.reset})},py=function(r){St.batch(()=>{var n,a,i,o,s,l,u,f;if(I(this,Qn)&&this.hasListeners()){const d=I(this,qa).variables,h=I(this,qa).context,p={client:I(this,Xn),meta:this.options.meta,mutationKey:this.options.mutationKey};(r==null?void 0:r.type)==="success"?((a=(n=I(this,Qn)).onSuccess)==null||a.call(n,r.data,d,h,p),(o=(i=I(this,Qn)).onSettled)==null||o.call(i,r.data,null,d,h,p)):(r==null?void 0:r.type)==="error"&&((l=(s=I(this,Qn)).onError)==null||l.call(s,r.error,d,h,p),(f=(u=I(this,Qn)).onSettled)==null||f.call(u,void 0,r.error,d,h,p))}this.listeners.forEach(d=>{d(I(this,qa))})})},vA),An,yA,_R=(yA=class extends ml{constructor(t={}){super();re(this,An);this.config=t,Q(this,An,new Map)}build(t,r,n){const a=r.queryKey,i=r.queryHash??ob(a,r);let o=this.get(i);return o||(o=new SR({client:t,queryKey:a,queryHash:i,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(a)}),this.add(o)),o}add(t){I(this,An).has(t.queryHash)||(I(this,An).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=I(this,An).get(t.queryHash);r&&(t.destroy(),r===t&&I(this,An).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){St.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return I(this,An).get(t)}getAll(){return[...I(this,An).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>q1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>q1(t,n)):r}notify(t){St.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){St.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){St.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},An=new WeakMap,yA),nt,Ha,Va,As,ks,Ga,Es,_s,xA,TR=(xA=class{constructor(e={}){re(this,nt);re(this,Ha);re(this,Va);re(this,As);re(this,ks);re(this,Ga);re(this,Es);re(this,_s);Q(this,nt,e.queryCache||new _R),Q(this,Ha,e.mutationCache||new kR),Q(this,Va,e.defaultOptions||{}),Q(this,As,new Map),Q(this,ks,new Map),Q(this,Ga,0)}mount(){yf(this,Ga)._++,I(this,Ga)===1&&(Q(this,Es,lb.subscribe(async e=>{e&&(await this.resumePausedMutations(),I(this,nt).onFocus())})),Q(this,_s,Jd.subscribe(async e=>{e&&(await this.resumePausedMutations(),I(this,nt).onOnline())})))}unmount(){var e,t;yf(this,Ga)._--,I(this,Ga)===0&&((e=I(this,Es))==null||e.call(this),Q(this,Es,void 0),(t=I(this,_s))==null||t.call(this),Q(this,_s,void 0))}isFetching(e){return I(this,nt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return I(this,Ha).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=I(this,nt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=I(this,nt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(li(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return I(this,nt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),a=I(this,nt).get(n.queryHash),i=a==null?void 0:a.state.data,o=dR(t,i);if(o!==void 0)return I(this,nt).build(this,n).setData(o,{...r,manual:!0})}setQueriesData(e,t,r){return St.batch(()=>I(this,nt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=I(this,nt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=I(this,nt);St.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=I(this,nt);return St.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=St.batch(()=>I(this,nt).findAll(e).map(a=>a.cancel(r)));return Promise.all(n).then(Xt).catch(Xt)}invalidateQueries(e,t={}){return St.batch(()=>(I(this,nt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=St.batch(()=>I(this,nt).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let i=a.fetch(void 0,r);return r.throwOnError||(i=i.catch(Xt)),a.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(n).then(Xt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=I(this,nt).build(this,t);return r.isStaleByTime(li(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Xt).catch(Xt)}fetchInfiniteQuery(e){return e.behavior=J1(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Xt).catch(Xt)}ensureInfiniteQueryData(e){return e.behavior=J1(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Jd.isOnline()?I(this,Ha).resumePausedMutations():Promise.resolve()}getQueryCache(){return I(this,nt)}getMutationCache(){return I(this,Ha)}getDefaultOptions(){return I(this,Va)}setDefaultOptions(e){Q(this,Va,e)}setQueryDefaults(e,t){I(this,As).set(go(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...I(this,As).values()],r={};return t.forEach(n=>{Yu(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){I(this,ks).set(go(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...I(this,ks).values()],r={};return t.forEach(n=>{Yu(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...I(this,Va).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=ob(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===sb&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...I(this,Va).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){I(this,nt).clear(),I(this,Ha).clear()}},nt=new WeakMap,Ha=new WeakMap,Va=new WeakMap,As=new WeakMap,ks=new WeakMap,Ga=new WeakMap,Es=new WeakMap,_s=new WeakMap,xA),UE=N.createContext(void 0),Xc=e=>{const t=N.useContext(UE);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},CR=({client:e,children:t})=>(N.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),c.jsx(UE.Provider,{value:e,children:t})),WE=N.createContext(!1),$R=()=>N.useContext(WE);WE.Provider;function MR(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var IR=N.createContext(MR()),DR=()=>N.useContext(IR),RR=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},LR=e=>{N.useEffect(()=>{e.clearReset()},[e])},FR=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(a&&e.data===void 0||IE(r,[e.error,n])),zR=e=>{if(e.suspense){const r=a=>a==="static"?a:Math.max(a??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...a)=>r(n(...a)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},BR=(e,t)=>e.isLoading&&e.isFetching&&!t,UR=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,eS=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function WR(e,t,r){var d,h,p,g,m;const n=$R(),a=DR(),i=Xc(),o=i.defaultQueryOptions(e);(h=(d=i.getDefaultOptions().queries)==null?void 0:d._experimental_beforeQuery)==null||h.call(d,o),o._optimisticResults=n?"isRestoring":"optimistic",zR(o),RR(o,a),LR(a);const s=!i.getQueryCache().get(o.queryHash),[l]=N.useState(()=>new t(i,o)),u=l.getOptimisticResult(o),f=!n&&e.subscribed!==!1;if(N.useSyncExternalStore(N.useCallback(y=>{const x=f?l.subscribe(St.batchCalls(y)):Xt;return l.updateResult(),x},[l,f]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),N.useEffect(()=>{l.setOptions(o)},[o,l]),UR(o,u))throw eS(o,l,a);if(FR({result:u,errorResetBoundary:a,throwOnError:o.throwOnError,query:i.getQueryCache().get(o.queryHash),suspense:o.suspense}))throw u.error;if((g=(p=i.getDefaultOptions().queries)==null?void 0:p._experimental_afterQuery)==null||g.call(p,o,u),o.experimental_prefetchInRender&&!mo&&BR(u,n)){const y=s?eS(o,l,a):(m=i.getQueryCache().get(o.queryHash))==null?void 0:m.promise;y==null||y.catch(Xt).finally(()=>{l.updateResult()})}return o.notifyOnChangeProps?u:l.trackResult(u)}function Nt(e,t){return WR(e,jR)}function KE(e,t){const r=Xc(),[n]=N.useState(()=>new ER(r,e));N.useEffect(()=>{n.setOptions(e)},[n,e]);const a=N.useSyncExternalStore(N.useCallback(o=>n.subscribe(St.batchCalls(o)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),i=N.useCallback((o,s)=>{n.mutate(o,s).catch(Xt)},[n]);if(a.error&&IE(n.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:i,mutateAsync:a.mutate}}/** + * @remix-run/router v1.23.0 + * + * 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 + */function Xu(){return Xu=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qE(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function qR(){return Math.random().toString(36).substr(2,8)}function rS(e,t){return{usr:e.state,key:e.key,idx:t}}function my(e,t,r,n){return r===void 0&&(r=null),Xu({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?gl(t):t,{state:r,key:t&&t.key||n||qR()})}function Zd(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function gl(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function HR(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,s=Qa.Pop,l=null,u=f();u==null&&(u=0,o.replaceState(Xu({},o.state,{idx:u}),""));function f(){return(o.state||{idx:null}).idx}function d(){s=Qa.Pop;let y=f(),x=y==null?null:y-u;u=y,l&&l({action:s,location:m.location,delta:x})}function h(y,x){s=Qa.Push;let v=my(m.location,y,x);u=f()+1;let b=rS(v,u),S=m.createHref(v);try{o.pushState(b,"",S)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;a.location.assign(S)}i&&l&&l({action:s,location:m.location,delta:1})}function p(y,x){s=Qa.Replace;let v=my(m.location,y,x);u=f();let b=rS(v,u),S=m.createHref(v);o.replaceState(b,"",S),i&&l&&l({action:s,location:m.location,delta:0})}function g(y){let x=a.location.origin!=="null"?a.location.origin:a.location.href,v=typeof y=="string"?y:Zd(y);return v=v.replace(/ $/,"%20"),mt(x,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,x)}let m={get action(){return s},get location(){return e(a,o)},listen(y){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(tS,d),l=y,()=>{a.removeEventListener(tS,d),l=null}},createHref(y){return t(a,y)},createURL:g,encodeLocation(y){let x=g(y);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:h,replace:p,go(y){return o.go(y)}};return m}var nS;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(nS||(nS={}));function VR(e,t,r){return r===void 0&&(r="/"),GR(e,t,r)}function GR(e,t,r,n){let a=typeof t=="string"?gl(t):t,i=cb(a.pathname||"/",r);if(i==null)return null;let o=HE(e);YR(o);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(mt(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=ui([n,l.relativePath]),f=r.concat(l);i.children&&i.children.length>0&&(mt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),HE(i.children,t,f,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:rL(u,i.index),routesMeta:f})};return e.forEach((i,o)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))a(i,o);else for(let l of VE(i.path))a(i,o,l)}),t}function VE(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=VE(n.join("/")),s=[];return s.push(...o.map(l=>l===""?i:[i,l].join("/"))),a&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function YR(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:nL(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const XR=/^:[\w-]+$/,QR=3,JR=2,ZR=1,eL=10,tL=-2,aS=e=>e==="*";function rL(e,t){let r=e.split("/"),n=r.length;return r.some(aS)&&(n+=tL),t&&(n+=JR),r.filter(a=>!aS(a)).reduce((a,i)=>a+(XR.test(i)?QR:i===""?ZR:eL),n)}function nL(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function aL(e,t,r){let{routesMeta:n}=e,a={},i="/",o=[];for(let s=0;s{let{paramName:h,isOptional:p}=f;if(h==="*"){let m=s[d]||"";o=i.slice(0,i.length-m.length).replace(/(.)\/+$/,"$1")}const g=s[d];return p&&!g?u[h]=void 0:u[h]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function oL(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),qE(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 n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function sL(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qE(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function cb(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function lL(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?gl(e):e;return{pathname:r?r.startsWith("/")?r:uL(r,t):t,search:dL(n),hash:hL(a)}}function uL(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function fg(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function cL(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function GE(e,t){let r=cL(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function YE(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=gl(e):(a=Xu({},e),mt(!a.pathname||!a.pathname.includes("?"),fg("?","pathname","search",a)),mt(!a.pathname||!a.pathname.includes("#"),fg("#","pathname","hash",a)),mt(!a.search||!a.search.includes("#"),fg("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,s;if(o==null)s=r;else{let d=t.length-1;if(!n&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),d-=1;a.pathname=h.join("/")}s=d>=0?t[d]:"/"}let l=lL(a,s),u=o&&o!=="/"&&o.endsWith("/"),f=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||f)&&(l.pathname+="/"),l}const ui=e=>e.join("/").replace(/\/\/+/g,"/"),fL=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),dL=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,hL=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function pL(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const XE=["post","put","patch","delete"];new Set(XE);const mL=["get",...XE];new Set(mL);/** + * React Router v6.30.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 + */function Qu(){return Qu=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),N.useCallback(function(u,f){if(f===void 0&&(f={}),!s.current)return;if(typeof u=="number"){n.go(u);return}let d=YE(u,JSON.parse(o),i,f.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:ui([t,d.pathname])),(f.replace?n.replace:n.push)(d,f.state,f)},[t,n,o,i,e])}const xL=N.createContext(null);function bL(e){let t=N.useContext(ba).outlet;return t&&N.createElement(xL.Provider,{value:e},t)}function Ep(){let{matches:e}=N.useContext(ba),t=e[e.length-1];return t?t.params:{}}function ZE(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=N.useContext(Po),{matches:a}=N.useContext(ba),{pathname:i}=Ao(),o=JSON.stringify(GE(a,n.v7_relativeSplatPath));return N.useMemo(()=>YE(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function wL(e,t){return SL(e,t)}function SL(e,t,r,n){Qc()||mt(!1);let{navigator:a}=N.useContext(Po),{matches:i}=N.useContext(ba),o=i[i.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Ao(),f;if(t){var d;let y=typeof t=="string"?gl(t):t;l==="/"||(d=y.pathname)!=null&&d.startsWith(l)||mt(!1),f=y}else f=u;let h=f.pathname||"/",p=h;if(l!=="/"){let y=l.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=VR(e,{pathname:p}),m=AL(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},s,y.params),pathname:ui([l,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:ui([l,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),i,r,n);return t&&m?N.createElement(kp.Provider,{value:{location:Qu({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:Qa.Pop}},m):m}function jL(){let e=TL(),t=pL(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return N.createElement(N.Fragment,null,N.createElement("h2",null,"Unexpected Application Error!"),N.createElement("h3",{style:{fontStyle:"italic"}},t),r?N.createElement("pre",{style:a},r):null,null)}const OL=N.createElement(jL,null);class NL extends N.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?N.createElement(ba.Provider,{value:this.props.routeContext},N.createElement(QE.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function PL(e){let{routeContext:t,match:r,children:n}=e,a=N.useContext(fb);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),N.createElement(ba.Provider,{value:t},n)}function AL(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,s=(a=r)==null?void 0:a.errors;if(s!=null){let f=o.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);f>=0||mt(!1),o=o.slice(0,Math.min(o.length,f+1))}let l=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let f=0;f=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((f,d,h)=>{let p,g=!1,m=null,y=null;r&&(p=s&&d.route.id?s[d.route.id]:void 0,m=d.route.errorElement||OL,l&&(u<0&&h===0?($L("route-fallback"),g=!0,y=null):u===h&&(g=!0,y=d.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,h+1)),v=()=>{let b;return p?b=m:g?b=y:d.route.Component?b=N.createElement(d.route.Component,null):d.route.element?b=d.route.element:b=f,N.createElement(PL,{match:d,routeContext:{outlet:f,matches:x,isDataRoute:r!=null},children:b})};return r&&(d.route.ErrorBoundary||d.route.errorElement||h===0)?N.createElement(NL,{location:r.location,revalidation:r.revalidation,component:m,error:p,children:v(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):v()},null)}var e_=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(e_||{}),t_=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(t_||{});function kL(e){let t=N.useContext(fb);return t||mt(!1),t}function EL(e){let t=N.useContext(gL);return t||mt(!1),t}function _L(e){let t=N.useContext(ba);return t||mt(!1),t}function r_(e){let t=_L(),r=t.matches[t.matches.length-1];return r.route.id||mt(!1),r.route.id}function TL(){var e;let t=N.useContext(QE),r=EL(),n=r_();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function CL(){let{router:e}=kL(e_.UseNavigateStable),t=r_(t_.UseNavigateStable),r=N.useRef(!1);return JE(()=>{r.current=!0}),N.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Qu({fromRouteId:t},i)))},[e,t])}const iS={};function $L(e,t,r){iS[e]||(iS[e]=!0)}function ML(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function IL(e){return bL(e.context)}function At(e){mt(!1)}function DL(e){let{basename:t="/",children:r=null,location:n,navigationType:a=Qa.Pop,navigator:i,static:o=!1,future:s}=e;Qc()&&mt(!1);let l=t.replace(/^\/*/,"/"),u=N.useMemo(()=>({basename:l,navigator:i,static:o,future:Qu({v7_relativeSplatPath:!1},s)}),[l,s,i,o]);typeof n=="string"&&(n=gl(n));let{pathname:f="/",search:d="",hash:h="",state:p=null,key:g="default"}=n,m=N.useMemo(()=>{let y=cb(f,l);return y==null?null:{location:{pathname:y,search:d,hash:h,state:p,key:g},navigationType:a}},[l,f,d,h,p,g,a]);return m==null?null:N.createElement(Po.Provider,{value:u},N.createElement(kp.Provider,{children:r,value:m}))}function RL(e){let{children:t,location:r}=e;return wL(gy(t),r)}new Promise(()=>{});function gy(e,t){t===void 0&&(t=[]);let r=[];return N.Children.forEach(e,(n,a)=>{if(!N.isValidElement(n))return;let i=[...t,a];if(n.type===N.Fragment){r.push.apply(r,gy(n.props.children,i));return}n.type!==At&&mt(!1),!n.props.index||!n.props.children||mt(!1);let o={id:n.props.id||i.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=gy(n.props.children,i)),r.push(o)}),r}/** + * React Router DOM v6.30.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 + */function vy(){return vy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[a]=e[a]);return r}function FL(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function zL(e,t){return e.button===0&&(!t||t==="_self")&&!FL(e)}function yy(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function BL(e,t){let r=yy(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const UL=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],WL="6";try{window.__reactRouterVersion=WL}catch{}const KL="startTransition",oS=p0[KL];function qL(e){let{basename:t,children:r,future:n,window:a}=e,i=N.useRef();i.current==null&&(i.current=KR({window:a,v5Compat:!0}));let o=i.current,[s,l]=N.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},f=N.useCallback(d=>{u&&oS?oS(()=>l(d)):l(d)},[l,u]);return N.useLayoutEffect(()=>o.listen(f),[o,f]),N.useEffect(()=>ML(n),[n]),N.createElement(DL,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o,future:n})}const HL=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",VL=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ha=N.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:i,replace:o,state:s,target:l,to:u,preventScrollReset:f,viewTransition:d}=t,h=LL(t,UL),{basename:p}=N.useContext(Po),g,m=!1;if(typeof u=="string"&&VL.test(u)&&(g=u,HL))try{let b=new URL(window.location.href),S=u.startsWith("//")?new URL(b.protocol+u):new URL(u),w=cb(S.pathname,p);S.origin===b.origin&&w!=null?u=w+S.search+S.hash:m=!0}catch{}let y=vL(u,{relative:a}),x=GL(u,{replace:o,state:s,target:l,preventScrollReset:f,relative:a,viewTransition:d});function v(b){n&&n(b),b.defaultPrevented||x(b)}return N.createElement("a",vy({},h,{href:g||y,onClick:m||i?n:v,ref:r,target:l}))});var sS;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(sS||(sS={}));var lS;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(lS||(lS={}));function GL(e,t){let{target:r,replace:n,state:a,preventScrollReset:i,relative:o,viewTransition:s}=t===void 0?{}:t,l=Fn(),u=Ao(),f=ZE(e,{relative:o});return N.useCallback(d=>{if(zL(d,r)){d.preventDefault();let h=n!==void 0?n:Zd(u)===Zd(f);l(e,{replace:h,state:a,preventScrollReset:i,relative:o,viewTransition:s})}},[u,l,f,n,a,r,e,i,o,s])}function n_(e){let t=N.useRef(yy(e)),r=N.useRef(!1),n=Ao(),a=N.useMemo(()=>BL(n.search,r.current?null:t.current),[n.search]),i=Fn(),o=N.useCallback((s,l)=>{const u=yy(typeof s=="function"?s(a):s);r.current=!0,i("?"+u,l)},[i,a]);return[a,o]}const YL=new TR({defaultOptions:{queries:{staleTime:10*60*1e3,gcTime:30*60*1e3,retry:2,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!0}}});function db(e){if(!e||e.length===0)return!1;const t=["RUNNING","PENDING"];return e.some(n=>t.includes(n))?3e4:!1}function a_(e){if(!e||e.length===0)return!1;const t=["RUNNING","PENDING"];return e.some(n=>t.includes(n))?3e4:!1}const i_=N.createContext(void 0);function XL({children:e}){const[t,r]=N.useState(null),n=(a,i)=>{if(r(a),typeof window<"u"&&i){const o=`alphatrion_selected_team_${i}`;localStorage.setItem(o,a)}};return c.jsx(i_.Provider,{value:{selectedTeamId:t,setSelectedTeamId:n},children:e})}function wa(){const e=N.useContext(i_);if(!e)throw new Error("useTeamContext must be used within TeamProvider");return e}const o_=N.createContext(null);function QL({user:e,children:t}){const[r,n]=N.useState(e),a=i=>{n(o=>({...o,...i}))};return c.jsx(o_.Provider,{value:{user:r,updateUser:a},children:t})}function s_(){const e=N.useContext(o_);if(!e)throw new Error("useCurrentUser must be used within UserProvider");return e.user}/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const JL=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ZL=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,n)=>n?n.toUpperCase():r.toLowerCase()),uS=e=>{const t=ZL(e);return t.charAt(0).toUpperCase()+t.slice(1)},l_=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim(),e3=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var t3={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const r3=N.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:i,iconNode:o,...s},l)=>N.createElement("svg",{ref:l,...t3,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:l_("lucide",a),...!i&&!e3(s)&&{"aria-hidden":"true"},...s},[...o.map(([u,f])=>N.createElement(u,f)),...Array.isArray(i)?i:[i]]));/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ge=(e,t)=>{const r=N.forwardRef(({className:n,...a},i)=>N.createElement(r3,{ref:i,iconNode:t,className:l_(`lucide-${JL(uS(e))}`,`lucide-${e}`,n),...a}));return r.displayName=uS(e),r};/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const n3=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Gr=ge("bot",n3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const a3=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],i3=ge("brain",a3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const o3=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],s3=ge("building-2",o3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const l3=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],u3=ge("calendar",l3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const c3=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],u_=ge("check",c3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const f3=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Ju=ge("chevron-down",f3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const d3=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],eh=ge("chevron-right",d3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const h3=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],p3=ge("chevron-left",h3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const m3=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],g3=ge("chevrons-left",m3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const v3=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],y3=ge("chevrons-right",v3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const x3=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ci=ge("clock",x3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const b3=[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]],w3=ge("coins",b3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S3=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],j3=ge("copy",S3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const O3=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],_n=ge("database",O3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const N3=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],c_=ge("dollar-sign",N3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const P3=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],A3=ge("download",P3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const k3=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],cS=ge("external-link",k3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const E3=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],xy=ge("eye",E3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _3=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],ps=ge("file-text",_3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const T3=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],C3=ge("file",T3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $3=[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]],hb=ge("flask-conical",$3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const M3=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],I3=ge("folder-tree",M3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const D3=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],R3=ge("git-branch",D3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const L3=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],F3=ge("github",L3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const z3=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],B3=ge("info",z3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const U3=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],W3=ge("key",U3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K3=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],q3=ge("layout-dashboard",K3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const H3=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],V3=ge("log-out",H3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const G3=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],fS=ge("message-square",G3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Y3=[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]],X3=ge("messages-square",Y3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Q3=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Zu=ge("package",Q3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const J3=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Or=ge("search",J3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Z3=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],dg=ge("tag",Z3);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e5=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],by=ge("trash-2",e5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t5=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],r5=ge("trending-up",t5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const n5=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],a5=ge("user",n5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const i5=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],o5=ge("users",i5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const s5=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],l5=ge("wrench",s5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const u5=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ec=ge("x",u5);/** + * @license lucide-react v0.555.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const c5=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Su=ge("zap",c5);function f_(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const r=new Array(e.length+t.length);for(let n=0;n({classGroupId:e,validator:t}),d_=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),th="-",dS=[],h5="arbitrary..",p5=e=>{const t=g5(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:o=>{if(o.startsWith("[")&&o.endsWith("]"))return m5(o);const s=o.split(th),l=s[0]===""&&s.length>1?1:0;return h_(s,l,t)},getConflictingClassGroupIds:(o,s)=>{if(s){const l=n[o],u=r[o];return l?u?f5(u,l):l:u||dS}return r[o]||dS}}},h_=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const a=e[t],i=r.nextPart.get(a);if(i){const u=h_(e,t+1,i);if(u)return u}const o=r.validators;if(o===null)return;const s=t===0?e.join(th):e.slice(t).join(th),l=o.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),n=t.slice(0,r);return n?h5+n:void 0})(),g5=e=>{const{theme:t,classGroups:r}=e;return v5(r,t)},v5=(e,t)=>{const r=d_();for(const n in e){const a=e[n];pb(a,r,n,t)}return r},pb=(e,t,r,n)=>{const a=e.length;for(let i=0;i{if(typeof e=="string"){x5(e,t,r);return}if(typeof e=="function"){b5(e,t,r,n);return}w5(e,t,r,n)},x5=(e,t,r)=>{const n=e===""?t:p_(t,e);n.classGroupId=r},b5=(e,t,r,n)=>{if(S5(e)){pb(e(n),t,r,n);return}t.validators===null&&(t.validators=[]),t.validators.push(d5(r,e))},w5=(e,t,r,n)=>{const a=Object.entries(e),i=a.length;for(let o=0;o{let r=e;const n=t.split(th),a=n.length;for(let i=0;i"isThemeGetter"in e&&e.isThemeGetter===!0,j5=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null);const a=(i,o)=>{r[i]=o,t++,t>e&&(t=0,n=r,r=Object.create(null))};return{get(i){let o=r[i];if(o!==void 0)return o;if((o=n[i])!==void 0)return a(i,o),o},set(i,o){i in r?r[i]=o:a(i,o)}}},wy="!",hS=":",O5=[],pS=(e,t,r,n,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:a}),N5=e=>{const{prefix:t,experimentalParseClassName:r}=e;let n=a=>{const i=[];let o=0,s=0,l=0,u;const f=a.length;for(let m=0;ml?u-l:void 0;return pS(i,p,h,g)};if(t){const a=t+hS,i=n;n=o=>o.startsWith(a)?i(o.slice(a.length)):pS(O5,!1,o,void 0,!0)}if(r){const a=n;n=i=>r({className:i,parseClassName:a})}return n},P5=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,n)=>{t.set(r,1e6+n)}),r=>{const n=[];let a=[];for(let i=0;i0&&(a.sort(),n.push(...a),a=[]),n.push(o)):a.push(o)}return a.length>0&&(a.sort(),n.push(...a)),n}},A5=e=>({cache:j5(e.cacheSize),parseClassName:N5(e),sortModifiers:P5(e),...p5(e)}),k5=/\s+/,E5=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:a,sortModifiers:i}=t,o=[],s=e.trim().split(k5);let l="";for(let u=s.length-1;u>=0;u-=1){const f=s[u],{isExternal:d,modifiers:h,hasImportantModifier:p,baseClassName:g,maybePostfixModifierPosition:m}=r(f);if(d){l=f+(l.length>0?" "+l:l);continue}let y=!!m,x=n(y?g.substring(0,m):g);if(!x){if(!y){l=f+(l.length>0?" "+l:l);continue}if(x=n(g),!x){l=f+(l.length>0?" "+l:l);continue}y=!1}const v=h.length===0?"":h.length===1?h[0]:i(h).join(":"),b=p?v+wy:v,S=b+x;if(o.indexOf(S)>-1)continue;o.push(S);const w=a(x,y);for(let O=0;O0?" "+l:l)}return l},_5=(...e)=>{let t=0,r,n,a="";for(;t{if(typeof e=="string")return e;let t,r="";for(let n=0;n{let r,n,a,i;const o=l=>{const u=t.reduce((f,d)=>d(f),e());return r=A5(u),n=r.cache.get,a=r.cache.set,i=s,s(l)},s=l=>{const u=n(l);if(u)return u;const f=E5(l,r);return a(l,f),f};return i=o,(...l)=>i(_5(...l))},C5=[],yt=e=>{const t=r=>r[e]||C5;return t.isThemeGetter=!0,t},g_=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,v_=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$5=/^\d+\/\d+$/,M5=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,I5=/\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$/,D5=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,R5=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,L5=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Do=e=>$5.test(e),ye=e=>!!e&&!Number.isNaN(Number(e)),Ea=e=>!!e&&Number.isInteger(Number(e)),hg=e=>e.endsWith("%")&&ye(e.slice(0,-1)),Un=e=>M5.test(e),F5=()=>!0,z5=e=>I5.test(e)&&!D5.test(e),y_=()=>!1,B5=e=>R5.test(e),U5=e=>L5.test(e),W5=e=>!ee(e)&&!te(e),K5=e=>vl(e,w_,y_),ee=e=>g_.test(e),Ai=e=>vl(e,S_,z5),pg=e=>vl(e,Y5,ye),mS=e=>vl(e,x_,y_),q5=e=>vl(e,b_,U5),Lf=e=>vl(e,j_,B5),te=e=>v_.test(e),Hl=e=>yl(e,S_),H5=e=>yl(e,X5),gS=e=>yl(e,x_),V5=e=>yl(e,w_),G5=e=>yl(e,b_),Ff=e=>yl(e,j_,!0),vl=(e,t,r)=>{const n=g_.exec(e);return n?n[1]?t(n[1]):r(n[2]):!1},yl=(e,t,r=!1)=>{const n=v_.exec(e);return n?n[1]?t(n[1]):r:!1},x_=e=>e==="position"||e==="percentage",b_=e=>e==="image"||e==="url",w_=e=>e==="length"||e==="size"||e==="bg-size",S_=e=>e==="length",Y5=e=>e==="number",X5=e=>e==="family-name",j_=e=>e==="shadow",Q5=()=>{const e=yt("color"),t=yt("font"),r=yt("text"),n=yt("font-weight"),a=yt("tracking"),i=yt("leading"),o=yt("breakpoint"),s=yt("container"),l=yt("spacing"),u=yt("radius"),f=yt("shadow"),d=yt("inset-shadow"),h=yt("text-shadow"),p=yt("drop-shadow"),g=yt("blur"),m=yt("perspective"),y=yt("aspect"),x=yt("ease"),v=yt("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...S(),te,ee],O=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],P=()=>[te,ee,l],A=()=>[Do,"full","auto",...P()],_=()=>[Ea,"none","subgrid",te,ee],E=()=>["auto",{span:["full",Ea,te,ee]},Ea,te,ee],k=()=>[Ea,"auto",te,ee],R=()=>["auto","min","max","fr",te,ee],z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],M=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...P()],D=()=>[Do,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],T=()=>[e,te,ee],F=()=>[...S(),gS,mS,{position:[te,ee]}],W=()=>["no-repeat",{repeat:["","x","y","space","round"]}],H=()=>["auto","cover","contain",V5,K5,{size:[te,ee]}],q=()=>[hg,Hl,Ai],L=()=>["","none","full",u,te,ee],Y=()=>["",ye,Hl,Ai],ve=()=>["solid","dashed","dotted","double"],Ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],we=()=>[ye,hg,gS,mS],dt=()=>["","none",g,te,ee],X=()=>["none",ye,te,ee],ue=()=>["none",ye,te,ee],ce=()=>[ye,te,ee],K=()=>[Do,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Un],breakpoint:[Un],color:[F5],container:[Un],"drop-shadow":[Un],ease:["in","out","in-out"],font:[W5],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Un],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Un],shadow:[Un],spacing:["px",ye],text:[Un],"text-shadow":[Un],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Do,ee,te,y]}],container:["container"],columns:[{columns:[ye,ee,te,s]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"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:w()}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[Ea,"auto",te,ee]}],basis:[{basis:[Do,"full","auto",s,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ye,Do,"auto","initial","none",ee]}],grow:[{grow:["",ye,te,ee]}],shrink:[{shrink:["",ye,te,ee]}],order:[{order:[Ea,"first","last","none",te,ee]}],"grid-cols":[{"grid-cols":_()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":_()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...z(),"normal"]}],"justify-items":[{"justify-items":[...M(),"normal"]}],"justify-self":[{"justify-self":["auto",...M()]}],"align-content":[{content:["normal",...z()]}],"align-items":[{items:[...M(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...M(),{baseline:["","last"]}]}],"place-content":[{"place-content":z()}],"place-items":[{"place-items":[...M(),"baseline"]}],"place-self":[{"place-self":["auto",...M()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[s,"screen",...D()]}],"min-w":[{"min-w":[s,"screen","none",...D()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[o]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",r,Hl,Ai]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,te,pg]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",hg,ee]}],"font-family":[{font:[H5,ee,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:[a,te,ee]}],"line-clamp":[{"line-clamp":[ye,"none",te,pg]}],leading:[{leading:[i,...P()]}],"list-image":[{"list-image":["none",te,ee]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",te,ee]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:T()}],"text-color":[{text:T()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ve(),"wavy"]}],"text-decoration-thickness":[{decoration:[ye,"from-font","auto",te,Ai]}],"text-decoration-color":[{decoration:T()}],"underline-offset":[{"underline-offset":[ye,"auto",te,ee]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",te,ee]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",te,ee]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:F()}],"bg-repeat":[{bg:W()}],"bg-size":[{bg:H()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ea,te,ee],radial:["",te,ee],conic:[Ea,te,ee]},G5,q5]}],"bg-color":[{bg:T()}],"gradient-from-pos":[{from:q()}],"gradient-via-pos":[{via:q()}],"gradient-to-pos":[{to:q()}],"gradient-from":[{from:T()}],"gradient-via":[{via:T()}],"gradient-to":[{to:T()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:Y()}],"border-w-x":[{"border-x":Y()}],"border-w-y":[{"border-y":Y()}],"border-w-s":[{"border-s":Y()}],"border-w-e":[{"border-e":Y()}],"border-w-t":[{"border-t":Y()}],"border-w-r":[{"border-r":Y()}],"border-w-b":[{"border-b":Y()}],"border-w-l":[{"border-l":Y()}],"divide-x":[{"divide-x":Y()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Y()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ve(),"hidden","none"]}],"divide-style":[{divide:[...ve(),"hidden","none"]}],"border-color":[{border:T()}],"border-color-x":[{"border-x":T()}],"border-color-y":[{"border-y":T()}],"border-color-s":[{"border-s":T()}],"border-color-e":[{"border-e":T()}],"border-color-t":[{"border-t":T()}],"border-color-r":[{"border-r":T()}],"border-color-b":[{"border-b":T()}],"border-color-l":[{"border-l":T()}],"divide-color":[{divide:T()}],"outline-style":[{outline:[...ve(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ye,te,ee]}],"outline-w":[{outline:["",ye,Hl,Ai]}],"outline-color":[{outline:T()}],shadow:[{shadow:["","none",f,Ff,Lf]}],"shadow-color":[{shadow:T()}],"inset-shadow":[{"inset-shadow":["none",d,Ff,Lf]}],"inset-shadow-color":[{"inset-shadow":T()}],"ring-w":[{ring:Y()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:T()}],"ring-offset-w":[{"ring-offset":[ye,Ai]}],"ring-offset-color":[{"ring-offset":T()}],"inset-ring-w":[{"inset-ring":Y()}],"inset-ring-color":[{"inset-ring":T()}],"text-shadow":[{"text-shadow":["none",h,Ff,Lf]}],"text-shadow-color":[{"text-shadow":T()}],opacity:[{opacity:[ye,te,ee]}],"mix-blend":[{"mix-blend":[...Ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ye]}],"mask-image-linear-from-pos":[{"mask-linear-from":we()}],"mask-image-linear-to-pos":[{"mask-linear-to":we()}],"mask-image-linear-from-color":[{"mask-linear-from":T()}],"mask-image-linear-to-color":[{"mask-linear-to":T()}],"mask-image-t-from-pos":[{"mask-t-from":we()}],"mask-image-t-to-pos":[{"mask-t-to":we()}],"mask-image-t-from-color":[{"mask-t-from":T()}],"mask-image-t-to-color":[{"mask-t-to":T()}],"mask-image-r-from-pos":[{"mask-r-from":we()}],"mask-image-r-to-pos":[{"mask-r-to":we()}],"mask-image-r-from-color":[{"mask-r-from":T()}],"mask-image-r-to-color":[{"mask-r-to":T()}],"mask-image-b-from-pos":[{"mask-b-from":we()}],"mask-image-b-to-pos":[{"mask-b-to":we()}],"mask-image-b-from-color":[{"mask-b-from":T()}],"mask-image-b-to-color":[{"mask-b-to":T()}],"mask-image-l-from-pos":[{"mask-l-from":we()}],"mask-image-l-to-pos":[{"mask-l-to":we()}],"mask-image-l-from-color":[{"mask-l-from":T()}],"mask-image-l-to-color":[{"mask-l-to":T()}],"mask-image-x-from-pos":[{"mask-x-from":we()}],"mask-image-x-to-pos":[{"mask-x-to":we()}],"mask-image-x-from-color":[{"mask-x-from":T()}],"mask-image-x-to-color":[{"mask-x-to":T()}],"mask-image-y-from-pos":[{"mask-y-from":we()}],"mask-image-y-to-pos":[{"mask-y-to":we()}],"mask-image-y-from-color":[{"mask-y-from":T()}],"mask-image-y-to-color":[{"mask-y-to":T()}],"mask-image-radial":[{"mask-radial":[te,ee]}],"mask-image-radial-from-pos":[{"mask-radial-from":we()}],"mask-image-radial-to-pos":[{"mask-radial-to":we()}],"mask-image-radial-from-color":[{"mask-radial-from":T()}],"mask-image-radial-to-color":[{"mask-radial-to":T()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":S()}],"mask-image-conic-pos":[{"mask-conic":[ye]}],"mask-image-conic-from-pos":[{"mask-conic-from":we()}],"mask-image-conic-to-pos":[{"mask-conic-to":we()}],"mask-image-conic-from-color":[{"mask-conic-from":T()}],"mask-image-conic-to-color":[{"mask-conic-to":T()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:F()}],"mask-repeat":[{mask:W()}],"mask-size":[{mask:H()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",te,ee]}],filter:[{filter:["","none",te,ee]}],blur:[{blur:dt()}],brightness:[{brightness:[ye,te,ee]}],contrast:[{contrast:[ye,te,ee]}],"drop-shadow":[{"drop-shadow":["","none",p,Ff,Lf]}],"drop-shadow-color":[{"drop-shadow":T()}],grayscale:[{grayscale:["",ye,te,ee]}],"hue-rotate":[{"hue-rotate":[ye,te,ee]}],invert:[{invert:["",ye,te,ee]}],saturate:[{saturate:[ye,te,ee]}],sepia:[{sepia:["",ye,te,ee]}],"backdrop-filter":[{"backdrop-filter":["","none",te,ee]}],"backdrop-blur":[{"backdrop-blur":dt()}],"backdrop-brightness":[{"backdrop-brightness":[ye,te,ee]}],"backdrop-contrast":[{"backdrop-contrast":[ye,te,ee]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ye,te,ee]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ye,te,ee]}],"backdrop-invert":[{"backdrop-invert":["",ye,te,ee]}],"backdrop-opacity":[{"backdrop-opacity":[ye,te,ee]}],"backdrop-saturate":[{"backdrop-saturate":[ye,te,ee]}],"backdrop-sepia":[{"backdrop-sepia":["",ye,te,ee]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",te,ee]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ye,"initial",te,ee]}],ease:[{ease:["linear","initial",x,te,ee]}],delay:[{delay:[ye,te,ee]}],animate:[{animate:["none",v,te,ee]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,te,ee]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:X()}],"rotate-x":[{"rotate-x":X()}],"rotate-y":[{"rotate-y":X()}],"rotate-z":[{"rotate-z":X()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":["scale-3d"],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[te,ee,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:K()}],"translate-x":[{"translate-x":K()}],"translate-y":[{"translate-y":K()}],"translate-z":[{"translate-z":K()}],"translate-none":["translate-none"],accent:[{accent:T()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:T()}],"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",te,ee]}],"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":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"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",te,ee]}],fill:[{fill:["none",...T()]}],"stroke-w":[{stroke:[ye,Hl,Ai,pg]}],stroke:[{stroke:["none",...T()]}],"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-x","border-w-y","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-x","border-color-y","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:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},J5=T5(Q5);function he(...e){return J5(fe(e))}const O_="/static/assets/logo-D6hHn9pX.png",Z5=[{title:"Dashboard",href:"/",icon:q3},{title:"Experiments",href:"/experiments",icon:hb},{title:"Agents",href:"/agents",icon:Gr},{title:"Datasets",href:"/datasets",icon:I3},{title:"Artifacts",href:"/artifacts",icon:Zu}];function e4(){const e=Ao();return c.jsxs("div",{className:"flex h-screen w-48 flex-col bg-card",children:[c.jsx("div",{className:"flex items-center gap-2.5 px-3 py-3 border-b border-border",children:c.jsxs(ha,{to:"/",className:"flex items-center gap-2.5",children:[c.jsx("img",{src:O_,alt:"AlphaTrion Logo",className:"h-8 w-8"}),c.jsx("h1",{className:"text-lg font-bold text-foreground",children:"AlphaTrion"})]})}),c.jsx("nav",{className:"flex-1 space-y-1 overflow-y-auto px-3 py-4",children:Z5.map(t=>{const r=t.icon;let n=e.pathname===t.href||t.href!=="/"&&e.pathname.startsWith(t.href);return t.href==="/experiments"&&(n=n||e.pathname.startsWith("/runs")),c.jsxs(ha,{to:t.href,className:he("flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm font-medium transition-colors relative",n?"bg-blue-50 dark:bg-blue-950 text-blue-600 dark:text-blue-400":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[n&&c.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-blue-600 dark:bg-blue-400 rounded-r"}),c.jsx(r,{className:he("h-4 w-4 ml-1",n&&"text-blue-600 dark:text-blue-400")}),t.title]},t.href)})}),c.jsx("div",{className:"px-3 py-3 border-t border-border mt-auto",children:c.jsxs("div",{className:"flex items-center gap-2 px-1 justify-center",children:[c.jsx("a",{href:"https://github.com/InftyAI/alphatrion",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center h-6 w-6 rounded-md hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",title:"View on GitHub",children:c.jsx(F3,{className:"h-4 w-4"})}),c.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"v0.2.0"})]})})]})}function N_(e,t){return function(){return e.apply(t,arguments)}}const{toString:t4}=Object.prototype,{getPrototypeOf:mb}=Object,{iterator:_p,toStringTag:P_}=Symbol,Tp=(e=>t=>{const r=t4.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),xn=e=>(e=e.toLowerCase(),t=>Tp(t)===e),Cp=e=>t=>typeof t===e,{isArray:xl}=Array,Ls=Cp("undefined");function Jc(e){return e!==null&&!Ls(e)&&e.constructor!==null&&!Ls(e.constructor)&&gr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const A_=xn("ArrayBuffer");function r4(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&A_(e.buffer),t}const n4=Cp("string"),gr=Cp("function"),k_=Cp("number"),Zc=e=>e!==null&&typeof e=="object",a4=e=>e===!0||e===!1,bd=e=>{if(Tp(e)!=="object")return!1;const t=mb(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(P_ in e)&&!(_p in e)},i4=e=>{if(!Zc(e)||Jc(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},o4=xn("Date"),s4=xn("File"),l4=xn("Blob"),u4=xn("FileList"),c4=e=>Zc(e)&&gr(e.pipe),f4=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||gr(e.append)&&((t=Tp(e))==="formdata"||t==="object"&&gr(e.toString)&&e.toString()==="[object FormData]"))},d4=xn("URLSearchParams"),[h4,p4,m4,g4]=["ReadableStream","Request","Response","Headers"].map(xn),v4=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ef(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,a;if(typeof e!="object"&&(e=[e]),xl(e))for(n=0,a=e.length;n0;)if(a=r[n],t===a.toLowerCase())return a;return null}const Wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,__=e=>!Ls(e)&&e!==Wi;function Sy(){const{caseless:e,skipUndefined:t}=__(this)&&this||{},r={},n=(a,i)=>{const o=e&&E_(r,i)||i;bd(r[o])&&bd(a)?r[o]=Sy(r[o],a):bd(a)?r[o]=Sy({},a):xl(a)?r[o]=a.slice():(!t||!Ls(a))&&(r[o]=a)};for(let a=0,i=arguments.length;a(ef(t,(a,i)=>{r&&gr(a)?e[i]=N_(a,r):e[i]=a},{allOwnKeys:n}),e),x4=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),b4=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},w4=(e,t,r,n)=>{let a,i,o;const s={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),i=a.length;i-- >0;)o=a[i],(!n||n(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=r!==!1&&mb(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},S4=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},j4=e=>{if(!e)return null;if(xl(e))return e;let t=e.length;if(!k_(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},O4=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&mb(Uint8Array)),N4=(e,t)=>{const n=(e&&e[_p]).call(e);let a;for(;(a=n.next())&&!a.done;){const i=a.value;t.call(e,i[0],i[1])}},P4=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},A4=xn("HTMLFormElement"),k4=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,a){return n.toUpperCase()+a}),vS=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),E4=xn("RegExp"),T_=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};ef(r,(a,i)=>{let o;(o=t(a,i,e))!==!1&&(n[i]=o||a)}),Object.defineProperties(e,n)},_4=e=>{T_(e,(t,r)=>{if(gr(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(gr(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},T4=(e,t)=>{const r={},n=a=>{a.forEach(i=>{r[i]=!0})};return xl(e)?n(e):n(String(e).split(t)),r},C4=()=>{},$4=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function M4(e){return!!(e&&gr(e.append)&&e[P_]==="FormData"&&e[_p])}const I4=e=>{const t=new Array(10),r=(n,a)=>{if(Zc(n)){if(t.indexOf(n)>=0)return;if(Jc(n))return n;if(!("toJSON"in n)){t[a]=n;const i=xl(n)?[]:{};return ef(n,(o,s)=>{const l=r(o,a+1);!Ls(l)&&(i[s]=l)}),t[a]=void 0,i}}return n};return r(e,0)},D4=xn("AsyncFunction"),R4=e=>e&&(Zc(e)||gr(e))&&gr(e.then)&&gr(e.catch),C_=((e,t)=>e?setImmediate:t?((r,n)=>(Wi.addEventListener("message",({source:a,data:i})=>{a===Wi&&i===r&&n.length&&n.shift()()},!1),a=>{n.push(a),Wi.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",gr(Wi.postMessage)),L4=typeof queueMicrotask<"u"?queueMicrotask.bind(Wi):typeof process<"u"&&process.nextTick||C_,F4=e=>e!=null&&gr(e[_p]),B={isArray:xl,isArrayBuffer:A_,isBuffer:Jc,isFormData:f4,isArrayBufferView:r4,isString:n4,isNumber:k_,isBoolean:a4,isObject:Zc,isPlainObject:bd,isEmptyObject:i4,isReadableStream:h4,isRequest:p4,isResponse:m4,isHeaders:g4,isUndefined:Ls,isDate:o4,isFile:s4,isBlob:l4,isRegExp:E4,isFunction:gr,isStream:c4,isURLSearchParams:d4,isTypedArray:O4,isFileList:u4,forEach:ef,merge:Sy,extend:y4,trim:v4,stripBOM:x4,inherits:b4,toFlatObject:w4,kindOf:Tp,kindOfTest:xn,endsWith:S4,toArray:j4,forEachEntry:N4,matchAll:P4,isHTMLForm:A4,hasOwnProperty:vS,hasOwnProp:vS,reduceDescriptors:T_,freezeMethods:_4,toObjectSet:T4,toCamelCase:k4,noop:C4,toFiniteNumber:$4,findKey:E_,global:Wi,isContextDefined:__,isSpecCompliantForm:M4,toJSONObject:I4,isAsyncFn:D4,isThenable:R4,setImmediate:C_,asap:L4,isIterable:F4};function de(e,t,r,n,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),a&&(this.response=a,this.status=a.status?a.status:null)}B.inherits(de,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:B.toJSONObject(this.config),code:this.code,status:this.status}}});const $_=de.prototype,M_={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{M_[e]={value:e}});Object.defineProperties(de,M_);Object.defineProperty($_,"isAxiosError",{value:!0});de.from=(e,t,r,n,a,i)=>{const o=Object.create($_);B.toFlatObject(e,o,function(f){return f!==Error.prototype},u=>u!=="isAxiosError");const s=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return de.call(o,s,l,r,n,a),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",i&&Object.assign(o,i),o};const z4=null;function jy(e){return B.isPlainObject(e)||B.isArray(e)}function I_(e){return B.endsWith(e,"[]")?e.slice(0,-2):e}function yS(e,t,r){return e?e.concat(t).map(function(a,i){return a=I_(a),!r&&i?"["+a+"]":a}).join(r?".":""):t}function B4(e){return B.isArray(e)&&!e.some(jy)}const U4=B.toFlatObject(B,{},null,function(t){return/^is[A-Z]/.test(t)});function $p(e,t,r){if(!B.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=B.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,y){return!B.isUndefined(y[m])});const n=r.metaTokens,a=r.visitor||f,i=r.dots,o=r.indexes,l=(r.Blob||typeof Blob<"u"&&Blob)&&B.isSpecCompliantForm(t);if(!B.isFunction(a))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(B.isDate(g))return g.toISOString();if(B.isBoolean(g))return g.toString();if(!l&&B.isBlob(g))throw new de("Blob is not supported. Use a Buffer instead.");return B.isArrayBuffer(g)||B.isTypedArray(g)?l&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function f(g,m,y){let x=g;if(g&&!y&&typeof g=="object"){if(B.endsWith(m,"{}"))m=n?m:m.slice(0,-2),g=JSON.stringify(g);else if(B.isArray(g)&&B4(g)||(B.isFileList(g)||B.endsWith(m,"[]"))&&(x=B.toArray(g)))return m=I_(m),x.forEach(function(b,S){!(B.isUndefined(b)||b===null)&&t.append(o===!0?yS([m],S,i):o===null?m:m+"[]",u(b))}),!1}return jy(g)?!0:(t.append(yS(y,m,i),u(g)),!1)}const d=[],h=Object.assign(U4,{defaultVisitor:f,convertValue:u,isVisitable:jy});function p(g,m){if(!B.isUndefined(g)){if(d.indexOf(g)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(g),B.forEach(g,function(x,v){(!(B.isUndefined(x)||x===null)&&a.call(t,x,B.isString(v)?v.trim():v,m,h))===!0&&p(x,m?m.concat(v):[v])}),d.pop()}}if(!B.isObject(e))throw new TypeError("data must be an object");return p(e),t}function xS(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function gb(e,t){this._pairs=[],e&&$p(e,this,t)}const D_=gb.prototype;D_.append=function(t,r){this._pairs.push([t,r])};D_.toString=function(t){const r=t?function(n){return t.call(this,n,xS)}:xS;return this._pairs.map(function(a){return r(a[0])+"="+r(a[1])},"").join("&")};function W4(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function R_(e,t,r){if(!t)return e;const n=r&&r.encode||W4;B.isFunction(r)&&(r={serialize:r});const a=r&&r.serialize;let i;if(a?i=a(t,r):i=B.isURLSearchParams(t)?t.toString():new gb(t,r).toString(n),i){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class bS{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){B.forEach(this.handlers,function(n){n!==null&&t(n)})}}const L_={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},K4=typeof URLSearchParams<"u"?URLSearchParams:gb,q4=typeof FormData<"u"?FormData:null,H4=typeof Blob<"u"?Blob:null,V4={isBrowser:!0,classes:{URLSearchParams:K4,FormData:q4,Blob:H4},protocols:["http","https","file","blob","url","data"]},vb=typeof window<"u"&&typeof document<"u",Oy=typeof navigator=="object"&&navigator||void 0,G4=vb&&(!Oy||["ReactNative","NativeScript","NS"].indexOf(Oy.product)<0),Y4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",X4=vb&&window.location.href||"http://localhost",Q4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:vb,hasStandardBrowserEnv:G4,hasStandardBrowserWebWorkerEnv:Y4,navigator:Oy,origin:X4},Symbol.toStringTag,{value:"Module"})),qt={...Q4,...V4};function J4(e,t){return $p(e,new qt.classes.URLSearchParams,{visitor:function(r,n,a,i){return qt.isNode&&B.isBuffer(r)?(this.append(n,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function Z4(e){return B.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function eF(e){const t={},r=Object.keys(e);let n;const a=r.length;let i;for(n=0;n=r.length;return o=!o&&B.isArray(a)?a.length:o,l?(B.hasOwnProp(a,o)?a[o]=[a[o],n]:a[o]=n,!s):((!a[o]||!B.isObject(a[o]))&&(a[o]=[]),t(r,n,a[o],i)&&B.isArray(a[o])&&(a[o]=eF(a[o])),!s)}if(B.isFormData(e)&&B.isFunction(e.entries)){const r={};return B.forEachEntry(e,(n,a)=>{t(Z4(n),a,r,0)}),r}return null}function tF(e,t,r){if(B.isString(e))try{return(t||JSON.parse)(e),B.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const tf={transitional:L_,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",a=n.indexOf("application/json")>-1,i=B.isObject(t);if(i&&B.isHTMLForm(t)&&(t=new FormData(t)),B.isFormData(t))return a?JSON.stringify(F_(t)):t;if(B.isArrayBuffer(t)||B.isBuffer(t)||B.isStream(t)||B.isFile(t)||B.isBlob(t)||B.isReadableStream(t))return t;if(B.isArrayBufferView(t))return t.buffer;if(B.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return J4(t,this.formSerializer).toString();if((s=B.isFileList(t))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return $p(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||a?(r.setContentType("application/json",!1),tF(t)):t}],transformResponse:[function(t){const r=this.transitional||tf.transitional,n=r&&r.forcedJSONParsing,a=this.responseType==="json";if(B.isResponse(t)||B.isReadableStream(t))return t;if(t&&B.isString(t)&&(n&&!this.responseType||a)){const o=!(r&&r.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(s){if(o)throw s.name==="SyntaxError"?de.from(s,de.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:qt.classes.FormData,Blob:qt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};B.forEach(["delete","get","head","post","put","patch"],e=>{tf.headers[e]={}});const rF=B.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),nF=e=>{const t={};let r,n,a;return e&&e.split(` +`).forEach(function(o){a=o.indexOf(":"),r=o.substring(0,a).trim().toLowerCase(),n=o.substring(a+1).trim(),!(!r||t[r]&&rF[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},wS=Symbol("internals");function Vl(e){return e&&String(e).trim().toLowerCase()}function wd(e){return e===!1||e==null?e:B.isArray(e)?e.map(wd):String(e)}function aF(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const iF=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function mg(e,t,r,n,a){if(B.isFunction(n))return n.call(this,t,r);if(a&&(t=r),!!B.isString(t)){if(B.isString(n))return t.indexOf(n)!==-1;if(B.isRegExp(n))return n.test(t)}}function oF(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function sF(e,t){const r=B.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(a,i,o){return this[n].call(this,t,a,i,o)},configurable:!0})})}let vr=class{constructor(t){t&&this.set(t)}set(t,r,n){const a=this;function i(s,l,u){const f=Vl(l);if(!f)throw new Error("header name must be a non-empty string");const d=B.findKey(a,f);(!d||a[d]===void 0||u===!0||u===void 0&&a[d]!==!1)&&(a[d||l]=wd(s))}const o=(s,l)=>B.forEach(s,(u,f)=>i(u,f,l));if(B.isPlainObject(t)||t instanceof this.constructor)o(t,r);else if(B.isString(t)&&(t=t.trim())&&!iF(t))o(nF(t),r);else if(B.isObject(t)&&B.isIterable(t)){let s={},l,u;for(const f of t){if(!B.isArray(f))throw TypeError("Object iterator must return a key-value pair");s[u=f[0]]=(l=s[u])?B.isArray(l)?[...l,f[1]]:[l,f[1]]:f[1]}o(s,r)}else t!=null&&i(r,t,n);return this}get(t,r){if(t=Vl(t),t){const n=B.findKey(this,t);if(n){const a=this[n];if(!r)return a;if(r===!0)return aF(a);if(B.isFunction(r))return r.call(this,a,n);if(B.isRegExp(r))return r.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=Vl(t),t){const n=B.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||mg(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let a=!1;function i(o){if(o=Vl(o),o){const s=B.findKey(n,o);s&&(!r||mg(n,n[s],s,r))&&(delete n[s],a=!0)}}return B.isArray(t)?t.forEach(i):i(t),a}clear(t){const r=Object.keys(this);let n=r.length,a=!1;for(;n--;){const i=r[n];(!t||mg(this,this[i],i,t,!0))&&(delete this[i],a=!0)}return a}normalize(t){const r=this,n={};return B.forEach(this,(a,i)=>{const o=B.findKey(n,i);if(o){r[o]=wd(a),delete r[i];return}const s=t?oF(i):String(i).trim();s!==i&&delete r[i],r[s]=wd(a),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return B.forEach(this,(n,a)=>{n!=null&&n!==!1&&(r[a]=t&&B.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(a=>n.set(a)),n}static accessor(t){const n=(this[wS]=this[wS]={accessors:{}}).accessors,a=this.prototype;function i(o){const s=Vl(o);n[s]||(sF(a,o),n[s]=!0)}return B.isArray(t)?t.forEach(i):i(t),this}};vr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);B.reduceDescriptors(vr.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});B.freezeMethods(vr);function gg(e,t){const r=this||tf,n=t||r,a=vr.from(n.headers);let i=n.data;return B.forEach(e,function(s){i=s.call(r,i,a.normalize(),t?t.status:void 0)}),a.normalize(),i}function z_(e){return!!(e&&e.__CANCEL__)}function bl(e,t,r){de.call(this,e??"canceled",de.ERR_CANCELED,t,r),this.name="CanceledError"}B.inherits(bl,de,{__CANCEL__:!0});function B_(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new de("Request failed with status code "+r.status,[de.ERR_BAD_REQUEST,de.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function lF(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function uF(e,t){e=e||10;const r=new Array(e),n=new Array(e);let a=0,i=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),f=n[i];o||(o=u),r[a]=l,n[a]=u;let d=i,h=0;for(;d!==a;)h+=r[d++],d=d%e;if(a=(a+1)%e,a===i&&(i=(i+1)%e),u-o{r=f,a=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const f=Date.now(),d=f-r;d>=n?o(u,f):(a=u,i||(i=setTimeout(()=>{i=null,o(a)},n-d)))},()=>a&&o(a)]}const rh=(e,t,r=3)=>{let n=0;const a=uF(50,250);return cF(i=>{const o=i.loaded,s=i.lengthComputable?i.total:void 0,l=o-n,u=a(l),f=o<=s;n=o;const d={loaded:o,total:s,progress:s?o/s:void 0,bytes:l,rate:u||void 0,estimated:u&&s&&f?(s-o)/u:void 0,event:i,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},r)},SS=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},jS=e=>(...t)=>B.asap(()=>e(...t)),fF=qt.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,qt.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(qt.origin),qt.navigator&&/(msie|trident)/i.test(qt.navigator.userAgent)):()=>!0,dF=qt.hasStandardBrowserEnv?{write(e,t,r,n,a,i){const o=[e+"="+encodeURIComponent(t)];B.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),B.isString(n)&&o.push("path="+n),B.isString(a)&&o.push("domain="+a),i===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function hF(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function pF(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function U_(e,t,r){let n=!hF(t);return e&&(n||r==!1)?pF(e,t):t}const OS=e=>e instanceof vr?{...e}:e;function vo(e,t){t=t||{};const r={};function n(u,f,d,h){return B.isPlainObject(u)&&B.isPlainObject(f)?B.merge.call({caseless:h},u,f):B.isPlainObject(f)?B.merge({},f):B.isArray(f)?f.slice():f}function a(u,f,d,h){if(B.isUndefined(f)){if(!B.isUndefined(u))return n(void 0,u,d,h)}else return n(u,f,d,h)}function i(u,f){if(!B.isUndefined(f))return n(void 0,f)}function o(u,f){if(B.isUndefined(f)){if(!B.isUndefined(u))return n(void 0,u)}else return n(void 0,f)}function s(u,f,d){if(d in t)return n(u,f);if(d in e)return n(void 0,u)}const l={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(u,f,d)=>a(OS(u),OS(f),d,!0)};return B.forEach(Object.keys({...e,...t}),function(f){const d=l[f]||a,h=d(e[f],t[f],f);B.isUndefined(h)&&d!==s||(r[f]=h)}),r}const W_=e=>{const t=vo({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:a,xsrfCookieName:i,headers:o,auth:s}=t;if(t.headers=o=vr.from(o),t.url=R_(U_(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&o.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):""))),B.isFormData(r)){if(qt.hasStandardBrowserEnv||qt.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(B.isFunction(r.getHeaders)){const l=r.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([f,d])=>{u.includes(f.toLowerCase())&&o.set(f,d)})}}if(qt.hasStandardBrowserEnv&&(n&&B.isFunction(n)&&(n=n(t)),n||n!==!1&&fF(t.url))){const l=a&&i&&dF.read(i);l&&o.set(a,l)}return t},mF=typeof XMLHttpRequest<"u",gF=mF&&function(e){return new Promise(function(r,n){const a=W_(e);let i=a.data;const o=vr.from(a.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:u}=a,f,d,h,p,g;function m(){p&&p(),g&&g(),a.cancelToken&&a.cancelToken.unsubscribe(f),a.signal&&a.signal.removeEventListener("abort",f)}let y=new XMLHttpRequest;y.open(a.method.toUpperCase(),a.url,!0),y.timeout=a.timeout;function x(){if(!y)return;const b=vr.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),w={data:!s||s==="text"||s==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:b,config:e,request:y};B_(function(j){r(j),m()},function(j){n(j),m()},w),y=null}"onloadend"in y?y.onloadend=x:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(x)},y.onabort=function(){y&&(n(new de("Request aborted",de.ECONNABORTED,e,y)),y=null)},y.onerror=function(S){const w=S&&S.message?S.message:"Network Error",O=new de(w,de.ERR_NETWORK,e,y);O.event=S||null,n(O),y=null},y.ontimeout=function(){let S=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const w=a.transitional||L_;a.timeoutErrorMessage&&(S=a.timeoutErrorMessage),n(new de(S,w.clarifyTimeoutError?de.ETIMEDOUT:de.ECONNABORTED,e,y)),y=null},i===void 0&&o.setContentType(null),"setRequestHeader"in y&&B.forEach(o.toJSON(),function(S,w){y.setRequestHeader(w,S)}),B.isUndefined(a.withCredentials)||(y.withCredentials=!!a.withCredentials),s&&s!=="json"&&(y.responseType=a.responseType),u&&([h,g]=rh(u,!0),y.addEventListener("progress",h)),l&&y.upload&&([d,p]=rh(l),y.upload.addEventListener("progress",d),y.upload.addEventListener("loadend",p)),(a.cancelToken||a.signal)&&(f=b=>{y&&(n(!b||b.type?new bl(null,e,y):b),y.abort(),y=null)},a.cancelToken&&a.cancelToken.subscribe(f),a.signal&&(a.signal.aborted?f():a.signal.addEventListener("abort",f)));const v=lF(a.url);if(v&&qt.protocols.indexOf(v)===-1){n(new de("Unsupported protocol "+v+":",de.ERR_BAD_REQUEST,e));return}y.send(i||null)})},vF=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,a;const i=function(u){if(!a){a=!0,s();const f=u instanceof Error?u:this.reason;n.abort(f instanceof de?f:new bl(f instanceof Error?f.message:f))}};let o=t&&setTimeout(()=>{o=null,i(new de(`timeout ${t} of ms exceeded`,de.ETIMEDOUT))},t);const s=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i));const{signal:l}=n;return l.unsubscribe=()=>B.asap(s),l}},yF=function*(e,t){let r=e.byteLength;if(r{const a=xF(e,t);let i=0,o,s=l=>{o||(o=!0,n&&n(l))};return new ReadableStream({async pull(l){try{const{done:u,value:f}=await a.next();if(u){s(),l.close();return}let d=f.byteLength;if(r){let h=i+=d;r(h)}l.enqueue(new Uint8Array(f))}catch(u){throw s(u),u}},cancel(l){return s(l),a.return()}},{highWaterMark:2})},PS=64*1024,{isFunction:zf}=B,wF=(({Request:e,Response:t})=>({Request:e,Response:t}))(B.global),{ReadableStream:AS,TextEncoder:kS}=B.global,ES=(e,...t)=>{try{return!!e(...t)}catch{return!1}},SF=e=>{e=B.merge.call({skipUndefined:!0},wF,e);const{fetch:t,Request:r,Response:n}=e,a=t?zf(t):typeof fetch=="function",i=zf(r),o=zf(n);if(!a)return!1;const s=a&&zf(AS),l=a&&(typeof kS=="function"?(g=>m=>g.encode(m))(new kS):async g=>new Uint8Array(await new r(g).arrayBuffer())),u=i&&s&&ES(()=>{let g=!1;const m=new r(qt.origin,{body:new AS,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!m}),f=o&&s&&ES(()=>B.isReadableStream(new n("").body)),d={stream:f&&(g=>g.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!d[g]&&(d[g]=(m,y)=>{let x=m&&m[g];if(x)return x.call(m);throw new de(`Response type '${g}' is not supported`,de.ERR_NOT_SUPPORT,y)})});const h=async g=>{if(g==null)return 0;if(B.isBlob(g))return g.size;if(B.isSpecCompliantForm(g))return(await new r(qt.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(B.isArrayBufferView(g)||B.isArrayBuffer(g))return g.byteLength;if(B.isURLSearchParams(g)&&(g=g+""),B.isString(g))return(await l(g)).byteLength},p=async(g,m)=>{const y=B.toFiniteNumber(g.getContentLength());return y??h(m)};return async g=>{let{url:m,method:y,data:x,signal:v,cancelToken:b,timeout:S,onDownloadProgress:w,onUploadProgress:O,responseType:j,headers:P,withCredentials:A="same-origin",fetchOptions:_}=W_(g),E=t||fetch;j=j?(j+"").toLowerCase():"text";let k=vF([v,b&&b.toAbortSignal()],S),R=null;const z=k&&k.unsubscribe&&(()=>{k.unsubscribe()});let M;try{if(O&&u&&y!=="get"&&y!=="head"&&(M=await p(P,x))!==0){let H=new r(m,{method:"POST",body:x,duplex:"half"}),q;if(B.isFormData(x)&&(q=H.headers.get("content-type"))&&P.setContentType(q),H.body){const[L,Y]=SS(M,rh(jS(O)));x=NS(H.body,PS,L,Y)}}B.isString(A)||(A=A?"include":"omit");const C=i&&"credentials"in r.prototype,D={..._,signal:k,method:y.toUpperCase(),headers:P.normalize().toJSON(),body:x,duplex:"half",credentials:C?A:void 0};R=i&&new r(m,D);let T=await(i?E(R,_):E(m,D));const F=f&&(j==="stream"||j==="response");if(f&&(w||F&&z)){const H={};["status","statusText","headers"].forEach(ve=>{H[ve]=T[ve]});const q=B.toFiniteNumber(T.headers.get("content-length")),[L,Y]=w&&SS(q,rh(jS(w),!0))||[];T=new n(NS(T.body,PS,L,()=>{Y&&Y(),z&&z()}),H)}j=j||"text";let W=await d[B.findKey(d,j)||"text"](T,g);return!F&&z&&z(),await new Promise((H,q)=>{B_(H,q,{data:W,headers:vr.from(T.headers),status:T.status,statusText:T.statusText,config:g,request:R})})}catch(C){throw z&&z(),C&&C.name==="TypeError"&&/Load failed|fetch/i.test(C.message)?Object.assign(new de("Network Error",de.ERR_NETWORK,g,R),{cause:C.cause||C}):de.from(C,C&&C.code,g,R)}}},jF=new Map,K_=e=>{let t=e?e.env:{};const{fetch:r,Request:n,Response:a}=t,i=[n,a,r];let o=i.length,s=o,l,u,f=jF;for(;s--;)l=i[s],u=f.get(l),u===void 0&&f.set(l,u=s?new Map:SF(t)),f=u;return u};K_();const Ny={http:z4,xhr:gF,fetch:{get:K_}};B.forEach(Ny,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const _S=e=>`- ${e}`,OF=e=>B.isFunction(e)||e===null||e===!1,q_={getAdapter:(e,t)=>{e=B.isArray(e)?e:[e];const{length:r}=e;let n,a;const i={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let s=r?o.length>1?`since : +`+o.map(_S).join(` +`):" "+_S(o[0]):"as no adapter specified";throw new de("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return a},adapters:Ny};function vg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new bl(null,e)}function TS(e){return vg(e),e.headers=vr.from(e.headers),e.data=gg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),q_.getAdapter(e.adapter||tf.adapter,e)(e).then(function(n){return vg(e),n.data=gg.call(e,e.transformResponse,n),n.headers=vr.from(n.headers),n},function(n){return z_(n)||(vg(e),n&&n.response&&(n.response.data=gg.call(e,e.transformResponse,n.response),n.response.headers=vr.from(n.response.headers))),Promise.reject(n)})}const H_="1.12.2",Mp={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Mp[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const CS={};Mp.transitional=function(t,r,n){function a(i,o){return"[Axios v"+H_+"] Transitional option '"+i+"'"+o+(n?". "+n:"")}return(i,o,s)=>{if(t===!1)throw new de(a(o," has been removed"+(r?" in "+r:"")),de.ERR_DEPRECATED);return r&&!CS[o]&&(CS[o]=!0,console.warn(a(o," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,o,s):!0}};Mp.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function NF(e,t,r){if(typeof e!="object")throw new de("options must be an object",de.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let a=n.length;for(;a-- >0;){const i=n[a],o=t[i];if(o){const s=e[i],l=s===void 0||o(s,i,e);if(l!==!0)throw new de("option "+i+" must be "+l,de.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new de("Unknown option "+i,de.ERR_BAD_OPTION)}}const Sd={assertOptions:NF,validators:Mp},jn=Sd.validators;let io=class{constructor(t){this.defaults=t||{},this.interceptors={request:new bS,response:new bS}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const i=a.stack?a.stack.replace(/^.+\n/,""):"";try{n.stack?i&&!String(n.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(n.stack+=` +`+i):n.stack=i}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=vo(this.defaults,r);const{transitional:n,paramsSerializer:a,headers:i}=r;n!==void 0&&Sd.assertOptions(n,{silentJSONParsing:jn.transitional(jn.boolean),forcedJSONParsing:jn.transitional(jn.boolean),clarifyTimeoutError:jn.transitional(jn.boolean)},!1),a!=null&&(B.isFunction(a)?r.paramsSerializer={serialize:a}:Sd.assertOptions(a,{encode:jn.function,serialize:jn.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),Sd.assertOptions(r,{baseUrl:jn.spelling("baseURL"),withXsrfToken:jn.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let o=i&&B.merge(i.common,i[r.method]);i&&B.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),r.headers=vr.concat(o,i);const s=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(r)===!1||(l=l&&m.synchronous,s.unshift(m.fulfilled,m.rejected))});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let f,d=0,h;if(!l){const g=[TS.bind(this),void 0];for(g.unshift(...s),g.push(...u),h=g.length,f=Promise.resolve(r);d{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](a);n._listeners=null}),this.promise.then=a=>{let i;const o=new Promise(s=>{n.subscribe(s),i=s}).then(a);return o.cancel=function(){n.unsubscribe(i)},o},t(function(i,o,s){n.reason||(n.reason=new bl(i,o,s),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new V_(function(a){t=a}),cancel:t}}};function AF(e){return function(r){return e.apply(null,r)}}function kF(e){return B.isObject(e)&&e.isAxiosError===!0}const Py={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Py).forEach(([e,t])=>{Py[t]=e});function G_(e){const t=new io(e),r=N_(io.prototype.request,t);return B.extend(r,io.prototype,t,{allOwnKeys:!0}),B.extend(r,t,null,{allOwnKeys:!0}),r.create=function(a){return G_(vo(e,a))},r}const tt=G_(tf);tt.Axios=io;tt.CanceledError=bl;tt.CancelToken=PF;tt.isCancel=z_;tt.VERSION=H_;tt.toFormData=$p;tt.AxiosError=de;tt.Cancel=tt.CanceledError;tt.all=function(t){return Promise.all(t)};tt.spread=AF;tt.isAxiosError=kF;tt.mergeConfig=vo;tt.AxiosHeaders=vr;tt.formToJSON=e=>F_(B.isHTMLForm(e)?new FormData(e):e);tt.getAdapter=q_.getAdapter;tt.HttpStatusCode=Py;tt.default=tt;const{Axios:rme,AxiosError:nme,CanceledError:ame,isCancel:ime,CancelToken:ome,VERSION:sme,all:lme,Cancel:ume,isAxiosError:cme,spread:fme,toFormData:dme,AxiosHeaders:hme,HttpStatusCode:pme,formToJSON:mme,getAdapter:gme,mergeConfig:vme}=tt,EF=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""},_F=EF(),TF=`${_F}/graphql`;tt.interceptors.response.use(e=>e,e=>{var t,r;return(((t=e.response)==null?void 0:t.status)===401||((r=e.response)==null?void 0:r.status)===403)&&(localStorage.removeItem("alphatrion_token"),localStorage.removeItem("alphatrion_org_id"),localStorage.removeItem("alphatrion_user_id"),window.location.href="/login"),Promise.reject(e)});function CF(){const e={"Content-Type":"application/json"},t=localStorage.getItem("alphatrion_token");if(t)return e.Authorization=`Bearer ${t}`,e;const r=localStorage.getItem("alphatrion_org_id"),n=localStorage.getItem("alphatrion_user_id");return r&&(e["x-org-id"]=r),n&&(e["x-user-id"]=n),e}async function rt(e,t){try{const r=await tt.post(TF,{query:e,variables:t},{headers:CF()});if(r.data.errors)throw new Error(r.data.errors.map(n=>n.message).join(", "));if(!r.data.data)throw new Error("No data returned from GraphQL query");return r.data.data}catch(r){throw tt.isAxiosError(r)?new Error(`GraphQL request failed: ${r.message}`):r}}async function Y_(e,t){return rt(e,t)}const Ft={listTeams:` + query ListTeams { + teams { + id + orgId + name + description + meta + createdAt + updatedAt + } + } + `,getUser:` + query GetUser($id: ID!) { + user(id: $id) { + id + orgId + name + email + avatarUrl + meta + createdAt + updatedAt + } + } + `,getTeam:` + query GetTeam($id: ID!) { + team(id: $id) { + id + orgId + name + description + meta + createdAt + updatedAt + totalExperiments + totalRuns + totalDatasets + totalAgents + totalSessions + aggregatedUsage { + totalTokens + inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost + } + } + } + `,getOrganization:` + query GetOrganization($id: ID!) { + organization(id: $id) { + id + name + description + meta + createdAt + updatedAt + } + } + `,getTeamWithExperiments:` + query GetTeamWithExperiments($id: ID!, $startTime: DateTime!, $endTime: DateTime!) { + team(id: $id) { + id + name + expsByTimeframe(startTime: $startTime, endTime: $endTime) { + id + teamId + userId + name + status + createdAt + } + } + } + `,getTeamWithLabelKeys:` + query GetTeamWithLabelKeys($id: ID!) { + team(id: $id) { + id + labelKeys + } + } + `,listExperiments:` + query ListExperiments($teamId: ID!, $labelName: String, $labelValue: String, $tag: String, $page: Int, $pageSize: Int) { + experiments(teamId: $teamId, labelName: $labelName, labelValue: $labelValue, tag: $tag, page: $page, pageSize: $pageSize) { + id + teamId + userId + name + description + kind + meta + params + labels { + name + value + } + tags + duration + status + createdAt + updatedAt + } + } + `,getExperiment:` + query GetExperiment($id: ID!) { + experiment(id: $id) { + id + teamId + userId + name + description + kind + meta + params + labels { + name + value + } + tags + duration + status + createdAt + updatedAt + aggregatedUsage { + totalTokens + inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost + } + traceStats { + totalSpans + successSpans + errorSpans + } + metrics { + id + key + value + teamId + experimentId + runId + createdAt + } + } + } + `,listRuns:` + query ListRuns($experimentId: ID!, $page: Int, $pageSize: Int) { + runs(experimentId: $experimentId, page: $page, pageSize: $pageSize) { + id + teamId + userId + experimentId + meta + duration + status + createdAt + } + } + `,getRun:` + query GetRun($id: ID!) { + run(id: $id) { + id + teamId + userId + experimentId + meta + duration + status + createdAt + aggregatedUsage { + totalTokens + inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens + totalCost + } + metrics { + id + key + value + teamId + experimentId + runId + createdAt + } + spans { + timestamp + traceId + spanId + parentSpanId + spanName + spanKind + semanticKind + serviceName + duration + statusCode + statusMessage + teamId + runId + experimentId + spanAttributes + resourceAttributes + events { + timestamp + name + attributes + } + links { + traceId + spanId + attributes + } + } + } + } + `,listArtifactRepositories:` + query ListArtifactRepositories { + artifactRepos { + name + } + } + `,listArtifactTags:` + query ListArtifactTags($team_id: ID!, $repo_name: String!) { + artifactTags(teamId: $team_id, repoName: $repo_name) { + name + } + } + `,listArtifactFiles:` + query ListArtifactFiles($team_id: ID!, $tag: String!, $repo_name: String!) { + artifactFiles(teamId: $team_id, tag: $tag, repoName: $repo_name) { + filename + size + contentType + } + } + `,getArtifactContent:` + query GetArtifactContent($team_id: ID!, $tag: String!, $repo_name: String!, $filename: String) { + artifactContent(teamId: $team_id, tag: $tag, repoName: $repo_name, filename: $filename) { + filename + content + contentType + } + } + `,listTraces:` + query ListSpans($runId: ID!) { + spansByRunId(runId: $runId) { + timestamp + traceId + spanId + parentSpanId + spanName + spanKind + semanticKind + serviceName + duration + statusCode + statusMessage + teamId + runId + experimentId + spanAttributes + resourceAttributes + events { + timestamp + name + attributes + } + links { + traceId + spanId + attributes + } + } + } + `,getDailyTokenUsage:` + query GetDailyTokenUsage($teamId: ID!, $days: Int = 30) { + dailyTokenUsage(teamId: $teamId, days: $days) { + date + totalTokens + inputTokens + outputTokens + } + } + `,getDailyCostUsage:` + query GetDailyCostUsage($teamId: ID!, $days: Int = 30) { + dailyCostUsage(teamId: $teamId, days: $days) { + date + totalCost + totalTokens + inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens + } + } + `,listDatasets:` + query ListDatasets($teamId: ID!, $page: Int, $pageSize: Int) { + datasets(teamId: $teamId, page: $page, pageSize: $pageSize) { + id + name + description + path + meta + teamId + experimentId + runId + userId + createdAt + updatedAt + } + } + `,getDataset:` + query GetDataset($id: ID!) { + dataset(id: $id) { + id + name + description + path + meta + teamId + experimentId + runId + userId + createdAt + updatedAt + } + } + `,listDatasetsByExperiment:` + query ListDatasetsByExperiment($teamId: ID!, $experimentId: ID!, $page: Int, $pageSize: Int) { + datasetsByExperiment(teamId: $teamId, experimentId: $experimentId, page: $page, pageSize: $pageSize) { + id + name + description + path + meta + teamId + experimentId + runId + userId + createdAt + updatedAt + } + } + `,listAgents:` + query ListAgents($teamId: ID!, $page: Int, $pageSize: Int) { + agents(teamId: $teamId, page: $page, pageSize: $pageSize) { + id + teamId + userId + name + type + description + meta + createdAt + updatedAt + } + } + `,getAgent:` + query GetAgent($id: ID!) { + agent(id: $id) { + id + teamId + userId + name + type + description + meta + createdAt + updatedAt + } + } + `,listAllSessions:` + query ListAllSessions($teamId: ID!, $page: Int, $pageSize: Int) { + team(id: $teamId) { + id + agents(page: 0, pageSize: 1000) { + id + sessions(page: $page, pageSize: $pageSize) { + id + agentId + teamId + userId + meta + createdAt + updatedAt + } + } + } + } + `,listAllAgentRuns:` + query ListAllAgentRuns($teamId: ID!, $page: Int, $pageSize: Int) { + team(id: $teamId) { + id + agents(page: 0, pageSize: 1000) { + id + sessions(page: 0, pageSize: 1000) { + id + runs(page: $page, pageSize: $pageSize) { + id + teamId + userId + sessionId + status + duration + createdAt + } + } + } + } + } + `,getSession:` + query GetSession($sessionId: ID!) { + session(sessionId: $sessionId) { + id + agentId + teamId + userId + meta + createdAt + updatedAt + } + } + `},X_={deleteExperiments:` + mutation DeleteExperiments($experimentIds: [ID!]!) { + deleteExperiments(experimentIds: $experimentIds) + } + `,deleteDatasets:` + mutation DeleteDatasets($datasetIds: [ID!]!) { + deleteDatasets(datasetIds: $datasetIds) + } + `};function $F(e=0,t=100){const r=s_();return Nt({queryKey:["teams",r.id,e,t],queryFn:async()=>(await rt(Ft.listTeams)).teams,staleTime:10*60*1e3})}function rf(e){return Nt({queryKey:["team",e],queryFn:async()=>(await rt(Ft.getTeam,{id:e})).team,enabled:!!e,staleTime:10*60*1e3})}function MF(e){return Nt({queryKey:["organization",e],queryFn:async()=>e?(await rt(Ft.getOrganization,{id:e})).organization:null,enabled:!!e,staleTime:10*60*1e3})}const IF=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""};function DF(){const[e,t]=N.useState(!1),[r,n]=N.useState(!1),[a,i]=N.useState({currentPassword:"",newPassword:"",confirmPassword:""}),[o,s]=N.useState(""),[l,u]=N.useState(!1),[f,d]=N.useState(!1),h=N.useRef(null),p=s_(),g=Fn(),{data:m}=$F(),{selectedTeamId:y,setSelectedTeamId:x}=wa(),v=m==null?void 0:m.find(j=>j.id===y),{data:b}=MF(v==null?void 0:v.orgId);N.useEffect(()=>{function j(P){h.current&&!h.current.contains(P.target)&&t(!1)}return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const S=()=>{localStorage.removeItem("alphatrion_token"),localStorage.removeItem("alphatrion_user"),localStorage.removeItem("alphatrion_user_id"),localStorage.removeItem("alphatrion_org_id"),localStorage.removeItem("alphatrion_team_id"),g("/login")},w=async j=>{if(j.preventDefault(),s(""),u(!1),a.newPassword.length<6){s("New password must be at least 6 characters");return}if(a.newPassword!==a.confirmPassword){s("New passwords do not match");return}d(!0);try{const P=await fetch(`${IF()}/api/auth/change-password`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("alphatrion_token")}`},body:JSON.stringify({current_password:a.currentPassword,new_password:a.newPassword})});if(!P.ok){const A=await P.json();throw new Error(A.detail||"Failed to change password")}u(!0),i({currentPassword:"",newPassword:"",confirmPassword:""}),setTimeout(()=>{n(!1),u(!1)},2e3)}catch(P){s(P instanceof Error?P.message:"Failed to change password")}finally{d(!1)}},O=j=>j.split(" ").map(P=>P[0]).join("").toUpperCase().slice(0,2);return c.jsxs("div",{className:"relative",ref:h,children:[c.jsxs("button",{onClick:()=>t(!e),className:"flex items-center gap-1 p-1 rounded-md hover:bg-muted transition-colors",title:p.name,children:[p.avatarUrl?c.jsx("img",{src:p.avatarUrl,alt:p.name,className:"w-8 h-8 rounded-full"}):c.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 text-white flex items-center justify-center text-sm font-medium",children:O(p.name)}),c.jsx(Ju,{className:`h-3 w-3 text-muted-foreground transition-transform ${e?"rotate-180":""}`})]}),e&&c.jsxs("div",{className:"absolute right-0 mt-2 w-64 bg-white rounded-lg shadow-lg border border-gray-200 z-50 overflow-hidden",children:[c.jsx("div",{className:"px-3 py-2 bg-gray-50",children:c.jsxs("div",{className:"flex items-center gap-2",children:[p.avatarUrl?c.jsx("img",{src:p.avatarUrl,alt:p.name,className:"w-8 h-8 rounded-full flex-shrink-0"}):c.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 text-white flex items-center justify-center text-[11px] font-medium flex-shrink-0",children:O(p.name)}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-xs font-semibold text-gray-900 truncate",children:p.name}),c.jsx("p",{className:"text-[11px] text-gray-500 truncate",children:p.email})]})]})}),b&&c.jsxs("div",{className:"px-3 py-2 border-b border-gray-200",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-gray-600 mb-1.5",children:[c.jsx(s3,{className:"h-3.5 w-3.5 flex-shrink-0"}),c.jsx("p",{className:"text-[10px] text-gray-500 uppercase tracking-wide font-medium",children:"Organization"})]}),c.jsx("div",{className:"flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-xs bg-gray-50 text-gray-900 font-medium",children:c.jsx("span",{className:"truncate",children:b.name})})]}),m&&m.length>0&&c.jsxs("div",{className:"px-3 py-2 border-b border-gray-200",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-gray-600 mb-1.5",children:[c.jsx(o5,{className:"h-3.5 w-3.5 flex-shrink-0"}),c.jsx("p",{className:"text-[10px] text-gray-500 uppercase tracking-wide font-medium",children:"Team"})]}),c.jsx("div",{className:"space-y-0.5 max-h-40 overflow-y-auto",children:m.map(j=>{const P=j.id===y;return c.jsxs("button",{onClick:()=>{x(j.id,p.id),localStorage.setItem("alphatrion_org_id",j.orgId),localStorage.setItem("alphatrion_team_id",j.id),t(!1),g("/")},className:he("flex w-full items-center justify-between gap-2 px-2 py-1.5 rounded-md text-xs transition-all",P?"bg-blue-50 text-blue-900 font-medium shadow-sm":"hover:bg-gray-50 text-gray-700"),children:[c.jsx("span",{className:"truncate",children:j.name||"Unnamed Team"}),P&&c.jsx(u_,{className:"h-3.5 w-3.5 flex-shrink-0 text-blue-600"})]},j.id)})})]}),c.jsxs("div",{className:"p-1.5 space-y-0.5",children:[c.jsxs("button",{onClick:()=>{n(!0),t(!1)},className:"w-full flex items-center gap-2 px-2 py-1.5 text-xs text-gray-700 hover:bg-gray-50 rounded-md transition-colors font-medium",children:[c.jsx(W3,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Change Password"})]}),c.jsxs("button",{onClick:S,className:"w-full flex items-center gap-2 px-2 py-1.5 text-xs text-red-600 hover:bg-red-50 rounded-md transition-colors font-medium",children:[c.jsx(V3,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Logout"})]})]})]}),r&&c.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:c.jsxs("div",{className:"bg-white rounded-lg shadow-xl p-4 w-80 max-w-md",children:[c.jsx("h2",{className:"text-base font-semibold text-gray-900 mb-3",children:"Change Password"}),c.jsxs("form",{onSubmit:w,className:"space-y-3",children:[c.jsxs("div",{children:[c.jsx("label",{htmlFor:"currentPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"Current Password"}),c.jsx("input",{id:"currentPassword",type:"password",required:!0,value:a.currentPassword,onChange:j=>i({...a,currentPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"newPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"New Password"}),c.jsx("input",{id:"newPassword",type:"password",required:!0,value:a.newPassword,onChange:j=>i({...a,newPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"confirmPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"Confirm New Password"}),c.jsx("input",{id:"confirmPassword",type:"password",required:!0,value:a.confirmPassword,onChange:j=>i({...a,confirmPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),o&&c.jsx("div",{className:"text-xs text-red-600 bg-red-50 px-2.5 py-1.5 rounded-md",children:o}),l&&c.jsx("div",{className:"text-xs text-green-600 bg-green-50 px-2.5 py-1.5 rounded-md",children:"Password changed successfully!"}),c.jsxs("div",{className:"flex gap-2 pt-1",children:[c.jsx("button",{type:"button",onClick:()=>{n(!1),i({currentPassword:"",newPassword:"",confirmPassword:""}),s(""),u(!1)},className:"flex-1 px-3 py-1.5 text-xs font-medium text-gray-700 bg-gray-100 rounded-md hover:bg-gray-200 transition-colors",children:"Cancel"}),c.jsx("button",{type:"submit",disabled:f,className:"flex-1 px-3 py-1.5 text-xs font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:f?"Changing...":"Change Password"})]})]})]})})]})}function Q_(e,t){const{page:r=0,pageSize:n=100,labelName:a,labelValue:i,enabled:o=!0}=t||{};return Nt({queryKey:["experiments",e,a,i,r,n],queryFn:async()=>(await rt(Ft.listExperiments,{teamId:e,labelName:a,labelValue:i,page:r,pageSize:n})).experiments,enabled:o&&!!e,refetchInterval:s=>{const l=s.state.data;if(!l)return!1;const u=l.map(f=>f.status);return db(u)}})}function Ip(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["experiment",e],queryFn:async()=>(await rt(Ft.getExperiment,{id:e})).experiment,enabled:r&&!!e,refetchInterval:n=>{const a=n.state.data;return a?db([a.status]):!1}})}function RF(e){return Nt({queryKey:["experiments","by-ids",e],queryFn:async()=>(await Promise.all(e.map(async r=>(await rt(Ft.getExperiment,{id:r})).experiment))).filter(r=>r!==null),enabled:e.length>0,refetchInterval:t=>{const r=t.state.data;if(!r)return!1;const n=r.map(a=>a.status);return db(n)}})}function Ay(e,t){const{page:r=0,pageSize:n=100,enabled:a=!0}=t||{};return Nt({queryKey:["runs",e,r,n],queryFn:async()=>(await rt(Ft.listRuns,{experimentId:e,page:r,pageSize:n})).runs,enabled:a&&!!e,refetchInterval:i=>{const o=i.state.data;if(!o)return!1;const s=o.map(l=>l.status);return a_(s)}})}function J_(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["run",e],queryFn:async()=>(await rt(Ft.getRun,{id:e})).run,enabled:r&&!!e,refetchInterval:n=>{const a=n.state.data;return a?a_([a.status]):!1}})}function LF(e,t){const{page:r=0,pageSize:n=20,enabled:a=!0}=t||{};return Nt({queryKey:["agents",e,r,n],queryFn:async()=>(await rt(Ft.listAgents,{teamId:e,page:r,pageSize:n})).agents||[],enabled:a&&!!e})}function Z_(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["agent",e],queryFn:async()=>(await rt(Ft.getAgent,{id:e})).agent,enabled:r&&!!e})}function ki(e,t=4,r=4){return!e||e.length<=t+r?e:`${e.slice(0,t)}....${e.slice(-r)}`}function zr(e){if(e===0)return"0s";if(e<1)return`${Math.round(e*1e3)}ms`;const t=Math.floor(e/3600),r=Math.floor(e%3600/60),n=Math.floor(e%60),a=[];return t>0&&a.push(`${t}h`),r>0&&a.push(`${r}m`),(n>0||a.length===0)&&a.push(`${n}s`),a.join(" ")}function FF(){const e=Ao(),{selectedTeamId:t}=wa(),{data:r}=rf(t),n=e.pathname.split("/").filter(Boolean),a=n[0]==="experiments"&&n[1]&&n[1]!=="compare"?n[1]:void 0,i=n[0]==="runs"&&n[1]?n[1]:void 0,o=n[0]==="agents"&&n[1]?n[1]:void 0,s=n[0]==="sessions"&&n[1]?n[1]:void 0,{data:l}=Ip(a||"",{enabled:!!a}),{data:u}=J_(i||"",{enabled:!!i}),{data:f}=Z_(o||"",{enabled:!!o}),{data:d}=Nt({queryKey:["session",s],queryFn:async()=>(await rt(`query GetSession($sessionId: ID!) { + session(sessionId: $sessionId) { + id + agentId + teamId + userId + meta + createdAt + updatedAt + } + }`,{sessionId:s})).session,enabled:!!s}),p=(()=>{const g=e.pathname.split("/").filter(Boolean);if(g.length===0)return[{label:"Home"}];const m=[{label:"Home",href:"/"}];return g[0]==="experiments"?a&&l?(m.push({label:"Experiments",href:"/experiments"}),m.push({label:ki(l.id),href:g.length===2?void 0:`/experiments/${l.id}`})):m.push({label:"Experiments",href:void 0}):g[0]==="runs"?i&&u?(m.push({label:"Experiments",href:"/experiments"}),m.push({label:ki(u.experimentId),href:`/experiments/${u.experimentId}`}),m.push({label:"Runs",href:`/experiments/${u.experimentId}`}),m.push({label:ki(u.id),href:void 0})):m.push({label:"Runs",href:void 0}):g[0]==="agents"?o&&f&&g[1]?(m.push({label:"Agents",href:"/agents"}),m.push({label:ki(f.id),href:void 0})):m.push({label:"Agents",href:void 0}):g[0]==="sessions"?s?(m.push({label:"Agents",href:"/agents"}),d?(m.push({label:ki(d.agentId),href:`/agents/${d.agentId}`}),m.push({label:"Sessions",href:`/agents/${d.agentId}`}),m.push({label:ki(d.id),href:void 0})):(m.push({label:"...",href:void 0}),m.push({label:"Sessions",href:void 0}),m.push({label:ki(s),href:void 0}))):m.push({label:"Sessions",href:void 0}):g.forEach((y,x)=>{const v="/"+g.slice(0,x+1).join("/"),b=x===g.length-1,S=y.charAt(0).toUpperCase()+y.slice(1);m.push({label:S,href:b?void 0:v})}),m})();return c.jsxs("header",{className:"flex h-14 items-center justify-between bg-card px-6",children:[c.jsx("nav",{className:"flex items-center space-x-2 text-sm",children:p.map((g,m)=>{const y=m===p.length-1;return c.jsxs("div",{className:"flex items-center",children:[m>0&&c.jsx(eh,{className:"mx-2 h-4 w-4 text-muted-foreground"}),g.href&&!y?c.jsx(ha,{to:g.href,className:"text-muted-foreground hover:text-foreground transition-colors",children:g.label}):c.jsx("span",{className:"text-foreground font-medium",children:g.label})]},m)})}),c.jsx("div",{className:"flex items-center",children:c.jsx(DF,{})})]})}function zF(){return c.jsxs("div",{className:"flex h-screen overflow-hidden bg-background",children:[c.jsx("div",{className:"shadow-sm",children:c.jsx(e4,{})}),c.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[c.jsx("div",{className:"shadow-sm",children:c.jsx(FF,{})}),c.jsx("main",{className:"flex-1 overflow-y-auto p-6 bg-muted/20",children:c.jsx(IL,{})})]})]})}function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function gn(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Te(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function $e(e){Te(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||nh(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function BF(e,t){Te(2,arguments);var r=$e(e),n=gn(t);return isNaN(n)?new Date(NaN):(n&&r.setDate(r.getDate()+n),r)}function UF(e,t){Te(2,arguments);var r=$e(e),n=gn(t);if(isNaN(n))return new Date(NaN);if(!n)return r;var a=r.getDate(),i=new Date(r.getTime());i.setMonth(r.getMonth()+n+1,0);var o=i.getDate();return a>=o?i:(r.setFullYear(i.getFullYear(),i.getMonth(),a),r)}function WF(e,t){Te(2,arguments);var r=$e(e).getTime(),n=gn(t);return new Date(r+n)}var KF={};function nf(){return KF}function ky(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function Ey(e){Te(1,arguments);var t=$e(e);return t.setHours(0,0,0,0),t}function jd(e,t){Te(2,arguments);var r=$e(e),n=$e(t),a=r.getTime()-n.getTime();return a<0?-1:a>0?1:a}function qF(e){return Te(1,arguments),e instanceof Date||nh(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function HF(e){if(Te(1,arguments),!qF(e)&&typeof e!="number")return!1;var t=$e(e);return!isNaN(Number(t))}function VF(e,t){Te(2,arguments);var r=$e(e),n=$e(t),a=r.getFullYear()-n.getFullYear(),i=r.getMonth()-n.getMonth();return a*12+i}function GF(e,t){return Te(2,arguments),$e(e).getTime()-$e(t).getTime()}var YF={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},XF="trunc";function QF(e){return YF[XF]}function JF(e){Te(1,arguments);var t=$e(e);return t.setHours(23,59,59,999),t}function ZF(e){Te(1,arguments);var t=$e(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function ez(e){Te(1,arguments);var t=$e(e);return JF(t).getTime()===ZF(t).getTime()}function tz(e,t){Te(2,arguments);var r=$e(e),n=$e(t),a=jd(r,n),i=Math.abs(VF(r,n)),o;if(i<1)o=0;else{r.getMonth()===1&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-a*i);var s=jd(r,n)===-a;ez($e(e))&&i===1&&jd(e,n)===1&&(s=!1),o=a*(i-Number(s))}return o===0?0:o}function rz(e,t,r){Te(2,arguments);var n=GF(e,t)/1e3;return QF()(n)}function nz(e,t){Te(2,arguments);var r=gn(t);return WF(e,-r)}var az=864e5;function iz(e){Te(1,arguments);var t=$e(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=t.getTime(),a=r-n;return Math.floor(a/az)+1}function ah(e){Te(1,arguments);var t=1,r=$e(e),n=r.getUTCDay(),a=(n=a.getTime()?r+1:t.getTime()>=o.getTime()?r:r-1}function oz(e){Te(1,arguments);var t=eT(e),r=new Date(0);r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0);var n=ah(r);return n}var sz=6048e5;function lz(e){Te(1,arguments);var t=$e(e),r=ah(t).getTime()-oz(t).getTime();return Math.round(r/sz)+1}function ih(e,t){var r,n,a,i,o,s,l,u;Te(1,arguments);var f=nf(),d=gn((r=(n=(a=(i=t==null?void 0:t.weekStartsOn)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&a!==void 0?a:f.weekStartsOn)!==null&&n!==void 0?n:(l=f.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&r!==void 0?r:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var h=$e(e),p=h.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(d+1,0,p),g.setUTCHours(0,0,0,0);var m=ih(g,t),y=new Date(0);y.setUTCFullYear(d,0,p),y.setUTCHours(0,0,0,0);var x=ih(y,t);return f.getTime()>=m.getTime()?d+1:f.getTime()>=x.getTime()?d:d-1}function uz(e,t){var r,n,a,i,o,s,l,u;Te(1,arguments);var f=nf(),d=gn((r=(n=(a=(i=t==null?void 0:t.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&a!==void 0?a:f.firstWeekContainsDate)!==null&&n!==void 0?n:(l=f.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1),h=tT(e,t),p=new Date(0);p.setUTCFullYear(h,0,d),p.setUTCHours(0,0,0,0);var g=ih(p,t);return g}var cz=6048e5;function fz(e,t){Te(1,arguments);var r=$e(e),n=ih(r,t).getTime()-uz(r,t).getTime();return Math.round(n/cz)+1}function Ce(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length0?n:1-n;return Ce(r==="yy"?a%100:a,r.length)},M:function(t,r){var n=t.getUTCMonth();return r==="M"?String(n+1):Ce(n+1,2)},d:function(t,r){return Ce(t.getUTCDate(),r.length)},a:function(t,r){var n=t.getUTCHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(t,r){return Ce(t.getUTCHours()%12||12,r.length)},H:function(t,r){return Ce(t.getUTCHours(),r.length)},m:function(t,r){return Ce(t.getUTCMinutes(),r.length)},s:function(t,r){return Ce(t.getUTCSeconds(),r.length)},S:function(t,r){var n=r.length,a=t.getUTCMilliseconds(),i=Math.floor(a*Math.pow(10,n-3));return Ce(i,r.length)}},Ro={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},dz={G:function(t,r,n){var a=t.getUTCFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});case"GGGG":default:return n.era(a,{width:"wide"})}},y:function(t,r,n){if(r==="yo"){var a=t.getUTCFullYear(),i=a>0?a:1-a;return n.ordinalNumber(i,{unit:"year"})}return _a.y(t,r)},Y:function(t,r,n,a){var i=tT(t,a),o=i>0?i:1-i;if(r==="YY"){var s=o%100;return Ce(s,2)}return r==="Yo"?n.ordinalNumber(o,{unit:"year"}):Ce(o,r.length)},R:function(t,r){var n=eT(t);return Ce(n,r.length)},u:function(t,r){var n=t.getUTCFullYear();return Ce(n,r.length)},Q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"Q":return String(a);case"QQ":return Ce(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(t,r,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"q":return String(a);case"qq":return Ce(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(t,r,n){var a=t.getUTCMonth();switch(r){case"M":case"MM":return _a.M(t,r);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(t,r,n){var a=t.getUTCMonth();switch(r){case"L":return String(a+1);case"LL":return Ce(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(t,r,n,a){var i=fz(t,a);return r==="wo"?n.ordinalNumber(i,{unit:"week"}):Ce(i,r.length)},I:function(t,r,n){var a=lz(t);return r==="Io"?n.ordinalNumber(a,{unit:"week"}):Ce(a,r.length)},d:function(t,r,n){return r==="do"?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):_a.d(t,r)},D:function(t,r,n){var a=iz(t);return r==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):Ce(a,r.length)},E:function(t,r,n){var a=t.getUTCDay();switch(r){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});case"EEEE":default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"e":return String(o);case"ee":return Ce(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(t,r,n,a){var i=t.getUTCDay(),o=(i-a.weekStartsOn+8)%7||7;switch(r){case"c":return String(o);case"cc":return Ce(o,r.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(t,r,n){var a=t.getUTCDay(),i=a===0?7:a;switch(r){case"i":return String(i);case"ii":return Ce(i,r.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});case"iiii":default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(t,r,n){var a=t.getUTCHours(),i=a/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(t,r,n){var a=t.getUTCHours(),i;switch(a===12?i=Ro.noon:a===0?i=Ro.midnight:i=a/12>=1?"pm":"am",r){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,r,n){var a=t.getUTCHours(),i;switch(a>=17?i=Ro.evening:a>=12?i=Ro.afternoon:a>=4?i=Ro.morning:i=Ro.night,r){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,r,n){if(r==="ho"){var a=t.getUTCHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return _a.h(t,r)},H:function(t,r,n){return r==="Ho"?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):_a.H(t,r)},K:function(t,r,n){var a=t.getUTCHours()%12;return r==="Ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,r.length)},k:function(t,r,n){var a=t.getUTCHours();return a===0&&(a=24),r==="ko"?n.ordinalNumber(a,{unit:"hour"}):Ce(a,r.length)},m:function(t,r,n){return r==="mo"?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):_a.m(t,r)},s:function(t,r,n){return r==="so"?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):_a.s(t,r)},S:function(t,r){return _a.S(t,r)},X:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();if(o===0)return"Z";switch(r){case"X":return MS(o);case"XXXX":case"XX":return Mi(o);case"XXXXX":case"XXX":default:return Mi(o,":")}},x:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"x":return MS(o);case"xxxx":case"xx":return Mi(o);case"xxxxx":case"xxx":default:return Mi(o,":")}},O:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+$S(o,":");case"OOOO":default:return"GMT"+Mi(o,":")}},z:function(t,r,n,a){var i=a._originalDate||t,o=i.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+$S(o,":");case"zzzz":default:return"GMT"+Mi(o,":")}},t:function(t,r,n,a){var i=a._originalDate||t,o=Math.floor(i.getTime()/1e3);return Ce(o,r.length)},T:function(t,r,n,a){var i=a._originalDate||t,o=i.getTime();return Ce(o,r.length)}};function $S(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),i=n%60;if(i===0)return r+String(a);var o=t;return r+String(a)+o+Ce(i,2)}function MS(e,t){if(e%60===0){var r=e>0?"-":"+";return r+Ce(Math.abs(e)/60,2)}return Mi(e,t)}function Mi(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e),i=Ce(Math.floor(a/60),2),o=Ce(a%60,2);return n+i+r+o}var IS=function(t,r){switch(t){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},rT=function(t,r){switch(t){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},hz=function(t,r){var n=t.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return IS(t,r);var o;switch(a){case"P":o=r.dateTime({width:"short"});break;case"PP":o=r.dateTime({width:"medium"});break;case"PPP":o=r.dateTime({width:"long"});break;case"PPPP":default:o=r.dateTime({width:"full"});break}return o.replace("{{date}}",IS(a,r)).replace("{{time}}",rT(i,r))},pz={p:rT,P:hz},mz=["D","DD"],gz=["YY","YYYY"];function vz(e){return mz.indexOf(e)!==-1}function yz(e){return gz.indexOf(e)!==-1}function DS(e,t,r){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var xz={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},bz=function(t,r,n){var a,i=xz[t];return typeof i=="string"?a=i:r===1?a=i.one:a=i.other.replace("{{count}}",r.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function yg(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth,n=e.formats[r]||e.formats[e.defaultWidth];return n}}var wz={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Sz={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},jz={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Oz={date:yg({formats:wz,defaultWidth:"full"}),time:yg({formats:Sz,defaultWidth:"full"}),dateTime:yg({formats:jz,defaultWidth:"full"})},Nz={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Pz=function(t,r,n,a){return Nz[t]};function Gl(e){return function(t,r){var n=r!=null&&r.context?String(r.context):"standalone",a;if(n==="formatting"&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=r!=null&&r.width?String(r.width):i;a=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,l=r!=null&&r.width?String(r.width):e.defaultWidth;a=e.values[l]||e.values[s]}var u=e.argumentCallback?e.argumentCallback(t):t;return a[u]}}var Az={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},kz={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Ez={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},_z={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Tz={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Cz={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},$z=function(t,r){var n=Number(t),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Mz={ordinalNumber:$z,era:Gl({values:Az,defaultWidth:"wide"}),quarter:Gl({values:kz,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Gl({values:Ez,defaultWidth:"wide"}),day:Gl({values:_z,defaultWidth:"wide"}),dayPeriod:Gl({values:Tz,defaultWidth:"wide",formattingValues:Cz,defaultFormattingWidth:"wide"})};function Yl(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=t.match(a);if(!i)return null;var o=i[0],s=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?Dz(s,function(d){return d.test(o)}):Iz(s,function(d){return d.test(o)}),u;u=e.valueCallback?e.valueCallback(l):l,u=r.valueCallback?r.valueCallback(u):u;var f=t.slice(o.length);return{value:u,rest:f}}}function Iz(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r}function Dz(e,t){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{},n=t.match(e.matchPattern);if(!n)return null;var a=n[0],i=t.match(e.parsePattern);if(!i)return null;var o=e.valueCallback?e.valueCallback(i[0]):i[0];o=r.valueCallback?r.valueCallback(o):o;var s=t.slice(a.length);return{value:o,rest:s}}}var Lz=/^(\d+)(th|st|nd|rd)?/i,Fz=/\d+/i,zz={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Bz={any:[/^b/i,/^(a|c)/i]},Uz={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Wz={any:[/1/i,/2/i,/3/i,/4/i]},Kz={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},qz={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Hz={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Vz={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Gz={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Yz={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Xz={ordinalNumber:Rz({matchPattern:Lz,parsePattern:Fz,valueCallback:function(t){return parseInt(t,10)}}),era:Yl({matchPatterns:zz,defaultMatchWidth:"wide",parsePatterns:Bz,defaultParseWidth:"any"}),quarter:Yl({matchPatterns:Uz,defaultMatchWidth:"wide",parsePatterns:Wz,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Yl({matchPatterns:Kz,defaultMatchWidth:"wide",parsePatterns:qz,defaultParseWidth:"any"}),day:Yl({matchPatterns:Hz,defaultMatchWidth:"wide",parsePatterns:Vz,defaultParseWidth:"any"}),dayPeriod:Yl({matchPatterns:Gz,defaultMatchWidth:"any",parsePatterns:Yz,defaultParseWidth:"any"})},nT={code:"en-US",formatDistance:bz,formatLong:Oz,formatRelative:Pz,localize:Mz,match:Xz,options:{weekStartsOn:0,firstWeekContainsDate:1}},Qz=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Jz=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Zz=/^'([^]*?)'?$/,eB=/''/g,tB=/[a-zA-Z]/;function fi(e,t,r){var n,a,i,o,s,l,u,f,d,h,p,g,m,y;Te(2,arguments);var x=String(t),v=nf(),b=(n=(a=void 0)!==null&&a!==void 0?a:v.locale)!==null&&n!==void 0?n:nT,S=gn((i=(o=(s=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&s!==void 0?s:v.firstWeekContainsDate)!==null&&o!==void 0?o:(u=v.locale)===null||u===void 0||(f=u.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&i!==void 0?i:1);if(!(S>=1&&S<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var w=gn((d=(h=(p=(g=void 0)!==null&&g!==void 0?g:void 0)!==null&&p!==void 0?p:v.weekStartsOn)!==null&&h!==void 0?h:(m=v.locale)===null||m===void 0||(y=m.options)===null||y===void 0?void 0:y.weekStartsOn)!==null&&d!==void 0?d:0);if(!(w>=0&&w<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!b.localize)throw new RangeError("locale must contain localize property");if(!b.formatLong)throw new RangeError("locale must contain formatLong property");var O=$e(e);if(!HF(O))throw new RangeError("Invalid time value");var j=ky(O),P=nz(O,j),A={firstWeekContainsDate:S,weekStartsOn:w,locale:b,_originalDate:O},_=x.match(Jz).map(function(E){var k=E[0];if(k==="p"||k==="P"){var R=pz[k];return R(E,b.formatLong)}return E}).join("").match(Qz).map(function(E){if(E==="''")return"'";var k=E[0];if(k==="'")return rB(E);var R=dz[k];if(R)return yz(E)&&DS(E,t,String(e)),vz(E)&&DS(E,t,String(e)),R(P,E,b.localize,A);if(k.match(tB))throw new RangeError("Format string contains an unescaped latin alphabet character `"+k+"`");return E}).join("");return _}function rB(e){var t=e.match(Zz);return t?t[1].replace(eB,"'"):e}function aT(e,t){if(e==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}function nB(e){return aT({},e)}var RS=1440,aB=2520,xg=43200,iB=86400;function oB(e,t,r){var n,a;Te(2,arguments);var i=nf(),o=(n=(a=r==null?void 0:r.locale)!==null&&a!==void 0?a:i.locale)!==null&&n!==void 0?n:nT;if(!o.formatDistance)throw new RangeError("locale must contain formatDistance property");var s=jd(e,t);if(isNaN(s))throw new RangeError("Invalid time value");var l=aT(nB(r),{addSuffix:!!(r!=null&&r.addSuffix),comparison:s}),u,f;s>0?(u=$e(t),f=$e(e)):(u=$e(e),f=$e(t));var d=rz(f,u),h=(ky(f)-ky(u))/1e3,p=Math.round((d-h)/60),g;if(p<2)return r!=null&&r.includeSeconds?d<5?o.formatDistance("lessThanXSeconds",5,l):d<10?o.formatDistance("lessThanXSeconds",10,l):d<20?o.formatDistance("lessThanXSeconds",20,l):d<40?o.formatDistance("halfAMinute",0,l):d<60?o.formatDistance("lessThanXMinutes",1,l):o.formatDistance("xMinutes",1,l):p===0?o.formatDistance("lessThanXMinutes",1,l):o.formatDistance("xMinutes",p,l);if(p<45)return o.formatDistance("xMinutes",p,l);if(p<90)return o.formatDistance("aboutXHours",1,l);if(p{const n=new Date,a=_y(n,3);return(await rt(Ft.getTeamWithExperiments,{id:e,startTime:a.toISOString(),endTime:n.toISOString()})).team.expsByTimeframe},enabled:r&&!!e,staleTime:5*60*1e3})}function lB(e,t=30){return Nt({queryKey:["dailyCostUsage",e,t],queryFn:async()=>(await rt(Ft.getDailyCostUsage,{teamId:e,days:t})).dailyCostUsage,enabled:!!e,staleTime:5*60*1e3})}const uB=` + query GetModelDistributions($teamId: ID!) { + team(id: $teamId) { + id + modelDistributions { + model + count + } + } + } +`;function cB(e){return Nt({queryKey:["model-distributions",e],queryFn:async()=>{var r;return e?((r=(await rt(uB,{teamId:e})).team)==null?void 0:r.modelDistributions)||[]:[]},enabled:!!e,staleTime:5*60*1e3})}const ne=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));ne.displayName="Card";const it=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("flex flex-col space-y-1.5 p-6",e),...t}));it.displayName="CardHeader";const ot=N.forwardRef(({className:e,...t},r)=>c.jsx("h3",{ref:r,className:he("text-2xl font-semibold leading-none tracking-tight",e),...t}));ot.displayName="CardTitle";const Qt=N.forwardRef(({className:e,...t},r)=>c.jsx("p",{ref:r,className:he("text-sm text-muted-foreground",e),...t}));Qt.displayName="CardDescription";const ie=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("p-6 pt-0",e),...t}));ie.displayName="CardContent";const fB=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("flex items-center p-6 pt-0",e),...t}));fB.displayName="CardFooter";const ut=N.forwardRef(({className:e,variant:t="default",size:r="default",...n},a)=>{const i={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},o={default:"h-10 px-4 py-2",sm:"h-9 px-3",lg:"h-11 px-8",icon:"h-10 w-10"};return c.jsx("button",{className:he("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",i[t],o[r],e),ref:a,...n})});ut.displayName="Button";function je({className:e,...t}){return c.jsx("div",{className:he("animate-pulse rounded-md bg-muted",e),...t})}var dB=Array.isArray,xr=dB,hB=typeof xf=="object"&&xf&&xf.Object===Object&&xf,iT=hB,pB=iT,mB=typeof self=="object"&&self&&self.Object===Object&&self,gB=pB||mB||Function("return this")(),zn=gB,vB=zn,yB=vB.Symbol,af=yB,LS=af,oT=Object.prototype,xB=oT.hasOwnProperty,bB=oT.toString,Xl=LS?LS.toStringTag:void 0;function wB(e){var t=xB.call(e,Xl),r=e[Xl];try{e[Xl]=void 0;var n=!0}catch{}var a=bB.call(e);return n&&(t?e[Xl]=r:delete e[Xl]),a}var SB=wB,jB=Object.prototype,OB=jB.toString;function NB(e){return OB.call(e)}var PB=NB,FS=af,AB=SB,kB=PB,EB="[object Null]",_B="[object Undefined]",zS=FS?FS.toStringTag:void 0;function TB(e){return e==null?e===void 0?_B:EB:zS&&zS in Object(e)?AB(e):kB(e)}var Sa=TB;function CB(e){return e!=null&&typeof e=="object"}var ja=CB,$B=Sa,MB=ja,IB="[object Symbol]";function DB(e){return typeof e=="symbol"||MB(e)&&$B(e)==IB}var wl=DB,RB=xr,LB=wl,FB=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zB=/^\w*$/;function BB(e,t){if(RB(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||LB(e)?!0:zB.test(e)||!FB.test(e)||t!=null&&e in Object(t)}var xb=BB;function UB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bi=UB;const Sl=_e(bi);var WB=Sa,KB=bi,qB="[object AsyncFunction]",HB="[object Function]",VB="[object GeneratorFunction]",GB="[object Proxy]";function YB(e){if(!KB(e))return!1;var t=WB(e);return t==HB||t==VB||t==qB||t==GB}var bb=YB;const le=_e(bb);var XB=zn,QB=XB["__core-js_shared__"],JB=QB,bg=JB,BS=function(){var e=/[^.]+$/.exec(bg&&bg.keys&&bg.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function ZB(e){return!!BS&&BS in e}var e6=ZB,t6=Function.prototype,r6=t6.toString;function n6(e){if(e!=null){try{return r6.call(e)}catch{}try{return e+""}catch{}}return""}var sT=n6,a6=bb,i6=e6,o6=bi,s6=sT,l6=/[\\^$.*+?()[\]{}|]/g,u6=/^\[object .+?Constructor\]$/,c6=Function.prototype,f6=Object.prototype,d6=c6.toString,h6=f6.hasOwnProperty,p6=RegExp("^"+d6.call(h6).replace(l6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m6(e){if(!o6(e)||i6(e))return!1;var t=a6(e)?p6:u6;return t.test(s6(e))}var g6=m6;function v6(e,t){return e==null?void 0:e[t]}var y6=v6,x6=g6,b6=y6;function w6(e,t){var r=b6(e,t);return x6(r)?r:void 0}var ko=w6,S6=ko,j6=S6(Object,"create"),Dp=j6,US=Dp;function O6(){this.__data__=US?US(null):{},this.size=0}var N6=O6;function P6(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var A6=P6,k6=Dp,E6="__lodash_hash_undefined__",_6=Object.prototype,T6=_6.hasOwnProperty;function C6(e){var t=this.__data__;if(k6){var r=t[e];return r===E6?void 0:r}return T6.call(t,e)?t[e]:void 0}var $6=C6,M6=Dp,I6=Object.prototype,D6=I6.hasOwnProperty;function R6(e){var t=this.__data__;return M6?t[e]!==void 0:D6.call(t,e)}var L6=R6,F6=Dp,z6="__lodash_hash_undefined__";function B6(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=F6&&t===void 0?z6:t,this}var U6=B6,W6=N6,K6=A6,q6=$6,H6=L6,V6=U6;function jl(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1}var cU=uU,fU=Rp;function dU(e,t){var r=this.__data__,n=fU(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var hU=dU,pU=X6,mU=aU,gU=sU,vU=cU,yU=hU;function Ol(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0?1:-1},Ki=function(t){return yo(t)&&t.indexOf("%")===t.length-1},G=function(t){return L8(t)&&!of(t)},U8=function(t){return se(t)},Ot=function(t){return G(t)||yo(t)},W8=0,Eo=function(t){var r=++W8;return"".concat(t||"").concat(r)},Zt=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!G(t)&&!yo(t))return n;var i;if(Ki(t)){var o=t.indexOf("%");i=r*parseFloat(t.slice(0,o))/100}else i=+t;return of(i)&&(i=n),a&&i>r&&(i=r),i},Fa=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},K8=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function J8(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Cy(e){"@babel/helpers - typeof";return Cy=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cy(e)}var YS={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},aa=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},XS=null,Sg=null,_b=function e(t){if(t===XS&&Array.isArray(Sg))return Sg;var r=[];return N.Children.forEach(t,function(n){se(n)||($8.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),Sg=r,XS=t,r};function rr(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(a){return aa(a)}):n=[aa(t)],_b(e).forEach(function(a){var i=Er(a,"type.displayName")||Er(a,"type.name");n.indexOf(i)!==-1&&r.push(a)}),r}function jr(e,t){var r=rr(e,t);return r&&r[0]}var QS=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,a=r.height;return!(!G(n)||n<=0||!G(a)||a<=0)},Z8=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],eW=function(t){return t&&t.type&&yo(t.type)&&Z8.indexOf(t.type)>=0},tW=function(t){return t&&Cy(t)==="object"&&"clipDot"in t},rW=function(t,r,n,a){var i,o=(i=wg==null?void 0:wg[a])!==null&&i!==void 0?i:[];return r.startsWith("data-")||!le(t)&&(a&&o.includes(r)||G8.includes(r))||n&&Eb.includes(r)},ae=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(N.isValidElement(t)&&(a=t.props),!Sl(a))return null;var i={};return Object.keys(a).forEach(function(o){var s;rW((s=a)===null||s===void 0?void 0:s[o],o,r,n)&&(i[o]=a[o])}),i},$y=function e(t,r){if(t===r)return!0;var n=N.Children.count(t);if(n!==N.Children.count(r))return!1;if(n===0)return!0;if(n===1)return JS(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Iy(e){var t=e.children,r=e.width,n=e.height,a=e.viewBox,i=e.className,o=e.style,s=e.title,l=e.desc,u=oW(e,iW),f=a||{width:r,height:n,x:0,y:0},d=fe("recharts-surface",i);return $.createElement("svg",My({},ae(u,!0,"svg"),{className:d,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),$.createElement("title",null,s),$.createElement("desc",null,l),t)}var lW=["children","className"];function Dy(){return Dy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function cW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var xe=$.forwardRef(function(e,t){var r=e.children,n=e.className,a=uW(e,lW),i=fe("recharts-layer",n);return $.createElement("g",Dy({className:i},ae(a,!0),{ref:t}),r)}),pn=function(t,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;ia?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(a);++n=n?e:hW(e,t,r)}var mW=pW,gW="\\ud800-\\udfff",vW="\\u0300-\\u036f",yW="\\ufe20-\\ufe2f",xW="\\u20d0-\\u20ff",bW=vW+yW+xW,wW="\\ufe0e\\ufe0f",SW="\\u200d",jW=RegExp("["+SW+gW+bW+wW+"]");function OW(e){return jW.test(e)}var vT=OW;function NW(e){return e.split("")}var PW=NW,yT="\\ud800-\\udfff",AW="\\u0300-\\u036f",kW="\\ufe20-\\ufe2f",EW="\\u20d0-\\u20ff",_W=AW+kW+EW,TW="\\ufe0e\\ufe0f",CW="["+yT+"]",Ry="["+_W+"]",Ly="\\ud83c[\\udffb-\\udfff]",$W="(?:"+Ry+"|"+Ly+")",xT="[^"+yT+"]",bT="(?:\\ud83c[\\udde6-\\uddff]){2}",wT="[\\ud800-\\udbff][\\udc00-\\udfff]",MW="\\u200d",ST=$W+"?",jT="["+TW+"]?",IW="(?:"+MW+"(?:"+[xT,bT,wT].join("|")+")"+jT+ST+")*",DW=jT+ST+IW,RW="(?:"+[xT+Ry+"?",Ry,bT,wT,CW].join("|")+")",LW=RegExp(Ly+"(?="+Ly+")|"+RW+DW,"g");function FW(e){return e.match(LW)||[]}var zW=FW,BW=PW,UW=vT,WW=zW;function KW(e){return UW(e)?WW(e):BW(e)}var qW=KW,HW=mW,VW=vT,GW=qW,YW=fT;function XW(e){return function(t){t=YW(t);var r=VW(t)?GW(t):void 0,n=r?r[0]:t.charAt(0),a=r?HW(r,1).join(""):t.slice(1);return n[e]()+a}}var QW=XW,JW=QW,ZW=JW("toUpperCase"),e7=ZW;const Qp=_e(e7);function ze(e){return function(){return e}}const OT=Math.cos,lh=Math.sin,bn=Math.sqrt,uh=Math.PI,Jp=2*uh,Fy=Math.PI,zy=2*Fy,Ii=1e-6,t7=zy-Ii;function NT(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return NT;const r=10**t;return function(n){this._+=n[0];for(let a=1,i=n.length;aIi)if(!(Math.abs(d*l-u*f)>Ii)||!i)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,g=a-s,m=l*l+u*u,y=p*p+g*g,x=Math.sqrt(m),v=Math.sqrt(h),b=i*Math.tan((Fy-Math.acos((m+h-y)/(2*x*v)))/2),S=b/v,w=b/x;Math.abs(S-1)>Ii&&this._append`L${t+S*f},${r+S*d}`,this._append`A${i},${i},0,0,${+(d*p>f*g)},${this._x1=t+w*l},${this._y1=r+w*u}`}}arc(t,r,n,a,i,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(a),l=n*Math.sin(a),u=t+s,f=r+l,d=1^o,h=o?a-i:i-a;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>Ii||Math.abs(this._y1-f)>Ii)&&this._append`L${u},${f}`,n&&(h<0&&(h=h%zy+zy),h>t7?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=f}`:h>Ii&&this._append`A${n},${n},0,${+(h>=Fy)},${d},${this._x1=t+n*Math.cos(i)},${this._y1=r+n*Math.sin(i)}`)}rect(t,r,n,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+a}h${-n}Z`}toString(){return this._}}function Tb(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new n7(t)}function Cb(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function PT(e){this._context=e}PT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Zp(e){return new PT(e)}function AT(e){return e[0]}function kT(e){return e[1]}function ET(e,t){var r=ze(!0),n=null,a=Zp,i=null,o=Tb(s);e=typeof e=="function"?e:e===void 0?AT:ze(e),t=typeof t=="function"?t:t===void 0?kT:ze(t);function s(l){var u,f=(l=Cb(l)).length,d,h=!1,p;for(n==null&&(i=a(p=o())),u=0;u<=f;++u)!(u=p;--g)s.point(b[g],S[g]);s.lineEnd(),s.areaEnd()}x&&(b[h]=+e(y,h,d),S[h]=+t(y,h,d),s.point(n?+n(y,h,d):b[h],r?+r(y,h,d):S[h]))}if(v)return s=null,v+""||null}function f(){return ET().defined(a).curve(o).context(i)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:ze(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:ze(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:ze(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:ze(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:ze(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:ze(+d),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(n).y(t)},u.defined=function(d){return arguments.length?(a=typeof d=="function"?d:ze(!!d),u):a},u.curve=function(d){return arguments.length?(o=d,i!=null&&(s=o(i)),u):o},u.context=function(d){return arguments.length?(d==null?i=s=null:s=o(i=d),u):i},u}class _T{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function a7(e){return new _T(e,!0)}function i7(e){return new _T(e,!1)}const $b={draw(e,t){const r=bn(t/uh);e.moveTo(r,0),e.arc(0,0,r,0,Jp)}},o7={draw(e,t){const r=bn(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},TT=bn(1/3),s7=TT*2,l7={draw(e,t){const r=bn(t/s7),n=r*TT;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},u7={draw(e,t){const r=bn(t),n=-r/2;e.rect(n,n,r,r)}},c7=.8908130915292852,CT=lh(uh/10)/lh(7*uh/10),f7=lh(Jp/10)*CT,d7=-OT(Jp/10)*CT,h7={draw(e,t){const r=bn(t*c7),n=f7*r,a=d7*r;e.moveTo(0,-r),e.lineTo(n,a);for(let i=1;i<5;++i){const o=Jp*i/5,s=OT(o),l=lh(o);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*a,l*n+s*a)}e.closePath()}},jg=bn(3),p7={draw(e,t){const r=-bn(t/(jg*3));e.moveTo(0,r*2),e.lineTo(-jg*r,-r),e.lineTo(jg*r,-r),e.closePath()}},Ir=-.5,Dr=bn(3)/2,By=1/bn(12),m7=(By/2+1)*3,g7={draw(e,t){const r=bn(t/m7),n=r/2,a=r*By,i=n,o=r*By+r,s=-i,l=o;e.moveTo(n,a),e.lineTo(i,o),e.lineTo(s,l),e.lineTo(Ir*n-Dr*a,Dr*n+Ir*a),e.lineTo(Ir*i-Dr*o,Dr*i+Ir*o),e.lineTo(Ir*s-Dr*l,Dr*s+Ir*l),e.lineTo(Ir*n+Dr*a,Ir*a-Dr*n),e.lineTo(Ir*i+Dr*o,Ir*o-Dr*i),e.lineTo(Ir*s+Dr*l,Ir*l-Dr*s),e.closePath()}};function v7(e,t){let r=null,n=Tb(a);e=typeof e=="function"?e:ze(e||$b),t=typeof t=="function"?t:ze(t===void 0?64:+t);function a(){let i;if(r||(r=i=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return a.type=function(i){return arguments.length?(e=typeof i=="function"?i:ze(i),a):e},a.size=function(i){return arguments.length?(t=typeof i=="function"?i:ze(+i),a):t},a.context=function(i){return arguments.length?(r=i??null,a):r},a}function ch(){}function fh(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function $T(e){this._context=e}$T.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:fh(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:fh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function y7(e){return new $T(e)}function MT(e){this._context=e}MT.prototype={areaStart:ch,areaEnd:ch,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:fh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function x7(e){return new MT(e)}function IT(e){this._context=e}IT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:fh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function b7(e){return new IT(e)}function DT(e){this._context=e}DT.prototype={areaStart:ch,areaEnd:ch,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function w7(e){return new DT(e)}function ej(e){return e<0?-1:1}function tj(e,t,r){var n=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(n||a<0&&-0),o=(r-e._y1)/(a||n<0&&-0),s=(i*a+o*n)/(n+a);return(ej(i)+ej(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(s))||0}function rj(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Og(e,t,r){var n=e._x0,a=e._y0,i=e._x1,o=e._y1,s=(i-n)/3;e._context.bezierCurveTo(n+s,a+s*t,i-s,o-s*r,i,o)}function dh(e){this._context=e}dh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Og(this,this._t0,rj(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Og(this,rj(this,r=tj(this,e,t)),r);break;default:Og(this,this._t0,r=tj(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function RT(e){this._context=new LT(e)}(RT.prototype=Object.create(dh.prototype)).point=function(e,t){dh.prototype.point.call(this,t,e)};function LT(e){this._context=e}LT.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,a,i){this._context.bezierCurveTo(t,e,n,r,i,a)}};function S7(e){return new dh(e)}function j7(e){return new RT(e)}function FT(e){this._context=e}FT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=nj(e),a=nj(t),i=0,o=1;o=0;--t)a[t]=(o[t]-a[t+1])/i[t];for(i[r-1]=(e[r]+a[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function N7(e){return new em(e,.5)}function P7(e){return new em(e,0)}function A7(e){return new em(e,1)}function Fs(e,t){if((o=e.length)>1)for(var r=1,n,a,i=e[t[0]],o,s=i.length;r=0;)r[t]=t;return r}function k7(e,t){return e[t]}function E7(e){const t=[];return t.key=e,t}function _7(){var e=ze([]),t=Uy,r=Fs,n=k7;function a(i){var o=Array.from(e.apply(this,arguments),E7),s,l=o.length,u=-1,f;for(const d of i)for(s=0,++u;s0){for(var r,n,a=0,i=e[0].length,o;a0){for(var r=0,n=e[t[0]],a,i=n.length;r0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,n=1,a,i,o;n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function F7(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var zT={symbolCircle:$b,symbolCross:o7,symbolDiamond:l7,symbolSquare:u7,symbolStar:h7,symbolTriangle:p7,symbolWye:g7},z7=Math.PI/180,B7=function(t){var r="symbol".concat(Qp(t));return zT[r]||$b},U7=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*z7;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},W7=function(t,r){zT["symbol".concat(Qp(t))]=r},tm=function(t){var r=t.type,n=r===void 0?"circle":r,a=t.size,i=a===void 0?64:a,o=t.sizeType,s=o===void 0?"area":o,l=L7(t,M7),u=ij(ij({},l),{},{type:n,size:i,sizeType:s}),f=function(){var y=B7(n),x=v7().type(y).size(U7(i,s,n));return x()},d=u.className,h=u.cx,p=u.cy,g=ae(u,!0);return h===+h&&p===+p&&i===+i?$.createElement("path",Wy({},g,{className:fe("recharts-symbols",d),transform:"translate(".concat(h,", ").concat(p,")"),d:f()})):null};tm.registerSymbol=W7;function zs(e){"@babel/helpers - typeof";return zs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zs(e)}function Ky(){return Ky=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var v=p.inactive?u:p.color;return $.createElement("li",Ky({className:y,style:d,key:"legend-item-".concat(g)},gi(n.props,p,g)),$.createElement(Iy,{width:o,height:o,viewBox:f,style:h},n.renderIcon(p)),$.createElement("span",{className:"recharts-legend-item-text",style:{color:v}},m?m(x,p,g):x))})}},{key:"render",value:function(){var n=this.props,a=n.payload,i=n.layout,o=n.align;if(!a||!a.length)return null;var s={padding:0,margin:0,textAlign:i==="horizontal"?o:"left"};return $.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(N.PureComponent);rc(Mb,"displayName","Legend");rc(Mb,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Z7=Lp;function e9(){this.__data__=new Z7,this.size=0}var t9=e9;function r9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var n9=r9;function a9(e){return this.__data__.get(e)}var i9=a9;function o9(e){return this.__data__.has(e)}var s9=o9,l9=Lp,u9=Sb,c9=jb,f9=200;function d9(e,t){var r=this.__data__;if(r instanceof l9){var n=r.__data__;if(!u9||n.lengths))return!1;var u=i.get(e),f=i.get(t);if(u&&f)return u==t&&f==e;var d=-1,h=!0,p=r&M9?new _9:void 0;for(i.set(e,t),i.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=LK}var Lb=FK,zK=Sa,BK=Lb,UK=ja,WK="[object Arguments]",KK="[object Array]",qK="[object Boolean]",HK="[object Date]",VK="[object Error]",GK="[object Function]",YK="[object Map]",XK="[object Number]",QK="[object Object]",JK="[object RegExp]",ZK="[object Set]",eq="[object String]",tq="[object WeakMap]",rq="[object ArrayBuffer]",nq="[object DataView]",aq="[object Float32Array]",iq="[object Float64Array]",oq="[object Int8Array]",sq="[object Int16Array]",lq="[object Int32Array]",uq="[object Uint8Array]",cq="[object Uint8ClampedArray]",fq="[object Uint16Array]",dq="[object Uint32Array]",Ke={};Ke[aq]=Ke[iq]=Ke[oq]=Ke[sq]=Ke[lq]=Ke[uq]=Ke[cq]=Ke[fq]=Ke[dq]=!0;Ke[WK]=Ke[KK]=Ke[rq]=Ke[qK]=Ke[nq]=Ke[HK]=Ke[VK]=Ke[GK]=Ke[YK]=Ke[XK]=Ke[QK]=Ke[JK]=Ke[ZK]=Ke[eq]=Ke[tq]=!1;function hq(e){return UK(e)&&BK(e.length)&&!!Ke[zK(e)]}var pq=hq;function mq(e){return function(t){return e(t)}}var QT=mq,gh={exports:{}};gh.exports;(function(e,t){var r=iT,n=t&&!t.nodeType&&t,a=n&&!0&&e&&!e.nodeType&&e,i=a&&a.exports===n,o=i&&r.process,s=function(){try{var l=a&&a.require&&a.require("util").types;return l||o&&o.binding&&o.binding("util")}catch{}}();e.exports=s})(gh,gh.exports);var gq=gh.exports,vq=pq,yq=QT,dj=gq,hj=dj&&dj.isTypedArray,xq=hj?yq(hj):vq,JT=xq,bq=jK,wq=Db,Sq=xr,jq=XT,Oq=Rb,Nq=JT,Pq=Object.prototype,Aq=Pq.hasOwnProperty;function kq(e,t){var r=Sq(e),n=!r&&wq(e),a=!r&&!n&&jq(e),i=!r&&!n&&!a&&Nq(e),o=r||n||a||i,s=o?bq(e.length,String):[],l=s.length;for(var u in e)(t||Aq.call(e,u))&&!(o&&(u=="length"||a&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Oq(u,l)))&&s.push(u);return s}var Eq=kq,_q=Object.prototype;function Tq(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||_q;return e===r}var Cq=Tq;function $q(e,t){return function(r){return e(t(r))}}var ZT=$q,Mq=ZT,Iq=Mq(Object.keys,Object),Dq=Iq,Rq=Cq,Lq=Dq,Fq=Object.prototype,zq=Fq.hasOwnProperty;function Bq(e){if(!Rq(e))return Lq(e);var t=[];for(var r in Object(e))zq.call(e,r)&&r!="constructor"&&t.push(r);return t}var Uq=Bq,Wq=bb,Kq=Lb;function qq(e){return e!=null&&Kq(e.length)&&!Wq(e)}var sf=qq,Hq=Eq,Vq=Uq,Gq=sf;function Yq(e){return Gq(e)?Hq(e):Vq(e)}var rm=Yq,Xq=fK,Qq=wK,Jq=rm;function Zq(e){return Xq(e,Jq,Qq)}var eH=Zq,pj=eH,tH=1,rH=Object.prototype,nH=rH.hasOwnProperty;function aH(e,t,r,n,a,i){var o=r&tH,s=pj(e),l=s.length,u=pj(t),f=u.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=s[d];if(!(o?h in t:nH.call(t,h)))return!1}var p=i.get(e),g=i.get(t);if(p&&g)return p==t&&g==e;var m=!0;i.set(e,t),i.set(t,e);for(var y=o;++d-1}var rG=tG;function nG(e,t,r){for(var n=-1,a=e==null?0:e.length;++n=yG){var u=t?null:gG(e);if(u)return vG(u);o=!1,a=mG,l=new dG}else l=t?[]:s;e:for(;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function MG(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function IG(e){return e.value}function DG(e,t){if($.isValidElement(e))return $.cloneElement(e,t);if(typeof e=="function")return $.createElement(e,t);t.ref;var r=$G(t,NG);return $.createElement(Mb,r)}var _j=1,nr=function(e){function t(){var r;PG(this,t);for(var n=arguments.length,a=new Array(n),i=0;i_j||Math.abs(a.height-this.lastBoundingBox.height)>_j)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,n&&n(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Wn({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var a=this.props,i=a.layout,o=a.align,s=a.verticalAlign,l=a.margin,u=a.chartWidth,f=a.chartHeight,d,h;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&i==="vertical"){var p=this.getBBoxSnapshot();d={left:((u||0)-p.width)/2}}else d=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(s==="middle"){var g=this.getBBoxSnapshot();h={top:((f||0)-g.height)/2}}else h=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return Wn(Wn({},d),h)}},{key:"render",value:function(){var n=this,a=this.props,i=a.content,o=a.width,s=a.height,l=a.wrapperStyle,u=a.payloadUniqBy,f=a.payload,d=Wn(Wn({position:"absolute",width:o||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return $.createElement("div",{className:"recharts-legend-wrapper",style:d,ref:function(p){n.wrapperNode=p}},DG(i,Wn(Wn({},this.props),{},{payload:oC(f,u,IG)})))}}],[{key:"getWithHeight",value:function(n,a){var i=Wn(Wn({},this.defaultProps),n.props),o=i.layout;return o==="vertical"&&G(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||a}:null}}])}(N.PureComponent);nm(nr,"displayName","Legend");nm(nr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Tj=af,RG=Db,LG=xr,Cj=Tj?Tj.isConcatSpreadable:void 0;function FG(e){return LG(e)||RG(e)||!!(Cj&&e&&e[Cj])}var zG=FG,BG=GT,UG=zG;function uC(e,t,r,n,a){var i=-1,o=e.length;for(r||(r=UG),a||(a=[]);++i0&&r(s)?t>1?uC(s,t-1,r,n,a):BG(a,s):n||(a[a.length]=s)}return a}var cC=uC;function WG(e){return function(t,r,n){for(var a=-1,i=Object(t),o=n(t),s=o.length;s--;){var l=o[e?s:++a];if(r(i[l],l,i)===!1)break}return t}}var KG=WG,qG=KG,HG=qG(),VG=HG,GG=VG,YG=rm;function XG(e,t){return e&&GG(e,t,YG)}var fC=XG,QG=sf;function JG(e,t){return function(r,n){if(r==null)return r;if(!QG(r))return e(r,n);for(var a=r.length,i=t?a:-1,o=Object(r);(t?i--:++it||i&&o&&l&&!s&&!u||n&&o&&l||!r&&l||!a)return 1;if(!n&&!i&&!u&&e=s)return l;var u=r[n];return l*(u=="desc"?-1:1)}}return e.index-t.index}var dY=fY,kg=Nb,hY=Pb,pY=Bn,mY=dC,gY=sY,vY=QT,yY=dY,xY=kl,bY=xr;function wY(e,t,r){t.length?t=kg(t,function(i){return bY(i)?function(o){return hY(o,i.length===1?i[0]:i)}:i}):t=[xY];var n=-1;t=kg(t,vY(pY));var a=mY(e,function(i,o,s){var l=kg(t,function(u){return u(i)});return{criteria:l,index:++n,value:i}});return gY(a,function(i,o){return yY(i,o,r)})}var SY=wY;function jY(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var OY=jY,NY=OY,Mj=Math.max;function PY(e,t,r){return t=Mj(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,i=Mj(n.length-t,0),o=Array(i);++a0){if(++t>=DY)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var zY=FY,BY=IY,UY=zY,WY=UY(BY),KY=WY,qY=kl,HY=AY,VY=KY;function GY(e,t){return VY(HY(e,t,qY),e+"")}var YY=GY,XY=wb,QY=sf,JY=Rb,ZY=bi;function eX(e,t,r){if(!ZY(r))return!1;var n=typeof t;return(n=="number"?QY(r)&&JY(t,r.length):n=="string"&&t in r)?XY(r[t],e):!1}var am=eX,tX=cC,rX=SY,nX=YY,Dj=am,aX=nX(function(e,t){if(e==null)return[];var r=t.length;return r>1&&Dj(e,t[0],t[1])?t=[]:r>2&&Dj(t[0],t[1],t[2])&&(t=[t[0]]),rX(e,tX(t,1),[])}),iX=aX;const Bb=_e(iX);function nc(e){"@babel/helpers - typeof";return nc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nc(e)}function Jy(){return Jy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t.x),"".concat(Ql,"-left"),G(r)&&t&&G(t.x)&&r=t.y),"".concat(Ql,"-top"),G(n)&&t&&G(t.y)&&nm?Math.max(f,l[n]):Math.max(d,l[n])}function bX(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function wX(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,a=e.position,i=e.reverseDirection,o=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,f,d;return o.height>0&&o.width>0&&r?(f=Fj({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:a,reverseDirection:i,tooltipDimension:o.width,viewBox:l,viewBoxDimension:l.width}),d=Fj({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:a,reverseDirection:i,tooltipDimension:o.height,viewBox:l,viewBoxDimension:l.height}),u=bX({translateX:f,translateY:d,useTranslate3d:s})):u=yX,{cssProperties:u,cssClasses:xX({translateX:f,translateY:d,coordinate:r})}}function Us(e){"@babel/helpers - typeof";return Us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Us(e)}function zj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Bj(e){for(var t=1;tUj||Math.abs(n.height-this.state.lastBoundingBox.height)>Uj)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,a=this.props,i=a.active,o=a.allowEscapeViewBox,s=a.animationDuration,l=a.animationEasing,u=a.children,f=a.coordinate,d=a.hasPayload,h=a.isAnimationActive,p=a.offset,g=a.position,m=a.reverseDirection,y=a.useTranslate3d,x=a.viewBox,v=a.wrapperStyle,b=wX({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:p,position:g,reverseDirection:m,tooltipBox:this.state.lastBoundingBox,useTranslate3d:y,viewBox:x}),S=b.cssClasses,w=b.cssProperties,O=Bj(Bj({transition:h&&i?"transform ".concat(s,"ms ").concat(l):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&i&&d?"visible":"hidden",position:"absolute",top:0,left:0},v);return $.createElement("div",{tabIndex:-1,className:S,style:O,ref:function(P){n.wrapperNode=P}},u)}}])}(N.PureComponent),TX=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},wi={isSsr:TX()};function Ws(e){"@babel/helpers - typeof";return Ws=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ws(e)}function Wj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Kj(e){for(var t=1;t0;return $.createElement(_X,{allowEscapeViewBox:o,animationDuration:s,animationEasing:l,isAnimationActive:h,active:i,coordinate:f,hasPayload:O,offset:p,position:y,reverseDirection:x,useTranslate3d:v,viewBox:b,wrapperStyle:S},BX(u,Kj(Kj({},this.props),{},{payload:w})))}}])}(N.PureComponent);Ub(lt,"displayName","Tooltip");Ub(lt,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!wi.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var UX=zn,WX=function(){return UX.Date.now()},KX=WX,qX=/\s/;function HX(e){for(var t=e.length;t--&&qX.test(e.charAt(t)););return t}var VX=HX,GX=VX,YX=/^\s+/;function XX(e){return e&&e.slice(0,GX(e)+1).replace(YX,"")}var QX=XX,JX=QX,qj=bi,ZX=wl,Hj=NaN,eQ=/^[-+]0x[0-9a-f]+$/i,tQ=/^0b[01]+$/i,rQ=/^0o[0-7]+$/i,nQ=parseInt;function aQ(e){if(typeof e=="number")return e;if(ZX(e))return Hj;if(qj(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=qj(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=JX(e);var r=tQ.test(e);return r||rQ.test(e)?nQ(e.slice(2),r?2:8):eQ.test(e)?Hj:+e}var yC=aQ,iQ=bi,_g=KX,Vj=yC,oQ="Expected a function",sQ=Math.max,lQ=Math.min;function uQ(e,t,r){var n,a,i,o,s,l,u=0,f=!1,d=!1,h=!0;if(typeof e!="function")throw new TypeError(oQ);t=Vj(t)||0,iQ(r)&&(f=!!r.leading,d="maxWait"in r,i=d?sQ(Vj(r.maxWait)||0,t):i,h="trailing"in r?!!r.trailing:h);function p(O){var j=n,P=a;return n=a=void 0,u=O,o=e.apply(P,j),o}function g(O){return u=O,s=setTimeout(x,t),f?p(O):o}function m(O){var j=O-l,P=O-u,A=t-j;return d?lQ(A,i-P):A}function y(O){var j=O-l,P=O-u;return l===void 0||j>=t||j<0||d&&P>=i}function x(){var O=_g();if(y(O))return v(O);s=setTimeout(x,m(O))}function v(O){return s=void 0,h&&n?p(O):(n=a=void 0,o)}function b(){s!==void 0&&clearTimeout(s),u=0,n=l=a=s=void 0}function S(){return s===void 0?o:v(_g())}function w(){var O=_g(),j=y(O);if(n=arguments,a=this,l=O,j){if(s===void 0)return g(l);if(d)return clearTimeout(s),s=setTimeout(x,t),p(l)}return s===void 0&&(s=setTimeout(x,t)),o}return w.cancel=b,w.flush=S,w}var cQ=uQ,fQ=cQ,dQ=bi,hQ="Expected a function";function pQ(e,t,r){var n=!0,a=!0;if(typeof e!="function")throw new TypeError(hQ);return dQ(r)&&(n="leading"in r?!!r.leading:n,a="trailing"in r?!!r.trailing:a),fQ(e,t,{leading:n,maxWait:t,trailing:a})}var mQ=pQ;const xC=_e(mQ);function ic(e){"@babel/helpers - typeof";return ic=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ic(e)}function Gj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Kf(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(R=xC(R,m,{trailing:!0,leading:!1}));var z=new ResizeObserver(R),M=w.current.getBoundingClientRect(),C=M.width,D=M.height;return E(C,D),z.observe(w.current),function(){z.disconnect()}},[E,m]);var k=N.useMemo(function(){var R=A.containerWidth,z=A.containerHeight;if(R<0||z<0)return null;pn(Ki(o)||Ki(l),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,l),pn(!r||r>0,"The aspect(%s) must be greater than zero.",r);var M=Ki(o)?R:o,C=Ki(l)?z:l;r&&r>0&&(M?C=M/r:C&&(M=C*r),h&&C>h&&(C=h)),pn(M>0||C>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,M,C,o,l,f,d,r);var D=!Array.isArray(p)&&aa(p.type).endsWith("Chart");return $.Children.map(p,function(T){return $.isValidElement(T)?N.cloneElement(T,Kf({width:M,height:C},D?{style:Kf({height:"100%",width:"100%",maxHeight:C,maxWidth:M},T.props.style)}:{})):T})},[r,p,l,h,d,f,A,o]);return $.createElement("div",{id:y?"".concat(y):void 0,className:fe("recharts-responsive-container",x),style:Kf(Kf({},S),{},{width:o,height:l,minWidth:f,minHeight:d,maxHeight:h}),ref:w},k)}),Oa=function(t){return null};Oa.displayName="Cell";function oc(e){"@babel/helpers - typeof";return oc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oc(e)}function Xj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function rx(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||wi.isSsr)return{width:0,height:0};var n=EQ(r),a=JSON.stringify({text:t,copyStyle:n});if(Lo.widthCache[a])return Lo.widthCache[a];try{var i=document.getElementById(Qj);i||(i=document.createElement("span"),i.setAttribute("id",Qj),i.setAttribute("aria-hidden","true"),document.body.appendChild(i));var o=rx(rx({},kQ),n);Object.assign(i.style,o),i.textContent="".concat(t);var s=i.getBoundingClientRect(),l={width:s.width,height:s.height};return Lo.widthCache[a]=l,++Lo.cacheCount>AQ&&(Lo.cacheCount=0,Lo.widthCache={}),l}catch{return{width:0,height:0}}},_Q=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function sc(e){"@babel/helpers - typeof";return sc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sc(e)}function bh(e,t){return MQ(e)||$Q(e,t)||CQ(e,t)||TQ()}function TQ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CQ(e,t){if(e){if(typeof e=="string")return Jj(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jj(e,t)}}function Jj(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function GQ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function aO(e,t){return JQ(e)||QQ(e,t)||XQ(e,t)||YQ()}function YQ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function XQ(e,t){if(e){if(typeof e=="string")return iO(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return iO(e,t)}}function iO(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[];return M.reduce(function(C,D){var T=D.word,F=D.width,W=C[C.length-1];if(W&&(a==null||i||W.width+F+nD.width?C:D})};if(!f)return p;for(var m="…",y=function(M){var C=d.slice(0,M),D=jC({breakAll:u,style:l,children:C+m}).wordsWithComputedWidth,T=h(D),F=T.length>o||g(T).width>Number(a);return[F,T]},x=0,v=d.length-1,b=0,S;x<=v&&b<=d.length-1;){var w=Math.floor((x+v)/2),O=w-1,j=y(O),P=aO(j,2),A=P[0],_=P[1],E=y(w),k=aO(E,1),R=k[0];if(!A&&!R&&(x=w+1),A&&R&&(v=w-1),!A&&R){S=_;break}b++}return S||p},oO=function(t){var r=se(t)?[]:t.toString().split(SC);return[{words:r}]},eJ=function(t){var r=t.width,n=t.scaleToFit,a=t.children,i=t.style,o=t.breakAll,s=t.maxLines;if((r||n)&&!wi.isSsr){var l,u,f=jC({breakAll:o,children:a,style:i});if(f){var d=f.wordsWithComputedWidth,h=f.spaceWidth;l=d,u=h}else return oO(a);return ZQ({breakAll:o,children:a,maxLines:s,style:i},l,u,r,n)}return oO(a)},sO="#808080",xo=function(t){var r=t.x,n=r===void 0?0:r,a=t.y,i=a===void 0?0:a,o=t.lineHeight,s=o===void 0?"1em":o,l=t.capHeight,u=l===void 0?"0.71em":l,f=t.scaleToFit,d=f===void 0?!1:f,h=t.textAnchor,p=h===void 0?"start":h,g=t.verticalAnchor,m=g===void 0?"end":g,y=t.fill,x=y===void 0?sO:y,v=nO(t,HQ),b=N.useMemo(function(){return eJ({breakAll:v.breakAll,children:v.children,maxLines:v.maxLines,scaleToFit:d,style:v.style,width:v.width})},[v.breakAll,v.children,v.maxLines,d,v.style,v.width]),S=v.dx,w=v.dy,O=v.angle,j=v.className,P=v.breakAll,A=nO(v,VQ);if(!Ot(n)||!Ot(i))return null;var _=n+(G(S)?S:0),E=i+(G(w)?w:0),k;switch(m){case"start":k=Tg("calc(".concat(u,")"));break;case"middle":k=Tg("calc(".concat((b.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:k=Tg("calc(".concat(b.length-1," * -").concat(s,")"));break}var R=[];if(d){var z=b[0].width,M=v.width;R.push("scale(".concat((G(M)?M/z:1)/z,")"))}return O&&R.push("rotate(".concat(O,", ").concat(_,", ").concat(E,")")),R.length&&(A.transform=R.join(" ")),$.createElement("text",nx({},ae(A,!0),{x:_,y:E,className:fe("recharts-text",j),textAnchor:p,fill:x.includes("url")?sO:x}),b.map(function(C,D){var T=C.words.join(P?"":" ");return $.createElement("tspan",{x:_,dy:D===0?k:s,key:"".concat(T,"-").concat(D)},T)}))};function di(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function tJ(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Wb(e){let t,r,n;e.length!==2?(t=di,r=(s,l)=>di(e(s),l),n=(s,l)=>e(s)-l):(t=e===di||e===tJ?e:rJ,r=e,n=e);function a(s,l,u=0,f=s.length){if(u>>1;r(s[d],l)<0?u=d+1:f=d}while(u>>1;r(s[d],l)<=0?u=d+1:f=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:a,center:o,right:i}}function rJ(){return 0}function OC(e){return e===null?NaN:+e}function*nJ(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const aJ=Wb(di),lf=aJ.right;Wb(OC).center;class lO extends Map{constructor(t,r=sJ){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,a]of t)this.set(n,a)}get(t){return super.get(uO(this,t))}has(t){return super.has(uO(this,t))}set(t,r){return super.set(iJ(this,t),r)}delete(t){return super.delete(oJ(this,t))}}function uO({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function iJ({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function oJ({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function sJ(e){return e!==null&&typeof e=="object"?e.valueOf():e}function lJ(e=di){if(e===di)return NC;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function NC(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const uJ=Math.sqrt(50),cJ=Math.sqrt(10),fJ=Math.sqrt(2);function wh(e,t,r){const n=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(n)),i=n/Math.pow(10,a),o=i>=uJ?10:i>=cJ?5:i>=fJ?2:1;let s,l,u;return a<0?(u=Math.pow(10,-a)/o,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,a)*o,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];const n=t=a))return[];const s=i-a+1,l=new Array(s);if(n)if(o<0)for(let u=0;u=n)&&(r=n);return r}function fO(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function PC(e,t,r=0,n=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(a=a===void 0?NC:lJ(a);n>r;){if(n-r>600){const l=n-r+1,u=t-r+1,f=Math.log(l),d=.5*Math.exp(2*f/3),h=.5*Math.sqrt(f*d*(l-d)/l)*(u-l/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/l+h)),g=Math.min(n,Math.floor(t+(l-u)*d/l+h));PC(e,t,p,g,a)}const i=e[t];let o=r,s=n;for(Jl(e,r,t),a(e[n],i)>0&&Jl(e,r,n);o0;)--s}a(e[r],i)===0?Jl(e,r,s):(++s,Jl(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Jl(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function dJ(e,t,r){if(e=Float64Array.from(nJ(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return fO(e);if(t>=1)return cO(e);var n,a=(n-1)*t,i=Math.floor(a),o=cO(PC(e,i).subarray(0,i+1)),s=fO(e.subarray(i+1));return o+(s-o)*(a-i)}}function hJ(e,t,r=OC){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,a=(n-1)*t,i=Math.floor(a),o=+r(e[i],i,e),s=+r(e[i+1],i+1,e);return o+(s-o)*(a-i)}}function pJ(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var n=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,i=new Array(a);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Hf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Hf(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=gJ.exec(e))?new dr(t[1],t[2],t[3],1):(t=vJ.exec(e))?new dr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yJ.exec(e))?Hf(t[1],t[2],t[3],t[4]):(t=xJ.exec(e))?Hf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=bJ.exec(e))?yO(t[1],t[2]/100,t[3]/100,1):(t=wJ.exec(e))?yO(t[1],t[2]/100,t[3]/100,t[4]):dO.hasOwnProperty(e)?mO(dO[e]):e==="transparent"?new dr(NaN,NaN,NaN,0):null}function mO(e){return new dr(e>>16&255,e>>8&255,e&255,1)}function Hf(e,t,r,n){return n<=0&&(e=t=r=NaN),new dr(e,t,r,n)}function OJ(e){return e instanceof uf||(e=fc(e)),e?(e=e.rgb(),new dr(e.r,e.g,e.b,e.opacity)):new dr}function lx(e,t,r,n){return arguments.length===1?OJ(e):new dr(e,t,r,n??1)}function dr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}qb(dr,lx,kC(uf,{brighter(e){return e=e==null?Sh:Math.pow(Sh,e),new dr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?uc:Math.pow(uc,e),new dr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new dr(oo(this.r),oo(this.g),oo(this.b),jh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:gO,formatHex:gO,formatHex8:NJ,formatRgb:vO,toString:vO}));function gO(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}`}function NJ(){return`#${qi(this.r)}${qi(this.g)}${qi(this.b)}${qi((isNaN(this.opacity)?1:this.opacity)*255)}`}function vO(){const e=jh(this.opacity);return`${e===1?"rgb(":"rgba("}${oo(this.r)}, ${oo(this.g)}, ${oo(this.b)}${e===1?")":`, ${e})`}`}function jh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function oo(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function qi(e){return e=oo(e),(e<16?"0":"")+e.toString(16)}function yO(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new cn(e,t,r,n)}function EC(e){if(e instanceof cn)return new cn(e.h,e.s,e.l,e.opacity);if(e instanceof uf||(e=fc(e)),!e)return new cn;if(e instanceof cn)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=NaN,s=i-a,l=(i+a)/2;return s?(t===i?o=(r-n)/s+(r0&&l<1?0:o,new cn(o,s,l,e.opacity)}function PJ(e,t,r,n){return arguments.length===1?EC(e):new cn(e,t,r,n??1)}function cn(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}qb(cn,PJ,kC(uf,{brighter(e){return e=e==null?Sh:Math.pow(Sh,e),new cn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?uc:Math.pow(uc,e),new cn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,a=2*r-n;return new dr(Cg(e>=240?e-240:e+120,a,n),Cg(e,a,n),Cg(e<120?e+240:e-120,a,n),this.opacity)},clamp(){return new cn(xO(this.h),Vf(this.s),Vf(this.l),jh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=jh(this.opacity);return`${e===1?"hsl(":"hsla("}${xO(this.h)}, ${Vf(this.s)*100}%, ${Vf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xO(e){return e=(e||0)%360,e<0?e+360:e}function Vf(e){return Math.max(0,Math.min(1,e||0))}function Cg(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Hb=e=>()=>e;function AJ(e,t){return function(r){return e+r*t}}function kJ(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function EJ(e){return(e=+e)==1?_C:function(t,r){return r-t?kJ(t,r,e):Hb(isNaN(t)?r:t)}}function _C(e,t){var r=t-e;return r?AJ(e,r):Hb(isNaN(e)?t:e)}const bO=function e(t){var r=EJ(t);function n(a,i){var o=r((a=lx(a)).r,(i=lx(i)).r),s=r(a.g,i.g),l=r(a.b,i.b),u=_C(a.opacity,i.opacity);return function(f){return a.r=o(f),a.g=s(f),a.b=l(f),a.opacity=u(f),a+""}}return n.gamma=e,n}(1);function _J(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),a;return function(i){for(a=0;ar&&(i=t.slice(r,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(a=a[0])?s[o]?s[o]+=a:s[++o]=a:(s[++o]=null,l.push({i:o,x:Oh(n,a)})),r=$g.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function BJ(e,t,r){var n=e[0],a=e[1],i=t[0],o=t[1];return a2?UJ:BJ,l=u=null,d}function d(h){return h==null||isNaN(h=+h)?i:(l||(l=s(e.map(n),t,r)))(n(o(h)))}return d.invert=function(h){return o(a((u||(u=s(t,e.map(n),Oh)))(h)))},d.domain=function(h){return arguments.length?(e=Array.from(h,Nh),f()):e.slice()},d.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},d.rangeRound=function(h){return t=Array.from(h),r=Vb,f()},d.clamp=function(h){return arguments.length?(o=h?!0:er,f()):o!==er},d.interpolate=function(h){return arguments.length?(r=h,f()):r},d.unknown=function(h){return arguments.length?(i=h,d):i},function(h,p){return n=h,a=p,f()}}function Gb(){return im()(er,er)}function WJ(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Ph(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Ks(e){return e=Ph(Math.abs(e)),e?e[1]:NaN}function KJ(e,t){return function(r,n){for(var a=r.length,i=[],o=0,s=e[0],l=0;a>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),i.push(r.substring(a-=s,a+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return i.reverse().join(t)}}function qJ(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var HJ=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function dc(e){if(!(t=HJ.exec(e)))throw new Error("invalid format: "+e);var t;return new Yb({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}dc.prototype=Yb.prototype;function Yb(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Yb.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function VJ(e){e:for(var t=e.length,r=1,n=-1,a;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(a+1):e}var TC;function GJ(e,t){var r=Ph(e,t);if(!r)return e+"";var n=r[0],a=r[1],i=a-(TC=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,o=n.length;return i===o?n:i>o?n+new Array(i-o+1).join("0"):i>0?n.slice(0,i)+"."+n.slice(i):"0."+new Array(1-i).join("0")+Ph(e,Math.max(0,t+i-1))[0]}function SO(e,t){var r=Ph(e,t);if(!r)return e+"";var n=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+n:n.length>a+1?n.slice(0,a+1)+"."+n.slice(a+1):n+new Array(a-n.length+2).join("0")}const jO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:WJ,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>SO(e*100,t),r:SO,s:GJ,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function OO(e){return e}var NO=Array.prototype.map,PO=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function YJ(e){var t=e.grouping===void 0||e.thousands===void 0?OO:KJ(NO.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?OO:qJ(NO.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d){d=dc(d);var h=d.fill,p=d.align,g=d.sign,m=d.symbol,y=d.zero,x=d.width,v=d.comma,b=d.precision,S=d.trim,w=d.type;w==="n"?(v=!0,w="g"):jO[w]||(b===void 0&&(b=12),S=!0,w="g"),(y||h==="0"&&p==="=")&&(y=!0,h="0",p="=");var O=m==="$"?r:m==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",j=m==="$"?n:/[%p]/.test(w)?o:"",P=jO[w],A=/[defgprs%]/.test(w);b=b===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b));function _(E){var k=O,R=j,z,M,C;if(w==="c")R=P(E)+R,E="";else{E=+E;var D=E<0||1/E<0;if(E=isNaN(E)?l:P(Math.abs(E),b),S&&(E=VJ(E)),D&&+E==0&&g!=="+"&&(D=!1),k=(D?g==="("?g:s:g==="-"||g==="("?"":g)+k,R=(w==="s"?PO[8+TC/3]:"")+R+(D&&g==="("?")":""),A){for(z=-1,M=E.length;++zC||C>57){R=(C===46?a+E.slice(z+1):E.slice(z))+R,E=E.slice(0,z);break}}}v&&!y&&(E=t(E,1/0));var T=k.length+E.length+R.length,F=T>1)+k+E+R+F.slice(T);break;default:E=F+k+E+R;break}return i(E)}return _.toString=function(){return d+""},_}function f(d,h){var p=u((d=dc(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(Ks(h)/3)))*3,m=Math.pow(10,-g),y=PO[8+g/3];return function(x){return p(m*x)+y}}return{format:u,formatPrefix:f}}var Gf,Xb,CC;XJ({thousands:",",grouping:[3],currency:["$",""]});function XJ(e){return Gf=YJ(e),Xb=Gf.format,CC=Gf.formatPrefix,Gf}function QJ(e){return Math.max(0,-Ks(Math.abs(e)))}function JJ(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ks(t)/3)))*3-Ks(Math.abs(e)))}function ZJ(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ks(t)-Ks(e))+1}function $C(e,t,r,n){var a=ox(e,t,r),i;switch(n=dc(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(i=JJ(a,o))&&(n.precision=i),CC(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(i=ZJ(a,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=i-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(i=QJ(a))&&(n.precision=i-(n.type==="%")*2);break}}return Xb(n)}function Si(e){var t=e.domain;return e.ticks=function(r){var n=t();return ax(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var a=t();return $C(a[0],a[a.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),a=0,i=n.length-1,o=n[a],s=n[i],l,u,f=10;for(s0;){if(u=ix(o,s,r),u===l)return n[a]=o,n[i]=s,t(n);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Ah(){var e=Gb();return e.copy=function(){return cf(e,Ah())},Zr.apply(e,arguments),Si(e)}function MC(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Nh),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return MC(e).unknown(t)},e=arguments.length?Array.from(e,Nh):[0,1],Si(r)}function IC(e,t){e=e.slice();var r=0,n=e.length-1,a=e[r],i=e[n],o;return iMath.pow(e,t)}function aZ(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function EO(e){return(t,r)=>-e(-t,r)}function Qb(e){const t=e(AO,kO),r=t.domain;let n=10,a,i;function o(){return a=aZ(n),i=nZ(n),r()[0]<0?(a=EO(a),i=EO(i),e(eZ,tZ)):e(AO,kO),t}return t.base=function(s){return arguments.length?(n=+s,o()):n},t.domain=function(s){return arguments.length?(r(s),o()):r()},t.ticks=s=>{const l=r();let u=l[0],f=l[l.length-1];const d=f0){for(;h<=p;++h)for(g=1;gf)break;x.push(m)}}else for(;h<=p;++h)for(g=n-1;g>=1;--g)if(m=h>0?g/i(-h):g*i(h),!(mf)break;x.push(m)}x.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=dc(l)).precision==null&&(l.trim=!0),l=Xb(l)),s===1/0)return l;const u=Math.max(1,n*s/t.ticks().length);return f=>{let d=f/i(Math.round(a(f)));return d*nr(IC(r(),{floor:s=>i(Math.floor(a(s))),ceil:s=>i(Math.ceil(a(s)))})),t}function DC(){const e=Qb(im()).domain([1,10]);return e.copy=()=>cf(e,DC()).base(e.base()),Zr.apply(e,arguments),e}function _O(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function TO(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Jb(e){var t=1,r=e(_O(t),TO(t));return r.constant=function(n){return arguments.length?e(_O(t=+n),TO(t)):t},Si(r)}function RC(){var e=Jb(im());return e.copy=function(){return cf(e,RC()).constant(e.constant())},Zr.apply(e,arguments)}function CO(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function iZ(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function oZ(e){return e<0?-e*e:e*e}function Zb(e){var t=e(er,er),r=1;function n(){return r===1?e(er,er):r===.5?e(iZ,oZ):e(CO(r),CO(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,n()):r},Si(t)}function ew(){var e=Zb(im());return e.copy=function(){return cf(e,ew()).exponent(e.exponent())},Zr.apply(e,arguments),e}function sZ(){return ew.apply(null,arguments).exponent(.5)}function $O(e){return Math.sign(e)*e*e}function lZ(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function LC(){var e=Gb(),t=[0,1],r=!1,n;function a(i){var o=lZ(e(i));return isNaN(o)?n:r?Math.round(o):o}return a.invert=function(i){return e.invert($O(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,Nh)).map($O)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(n=i,a):n},a.copy=function(){return LC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Zr.apply(a,arguments),Si(a)}function FC(){var e=[],t=[],r=[],n;function a(){var o=0,s=Math.max(1,t.length);for(r=new Array(s-1);++o0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(l){return arguments.length&&(i=l),o},o.thresholds=function(){return n.slice()},o.copy=function(){return zC().domain([e,t]).range(a).unknown(i)},Zr.apply(Si(o),arguments)}function BC(){var e=[.5],t=[0,1],r,n=1;function a(i){return i!=null&&i<=i?t[lf(e,i,0,n)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),n=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),n=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var o=t.indexOf(i);return[e[o-1],e[o]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return BC().domain(e).range(t).unknown(r)},Zr.apply(a,arguments)}const Mg=new Date,Ig=new Date;function Pt(e,t,r,n){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{const o=a(i),s=a.ceil(i);return i-o(t(i=new Date(+i),o==null?1:Math.floor(o)),i),a.range=(i,o,s)=>{const l=[];if(i=a.ceil(i),s=s==null?1:Math.floor(s),!(i0))return l;let u;do l.push(u=new Date(+i)),t(i,s),e(i);while(uPt(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,s)=>{if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!i(o););else for(;--s>=0;)for(;t(o,1),!i(o););}),r&&(a.count=(i,o)=>(Mg.setTime(+i),Ig.setTime(+o),e(Mg),e(Ig),Math.floor(r(Mg,Ig))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(n?o=>n(o)%i===0:o=>a.count(0,o)%i===0):a)),a}const kh=Pt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);kh.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Pt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):kh);kh.range;const ea=1e3,Hr=ea*60,ta=Hr*60,pa=ta*24,tw=pa*7,MO=pa*30,Dg=pa*365,Hi=Pt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ea)},(e,t)=>(t-e)/ea,e=>e.getUTCSeconds());Hi.range;const rw=Pt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ea)},(e,t)=>{e.setTime(+e+t*Hr)},(e,t)=>(t-e)/Hr,e=>e.getMinutes());rw.range;const nw=Pt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Hr)},(e,t)=>(t-e)/Hr,e=>e.getUTCMinutes());nw.range;const aw=Pt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ea-e.getMinutes()*Hr)},(e,t)=>{e.setTime(+e+t*ta)},(e,t)=>(t-e)/ta,e=>e.getHours());aw.range;const iw=Pt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*ta)},(e,t)=>(t-e)/ta,e=>e.getUTCHours());iw.range;const ff=Pt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Hr)/pa,e=>e.getDate()-1);ff.range;const om=Pt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pa,e=>e.getUTCDate()-1);om.range;const UC=Pt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pa,e=>Math.floor(e/pa));UC.range;function _o(e){return Pt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Hr)/tw)}const sm=_o(0),Eh=_o(1),uZ=_o(2),cZ=_o(3),qs=_o(4),fZ=_o(5),dZ=_o(6);sm.range;Eh.range;uZ.range;cZ.range;qs.range;fZ.range;dZ.range;function To(e){return Pt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/tw)}const lm=To(0),_h=To(1),hZ=To(2),pZ=To(3),Hs=To(4),mZ=To(5),gZ=To(6);lm.range;_h.range;hZ.range;pZ.range;Hs.range;mZ.range;gZ.range;const ow=Pt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());ow.range;const sw=Pt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());sw.range;const ma=Pt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ma.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});ma.range;const ga=Pt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ga.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});ga.range;function WC(e,t,r,n,a,i){const o=[[Hi,1,ea],[Hi,5,5*ea],[Hi,15,15*ea],[Hi,30,30*ea],[i,1,Hr],[i,5,5*Hr],[i,15,15*Hr],[i,30,30*Hr],[a,1,ta],[a,3,3*ta],[a,6,6*ta],[a,12,12*ta],[n,1,pa],[n,2,2*pa],[r,1,tw],[t,1,MO],[t,3,3*MO],[e,1,Dg]];function s(u,f,d){const h=fy).right(o,h);if(p===o.length)return e.every(ox(u/Dg,f/Dg,d));if(p===0)return kh.every(Math.max(ox(u,f,d),1));const[g,m]=o[h/o[p-1][2]53)return null;"w"in K||(K.w=1),"Z"in K?(pe=Lg(Zl(K.y,0,1)),Le=pe.getUTCDay(),pe=Le>4||Le===0?_h.ceil(pe):_h(pe),pe=om.offset(pe,(K.V-1)*7),K.y=pe.getUTCFullYear(),K.m=pe.getUTCMonth(),K.d=pe.getUTCDate()+(K.w+6)%7):(pe=Rg(Zl(K.y,0,1)),Le=pe.getDay(),pe=Le>4||Le===0?Eh.ceil(pe):Eh(pe),pe=ff.offset(pe,(K.V-1)*7),K.y=pe.getFullYear(),K.m=pe.getMonth(),K.d=pe.getDate()+(K.w+6)%7)}else("W"in K||"U"in K)&&("w"in K||(K.w="u"in K?K.u%7:"W"in K?1:0),Le="Z"in K?Lg(Zl(K.y,0,1)).getUTCDay():Rg(Zl(K.y,0,1)).getDay(),K.m=0,K.d="W"in K?(K.w+6)%7+K.W*7-(Le+5)%7:K.w+K.U*7-(Le+6)%7);return"Z"in K?(K.H+=K.Z/100|0,K.M+=K.Z%100,Lg(K)):Rg(K)}}function P(X,ue,ce,K){for(var Ae=0,pe=ue.length,Le=ce.length,ct,or;Ae=Le)return-1;if(ct=ue.charCodeAt(Ae++),ct===37){if(ct=ue.charAt(Ae++),or=w[ct in IO?ue.charAt(Ae++):ct],!or||(K=or(X,ce,K))<0)return-1}else if(ct!=ce.charCodeAt(K++))return-1}return K}function A(X,ue,ce){var K=u.exec(ue.slice(ce));return K?(X.p=f.get(K[0].toLowerCase()),ce+K[0].length):-1}function _(X,ue,ce){var K=p.exec(ue.slice(ce));return K?(X.w=g.get(K[0].toLowerCase()),ce+K[0].length):-1}function E(X,ue,ce){var K=d.exec(ue.slice(ce));return K?(X.w=h.get(K[0].toLowerCase()),ce+K[0].length):-1}function k(X,ue,ce){var K=x.exec(ue.slice(ce));return K?(X.m=v.get(K[0].toLowerCase()),ce+K[0].length):-1}function R(X,ue,ce){var K=m.exec(ue.slice(ce));return K?(X.m=y.get(K[0].toLowerCase()),ce+K[0].length):-1}function z(X,ue,ce){return P(X,t,ue,ce)}function M(X,ue,ce){return P(X,r,ue,ce)}function C(X,ue,ce){return P(X,n,ue,ce)}function D(X){return o[X.getDay()]}function T(X){return i[X.getDay()]}function F(X){return l[X.getMonth()]}function W(X){return s[X.getMonth()]}function H(X){return a[+(X.getHours()>=12)]}function q(X){return 1+~~(X.getMonth()/3)}function L(X){return o[X.getUTCDay()]}function Y(X){return i[X.getUTCDay()]}function ve(X){return l[X.getUTCMonth()]}function Ne(X){return s[X.getUTCMonth()]}function we(X){return a[+(X.getUTCHours()>=12)]}function dt(X){return 1+~~(X.getUTCMonth()/3)}return{format:function(X){var ue=O(X+="",b);return ue.toString=function(){return X},ue},parse:function(X){var ue=j(X+="",!1);return ue.toString=function(){return X},ue},utcFormat:function(X){var ue=O(X+="",S);return ue.toString=function(){return X},ue},utcParse:function(X){var ue=j(X+="",!0);return ue.toString=function(){return X},ue}}}var IO={"-":"",_:" ",0:"0"},$t=/^\s*\d+/,SZ=/^%/,jZ=/[\\^$*+?|[\]().{}]/g;function Pe(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i[t.toLowerCase(),r]))}function NZ(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function PZ(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function AZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function kZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function EZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function DO(e,t,r){var n=$t.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function RO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function _Z(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function TZ(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function CZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function LO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function $Z(e,t,r){var n=$t.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function FO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function MZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function IZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function DZ(e,t,r){var n=$t.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function RZ(e,t,r){var n=$t.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function LZ(e,t,r){var n=SZ.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function FZ(e,t,r){var n=$t.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function zZ(e,t,r){var n=$t.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function zO(e,t){return Pe(e.getDate(),t,2)}function BZ(e,t){return Pe(e.getHours(),t,2)}function UZ(e,t){return Pe(e.getHours()%12||12,t,2)}function WZ(e,t){return Pe(1+ff.count(ma(e),e),t,3)}function KC(e,t){return Pe(e.getMilliseconds(),t,3)}function KZ(e,t){return KC(e,t)+"000"}function qZ(e,t){return Pe(e.getMonth()+1,t,2)}function HZ(e,t){return Pe(e.getMinutes(),t,2)}function VZ(e,t){return Pe(e.getSeconds(),t,2)}function GZ(e){var t=e.getDay();return t===0?7:t}function YZ(e,t){return Pe(sm.count(ma(e)-1,e),t,2)}function qC(e){var t=e.getDay();return t>=4||t===0?qs(e):qs.ceil(e)}function XZ(e,t){return e=qC(e),Pe(qs.count(ma(e),e)+(ma(e).getDay()===4),t,2)}function QZ(e){return e.getDay()}function JZ(e,t){return Pe(Eh.count(ma(e)-1,e),t,2)}function ZZ(e,t){return Pe(e.getFullYear()%100,t,2)}function eee(e,t){return e=qC(e),Pe(e.getFullYear()%100,t,2)}function tee(e,t){return Pe(e.getFullYear()%1e4,t,4)}function ree(e,t){var r=e.getDay();return e=r>=4||r===0?qs(e):qs.ceil(e),Pe(e.getFullYear()%1e4,t,4)}function nee(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pe(t/60|0,"0",2)+Pe(t%60,"0",2)}function BO(e,t){return Pe(e.getUTCDate(),t,2)}function aee(e,t){return Pe(e.getUTCHours(),t,2)}function iee(e,t){return Pe(e.getUTCHours()%12||12,t,2)}function oee(e,t){return Pe(1+om.count(ga(e),e),t,3)}function HC(e,t){return Pe(e.getUTCMilliseconds(),t,3)}function see(e,t){return HC(e,t)+"000"}function lee(e,t){return Pe(e.getUTCMonth()+1,t,2)}function uee(e,t){return Pe(e.getUTCMinutes(),t,2)}function cee(e,t){return Pe(e.getUTCSeconds(),t,2)}function fee(e){var t=e.getUTCDay();return t===0?7:t}function dee(e,t){return Pe(lm.count(ga(e)-1,e),t,2)}function VC(e){var t=e.getUTCDay();return t>=4||t===0?Hs(e):Hs.ceil(e)}function hee(e,t){return e=VC(e),Pe(Hs.count(ga(e),e)+(ga(e).getUTCDay()===4),t,2)}function pee(e){return e.getUTCDay()}function mee(e,t){return Pe(_h.count(ga(e)-1,e),t,2)}function gee(e,t){return Pe(e.getUTCFullYear()%100,t,2)}function vee(e,t){return e=VC(e),Pe(e.getUTCFullYear()%100,t,2)}function yee(e,t){return Pe(e.getUTCFullYear()%1e4,t,4)}function xee(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Hs(e):Hs.ceil(e),Pe(e.getUTCFullYear()%1e4,t,4)}function bee(){return"+0000"}function UO(){return"%"}function WO(e){return+e}function KO(e){return Math.floor(+e/1e3)}var Fo,GC,YC;wee({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function wee(e){return Fo=wZ(e),GC=Fo.format,Fo.parse,YC=Fo.utcFormat,Fo.utcParse,Fo}function See(e){return new Date(e)}function jee(e){return e instanceof Date?+e:+new Date(+e)}function lw(e,t,r,n,a,i,o,s,l,u){var f=Gb(),d=f.invert,h=f.domain,p=u(".%L"),g=u(":%S"),m=u("%I:%M"),y=u("%I %p"),x=u("%a %d"),v=u("%b %d"),b=u("%B"),S=u("%Y");function w(O){return(l(O)t(a/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(a,i)=>dJ(e,i/n))},r.copy=function(){return ZC(t).domain(e)},Na.apply(r,arguments)}function cm(){var e=0,t=.5,r=1,n=1,a,i,o,s,l,u=er,f,d=!1,h;function p(m){return isNaN(m=+m)?h:(m=.5+((m=+f(m))-i)*(n*mt}var n2=_ee,Tee=fm,Cee=n2,$ee=kl;function Mee(e){return e&&e.length?Tee(e,$ee,Cee):void 0}var Iee=Mee;const dm=_e(Iee);function Dee(e,t){return ee.e^i.s<0?1:-1;for(n=i.d.length,a=e.d.length,t=0,r=ne.d[t]^i.s<0?1:-1;return n===a?0:n>a^i.s<0?1:-1};Z.decimalPlaces=Z.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*qe;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};Z.dividedBy=Z.div=function(e){return ia(this,new this.constructor(e))};Z.dividedToIntegerBy=Z.idiv=function(e){var t=this,r=t.constructor;return Re(ia(t,new r(e),0,1),r.precision)};Z.equals=Z.eq=function(e){return!this.cmp(e)};Z.exponent=function(){return gt(this)};Z.greaterThan=Z.gt=function(e){return this.cmp(e)>0};Z.greaterThanOrEqualTo=Z.gte=function(e){return this.cmp(e)>=0};Z.isInteger=Z.isint=function(){return this.e>this.d.length-2};Z.isNegative=Z.isneg=function(){return this.s<0};Z.isPositive=Z.ispos=function(){return this.s>0};Z.isZero=function(){return this.s===0};Z.lessThan=Z.lt=function(e){return this.cmp(e)<0};Z.lessThanOrEqualTo=Z.lte=function(e){return this.cmp(e)<1};Z.logarithm=Z.log=function(e){var t,r=this,n=r.constructor,a=n.precision,i=a+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(Nr))throw Error(Qr+"NaN");if(r.s<1)throw Error(Qr+(r.s?"NaN":"-Infinity"));return r.eq(Nr)?new n(0):(Xe=!1,t=ia(hc(r,i),hc(e,i),i),Xe=!0,Re(t,a))};Z.minus=Z.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?l2(t,e):o2(t,(e.s=-e.s,e))};Z.modulo=Z.mod=function(e){var t,r=this,n=r.constructor,a=n.precision;if(e=new n(e),!e.s)throw Error(Qr+"NaN");return r.s?(Xe=!1,t=ia(r,e,0,1).times(e),Xe=!0,r.minus(t)):Re(new n(r),a)};Z.naturalExponential=Z.exp=function(){return s2(this)};Z.naturalLogarithm=Z.ln=function(){return hc(this)};Z.negated=Z.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Z.plus=Z.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?o2(t,e):l2(t,(e.s=-e.s,e))};Z.precision=Z.sd=function(e){var t,r,n,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(so+e);if(t=gt(a)+1,n=a.d.length-1,r=n*qe+1,n=a.d[n],n){for(;n%10==0;n/=10)r--;for(n=a.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};Z.squareRoot=Z.sqrt=function(){var e,t,r,n,a,i,o,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(Qr+"NaN")}for(e=gt(s),Xe=!1,a=Math.sqrt(+s),a==0||a==1/0?(t=Tn(s.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Cl((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new l(t)):n=new l(a.toString()),r=l.precision,a=o=r+3;;)if(i=n,n=i.plus(ia(s,i,o+2)).times(.5),Tn(i.d).slice(0,o)===(t=Tn(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),a==o&&t=="4999"){if(Re(i,r+1,0),i.times(i).eq(s)){n=i;break}}else if(t!="9999")break;o+=4}return Xe=!0,Re(n,r)};Z.times=Z.mul=function(e){var t,r,n,a,i,o,s,l,u,f=this,d=f.constructor,h=f.d,p=(e=new d(e)).d;if(!f.s||!e.s)return new d(0);for(e.s*=f.s,r=f.e+e.e,l=h.length,u=p.length,l=0;){for(t=0,a=l+n;a>n;)s=i[a]+p[n]*h[a-n-1]+t,i[a--]=s%Et|0,t=s/Et|0;i[a]=(i[a]+t)%Et|0}for(;!i[--o];)i.pop();return t?++r:i.shift(),e.d=i,e.e=r,Xe?Re(e,d.precision):e};Z.toDecimalPlaces=Z.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(Ln(e,0,Tl),t===void 0?t=n.rounding:Ln(t,0,8),Re(r,e+gt(r)+1,t))};Z.toExponential=function(e,t){var r,n=this,a=n.constructor;return e===void 0?r=bo(n,!0):(Ln(e,0,Tl),t===void 0?t=a.rounding:Ln(t,0,8),n=Re(new a(n),e+1,t),r=bo(n,!0,e+1)),r};Z.toFixed=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?bo(a):(Ln(e,0,Tl),t===void 0?t=i.rounding:Ln(t,0,8),n=Re(new i(a),e+gt(a)+1,t),r=bo(n.abs(),!1,e+gt(n)+1),a.isneg()&&!a.isZero()?"-"+r:r)};Z.toInteger=Z.toint=function(){var e=this,t=e.constructor;return Re(new t(e),gt(e)+1,t.rounding)};Z.toNumber=function(){return+this};Z.toPower=Z.pow=function(e){var t,r,n,a,i,o,s=this,l=s.constructor,u=12,f=+(e=new l(e));if(!e.s)return new l(Nr);if(s=new l(s),!s.s){if(e.s<1)throw Error(Qr+"Infinity");return s}if(s.eq(Nr))return s;if(n=l.precision,e.eq(Nr))return Re(s,n);if(t=e.e,r=e.d.length-1,o=t>=r,i=s.s,o){if((r=f<0?-f:f)<=i2){for(a=new l(Nr),t=Math.ceil(n/qe+4),Xe=!1;r%2&&(a=a.times(s),VO(a.d,t)),r=Cl(r/2),r!==0;)s=s.times(s),VO(s.d,t);return Xe=!0,e.s<0?new l(Nr).div(a):Re(a,n)}}else if(i<0)throw Error(Qr+"NaN");return i=i<0&&e.d[Math.max(t,r)]&1?-1:1,s.s=1,Xe=!1,a=e.times(hc(s,n+u)),Xe=!0,a=s2(a),a.s=i,a};Z.toPrecision=function(e,t){var r,n,a=this,i=a.constructor;return e===void 0?(r=gt(a),n=bo(a,r<=i.toExpNeg||r>=i.toExpPos)):(Ln(e,1,Tl),t===void 0?t=i.rounding:Ln(t,0,8),a=Re(new i(a),e,t),r=gt(a),n=bo(a,e<=r||r<=i.toExpNeg,e)),n};Z.toSignificantDigits=Z.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(Ln(e,1,Tl),t===void 0?t=n.rounding:Ln(t,0,8)),Re(new n(r),e,t)};Z.toString=Z.valueOf=Z.val=Z.toJSON=Z[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gt(e),r=e.constructor;return bo(e,t<=r.toExpNeg||t>=r.toExpPos)};function o2(e,t){var r,n,a,i,o,s,l,u,f=e.constructor,d=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),Xe?Re(t,d):t;if(l=e.d,u=t.d,o=e.e,a=t.e,l=l.slice(),i=o-a,i){for(i<0?(n=l,i=-i,s=u.length):(n=u,a=o,s=l.length),o=Math.ceil(d/qe),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=l.length,i=u.length,s-i<0&&(i=s,n=u,u=l,l=n),r=0;i;)r=(l[--i]=l[i]+u[i]+r)/Et|0,l[i]%=Et;for(r&&(l.unshift(r),++a),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=a,Xe?Re(t,d):t}function Ln(e,t,r){if(e!==~~e||er)throw Error(so+e)}function Tn(e){var t,r,n,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;to?1:-1;else for(s=l=0;sa[s]?1:-1;break}return l}function r(n,a,i){for(var o=0;i--;)n[i]-=o,o=n[i]1;)n.shift()}return function(n,a,i,o){var s,l,u,f,d,h,p,g,m,y,x,v,b,S,w,O,j,P,A=n.constructor,_=n.s==a.s?1:-1,E=n.d,k=a.d;if(!n.s)return new A(n);if(!a.s)throw Error(Qr+"Division by zero");for(l=n.e-a.e,j=k.length,w=E.length,p=new A(_),g=p.d=[],u=0;k[u]==(E[u]||0);)++u;if(k[u]>(E[u]||0)&&--l,i==null?v=i=A.precision:o?v=i+(gt(n)-gt(a))+1:v=i,v<0)return new A(0);if(v=v/qe+2|0,u=0,j==1)for(f=0,k=k[0],v++;(u1&&(k=e(k,f),E=e(E,f),j=k.length,w=E.length),S=j,m=E.slice(0,j),y=m.length;y=Et/2&&++O;do f=0,s=t(k,m,j,y),s<0?(x=m[0],j!=y&&(x=x*Et+(m[1]||0)),f=x/O|0,f>1?(f>=Et&&(f=Et-1),d=e(k,f),h=d.length,y=m.length,s=t(d,m,h,y),s==1&&(f--,r(d,j16)throw Error(fw+gt(e));if(!e.s)return new f(Nr);for(Xe=!1,s=d,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),u+=5;for(n=Math.log(Ri(2,u))/Math.LN10*2+5|0,s+=n,r=a=i=new f(Nr),f.precision=s;;){if(a=Re(a.times(e),s),r=r.times(++l),o=i.plus(ia(a,r,s)),Tn(o.d).slice(0,s)===Tn(i.d).slice(0,s)){for(;u--;)i=Re(i.times(i),s);return f.precision=d,t==null?(Xe=!0,Re(i,d)):i}i=o}}function gt(e){for(var t=e.e*qe,r=e.d[0];r>=10;r/=10)t++;return t}function Fg(e,t,r){if(t>e.LN10.sd())throw Xe=!0,r&&(e.precision=r),Error(Qr+"LN10 precision limit exceeded");return Re(new e(e.LN10),t)}function Da(e){for(var t="";e--;)t+="0";return t}function hc(e,t){var r,n,a,i,o,s,l,u,f,d=1,h=10,p=e,g=p.d,m=p.constructor,y=m.precision;if(p.s<1)throw Error(Qr+(p.s?"NaN":"-Infinity"));if(p.eq(Nr))return new m(0);if(t==null?(Xe=!1,u=y):u=t,p.eq(10))return t==null&&(Xe=!0),Fg(m,u);if(u+=h,m.precision=u,r=Tn(g),n=r.charAt(0),i=gt(p),Math.abs(i)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)p=p.times(e),r=Tn(p.d),n=r.charAt(0),d++;i=gt(p),n>1?(p=new m("0."+r),i++):p=new m(n+"."+r.slice(1))}else return l=Fg(m,u+2,y).times(i+""),p=hc(new m(n+"."+r.slice(1)),u-h).plus(l),m.precision=y,t==null?(Xe=!0,Re(p,y)):p;for(s=o=p=ia(p.minus(Nr),p.plus(Nr),u),f=Re(p.times(p),u),a=3;;){if(o=Re(o.times(f),u),l=s.plus(ia(o,new m(a),u)),Tn(l.d).slice(0,u)===Tn(s.d).slice(0,u))return s=s.times(2),i!==0&&(s=s.plus(Fg(m,u+2,y).times(i+""))),s=ia(s,new m(d),u),m.precision=y,t==null?(Xe=!0,Re(s,y)):s;s=l,a+=2}}function HO(e,t){var r,n,a;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(n,a),t){if(a-=n,r=r-n-1,e.e=Cl(r/qe),e.d=[],n=(r+1)%qe,r<0&&(n+=qe),nTh||e.e<-Th))throw Error(fw+r)}else e.s=0,e.e=0,e.d=[0];return e}function Re(e,t,r){var n,a,i,o,s,l,u,f,d=e.d;for(o=1,i=d[0];i>=10;i/=10)o++;if(n=t-o,n<0)n+=qe,a=t,u=d[f=0];else{if(f=Math.ceil((n+1)/qe),i=d.length,f>=i)return e;for(u=i=d[f],o=1;i>=10;i/=10)o++;n%=qe,a=n-qe+o}if(r!==void 0&&(i=Ri(10,o-a-1),s=u/i%10|0,l=t<0||d[f+1]!==void 0||u%i,l=r<4?(s||l)&&(r==0||r==(e.s<0?3:2)):s>5||s==5&&(r==4||l||r==6&&(n>0?a>0?u/Ri(10,o-a):0:d[f-1])%10&1||r==(e.s<0?8:7))),t<1||!d[0])return l?(i=gt(e),d.length=1,t=t-i-1,d[0]=Ri(10,(qe-t%qe)%qe),e.e=Cl(-t/qe)||0):(d.length=1,d[0]=e.e=e.s=0),e;if(n==0?(d.length=f,i=1,f--):(d.length=f+1,i=Ri(10,qe-n),d[f]=a>0?(u/Ri(10,o-a)%Ri(10,a)|0)*i:0),l)for(;;)if(f==0){(d[0]+=i)==Et&&(d[0]=1,++e.e);break}else{if(d[f]+=i,d[f]!=Et)break;d[f--]=0,i=1}for(n=d.length;d[--n]===0;)d.pop();if(Xe&&(e.e>Th||e.e<-Th))throw Error(fw+gt(e));return e}function l2(e,t){var r,n,a,i,o,s,l,u,f,d,h=e.constructor,p=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),Xe?Re(t,p):t;if(l=e.d,d=t.d,n=t.e,u=e.e,l=l.slice(),o=u-n,o){for(f=o<0,f?(r=l,o=-o,s=d.length):(r=d,n=u,s=l.length),a=Math.max(Math.ceil(p/qe),s)+2,o>a&&(o=a,r.length=1),r.reverse(),a=o;a--;)r.push(0);r.reverse()}else{for(a=l.length,s=d.length,f=a0;--a)l[s++]=0;for(a=d.length;a>o;){if(l[--a]0?i=i.charAt(0)+"."+i.slice(1)+Da(n):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+Da(-a-1)+i,r&&(n=r-o)>0&&(i+=Da(n))):a>=o?(i+=Da(a+1-o),r&&(n=r-a-1)>0&&(i=i+"."+Da(n))):((n=a+1)0&&(a+1===o&&(i+="."),i+=Da(n))),e.s<0?"-"+i:i}function VO(e,t){if(e.length>t)return e.length=t,!0}function u2(e){var t,r,n;function a(i){var o=this;if(!(o instanceof a))return new a(i);if(o.constructor=a,i instanceof a){o.s=i.s,o.e=i.e,o.d=(i=i.d)?i.slice():i;return}if(typeof i=="number"){if(i*0!==0)throw Error(so+i);if(i>0)o.s=1;else if(i<0)i=-i,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(i===~~i&&i<1e7){o.e=0,o.d=[i];return}return HO(o,i.toString())}else if(typeof i!="string")throw Error(so+i);if(i.charCodeAt(0)===45?(i=i.slice(1),o.s=-1):o.s=1,nte.test(i))HO(o,i);else throw Error(so+i)}if(a.prototype=Z,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=u2,a.config=a.set=ate,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&n<=a[t+2])this[r]=n;else throw Error(so+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(so+r+": "+n);return this}var dw=u2(rte);Nr=new dw(1);const De=dw;function ite(e){return ute(e)||lte(e)||ste(e)||ote()}function ote(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ste(e,t){if(e){if(typeof e=="string")return fx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return fx(e,t)}}function lte(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function ute(e){if(Array.isArray(e))return fx(e)}function fx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t?r.apply(void 0,a):e(t-o,GO(function(){for(var s=arguments.length,l=new Array(s),u=0;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,a=!1,i=void 0;try{for(var o=e[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(r.push(s.value),!(t&&r.length===t));n=!0);}catch(l){a=!0,i=l}finally{try{!n&&o.return!=null&&o.return()}finally{if(a)throw i}}return r}}function Ote(e){if(Array.isArray(e))return e}function p2(e){var t=pc(e,2),r=t[0],n=t[1],a=r,i=n;return r>n&&(a=n,i=r),[a,i]}function m2(e,t,r){if(e.lte(0))return new De(0);var n=mm.getDigitCount(e.toNumber()),a=new De(10).pow(n),i=e.div(a),o=n!==1?.05:.1,s=new De(Math.ceil(i.div(o).toNumber())).add(r).mul(o),l=s.mul(a);return t?l:new De(Math.ceil(l))}function Nte(e,t,r){var n=1,a=new De(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(n=new De(10).pow(mm.getDigitCount(e)-1),a=new De(Math.floor(a.div(n).toNumber())).mul(n)):i>1&&(a=new De(Math.floor(e)))}else e===0?a=new De(Math.floor((t-1)/2)):r||(a=new De(Math.floor(e)));var o=Math.floor((t-1)/2),s=hte(dte(function(l){return a.add(new De(l-o).mul(n)).toNumber()}),dx);return s(0,t)}function g2(e,t,r,n){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new De(0),tickMin:new De(0),tickMax:new De(0)};var i=m2(new De(t).sub(e).div(r-1),n,a),o;e<=0&&t>=0?o=new De(0):(o=new De(e).add(t).div(2),o=o.sub(new De(o).mod(i)));var s=Math.ceil(o.sub(e).div(i).toNumber()),l=Math.ceil(new De(t).sub(o).div(i).toNumber()),u=s+l+1;return u>r?g2(e,t,r,n,a+1):(u0?l+(r-u):l,s=t>0?s:s+(r-u)),{step:i,tickMin:o.sub(new De(s).mul(i)),tickMax:o.add(new De(l).mul(i))})}function Pte(e){var t=pc(e,2),r=t[0],n=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(a,2),s=p2([r,n]),l=pc(s,2),u=l[0],f=l[1];if(u===-1/0||f===1/0){var d=f===1/0?[u].concat(px(dx(0,a-1).map(function(){return 1/0}))):[].concat(px(dx(0,a-1).map(function(){return-1/0})),[f]);return r>n?hx(d):d}if(u===f)return Nte(u,a,i);var h=g2(u,f,o,i),p=h.step,g=h.tickMin,m=h.tickMax,y=mm.rangeStep(g,m.add(new De(.1).mul(p)),p);return r>n?hx(y):y}function Ate(e,t){var r=pc(e,2),n=r[0],a=r[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=p2([n,a]),s=pc(o,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[n,a];if(l===u)return[l];var f=Math.max(t,2),d=m2(new De(u).sub(l).div(f-1),i,0),h=[].concat(px(mm.rangeStep(new De(l),new De(u).sub(new De(.99).mul(d)),d)),[u]);return n>a?hx(h):h}var kte=d2(Pte),Ete=d2(Ate),_te="Invariant failed";function wo(e,t){throw new Error(_te)}var Tte=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Vs(e){"@babel/helpers - typeof";return Vs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vs(e)}function Ch(){return Ch=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Lte(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Fte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zte(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=-1,s=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(s<=1)return 0;if(i&&i.axisType==="angleAxis"&&Math.abs(Math.abs(i.range[1]-i.range[0])-360)<=1e-6)for(var l=i.range,u=0;u0?a[u-1].coordinate:a[s-1].coordinate,d=a[u].coordinate,h=u>=s-1?a[0].coordinate:a[u+1].coordinate,p=void 0;if(Jt(d-f)!==Jt(h-d)){var g=[];if(Jt(h-d)===Jt(l[1]-l[0])){p=h;var m=d+l[1]-l[0];g[0]=Math.min(m,(m+f)/2),g[1]=Math.max(m,(m+f)/2)}else{p=f;var y=h+l[1]-l[0];g[0]=Math.min(d,(y+d)/2),g[1]=Math.max(d,(y+d)/2)}var x=[Math.min(d,(p+d)/2),Math.max(d,(p+d)/2)];if(t>x[0]&&t<=x[1]||t>=g[0]&&t<=g[1]){o=a[u].index;break}}else{var v=Math.min(f,h),b=Math.max(f,h);if(t>(v+d)/2&&t<=(b+d)/2){o=a[u].index;break}}}else for(var S=0;S0&&S(n[S].coordinate+n[S-1].coordinate)/2&&t<=(n[S].coordinate+n[S+1].coordinate)/2||S===s-1&&t>(n[S].coordinate+n[S-1].coordinate)/2){o=n[S].index;break}return o},hw=function(t){var r,n=t,a=n.type.displayName,i=(r=t.type)!==null&&r!==void 0&&r.defaultProps?st(st({},t.type.defaultProps),t.props):t.props,o=i.stroke,s=i.fill,l;switch(a){case"Line":l=o;break;case"Area":case"Radar":l=o&&o!=="none"?o:s;break;default:l=s;break}return l},nre=function(t){var r=t.barSize,n=t.totalSize,a=t.stackGroups,i=a===void 0?{}:a;if(!i)return{};for(var o={},s=Object.keys(i),l=0,u=s.length;l=0});if(x&&x.length){var v=x[0].type.defaultProps,b=v!==void 0?st(st({},v),x[0].props):x[0].props,S=b.barSize,w=b[y];o[w]||(o[w]=[]);var O=se(S)?r:S;o[w].push({item:x[0],stackList:x.slice(1),barSize:se(O)?void 0:Zt(O,n,0)})}}return o},are=function(t){var r=t.barGap,n=t.barCategoryGap,a=t.bandSize,i=t.sizeList,o=i===void 0?[]:i,s=t.maxBarSize,l=o.length;if(l<1)return null;var u=Zt(r,a,0,!0),f,d=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=a/l,g=o.reduce(function(S,w){return S+w.barSize||0},0);g+=(l-1)*u,g>=a&&(g-=(l-1)*u,u=0),g>=a&&p>0&&(h=!0,p*=.9,g=l*p);var m=(a-g)/2>>0,y={offset:m-u,size:0};f=o.reduce(function(S,w){var O={item:w.item,position:{offset:y.offset+y.size+u,size:h?p:w.barSize}},j=[].concat(QO(S),[O]);return y=j[j.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(P){j.push({item:P,position:y})}),j},d)}else{var x=Zt(n,a,0,!0);a-2*x-(l-1)*u<=0&&(u=0);var v=(a-2*x-(l-1)*u)/l;v>1&&(v>>=0);var b=s===+s?Math.min(v,s):v;f=o.reduce(function(S,w,O){var j=[].concat(QO(S),[{item:w.item,position:{offset:x+(v+u)*O+(v-b)/2,size:b}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(P){j.push({item:P,position:j[j.length-1].position})}),j},d)}return f},ire=function(t,r,n,a){var i=n.children,o=n.width,s=n.margin,l=o-(s.left||0)-(s.right||0),u=b2({children:i,legendWidth:l});if(u){var f=a||{},d=f.width,h=f.height,p=u.align,g=u.verticalAlign,m=u.layout;if((m==="vertical"||m==="horizontal"&&g==="middle")&&p!=="center"&&G(t[p]))return st(st({},t),{},vs({},p,t[p]+(d||0)));if((m==="horizontal"||m==="vertical"&&p==="center")&&g!=="middle"&&G(t[g]))return st(st({},t),{},vs({},g,t[g]+(h||0)))}return t},ore=function(t,r,n){return se(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},w2=function(t,r,n,a,i){var o=r.props.children,s=rr(o,$l).filter(function(u){return ore(a,i,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var d=Je(f,n);if(se(d))return u;var h=Array.isArray(d)?[hm(d),dm(d)]:[d,d],p=l.reduce(function(g,m){var y=Je(f,m,0),x=h[0]-Math.abs(Array.isArray(y)?y[0]:y),v=h[1]+Math.abs(Array.isArray(y)?y[1]:y);return[Math.min(x,g[0]),Math.max(v,g[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},sre=function(t,r,n,a,i){var o=r.map(function(s){return w2(t,s,n,i,a)}).filter(function(s){return!se(s)});return o&&o.length?o.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},S2=function(t,r,n,a,i){var o=r.map(function(l){var u=l.props.dataKey;return n==="number"&&u&&w2(t,l,u,a)||Nu(t,u,n,i)});if(n==="number")return o.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return o.reduce(function(l,u){for(var f=0,d=u.length;f=2?Jt(s[0]-s[1])*2*u:u,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(d){var h=i?i.indexOf(d):d;return{coordinate:a(h)+u,value:d,offset:u}});return f.filter(function(d){return!of(d.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(d,h){return{coordinate:a(d)+u,value:d,index:h,offset:u}}):a.ticks&&!n?a.ticks(t.tickCount).map(function(d){return{coordinate:a(d)+u,value:d,offset:u}}):a.domain().map(function(d,h){return{coordinate:a(d)+u,value:i?i[d]:d,index:h,offset:u}})},zg=new WeakMap,Yf=function(t,r){if(typeof r!="function")return t;zg.has(t)||zg.set(t,new WeakMap);var n=zg.get(t);if(n.has(r))return n.get(r);var a=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,a),a},N2=function(t,r,n){var a=t.scale,i=t.type,o=t.layout,s=t.axisType;if(a==="auto")return o==="radial"&&s==="radiusAxis"?{scale:lc(),realScaleType:"band"}:o==="radial"&&s==="angleAxis"?{scale:Ah(),realScaleType:"linear"}:i==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:Ou(),realScaleType:"point"}:i==="category"?{scale:lc(),realScaleType:"band"}:{scale:Ah(),realScaleType:"linear"};if(yo(a)){var l="scale".concat(Qp(a));return{scale:(qO[l]||Ou)(),realScaleType:qO[l]?l:"point"}}return le(a)?{scale:a}:{scale:Ou(),realScaleType:"point"}},ZO=1e-4,P2=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,a=t.range(),i=Math.min(a[0],a[1])-ZO,o=Math.max(a[0],a[1])+ZO,s=t(r[0]),l=t(r[n-1]);(so||lo)&&t.domain([r[0],r[n-1]])}},lre=function(t,r){if(!t)return null;for(var n=0,a=t.length;na)&&(i[1]=a),i[0]>a&&(i[0]=a),i[1]=0?(t[s][n][0]=i,t[s][n][1]=i+l,i=t[s][n][1]):(t[s][n][0]=o,t[s][n][1]=o+l,o=t[s][n][1])}},fre=function(t){var r=t.length;if(!(r<=0))for(var n=0,a=t[0].length;n=0?(t[o][n][0]=i,t[o][n][1]=i+s,i=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},dre={sign:cre,expand:T7,none:Fs,silhouette:C7,wiggle:$7,positive:fre},hre=function(t,r,n){var a=r.map(function(s){return s.props.dataKey}),i=dre[n],o=_7().keys(a).value(function(s,l){return+Je(s,l,0)}).order(Uy).offset(i);return o(t)},pre=function(t,r,n,a,i,o){if(!t)return null;var s=o?r.reverse():r,l={},u=s.reduce(function(d,h){var p,g=(p=h.type)!==null&&p!==void 0&&p.defaultProps?st(st({},h.type.defaultProps),h.props):h.props,m=g.stackId,y=g.hide;if(y)return d;var x=g[n],v=d[x]||{hasStack:!1,stackGroups:{}};if(Ot(m)){var b=v.stackGroups[m]||{numericAxisId:n,cateAxisId:a,items:[]};b.items.push(h),v.hasStack=!0,v.stackGroups[m]=b}else v.stackGroups[Eo("_stackId_")]={numericAxisId:n,cateAxisId:a,items:[h]};return st(st({},d),{},vs({},x,v))},l),f={};return Object.keys(u).reduce(function(d,h){var p=u[h];if(p.hasStack){var g={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(m,y){var x=p.stackGroups[y];return st(st({},m),{},vs({},y,{numericAxisId:n,cateAxisId:a,items:x.items,stackedData:hre(t,x.items,i)}))},g)}return st(st({},d),{},vs({},h,p))},f)},A2=function(t,r){var n=r.realScaleType,a=r.type,i=r.tickCount,o=r.originalDomain,s=r.allowDecimals,l=n||r.scale;if(l!=="auto"&&l!=="linear")return null;if(i&&a==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=kte(u,i,s);return t.domain([hm(f),dm(f)]),{niceTicks:f}}if(i&&a==="number"){var d=t.domain(),h=Ete(d,i,s);return{niceTicks:h}}return null};function Mh(e){var t=e.axis,r=e.ticks,n=e.bandSize,a=e.entry,i=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!se(a[t.dataKey])){var s=oh(r,"value",a[t.dataKey]);if(s)return s.coordinate+n/2}return r[i]?r[i].coordinate+n/2:null}var l=Je(a,se(o)?t.dataKey:o);return se(l)?null:t.scale(l)}var eN=function(t){var r=t.axis,n=t.ticks,a=t.offset,i=t.bandSize,o=t.entry,s=t.index;if(r.type==="category")return n[s]?n[s].coordinate+a:null;var l=Je(o,r.dataKey,r.domain[s]);return se(l)?null:r.scale(l)-i/2+a},mre=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var a=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return a<=0&&i>=0?0:i<0?i:a}return n[0]},gre=function(t,r){var n,a=(n=t.type)!==null&&n!==void 0&&n.defaultProps?st(st({},t.type.defaultProps),t.props):t.props,i=a.stackId;if(Ot(i)){var o=r[i];if(o){var s=o.items.indexOf(t);return s>=0?o.stackedData[s]:null}}return null},vre=function(t){return t.reduce(function(r,n){return[hm(n.concat([r[0]]).filter(G)),dm(n.concat([r[1]]).filter(G))]},[1/0,-1/0])},k2=function(t,r,n){return Object.keys(t).reduce(function(a,i){var o=t[i],s=o.stackedData,l=s.reduce(function(u,f){var d=vre(f.slice(r,n+1));return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],a[0]),Math.max(l[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},tN=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rN=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,yx=function(t,r,n){if(le(t))return t(r,n);if(!Array.isArray(t))return r;var a=[];if(G(t[0]))a[0]=n?t[0]:Math.min(t[0],r[0]);else if(tN.test(t[0])){var i=+tN.exec(t[0])[1];a[0]=r[0]-i}else le(t[0])?a[0]=t[0](r[0]):a[0]=r[0];if(G(t[1]))a[1]=n?t[1]:Math.max(t[1],r[1]);else if(rN.test(t[1])){var o=+rN.exec(t[1])[1];a[1]=r[1]+o}else le(t[1])?a[1]=t[1](r[1]):a[1]=r[1];return a},Ih=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!n||a>0)return a}if(t&&r&&r.length>=2){for(var i=Bb(r,function(d){return d.coordinate}),o=1/0,s=1,l=i.length;se.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},Pre=function(t,r,n,a,i){var o=t.width,s=t.height,l=t.startAngle,u=t.endAngle,f=Zt(t.cx,o,o/2),d=Zt(t.cy,s,s/2),h=T2(o,s,n),p=Zt(t.innerRadius,h,0),g=Zt(t.outerRadius,h,h*.8),m=Object.keys(r);return m.reduce(function(y,x){var v=r[x],b=v.domain,S=v.reversed,w;if(se(v.range))a==="angleAxis"?w=[l,u]:a==="radiusAxis"&&(w=[p,g]),S&&(w=[w[1],w[0]]);else{w=v.range;var O=w,j=bre(O,2);l=j[0],u=j[1]}var P=N2(v,i),A=P.realScaleType,_=P.scale;_.domain(b).range(w),P2(_);var E=A2(_,Hn(Hn({},v),{},{realScaleType:A})),k=Hn(Hn(Hn({},v),E),{},{range:w,radius:g,realScaleType:A,scale:_,cx:f,cy:d,innerRadius:p,outerRadius:g,startAngle:l,endAngle:u});return Hn(Hn({},y),{},_2({},x,k))},{})},Are=function(t,r){var n=t.x,a=t.y,i=r.x,o=r.y;return Math.sqrt(Math.pow(n-i,2)+Math.pow(a-o,2))},kre=function(t,r){var n=t.x,a=t.y,i=r.cx,o=r.cy,s=Are({x:n,y:a},{x:i,y:o});if(s<=0)return{radius:s};var l=(n-i)/s,u=Math.acos(l);return a>o&&(u=2*Math.PI-u),{radius:s,angle:Nre(u),angleInRadian:u}},Ere=function(t){var r=t.startAngle,n=t.endAngle,a=Math.floor(r/360),i=Math.floor(n/360),o=Math.min(a,i);return{startAngle:r-o*360,endAngle:n-o*360}},_re=function(t,r){var n=r.startAngle,a=r.endAngle,i=Math.floor(n/360),o=Math.floor(a/360),s=Math.min(i,o);return t+s*360},oN=function(t,r){var n=t.x,a=t.y,i=kre({x:n,y:a},r),o=i.radius,s=i.angle,l=r.innerRadius,u=r.outerRadius;if(ou)return!1;if(o===0)return!0;var f=Ere(r),d=f.startAngle,h=f.endAngle,p=s,g;if(d<=h){for(;p>h;)p-=360;for(;p=d&&p<=h}else{for(;p>d;)p-=360;for(;p=h&&p<=d}return g?Hn(Hn({},r),{},{radius:o,angle:_re(p,r)}):null},C2=function(t){return!N.isValidElement(t)&&!le(t)&&typeof t!="boolean"?t.className:""};function yc(e){"@babel/helpers - typeof";return yc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yc(e)}var Tre=["offset"];function Cre(e){return Dre(e)||Ire(e)||Mre(e)||$re()}function $re(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mre(e,t){if(e){if(typeof e=="string")return xx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xx(e,t)}}function Ire(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Dre(e){if(Array.isArray(e))return xx(e)}function xx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Lre(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function sN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function bt(e){for(var t=1;t=0?1:-1,b,S;a==="insideStart"?(b=p+v*o,S=m):a==="insideEnd"?(b=g-v*o,S=!m):a==="end"&&(b=g+v*o,S=m),S=x<=0?S:!S;var w=Ue(u,f,y,b),O=Ue(u,f,y,b+(S?1:-1)*359),j="M".concat(w.x,",").concat(w.y,` + A`).concat(y,",").concat(y,",0,1,").concat(S?0:1,`, + `).concat(O.x,",").concat(O.y),P=se(t.id)?Eo("recharts-radial-line-"):t.id;return $.createElement("text",xc({},n,{dominantBaseline:"central",className:fe("recharts-radial-bar-label",s)}),$.createElement("defs",null,$.createElement("path",{id:P,d:j})),$.createElement("textPath",{xlinkHref:"#".concat(P)},r))},qre=function(t){var r=t.viewBox,n=t.offset,a=t.position,i=r,o=i.cx,s=i.cy,l=i.innerRadius,u=i.outerRadius,f=i.startAngle,d=i.endAngle,h=(f+d)/2;if(a==="outside"){var p=Ue(o,s,u+n,h),g=p.x,m=p.y;return{x:g,y:m,textAnchor:g>=o?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"end"};var y=(l+u)/2,x=Ue(o,s,y,h),v=x.x,b=x.y;return{x:v,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Hre=function(t){var r=t.viewBox,n=t.parentViewBox,a=t.offset,i=t.position,o=r,s=o.x,l=o.y,u=o.width,f=o.height,d=f>=0?1:-1,h=d*a,p=d>0?"end":"start",g=d>0?"start":"end",m=u>=0?1:-1,y=m*a,x=m>0?"end":"start",v=m>0?"start":"end";if(i==="top"){var b={x:s+u/2,y:l-d*a,textAnchor:"middle",verticalAnchor:p};return bt(bt({},b),n?{height:Math.max(l-n.y,0),width:u}:{})}if(i==="bottom"){var S={x:s+u/2,y:l+f+h,textAnchor:"middle",verticalAnchor:g};return bt(bt({},S),n?{height:Math.max(n.y+n.height-(l+f),0),width:u}:{})}if(i==="left"){var w={x:s-y,y:l+f/2,textAnchor:x,verticalAnchor:"middle"};return bt(bt({},w),n?{width:Math.max(w.x-n.x,0),height:f}:{})}if(i==="right"){var O={x:s+u+y,y:l+f/2,textAnchor:v,verticalAnchor:"middle"};return bt(bt({},O),n?{width:Math.max(n.x+n.width-O.x,0),height:f}:{})}var j=n?{width:u,height:f}:{};return i==="insideLeft"?bt({x:s+y,y:l+f/2,textAnchor:v,verticalAnchor:"middle"},j):i==="insideRight"?bt({x:s+u-y,y:l+f/2,textAnchor:x,verticalAnchor:"middle"},j):i==="insideTop"?bt({x:s+u/2,y:l+h,textAnchor:"middle",verticalAnchor:g},j):i==="insideBottom"?bt({x:s+u/2,y:l+f-h,textAnchor:"middle",verticalAnchor:p},j):i==="insideTopLeft"?bt({x:s+y,y:l+h,textAnchor:v,verticalAnchor:g},j):i==="insideTopRight"?bt({x:s+u-y,y:l+h,textAnchor:x,verticalAnchor:g},j):i==="insideBottomLeft"?bt({x:s+y,y:l+f-h,textAnchor:v,verticalAnchor:p},j):i==="insideBottomRight"?bt({x:s+u-y,y:l+f-h,textAnchor:x,verticalAnchor:p},j):Sl(i)&&(G(i.x)||Ki(i.x))&&(G(i.y)||Ki(i.y))?bt({x:s+Zt(i.x,u),y:l+Zt(i.y,f),textAnchor:"end",verticalAnchor:"end"},j):bt({x:s+u/2,y:l+f/2,textAnchor:"middle",verticalAnchor:"middle"},j)},Vre=function(t){return"cx"in t&&G(t.cx)};function Tt(e){var t=e.offset,r=t===void 0?5:t,n=Rre(e,Tre),a=bt({offset:r},n),i=a.viewBox,o=a.position,s=a.value,l=a.children,u=a.content,f=a.className,d=f===void 0?"":f,h=a.textBreakAll;if(!i||se(s)&&se(l)&&!N.isValidElement(u)&&!le(u))return null;if(N.isValidElement(u))return N.cloneElement(u,a);var p;if(le(u)){if(p=N.createElement(u,a),N.isValidElement(p))return p}else p=Ure(a);var g=Vre(i),m=ae(a,!0);if(g&&(o==="insideStart"||o==="insideEnd"||o==="end"))return Kre(a,p,m);var y=g?qre(a):Hre(a);return $.createElement(xo,xc({className:fe("recharts-label",d)},m,y,{breakAll:h}),p)}Tt.displayName="Label";var $2=function(t){var r=t.cx,n=t.cy,a=t.angle,i=t.startAngle,o=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,f=t.outerRadius,d=t.x,h=t.y,p=t.top,g=t.left,m=t.width,y=t.height,x=t.clockWise,v=t.labelViewBox;if(v)return v;if(G(m)&&G(y)){if(G(d)&&G(h))return{x:d,y:h,width:m,height:y};if(G(p)&&G(g))return{x:p,y:g,width:m,height:y}}return G(d)&&G(h)?{x:d,y:h,width:0,height:0}:G(r)&&G(n)?{cx:r,cy:n,startAngle:i||a||0,endAngle:o||a||0,innerRadius:u||0,outerRadius:f||l||s||0,clockWise:x}:t.viewBox?t.viewBox:{}},Gre=function(t,r){return t?t===!0?$.createElement(Tt,{key:"label-implicit",viewBox:r}):Ot(t)?$.createElement(Tt,{key:"label-implicit",viewBox:r,value:t}):N.isValidElement(t)?t.type===Tt?N.cloneElement(t,{key:"label-implicit",viewBox:r}):$.createElement(Tt,{key:"label-implicit",content:t,viewBox:r}):le(t)?$.createElement(Tt,{key:"label-implicit",content:t,viewBox:r}):Sl(t)?$.createElement(Tt,xc({viewBox:r},t,{key:"label-implicit"})):null:null},Yre=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var a=t.children,i=$2(t),o=rr(a,Tt).map(function(l,u){return N.cloneElement(l,{viewBox:r||i,key:"label-".concat(u)})});if(!n)return o;var s=Gre(t.label,r||i);return[s].concat(Cre(o))};Tt.parseViewBox=$2;Tt.renderCallByParent=Yre;function Xre(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Qre=Xre;const Jre=_e(Qre);function bc(e){"@babel/helpers - typeof";return bc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bc(e)}var Zre=["valueAccessor"],ene=["data","dataKey","clockWise","id","textBreakAll"];function tne(e){return ine(e)||ane(e)||nne(e)||rne()}function rne(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nne(e,t){if(e){if(typeof e=="string")return bx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return bx(e,t)}}function ane(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ine(e){if(Array.isArray(e))return bx(e)}function bx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function une(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var cne=function(t){return Array.isArray(t.value)?Jre(t.value):t.value};function Dn(e){var t=e.valueAccessor,r=t===void 0?cne:t,n=cN(e,Zre),a=n.data,i=n.dataKey,o=n.clockWise,s=n.id,l=n.textBreakAll,u=cN(n,ene);return!a||!a.length?null:$.createElement(xe,{className:"recharts-label-list"},a.map(function(f,d){var h=se(i)?r(f,d):Je(f&&f.payload,i),p=se(s)?{}:{id:"".concat(s,"-").concat(d)};return $.createElement(Tt,Rh({},ae(f,!0),u,p,{parentViewBox:f.parentViewBox,value:h,textBreakAll:l,viewBox:Tt.parseViewBox(se(o)?f:uN(uN({},f),{},{clockWise:o})),key:"label-".concat(d),index:d}))}))}Dn.displayName="LabelList";function fne(e,t){return e?e===!0?$.createElement(Dn,{key:"labelList-implicit",data:t}):$.isValidElement(e)||le(e)?$.createElement(Dn,{key:"labelList-implicit",data:t,content:e}):Sl(e)?$.createElement(Dn,Rh({data:t},e,{key:"labelList-implicit"})):null:null}function dne(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,a=rr(n,Dn).map(function(o,s){return N.cloneElement(o,{data:t,key:"labelList-".concat(s)})});if(!r)return a;var i=fne(e.label,t);return[i].concat(tne(a))}Dn.renderCallByParent=dne;function wc(e){"@babel/helpers - typeof";return wc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wc(e)}function wx(){return wx=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>u),`, + `).concat(d.x,",").concat(d.y,` + `);if(a>0){var p=Ue(r,n,a,o),g=Ue(r,n,a,u);h+="L ".concat(g.x,",").concat(g.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(l)>180),",").concat(+(o<=u),`, + `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(r,",").concat(n," Z");return h},vne=function(t){var r=t.cx,n=t.cy,a=t.innerRadius,i=t.outerRadius,o=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,d=Jt(f-u),h=Xf({cx:r,cy:n,radius:i,angle:u,sign:d,cornerRadius:o,cornerIsExternal:l}),p=h.circleTangency,g=h.lineTangency,m=h.theta,y=Xf({cx:r,cy:n,radius:i,angle:f,sign:-d,cornerRadius:o,cornerIsExternal:l}),x=y.circleTangency,v=y.lineTangency,b=y.theta,S=l?Math.abs(u-f):Math.abs(u-f)-m-b;if(S<0)return s?"M ".concat(g.x,",").concat(g.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):M2({cx:r,cy:n,innerRadius:a,outerRadius:i,startAngle:u,endAngle:f});var w="M ".concat(g.x,",").concat(g.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(p.x,",").concat(p.y,` + A`).concat(i,",").concat(i,",0,").concat(+(S>180),",").concat(+(d<0),",").concat(x.x,",").concat(x.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(v.x,",").concat(v.y,` + `);if(a>0){var O=Xf({cx:r,cy:n,radius:a,angle:u,sign:d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),j=O.circleTangency,P=O.lineTangency,A=O.theta,_=Xf({cx:r,cy:n,radius:a,angle:f,sign:-d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),E=_.circleTangency,k=_.lineTangency,R=_.theta,z=l?Math.abs(u-f):Math.abs(u-f)-A-R;if(z<0&&o===0)return"".concat(w,"L").concat(r,",").concat(n,"Z");w+="L".concat(k.x,",").concat(k.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(E.x,",").concat(E.y,` + A`).concat(a,",").concat(a,",0,").concat(+(z>180),",").concat(+(d>0),",").concat(j.x,",").concat(j.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(P.x,",").concat(P.y,"Z")}else w+="L".concat(r,",").concat(n,"Z");return w},yne={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},I2=function(t){var r=dN(dN({},yne),t),n=r.cx,a=r.cy,i=r.innerRadius,o=r.outerRadius,s=r.cornerRadius,l=r.forceCornerRadius,u=r.cornerIsExternal,f=r.startAngle,d=r.endAngle,h=r.className;if(o0&&Math.abs(f-d)<360?y=vne({cx:n,cy:a,innerRadius:i,outerRadius:o,cornerRadius:Math.min(m,g/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:f,endAngle:d}):y=M2({cx:n,cy:a,innerRadius:i,outerRadius:o,startAngle:f,endAngle:d}),$.createElement("path",wx({},ae(r,!0),{className:p,d:y,role:"img"}))};function Sc(e){"@babel/helpers - typeof";return Sc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sc(e)}function Sx(){return Sx=Object.assign?Object.assign.bind():function(e){for(var t=1;tTne.call(e,t));function Co(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const Mne="__v",Ine="__o",Dne="_owner",{getOwnPropertyDescriptor:vN,keys:yN}=Object;function Rne(e,t){return e.byteLength===t.byteLength&&Lh(new Uint8Array(e),new Uint8Array(t))}function Lne(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function Fne(e,t){return e.byteLength===t.byteLength&&Lh(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function zne(e,t){return Co(e.getTime(),t.getTime())}function Bne(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function Une(e,t){return e===t}function xN(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const a=new Array(n),i=e.entries();let o,s,l=0;for(;(o=i.next())&&!o.done;){const u=t.entries();let f=!1,d=0;for(;(s=u.next())&&!s.done;){if(a[d]){d++;continue}const h=o.value,p=s.value;if(r.equals(h[0],p[0],l,d,e,t,r)&&r.equals(h[1],p[1],h[0],p[0],e,t,r)){f=a[d]=!0;break}d++}if(!f)return!1;l++}return!0}const Wne=Co;function Kne(e,t,r){const n=yN(e);let a=n.length;if(yN(t).length!==a)return!1;for(;a-- >0;)if(!F2(e,t,r,n[a]))return!1;return!0}function au(e,t,r){const n=gN(e);let a=n.length;if(gN(t).length!==a)return!1;let i,o,s;for(;a-- >0;)if(i=n[a],!F2(e,t,r,i)||(o=vN(e,i),s=vN(t,i),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function qne(e,t){return Co(e.valueOf(),t.valueOf())}function Hne(e,t){return e.source===t.source&&e.flags===t.flags}function bN(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const a=new Array(n),i=e.values();let o,s;for(;(o=i.next())&&!o.done;){const l=t.values();let u=!1,f=0;for(;(s=l.next())&&!s.done;){if(!a[f]&&r.equals(o.value,s.value,o.value,s.value,e,t,r)){u=a[f]=!0;break}f++}if(!u)return!1}return!0}function Lh(e,t){let r=e.byteLength;if(t.byteLength!==r||e.byteOffset!==t.byteOffset)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function Vne(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function F2(e,t,r,n){return(n===Dne||n===Ine||n===Mne)&&(e.$$typeof||t.$$typeof)?!0:$ne(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const Gne="[object ArrayBuffer]",Yne="[object Arguments]",Xne="[object Boolean]",Qne="[object DataView]",Jne="[object Date]",Zne="[object Error]",eae="[object Map]",tae="[object Number]",rae="[object Object]",nae="[object RegExp]",aae="[object Set]",iae="[object String]",oae={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},sae="[object URL]",lae=Object.prototype.toString;function uae({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:a,areFunctionsEqual:i,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:l,arePrimitiveWrappersEqual:u,areRegExpsEqual:f,areSetsEqual:d,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:g}){return function(y,x,v){if(y===x)return!0;if(y==null||x==null)return!1;const b=typeof y;if(b!==typeof x)return!1;if(b!=="object")return b==="number"?s(y,x,v):b==="function"?i(y,x,v):!1;const S=y.constructor;if(S!==x.constructor)return!1;if(S===Object)return l(y,x,v);if(Array.isArray(y))return t(y,x,v);if(S===Date)return n(y,x,v);if(S===RegExp)return f(y,x,v);if(S===Map)return o(y,x,v);if(S===Set)return d(y,x,v);const w=lae.call(y);if(w===Jne)return n(y,x,v);if(w===nae)return f(y,x,v);if(w===eae)return o(y,x,v);if(w===aae)return d(y,x,v);if(w===rae)return typeof y.then!="function"&&typeof x.then!="function"&&l(y,x,v);if(w===sae)return p(y,x,v);if(w===Zne)return a(y,x,v);if(w===Yne)return l(y,x,v);if(oae[w])return h(y,x,v);if(w===Gne)return e(y,x,v);if(w===Qne)return r(y,x,v);if(w===Xne||w===tae||w===iae)return u(y,x,v);if(g){let O=g[w];if(!O){const j=Cne(y);j&&(O=g[j])}if(O)return O(y,x,v)}return!1}}function cae({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:Rne,areArraysEqual:r?au:Lne,areDataViewsEqual:Fne,areDatesEqual:zne,areErrorsEqual:Bne,areFunctionsEqual:Une,areMapsEqual:r?Bg(xN,au):xN,areNumbersEqual:Wne,areObjectsEqual:r?au:Kne,arePrimitiveWrappersEqual:qne,areRegExpsEqual:Hne,areSetsEqual:r?Bg(bN,au):bN,areTypedArraysEqual:r?Bg(Lh,au):Lh,areUrlsEqual:Vne,unknownTagComparators:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const a=Jf(n.areArraysEqual),i=Jf(n.areMapsEqual),o=Jf(n.areObjectsEqual),s=Jf(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:a,areMapsEqual:i,areObjectsEqual:o,areSetsEqual:s})}return n}function fae(e){return function(t,r,n,a,i,o,s){return e(t,r,s)}}function dae({circular:e,comparator:t,createState:r,equals:n,strict:a}){if(r)return function(s,l){const{cache:u=e?new WeakMap:void 0,meta:f}=r();return t(s,l,{cache:u,equals:n,meta:f,strict:a})};if(e)return function(s,l){return t(s,l,{cache:new WeakMap,equals:n,meta:void 0,strict:a})};const i={cache:void 0,equals:n,meta:void 0,strict:a};return function(s,l){return t(s,l,i)}}const hae=Oi();Oi({strict:!0});Oi({circular:!0});Oi({circular:!0,strict:!0});Oi({createInternalComparator:()=>Co});Oi({strict:!0,createInternalComparator:()=>Co});Oi({circular:!0,createInternalComparator:()=>Co});Oi({circular:!0,createInternalComparator:()=>Co,strict:!0});function Oi(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:a=!1}=e,i=cae(e),o=uae(i),s=r?r(o):fae(o);return dae({circular:t,comparator:o,createState:n,equals:s,strict:a})}function pae(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function wN(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function a(i){r<0&&(r=i),i-r>t?(e(i),r=-1):pae(a)};requestAnimationFrame(n)}function jx(e){"@babel/helpers - typeof";return jx=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jx(e)}function mae(e){return xae(e)||yae(e)||vae(e)||gae()}function gae(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vae(e,t){if(e){if(typeof e=="string")return SN(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return SN(e,t)}}function SN(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?1:x<0?0:x},m=function(x){for(var v=x>1?1:x,b=v,S=0;S<8;++S){var w=d(b)-v,O=p(b);if(Math.abs(w-v)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,a=t.damping,i=a===void 0?8:a,o=t.dt,s=o===void 0?17:o,l=function(f,d,h){var p=-(f-d)*n,g=h*i,m=h+(p-g)*s/1e3,y=h*s/1e3+f;return Math.abs(y-d)e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Xae(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,i;for(i=0;i=0)&&(r[a]=e[a]);return r}function Ug(e){return eie(e)||Zae(e)||Jae(e)||Qae()}function Qae(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Jae(e,t){if(e){if(typeof e=="string")return kx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return kx(e,t)}}function Zae(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function eie(e){if(Array.isArray(e))return kx(e)}function kx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Bh(e){return Bh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Bh(e)}var vn=function(e){iie(r,e);var t=oie(r);function r(n,a){var i;tie(this,r),i=t.call(this,n,a);var o=i.props,s=o.isActive,l=o.attributeName,u=o.from,f=o.to,d=o.steps,h=o.children,p=o.duration;if(i.handleStyleChange=i.handleStyleChange.bind(Tx(i)),i.changeStyle=i.changeStyle.bind(Tx(i)),!s||p<=0)return i.state={style:{}},typeof h=="function"&&(i.state={style:f}),_x(i);if(d&&d.length)i.state={style:d[0].style};else if(u){if(typeof h=="function")return i.state={style:u},_x(i);i.state={style:l?du({},l,u):u}}else i.state={style:{}};return i}return nie(r,[{key:"componentDidMount",value:function(){var a=this.props,i=a.isActive,o=a.canBegin;this.mounted=!0,!(!i||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var i=this.props,o=i.isActive,s=i.canBegin,l=i.attributeName,u=i.shouldReAnimate,f=i.to,d=i.from,h=this.state.style;if(s){if(!o){var p={style:l?du({},l,f):f};this.state&&h&&(l&&h[l]!==f||!l&&h!==f)&&this.setState(p);return}if(!(hae(a.to,f)&&a.canBegin&&a.isActive)){var g=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var m=g||u?d:a.to;if(this.state&&h){var y={style:l?du({},l,m):m};(l&&h[l]!==m||!l&&h!==m)&&this.setState(y)}this.runAnimation(tn(tn({},this.props),{},{from:m,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var i=this,o=a.from,s=a.to,l=a.duration,u=a.easing,f=a.begin,d=a.onAnimationEnd,h=a.onAnimationStart,p=Vae(o,s,Dae(u),l,this.changeStyle),g=function(){i.stopJSAnimation=p()};this.manager.start([h,f,g,l,d])}},{key:"runStepAnimation",value:function(a){var i=this,o=a.steps,s=a.begin,l=a.onAnimationStart,u=o[0],f=u.style,d=u.duration,h=d===void 0?0:d,p=function(m,y,x){if(x===0)return m;var v=y.duration,b=y.easing,S=b===void 0?"ease":b,w=y.style,O=y.properties,j=y.onAnimationEnd,P=x>0?o[x-1]:y,A=O||Object.keys(w);if(typeof S=="function"||S==="spring")return[].concat(Ug(m),[i.runJSAnimation.bind(i,{from:P.style,to:w,duration:v,easing:S}),v]);var _=NN(A,v,S),E=tn(tn(tn({},P.style),w),{},{transition:_});return[].concat(Ug(m),[E,v,j]).filter(Oae)};return this.manager.start([l].concat(Ug(o.reduce(p,[f,Math.max(h,s)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=bae());var i=a.begin,o=a.duration,s=a.attributeName,l=a.to,u=a.easing,f=a.onAnimationStart,d=a.onAnimationEnd,h=a.steps,p=a.children,g=this.manager;if(this.unSubscribe=g.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(a);return}if(h.length>1){this.runStepAnimation(a);return}var m=s?du({},s,l):l,y=NN(Object.keys(m),o,u);g.start([f,i,tn(tn({},m),{},{transition:y}),o,d])}},{key:"render",value:function(){var a=this.props,i=a.children;a.begin;var o=a.duration;a.attributeName,a.easing;var s=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var l=Yae(a,Gae),u=N.Children.count(i),f=this.state.style;if(typeof i=="function")return i(f);if(!s||u===0||o<=0)return i;var d=function(p){var g=p.props,m=g.style,y=m===void 0?{}:m,x=g.className,v=N.cloneElement(p,tn(tn({},l),{},{style:tn(tn({},y),f),className:x}));return v};return u===1?d(N.Children.only(i)):$.createElement("div",null,N.Children.map(i,function(h){return d(h)}))}}]),r}(N.PureComponent);vn.displayName="Animate";vn.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};vn.propTypes={from:ke.oneOfType([ke.object,ke.string]),to:ke.oneOfType([ke.object,ke.string]),attributeName:ke.string,duration:ke.number,begin:ke.number,easing:ke.oneOfType([ke.string,ke.func]),steps:ke.arrayOf(ke.shape({duration:ke.number.isRequired,style:ke.object.isRequired,easing:ke.oneOfType([ke.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ke.func]),properties:ke.arrayOf("string"),onAnimationEnd:ke.func})),children:ke.oneOfType([ke.node,ke.func]),isActive:ke.bool,canBegin:ke.bool,onAnimationEnd:ke.func,shouldReAnimate:ke.bool,onAnimationStart:ke.func,onAnimationReStart:ke.func};function Pc(e){"@babel/helpers - typeof";return Pc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pc(e)}function Uh(){return Uh=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?1:-1,l=n>=0?1:-1,u=a>=0&&n>=0||a<0&&n<0?1:0,f;if(o>0&&i instanceof Array){for(var d=[0,0,0,0],h=0,p=4;ho?o:i[h];f="M".concat(t,",").concat(r+s*d[0]),d[0]>0&&(f+="A ".concat(d[0],",").concat(d[0],",0,0,").concat(u,",").concat(t+l*d[0],",").concat(r)),f+="L ".concat(t+n-l*d[1],",").concat(r),d[1]>0&&(f+="A ".concat(d[1],",").concat(d[1],",0,0,").concat(u,`, + `).concat(t+n,",").concat(r+s*d[1])),f+="L ".concat(t+n,",").concat(r+a-s*d[2]),d[2]>0&&(f+="A ".concat(d[2],",").concat(d[2],",0,0,").concat(u,`, + `).concat(t+n-l*d[2],",").concat(r+a)),f+="L ".concat(t+l*d[3],",").concat(r+a),d[3]>0&&(f+="A ".concat(d[3],",").concat(d[3],",0,0,").concat(u,`, + `).concat(t,",").concat(r+a-s*d[3])),f+="Z"}else if(o>0&&i===+i&&i>0){var g=Math.min(o,i);f="M ".concat(t,",").concat(r+s*g,` + A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+l*g,",").concat(r,` + L `).concat(t+n-l*g,",").concat(r,` + A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+n,",").concat(r+s*g,` + L `).concat(t+n,",").concat(r+a-s*g,` + A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+n-l*g,",").concat(r+a,` + L `).concat(t+l*g,",").concat(r+a,` + A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t,",").concat(r+a-s*g," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(a," h ").concat(-n," Z");return f},gie=function(t,r){if(!t||!r)return!1;var n=t.x,a=t.y,i=r.x,o=r.y,s=r.width,l=r.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(i,i+s),f=Math.max(i,i+s),d=Math.min(o,o+l),h=Math.max(o,o+l);return n>=u&&n<=f&&a>=d&&a<=h}return!1},vie={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},pw=function(t){var r=$N($N({},vie),t),n=N.useRef(),a=N.useState(-1),i=lie(a,2),o=i[0],s=i[1];N.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var S=n.current.getTotalLength();S&&s(S)}catch{}},[]);var l=r.x,u=r.y,f=r.width,d=r.height,h=r.radius,p=r.className,g=r.animationEasing,m=r.animationDuration,y=r.animationBegin,x=r.isAnimationActive,v=r.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||d!==+d||f===0||d===0)return null;var b=fe("recharts-rectangle",p);return v?$.createElement(vn,{canBegin:o>0,from:{width:f,height:d,x:l,y:u},to:{width:f,height:d,x:l,y:u},duration:m,animationEasing:g,isActive:v},function(S){var w=S.width,O=S.height,j=S.x,P=S.y;return $.createElement(vn,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:m,isActive:x,easing:g},$.createElement("path",Uh({},ae(r,!0),{className:b,d:MN(j,P,w,O,h),ref:n})))}):$.createElement("path",Uh({},ae(r,!0),{className:b,d:MN(l,u,f,d,h)}))},yie=["points","className","baseLinePoints","connectNulls"];function as(){return as=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function bie(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function IN(e){return Oie(e)||jie(e)||Sie(e)||wie()}function wie(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sie(e,t){if(e){if(typeof e=="string")return Cx(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Cx(e,t)}}function jie(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Oie(e){if(Array.isArray(e))return Cx(e)}function Cx(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){DN(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),DN(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},Au=function(t,r){var n=Nie(t);r&&(n=[n.reduce(function(i,o){return[].concat(IN(i),IN(o))},[])]);var a=n.map(function(i){return i.reduce(function(o,s,l){return"".concat(o).concat(l===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return n.length===1?"".concat(a,"Z"):a},Pie=function(t,r,n){var a=Au(t,n);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Au(r.reverse(),n).slice(1))},Aie=function(t){var r=t.points,n=t.className,a=t.baseLinePoints,i=t.connectNulls,o=xie(t,yie);if(!r||!r.length)return null;var s=fe("recharts-polygon",n);if(a&&a.length){var l=o.stroke&&o.stroke!=="none",u=Pie(r,a,i);return $.createElement("g",{className:s},$.createElement("path",as({},ae(o,!0),{fill:u.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:u})),l?$.createElement("path",as({},ae(o,!0),{fill:"none",d:Au(r,i)})):null,l?$.createElement("path",as({},ae(o,!0),{fill:"none",d:Au(a,i)})):null)}var f=Au(r,i);return $.createElement("path",as({},ae(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:s,d:f}))};function $x(){return $x=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Mie(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var Iie=function(t,r,n,a,i,o){return"M".concat(t,",").concat(i,"v").concat(a,"M").concat(o,",").concat(r,"h").concat(n)},Die=function(t){var r=t.x,n=r===void 0?0:r,a=t.y,i=a===void 0?0:a,o=t.top,s=o===void 0?0:o,l=t.left,u=l===void 0?0:l,f=t.width,d=f===void 0?0:f,h=t.height,p=h===void 0?0:h,g=t.className,m=$ie(t,kie),y=Eie({x:n,y:i,top:s,left:u,width:d,height:p},m);return!G(n)||!G(i)||!G(d)||!G(p)||!G(s)||!G(u)?null:$.createElement("path",Mx({},ae(y,!0),{className:fe("recharts-cross",g),d:Iie(n,i,d,p,s,u)}))},Rie=fm,Lie=n2,Fie=Bn;function zie(e,t){return e&&e.length?Rie(e,Fie(t),Lie):void 0}var Bie=zie;const Uie=_e(Bie);var Wie=fm,Kie=Bn,qie=a2;function Hie(e,t){return e&&e.length?Wie(e,Kie(t),qie):void 0}var Vie=Hie;const Gie=_e(Vie);var Yie=["cx","cy","angle","ticks","axisLine"],Xie=["ticks","tick","angle","tickFormatter","stroke"];function Ys(e){"@babel/helpers - typeof";return Ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ys(e)}function ku(){return ku=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Qie(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Jie(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zN(e,t){for(var r=0;rWN?o=a==="outer"?"start":"end":i<-WN?o=a==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,a=n.cx,i=n.cy,o=n.radius,s=n.axisLine,l=n.axisLineType,u=Ti(Ti({},ae(this.props,!1)),{},{fill:"none"},ae(s,!1));if(l==="circle")return $.createElement(gm,Li({className:"recharts-polar-angle-axis-line"},u,{cx:a,cy:i,r:o}));var f=this.props.ticks,d=f.map(function(h){return Ue(a,i,o,h.coordinate)});return $.createElement(Aie,Li({className:"recharts-polar-angle-axis-line"},u,{points:d}))}},{key:"renderTicks",value:function(){var n=this,a=this.props,i=a.ticks,o=a.tick,s=a.tickLine,l=a.tickFormatter,u=a.stroke,f=ae(this.props,!1),d=ae(o,!1),h=Ti(Ti({},f),{},{fill:"none"},ae(s,!1)),p=i.map(function(g,m){var y=n.getTickLineCoord(g),x=n.getTickTextAnchor(g),v=Ti(Ti(Ti({textAnchor:x},f),{},{stroke:"none",fill:u},d),{},{index:m,payload:g,x:y.x2,y:y.y2});return $.createElement(xe,Li({className:fe("recharts-polar-angle-axis-tick",C2(o)),key:"tick-".concat(g.coordinate)},gi(n.props,g,m)),s&&$.createElement("line",Li({className:"recharts-polar-angle-axis-tick-line"},h,y)),o&&t.renderTickItem(o,v,l?l(g.value,m):g.value))});return $.createElement(xe,{className:"recharts-polar-angle-axis-ticks"},p)}},{key:"render",value:function(){var n=this.props,a=n.ticks,i=n.radius,o=n.axisLine;return i<=0||!a||!a.length?null:$.createElement(xe,{className:fe("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,a,i){var o;return $.isValidElement(n)?o=$.cloneElement(n,a):le(n)?o=n(a):o=$.createElement(xo,Li({},a,{className:"recharts-polar-angle-axis-tick-value"}),i),o}}])}(N.PureComponent);xm(bm,"displayName","PolarAngleAxis");xm(bm,"axisType","angleAxis");xm(bm,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var hoe=ZT,poe=hoe(Object.getPrototypeOf,Object),moe=poe,goe=Sa,voe=moe,yoe=ja,xoe="[object Object]",boe=Function.prototype,woe=Object.prototype,X2=boe.toString,Soe=woe.hasOwnProperty,joe=X2.call(Object);function Ooe(e){if(!yoe(e)||goe(e)!=xoe)return!1;var t=voe(e);if(t===null)return!0;var r=Soe.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&X2.call(r)==joe}var Noe=Ooe;const Poe=_e(Noe);var Aoe=Sa,koe=ja,Eoe="[object Boolean]";function _oe(e){return e===!0||e===!1||koe(e)&&Aoe(e)==Eoe}var Toe=_oe;const Coe=_e(Toe);function kc(e){"@babel/helpers - typeof";return kc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kc(e)}function qh(){return qh=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0,from:{upperWidth:0,lowerWidth:0,height:h,x:l,y:u},to:{upperWidth:f,lowerWidth:d,height:h,x:l,y:u},duration:m,animationEasing:g,isActive:x},function(b){var S=b.upperWidth,w=b.lowerWidth,O=b.height,j=b.x,P=b.y;return $.createElement(vn,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:y,duration:m,easing:g},$.createElement("path",qh({},ae(r,!0),{className:v,d:VN(j,P,S,w,O),ref:n})))}):$.createElement("g",null,$.createElement("path",qh({},ae(r,!0),{className:v,d:VN(l,u,f,d,h)})))},Woe=["option","shapeType","propTransformer","activeClassName","isActive"];function Ec(e){"@babel/helpers - typeof";return Ec=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ec(e)}function Koe(e,t){if(e==null)return{};var r=qoe(e,t),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function qoe(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function GN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Hh(e){for(var t=1;t0?Er(b,"paddingAngle",0):0;if(w){var j=Dt(w.endAngle-w.startAngle,b.endAngle-b.startAngle),P=Fe(Fe({},b),{},{startAngle:v+O,endAngle:v+j(m)+O});y.push(P),v=P.endAngle}else{var A=b.endAngle,_=b.startAngle,E=Dt(0,A-_),k=E(m),R=Fe(Fe({},b),{},{startAngle:v+O,endAngle:v+k+O});y.push(R),v=R.endAngle}}),$.createElement(xe,null,n.renderSectorsStatically(y))})}},{key:"attachKeyboardHandlers",value:function(n){var a=this;n.onkeydown=function(i){if(!i.altKey)switch(i.key){case"ArrowLeft":{var o=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[o].focus(),a.setState({sectorToFocus:o});break}case"ArrowRight":{var s=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[s].focus(),a.setState({sectorToFocus:s});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,a=n.sectors,i=n.isAnimationActive,o=this.state.prevSectors;return i&&a&&a.length&&(!o||!_l(o,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,a=this.props,i=a.hide,o=a.sectors,s=a.className,l=a.label,u=a.cx,f=a.cy,d=a.innerRadius,h=a.outerRadius,p=a.isAnimationActive,g=this.state.isAnimationFinished;if(i||!o||!o.length||!G(u)||!G(f)||!G(d)||!G(h))return null;var m=fe("recharts-pie",s);return $.createElement(xe,{tabIndex:this.props.rootTabIndex,className:m,ref:function(x){n.pieRef=x}},this.renderSectors(),l&&this.renderLabels(o),Tt.renderCallByParent(this.props,null,!1),(!p||g)&&Dn.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,a){return a.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==a.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:n.sectors!==a.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,a){return n>a?"start":n=360?v:v-1)*l,S=y-v*p-b,w=a.reduce(function(P,A){var _=Je(A,x,0);return P+(G(_)?_:0)},0),O;if(w>0){var j;O=a.map(function(P,A){var _=Je(P,x,0),E=Je(P,f,A),k=(G(_)?_:0)/w,R;A?R=j.endAngle+Jt(m)*l*(_!==0?1:0):R=o;var z=R+Jt(m)*((_!==0?p:0)+k*S),M=(R+z)/2,C=(g.innerRadius+g.outerRadius)/2,D=[{name:E,value:_,payload:P,dataKey:x,type:h}],T=Ue(g.cx,g.cy,C,M);return j=Fe(Fe(Fe({percent:k,cornerRadius:i,name:E,tooltipPayload:D,midAngle:M,middleRadius:C,tooltipPosition:T},P),g),{},{value:Je(P,x),startAngle:R,endAngle:z,payload:P,paddingAngle:Jt(m)*l}),j})}return Fe(Fe({},g),{},{sectors:O,data:a})});var dse=Math.ceil,hse=Math.max;function pse(e,t,r,n){for(var a=-1,i=hse(dse((t-e)/(r||1)),0),o=Array(i);i--;)o[n?i:++a]=e,e+=r;return o}var mse=pse,gse=yC,JN=1/0,vse=17976931348623157e292;function yse(e){if(!e)return e===0?e:0;if(e=gse(e),e===JN||e===-JN){var t=e<0?-1:1;return t*vse}return e===e?e:0}var Z2=yse,xse=mse,bse=am,Wg=Z2;function wse(e){return function(t,r,n){return n&&typeof n!="number"&&bse(t,r,n)&&(r=n=void 0),t=Wg(t),r===void 0?(r=t,t=0):r=Wg(r),n=n===void 0?t0&&n.handleDrag(a.changedTouches[0])}),wr(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=n.props,i=a.endIndex,o=a.onDragEnd,s=a.startIndex;o==null||o({endIndex:i,startIndex:s})}),n.detachDragEndListener()}),wr(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),wr(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),wr(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),wr(n,"handleSlideDragStart",function(a){var i=nP(a)?a.changedTouches[0]:a;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:i.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return Ise(t,e),Tse(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var a=n.startX,i=n.endX,o=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,f=u.length-1,d=Math.min(a,i),h=Math.max(a,i),p=t.getIndexInRange(o,d),g=t.getIndexInRange(o,h);return{startIndex:p-p%l,endIndex:g===f?f:g-g%l}}},{key:"getTextOfTick",value:function(n){var a=this.props,i=a.data,o=a.tickFormatter,s=a.dataKey,l=Je(i[n],s,n);return le(o)?o(l,n):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var a=this.state,i=a.slideMoveStartX,o=a.startX,s=a.endX,l=this.props,u=l.x,f=l.width,d=l.travellerWidth,h=l.startIndex,p=l.endIndex,g=l.onChange,m=n.pageX-i;m>0?m=Math.min(m,u+f-d-s,u+f-d-o):m<0&&(m=Math.max(m,u-o,u-s));var y=this.getIndex({startX:o+m,endX:s+m});(y.startIndex!==h||y.endIndex!==p)&&g&&g(y),this.setState({startX:o+m,endX:s+m,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,a){var i=nP(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:i.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var a=this.state,i=a.brushMoveStartX,o=a.movingTravellerId,s=a.endX,l=a.startX,u=this.state[o],f=this.props,d=f.x,h=f.width,p=f.travellerWidth,g=f.onChange,m=f.gap,y=f.data,x={startX:this.state.startX,endX:this.state.endX},v=n.pageX-i;v>0?v=Math.min(v,d+h-p-u):v<0&&(v=Math.max(v,d-u)),x[o]=u+v;var b=this.getIndex(x),S=b.startIndex,w=b.endIndex,O=function(){var P=y.length-1;return o==="startX"&&(s>l?S%m===0:w%m===0)||sl?w%m===0:S%m===0)||s>l&&w===P};this.setState(wr(wr({},o,u+v),"brushMoveStartX",n.pageX),function(){g&&O()&&g(b)})}},{key:"handleTravellerMoveKeyboard",value:function(n,a){var i=this,o=this.state,s=o.scaleValues,l=o.startX,u=o.endX,f=this.state[a],d=s.indexOf(f);if(d!==-1){var h=d+n;if(!(h===-1||h>=s.length)){var p=s[h];a==="startX"&&p>=u||a==="endX"&&p<=l||this.setState(wr({},a,p),function(){i.props.onChange(i.getIndex({startX:i.state.startX,endX:i.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,a=n.x,i=n.y,o=n.width,s=n.height,l=n.fill,u=n.stroke;return $.createElement("rect",{stroke:u,fill:l,x:a,y:i,width:o,height:s})}},{key:"renderPanorama",value:function(){var n=this.props,a=n.x,i=n.y,o=n.width,s=n.height,l=n.data,u=n.children,f=n.padding,d=N.Children.only(u);return d?$.cloneElement(d,{x:a,y:i,width:o,height:s,margin:f,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(n,a){var i,o,s=this,l=this.props,u=l.y,f=l.travellerWidth,d=l.height,h=l.traveller,p=l.ariaLabel,g=l.data,m=l.startIndex,y=l.endIndex,x=Math.max(n,this.props.x),v=Kg(Kg({},ae(this.props,!1)),{},{x,y:u,width:f,height:d}),b=p||"Min value: ".concat((i=g[m])===null||i===void 0?void 0:i.name,", Max value: ").concat((o=g[y])===null||o===void 0?void 0:o.name);return $.createElement(xe,{tabIndex:0,role:"slider","aria-label":b,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),s.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,a))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(h,v))}},{key:"renderSlide",value:function(n,a){var i=this.props,o=i.y,s=i.height,l=i.stroke,u=i.travellerWidth,f=Math.min(n,a)+u,d=Math.max(Math.abs(a-n)-u,0);return $.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:f,y:o,width:d,height:s})}},{key:"renderText",value:function(){var n=this.props,a=n.startIndex,i=n.endIndex,o=n.y,s=n.height,l=n.travellerWidth,u=n.stroke,f=this.state,d=f.startX,h=f.endX,p=5,g={pointerEvents:"none",fill:u};return $.createElement(xe,{className:"recharts-brush-texts"},$.createElement(xo,Xh({textAnchor:"end",verticalAnchor:"middle",x:Math.min(d,h)-p,y:o+s/2},g),this.getTextOfTick(a)),$.createElement(xo,Xh({textAnchor:"start",verticalAnchor:"middle",x:Math.max(d,h)+l+p,y:o+s/2},g),this.getTextOfTick(i)))}},{key:"render",value:function(){var n=this.props,a=n.data,i=n.className,o=n.children,s=n.x,l=n.y,u=n.width,f=n.height,d=n.alwaysShowText,h=this.state,p=h.startX,g=h.endX,m=h.isTextActive,y=h.isSlideMoving,x=h.isTravellerMoving,v=h.isTravellerFocused;if(!a||!a.length||!G(s)||!G(l)||!G(u)||!G(f)||u<=0||f<=0)return null;var b=fe("recharts-brush",i),S=$.Children.count(o)===1,w=Ese("userSelect","none");return $.createElement(xe,{className:b,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),S&&this.renderPanorama(),this.renderSlide(p,g),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(g,"endX"),(m||y||x||v||d)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var a=n.x,i=n.y,o=n.width,s=n.height,l=n.stroke,u=Math.floor(i+s/2)-1;return $.createElement($.Fragment,null,$.createElement("rect",{x:a,y:i,width:o,height:s,fill:l,stroke:"none"}),$.createElement("line",{x1:a+1,y1:u,x2:a+o-1,y2:u,fill:"none",stroke:"#fff"}),$.createElement("line",{x1:a+1,y1:u+2,x2:a+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,a){var i;return $.isValidElement(n)?i=$.cloneElement(n,a):le(n)?i=n(a):i=t.renderDefaultTraveller(a),i}},{key:"getDerivedStateFromProps",value:function(n,a){var i=n.data,o=n.width,s=n.x,l=n.travellerWidth,u=n.updateId,f=n.startIndex,d=n.endIndex;if(i!==a.prevData||u!==a.prevUpdateId)return Kg({prevData:i,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o},i&&i.length?Rse({data:i,width:o,x:s,travellerWidth:l,startIndex:f,endIndex:d}):{scale:null,scaleValues:null});if(a.scale&&(o!==a.prevWidth||s!==a.prevX||l!==a.prevTravellerWidth)){a.scale.range([s,s+o-l]);var h=a.scale.domain().map(function(p){return a.scale(p)});return{prevData:i,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o,startX:a.scale(n.startIndex),endX:a.scale(n.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(n,a){for(var i=n.length,o=0,s=i-1;s-o>1;){var l=Math.floor((o+s)/2);n[l]>a?s=l:o=l}return a>=n[s]?s:o}}])}(N.PureComponent);wr(Zs,"displayName","Brush");wr(Zs,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Lse=zb;function Fse(e,t){var r;return Lse(e,function(n,a,i){return r=t(n,a,i),!r}),!!r}var zse=Fse,Bse=qT,Use=Bn,Wse=zse,Kse=xr,qse=am;function Hse(e,t,r){var n=Kse(e)?Bse:Wse;return r&&qse(e,t,r)&&(t=void 0),n(e,Use(t))}var Vse=Hse;const Gse=_e(Vse);var Rn=function(t,r){var n=t.alwaysShow,a=t.ifOverflow;return n&&(a="extendDomain"),a===r},aP=hC;function Yse(e,t,r){t=="__proto__"&&aP?aP(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var Xse=Yse,Qse=Xse,Jse=fC,Zse=Bn;function ele(e,t){var r={};return t=Zse(t),Jse(e,function(n,a,i){Qse(r,a,t(n,a,i))}),r}var tle=ele;const rle=_e(tle);function nle(e,t){for(var r=-1,n=e==null?0:e.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function ble(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function wle(e,t){var r=e.x,n=e.y,a=xle(e,mle),i="".concat(r),o=parseInt(i,10),s="".concat(n),l=parseInt(s,10),u="".concat(t.height||a.height),f=parseInt(u,10),d="".concat(t.width||a.width),h=parseInt(d,10);return iu(iu(iu(iu(iu({},t),a),o?{x:o}:{}),l?{y:l}:{}),{},{height:f,width:h,name:t.name,radius:t.radius})}function oP(e){return $.createElement(Vh,Fx({shapeType:"rectangle",propTransformer:wle,activeClassName:"recharts-active-bar"},e))}var Sle=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,a){if(typeof t=="number")return t;var i=G(n)||U8(n);return i?t(n,a):(i||wo(),r)}},jle=["value","background"],a$;function el(e){"@babel/helpers - typeof";return el=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},el(e)}function Ole(e,t){if(e==null)return{};var r=Nle(e,t),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Nle(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Jh(){return Jh=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(M)0&&Math.abs(z)0&&(R=Math.min((Y||0)-(z[ve-1]||0),R))}),Number.isFinite(R)){var M=R/k,C=m.layout==="vertical"?n.height:n.width;if(m.padding==="gap"&&(j=M*C/2),m.padding==="no-gap"){var D=Zt(t.barCategoryGap,M*C),T=M*C/2;j=T-D-(T-D)/C*D}}}a==="xAxis"?P=[n.left+(b.left||0)+(j||0),n.left+n.width-(b.right||0)-(j||0)]:a==="yAxis"?P=l==="horizontal"?[n.top+n.height-(b.bottom||0),n.top+(b.top||0)]:[n.top+(b.top||0)+(j||0),n.top+n.height-(b.bottom||0)-(j||0)]:P=m.range,w&&(P=[P[1],P[0]]);var F=N2(m,i,h),W=F.scale,H=F.realScaleType;W.domain(x).range(P),P2(W);var q=A2(W,sn(sn({},m),{},{realScaleType:H}));a==="xAxis"?(E=y==="top"&&!S||y==="bottom"&&S,A=n.left,_=d[O]-E*m.height):a==="yAxis"&&(E=y==="left"&&!S||y==="right"&&S,A=d[O]-E*m.width,_=n.top);var L=sn(sn(sn({},m),q),{},{realScaleType:H,x:A,y:_,scale:W,width:a==="xAxis"?n.width:m.width,height:a==="yAxis"?n.height:m.height});return L.bandSize=Ih(L,q),!m.hide&&a==="xAxis"?d[O]+=(E?-1:1)*L.height:m.hide||(d[O]+=(E?-1:1)*L.width),sn(sn({},p),{},jm({},g,L))},{})},l$=function(t,r){var n=t.x,a=t.y,i=r.x,o=r.y;return{x:Math.min(n,i),y:Math.min(a,o),width:Math.abs(i-n),height:Math.abs(o-a)}},Dle=function(t){var r=t.x1,n=t.y1,a=t.x2,i=t.y2;return l$({x:r,y:n},{x:a,y:i})},u$=function(){function e(t){$le(this,e),this.scale=t}return Mle(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=n.bandAware,i=n.position;if(r!==void 0){if(i)switch(i){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(r)+s}default:return this.scale(r)}if(a){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+l}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),a=n[0],i=n[n.length-1];return a<=i?r>=a&&r<=i:r>=i&&r<=a}}],[{key:"create",value:function(r){return new e(r)}}])}();jm(u$,"EPS",1e-4);var gw=function(t){var r=Object.keys(t).reduce(function(n,a){return sn(sn({},n),{},jm({},a,u$.create(t[a])))},{});return sn(sn({},r),{},{apply:function(a){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.bandAware,s=i.position;return rle(a,function(l,u){return r[u].apply(l,{bandAware:o,position:s})})},isInRange:function(a){return n$(a,function(i,o){return r[o].isInRange(i)})}})};function Rle(e){return(e%180+180)%180}var Lle=function(t){var r=t.width,n=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=Rle(a),o=i*Math.PI/180,s=Math.atan(n/r),l=o>s&&o-1?a[i?t[o]:o]:void 0}}var Wle=Ule,Kle=Z2;function qle(e){var t=Kle(e),r=t%1;return t===t?r?t-r:t:0}var Hle=qle,Vle=iC,Gle=Bn,Yle=Hle,Xle=Math.max;function Qle(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var a=r==null?0:Yle(r);return a<0&&(a=Xle(n+a,0)),Vle(e,Gle(t),a)}var Jle=Qle,Zle=Wle,eue=Jle,tue=Zle(eue),rue=tue;const nue=_e(rue);var aue=GU(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),vw=N.createContext(void 0),yw=N.createContext(void 0),c$=N.createContext(void 0),f$=N.createContext({}),d$=N.createContext(void 0),h$=N.createContext(0),p$=N.createContext(0),fP=function(t){var r=t.state,n=r.xAxisMap,a=r.yAxisMap,i=r.offset,o=t.clipPathId,s=t.children,l=t.width,u=t.height,f=aue(i);return $.createElement(vw.Provider,{value:n},$.createElement(yw.Provider,{value:a},$.createElement(f$.Provider,{value:i},$.createElement(c$.Provider,{value:f},$.createElement(d$.Provider,{value:o},$.createElement(h$.Provider,{value:u},$.createElement(p$.Provider,{value:l},s)))))))},iue=function(){return N.useContext(d$)},m$=function(t){var r=N.useContext(vw);r==null&&wo();var n=r[t];return n==null&&wo(),n},oue=function(){var t=N.useContext(vw);return Fa(t)},sue=function(){var t=N.useContext(yw),r=nue(t,function(n){return n$(n.domain,Number.isFinite)});return r||Fa(t)},g$=function(t){var r=N.useContext(yw);r==null&&wo();var n=r[t];return n==null&&wo(),n},lue=function(){var t=N.useContext(c$);return t},uue=function(){return N.useContext(f$)},xw=function(){return N.useContext(p$)},bw=function(){return N.useContext(h$)};function tl(e){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tl(e)}function cue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fue(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re*a)return!1;var i=r();return e*(t-e*i/2-n)>=0&&e*(t+e*i/2-a)<=0}function Hue(e,t){return j$(e,t+1)}function Vue(e,t,r,n,a){for(var i=(n||[]).slice(),o=t.start,s=t.end,l=0,u=1,f=o,d=function(){var g=n==null?void 0:n[l];if(g===void 0)return{v:j$(n,u)};var m=l,y,x=function(){return y===void 0&&(y=r(g,m)),y},v=g.coordinate,b=l===0||np(e,v,x,f,s);b||(l=0,f=o,u+=1),b&&(f=v+e*(x()/2+a),l+=u)},h;u<=i.length;)if(h=d(),h)return h.v;return[]}function Mc(e){"@babel/helpers - typeof";return Mc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mc(e)}function xP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ut(e){for(var t=1;t0?p.coordinate-y*e:p.coordinate})}else i[h]=p=Ut(Ut({},p),{},{tickCoord:p.coordinate});var x=np(e,p.tickCoord,m,s,l);x&&(l=p.tickCoord-e*(m()/2+a),i[h]=Ut(Ut({},p),{},{isShow:!0}))},f=o-1;f>=0;f--)u(f);return i}function Jue(e,t,r,n,a,i){var o=(n||[]).slice(),s=o.length,l=t.start,u=t.end;if(i){var f=n[s-1],d=r(f,s-1),h=e*(f.coordinate+e*d/2-u);o[s-1]=f=Ut(Ut({},f),{},{tickCoord:h>0?f.coordinate-h*e:f.coordinate});var p=np(e,f.tickCoord,function(){return d},l,u);p&&(u=f.tickCoord-e*(d/2+a),o[s-1]=Ut(Ut({},f),{},{isShow:!0}))}for(var g=i?s-1:s,m=function(v){var b=o[v],S,w=function(){return S===void 0&&(S=r(b,v)),S};if(v===0){var O=e*(b.coordinate-e*w()/2-l);o[v]=b=Ut(Ut({},b),{},{tickCoord:O<0?b.coordinate-O*e:b.coordinate})}else o[v]=b=Ut(Ut({},b),{},{tickCoord:b.coordinate});var j=np(e,b.tickCoord,w,l,u);j&&(l=b.tickCoord+e*(w()/2+a),o[v]=Ut(Ut({},b),{},{isShow:!0}))},y=0;y=2?Jt(a[1].coordinate-a[0].coordinate):1,x=que(i,y,p);return l==="equidistantPreserveStart"?Vue(y,x,m,a,o):(l==="preserveStart"||l==="preserveStartEnd"?h=Jue(y,x,m,a,o,l==="preserveStartEnd"):h=Que(y,x,m,a,o),h.filter(function(v){return v.isShow}))}var Zue=["viewBox"],ece=["viewBox"],tce=["ticks"];function al(e){"@babel/helpers - typeof";return al=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},al(e)}function os(){return os=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function rce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function nce(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wP(e,t){for(var r=0;r0?l(this.props):l(p)),o<=0||s<=0||!g||!g.length?null:$.createElement(xe,{className:fe("recharts-cartesian-axis",u),ref:function(y){n.layerReference=y}},i&&this.renderAxisLine(),this.renderTicks(g,this.state.fontSize,this.state.letterSpacing),Tt.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,a,i){var o,s=fe(a.className,"recharts-cartesian-axis-tick-value");return $.isValidElement(n)?o=$.cloneElement(n,xt(xt({},a),{},{className:s})):le(n)?o=n(xt(xt({},a),{},{className:s})):o=$.createElement(xo,os({},a,{className:"recharts-cartesian-axis-tick-value"}),i),o}}])}(N.Component);Ow(Ml,"displayName","CartesianAxis");Ow(Ml,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var cce=["x1","y1","x2","y2","key"],fce=["offset"];function So(e){"@babel/helpers - typeof";return So=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},So(e)}function SP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Kt(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function mce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var gce=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,a=t.x,i=t.y,o=t.width,s=t.height,l=t.ry;return $.createElement("rect",{x:a,y:i,ry:l,width:o,height:s,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function P$(e,t){var r;if($.isValidElement(e))r=$.cloneElement(e,t);else if(le(e))r=e(t);else{var n=t.x1,a=t.y1,i=t.x2,o=t.y2,s=t.key,l=jP(t,cce),u=ae(l,!1);u.offset;var f=jP(u,fce);r=$.createElement("line",Vi({},f,{x1:n,y1:a,x2:i,y2:o,fill:"none",key:s}))}return r}function vce(e){var t=e.x,r=e.width,n=e.horizontal,a=n===void 0?!0:n,i=e.horizontalPoints;if(!a||!i||!i.length)return null;var o=i.map(function(s,l){var u=Kt(Kt({},e),{},{x1:t,y1:s,x2:t+r,y2:s,key:"line-".concat(l),index:l});return P$(a,u)});return $.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function yce(e){var t=e.y,r=e.height,n=e.vertical,a=n===void 0?!0:n,i=e.verticalPoints;if(!a||!i||!i.length)return null;var o=i.map(function(s,l){var u=Kt(Kt({},e),{},{x1:s,y1:t,x2:s,y2:t+r,key:"line-".concat(l),index:l});return P$(a,u)});return $.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function xce(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,a=e.y,i=e.width,o=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var f=s.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==f[0]&&f.unshift(0);var d=f.map(function(h,p){var g=!f[p+1],m=g?a+o-h:f[p+1]-h;if(m<=0)return null;var y=p%t.length;return $.createElement("rect",{key:"react-".concat(p),y:h,x:n,height:m,width:i,stroke:"none",fill:t[y],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return $.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function bce(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,a=e.fillOpacity,i=e.x,o=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var f=u.map(function(h){return Math.round(h+i-i)}).sort(function(h,p){return h-p});i!==f[0]&&f.unshift(0);var d=f.map(function(h,p){var g=!f[p+1],m=g?i+s-h:f[p+1]-h;if(m<=0)return null;var y=p%n.length;return $.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:m,height:l,stroke:"none",fill:n[y],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return $.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var wce=function(t,r){var n=t.xAxis,a=t.width,i=t.height,o=t.offset;return O2(jw(Kt(Kt(Kt({},Ml.defaultProps),n),{},{ticks:ra(n,!0),viewBox:{x:0,y:0,width:a,height:i}})),o.left,o.left+o.width,r)},Sce=function(t,r){var n=t.yAxis,a=t.width,i=t.height,o=t.offset;return O2(jw(Kt(Kt(Kt({},Ml.defaultProps),n),{},{ticks:ra(n,!0),viewBox:{x:0,y:0,width:a,height:i}})),o.top,o.top+o.height,r)},zo={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function oa(e){var t,r,n,a,i,o,s=xw(),l=bw(),u=uue(),f=Kt(Kt({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:zo.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:zo.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:zo.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:zo.horizontalFill,vertical:(i=e.vertical)!==null&&i!==void 0?i:zo.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:zo.verticalFill,x:G(e.x)?e.x:u.left,y:G(e.y)?e.y:u.top,width:G(e.width)?e.width:u.width,height:G(e.height)?e.height:u.height}),d=f.x,h=f.y,p=f.width,g=f.height,m=f.syncWithTicks,y=f.horizontalValues,x=f.verticalValues,v=oue(),b=sue();if(!G(p)||p<=0||!G(g)||g<=0||!G(d)||d!==+d||!G(h)||h!==+h)return null;var S=f.verticalCoordinatesGenerator||wce,w=f.horizontalCoordinatesGenerator||Sce,O=f.horizontalPoints,j=f.verticalPoints;if((!O||!O.length)&&le(w)){var P=y&&y.length,A=w({yAxis:b?Kt(Kt({},b),{},{ticks:P?y:b.ticks}):void 0,width:s,height:l,offset:u},P?!0:m);pn(Array.isArray(A),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(So(A),"]")),Array.isArray(A)&&(O=A)}if((!j||!j.length)&&le(S)){var _=x&&x.length,E=S({xAxis:v?Kt(Kt({},v),{},{ticks:_?x:v.ticks}):void 0,width:s,height:l,offset:u},_?!0:m);pn(Array.isArray(E),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(So(E),"]")),Array.isArray(E)&&(j=E)}return $.createElement("g",{className:"recharts-cartesian-grid"},$.createElement(gce,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),$.createElement(vce,Vi({},f,{offset:u,horizontalPoints:O,xAxis:v,yAxis:b})),$.createElement(yce,Vi({},f,{offset:u,verticalPoints:j,xAxis:v,yAxis:b})),$.createElement(xce,Vi({},f,{horizontalPoints:O})),$.createElement(bce,Vi({},f,{verticalPoints:j})))}oa.displayName="CartesianGrid";var jce=["type","layout","connectNulls","ref"],Oce=["key"];function il(e){"@babel/helpers - typeof";return il=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},il(e)}function OP(e,t){if(e==null)return{};var r=Nce(e,t),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Nce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Eu(){return Eu=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);rd){p=[].concat(Bo(l.slice(0,g)),[d-m]);break}var y=p.length%2===0?[0,h]:[h];return[].concat(Bo(t.repeat(l,f)),Bo(p),y).map(function(x){return"".concat(x,"px")}).join(", ")}),ln(r,"id",Eo("recharts-line-")),ln(r,"pathRef",function(o){r.mainCurve=o}),ln(r,"handleAnimationEnd",function(){r.setState({isAnimationFinished:!0}),r.props.onAnimationEnd&&r.props.onAnimationEnd()}),ln(r,"handleAnimationStart",function(){r.setState({isAnimationFinished:!1}),r.props.onAnimationStart&&r.props.onAnimationStart()}),r}return Ice(t,e),Tce(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();this.setState({totalLength:n})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();n!==this.state.totalLength&&this.setState({totalLength:n})}}},{key:"getTotalLength",value:function(){var n=this.mainCurve;try{return n&&n.getTotalLength&&n.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(n,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var i=this.props,o=i.points,s=i.xAxis,l=i.yAxis,u=i.layout,f=i.children,d=rr(f,$l);if(!d)return null;var h=function(m,y){return{x:m.x,y:m.y,value:m.value,errorVal:Je(m.payload,y)}},p={clipPath:n?"url(#clipPath-".concat(a,")"):null};return $.createElement(xe,p,d.map(function(g){return $.cloneElement(g,{key:"bar-".concat(g.props.dataKey),data:o,xAxis:s,yAxis:l,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(n,a,i){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,f=s.dataKey,d=ae(this.props,!1),h=ae(l,!0),p=u.map(function(m,y){var x=br(br(br({key:"dot-".concat(y),r:3},d),h),{},{index:y,cx:m.x,cy:m.y,value:m.value,dataKey:f,payload:m.payload,points:u});return t.renderDotItem(l,x)}),g={clipPath:n?"url(#clipPath-".concat(a?"":"dots-").concat(i,")"):null};return $.createElement(xe,Eu({className:"recharts-line-dots",key:"dots"},g),p)}},{key:"renderCurveStatically",value:function(n,a,i,o){var s=this.props,l=s.type,u=s.layout,f=s.connectNulls;s.ref;var d=OP(s,jce),h=br(br(br({},ae(d,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(i,")"):null,points:n},o),{},{type:l,layout:u,connectNulls:f});return $.createElement(jc,Eu({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(n,a){var i=this,o=this.props,s=o.points,l=o.strokeDasharray,u=o.isAnimationActive,f=o.animationBegin,d=o.animationDuration,h=o.animationEasing,p=o.animationId,g=o.animateNewValues,m=o.width,y=o.height,x=this.state,v=x.prevPoints,b=x.totalLength;return $.createElement(vn,{begin:f,duration:d,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(S){var w=S.t;if(v){var O=v.length/s.length,j=s.map(function(k,R){var z=Math.floor(R*O);if(v[z]){var M=v[z],C=Dt(M.x,k.x),D=Dt(M.y,k.y);return br(br({},k),{},{x:C(w),y:D(w)})}if(g){var T=Dt(m*2,k.x),F=Dt(y/2,k.y);return br(br({},k),{},{x:T(w),y:F(w)})}return br(br({},k),{},{x:k.x,y:k.y})});return i.renderCurveStatically(j,n,a)}var P=Dt(0,b),A=P(w),_;if(l){var E="".concat(l).split(/[,\s]+/gim).map(function(k){return parseFloat(k)});_=i.getStrokeDasharray(A,b,E)}else _=i.generateSimpleStrokeDasharray(b,A);return i.renderCurveStatically(s,n,a,{strokeDasharray:_})})}},{key:"renderCurve",value:function(n,a){var i=this.props,o=i.points,s=i.isAnimationActive,l=this.state,u=l.prevPoints,f=l.totalLength;return s&&o&&o.length&&(!u&&f>0||!_l(u,o))?this.renderCurveWithAnimation(n,a):this.renderCurveStatically(o,n,a)}},{key:"render",value:function(){var n,a=this.props,i=a.hide,o=a.dot,s=a.points,l=a.className,u=a.xAxis,f=a.yAxis,d=a.top,h=a.left,p=a.width,g=a.height,m=a.isAnimationActive,y=a.id;if(i||!s||!s.length)return null;var x=this.state.isAnimationFinished,v=s.length===1,b=fe("recharts-line",l),S=u&&u.allowDataOverflow,w=f&&f.allowDataOverflow,O=S||w,j=se(y)?this.id:y,P=(n=ae(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},A=P.r,_=A===void 0?3:A,E=P.strokeWidth,k=E===void 0?2:E,R=tW(o)?o:{},z=R.clipDot,M=z===void 0?!0:z,C=_*2+k;return $.createElement(xe,{className:b},S||w?$.createElement("defs",null,$.createElement("clipPath",{id:"clipPath-".concat(j)},$.createElement("rect",{x:S?h:h-p/2,y:w?d:d-g/2,width:S?p:p*2,height:w?g:g*2})),!M&&$.createElement("clipPath",{id:"clipPath-dots-".concat(j)},$.createElement("rect",{x:h-C/2,y:d-C/2,width:p+C,height:g+C}))):null,!v&&this.renderCurve(O,j),this.renderErrorBar(O,j),(v||o)&&this.renderDots(O,M,j),(!m||x)&&Dn.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(n,a){return n.animationId!==a.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:a.curPoints}:n.points!==a.curPoints?{curPoints:n.points}:null}},{key:"repeat",value:function(n,a){for(var i=n.length%2!==0?[].concat(Bo(n),[0]):n,o=[],s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Vce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Gce(e){var t=e.option,r=e.isActive,n=Hce(e,qce);return typeof t=="string"?N.createElement(Vh,_u({option:N.createElement(tm,_u({type:t},n)),isActive:r,shapeType:"symbols"},n)):N.createElement(Vh,_u({option:t,isActive:r,shapeType:"symbols"},n))}function sl(e){"@babel/helpers - typeof";return sl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sl(e)}function Tu(){return Tu=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Wfe(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Kfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qfe(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&G(a)&&G(i)?t.slice(a,i+1):[]};function V$(e){return e==="number"?[0,"auto"]:void 0}var o0=function(t,r,n,a){var i=t.graphicalItems,o=t.tooltipAxis,s=Em(r,t);return n<0||!i||!i.length||n>=s.length?null:i.reduce(function(l,u){var f,d=(f=u.props.data)!==null&&f!==void 0?f:r;d&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(d=d.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=d===void 0?s:d;h=oh(p,o.dataKey,a)}else h=d&&d[n]||s[n];return h?[].concat(fl(l),[E2(u,h)]):l},[])},MP=function(t,r,n,a){var i=a||{x:t.chartX,y:t.chartY},o=nde(i,n),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,f=rre(o,s,u,l);if(f>=0&&u){var d=u[f]&&u[f].value,h=o0(t,r,f,d),p=ade(n,s,f,i);return{activeTooltipIndex:f,activeLabel:d,activePayload:h,activeCoordinate:p}}return null},ide=function(t,r){var n=r.axes,a=r.graphicalItems,i=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,h=t.stackOffset,p=j2(f,i);return n.reduce(function(g,m){var y,x=m.type.defaultProps!==void 0?U(U({},m.type.defaultProps),m.props):m.props,v=x.type,b=x.dataKey,S=x.allowDataOverflow,w=x.allowDuplicatedCategory,O=x.scale,j=x.ticks,P=x.includeHidden,A=x[o];if(g[A])return g;var _=Em(t.data,{graphicalItems:a.filter(function(q){var L,Y=o in q.props?q.props[o]:(L=q.type.defaultProps)===null||L===void 0?void 0:L[o];return Y===A}),dataStartIndex:l,dataEndIndex:u}),E=_.length,k,R,z;Tfe(x.domain,S,v)&&(k=yx(x.domain,null,S),p&&(v==="number"||O!=="auto")&&(z=Nu(_,b,"category")));var M=V$(v);if(!k||k.length===0){var C,D=(C=x.domain)!==null&&C!==void 0?C:M;if(b){if(k=Nu(_,b,v),v==="category"&&p){var T=K8(k);w&&T?(R=k,k=Yh(0,E)):w||(k=nN(D,k,m).reduce(function(q,L){return q.indexOf(L)>=0?q:[].concat(fl(q),[L])},[]))}else if(v==="category")w?k=k.filter(function(q){return q!==""&&!se(q)}):k=nN(D,k,m).reduce(function(q,L){return q.indexOf(L)>=0||L===""||se(L)?q:[].concat(fl(q),[L])},[]);else if(v==="number"){var F=sre(_,a.filter(function(q){var L,Y,ve=o in q.props?q.props[o]:(L=q.type.defaultProps)===null||L===void 0?void 0:L[o],Ne="hide"in q.props?q.props.hide:(Y=q.type.defaultProps)===null||Y===void 0?void 0:Y.hide;return ve===A&&(P||!Ne)}),b,i,f);F&&(k=F)}p&&(v==="number"||O!=="auto")&&(z=Nu(_,b,"category"))}else p?k=Yh(0,E):s&&s[A]&&s[A].hasStack&&v==="number"?k=h==="expand"?[0,1]:k2(s[A].stackGroups,l,u):k=S2(_,a.filter(function(q){var L=o in q.props?q.props[o]:q.type.defaultProps[o],Y="hide"in q.props?q.props.hide:q.type.defaultProps.hide;return L===A&&(P||!Y)}),v,f,!0);if(v==="number")k=n0(d,k,A,i,j),D&&(k=yx(D,k,S));else if(v==="category"&&D){var W=D,H=k.every(function(q){return W.indexOf(q)>=0});H&&(k=W)}}return U(U({},g),{},oe({},A,U(U({},x),{},{axisType:i,domain:k,categoricalDomain:z,duplicateDomain:R,originalDomain:(y=x.domain)!==null&&y!==void 0?y:M,isCategorical:p,layout:f})))},{})},ode=function(t,r){var n=r.graphicalItems,a=r.Axis,i=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,h=Em(t.data,{graphicalItems:n,dataStartIndex:l,dataEndIndex:u}),p=h.length,g=j2(f,i),m=-1;return n.reduce(function(y,x){var v=x.type.defaultProps!==void 0?U(U({},x.type.defaultProps),x.props):x.props,b=v[o],S=V$("number");if(!y[b]){m++;var w;return g?w=Yh(0,p):s&&s[b]&&s[b].hasStack?(w=k2(s[b].stackGroups,l,u),w=n0(d,w,b,i)):(w=yx(S,S2(h,n.filter(function(O){var j,P,A=o in O.props?O.props[o]:(j=O.type.defaultProps)===null||j===void 0?void 0:j[o],_="hide"in O.props?O.props.hide:(P=O.type.defaultProps)===null||P===void 0?void 0:P.hide;return A===b&&!_}),"number",f),a.defaultProps.allowDataOverflow),w=n0(d,w,b,i)),U(U({},y),{},oe({},b,U(U({axisType:i},a.defaultProps),{},{hide:!0,orientation:Er(tde,"".concat(i,".").concat(m%2),null),domain:w,originalDomain:S,isCategorical:g,layout:f})))}return y},{})},sde=function(t,r){var n=r.axisType,a=n===void 0?"xAxis":n,i=r.AxisComp,o=r.graphicalItems,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.children,d="".concat(a,"Id"),h=rr(f,i),p={};return h&&h.length?p=ide(t,{axes:h,graphicalItems:o,axisType:a,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(p=ode(t,{Axis:i,graphicalItems:o,axisType:a,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),p},lde=function(t){var r=Fa(t),n=ra(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Bb(n,function(a){return a.coordinate}),tooltipAxis:r,tooltipAxisBandSize:Ih(r,n)}},IP=function(t){var r=t.children,n=t.defaultShowTooltip,a=jr(r,Zs),i=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(i=a.props.startIndex),a.props.endIndex>=0&&(o=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:i,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},ude=function(t){return!t||!t.length?!1:t.some(function(r){var n=aa(r&&r.type);return n&&n.indexOf("Bar")>=0})},DP=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},cde=function(t,r){var n=t.props,a=t.graphicalItems,i=t.xAxisMap,o=i===void 0?{}:i,s=t.yAxisMap,l=s===void 0?{}:s,u=n.width,f=n.height,d=n.children,h=n.margin||{},p=jr(d,Zs),g=jr(d,nr),m=Object.keys(l).reduce(function(w,O){var j=l[O],P=j.orientation;return!j.mirror&&!j.hide?U(U({},w),{},oe({},P,w[P]+j.width)):w},{left:h.left||0,right:h.right||0}),y=Object.keys(o).reduce(function(w,O){var j=o[O],P=j.orientation;return!j.mirror&&!j.hide?U(U({},w),{},oe({},P,Er(w,"".concat(P))+j.height)):w},{top:h.top||0,bottom:h.bottom||0}),x=U(U({},y),m),v=x.bottom;p&&(x.bottom+=p.props.height||Zs.defaultProps.height),g&&r&&(x=ire(x,a,n,r));var b=u-x.left-x.right,S=f-x.top-x.bottom;return U(U({brushBottom:v},x),{},{width:Math.max(b,0),height:Math.max(S,0)})},fde=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},_m=function(t){var r=t.chartName,n=t.GraphicalChild,a=t.defaultTooltipEventType,i=a===void 0?"axis":a,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,d=t.defaultProps,h=function(x,v){var b=v.graphicalItems,S=v.stackGroups,w=v.offset,O=v.updateId,j=v.dataStartIndex,P=v.dataEndIndex,A=x.barSize,_=x.layout,E=x.barGap,k=x.barCategoryGap,R=x.maxBarSize,z=DP(_),M=z.numericAxisName,C=z.cateAxisName,D=ude(b),T=[];return b.forEach(function(F,W){var H=Em(x.data,{graphicalItems:[F],dataStartIndex:j,dataEndIndex:P}),q=F.type.defaultProps!==void 0?U(U({},F.type.defaultProps),F.props):F.props,L=q.dataKey,Y=q.maxBarSize,ve=q["".concat(M,"Id")],Ne=q["".concat(C,"Id")],we={},dt=l.reduce(function(Ni,Pi){var Rm=v["".concat(Pi.axisType,"Map")],$w=q["".concat(Pi.axisType,"Id")];Rm&&Rm[$w]||Pi.axisType==="zAxis"||wo();var Mw=Rm[$w];return U(U({},Ni),{},oe(oe({},Pi.axisType,Mw),"".concat(Pi.axisType,"Ticks"),ra(Mw)))},we),X=dt[C],ue=dt["".concat(C,"Ticks")],ce=S&&S[ve]&&S[ve].hasStack&&gre(F,S[ve].stackGroups),K=aa(F.type).indexOf("Bar")>=0,Ae=Ih(X,ue),pe=[],Le=D&&nre({barSize:A,stackGroups:S,totalSize:fde(dt,C)});if(K){var ct,or,Aa=se(Y)?R:Y,Mo=(ct=(or=Ih(X,ue,!0))!==null&&or!==void 0?or:Aa)!==null&&ct!==void 0?ct:0;pe=are({barGap:E,barCategoryGap:k,bandSize:Mo!==Ae?Mo:Ae,sizeList:Le[Ne],maxBarSize:Aa}),Mo!==Ae&&(pe=pe.map(function(Ni){return U(U({},Ni),{},{position:U(U({},Ni.position),{},{offset:Ni.position.offset-Mo/2})})}))}var vf=F&&F.type&&F.type.getComposedData;vf&&T.push({props:U(U({},vf(U(U({},dt),{},{displayedData:H,props:x,dataKey:L,item:F,bandSize:Ae,barPosition:pe,offset:w,stackedData:ce,layout:_,dataStartIndex:j,dataEndIndex:P}))),{},oe(oe(oe({key:F.key||"item-".concat(W)},M,dt[M]),C,dt[C]),"animationId",O)),childIndex:aW(F,x.children),item:F})}),T},p=function(x,v){var b=x.props,S=x.dataStartIndex,w=x.dataEndIndex,O=x.updateId;if(!QS({props:b}))return null;var j=b.children,P=b.layout,A=b.stackOffset,_=b.data,E=b.reverseStackOrder,k=DP(P),R=k.numericAxisName,z=k.cateAxisName,M=rr(j,n),C=pre(_,M,"".concat(R,"Id"),"".concat(z,"Id"),A,E),D=l.reduce(function(q,L){var Y="".concat(L.axisType,"Map");return U(U({},q),{},oe({},Y,sde(b,U(U({},L),{},{graphicalItems:M,stackGroups:L.axisType===R&&C,dataStartIndex:S,dataEndIndex:w}))))},{}),T=cde(U(U({},D),{},{props:b,graphicalItems:M}),v==null?void 0:v.legendBBox);Object.keys(D).forEach(function(q){D[q]=f(b,D[q],T,q.replace("Map",""),r)});var F=D["".concat(z,"Map")],W=lde(F),H=h(b,U(U({},D),{},{dataStartIndex:S,dataEndIndex:w,updateId:O,graphicalItems:M,stackGroups:C,offset:T}));return U(U({formattedGraphicalItems:H,graphicalItems:M,offset:T,stackGroups:C},W),D)},g=function(y){function x(v){var b,S,w;return Kfe(this,x),w=Vfe(this,x,[v]),oe(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),oe(w,"accessibilityManager",new _fe),oe(w,"handleLegendBBoxUpdate",function(O){if(O){var j=w.state,P=j.dataStartIndex,A=j.dataEndIndex,_=j.updateId;w.setState(U({legendBBox:O},p({props:w.props,dataStartIndex:P,dataEndIndex:A,updateId:_},U(U({},w.state),{},{legendBBox:O}))))}}),oe(w,"handleReceiveSyncEvent",function(O,j,P){if(w.props.syncId===O){if(P===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(j)}}),oe(w,"handleBrushChange",function(O){var j=O.startIndex,P=O.endIndex;if(j!==w.state.dataStartIndex||P!==w.state.dataEndIndex){var A=w.state.updateId;w.setState(function(){return U({dataStartIndex:j,dataEndIndex:P},p({props:w.props,dataStartIndex:j,dataEndIndex:P,updateId:A},w.state))}),w.triggerSyncEvent({dataStartIndex:j,dataEndIndex:P})}}),oe(w,"handleMouseEnter",function(O){var j=w.getMouseInfo(O);if(j){var P=U(U({},j),{},{isTooltipActive:!0});w.setState(P),w.triggerSyncEvent(P);var A=w.props.onMouseEnter;le(A)&&A(P,O)}}),oe(w,"triggeredAfterMouseMove",function(O){var j=w.getMouseInfo(O),P=j?U(U({},j),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(P),w.triggerSyncEvent(P);var A=w.props.onMouseMove;le(A)&&A(P,O)}),oe(w,"handleItemMouseEnter",function(O){w.setState(function(){return{isTooltipActive:!0,activeItem:O,activePayload:O.tooltipPayload,activeCoordinate:O.tooltipPosition||{x:O.cx,y:O.cy}}})}),oe(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),oe(w,"handleMouseMove",function(O){O.persist(),w.throttleTriggeredAfterMouseMove(O)}),oe(w,"handleMouseLeave",function(O){w.throttleTriggeredAfterMouseMove.cancel();var j={isTooltipActive:!1};w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseLeave;le(P)&&P(j,O)}),oe(w,"handleOuterEvent",function(O){var j=nW(O),P=Er(w.props,"".concat(j));if(j&&le(P)){var A,_;/.*touch.*/i.test(j)?_=w.getMouseInfo(O.changedTouches[0]):_=w.getMouseInfo(O),P((A=_)!==null&&A!==void 0?A:{},O)}}),oe(w,"handleClick",function(O){var j=w.getMouseInfo(O);if(j){var P=U(U({},j),{},{isTooltipActive:!0});w.setState(P),w.triggerSyncEvent(P);var A=w.props.onClick;le(A)&&A(P,O)}}),oe(w,"handleMouseDown",function(O){var j=w.props.onMouseDown;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleMouseUp",function(O){var j=w.props.onMouseUp;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleTouchMove",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(O.changedTouches[0])}),oe(w,"handleTouchStart",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.handleMouseDown(O.changedTouches[0])}),oe(w,"handleTouchEnd",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.handleMouseUp(O.changedTouches[0])}),oe(w,"handleDoubleClick",function(O){var j=w.props.onDoubleClick;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleContextMenu",function(O){var j=w.props.onContextMenu;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"triggerSyncEvent",function(O){w.props.syncId!==void 0&&Hg.emit(Vg,w.props.syncId,O,w.eventEmitterSymbol)}),oe(w,"applySyncEvent",function(O){var j=w.props,P=j.layout,A=j.syncMethod,_=w.state.updateId,E=O.dataStartIndex,k=O.dataEndIndex;if(O.dataStartIndex!==void 0||O.dataEndIndex!==void 0)w.setState(U({dataStartIndex:E,dataEndIndex:k},p({props:w.props,dataStartIndex:E,dataEndIndex:k,updateId:_},w.state)));else if(O.activeTooltipIndex!==void 0){var R=O.chartX,z=O.chartY,M=O.activeTooltipIndex,C=w.state,D=C.offset,T=C.tooltipTicks;if(!D)return;if(typeof A=="function")M=A(T,O);else if(A==="value"){M=-1;for(var F=0;F=0){var ce,K;if(R.dataKey&&!R.allowDuplicatedCategory){var Ae=typeof R.dataKey=="function"?ue:"payload.".concat(R.dataKey.toString());ce=oh(F,Ae,M),K=W&&H&&oh(H,Ae,M)}else ce=F==null?void 0:F[z],K=W&&H&&H[z];if(Ne||ve){var pe=O.props.activeIndex!==void 0?O.props.activeIndex:z;return[N.cloneElement(O,U(U(U({},A.props),dt),{},{activeIndex:pe})),null,null]}if(!se(ce))return[X].concat(fl(w.renderActivePoints({item:A,activePoint:ce,basePoint:K,childIndex:z,isRange:W})))}else{var Le,ct=(Le=w.getItemByXY(w.state.activeCoordinate))!==null&&Le!==void 0?Le:{graphicalItem:X},or=ct.graphicalItem,Aa=or.item,Mo=Aa===void 0?O:Aa,vf=or.childIndex,Ni=U(U(U({},A.props),dt),{},{activeIndex:vf});return[N.cloneElement(Mo,Ni),null,null]}return W?[X,null,null]:[X,null]}),oe(w,"renderCustomized",function(O,j,P){return N.cloneElement(O,U(U({key:"recharts-customized-".concat(P)},w.props),w.state))}),oe(w,"renderMap",{CartesianGrid:{handler:ed,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:ed},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:ed},YAxis:{handler:ed},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((b=v.id)!==null&&b!==void 0?b:Eo("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=xC(w.triggeredAfterMouseMove,(S=v.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return Xfe(x,y),Hfe(x,[{key:"componentDidMount",value:function(){var b,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(b=this.props.margin.left)!==null&&b!==void 0?b:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var b=this.props,S=b.children,w=b.data,O=b.height,j=b.layout,P=jr(S,lt);if(P){var A=P.props.defaultIndex;if(!(typeof A!="number"||A<0||A>this.state.tooltipTicks.length-1)){var _=this.state.tooltipTicks[A]&&this.state.tooltipTicks[A].value,E=o0(this.state,w,A,_),k=this.state.tooltipTicks[A].coordinate,R=(this.state.offset.top+O)/2,z=j==="horizontal",M=z?{x:k,y:R}:{y:k,x:R},C=this.state.formattedGraphicalItems.find(function(T){var F=T.item;return F.type.name==="Scatter"});C&&(M=U(U({},M),C.props.points[A].tooltipPosition),E=C.props.points[A].tooltipPayload);var D={activeTooltipIndex:A,isTooltipActive:!0,activeLabel:_,activePayload:E,activeCoordinate:M};this.setState(D),this.renderCursor(P),this.accessibilityManager.setIndex(A)}}}},{key:"getSnapshotBeforeUpdate",value:function(b,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==b.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==b.margin){var w,O;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0}})}return null}},{key:"componentDidUpdate",value:function(b){$y([jr(b.children,lt)],[jr(this.props.children,lt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var b=jr(this.props.children,lt);if(b&&typeof b.props.shared=="boolean"){var S=b.props.shared?"axis":"item";return s.indexOf(S)>=0?S:i}return i}},{key:"getMouseInfo",value:function(b){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),O=_Q(w),j={chartX:Math.round(b.pageX-O.left),chartY:Math.round(b.pageY-O.top)},P=w.width/S.offsetWidth||1,A=this.inRange(j.chartX,j.chartY,P);if(!A)return null;var _=this.state,E=_.xAxisMap,k=_.yAxisMap,R=this.getTooltipEventType(),z=MP(this.state,this.props.data,this.props.layout,A);if(R!=="axis"&&E&&k){var M=Fa(E).scale,C=Fa(k).scale,D=M&&M.invert?M.invert(j.chartX):null,T=C&&C.invert?C.invert(j.chartY):null;return U(U({},j),{},{xValue:D,yValue:T},z)}return z?U(U({},j),z):null}},{key:"inRange",value:function(b,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,O=this.props.layout,j=b/w,P=S/w;if(O==="horizontal"||O==="vertical"){var A=this.state.offset,_=j>=A.left&&j<=A.left+A.width&&P>=A.top&&P<=A.top+A.height;return _?{x:j,y:P}:null}var E=this.state,k=E.angleAxisMap,R=E.radiusAxisMap;if(k&&R){var z=Fa(k);return oN({x:j,y:P},z)}return null}},{key:"parseEventsOfWrapper",value:function(){var b=this.props.children,S=this.getTooltipEventType(),w=jr(b,lt),O={};w&&S==="axis"&&(w.props.trigger==="click"?O={onClick:this.handleClick}:O={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var j=sh(this.props,this.handleOuterEvent);return U(U({},j),O)}},{key:"addListener",value:function(){Hg.on(Vg,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Hg.removeListener(Vg,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(b,S,w){for(var O=this.state.formattedGraphicalItems,j=0,P=O.length;j{const a=hde.find(s=>s.value===t);if(!a)return[];const i=new Date,o=new Map;for(let s=0;s{const l=new Date(s.createdAt),u=fi(Ey(l),"yyyy-MM-dd"),f=o.get(u)||0;o.set(u,f+1)}),Array.from(o.entries()).map(([s,l])=>({date:s,experiments:l,displayDate:fi(new Date(s),"MMM dd")})).sort((s,l)=>s.date.localeCompare(l.date))},[e,t]),n=N.useMemo(()=>e.length,[e]);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Experiments Timeline"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",n]})]}),r.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No experiments data available for this time range"}):c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(df,{data:r,margin:{left:5,right:10,top:5,bottom:0},children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e2e8f0",opacity:.5}),c.jsx(_r,{dataKey:"displayDate",tick:{fontSize:9},angle:-45,textAnchor:"end",height:40}),c.jsx(yr,{tick:{fontSize:9},width:35,label:{value:"Count",angle:-90,position:"insideLeft",offset:0,style:{textAnchor:"middle",fontSize:9}}}),c.jsx(lt,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"},content:({active:a,payload:i,label:o})=>{if(!a||!i||!i.length)return null;const s=i[0].payload;return c.jsxs("div",{className:"bg-card border border-border rounded-md p-2 shadow-sm",children:[c.jsx("div",{className:"text-[10px] font-medium mb-1.5",children:o}),c.jsx("div",{className:"space-y-0.5 text-[10px]",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-purple-400"}),c.jsx("span",{className:"text-muted-foreground",children:"Launched:"}),c.jsx("span",{className:"font-medium ml-auto",children:s.experiments})]})})]})}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px",paddingTop:"2px"},iconType:"circle",iconSize:6,verticalAlign:"bottom",height:20}),c.jsx(cr,{type:"monotone",dataKey:"experiments",stroke:"#a78bfa",strokeWidth:2,dot:{fill:"#a78bfa",r:3},activeDot:{r:5},name:"Launched"})]})})]})}const LP={COMPLETED:"#22c55e",RUNNING:"#3b82f6",FAILED:"#ef4444",PENDING:"#eab308",CANCELLED:"#6b7280",UNKNOWN:"#a78bfa"};function mde({experiments:e}){const t=N.useMemo(()=>{const n=new Map;return e.forEach(a=>{const i=a.status,o=n.get(i)||0;n.set(i,o+1)}),Array.from(n.entries()).map(([a,i])=>({name:a,value:i,color:LP[a]||LP.UNKNOWN})).sort((a,i)=>i.value-a.value)},[e]),r=t.reduce((n,a)=>n+a.value,0);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Experiments Distribution"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",r]})]}),t.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No data available"}):c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(hf,{children:[c.jsx(Mr,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:65,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,a)=>c.jsx(Oa,{fill:n.color},`cell-${a}`))}),c.jsx(lt,{formatter:n=>[n,"Count"],contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})]})}const gde=[{value:"7days",label:"7 Days",days:7},{value:"1month",label:"1 Month",days:30},{value:"3months",label:"3 Months",days:90}];function vde({data:e,timeRange:t}){const r=N.useMemo(()=>{const u=gde.find(h=>h.value===t);if(!u)return[];const f=new Date,d=new Map;for(let h=0;h{const p=fi(new Date(h.date),"yyyy-MM-dd");d.has(p)&&d.set(p,{totalCost:h.totalCost,totalTokens:h.totalTokens,inputTokens:h.inputTokens,outputTokens:h.outputTokens,cacheReadInputTokens:h.cacheReadInputTokens,cacheCreationInputTokens:h.cacheCreationInputTokens})}),Array.from(d.entries()).map(([h,p])=>({date:h,displayDate:fi(new Date(h),"MMM dd"),totalCost:p.totalCost,totalTokens:p.totalTokens,inputTokens:p.inputTokens,outputTokens:p.outputTokens,cacheReadInputTokens:p.cacheReadInputTokens,cacheCreationInputTokens:p.cacheCreationInputTokens})).sort((h,p)=>h.date.localeCompare(p.date))},[e,t]),n=N.useMemo(()=>r.reduce((u,f)=>u+f.totalCost,0),[r]),a=N.useMemo(()=>r.reduce((u,f)=>u+f.totalTokens,0),[r]),i=N.useMemo(()=>r.reduce((u,f)=>u+f.inputTokens,0),[r]),o=N.useMemo(()=>r.reduce((u,f)=>u+f.outputTokens,0),[r]),s=N.useMemo(()=>r.reduce((u,f)=>u+f.cacheReadInputTokens,0),[r]),l=N.useMemo(()=>r.reduce((u,f)=>u+f.cacheCreationInputTokens,0),[r]);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Cost & Token Usage"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["$",n.toFixed(4)," • ",a.toLocaleString()," tokens (in:",i.toLocaleString()," out:",o.toLocaleString()," cache-r:",s.toLocaleString()," cache-c:",l.toLocaleString(),")"]})]}),c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(df,{data:r,margin:{left:5,right:45,top:5,bottom:0},children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e2e8f0",opacity:.5}),c.jsx(_r,{dataKey:"displayDate",tick:{fontSize:9},angle:-45,textAnchor:"end",height:40}),c.jsx(yr,{yAxisId:"tokens",tick:{fontSize:9},width:40,tickFormatter:u=>u>=1e6?`${(u/1e6).toFixed(1)}M`:u>=1e3?`${(u/1e3).toFixed(1)}K`:u.toString(),label:{value:"Tokens",angle:-90,position:"insideLeft",offset:0,style:{textAnchor:"middle",fontSize:9}}}),c.jsx(yr,{yAxisId:"cost",orientation:"right",tick:{fontSize:9},width:45,tickFormatter:u=>u>=1?`$${u.toFixed(2)}`:u>=.01?`$${u.toFixed(3)}`:`$${u.toFixed(4)}`,label:{value:"Cost (USD)",angle:90,position:"insideRight",offset:0,style:{textAnchor:"middle",fontSize:9}}}),c.jsx(lt,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"},content:({active:u,payload:f,label:d})=>{if(!u||!f||!f.length)return null;const h=f[0].payload;return c.jsxs("div",{className:"bg-card border border-border rounded-md p-2 shadow-sm",children:[c.jsx("div",{className:"text-[10px] font-medium mb-1.5",children:d}),c.jsxs("div",{className:"space-y-0.5 text-[10px]",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-emerald-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Cost:"}),c.jsxs("span",{className:"font-medium ml-auto",children:["$",h.totalCost.toFixed(4)]})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Total Tokens:"}),c.jsx("span",{className:"font-medium ml-auto",children:h.totalTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-purple-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Input:"}),c.jsx("span",{className:"font-medium ml-auto",children:h.inputTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-orange-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Output:"}),c.jsx("span",{className:"font-medium ml-auto",children:h.outputTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-cyan-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Cache Read:"}),c.jsx("span",{className:"font-medium ml-auto",children:h.cacheReadInputTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-pink-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Cache Creation:"}),c.jsx("span",{className:"font-medium ml-auto",children:h.cacheCreationInputTokens.toLocaleString()})]})]})]})}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px",paddingTop:"2px"},iconType:"circle",iconSize:6,verticalAlign:"bottom",height:20}),c.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"totalTokens",stroke:"#3b82f6",strokeWidth:2,dot:{fill:"#3b82f6",r:3},activeDot:{r:5},name:"Total Tokens"}),c.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"inputTokens",stroke:"#a855f7",strokeWidth:2,dot:{fill:"#a855f7",r:3},activeDot:{r:5},name:"Input"}),c.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"outputTokens",stroke:"#f59e0b",strokeWidth:2,dot:{fill:"#f59e0b",r:3},activeDot:{r:5},name:"Output"}),c.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"cacheReadInputTokens",stroke:"#06b6d4",strokeWidth:2,dot:{fill:"#06b6d4",r:3},activeDot:{r:5},name:"Cache Read"}),c.jsx(cr,{yAxisId:"tokens",type:"monotone",dataKey:"cacheCreationInputTokens",stroke:"#ec4899",strokeWidth:2,dot:{fill:"#ec4899",r:3},activeDot:{r:5},name:"Cache Creation"}),c.jsx(cr,{yAxisId:"cost",type:"monotone",dataKey:"totalCost",stroke:"#10b981",strokeWidth:2,dot:{fill:"#10b981",r:3},activeDot:{r:5},name:"Cost"})]})})]})}const FP=["#8b5cf6","#3b82f6","#10b981","#f59e0b","#ef4444","#ec4899","#06b6d4","#84cc16","#f97316","#6366f1"];function yde({data:e}){const t=e&&e.length>0?e.reduce((n,a)=>n+a.count,0):0,r=e&&e.length>0?e.map(n=>({name:n.model,value:n.count})):[];return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Model Distribution"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",t]})]}),!e||e.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No model data available"}):c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(hf,{children:[c.jsx(Mr,{data:r,cx:"50%",cy:"50%",labelLine:!1,label:n=>`${(n.value/t*100).toFixed(1)}%`,outerRadius:65,dataKey:"value",style:{fontSize:"10px"},children:r.map((n,a)=>c.jsx(Oa,{fill:FP[a%FP.length]},`cell-${a}`))}),c.jsx(lt,{formatter:n=>[n,"Count"],contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})]})}const zP=[{value:"7days",label:"7 Days",days:7},{value:"1month",label:"1 Month",days:30},{value:"3months",label:"3 Months",days:90}];function xde(){var p,g,m,y,x;const{selectedTeamId:e}=wa(),[t,r]=N.useState("7days"),{data:n,isLoading:a}=rf(e||""),{data:i,isLoading:o}=sB(e||"",{enabled:!!e}),s=((p=zP.find(v=>v.value===t))==null?void 0:p.days)||30,{data:l,isLoading:u}=lB(e||"",s),{data:f,isLoading:d}=cB(e||""),h=N.useMemo(()=>{if(!i)return[];const v=new Date,b=t==="7days"?yb(v,7):t==="1month"?_y(v,1):_y(v,3);return i.filter(S=>{const w=new Date(S.createdAt);return w>=b&&w<=v})},[i,t]);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Dashboard"}),c.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"Overview of your team's experiments and activity"})]}),c.jsx("div",{children:c.jsx("h2",{className:"text-sm font-semibold text-foreground mb-1.5",children:"Overview"})}),a?c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:[c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"})]}):c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:[c.jsx(ne,{children:c.jsx(ie,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"EXPERIMENTS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalExperiments)||0})]}),c.jsx("div",{className:"p-1.5 bg-purple-100 rounded-lg",children:c.jsx(hb,{className:"h-3.5 w-3.5 text-purple-600"})})]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"AGENTS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalAgents)||0})]}),c.jsx("div",{className:"p-1.5 bg-blue-100 rounded-lg",children:c.jsx(Gr,{className:"h-3.5 w-3.5 text-blue-600"})})]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"SESSIONS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalSessions)||0})]}),c.jsx("div",{className:"p-1.5 bg-green-100 rounded-lg",children:c.jsx(X3,{className:"h-3.5 w-3.5 text-green-600"})})]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"TOKENS"}),c.jsxs("p",{className:"text-base font-bold tabular-nums text-foreground",children:[(((g=n==null?void 0:n.aggregatedUsage)==null?void 0:g.totalTokens)||0).toLocaleString(),c.jsxs("span",{className:"text-muted-foreground text-[10px] ml-1 font-normal",children:["(",(((m=n==null?void 0:n.aggregatedUsage)==null?void 0:m.inputTokens)||0).toLocaleString(),"↓ ",(((y=n==null?void 0:n.aggregatedUsage)==null?void 0:y.outputTokens)||0).toLocaleString(),"↑)"]})]})]}),c.jsx("div",{className:"p-1.5 bg-orange-100 rounded-lg",children:c.jsx(w3,{className:"h-3.5 w-3.5 text-orange-600"})})]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"COST"}),c.jsxs("p",{className:"text-base font-bold tabular-nums text-foreground",children:["$",(((x=n==null?void 0:n.aggregatedUsage)==null?void 0:x.totalCost)||0).toFixed(4)]})]}),c.jsx("div",{className:"p-1.5 bg-emerald-100 rounded-lg",children:c.jsx(c_,{className:"h-3.5 w-3.5 text-emerald-600"})})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Activity"}),c.jsx("div",{className:"flex gap-1",children:zP.map(v=>c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>r(v.value),className:`h-7 px-2 text-[11px] transition-colors ${t===v.value?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:v.label},v.value))})]}),c.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:o?c.jsx(je,{className:"h-60 w-full"}):c.jsx(mde,{experiments:h||[]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:o?c.jsx(je,{className:"h-60 w-full"}):c.jsx(pde,{experiments:h||[],timeRange:t})})})]}),c.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:d?c.jsx(je,{className:"h-60 w-full"}):c.jsx(yde,{data:f||[]})})}),c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:u?c.jsx(je,{className:"h-60 w-full"}):l?c.jsx(vde,{data:l,timeRange:t}):c.jsx("div",{className:"flex items-center justify-center h-60 text-xs text-muted-foreground",children:"No usage data available for this time range"})})})]})]})]})}function bde(){const e=Xc();return KE({mutationFn:async t=>(await Y_(X_.deleteExperiments,{experimentIds:t})).deleteExperiments,onSuccess:()=>{e.invalidateQueries({queryKey:["experiments"]}),e.invalidateQueries({queryKey:["experiment"]})}})}const Il=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{className:"relative w-full overflow-auto",children:c.jsx("table",{ref:r,className:he("w-full caption-bottom text-sm",e),...t})}));Il.displayName="Table";const Dl=N.forwardRef(({className:e,...t},r)=>c.jsx("thead",{ref:r,className:he("[&_tr]:border-b",e),...t}));Dl.displayName="TableHeader";const Rl=N.forwardRef(({className:e,...t},r)=>c.jsx("tbody",{ref:r,className:he("[&_tr:last-child]:border-0",e),...t}));Rl.displayName="TableBody";const wde=N.forwardRef(({className:e,...t},r)=>c.jsx("tfoot",{ref:r,className:he("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));wde.displayName="TableFooter";const yn=N.forwardRef(({className:e,...t},r)=>c.jsx("tr",{ref:r,className:he("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));yn.displayName="TableRow";const Ge=N.forwardRef(({className:e,...t},r)=>c.jsx("th",{ref:r,className:he("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",e),...t}));Ge.displayName="TableHead";const Ye=N.forwardRef(({className:e,...t},r)=>c.jsx("td",{ref:r,className:he("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));Ye.displayName="TableCell";const Sde=N.forwardRef(({className:e,...t},r)=>c.jsx("caption",{ref:r,className:he("mt-4 text-sm text-muted-foreground",e),...t}));Sde.displayName="TableCaption";function vt({className:e,variant:t="default",...r}){const n={default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"bg-slate-100 text-slate-700 border-slate-200",destructive:"bg-red-50 text-red-700 border-red-200",outline:"text-foreground",success:"bg-emerald-50 text-emerald-700 border-emerald-200",warning:"bg-amber-50 text-amber-700 border-amber-200",unknown:"bg-purple-50 text-purple-700 border-purple-200",info:"bg-blue-50 text-blue-700 border-blue-200"};return c.jsx("div",{className:he("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium transition-colors",n[t],e),...r})}const sa=N.forwardRef(({className:e,type:t,...r},n)=>c.jsx("input",{type:t,className:he("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...r}));sa.displayName="Input";const Rc=N.forwardRef(({className:e,...t},r)=>c.jsx("input",{type:"checkbox",className:he("h-4 w-4 rounded border-gray-300 text-primary cursor-pointer","focus:ring-0 focus:ring-offset-0 focus:outline-none","checked:border-primary checked:bg-primary",e),ref:r,...t}));Rc.displayName="Checkbox";function Nw({value:e,onChange:t,options:r,className:n,placeholder:a}){const[i,o]=N.useState(!1),s=N.useRef(null),l=r.find(u=>u.value===e);return N.useEffect(()=>{const u=f=>{s.current&&!s.current.contains(f.target)&&o(!1)};return i&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[i]),c.jsxs("div",{ref:s,className:he("relative",n),children:[c.jsxs("button",{type:"button",onClick:()=>o(!i),className:he("flex h-9 w-full items-center justify-between rounded-md border bg-background px-3 py-2 text-[13px] font-medium text-foreground","hover:bg-accent hover:text-accent-foreground transition-colors","focus:outline-none focus:border-blue-300 focus:bg-blue-50","disabled:cursor-not-allowed disabled:opacity-50"),children:[c.jsx("span",{children:(l==null?void 0:l.label)||a||"Select..."}),c.jsx(Ju,{className:he("h-3.5 w-3.5 opacity-50 transition-transform",i&&"transform rotate-180")})]}),i&&c.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-lg",children:c.jsx("div",{className:"max-h-60 overflow-auto p-1",children:r.map(u=>c.jsx("button",{type:"button",onClick:()=>{t(u.value),o(!1)},className:he("w-full rounded-sm px-2 py-1.5 text-[13px] text-left cursor-pointer transition-colors","hover:bg-accent hover:text-accent-foreground",e===u.value&&"bg-accent text-accent-foreground font-medium"),children:u.label},u.value))})})]})}function BP({values:e,onChange:t,options:r,className:n,placeholder:a}){const[i,o]=N.useState(!1),s=N.useRef(null),l=r.filter(p=>e.includes(p.value)),u=N.useMemo(()=>{const p={};return r.forEach(g=>{const m=g.group||"Other";p[m]||(p[m]=[]),p[m].push(g)}),p},[r]);N.useEffect(()=>{const p=g=>{s.current&&!s.current.contains(g.target)&&o(!1)};return i&&document.addEventListener("mousedown",p),()=>{document.removeEventListener("mousedown",p)}},[i]);const f=p=>{e.includes(p)?t(e.filter(g=>g!==p)):t([...e,p])},d=(p,g)=>{g.stopPropagation(),t(e.filter(m=>m!==p))},h=p=>{p.stopPropagation(),t([])};return c.jsxs("div",{ref:s,className:he("relative",n),children:[c.jsxs("button",{type:"button",onClick:()=>o(!i),className:he("flex min-h-9 w-full items-center justify-between rounded-md border bg-background px-3 py-1.5 text-[13px]","hover:bg-accent hover:text-accent-foreground transition-colors","focus:outline-none focus:border-blue-300 focus:bg-blue-50","disabled:cursor-not-allowed disabled:opacity-50"),children:[c.jsx("div",{className:"flex flex-wrap gap-1 flex-1",children:l.length===0?c.jsx("span",{className:"text-muted-foreground font-medium",children:a||"Select labels..."}):l.map(p=>{const g=p.group?`${p.group}:${p.label}`:p.label;return c.jsxs(vt,{variant:"outline",className:"text-[11px] px-1.5 py-0 font-normal",children:[g,c.jsx(ec,{className:"ml-1 h-3 w-3 cursor-pointer hover:text-destructive",onClick:m=>d(p.value,m)})]},p.value)})}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[l.length>0&&c.jsx(ec,{className:"h-3.5 w-3.5 opacity-50 hover:opacity-100 cursor-pointer",onClick:h}),c.jsx(Ju,{className:he("h-3.5 w-3.5 opacity-50 transition-transform",i&&"transform rotate-180")})]})]}),i&&c.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-lg",children:c.jsx("div",{className:"max-h-80 overflow-auto p-1",children:Object.entries(u).map(([p,g])=>{const m=g.map(v=>v.value),y=m.every(v=>e.includes(v)),x=()=>{if(y)t(e.filter(v=>!m.includes(v)));else{const v=[...e];m.forEach(b=>{v.includes(b)||v.push(b)}),t(v)}};return c.jsxs("div",{children:[c.jsxs("button",{type:"button",onClick:x,className:"flex items-center gap-2 w-full px-2 py-1.5 hover:bg-accent/50 transition-colors rounded-sm",title:y?"Deselect all":"Select all",children:[c.jsx("input",{type:"checkbox",checked:y,readOnly:!0,className:"h-3.5 w-3.5 rounded border-gray-300"}),c.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:p})]}),g.map(v=>c.jsxs("button",{type:"button",onClick:()=>f(v.value),className:he("w-full rounded-sm px-2 py-1.5 pl-6 text-[13px] text-left cursor-pointer transition-colors flex items-center gap-2","hover:bg-accent hover:text-accent-foreground"),children:[c.jsx("input",{type:"checkbox",checked:e.includes(v.value),onChange:()=>{},className:"h-3.5 w-3.5 rounded border-gray-300"}),c.jsx("span",{className:he(e.includes(v.value)&&"font-medium"),children:v.label})]},v.value))]},p)})})})]})}function pf({currentPage:e,totalPages:t,pageSize:r,totalItems:n,onPageChange:a,itemName:i="items"}){if(n===0)return null;if(t<=1)return c.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t bg-background",children:[c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Showing ",c.jsx("span",{className:"font-medium text-foreground",children:"1"})," to"," ",c.jsx("span",{className:"font-medium text-foreground",children:n})," of"," ",c.jsx("span",{className:"font-medium text-foreground",children:n})," ",i]}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"Page 1 of 1"})]});const s=(()=>{const f=[];if(t<=7)for(let h=0;h=t-4){f.push("...");for(let h=t-6;ha(0),disabled:e===0,className:"h-8 w-8 p-0",title:"First page",children:c.jsx(g3,{className:"h-3.5 w-3.5"})}),c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>a(Math.max(0,e-1)),disabled:e===0,className:"h-8 w-8 p-0",title:"Previous page",children:c.jsx(p3,{className:"h-3.5 w-3.5"})}),s.map((f,d)=>{if(f==="...")return c.jsx("div",{className:"h-8 w-8 flex items-center justify-center text-muted-foreground",children:c.jsx("span",{className:"text-sm",children:"..."})},`ellipsis-${d}`);const h=f,p=h===e;return c.jsx(ut,{variant:p?"default":"outline",size:"sm",onClick:()=>a(h),className:"h-8 w-8 p-0 text-xs",disabled:p,children:h+1},h)}),c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>a(Math.min(t-1,e+1)),disabled:e>=t-1,className:"h-8 w-8 p-0",title:"Next page",children:c.jsx(eh,{className:"h-3.5 w-3.5"})}),c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>a(t-1),disabled:e>=t-1,className:"h-8 w-8 p-0",title:"Last page",children:c.jsx(y3,{className:"h-3.5 w-3.5"})})]})]})}function hi(e,t,{checkForDefaultPrevented:r=!0}={}){return function(a){if(e==null||e(a),r===!1||!a.defaultPrevented)return t==null?void 0:t(a)}}function UP(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function G$(...e){return t=>{let r=!1;const n=e.map(a=>{const i=UP(a,t);return!r&&typeof i=="function"&&(r=!0),i});if(r)return()=>{for(let a=0;a{const{children:o,...s}=i,l=N.useMemo(()=>s,Object.values(s));return c.jsx(r.Provider,{value:l,children:o})};n.displayName=e+"Provider";function a(i){const o=N.useContext(r);if(o)return o;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[n,a]}function Ode(e,t=[]){let r=[];function n(i,o){const s=N.createContext(o),l=r.length;r=[...r,o];const u=d=>{var x;const{scope:h,children:p,...g}=d,m=((x=h==null?void 0:h[e])==null?void 0:x[l])||s,y=N.useMemo(()=>g,Object.values(g));return c.jsx(m.Provider,{value:y,children:p})};u.displayName=i+"Provider";function f(d,h){var m;const p=((m=h==null?void 0:h[e])==null?void 0:m[l])||s,g=N.useContext(p);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[u,f]}const a=()=>{const i=r.map(o=>N.createContext(o));return function(s){const l=(s==null?void 0:s[e])||i;return N.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return a.scopeName=e,[n,Nde(a,...t)]}function Nde(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=n.reduce((s,{useScope:l,scopeName:u})=>{const d=l(i)[`__scope${u}`];return{...s,...d}},{});return N.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}var Lc=globalThis!=null&&globalThis.document?N.useLayoutEffect:()=>{},Pde=p0[" useId ".trim().toString()]||(()=>{}),Ade=0;function Yg(e){const[t,r]=N.useState(Pde());return Lc(()=>{r(n=>n??String(Ade++))},[e]),e||(t?`radix-${t}`:"")}var kde=p0[" useInsertionEffect ".trim().toString()]||Lc;function Ede({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[a,i,o]=_de({defaultProp:t,onChange:r}),s=e!==void 0,l=s?e:a;{const f=N.useRef(e!==void 0);N.useEffect(()=>{const d=f.current;d!==s&&console.warn(`${n} is changing from ${d?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=s},[s,n])}const u=N.useCallback(f=>{var d;if(s){const h=Tde(f)?f(e):f;h!==e&&((d=o.current)==null||d.call(o,h))}else i(f)},[s,e,i,o]);return[l,u]}function _de({defaultProp:e,onChange:t}){const[r,n]=N.useState(e),a=N.useRef(r),i=N.useRef(t);return kde(()=>{i.current=t},[t]),N.useEffect(()=>{var o;a.current!==r&&((o=i.current)==null||o.call(i,r),a.current=r)},[r,a]),[r,n,i]}function Tde(e){return typeof e=="function"}function Y$(e){const t=Cde(e),r=N.forwardRef((n,a)=>{const{children:i,...o}=n,s=N.Children.toArray(i),l=s.find(Mde);if(l){const u=l.props.children,f=s.map(d=>d===l?N.Children.count(u)>1?N.Children.only(null):N.isValidElement(u)?u.props.children:null:d);return c.jsx(t,{...o,ref:a,children:N.isValidElement(u)?N.cloneElement(u,void 0,f):null})}return c.jsx(t,{...o,ref:a,children:i})});return r.displayName=`${e}.Slot`,r}function Cde(e){const t=N.forwardRef((r,n)=>{const{children:a,...i}=r;if(N.isValidElement(a)){const o=Dde(a),s=Ide(i,a.props);return a.type!==N.Fragment&&(s.ref=n?G$(n,o):o),N.cloneElement(a,s)}return N.Children.count(a)>1?N.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var $de=Symbol("radix.slottable");function Mde(e){return N.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===$de}function Ide(e,t){const r={...t};for(const n in t){const a=e[n],i=t[n];/^on[A-Z]/.test(n)?a&&i?r[n]=(...s)=>{const l=i(...s);return a(...s),l}:a&&(r[n]=a):n==="style"?r[n]={...a,...i}:n==="className"&&(r[n]=[a,i].filter(Boolean).join(" "))}return{...e,...r}}function Dde(e){var n,a;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var Rde=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pa=Rde.reduce((e,t)=>{const r=Y$(`Primitive.${t}`),n=N.forwardRef((a,i)=>{const{asChild:o,...s}=a,l=o?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),c.jsx(l,{...s,ref:i})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Lde(e,t){e&&ib.flushSync(()=>e.dispatchEvent(t))}function Fc(e){const t=N.useRef(e);return N.useEffect(()=>{t.current=e}),N.useMemo(()=>(...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)},[])}function Fde(e,t=globalThis==null?void 0:globalThis.document){const r=Fc(e);N.useEffect(()=>{const n=a=>{a.key==="Escape"&&r(a)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var zde="DismissableLayer",s0="dismissableLayer.update",Bde="dismissableLayer.pointerDownOutside",Ude="dismissableLayer.focusOutside",WP,X$=N.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Q$=N.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:o,onDismiss:s,...l}=e,u=N.useContext(X$),[f,d]=N.useState(null),h=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,p]=N.useState({}),g=$o(t,j=>d(j)),m=Array.from(u.layers),[y]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=m.indexOf(y),v=f?m.indexOf(f):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,S=v>=x,w=qde(j=>{const P=j.target,A=[...u.branches].some(_=>_.contains(P));!S||A||(a==null||a(j),o==null||o(j),j.defaultPrevented||s==null||s())},h),O=Hde(j=>{const P=j.target;[...u.branches].some(_=>_.contains(P))||(i==null||i(j),o==null||o(j),j.defaultPrevented||s==null||s())},h);return Fde(j=>{v===u.layers.size-1&&(n==null||n(j),!j.defaultPrevented&&s&&(j.preventDefault(),s()))},h),N.useEffect(()=>{if(f)return r&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(WP=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),KP(),()=>{r&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=WP)}},[f,h,r,u]),N.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),KP())},[f,u]),N.useEffect(()=>{const j=()=>p({});return document.addEventListener(s0,j),()=>document.removeEventListener(s0,j)},[]),c.jsx(Pa.div,{...l,ref:g,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:hi(e.onFocusCapture,O.onFocusCapture),onBlurCapture:hi(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:hi(e.onPointerDownCapture,w.onPointerDownCapture)})});Q$.displayName=zde;var Wde="DismissableLayerBranch",Kde=N.forwardRef((e,t)=>{const r=N.useContext(X$),n=N.useRef(null),a=$o(t,n);return N.useEffect(()=>{const i=n.current;if(i)return r.branches.add(i),()=>{r.branches.delete(i)}},[r.branches]),c.jsx(Pa.div,{...e,ref:a})});Kde.displayName=Wde;function qde(e,t=globalThis==null?void 0:globalThis.document){const r=Fc(e),n=N.useRef(!1),a=N.useRef(()=>{});return N.useEffect(()=>{const i=s=>{if(s.target&&!n.current){let l=function(){J$(Bde,r,u,{discrete:!0})};const u={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=l,t.addEventListener("click",a.current,{once:!0})):l()}else t.removeEventListener("click",a.current);n.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",i),t.removeEventListener("click",a.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function Hde(e,t=globalThis==null?void 0:globalThis.document){const r=Fc(e),n=N.useRef(!1);return N.useEffect(()=>{const a=i=>{i.target&&!n.current&&J$(Ude,r,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function KP(){const e=new CustomEvent(s0);document.dispatchEvent(e)}function J$(e,t,r,{discrete:n}){const a=r.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&a.addEventListener(e,t,{once:!0}),n?Lde(a,i):a.dispatchEvent(i)}var Xg="focusScope.autoFocusOnMount",Qg="focusScope.autoFocusOnUnmount",qP={bubbles:!1,cancelable:!0},Vde="FocusScope",Z$=N.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:a,onUnmountAutoFocus:i,...o}=e,[s,l]=N.useState(null),u=Fc(a),f=Fc(i),d=N.useRef(null),h=$o(t,m=>l(m)),p=N.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;N.useEffect(()=>{if(n){let m=function(b){if(p.paused||!s)return;const S=b.target;s.contains(S)?d.current=S:$a(d.current,{select:!0})},y=function(b){if(p.paused||!s)return;const S=b.relatedTarget;S!==null&&(s.contains(S)||$a(d.current,{select:!0}))},x=function(b){if(document.activeElement===document.body)for(const w of b)w.removedNodes.length>0&&$a(s)};document.addEventListener("focusin",m),document.addEventListener("focusout",y);const v=new MutationObserver(x);return s&&v.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",y),v.disconnect()}}},[n,s,p.paused]),N.useEffect(()=>{if(s){VP.add(p);const m=document.activeElement;if(!s.contains(m)){const x=new CustomEvent(Xg,qP);s.addEventListener(Xg,u),s.dispatchEvent(x),x.defaultPrevented||(Gde(Zde(eM(s)),{select:!0}),document.activeElement===m&&$a(s))}return()=>{s.removeEventListener(Xg,u),setTimeout(()=>{const x=new CustomEvent(Qg,qP);s.addEventListener(Qg,f),s.dispatchEvent(x),x.defaultPrevented||$a(m??document.body,{select:!0}),s.removeEventListener(Qg,f),VP.remove(p)},0)}}},[s,u,f,p]);const g=N.useCallback(m=>{if(!r&&!n||p.paused)return;const y=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,x=document.activeElement;if(y&&x){const v=m.currentTarget,[b,S]=Yde(v);b&&S?!m.shiftKey&&x===S?(m.preventDefault(),r&&$a(b,{select:!0})):m.shiftKey&&x===b&&(m.preventDefault(),r&&$a(S,{select:!0})):x===v&&m.preventDefault()}},[r,n,p.paused]);return c.jsx(Pa.div,{tabIndex:-1,...o,ref:h,onKeyDown:g})});Z$.displayName=Vde;function Gde(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if($a(n,{select:t}),document.activeElement!==r)return}function Yde(e){const t=eM(e),r=HP(t,e),n=HP(t.reverse(),e);return[r,n]}function eM(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const a=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||a?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function HP(e,t){for(const r of e)if(!Xde(r,{upTo:t}))return r}function Xde(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Qde(e){return e instanceof HTMLInputElement&&"select"in e}function $a(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&Qde(e)&&t&&e.select()}}var VP=Jde();function Jde(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=GP(e,t),e.unshift(t)},remove(t){var r;e=GP(e,t),(r=e[0])==null||r.resume()}}}function GP(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function Zde(e){return e.filter(t=>t.tagName!=="A")}var ehe="Portal",tM=N.forwardRef((e,t)=>{var s;const{container:r,...n}=e,[a,i]=N.useState(!1);Lc(()=>i(!0),[]);const o=r||a&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return o?lR.createPortal(c.jsx(Pa.div,{...n,ref:t}),o):null});tM.displayName=ehe;function the(e,t){return N.useReducer((r,n)=>t[r][n]??r,e)}var Tm=e=>{const{present:t,children:r}=e,n=rhe(t),a=typeof r=="function"?r({present:n.isPresent}):N.Children.only(r),i=$o(n.ref,nhe(a));return typeof r=="function"||n.isPresent?N.cloneElement(a,{ref:i}):null};Tm.displayName="Presence";function rhe(e){const[t,r]=N.useState(),n=N.useRef(null),a=N.useRef(e),i=N.useRef("none"),o=e?"mounted":"unmounted",[s,l]=the(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return N.useEffect(()=>{const u=td(n.current);i.current=s==="mounted"?u:"none"},[s]),Lc(()=>{const u=n.current,f=a.current;if(f!==e){const h=i.current,p=td(u);e?l("MOUNT"):p==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(f&&h!==p?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,l]),Lc(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,d=p=>{const m=td(n.current).includes(CSS.escape(p.animationName));if(p.target===t&&m&&(l("ANIMATION_END"),!a.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},h=p=>{p.target===t&&(i.current=td(n.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:N.useCallback(u=>{n.current=u?getComputedStyle(u):null,r(u)},[])}}function td(e){return(e==null?void 0:e.animationName)||"none"}function nhe(e){var n,a;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var Jg=0;function ahe(){N.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??YP()),document.body.insertAdjacentElement("beforeend",e[1]??YP()),Jg++,()=>{Jg===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Jg--}},[])}function YP(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var En=function(){return En=Object.assign||function(t){for(var r,n=1,a=arguments.length;n"u")return whe;var t=She(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},Ohe=iM(),ys="data-scroll-locked",Nhe=function(e,t,r,n){var a=e.left,i=e.top,o=e.right,s=e.gap;return r===void 0&&(r="margin"),` + .`.concat(ohe,` { + overflow: hidden `).concat(n,`; + padding-right: `).concat(s,"px ").concat(n,`; + } + body[`).concat(ys,`] { + overflow: hidden `).concat(n,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(o,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(n,`; + `),r==="padding"&&"padding-right: ".concat(s,"px ").concat(n,";")].filter(Boolean).join(""),` + } + + .`).concat(Nd,` { + right: `).concat(s,"px ").concat(n,`; + } + + .`).concat(Pd,` { + margin-right: `).concat(s,"px ").concat(n,`; + } + + .`).concat(Nd," .").concat(Nd,` { + right: 0 `).concat(n,`; + } + + .`).concat(Pd," .").concat(Pd,` { + margin-right: 0 `).concat(n,`; + } + + body[`).concat(ys,`] { + `).concat(she,": ").concat(s,`px; + } +`)},QP=function(){var e=parseInt(document.body.getAttribute(ys)||"0",10);return isFinite(e)?e:0},Phe=function(){N.useEffect(function(){return document.body.setAttribute(ys,(QP()+1).toString()),function(){var e=QP()-1;e<=0?document.body.removeAttribute(ys):document.body.setAttribute(ys,e.toString())}},[])},Ahe=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,a=n===void 0?"margin":n;Phe();var i=N.useMemo(function(){return jhe(a)},[a]);return N.createElement(Ohe,{styles:Nhe(i,!t,a,r?"":"!important")})},l0=!1;if(typeof window<"u")try{var rd=Object.defineProperty({},"passive",{get:function(){return l0=!0,!0}});window.addEventListener("test",rd,rd),window.removeEventListener("test",rd,rd)}catch{l0=!1}var Uo=l0?{passive:!1}:!1,khe=function(e){return e.tagName==="TEXTAREA"},oM=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!khe(e)&&r[t]==="visible")},Ehe=function(e){return oM(e,"overflowY")},_he=function(e){return oM(e,"overflowX")},JP=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var a=sM(e,n);if(a){var i=lM(e,n),o=i[1],s=i[2];if(o>s)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},The=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},Che=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},sM=function(e,t){return e==="v"?Ehe(t):_he(t)},lM=function(e,t){return e==="v"?The(t):Che(t)},$he=function(e,t){return e==="h"&&t==="rtl"?-1:1},Mhe=function(e,t,r,n,a){var i=$he(e,window.getComputedStyle(t).direction),o=i*n,s=r.target,l=t.contains(s),u=!1,f=o>0,d=0,h=0;do{if(!s)break;var p=lM(e,s),g=p[0],m=p[1],y=p[2],x=m-y-i*g;(g||x)&&sM(e,s)&&(d+=x,h+=g);var v=s.parentNode;s=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(f&&Math.abs(d)<1||!f&&Math.abs(h)<1)&&(u=!0),u},nd=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ZP=function(e){return[e.deltaX,e.deltaY]},eA=function(e){return e&&"current"in e?e.current:e},Ihe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Dhe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Rhe=0,Wo=[];function Lhe(e){var t=N.useRef([]),r=N.useRef([0,0]),n=N.useRef(),a=N.useState(Rhe++)[0],i=N.useState(iM)[0],o=N.useRef(e);N.useEffect(function(){o.current=e},[e]),N.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var m=ihe([e.lockRef.current],(e.shards||[]).map(eA),!0).filter(Boolean);return m.forEach(function(y){return y.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),m.forEach(function(y){return y.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=N.useCallback(function(m,y){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!o.current.allowPinchZoom;var x=nd(m),v=r.current,b="deltaX"in m?m.deltaX:v[0]-x[0],S="deltaY"in m?m.deltaY:v[1]-x[1],w,O=m.target,j=Math.abs(b)>Math.abs(S)?"h":"v";if("touches"in m&&j==="h"&&O.type==="range")return!1;var P=window.getSelection(),A=P&&P.anchorNode,_=A?A===O||A.contains(O):!1;if(_)return!1;var E=JP(j,O);if(!E)return!0;if(E?w=j:(w=j==="v"?"h":"v",E=JP(j,O)),!E)return!1;if(!n.current&&"changedTouches"in m&&(b||S)&&(n.current=w),!w)return!0;var k=n.current||w;return Mhe(k,y,m,k==="h"?b:S)},[]),l=N.useCallback(function(m){var y=m;if(!(!Wo.length||Wo[Wo.length-1]!==i)){var x="deltaY"in y?ZP(y):nd(y),v=t.current.filter(function(w){return w.name===y.type&&(w.target===y.target||y.target===w.shadowParent)&&Ihe(w.delta,x)})[0];if(v&&v.should){y.cancelable&&y.preventDefault();return}if(!v){var b=(o.current.shards||[]).map(eA).filter(Boolean).filter(function(w){return w.contains(y.target)}),S=b.length>0?s(y,b[0]):!o.current.noIsolation;S&&y.cancelable&&y.preventDefault()}}},[]),u=N.useCallback(function(m,y,x,v){var b={name:m,delta:y,target:x,should:v,shadowParent:Fhe(x)};t.current.push(b),setTimeout(function(){t.current=t.current.filter(function(S){return S!==b})},1)},[]),f=N.useCallback(function(m){r.current=nd(m),n.current=void 0},[]),d=N.useCallback(function(m){u(m.type,ZP(m),m.target,s(m,e.lockRef.current))},[]),h=N.useCallback(function(m){u(m.type,nd(m),m.target,s(m,e.lockRef.current))},[]);N.useEffect(function(){return Wo.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:h}),document.addEventListener("wheel",l,Uo),document.addEventListener("touchmove",l,Uo),document.addEventListener("touchstart",f,Uo),function(){Wo=Wo.filter(function(m){return m!==i}),document.removeEventListener("wheel",l,Uo),document.removeEventListener("touchmove",l,Uo),document.removeEventListener("touchstart",f,Uo)}},[]);var p=e.removeScrollBar,g=e.inert;return N.createElement(N.Fragment,null,g?N.createElement(i,{styles:Dhe(a)}):null,p?N.createElement(Ahe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Fhe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const zhe=phe(aM,Lhe);var uM=N.forwardRef(function(e,t){return N.createElement(Cm,En({},e,{ref:t,sideCar:zhe}))});uM.classNames=Cm.classNames;var Bhe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ko=new WeakMap,ad=new WeakMap,id={},rv=0,cM=function(e){return e&&(e.host||cM(e.parentNode))},Uhe=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=cM(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},Whe=function(e,t,r,n){var a=Uhe(t,Array.isArray(e)?e:[e]);id[r]||(id[r]=new WeakMap);var i=id[r],o=[],s=new Set,l=new Set(a),u=function(d){!d||s.has(d)||(s.add(d),u(d.parentNode))};a.forEach(u);var f=function(d){!d||l.has(d)||Array.prototype.forEach.call(d.children,function(h){if(s.has(h))f(h);else try{var p=h.getAttribute(n),g=p!==null&&p!=="false",m=(Ko.get(h)||0)+1,y=(i.get(h)||0)+1;Ko.set(h,m),i.set(h,y),o.push(h),m===1&&g&&ad.set(h,!0),y===1&&h.setAttribute(r,"true"),g||h.setAttribute(n,"true")}catch(x){console.error("aria-hidden: cannot operate on ",h,x)}})};return f(t),s.clear(),rv++,function(){o.forEach(function(d){var h=Ko.get(d)-1,p=i.get(d)-1;Ko.set(d,h),i.set(d,p),h||(ad.has(d)||d.removeAttribute(n),ad.delete(d)),p||d.removeAttribute(r)}),rv--,rv||(Ko=new WeakMap,Ko=new WeakMap,ad=new WeakMap,id={})}},Khe=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),a=Bhe(e);return a?(n.push.apply(n,Array.from(a.querySelectorAll("[aria-live], script"))),Whe(n,a,r,"aria-hidden")):function(){return null}},$m="Dialog",[fM]=Ode($m),[qhe,wn]=fM($m),dM=e=>{const{__scopeDialog:t,children:r,open:n,defaultOpen:a,onOpenChange:i,modal:o=!0}=e,s=N.useRef(null),l=N.useRef(null),[u,f]=Ede({prop:n,defaultProp:a??!1,onChange:i,caller:$m});return c.jsx(qhe,{scope:t,triggerRef:s,contentRef:l,contentId:Yg(),titleId:Yg(),descriptionId:Yg(),open:u,onOpenChange:f,onOpenToggle:N.useCallback(()=>f(d=>!d),[f]),modal:o,children:r})};dM.displayName=$m;var hM="DialogTrigger",Hhe=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,a=wn(hM,r),i=$o(t,a.triggerRef);return c.jsx(Pa.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":kw(a.open),...n,ref:i,onClick:hi(e.onClick,a.onOpenToggle)})});Hhe.displayName=hM;var Pw="DialogPortal",[Vhe,pM]=fM(Pw,{forceMount:void 0}),mM=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:a}=e,i=wn(Pw,t);return c.jsx(Vhe,{scope:t,forceMount:r,children:N.Children.map(n,o=>c.jsx(Tm,{present:r||i.open,children:c.jsx(tM,{asChild:!0,container:a,children:o})}))})};mM.displayName=Pw;var fp="DialogOverlay",gM=N.forwardRef((e,t)=>{const r=pM(fp,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,i=wn(fp,e.__scopeDialog);return i.modal?c.jsx(Tm,{present:n||i.open,children:c.jsx(Yhe,{...a,ref:t})}):null});gM.displayName=fp;var Ghe=Y$("DialogOverlay.RemoveScroll"),Yhe=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,a=wn(fp,r);return c.jsx(uM,{as:Ghe,allowPinchZoom:!0,shards:[a.contentRef],children:c.jsx(Pa.div,{"data-state":kw(a.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),jo="DialogContent",vM=N.forwardRef((e,t)=>{const r=pM(jo,e.__scopeDialog),{forceMount:n=r.forceMount,...a}=e,i=wn(jo,e.__scopeDialog);return c.jsx(Tm,{present:n||i.open,children:i.modal?c.jsx(Xhe,{...a,ref:t}):c.jsx(Qhe,{...a,ref:t})})});vM.displayName=jo;var Xhe=N.forwardRef((e,t)=>{const r=wn(jo,e.__scopeDialog),n=N.useRef(null),a=$o(t,r.contentRef,n);return N.useEffect(()=>{const i=n.current;if(i)return Khe(i)},[]),c.jsx(yM,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:hi(e.onCloseAutoFocus,i=>{var o;i.preventDefault(),(o=r.triggerRef.current)==null||o.focus()}),onPointerDownOutside:hi(e.onPointerDownOutside,i=>{const o=i.detail.originalEvent,s=o.button===0&&o.ctrlKey===!0;(o.button===2||s)&&i.preventDefault()}),onFocusOutside:hi(e.onFocusOutside,i=>i.preventDefault())})}),Qhe=N.forwardRef((e,t)=>{const r=wn(jo,e.__scopeDialog),n=N.useRef(!1),a=N.useRef(!1);return c.jsx(yM,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var o,s;(o=e.onCloseAutoFocus)==null||o.call(e,i),i.defaultPrevented||(n.current||(s=r.triggerRef.current)==null||s.focus(),i.preventDefault()),n.current=!1,a.current=!1},onInteractOutside:i=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,i),i.defaultPrevented||(n.current=!0,i.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const o=i.target;((u=r.triggerRef.current)==null?void 0:u.contains(o))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&a.current&&i.preventDefault()}})}),yM=N.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:a,onCloseAutoFocus:i,...o}=e,s=wn(jo,r),l=N.useRef(null),u=$o(t,l);return ahe(),c.jsxs(c.Fragment,{children:[c.jsx(Z$,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:a,onUnmountAutoFocus:i,children:c.jsx(Q$,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":kw(s.open),...o,ref:u,onDismiss:()=>s.onOpenChange(!1)})}),c.jsxs(c.Fragment,{children:[c.jsx(Jhe,{titleId:s.titleId}),c.jsx(epe,{contentRef:l,descriptionId:s.descriptionId})]})]})}),Aw="DialogTitle",xM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,a=wn(Aw,r);return c.jsx(Pa.h2,{id:a.titleId,...n,ref:t})});xM.displayName=Aw;var bM="DialogDescription",wM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,a=wn(bM,r);return c.jsx(Pa.p,{id:a.descriptionId,...n,ref:t})});wM.displayName=bM;var SM="DialogClose",jM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,a=wn(SM,r);return c.jsx(Pa.button,{type:"button",...n,ref:t,onClick:hi(e.onClick,()=>a.onOpenChange(!1))})});jM.displayName=SM;function kw(e){return e?"open":"closed"}var OM="DialogTitleWarning",[yme,NM]=jde(OM,{contentName:jo,titleName:Aw,docsSlug:"dialog"}),Jhe=({titleId:e})=>{const t=NM(OM),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return N.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},Zhe="DialogDescriptionWarning",epe=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${NM(Zhe).contentName}}.`;return N.useEffect(()=>{var i;const a=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},tpe=dM,rpe=mM,PM=gM,AM=vM,kM=xM,EM=wM,npe=jM;const Ew=tpe,ape=rpe,_M=N.forwardRef(({className:e,...t},r)=>c.jsx(PM,{ref:r,className:he("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));_M.displayName=PM.displayName;const Mm=N.forwardRef(({className:e,children:t,hideCloseButton:r=!1,...n},a)=>c.jsxs(ape,{children:[c.jsx(_M,{}),c.jsxs(AM,{ref:a,className:he("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,!r&&c.jsxs(npe,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[c.jsx(ec,{className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Mm.displayName=AM.displayName;const Im=({className:e,...t})=>c.jsx("div",{className:he("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Im.displayName="DialogHeader";const _w=({className:e,...t})=>c.jsx("div",{className:he("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});_w.displayName="DialogFooter";const Dm=N.forwardRef(({className:e,...t},r)=>c.jsx(kM,{ref:r,className:he("text-lg font-semibold leading-none tracking-tight",e),...t}));Dm.displayName=kM.displayName;const Tw=N.forwardRef(({className:e,...t},r)=>c.jsx(EM,{ref:r,className:he("text-sm text-muted-foreground",e),...t}));Tw.displayName=EM.displayName;const ipe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},ope=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],nv=[{bg:"bg-blue-100",text:"text-blue-700",border:"border-blue-300"},{bg:"bg-green-100",text:"text-green-700",border:"border-green-300"},{bg:"bg-purple-100",text:"text-purple-700",border:"border-purple-300"},{bg:"bg-orange-100",text:"text-orange-700",border:"border-orange-300"},{bg:"bg-pink-100",text:"text-pink-700",border:"border-pink-300"},{bg:"bg-cyan-100",text:"text-cyan-700",border:"border-cyan-300"},{bg:"bg-indigo-100",text:"text-indigo-700",border:"border-indigo-300"},{bg:"bg-teal-100",text:"text-teal-700",border:"border-teal-300"},{bg:"bg-amber-100",text:"text-amber-700",border:"border-amber-300"},{bg:"bg-rose-100",text:"text-rose-700",border:"border-rose-300"},{bg:"bg-violet-100",text:"text-violet-700",border:"border-violet-300"},{bg:"bg-lime-100",text:"text-lime-700",border:"border-lime-300"},{bg:"bg-fuchsia-100",text:"text-fuchsia-700",border:"border-fuchsia-300"},{bg:"bg-emerald-100",text:"text-emerald-700",border:"border-emerald-300"},{bg:"bg-sky-100",text:"text-sky-700",border:"border-sky-300"},{bg:"bg-red-100",text:"text-red-700",border:"border-red-300"},{bg:"bg-yellow-100",text:"text-yellow-700",border:"border-yellow-300"},{bg:"bg-slate-100",text:"text-slate-700",border:"border-slate-300"},{bg:"bg-zinc-100",text:"text-zinc-700",border:"border-zinc-300"},{bg:"bg-stone-100",text:"text-stone-700",border:"border-stone-300"}],av=[{bg:"bg-blue-100",text:"text-blue-700",arrow:"border-r-blue-100"},{bg:"bg-green-100",text:"text-green-700",arrow:"border-r-green-100"},{bg:"bg-purple-100",text:"text-purple-700",arrow:"border-r-purple-100"},{bg:"bg-orange-100",text:"text-orange-700",arrow:"border-r-orange-100"},{bg:"bg-pink-100",text:"text-pink-700",arrow:"border-r-pink-100"},{bg:"bg-cyan-100",text:"text-cyan-700",arrow:"border-r-cyan-100"},{bg:"bg-indigo-100",text:"text-indigo-700",arrow:"border-r-indigo-100"},{bg:"bg-teal-100",text:"text-teal-700",arrow:"border-r-teal-100"},{bg:"bg-amber-100",text:"text-amber-700",arrow:"border-r-amber-100"},{bg:"bg-rose-100",text:"text-rose-700",arrow:"border-r-rose-100"},{bg:"bg-violet-100",text:"text-violet-700",arrow:"border-r-violet-100"},{bg:"bg-lime-100",text:"text-lime-700",arrow:"border-r-lime-100"},{bg:"bg-fuchsia-100",text:"text-fuchsia-700",arrow:"border-r-fuchsia-100"},{bg:"bg-emerald-100",text:"text-emerald-700",arrow:"border-r-emerald-100"},{bg:"bg-sky-100",text:"text-sky-700",arrow:"border-r-sky-100"},{bg:"bg-red-100",text:"text-red-700",arrow:"border-r-red-100"},{bg:"bg-yellow-100",text:"text-yellow-700",arrow:"border-r-yellow-100"},{bg:"bg-slate-100",text:"text-slate-700",arrow:"border-r-slate-100"},{bg:"bg-zinc-100",text:"text-zinc-700",arrow:"border-r-zinc-100"},{bg:"bg-stone-100",text:"text-stone-700",arrow:"border-r-stone-100"}],iv=10;function spe(){const{selectedTeamId:e}=wa(),[t,r]=N.useState("ALL"),[n,a]=N.useState([]),[i,o]=N.useState([]),[s,l]=N.useState(""),[u,f]=N.useState(0),[d,h]=N.useState(new Set),[p,g]=N.useState(!1),m=bde(),{data:y}=rf(e||""),{data:x,isLoading:v}=Q_(e||"",{page:u,pageSize:iv,enabled:!!e}),b=(y==null?void 0:y.totalExperiments)||0,S=Math.ceil(b/iv),w=N.useMemo(()=>{if(!x||x.length===0)return new Map;const M=new Set;x.forEach(T=>{var F;(F=T.labels)==null||F.forEach(W=>{M.add(W.name)})});const C=Array.from(M).sort(),D=new Map;return C.forEach((T,F)=>{D.set(T,nv[F%nv.length])}),D},[x]),O=N.useMemo(()=>{if(!x||x.length===0)return new Map;const M=new Set;x.forEach(T=>{var F;(F=T.tags)==null||F.forEach(W=>{M.add(W)})});const C=Array.from(M).sort(),D=new Map;return C.forEach((T,F)=>{D.set(T,av[(F+10)%av.length])}),D},[x]),j=N.useMemo(()=>{if(!x||x.length===0)return[];const M=new Map;x.forEach(D=>{var T;(T=D.labels)==null||T.forEach(F=>{M.has(F.name)||M.set(F.name,new Set),M.get(F.name).add(F.value)})});const C=[];return Array.from(M.entries()).sort(([D],[T])=>D.localeCompare(T)).forEach(([D,T])=>{Array.from(T).sort().forEach(F=>{C.push({value:`${D}:${F}`,label:F,group:D})})}),C},[x]),P=N.useMemo(()=>{if(!x||x.length===0)return[];const M=new Set;return x.forEach(C=>{var D;(D=C.tags)==null||D.forEach(T=>M.add(T))}),Array.from(M).sort().map(C=>({value:C,label:C,group:"Tags"}))},[x]),A=N.useMemo(()=>{if(!x)return[];let M=[...x];if(s.trim()){const C=s.toLowerCase();M=M.filter(D=>{var T,F,W,H,q;return((T=D.name)==null?void 0:T.toLowerCase().includes(C))||((F=D.description)==null?void 0:F.toLowerCase().includes(C))||((W=D.id)==null?void 0:W.toLowerCase().includes(C))||((H=D.labels)==null?void 0:H.some(L=>L.name.toLowerCase().includes(C)||L.value.toLowerCase().includes(C)))||((q=D.tags)==null?void 0:q.some(L=>L.toLowerCase().includes(C)))})}return t!=="ALL"&&(M=M.filter(C=>C.status===t)),n.length>0&&(M=M.filter(C=>n.every(D=>{var W;const[T,F]=D.split(":",2);return(W=C.labels)==null?void 0:W.some(H=>H.name===T&&H.value===F)}))),i.length>0&&(M=M.filter(C=>i.every(D=>{var T;return(T=C.tags)==null?void 0:T.includes(D)}))),M.sort((C,D)=>new Date(D.createdAt).getTime()-new Date(C.createdAt).getTime()),M},[x,t,n,i,s]),_=A.length>0&&A.every(M=>d.has(M.id)),E=()=>{h(_?new Set:new Set(A.map(M=>M.id)))},k=M=>{const C=new Set(d);C.has(M)?C.delete(M):C.add(M),h(C)},R=()=>{d.size!==0&&g(!0)},z=async M=>{if(M==null||M.preventDefault(),M==null||M.stopPropagation(),d.size!==0)try{const C=await m.mutateAsync(Array.from(d));console.log(`Successfully deleted ${C} experiments`),h(new Set),g(!1)}catch(C){console.error("Failed to delete experiments:",C),alert("Failed to delete experiments. Please try again.")}};return c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Experiments"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse and manage experiments"})]}),c.jsxs("div",{className:"flex gap-2 items-center",children:[c.jsxs("div",{className:"relative w-80",children:[c.jsx(Or,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search experiments...",value:s,onChange:M=>l(M.target.value),className:"pl-8 h-9 text-[13px] font-medium focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(BP,{values:n,onChange:M=>a(M),options:j,className:"w-48",placeholder:"Filter by labels..."}),P.length>0&&c.jsx(BP,{values:i,onChange:M=>o(M),options:P,className:"w-48",placeholder:"Filter by tags..."}),c.jsx(Nw,{value:t,onChange:M=>r(M),options:ope,className:"w-40"})]})]}),c.jsx(ne,{className:"border-0 shadow-sm flex-1 flex flex-col",children:c.jsxs(ie,{className:"p-0 flex-1 overflow-auto",children:[v?c.jsx("div",{className:"p-8",children:c.jsx(je,{className:"h-24 w-full"})}):!A||A.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:s.trim()||t!=="ALL"||n.length>0||i.length>0?c.jsx(Or,{className:"h-8 w-8 text-muted-foreground/60"}):c.jsx(hb,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:s.trim()||t!=="ALL"||n.length>0||i.length>0?"No experiments match your filters":"No experiments found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:s.trim()||t!=="ALL"||n.length>0||i.length>0?"Try adjusting your filters or search query":"Experiments will appear here once created"})]}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(yn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Rc,{checked:_,onChange:E,"aria-label":"Select all experiments"}),c.jsx("button",{onClick:R,disabled:m.isPending||d.size===0,className:`inline-flex items-center justify-center h-6 w-6 rounded hover:bg-destructive/10 text-destructive transition-colors disabled:opacity-50 ${d.size===0?"invisible pointer-events-none":""}`,title:d.size>0?`Delete ${d.size} ${d.size===1?"experiment":"experiments"}`:"",children:c.jsx(by,{className:"h-3.5 w-3.5"})}),c.jsx("span",{children:"ID"})]})}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Name"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Labels"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Tags"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:A.map((M,C)=>c.jsxs(yn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Rc,{checked:d.has(M.id),onChange:()=>k(M.id),"aria-label":`Select experiment ${M.name}`}),c.jsx("div",{className:"w-6"}),c.jsx(ha,{to:`/experiments/${M.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors text-sm font-mono",children:M.id})]})}),c.jsx(Ye,{className:"py-3 text-sm font-medium text-foreground",children:M.name}),c.jsx(Ye,{className:"py-3 text-sm",children:M.labels&&M.labels.length>0?c.jsx("div",{className:"flex gap-1 flex-wrap",children:M.labels.map((D,T)=>{const F=w.get(D.name)||nv[0];return c.jsxs(vt,{variant:"outline",className:`text-xs px-2 py-0.5 font-normal ${F.bg} ${F.text} ${F.border}`,children:[D.name,": ",D.value]},T)})}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm",children:M.tags&&M.tags.length>0?c.jsx("div",{className:"flex flex-wrap gap-x-1 gap-y-1",children:M.tags.map((D,T)=>{const F=O.get(D)||av[0];return c.jsxs("span",{className:"inline-flex items-stretch",children:[c.jsx("span",{className:`border-y-[10px] border-y-transparent border-r-[7px] ${F.arrow}`,style:{width:0}}),c.jsx("span",{className:`inline-flex items-center text-xs pl-1 pr-1.5 ${F.bg} ${F.text} rounded-r-sm font-medium`,children:D})]},T)})}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:ipe[M.status],children:M.status})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:hn(new Date(M.createdAt),{addSuffix:!0})})]},M.id))})]})}),c.jsx(pf,{currentPage:u,totalPages:S,pageSize:iv,totalItems:b,onPageChange:f,itemName:"experiments"})]})}),c.jsx(Ew,{open:p,onOpenChange:g,children:c.jsxs(Mm,{className:"pointer-events-auto sm:max-w-[440px]",children:[c.jsxs(Im,{className:"space-y-3",children:[c.jsxs(Dm,{className:"text-lg font-semibold text-foreground",children:["Delete ",d.size===1?"Experiment":"Experiments"]}),c.jsxs(Tw,{className:"text-sm text-muted-foreground leading-relaxed",children:["You are about to delete ",c.jsx("span",{className:"font-medium text-foreground",children:d.size})," ",d.size===1?"experiment":"experiments",". This action cannot be undone."]})]}),c.jsxs(_w,{className:"gap-2 sm:gap-2",children:[c.jsx(ut,{type:"button",variant:"outline",onClick:M=>{M.preventDefault(),M.stopPropagation(),g(!1)},disabled:m.isPending,className:"h-9",children:"Cancel"}),c.jsx(ut,{type:"button",variant:"destructive",onClick:z,disabled:m.isPending,className:"h-9",children:m.isPending?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"mr-2",children:"Deleting..."}),c.jsx("span",{className:"inline-block h-3 w-3 animate-spin rounded-full border-2 border-solid border-current border-r-transparent"})]}):c.jsxs(c.Fragment,{children:[c.jsx(by,{className:"h-3.5 w-3.5 mr-2"}),"Delete"]})})]})]})})]})}function TM(e){const{data:t,...r}=Ip(e),n=N.useMemo(()=>{const a={};return((t==null?void 0:t.metrics)||[]).forEach(o=>{const s=o.key||"unknown";a[s]||(a[s]=[]),a[s].push(o)}),Object.keys(a).forEach(o=>{a[o].sort((s,l)=>new Date(s.createdAt).getTime()-new Date(l.createdAt).getTime())}),a},[t==null?void 0:t.metrics]);return{...r,data:n,metricKeys:Object.keys(n)}}const lpe="modulepreload",upe=function(e){return"/static/"+e},tA={},cpe=function(t,r,n){let a=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),s=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=Promise.allSettled(r.map(l=>{if(l=upe(l),l in tA)return;tA[l]=!0;const u=l.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":lpe,u||(d.as="script"),d.crossOrigin="",d.href=l,s&&d.setAttribute("nonce",s),document.head.appendChild(d),u)return new Promise((h,p)=>{d.addEventListener("load",h),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(o){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=o,window.dispatchEvent(s),!s.defaultPrevented)throw o}return a.then(o=>{for(const s of o||[])s.status==="rejected"&&i(s.reason);return t().catch(i)})};function fpe(e){const{data:t,...r}=Ip(e),{runMetrics:n,availableMetrics:a}=N.useMemo(()=>{const i=(t==null?void 0:t.metrics)||[];if(i.length===0)return{runMetrics:[],availableMetrics:[]};const o=new Map,s=new Set;[...i].sort((f,d)=>new Date(f.createdAt).getTime()-new Date(d.createdAt).getTime()).forEach(f=>{!f.key||f.value===null||(s.add(f.key),o.has(f.runId)||o.set(f.runId,new Map),o.get(f.runId).set(f.key,f.value))});const u=[];return o.forEach((f,d)=>{const h={};f.forEach((p,g)=>{h[g]=p}),u.push({runId:d,metrics:h})}),{runMetrics:u,availableMetrics:Array.from(s).sort()}},[t==null?void 0:t.metrics]);return{...r,runMetrics:n,availableMetrics:a}}function dpe(e,t,r){let n=!1;for(const a of r){const i=e.metrics[a.key],o=t.metrics[a.key];if(i===void 0||o===void 0)return!1;if(a.direction==="maximize"){if(io&&(n=!0)}else{if(i>o)return!1;icpe(()=>import("./react-plotly-C5KGg_lj.js").then(e=>e.r),[])),Ta=["#0ea5e9","#8b5cf6","#ec4899","#f59e0b","#10b981","#ef4444","#6366f1","#14b8a6"],rA="#10b981",nA="#9ca3af",aA="#f59e0b";function mpe({metrics:e,experimentId:t,title:r="Metrics",description:n}){const a=Object.keys(e),[i,o]=N.useState(a[0]||""),[s,l]=N.useState("timeline"),[u,f]=N.useState([]),{runMetrics:d,availableMetrics:h}=fpe(t),p=N.useMemo(()=>{const j=[];return Object.values(e).forEach(P=>{j.push(...P)}),j.length===0?null:j[0].runId},[e]),g=N.useMemo(()=>u.length===0?d:d.filter(j=>u.every(P=>j.metrics[P.key]!==void 0)),[d,u]),m=N.useMemo(()=>u.length<2||g.length<2?new Set:hpe(g,u),[g,u]),y=N.useMemo(()=>{var P;if(a.length===0||!i)return[];const j=[];return e[i]&&e[i].forEach((A,_)=>{A.value!==null&&j.push({timestamp:new Date(A.createdAt).getTime(),index:_,time:fi(new Date(A.createdAt),"MMM dd HH:mm:ss"),value:A.value,runId:A.runId})}),j.sort((A,_)=>A.timestamp-_.timestamp),j.forEach((A,_)=>{A.index=_}),console.log("[MetricsChart] Selected key:",i),console.log("[MetricsChart] Total metrics for this key:",(P=e[i])==null?void 0:P.length),console.log("[MetricsChart] Total data points after processing:",j.length),console.log("[MetricsChart] All data points:",j),j},[e,a,i]),x=N.useMemo(()=>{if(u.length<2)return{all:[],paretoLine:[]};const j=u[0],P=u[1],A=u.length>=3?u[2]:void 0,_=g.map(k=>({runId:k.runId,x:k.metrics[j.key],y:k.metrics[P.key],z:A?k.metrics[A.key]:void 0,isParetoOptimal:m.has(k.runId),metrics:k.metrics})),E=_.filter(k=>k.isParetoOptimal).sort((k,R)=>k.x-R.x);return{all:_,paretoLine:E}},[g,u,m]),v=N.useMemo(()=>{if(u.length!==3||x.all.length===0)return null;const j=[...x.paretoLine].sort((k,R)=>k.x!==R.x?k.x-R.x:k.y!==R.y?k.y-R.y:(k.z||0)-(R.z||0)),P=x.all.find(k=>k.runId===p),A=j.filter(k=>k.runId!==p),_=x.all.filter(k=>!k.isParetoOptimal&&k.runId!==p),E=[{x:_.map(k=>k.x),y:_.map(k=>k.y),z:_.map(k=>k.z),mode:"markers",type:"scatter3d",name:"Dominated",showlegend:!1,marker:{size:5,color:nA,opacity:.4,symbol:"circle",line:{color:"#6b7280",width:1,opacity:.3}},customdata:_.map(k=>[k.runId,k.x,k.y,k.z]),hovertemplate:`Run: %{customdata[0]}
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#fafafa",bordercolor:"#d1d5db",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}},{x:A.map(k=>k.x),y:A.map(k=>k.y),z:A.map(k=>k.z),mode:"markers",type:"scatter3d",name:"Pareto Optimal",showlegend:!1,marker:{size:5,color:rA,symbol:"circle",opacity:.95,line:{color:"#059669",width:1,opacity:.8}},customdata:A.map(k=>[k.runId,k.x,k.y,k.z]),hovertemplate:`Run: %{customdata[0]}
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#f0fdf4",bordercolor:"#86efac",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}}];return P&&E.push({x:[P.x],y:[P.y],z:[P.z],mode:"markers",type:"scatter3d",name:"Start Point",showlegend:!1,marker:{size:5,color:aA,symbol:"circle",opacity:1,line:{color:"#d97706",width:1,opacity:1}},customdata:[[P.runId,P.x,P.y,P.z]],hovertemplate:`Run: %{customdata[0]} (StartPoint)
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#fef3c7",bordercolor:"#fcd34d",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}}),E},[x,u,p]),b=j=>{o(j)},S=j=>{u.length>=3||u.some(P=>P.key===j)||f([...u,{key:j,direction:"maximize"}])},w=j=>{f(u.filter(P=>P.key!==j))},O=j=>{f(u.map(P=>P.key===j?{...P,direction:P.direction==="maximize"?"minimize":"maximize"}:P))};return a.length===0?c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-3",children:[c.jsx(ot,{className:"text-sm",children:r}),n&&c.jsx(Qt,{className:"text-xs",children:n})]}),c.jsx(ie,{children:c.jsx("div",{className:"flex h-48 items-center justify-center text-sm text-muted-foreground",children:"No metrics data available"})})]}):c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-3",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx(ot,{className:"text-sm",children:r}),n&&c.jsx(Qt,{className:"text-xs",children:n})]}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>l("timeline"),className:`h-7 px-3 text-xs transition-colors ${s==="timeline"?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:"Timeline"}),c.jsx(ut,{variant:"outline",size:"sm",onClick:()=>l("pareto"),className:`h-7 px-3 text-xs transition-colors ${s==="pareto"?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:"Pareto"})]})]}),s==="timeline"?c.jsx("div",{className:"flex flex-wrap gap-1.5 pt-3",children:a.map((j,P)=>c.jsx(vt,{variant:i===j?"default":"outline",className:"cursor-pointer text-xs px-2 py-0.5",style:{backgroundColor:i===j?Ta[P%Ta.length]:void 0},onClick:()=>b(j),children:j},j))}):c.jsxs("div",{className:"space-y-2 pt-3",children:[c.jsx("div",{className:"flex flex-wrap gap-1.5",children:h.map((j,P)=>{const A=u.find(E=>E.key===j),_=(A==null?void 0:A.direction)==="maximize";return c.jsxs(vt,{variant:A?"default":"outline",className:"cursor-pointer text-xs px-2 py-1 transition-colors relative",style:{backgroundColor:A?Ta[P%Ta.length]:void 0,borderColor:A?Ta[P%Ta.length]:void 0},onClick:()=>{A?O(j):u.length<3&&S(j)},onContextMenu:E=>{E.preventDefault(),A&&w(j)},children:[j,A&&c.jsx("span",{className:"ml-1 text-[10px] opacity-90",children:_?"↑":"↓"})]},j)})}),u.length>0&&c.jsx("div",{className:"text-xs text-gray-500 italic",children:"Click: toggle direction ↑↓ • Right-click: remove"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:u.length===0?c.jsx("span",{children:"Click metrics to select (up to 3)"}):u.length<2?c.jsx("span",{children:"Select at least 2 metrics for analysis"}):c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsxs("span",{children:["Runs: ",g.length]}),m.size>0&&c.jsxs("span",{className:"text-emerald-600 font-medium",children:["Pareto Optimal: ",m.size]})]})})]})]}),c.jsx(ie,{className:"pt-0",children:s==="timeline"?i?c.jsx(Ar,{width:"100%",height:280,children:c.jsxs(df,{data:y,margin:{top:5,right:20,left:10,bottom:5},onClick:j=>{if(j&&j.activePayload&&j.activePayload[0]){const P=j.activePayload[0].payload;P.runId&&window.open(`/runs/${P.runId}`,"_blank")}},children:[c.jsx(oa,{strokeDasharray:"3 3"}),c.jsx(_r,{dataKey:"index",label:{value:"Index",position:"insideBottom",offset:-5,style:{fontSize:10}},type:"number",domain:["dataMin","dataMax"],tick:{fontSize:10}}),c.jsx(yr,{label:{value:"Value",angle:-90,position:"insideLeft",style:{fontSize:10}},tick:{fontSize:10}}),c.jsx(lt,{cursor:{strokeDasharray:"5 5",stroke:"#94a3b8",strokeWidth:1},contentStyle:{backgroundColor:"transparent",border:"none",padding:0},content:({active:j,payload:P})=>{if(!j||!P||P.length===0)return null;const A=P[0].payload;return A.runId?c.jsxs("div",{style:{backgroundColor:"#f9fafb",border:"1px solid #d1d5db",borderRadius:"6px",padding:"8px 12px",boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)",fontFamily:"system-ui, -apple-system, sans-serif",lineHeight:"1.4"},children:[c.jsxs("div",{style:{fontWeight:600,fontSize:"10px"},children:["Run: ",A.runId]}),c.jsxs("div",{style:{fontSize:"10px"},children:[i,": ",typeof A.value=="number"?A.value.toFixed(4):A.value]})]}):null}}),c.jsx(cr,{type:"monotone",dataKey:"value",name:i,stroke:Ta[a.indexOf(i)%Ta.length],strokeWidth:2,dot:{r:3,style:{cursor:"pointer"}},activeDot:{r:5,style:{cursor:"pointer"}},connectNulls:!0})]})}):c.jsx("div",{className:"flex h-48 items-center justify-center text-sm text-muted-foreground",children:"Select a metric to display"}):u.length<2?c.jsx("div",{className:"flex h-80 items-center justify-center text-sm text-muted-foreground",children:"Select at least 2 metrics for Pareto analysis"}):x.all.length===0?c.jsx("div",{className:"flex h-80 items-center justify-center text-sm text-muted-foreground",children:"No runs with complete data for selected metrics"}):u.length===3?c.jsxs("div",{className:"w-full h-[550px] rounded-lg overflow-hidden",style:{background:"linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%)"},children:[c.jsx("style",{children:` + #pareto-3d-plot .nsewdrag { + cursor: default !important; + } + #pareto-3d-plot .nsewdrag.cursor-crosshair { + cursor: default !important; + } + `}),c.jsx(N.Suspense,{fallback:c.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:c.jsxs("div",{className:"text-center space-y-2",children:[c.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-emerald-500 mx-auto"}),c.jsx("div",{children:"Loading 3D visualization..."})]})}),children:c.jsx(ppe,{divId:"pareto-3d-plot",data:v,onInitialized:(j,P)=>{P.on("plotly_click",A=>{var _;if(A&&A.points&&A.points[0]){const k=(_=A.points[0].customdata)==null?void 0:_[0];k&&window.open(`/runs/${k}`,"_blank")}})},onUpdate:(j,P)=>{P.removeAllListeners("plotly_click"),P.on("plotly_click",A=>{var _;if(A&&A.points&&A.points[0]){const k=(_=A.points[0].customdata)==null?void 0:_[0];k&&window.open(`/runs/${k}`,"_blank")}})},layout:{autosize:!0,transition:{duration:0},scene:{xaxis:{title:{text:`${u[0].key} (${u[0].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},yaxis:{title:{text:`${u[1].key} (${u[1].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},zaxis:{title:{text:`${u[2].key} (${u[2].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},camera:{eye:{x:1.7,y:1.7,z:1.3},center:{x:0,y:0,z:0},up:{x:0,y:0,z:1}},aspectmode:"cube"},showlegend:!1,hovermode:"closest",margin:{l:10,r:10,t:10,b:10},paper_bgcolor:"rgba(0,0,0,0)",plot_bgcolor:"rgba(0,0,0,0)",dragmode:"orbit"},config:{responsive:!0,displayModeBar:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"],modeBarButtonsToAdd:[]},style:{width:"100%",height:"100%"}})})]}):c.jsx(Ar,{width:"100%",height:400,children:c.jsxs(dde,{margin:{top:20,right:20,bottom:60,left:60},children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(_r,{type:"number",dataKey:"x",name:u[0].key,label:{value:`${u[0].key} (${u[0].direction})`,position:"insideBottom",offset:-10,style:{fontSize:10,fill:"#374151"}},tick:{fontSize:10,fill:"#6b7280"},domain:["dataMin - 0.1 * abs(dataMin)","dataMax + 0.1 * abs(dataMax)"]}),c.jsx(yr,{type:"number",dataKey:"y",name:u[1].key,label:{value:`${u[1].key} (${u[1].direction})`,angle:-90,position:"insideLeft",style:{fontSize:10,fill:"#374151"}},tick:{fontSize:10,fill:"#6b7280"},domain:["dataMin - 0.1 * abs(dataMin)","dataMax + 0.1 * abs(dataMax)"]}),c.jsx(lt,{cursor:{strokeDasharray:"3 3"},content:({active:j,payload:P})=>{var z,M;if(!j||!P||!P[0])return null;const A=P[0].payload,_=A.runId===p,E=A.isParetoOptimal,k=_?"#fef3c7":E?"#f0fdf4":"#fafafa",R=_?"#fcd34d":E?"#86efac":"#d1d5db";return c.jsxs("div",{style:{backgroundColor:k,border:`1px solid ${R}`,borderRadius:"6px",padding:"8px 12px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",fontSize:"10px"},children:[c.jsxs("div",{style:{fontWeight:600,marginBottom:"4px"},children:["Run: ",A.runId,_?" (StartPoint)":""]}),c.jsxs("div",{children:[u[0].key,": ",(z=A.x)==null?void 0:z.toFixed(4)]}),c.jsxs("div",{children:[u[1].key,": ",(M=A.y)==null?void 0:M.toFixed(4)]})]})}}),c.jsx(lo,{name:"Dominated",data:x.all.filter(j=>!j.isParetoOptimal&&j.runId!==p),fill:nA,fillOpacity:.4,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")}),c.jsx(lo,{name:"Pareto",data:x.all.filter(j=>j.isParetoOptimal&&j.runId!==p),fill:rA,fillOpacity:.95,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")}),p&&c.jsx(lo,{name:"Start",data:x.all.filter(j=>j.runId===p),fill:aA,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")})]})})})]})}function gpe({traceStats:e}){const t=N.useMemo(()=>{const{successSpans:n,errorSpans:a}=e,i=[];return n>0&&i.push({name:"Success",value:n,color:"#22c55e"}),a>0&&i.push({name:"Error",value:a,color:"#ef4444"}),i},[e]),r=e.totalSpans;return e.totalSpans===0||t.length===0?c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No trace data available"}):c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(hf,{children:[c.jsx(Mr,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:70,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,a)=>c.jsx(Oa,{fill:n.color},`cell-${a}`))}),c.jsx(lt,{formatter:n=>[n,"Spans"],contentStyle:{fontSize:"10px",backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})}function vpe({runs:e}){const t=N.useMemo(()=>!e||e.length===0?[]:[{name:"COMPLETED",value:e.filter(a=>a.status==="COMPLETED").length,color:"#22c55e"},{name:"RUNNING",value:e.filter(a=>a.status==="RUNNING").length,color:"#3b82f6"},{name:"FAILED",value:e.filter(a=>a.status==="FAILED").length,color:"#ef4444"},{name:"PENDING",value:e.filter(a=>a.status==="PENDING").length,color:"#eab308"},{name:"CANCELLED",value:e.filter(a=>a.status==="CANCELLED").length,color:"#6b7280"},{name:"UNKNOWN",value:e.filter(a=>a.status==="UNKNOWN").length,color:"#a78bfa"}].filter(a=>a.value>0),[e]),r=e.length;return e.length===0||t.length===0?c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No run data available"}):c.jsx(Ar,{width:"100%",height:200,children:c.jsxs(hf,{children:[c.jsx(Mr,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:70,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,a)=>c.jsx(Oa,{fill:n.color},`cell-${a}`))}),c.jsx(lt,{formatter:n=>[n,"Count"],contentStyle:{fontSize:"10px",backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})}const Cw=N.createContext(void 0),mf=N.forwardRef(({className:e,value:t,onValueChange:r,...n},a)=>c.jsx(Cw.Provider,{value:{value:t,onValueChange:r},children:c.jsx("div",{ref:a,className:he("w-full",e),...n})}));mf.displayName="Tabs";const gf=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));gf.displayName="TabsList";const va=N.forwardRef(({className:e,value:t,...r},n)=>{const a=N.useContext(Cw);if(!a)throw new Error("TabsTrigger must be used within Tabs");const i=a.value===t;return c.jsx("button",{ref:n,className:he("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",i?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground",e),onClick:()=>a.onValueChange(t),...r})});va.displayName="TabsTrigger";const ya=N.forwardRef(({className:e,value:t,...r},n)=>{const a=N.useContext(Cw);if(!a)throw new Error("TabsContent must be used within Tabs");return a.value!==t?null:c.jsx("div",{ref:n,className:he("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...r})});ya.displayName="TabsContent";const iA={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},ype=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],ov=10;function xpe(){var w,O;const{id:e}=Ep(),t=Fn(),[r,n]=N.useState("overview"),[a,i]=N.useState(0),[o,s]=N.useState(""),[l,u]=N.useState("ALL"),{data:f,isLoading:d,error:h}=Ip(e),{data:p,isLoading:g}=Ay(e,{page:a,pageSize:ov}),{data:m}=Ay(e,{page:0,pageSize:1e3}),y=(m==null?void 0:m.length)||0,x=Math.ceil(y/ov),{data:v,isLoading:b}=TM(e),S=N.useMemo(()=>{if(!p)return[];let j=[...p];if(o.trim()){const P=o.toLowerCase();j=j.filter(A=>{var _;return(_=A.id)==null?void 0:_.toLowerCase().includes(P)})}return l!=="ALL"&&(j=j.filter(P=>P.status===l)),j.sort((P,A)=>new Date(A.createdAt).getTime()-new Date(P.createdAt).getTime()),j},[p,o,l]);return d?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):h||!f?c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Error"}),c.jsx(Qt,{children:"Failed to load experiment"})]}),c.jsx(ie,{children:c.jsx("p",{className:"text-destructive",children:(h==null?void 0:h.message)||"Experiment not found"})})]}):c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:f.name}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:f.id})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs(ut,{variant:"outline",size:"sm",onClick:()=>t(`/datasets?experimentId=${f.id}`),className:"h-8 gap-2",children:[c.jsx(_n,{className:"h-3.5 w-3.5"}),"Datasets"]}),c.jsx(vt,{variant:iA[f.status],children:f.status})]})]}),c.jsxs(mf,{value:r,onValueChange:n,children:[c.jsxs(gf,{children:[c.jsx(va,{value:"overview",children:"Overview"}),c.jsx(va,{value:"runs",children:"Runs"})]}),c.jsxs(ya,{value:"overview",className:"space-y-2",children:[c.jsx(ne,{children:c.jsxs(ie,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Details"}),c.jsxs("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:[f.description&&c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Description"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:f.description})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Runs"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:(m==null?void 0:m.length)||0})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Tokens"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((w=f.aggregatedUsage)==null?void 0:w.totalTokens)!==void 0&&f.aggregatedUsage.totalTokens>0?c.jsxs(c.Fragment,{children:[Number(f.aggregatedUsage.totalTokens).toLocaleString(),f.aggregatedUsage.inputTokens!==void 0&&f.aggregatedUsage.outputTokens!==void 0&&c.jsxs("span",{className:"text-muted-foreground text-xs ml-1",children:["(",Number(f.aggregatedUsage.inputTokens).toLocaleString(),"↓ ",Number(f.aggregatedUsage.outputTokens).toLocaleString(),"↑)"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Cost"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((O=f.aggregatedUsage)==null?void 0:O.totalCost)!==void 0&&f.aggregatedUsage.totalCost>0?c.jsxs(c.Fragment,{children:["$",f.aggregatedUsage.totalCost.toFixed(4)]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:f.duration>0?zr(f.duration):"-"})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Created"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:hn(new Date(f.createdAt),{addSuffix:!0})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Updated"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:hn(new Date(f.updatedAt),{addSuffix:!0})})]})]}),f.meta&&Object.keys(f.meta).length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metadata"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(f.meta).map(([j,P])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:j}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof P=="string"?P:JSON.stringify(P)})]},j))})]}),f.params&&Object.keys(f.params).length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Parameters"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(f.params).map(([j,P])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:j}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof P=="string"?P:JSON.stringify(P)})]},j))})]})]})}),m&&m.length>0&&c.jsx(ne,{children:c.jsxs(ie,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Statistics"}),c.jsxs("div",{className:"grid gap-4 grid-cols-2",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"text-xs font-semibold mb-2 text-muted-foreground uppercase tracking-wide",children:"Run Status Distribution"}),c.jsx(vpe,{runs:m})]}),c.jsxs("div",{children:[c.jsx("h4",{className:"text-xs font-semibold mb-2 text-muted-foreground uppercase tracking-wide",children:"Trace STATUS DISTRIBUTION"}),f.traceStats&&f.traceStats.totalSpans>0?c.jsx(gpe,{traceStats:f.traceStats}):c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No trace data available"})]})]})]})}),b?c.jsx(je,{className:"h-80 w-full"}):v&&Object.keys(v).length>0?c.jsx(mpe,{metrics:v,experimentId:e,title:"Metrics",description:"Switch between timeline and Pareto analysis views"}):c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-2",children:[c.jsx(ot,{className:"text-sm",children:"Metrics"}),c.jsx(Qt,{className:"text-xs",children:"No metrics data available"})]}),c.jsx(ie,{children:c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:m&&m.length>0?"No metrics logged yet":"No runs in this experiment"})})]})]}),c.jsx(ya,{value:"runs",className:"space-y-2",children:c.jsx(ne,{children:c.jsxs(ie,{className:"p-0",children:[c.jsxs("div",{className:"flex gap-2 mb-3 items-center px-4 pt-4",children:[c.jsxs("div",{className:"relative w-64",children:[c.jsx(Or,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search runs...",value:o,onChange:j=>s(j.target.value),className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(Nw,{value:l,onChange:j=>u(j),options:ype,className:"w-40"})]}),g?c.jsx("div",{className:"p-6",children:c.jsx(je,{className:"h-20 w-full"})}):!p||p.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No runs found"}):S.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No runs match your search"}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(yn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"UUID"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:S.map(j=>c.jsxs(yn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3 text-sm font-mono",children:c.jsx(ha,{to:`/runs/${j.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",children:j.id})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:iA[j.status],children:j.status})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:hn(new Date(j.createdAt),{addSuffix:!0})})]},j.id))})]})}),!g&&S&&S.length>0&&c.jsx(pf,{currentPage:a,totalPages:x,pageSize:ov,totalItems:y,onPageChange:i,itemName:"runs"})]})})})]})]})}function bpe({experiments:e}){const t=N.useMemo(()=>{const r=new Set;return e.forEach(a=>{a.params&&Object.keys(a.params).forEach(i=>r.add(i))}),Array.from(r).map(a=>{const i=e.map(l=>l.params&&a in l.params?JSON.stringify(l.params[a]):null),s=new Set(i.filter(l=>l!==null)).size>1;return{key:a,values:i,isDifferent:s}}).sort((a,i)=>a.isDifferent!==i.isDifferent?a.isDifferent?-1:1:a.key.localeCompare(i.key))},[e]);return c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Parameter Comparison"}),c.jsx(Qt,{children:"Side-by-side comparison of experiment parameters"})]}),c.jsx(ie,{children:t.length===0?c.jsx("div",{className:"flex h-32 items-center justify-center text-muted-foreground",children:"No parameters to compare"}):c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(yn,{children:[c.jsx(Ge,{className:"font-semibold",children:"Parameter"}),e.map((r,n)=>c.jsx(Ge,{className:"font-semibold",children:r.name},r.id))]})}),c.jsx(Rl,{children:t.map(r=>c.jsxs(yn,{className:r.isDifferent?"bg-yellow-50 dark:bg-yellow-950":"",children:[c.jsx(Ye,{className:"font-medium",children:r.key}),r.values.map((n,a)=>c.jsx(Ye,{className:n===null?"text-muted-foreground italic":r.isDifferent?"font-medium":"",children:n===null?"-":n},a))]},r.key))})]})})]})}const oA=["#0ea5e9","#8b5cf6","#ec4899","#f59e0b","#10b981"];function wpe({experimentIds:e}){const t=e.map(i=>TM(i)),r=t.some(i=>i.isLoading),n=N.useMemo(()=>{if(r)return[];const i=new Map;return t.forEach((o,s)=>{const l=o.data||{};Object.entries(l).forEach(([u,f])=>{f.forEach(d=>{const h=d.createdAt,p=`exp${s+1}_${u}`;i.has(h)||i.set(h,{timestamp:h,time:fi(new Date(h),"HH:mm:ss")});const g=i.get(h);g[p]=d.value})})}),Array.from(i.values()).sort((o,s)=>new Date(o.timestamp).getTime()-new Date(s.timestamp).getTime())},[t,r]),a=N.useMemo(()=>{const i=new Set;return n.length>0&&Object.keys(n[0]).forEach(o=>{o!=="timestamp"&&o!=="time"&&i.add(o)}),Array.from(i)},[n]);return r?c.jsxs(ne,{children:[c.jsx(it,{children:c.jsx(ot,{children:"Metrics Overlay"})}),c.jsx(ie,{children:c.jsx(je,{className:"h-96 w-full"})})]}):n.length===0?c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Metrics Overlay"}),c.jsx(Qt,{children:"Combined metrics visualization across experiments"})]}),c.jsx(ie,{children:c.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:"No metrics data available for comparison"})})]}):c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Metrics Overlay"}),c.jsx(Qt,{children:"Combined metrics from all selected experiments"})]}),c.jsx(ie,{children:c.jsx(Ar,{width:"100%",height:400,children:c.jsxs(df,{data:n,margin:{top:5,right:30,left:20,bottom:5},children:[c.jsx(oa,{strokeDasharray:"3 3"}),c.jsx(_r,{dataKey:"time",tick:{fontSize:10},label:{value:"Time",position:"insideBottom",offset:-5,style:{fontSize:10}}}),c.jsx(yr,{tick:{fontSize:10},label:{value:"Value",angle:-90,position:"insideLeft",style:{fontSize:10}}}),c.jsx(lt,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"0.5rem",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}}),a.map((i,o)=>c.jsx(cr,{type:"monotone",dataKey:i,stroke:oA[o%oA.length],strokeWidth:2,dot:{r:3},connectNulls:!0},i))]})})})]})}const Spe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"};function jpe(){var a;const[e]=n_(),t=((a=e.get("ids"))==null?void 0:a.split(","))||[],{data:r,isLoading:n}=RF(t);return n?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):!r||r.length<2?c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Experiment Comparison"}),c.jsx(Qt,{children:"Select at least 2 experiments to compare"})]}),c.jsx(ie,{children:c.jsx("p",{className:"text-muted-foreground",children:"No experiments selected for comparison"})})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-3xl font-bold text-foreground",children:"Experiment Comparison"}),c.jsxs("p",{className:"mt-2 text-muted-foreground",children:["Comparing ",r.length," experiments"]})]}),c.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:r.map(i=>c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsx(ot,{className:"text-lg",children:i.name}),c.jsx(vt,{variant:Spe[i.status],children:i.status})]}),i.description&&c.jsx(Qt,{children:i.description})]}),c.jsx(ie,{children:c.jsxs("dl",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("dt",{className:"text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"font-medium",children:i.duration>0?zr(i.duration):"-"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("dt",{className:"text-muted-foreground",children:"Params"}),c.jsx("dd",{className:"font-medium",children:i.params?Object.keys(i.params).length:0})]})]})})]},i.id))}),c.jsx(bpe,{experiments:r}),c.jsx(wpe,{experimentIds:t})]})}const Ope={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},Npe=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],sv=10;function Ppe(){var x;const{selectedTeamId:e}=wa(),[t,r]=N.useState("ALL"),[n,a]=N.useState(""),[i,o]=N.useState(0),{data:s}=rf(e||""),{data:l,isLoading:u}=Q_(e||"",{page:0,pageSize:1e3,enabled:!!e}),f=((x=l==null?void 0:l[0])==null?void 0:x.id)||"",{data:d,isLoading:h}=Ay(f,{page:i,pageSize:sv,enabled:!!f}),p=(s==null?void 0:s.totalRuns)||0,g=Math.ceil(p/sv),m=N.useMemo(()=>{if(!d)return[];let v=[...d];if(n.trim()){const b=n.toLowerCase();v=v.filter(S=>{var w,O;return((w=S.id)==null?void 0:w.toLowerCase().includes(b))||((O=S.experimentId)==null?void 0:O.toLowerCase().includes(b))})}return t!=="ALL"&&(v=v.filter(b=>b.status===t)),v.sort((b,S)=>new Date(S.createdAt).getTime()-new Date(b.createdAt).getTime()),v},[d,t,n]),y=u||h;return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Runs"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Monitor execution runs with token usage and performance metrics"})]}),c.jsxs("div",{className:"flex gap-2 items-center",children:[c.jsxs("div",{className:"relative w-80",children:[c.jsx(Or,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search runs...",value:n,onChange:v=>a(v.target.value),className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(Nw,{value:t,onChange:v=>r(v),options:Npe,className:"w-40"})]})]}),c.jsx(ne,{className:"border-0 shadow-sm",children:c.jsxs(ie,{className:"p-0",children:[y?c.jsx("div",{className:"p-8",children:c.jsx(je,{className:"h-24 w-full"})}):!m||m.length===0?c.jsx("div",{className:"flex h-32 items-center justify-center text-sm text-muted-foreground",children:n.trim()?"No runs match your search":t!=="ALL"?`No ${t} runs found`:"No runs found"}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(yn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Run ID"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Tokens"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Duration"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Experiment"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:m.map(v=>{var O,j,P;const b=((O=v.aggregatedUsage)==null?void 0:O.totalTokens)||0,S=((j=v.aggregatedUsage)==null?void 0:j.inputTokens)||0,w=((P=v.aggregatedUsage)==null?void 0:P.outputTokens)||0;return c.jsxs(yn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3 text-sm font-mono",children:c.jsxs(ha,{to:`/runs/${v.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",title:v.id,children:[v.id.substring(0,8),"..."]})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:Ope[v.status],children:v.status})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:b>0?c.jsxs("div",{className:"flex flex-col",children:[c.jsx("span",{className:"font-semibold",children:b.toLocaleString()}),c.jsxs("span",{className:"text-xs text-muted-foreground",children:[S.toLocaleString(),"↓ ",w.toLocaleString(),"↑"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:v.duration>0?zr(v.duration):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:v.experimentId?c.jsxs(ha,{to:`/experiments/${v.experimentId}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",title:v.experimentId,children:[v.experimentId.substring(0,8),"..."]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:hn(new Date(v.createdAt),{addSuffix:!0})})]},v.id)})})]})}),c.jsx(pf,{currentPage:i,totalPages:g,pageSize:sv,totalItems:p,onPageChange:o,itemName:"runs"})]})})]})}const sA={OK:"bg-green-500",ERROR:"bg-red-500",UNSET:"bg-green-500"},lA=e=>{const t=e.semanticKind;let r=c.jsx(ci,{className:"h-3 w-3"}),n="bg-gray-100 text-gray-700 border-gray-200";switch(t){case"tool":r=c.jsx(Su,{className:"h-3 w-3"}),n="bg-lime-100 text-lime-700 border-lime-200";break;case"reasoning":r=c.jsx(Gr,{className:"h-3 w-3"}),n="bg-amber-100 text-amber-700 border-amber-200";break;case"chat":r=c.jsx(Gr,{className:"h-3 w-3"}),n="bg-sky-100 text-sky-700 border-sky-200";break;case"db":r=c.jsx(_n,{className:"h-3 w-3"}),n="bg-cyan-100 text-cyan-700 border-cyan-200";break;case"workflow":r=c.jsx(R3,{className:"h-3 w-3"}),n="bg-emerald-100 text-emerald-700 border-emerald-200";break;case"task":r=c.jsx(Su,{className:"h-3 w-3"}),n="bg-indigo-100 text-indigo-700 border-indigo-200";break;case"agent":r=c.jsx(Gr,{className:"h-3 w-3"}),n="bg-violet-100 text-violet-700 border-violet-200";break;case"unknown":default:r=c.jsx(ci,{className:"h-3 w-3"}),n="bg-slate-100 text-slate-700 border-slate-200"}return{label:t.charAt(0).toUpperCase()+t.slice(1),icon:r,badgeColor:n}};function Ape({spans:e}){const[t,r]=N.useState(()=>new Set(e.filter(v=>!v.parentSpanId||v.parentSpanId==="").map(v=>v.spanId))),[n,a]=N.useState(null),[i,o]=N.useState(!1);N.useEffect(()=>{o(!1)},[n]);const s=()=>{const v=new Set(e.map(b=>b.spanId));r(v)},l=()=>{r(new Set)},u=N.useMemo(()=>{if(!e||e.length===0)return[];const v=new Map,b=[];e.forEach(O=>{v.set(O.spanId,{span:O,children:[],depth:0})}),e.forEach(O=>{const j=v.get(O.spanId);if(!O.parentSpanId||O.parentSpanId==="")b.push(j);else{const P=v.get(O.parentSpanId);P?(j.depth=P.depth+1,P.children.push(j)):b.push(j)}});const S=O=>{O.sort((j,P)=>new Date(j.span.timestamp).getTime()-new Date(P.span.timestamp).getTime()),O.forEach(j=>S(j.children))},w=O=>{var R,z,M;O.children.forEach(C=>w(C));const j=parseInt((R=O.span.spanAttributes)==null?void 0:R["gen_ai.usage.input_tokens"])||0,P=parseInt((z=O.span.spanAttributes)==null?void 0:z["gen_ai.usage.output_tokens"])||0,A=parseInt((M=O.span.spanAttributes)==null?void 0:M["llm.usage.total_tokens"])||0,_=O.children.reduce((C,D)=>C+(D.inputTokens||0),0),E=O.children.reduce((C,D)=>C+(D.outputTokens||0),0),k=O.children.reduce((C,D)=>C+(D.totalTokens||0),0);O.inputTokens=j+_,O.outputTokens=P+E,O.totalTokens=A+k};return S(b),b.forEach(O=>w(O)),b},[e]),{minTimestamp:f,maxTimestamp:d,totalDuration:h}=N.useMemo(()=>{if(!e||e.length===0)return{minTimestamp:0,maxTimestamp:0,totalDuration:0};const v=e.map(j=>new Date(j.timestamp).getTime()),b=e.map(j=>new Date(j.timestamp).getTime()+j.duration/1e6),S=Math.min(...v),w=Math.max(...b),O=w-S;return{minTimestamp:S,maxTimestamp:w,totalDuration:O||1}},[e]),p=v=>{r(b=>{const S=new Set(b);return S.has(v)?S.delete(v):S.add(v),S})},g=v=>{const b=v/1e3,S=b/1e3,w=S/1e3;return w>=1?`${w.toFixed(2)}s`:S>=1?`${S.toFixed(2)}ms`:`${b.toFixed(2)}μs`},m=v=>{const{span:b}=v,S=new Date(b.timestamp).getTime(),w=S+b.duration/1e6,O=(S-f)/h*100,j=(w-S)/h*100,P=sA[b.statusCode]||sA.UNSET;return c.jsx("div",{className:`${P} absolute h-6 rounded flex items-center px-1.5 text-white text-[10px] font-medium overflow-hidden transition-all hover:opacity-90 hover:shadow-md cursor-pointer shadow`,style:{left:`${O}%`,width:`${Math.max(j,.8)}%`},title:`${b.spanName} +Duration: ${g(b.duration)} +Status: ${b.statusCode} +Kind: ${b.spanKind}`,children:c.jsx("span",{className:"truncate",children:g(b.duration)})})},y=v=>{const{span:b,children:S,depth:w,totalTokens:O,inputTokens:j,outputTokens:P}=v,A=S.length>0,_=t.has(b.spanId),E=lA(b),k=A&&O&&O>0;return c.jsxs("div",{children:[c.jsxs("div",{className:`flex items-center border-b border-border hover:bg-muted/30 transition-colors cursor-pointer h-10 ${(n==null?void 0:n.spanId)===b.spanId?"bg-accent":""}`,onClick:R=>{R.target.closest("button")||a(b)},children:[c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1.5 h-full min-w-0",style:{width:"320px",paddingLeft:`${w*10+8}px`,paddingRight:"8px"},children:[w>0&&c.jsx("div",{className:"absolute h-full border-l border-border/60",style:{left:`${(w-1)*10+8}px`}}),A?c.jsx("button",{onClick:()=>p(b.spanId),className:"p-0.5 hover:bg-accent rounded flex-shrink-0 transition-colors",children:_?c.jsx(Ju,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-foreground"}):c.jsx(eh,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-foreground"})}):c.jsx("div",{className:"w-[18px] flex-shrink-0"}),c.jsxs(vt,{variant:"outline",className:`${E.badgeColor} flex items-center gap-0.5 px-1.5 py-0.5 text-[11px] font-medium flex-shrink-0`,children:[E.icon,c.jsx("span",{children:E.label})]}),c.jsx("span",{className:"text-[13px] font-medium truncate text-foreground",title:b.spanName,children:b.spanName})]}),c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1 whitespace-nowrap text-foreground h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"8px"},children:[c.jsx(ci,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),c.jsx("span",{className:"text-[11px] font-mono",children:g(b.duration)})]}),c.jsx("div",{className:"flex-shrink-0 flex items-center whitespace-nowrap text-foreground h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"4px"},children:O&&O>0?c.jsxs("div",{className:"flex flex-col justify-center",children:[c.jsxs("div",{className:"font-mono flex items-center text-[11px] leading-tight",children:[k&&c.jsx("span",{className:"inline-block align-middle mr-0.5 text-muted-foreground text-[10px]",children:"∑"}),c.jsx("span",{children:O.toLocaleString()})]}),j&&P&&j>0&&P>0&&c.jsxs("div",{className:"text-muted-foreground text-[9px] font-mono leading-tight mt-0.5",children:[j.toLocaleString(),"↓ ",P.toLocaleString(),"↑"]})]}):c.jsx("span",{className:"text-muted-foreground/40 text-[11px]",children:"—"})}),c.jsx("div",{className:"flex-1 relative h-full min-w-0 flex items-center",style:{paddingLeft:"2px",paddingRight:"8px"},children:m(v)})]}),A&&_&&c.jsx("div",{children:S.map(R=>y(R))})]},b.spanId)};if(!e||e.length===0)return c.jsx(ne,{children:c.jsx(ie,{className:"p-4",children:c.jsx("div",{className:"flex h-32 items-center justify-center text-sm text-muted-foreground",children:"No traces available"})})});const x=v=>{const b=lA(v),S=v.spanAttributes||{},w=v.semanticKind,O=S["gen_ai.request.model"]||S["gen_ai.response.model"],j=S["gen_ai.request.temperature"],P=S["gen_ai.request.max_tokens"],A=S["gen_ai.request.top_p"],_=[];let E=0;for(;S[`gen_ai.prompt.${E}.role`];)_.push({role:S[`gen_ai.prompt.${E}.role`],content:S[`gen_ai.prompt.${E}.content`]}),E++;const k=[];for(E=0;S[`gen_ai.completion.${E}.role`];)k.push({role:S[`gen_ai.completion.${E}.role`],content:S[`gen_ai.completion.${E}.content`],finishReason:S[`gen_ai.completion.${E}.finish_reason`]}),E++;const R=_.length>0||k.length>0,z=S["traceloop.entity.input"],M=S["traceloop.entity.output"],C=z||M;return c.jsx(ne,{className:"mt-2 border-2 shadow-sm",children:c.jsxs(ie,{className:"p-2.5",children:[c.jsxs("div",{className:"flex items-start justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:[c.jsxs(vt,{variant:"outline",className:`${b.badgeColor} flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] flex-shrink-0`,children:[b.icon,b.label]}),c.jsx("h4",{className:"font-semibold text-[12px] truncate",children:v.spanName})]}),c.jsx(ut,{variant:"ghost",size:"sm",onClick:()=>a(null),className:"h-6 w-6 p-0 hover:bg-muted flex-shrink-0",children:c.jsx(ec,{className:"h-3 w-3"})})]}),(w==="chat"||w==="reasoning")&&O&&c.jsx("div",{className:"mb-2 pb-2 border-b",children:c.jsxs("div",{className:"flex flex-wrap gap-2 text-[10px]",children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Model:"}),c.jsx("span",{className:"font-mono text-foreground bg-muted/30 px-1.5 py-0.5 rounded",children:O})]}),j!==void 0&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Temp:"}),c.jsx("span",{className:"font-mono text-foreground",children:j})]}),P&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Max:"}),c.jsx("span",{className:"font-mono text-foreground",children:P})]}),A!==void 0&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Top-p:"}),c.jsx("span",{className:"font-mono text-foreground",children:A})]})]})}),(w==="workflow"||w==="task")&&C&&c.jsxs("div",{className:"space-y-2 mb-3",children:[z&&c.jsxs("div",{className:"border rounded p-2 bg-muted/20",children:[c.jsx("div",{className:"text-[9px] font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider flex items-center gap-1",children:c.jsx("span",{className:"px-1.5 py-0.5 bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 rounded",children:"Input"})}),c.jsx("div",{className:"text-[11px] font-mono whitespace-pre-wrap leading-relaxed text-foreground break-all",children:z})]}),M&&c.jsxs("div",{className:"border rounded p-2 bg-muted/20",children:[c.jsx("div",{className:"text-[9px] font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider flex items-center gap-1",children:c.jsx("span",{className:"px-1.5 py-0.5 bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 rounded",children:"Output"})}),c.jsx("div",{className:"text-[11px] font-mono whitespace-pre-wrap leading-relaxed text-foreground break-all",children:M})]})]}),(w==="chat"||w==="reasoning")&&R&&c.jsxs("div",{className:"space-y-1.5 mb-3",children:[_.map((D,T)=>c.jsxs("div",{className:"border rounded p-1.5 bg-muted/20",children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("span",{className:"text-[8px] font-semibold text-muted-foreground uppercase tracking-wider px-1 py-0.5 bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 rounded",children:D.role}),c.jsx("span",{className:"text-[8px] text-muted-foreground",children:"Input"})]}),c.jsx("div",{className:"text-[11px] whitespace-pre-wrap leading-relaxed text-foreground",children:D.content})]},`prompt-${T}`)),k.map((D,T)=>{let F="bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400";return D.role==="thinking"?F="bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-400":D.role==="assistant"&&(F="bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400"),c.jsxs("div",{className:"border rounded p-1.5 bg-muted/20",children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("span",{className:`text-[8px] font-semibold uppercase tracking-wider px-1 py-0.5 rounded ${F}`,children:D.role}),c.jsx("span",{className:"text-[8px] text-muted-foreground",children:"Output"}),D.finishReason&&c.jsxs("span",{className:"text-[8px] text-muted-foreground ml-auto",children:["· ",D.finishReason]})]}),c.jsx("div",{className:"text-[11px] whitespace-pre-wrap leading-relaxed text-foreground",children:D.content})]},`completion-${T}`)})]}),(Object.keys(v.spanAttributes).length>0||Object.keys(v.resourceAttributes).length>0)&&c.jsxs("div",{className:"border-t pt-2",children:[c.jsxs("button",{onClick:()=>o(!i),className:"text-[10px] text-muted-foreground hover:text-foreground flex items-center gap-1 transition-colors",children:[i?c.jsx(Ju,{className:"h-3 w-3"}):c.jsx(eh,{className:"h-3 w-3"}),c.jsx("span",{className:"font-semibold uppercase tracking-wider",children:"All Attributes"})]}),i&&c.jsxs("div",{className:"mt-2 space-y-2",children:[Object.keys(v.spanAttributes).length>0&&c.jsxs("div",{children:[c.jsx("div",{className:"text-[9px] font-semibold text-muted-foreground mb-1 uppercase tracking-wider",children:"Span Attributes"}),c.jsx("div",{className:"space-y-1",children:Object.entries(v.spanAttributes).map(([D,T])=>c.jsxs("div",{className:"flex gap-2 text-[10px] bg-muted/20 rounded px-2 py-1",children:[c.jsxs("span",{className:"text-muted-foreground font-medium min-w-[120px] flex-shrink-0",children:[D,":"]}),c.jsx("span",{className:"font-mono text-foreground break-all",children:T})]},D))})]}),Object.keys(v.resourceAttributes).length>0&&c.jsxs("div",{children:[c.jsx("div",{className:"text-[9px] font-semibold text-muted-foreground mb-1 uppercase tracking-wider",children:"Resource Attributes"}),c.jsx("div",{className:"space-y-1",children:Object.entries(v.resourceAttributes).map(([D,T])=>c.jsxs("div",{className:"flex gap-2 text-[10px] bg-muted/20 rounded px-2 py-1",children:[c.jsxs("span",{className:"text-muted-foreground font-medium min-w-[120px] flex-shrink-0",children:[D,":"]}),c.jsx("span",{className:"font-mono text-foreground break-all",children:T})]},D))})]})]})]})]})})};return c.jsx(ne,{className:"shadow-sm",children:c.jsxs(ie,{className:"p-3",children:[c.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(ci,{className:"h-3.5 w-3.5 text-muted-foreground"}),c.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Timeline"}),c.jsxs("span",{className:"text-[11px] text-muted-foreground",children:[g(h*1e6)," · ",e.length," span",e.length!==1?"s":""]}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[c.jsx("button",{onClick:s,className:"text-[11px] px-1.5 py-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:"Expand all"}),c.jsx("span",{className:"text-muted-foreground/30 text-xs",children:"|"}),c.jsx("button",{onClick:l,className:"text-[11px] px-1.5 py-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:"Collapse all"})]})]}),c.jsxs("div",{className:"flex items-center gap-2 text-[11px]",children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-green-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Success"})]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Error"})]})]})]}),c.jsxs("div",{className:"border rounded-md overflow-hidden bg-background shadow-sm",children:[c.jsxs("div",{className:"flex items-center bg-muted/50 border-b border-border font-semibold text-[10px] text-foreground uppercase tracking-wide h-8",children:[c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"320px",paddingLeft:"8px",paddingRight:"8px"},children:"Span Name"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"8px"},children:"Duration"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"4px"},children:"Tokens"}),c.jsx("div",{className:"flex-1 flex items-center h-full",style:{paddingLeft:"2px",paddingRight:"8px"},children:"Timeline"})]}),u.map(v=>y(v))]}),n&&c.jsx("div",{className:"mt-2",children:x(n)})]})})}const kpe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"};function Epe(){var h,p;const{id:e}=Ep(),t=Fn(),{data:r,isLoading:n,error:a}=J_(e),[i,o]=N.useState("overview"),s=(r==null?void 0:r.metrics)||[],l=(r==null?void 0:r.spans)||[],u=n,f=n,d=a;return n?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):a||!r?c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{children:"Error"}),c.jsx(Qt,{children:"Failed to load run"})]}),c.jsx(ie,{children:c.jsx("p",{className:"text-destructive",children:(a==null?void 0:a.message)||"Run not found"})})]}):c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Run Details"}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:r.id})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs(ut,{variant:"outline",size:"sm",onClick:()=>t(`/datasets?runId=${r.id}`),className:"h-8 gap-2",children:[c.jsx(_n,{className:"h-3.5 w-3.5"}),"Datasets"]}),c.jsx(vt,{variant:kpe[r.status],children:r.status})]})]}),c.jsxs(mf,{value:i,onValueChange:o,children:[c.jsxs(gf,{children:[c.jsx(va,{value:"overview",children:"Overview"}),c.jsx(va,{value:"traces",children:"Traces"})]}),c.jsxs(ya,{value:"overview",className:"space-y-2",children:[c.jsx(ne,{children:c.jsxs(ie,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Overview"}),c.jsxs("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:[c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Tokens"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((h=r.aggregatedUsage)==null?void 0:h.totalTokens)!==void 0&&r.aggregatedUsage.totalTokens>0?c.jsxs(c.Fragment,{children:[Number(r.aggregatedUsage.totalTokens).toLocaleString(),c.jsxs("span",{className:"text-muted-foreground text-xs ml-1",children:["(",Number(r.aggregatedUsage.inputTokens||0).toLocaleString(),"↓ ",Number(r.aggregatedUsage.outputTokens||0).toLocaleString(),"↑)"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Cost"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((p=r.aggregatedUsage)==null?void 0:p.totalCost)!==void 0&&r.aggregatedUsage.totalCost>0?c.jsxs(c.Fragment,{children:["$",r.aggregatedUsage.totalCost.toFixed(4)]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:r.duration!==void 0&&r.duration>0?zr(r.duration):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Created"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:hn(new Date(r.createdAt),{addSuffix:!0})})]})]}),r.meta&&Object.keys(r.meta).filter(g=>g!=="execution_result").length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metadata"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(r.meta).filter(([g])=>g!=="execution_result").map(([g,m])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:g}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof m=="string"?m:JSON.stringify(m)})]},g))})]})]})}),c.jsx(ne,{children:c.jsxs(ie,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metrics"}),u?c.jsx(je,{className:"h-32 w-full"}):s.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No metrics logged for this run"}):c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:s.map(g=>c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:g.key}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:g.value})]},g.id))})]})})]}),c.jsx(ya,{value:"traces",children:f?c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:c.jsx(je,{className:"h-64 w-full"})})}):d?c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:c.jsxs("div",{className:"text-red-500 text-xs",children:["Error loading traces: ",d.message]})})}):l&&l.length>0?c.jsx(Ape,{spans:l}):c.jsx(ne,{children:c.jsx(ie,{className:"p-3",children:c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No traces available for this run"})})})})]})]})}var CM=(e=>(e[e.CLAUDE=1]="CLAUDE",e))(CM||{});const _pe=e=>e===CM.CLAUDE||e===1||String(e).toUpperCase()==="CLAUDE"?"Claude":"Unknown",Tpe=20;function Cpe(){const e=Fn(),{selectedTeamId:t}=wa(),[r]=N.useState(0),[n,a]=N.useState(""),{data:i,isLoading:o}=LF(t||"",{page:r,pageSize:Tpe,enabled:!!t}),s=(i==null?void 0:i.filter(l=>{var u;return l.name.toLowerCase().includes(n.toLowerCase())||((u=l.description)==null?void 0:u.toLowerCase().includes(n.toLowerCase()))}))||[];return c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Agents"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"View and manage your agent registry"})]}),c.jsxs("div",{className:"relative w-80",children:[c.jsx(Or,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search agents...",value:n,onChange:l=>a(l.target.value),className:"pl-8 h-9 text-[13px] font-medium focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]})]}),o?c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[...Array(8)].map((l,u)=>c.jsx(je,{className:"h-32 w-full"},u))}):!s||s.length===0?c.jsx(ne,{className:"flex-1 flex flex-col",children:c.jsxs(ie,{className:"flex-1 flex flex-col items-center justify-center text-center py-16",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(Gr,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:n?"No agents match your search":"No agents found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1 max-w-md",children:n?"Try a different search term":"Run alphatrion run claude to create your first agent"})]})}):c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:s.map(l=>c.jsxs(ne,{className:"hover:shadow-lg transition-all cursor-pointer border hover:border-blue-200",onClick:()=>e(`/agents/${l.id}`),children:[c.jsx(it,{className:"p-4 pb-3",children:c.jsx("div",{className:"flex items-start justify-between gap-3",children:c.jsxs("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[c.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-purple-100 dark:bg-purple-900/20",children:c.jsx(Gr,{className:"h-5 w-5 text-purple-600 dark:text-purple-400"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(ot,{className:"text-base font-semibold truncate",children:l.name}),c.jsx(vt,{variant:"outline",className:"text-xs",children:_pe(l.type)})]}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1 font-mono truncate",children:l.id})]})]})})}),c.jsxs(ie,{className:"p-4 pt-0",children:[l.description&&c.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2 mb-3",children:l.description}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Created ",hn(new Date(l.createdAt),{addSuffix:!0})]})]})]},l.id))})]})}const $pe=e=>e===1||String(e).toUpperCase()==="CLAUDE"?"Claude":"Unknown";function Mpe(){const{id:e}=Ep(),t=Fn(),{data:r,isLoading:n,error:a}=Z_(e),[i,o]=N.useState([]),[s,l]=N.useState(!0);return N.useEffect(()=>{if(!e)return;(async()=>{var f;l(!0);try{const h=((f=(await rt(`query GetAgentSessions($id: ID!) { + agent(id: $id) { + sessions(page: 0, pageSize: 1000) { + id + agentId + teamId + userId + meta + createdAt + updatedAt + } + } + }`,{id:e})).agent)==null?void 0:f.sessions)||[];h.sort((p,g)=>new Date(g.createdAt).getTime()-new Date(p.createdAt).getTime()),o(h)}catch(d){console.error("Failed to fetch agent sessions:",d),o([])}finally{l(!1)}})()},[e]),n?c.jsxs("div",{className:"p-6 space-y-6",children:[c.jsx(je,{className:"h-10 w-64"}),c.jsx(je,{className:"h-32 w-full"}),c.jsx(je,{className:"h-96 w-full"})]}):a||!r?c.jsx("div",{className:"p-6",children:c.jsx(ne,{children:c.jsxs(ie,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx(Gr,{className:"h-12 w-12 text-muted-foreground mb-4"}),c.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Agent not found"}),c.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"The requested agent could not be found."}),c.jsx(ut,{onClick:()=>t("/agents"),children:"Back to Agents"})]})})}):c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsx("div",{className:"flex items-center gap-4",children:c.jsxs("div",{className:"flex-1",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx(Gr,{className:"h-6 w-6 text-purple-600"}),c.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:r.name}),c.jsx(vt,{variant:"outline",className:"text-xs",children:$pe(r.type)})]}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[i.length," session",i.length!==1?"s":""]})]})}),c.jsxs("div",{className:"flex-1 flex flex-col",children:[c.jsxs("div",{className:"mb-3",children:[c.jsx("h2",{className:"text-base font-semibold text-foreground",children:"Sessions"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"All conversation sessions for this agent"})]}),s?c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[...Array(6)].map((u,f)=>c.jsx(je,{className:"h-40 w-full"},f))}):i.length===0?c.jsx(ne,{className:"flex-1",children:c.jsxs(ie,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(fS,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No sessions found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Sessions will appear here when you use Claude Code"})]})}):c.jsx(c.Fragment,{children:c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 overflow-y-auto",children:i.map(u=>{var d;const f=(d=u.meta)==null?void 0:d.project_name;return c.jsxs(ne,{className:"hover:shadow-lg transition-all cursor-pointer border hover:border-blue-200",onClick:()=>t(`/sessions/${u.id}`),children:[c.jsx(it,{className:"p-4 pb-3",children:c.jsx("div",{className:"flex items-start justify-between gap-2 mb-2",children:c.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[c.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-blue-100 dark:bg-blue-900/20",children:c.jsx(fS,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx(ot,{className:"text-sm font-semibold truncate",children:f||"Session"}),c.jsx("p",{className:"text-[11px] font-mono text-muted-foreground truncate mt-0.5",children:u.id})]})]})})}),c.jsxs(ie,{className:"p-4 pt-0 space-y-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[c.jsx(u3,{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:hn(new Date(u.createdAt),{addSuffix:!0})})]}),c.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[c.jsx(ci,{className:"h-3 w-3 shrink-0"}),c.jsxs("span",{className:"truncate",children:["Updated ",hn(new Date(u.updatedAt),{addSuffix:!0})]})]})]})]},u.id)})})})]})]})}const Ipe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},ou=10;function Dpe(e,t){var f,d;if(!e||e.length===0)return[];const r=[...e].sort((h,p)=>{const g=h.timestamp?new Date(h.timestamp).getTime():0,m=p.timestamp?new Date(p.timestamp).getTime():0;return g-m}),n=r[0];let a="";for(let h=r.length-1;h>=0;h--){const p=(f=r[h].spanAttributes)==null?void 0:f["gen_ai.prompt.0.content"];if(p&&p.trim()){a=p;break}}a||(a="User input");const i=n!=null&&n.timestamp?new Date(n.timestamp).getTime():0,o=[];for(const h of r){const p=h.spanAttributes||{},g=h.timestamp?new Date(h.timestamp).getTime():0,m=h.duration?h.duration/1e9:0,y=h.semanticKind;let x="",v="",b="processing";if(y==="processing"){o.push({type:"processing",name:"Processing",duration:m,timestamp:g});continue}else if(y==="thinking")x=p["gen_ai.completion.0.content"]||"",v="Thinking",b="thinking";else if(y==="tool"){v=p["tool.name"]||p["gen_ai.completion.0.tool_calls.0.name"]||"Tool",b="tool_use";const w=p["gen_ai.completion.0.tool_calls.0.arguments"],O=p["alphatrion.completion.0.tool_calls.0.output"],j=p["alphatrion.completion.0.tool_calls.0.status_code"];o.push({type:"tool_use",name:v,duration:m,timestamp:g,isError:j==="ERROR",input:w,output:O});continue}else if(y==="text-generation")x=p["gen_ai.completion.0.content"]||"",v=(x.substring(0,25)||"Response").trim()+"...",b="text";else continue;o.push({type:b,name:v,duration:m,timestamp:g,content:x})}const s=[],u=((((d=o[0])==null?void 0:d.timestamp)||i)-i)/1e3;return s.push({type:"user_input",name:a.length>30?a.substring(0,30)+"...":a,duration:u,timestamp:i,content:a}),s.push(...o),s}function Rpe(){const{id:e}=Ep(),t=Fn(),[r,n]=N.useState("overview"),[a,i]=N.useState(null),[o,s]=N.useState([]),[l,u]=N.useState([]),[f,d]=N.useState(!0),[h,p]=N.useState(null),[g,m]=N.useState(null),[y,x]=N.useState(null),[v,b]=N.useState(0);N.useEffect(()=>{if(!e)return;(async()=>{var _;try{const E=await rt(`query GetSession($sessionId: ID!) { + session(sessionId: $sessionId) { + id + agentId + teamId + userId + meta + createdAt + updatedAt + runs(page: 0, pageSize: 1000) { + id + teamId + userId + sessionId + meta + duration + status + createdAt + aggregatedUsage { + totalTokens + inputTokens + outputTokens + } + } + } + }`,{sessionId:e});i(E.session);const k=((_=E.session)==null?void 0:_.runs)||[];s(k);try{const R=await rt(`query GetSessionSpans($sessionId: ID!) { + spansBySessionId(sessionId: $sessionId) { + timestamp + traceId + spanId + parentSpanId + spanName + spanKind + semanticKind + duration + statusCode + statusMessage + spanAttributes + runId + } + }`,{sessionId:e}),z=new Map;for(const C of R.spansBySessionId||[]){const D=C.runId||"";z.has(D)||z.set(D,[]),z.get(D).push(C)}const M=k.map(C=>({run:C,spans:z.get(C.id)||[]}));M.sort((C,D)=>new Date(D.run.createdAt).getTime()-new Date(C.run.createdAt).getTime()),u(M)}catch(R){console.error("Failed to fetch spans for session:",R),u(k.map(z=>({run:z,spans:[]})))}}catch(E){p(E.message)}finally{d(!1)}})()},[e]);const S=N.useMemo(()=>{const A=o.reduce((T,F)=>{var W;return T+(((W=F.aggregatedUsage)==null?void 0:W.totalTokens)||0)},0),_=o.reduce((T,F)=>{var W;return T+(((W=F.aggregatedUsage)==null?void 0:W.inputTokens)||0)},0),E=o.reduce((T,F)=>{var W;return T+(((W=F.aggregatedUsage)==null?void 0:W.outputTokens)||0)},0),k=o.reduce((T,F)=>T+(F.duration||0),0),R=o.length>0?k/o.length:0,z=o.filter(T=>T.status==="COMPLETED").length,M=o.filter(T=>T.status==="FAILED").length,C=o.length>0?z/o.length*100:0,D=_*3/1e6+E*15/1e6;return{totalTokens:A,inputTokens:_,outputTokens:E,totalDuration:k,avgDuration:R,completedRuns:z,failedRuns:M,successRate:C,estimatedCost:D}},[o]),w=N.useMemo(()=>o.map((A,_)=>{var E,k,R;return{index:_+1,name:`Run ${_+1}`,inputTokens:((E=A.aggregatedUsage)==null?void 0:E.inputTokens)||0,outputTokens:((k=A.aggregatedUsage)==null?void 0:k.outputTokens)||0,totalTokens:((R=A.aggregatedUsage)==null?void 0:R.totalTokens)||0}}),[o]),O=N.useMemo(()=>o.map((A,_)=>({index:_+1,name:`Run ${_+1}`,duration:A.duration||0})),[o]),j=N.useMemo(()=>{const A={"text-generation":0,thinking:0,tool:0};for(const E of l)for(const k of E.spans){const R=k.semanticKind;(R==="text-generation"||R==="thinking"||R==="tool")&&A[R]++}const _={"text-generation":"#10b981",thinking:"#8b5cf6",tool:"#3b82f6"};return Object.entries(A).filter(([E,k])=>k>0).map(([E,k])=>({name:E.charAt(0).toUpperCase()+E.slice(1).replace("-"," "),value:k,color:_[E]||"#6b7280"})).sort((E,k)=>k.value-E.value)},[l]),P=N.useMemo(()=>{const A={"text-generation":{input:0,output:0,total:0},thinking:{input:0,output:0,total:0},tool:{input:0,output:0,total:0},processing:{input:0,output:0,total:0}};for(const E of l)for(const k of E.spans){const R=k.semanticKind,z=k.spanAttributes||{},M=parseInt(z["gen_ai.usage.input_tokens"])||0,C=parseInt(z["gen_ai.usage.output_tokens"])||0;A[R]&&(A[R].input+=M,A[R].output+=C,A[R].total+=M+C)}const _={"text-generation":"#10b981",thinking:"#8b5cf6",tool:"#3b82f6",processing:"#6b7280"};return Object.entries(A).filter(([E,k])=>k.total>0).map(([E,k])=>({name:E.charAt(0).toUpperCase()+E.slice(1).replace("-"," "),inputTokens:k.input,outputTokens:k.output,totalTokens:k.total,color:_[E]||"#6b7280"})).sort((E,k)=>k.totalTokens-E.totalTokens)},[l]);return f?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):h||!a?c.jsx("div",{className:"p-6",children:c.jsx(ne,{children:c.jsxs(ie,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx(Gr,{className:"h-12 w-12 text-muted-foreground mb-4"}),c.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Session not found"}),c.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:h||"The requested session could not be found."}),c.jsx(ut,{onClick:()=>t("/agents"),children:"Back to Agents"})]})})}):c.jsxs("div",{className:"space-y-4",children:[c.jsx("div",{className:"flex items-start justify-between",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground font-mono",children:a.agentId}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:a.id})]})}),c.jsxs(mf,{value:r,onValueChange:n,children:[c.jsxs(gf,{children:[c.jsx(va,{value:"overview",children:"Overview"}),c.jsx(va,{value:"runs",children:"Completions"})]}),c.jsxs(ya,{value:"overview",className:"space-y-4",children:[c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(ot,{className:"text-sm font-medium text-muted-foreground",children:"Completions"}),c.jsx(r5,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ie,{children:[c.jsx("div",{className:"text-2xl font-bold",children:o.length}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[S.completedRuns," completed / ",S.failedRuns," failed"]})]})]}),c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(ot,{className:"text-sm font-medium text-muted-foreground",children:"Total Tokens"}),c.jsx(Su,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ie,{children:[c.jsx("div",{className:"text-2xl font-bold",children:S.totalTokens.toLocaleString()}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[S.inputTokens.toLocaleString()," in / ",S.outputTokens.toLocaleString()," out"]})]})]}),c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(ot,{className:"text-sm font-medium text-muted-foreground",children:"Avg Duration"}),c.jsx(ci,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ie,{children:[c.jsx("div",{className:"text-2xl font-bold",children:zr(S.avgDuration)}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Total: ",zr(S.totalDuration)]})]})]}),c.jsxs(ne,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(ot,{className:"text-sm font-medium text-muted-foreground",children:"Est. Cost"}),c.jsx(c_,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ie,{children:[c.jsxs("div",{className:"text-2xl font-bold",children:["$",S.estimatedCost.toFixed(4)]}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Success rate: ",S.successRate.toFixed(1),"%"]})]})]})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{className:"text-sm",children:"Token Usage per Completion"}),c.jsx(Qt,{className:"text-xs",children:"Input vs Output tokens"})]}),c.jsx(ie,{children:c.jsx(Ar,{width:"100%",height:250,children:c.jsxs(RP,{data:w,children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(_r,{dataKey:"index",tick:{fontSize:12}}),c.jsx(yr,{tick:{fontSize:12}}),c.jsx(lt,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"}}),c.jsx(Cn,{dataKey:"inputTokens",stackId:"a",fill:"#0ea5e9",name:"Input"}),c.jsx(Cn,{dataKey:"outputTokens",stackId:"a",fill:"#8b5cf6",name:"Output"})]})})})]}),c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{className:"text-sm",children:"Response Time"}),c.jsx(Qt,{className:"text-xs",children:"Duration per completion"})]}),c.jsx(ie,{children:c.jsx(Ar,{width:"100%",height:250,children:c.jsxs(df,{data:O,children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(_r,{dataKey:"index",tick:{fontSize:12}}),c.jsx(yr,{tick:{fontSize:12}}),c.jsx(lt,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>zr(A)}),c.jsx(cr,{type:"monotone",dataKey:"duration",stroke:"#10b981",strokeWidth:2,dot:{r:3}})]})})})]}),c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{className:"text-sm",children:"Operation Distribution"}),c.jsx(Qt,{className:"text-xs",children:"By operation type"})]}),c.jsx(ie,{children:c.jsx(Ar,{width:"100%",height:250,children:c.jsxs(hf,{children:[c.jsx(Mr,{data:j,cx:"50%",cy:"50%",labelLine:!1,label:({name:A,percent:_})=>`${A}: ${(_*100).toFixed(1)}%`,outerRadius:80,fill:"#8884d8",dataKey:"value",style:{fontSize:"12px"},children:j.map((A,_)=>c.jsx(Oa,{fill:A.color},`cell-${_}`))}),c.jsx(lt,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>`${A} operations`}),c.jsx(nr,{wrapperStyle:{fontSize:"12px"},iconType:"circle"})]})})})]}),c.jsxs(ne,{children:[c.jsxs(it,{children:[c.jsx(ot,{className:"text-sm",children:"Token Distribution by Operation"}),c.jsx(Qt,{className:"text-xs",children:"Input vs Output tokens"})]}),c.jsx(ie,{children:c.jsx(Ar,{width:"100%",height:250,children:c.jsxs(RP,{data:P,layout:"vertical",children:[c.jsx(oa,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(_r,{type:"number",tick:{fontSize:12}}),c.jsx(yr,{dataKey:"name",type:"category",tick:{fontSize:11},width:100}),c.jsx(lt,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>A.toLocaleString()}),c.jsx(nr,{wrapperStyle:{fontSize:"12px"},iconType:"circle"}),c.jsx(Cn,{dataKey:"inputTokens",stackId:"a",fill:"#0ea5e9",name:"Input"}),c.jsx(Cn,{dataKey:"outputTokens",stackId:"a",fill:"#8b5cf6",name:"Output"})]})})})]})]})]}),c.jsx(ya,{value:"runs",className:"space-y-2",children:l.length===0?c.jsx(ne,{children:c.jsxs(ie,{className:"flex flex-col items-center justify-center h-64 text-center p-6",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:c.jsx(Gr,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-xs font-medium text-foreground mb-1",children:"No completions yet"}),c.jsx("p",{className:"text-[10px] text-muted-foreground max-w-xs",children:o.length>0?"Trace data may not be available for this session":"Completions will appear here as you interact with the agent"})]})}):c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"space-y-2",children:l.slice(v*ou,(v+1)*ou).map((A,_)=>{const E=v*ou+_,k=g===E,R=[...A.spans].sort((C,D)=>{const T=C.timestamp?new Date(C.timestamp).getTime():0,F=D.timestamp?new Date(D.timestamp).getTime():0;return T-F});let z="";for(const C of R){const D=C.spanAttributes||{},T=D["gen_ai.prompt.0.content"];if(T&&T.trim()){z=T;break}if(z||(z=D["llm.prompts.0.content"]||D["input.value"]||D.input||""),z&&z.trim())break}const M=z.length>100?z.substring(0,100)+"...":z;return c.jsx(ne,{className:`cursor-pointer transition-all hover:shadow-md ${k?"ring-2 ring-primary":""}`,onClick:()=>{m(k?null:E),x(null)},children:c.jsxs(ie,{className:"p-3",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:`flex-shrink-0 w-2 h-2 rounded-full mt-1.5 ${A.run.status==="COMPLETED"?"bg-green-500":A.run.status==="FAILED"?"bg-red-500":"bg-yellow-500"}`}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsxs("div",{className:"flex items-start gap-2 mb-1",children:[z?c.jsx("p",{className:"text-sm text-foreground line-clamp-2 flex-1",children:M}):c.jsx("p",{className:"text-sm text-muted-foreground italic flex-1",children:"[No user input]"}),c.jsx(vt,{variant:Ipe[A.run.status],className:"text-[10px] flex-shrink-0",children:A.run.status})]}),c.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[c.jsx("span",{children:hn(new Date(A.run.createdAt),{addSuffix:!0})}),A.run.duration&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsx(ci,{className:"h-3 w-3"}),c.jsx("span",{className:"font-mono",children:zr(A.run.duration)})]}),A.run.aggregatedUsage&&A.run.aggregatedUsage.totalTokens>0&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsx(Su,{className:"h-3 w-3"}),c.jsxs("span",{className:"font-mono",children:[A.run.aggregatedUsage.totalTokens.toLocaleString()," tokens"]})]}),A.spans.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsxs("span",{children:[A.spans.length," span",A.spans.length!==1?"s":""]})]})]})]})]}),k&&c.jsx("div",{className:"mt-3 pt-3 border-t space-y-3",children:c.jsx("div",{children:(()=>{const C=Dpe(A.spans,A.run.duration||0);if(C.length===0)return c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No timeline data available"});const D=C.filter(L=>L.timestamp&&L.timestamp>0).map(L=>L.timestamp),T=Math.min(...D),F=Math.max(...D),W=C[C.length-1],H=W.timestamp&&W.duration?W.timestamp+W.duration*1e3:F,q=Math.max(H-T,1e3);return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Timeline"}),c.jsxs("span",{className:"text-[10px] text-muted-foreground font-mono",children:[C.length-1," operations • ",zr(q/1e3)]})]}),A.run.aggregatedUsage&&c.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[c.jsx(Su,{className:"h-3 w-3"}),A.run.aggregatedUsage.inputTokens,"↓ ",A.run.aggregatedUsage.outputTokens,"↑"]})]}),c.jsxs("div",{className:"border rounded overflow-hidden",children:[c.jsxs("div",{className:"flex items-center bg-muted/30 border-b text-[9px] text-muted-foreground uppercase tracking-wide h-6",children:[c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"140px",paddingLeft:"6px"},children:"Operation"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"70px",paddingLeft:"6px"},children:"Duration"}),c.jsx("div",{className:"flex-1 flex items-center h-full",style:{paddingLeft:"6px",paddingRight:"6px"},children:"Timeline"})]}),C.map((L,Y)=>{const ve=L.duration!==void 0&&L.duration>0,Ne=L.duration||0,dt=(L.timestamp||T)-T,X=dt/q*100,ce=Ne*1e3/q*100;let K="",Ae="",pe=null,Le="";return L.type==="user_input"?(K="bg-green-100 text-green-700 border-green-200",Ae="bg-green-500",pe=c.jsx(a5,{className:"h-3 w-3"}),Le="User"):L.type==="thinking"?(K="bg-purple-100 text-purple-700 border-purple-200",Ae="bg-purple-500",pe=c.jsx(i3,{className:"h-3 w-3"}),Le="Think"):L.type==="text"?(K="bg-gray-100 text-gray-700 border-gray-200",Ae="bg-gray-500",pe=c.jsx(Gr,{className:"h-3 w-3"}),Le="Text"):L.type==="tool_use"?(L.isError?(K="bg-red-100 text-red-700 border-red-200",Ae="bg-red-500"):(K="bg-blue-100 text-blue-700 border-blue-200",Ae="bg-blue-500"),pe=c.jsx(l5,{className:"h-3 w-3"}),Le="Tool"):L.type==="processing"&&(K="bg-slate-100 text-slate-600 border-slate-200",Ae="bg-slate-400",pe=c.jsx(ci,{className:"h-3 w-3"}),Le="Proc"),c.jsxs("div",{children:[c.jsxs("div",{className:`flex items-center border-b border-border hover:bg-muted/20 transition-colors h-8 cursor-pointer ${y===Y?"bg-accent":""}`,onClick:ct=>{ct.stopPropagation(),x(y===Y?null:Y)},children:[c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1 h-full min-w-0",style:{width:"140px",paddingLeft:"6px",paddingRight:"6px"},children:[c.jsxs(vt,{variant:"outline",className:`${K} flex items-center gap-0.5 px-1 py-0 text-[9px] font-medium flex-shrink-0 h-4`,children:[pe,c.jsx("span",{children:Le})]}),c.jsx("span",{className:"text-[11px] truncate text-foreground",title:L.name,children:L.name})]}),c.jsx("div",{className:"flex-shrink-0 flex items-center gap-1 text-foreground h-full",style:{width:"70px",paddingLeft:"6px"},children:c.jsx("span",{className:`text-[10px] font-mono ${ve?"":"text-muted-foreground italic"}`,children:ve?zr(Ne):c.jsx("span",{className:"text-muted-foreground/40",children:"~0ms"})})}),c.jsx("div",{className:"flex-1 relative h-full min-w-0 flex items-center",style:{paddingLeft:"6px",paddingRight:"6px"},children:ve&&c.jsx("div",{className:`${Ae} absolute h-4 rounded flex items-center px-1 text-white text-[9px] font-medium`,style:{left:`${Math.max(0,Math.min(99,X))}%`,width:`${Math.max(1,Math.min(100-X,ce))}%`},title:`${L.name} +Start: +${(dt/1e3).toFixed(2)}s +Duration: ${zr(Ne)}`,children:c.jsx("span",{className:"truncate",children:zr(Ne)})})})]}),y===Y&&L.type!=="processing"&&c.jsxs("div",{className:"border-b border-border bg-muted/10 p-3",children:[L.type==="user_input"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"User Input"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="thinking"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Thinking"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="text"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Response"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="tool_use"&&c.jsxs("div",{className:"space-y-3",children:[L.input&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Input"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:(()=>{try{return JSON.stringify(JSON.parse(L.input),null,2)}catch{return L.input}})()})})]}),L.output&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Output"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:L.output})})]}),L.isError&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/10 border border-red-200 dark:border-red-800 rounded p-2",children:c.jsx("p",{className:"text-xs text-red-700 dark:text-red-300 font-semibold",children:"Tool execution failed"})})]})]})]},Y)})]})]})})()})})]})},A.run.id)})}),c.jsx(pf,{currentPage:v,totalPages:Math.max(1,Math.ceil(l.length/ou)),pageSize:ou,totalItems:l.length,onPageChange:b,itemName:"completions"})]})})]})]})}function Lpe(e,t){const{page:r=0,pageSize:n=20,enabled:a=!0}=t||{};return Nt({queryKey:["datasets",e,r,n],queryFn:async()=>(await rt(Ft.listDatasets,{teamId:e,page:r,pageSize:n})).datasets,enabled:a&&!!e})}function Fpe(){const e=Xc();return KE({mutationFn:async t=>(await Y_(X_.deleteDatasets,{datasetIds:t})).deleteDatasets,onSuccess:()=>{e.invalidateQueries({queryKey:["datasets"]}),e.invalidateQueries({queryKey:["dataset"]})}})}async function zpe(){try{return(await rt(Ft.listArtifactRepositories)).artifactRepos.map(t=>t.name)}catch(e){throw new Error(`Failed to list repositories: ${e instanceof Error?e.message:"Unknown error"}`)}}async function Bpe(e,t){try{return(await rt(Ft.listArtifactTags,{team_id:e,repo_name:t})).artifactTags.map(n=>n.name)}catch(r){throw new Error(`Failed to list tags for repository ${t}: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Upe(e,t,r){try{return(await rt(Ft.listArtifactFiles,{team_id:e,tag:t,repo_name:r})).artifactFiles}catch(n){throw new Error(`Failed to list files for artifact: ${n instanceof Error?n.message:"Unknown error"}`)}}async function Wpe(e,t,r,n){try{return(await rt(Ft.getArtifactContent,{team_id:e,tag:t,repo_name:r,filename:n})).artifactContent}catch(a){throw new Error(`Failed to get artifact content: ${a instanceof Error?a.message:"Unknown error"}`)}}function Kpe(){return Nt({queryKey:["artifacts","repositories"],queryFn:zpe,staleTime:30*60*1e3})}function qpe(e,t){return Nt({queryKey:["artifacts","tags",e,t],queryFn:()=>Bpe(e,t),enabled:!!(e&&t),staleTime:10*60*1e3})}function $M(e,t,r,n=!0){return Nt({queryKey:["artifacts","files",e,t,r],queryFn:()=>Upe(e,t,r),enabled:!!(n&&e&&t&&r),staleTime:1/0,gcTime:30*60*1e3,retry:1})}function MM(e,t,r,n,a=!0){return Nt({queryKey:["artifacts","content",e,t,r,n],queryFn:()=>Wpe(e,t,r,n),enabled:!!(a&&e&&t&&r),staleTime:1/0,gcTime:30*60*1e3,retry:1})}function IM({open:e,onOpenChange:t,artifactContent:r,isLoading:n,error:a,title:i="Artifact Content",hideLineCount:o=!1,hideCloseButton:s=!1}){const[l,u]=N.useState(!1),[f,d]=N.useState("content"),h=()=>{r!=null&&r.content&&(navigator.clipboard.writeText(r.content),u(!0),setTimeout(()=>u(!1),2e3))},p=()=>{if(r){const v=new Blob([r.content],{type:r.contentType}),b=URL.createObjectURL(v),S=document.createElement("a");S.href=b,S.download=r.filename,document.body.appendChild(S),S.click(),document.body.removeChild(S),URL.revokeObjectURL(b)}},g=()=>{if(!r)return"";const{content:v,filename:b,contentType:S}=r;if(S==="application/json"||b.endsWith(".json"))try{const w=JSON.parse(v);return JSON.stringify(w,null,2)}catch{return v}return v},m=()=>{var b;if(!r)return c.jsx(Zu,{className:"h-3.5 w-3.5 text-purple-600"});const v=((b=i.split(" - ")[0])==null?void 0:b.toLowerCase())||"";return v.includes("execution")||v.includes("run")?c.jsx(ps,{className:"h-3.5 w-3.5 text-blue-600"}):v.includes("checkpoint")||v.includes("model")?c.jsx(_n,{className:"h-3.5 w-3.5 text-green-600"}):c.jsx(Zu,{className:"h-3.5 w-3.5 text-purple-600"})},y=N.useMemo(()=>{if(!(r!=null&&r.content))return null;const v=r.content,b=v.split(` +`).length,S=new TextEncoder().encode(v).length;let w;return S<1024?w=`${S} B`:S<1024*1024?w=`${(S/1024).toFixed(2)} KB`:w=`${(S/(1024*1024)).toFixed(2)} MB`,{lines:b,size:w,bytes:S}},[r==null?void 0:r.content]),x=()=>!r||!y?null:c.jsxs("div",{className:"p-3 space-y-3",children:[c.jsxs("div",{className:"space-y-1.5",children:[c.jsx("h3",{className:"text-xs font-semibold text-slate-900 dark:text-slate-100 uppercase tracking-wide",children:"File Information"}),c.jsxs("div",{className:"border border-slate-200 dark:border-slate-700 rounded bg-white dark:bg-slate-800",children:[c.jsxs("div",{className:"flex justify-between items-center py-1.5 px-2 border-b border-slate-200 dark:border-slate-700",children:[c.jsx("span",{className:"text-slate-600 dark:text-slate-400 font-medium text-xs",children:"Filename"}),c.jsx("code",{className:"font-mono text-slate-900 dark:text-slate-100 text-xs",children:r.filename})]}),c.jsxs("div",{className:"flex justify-between items-center py-1.5 px-2",children:[c.jsx("span",{className:"text-slate-600 dark:text-slate-400 font-medium text-xs",children:"Content Type"}),c.jsx("code",{className:"font-mono text-slate-900 dark:text-slate-100 text-xs",children:r.contentType})]})]})]}),c.jsxs("div",{className:"space-y-1.5",children:[c.jsx("h3",{className:"text-xs font-semibold text-slate-900 dark:text-slate-100 uppercase tracking-wide",children:"Statistics"}),c.jsxs("div",{className:"grid grid-cols-2 gap-1.5",children:[c.jsxs("div",{className:"p-2 rounded bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700",children:[c.jsx("div",{className:"text-xs font-medium text-slate-600 dark:text-slate-400 uppercase tracking-wide",children:"Lines"}),c.jsx("div",{className:"text-xs font-semibold tabular-nums text-slate-900 dark:text-slate-100",children:y.lines.toLocaleString()})]}),c.jsxs("div",{className:"p-2 rounded bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700",children:[c.jsx("div",{className:"text-xs font-medium text-slate-600 dark:text-slate-400 uppercase tracking-wide",children:"Size"}),c.jsx("div",{className:"text-xs font-semibold tabular-nums text-slate-900 dark:text-slate-100",children:y.size})]})]})]})]});return c.jsx(Ew,{open:e,onOpenChange:t,children:c.jsxs(Mm,{className:"max-w-5xl max-h-[85vh] overflow-hidden flex flex-col gap-0 p-0",hideCloseButton:s,children:[c.jsx(Im,{className:"px-4 py-2.5 border-b bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800",children:c.jsxs("div",{className:"flex items-center justify-between gap-3",children:[c.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[m(),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx(Dm,{className:"text-sm font-semibold truncate text-slate-900 dark:text-slate-100",children:i}),c.jsx("p",{className:"text-xs text-slate-600 dark:text-slate-400 font-mono truncate mt-0.5",children:(r==null?void 0:r.filename)||"Loading..."})]}),y&&!o&&c.jsx("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:c.jsxs(vt,{variant:"secondary",className:"text-xs font-medium px-2 py-0.5",children:[y.lines," lines"]})})]}),r&&c.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[c.jsx(ut,{variant:"outline",size:"sm",onClick:h,className:"h-7 px-2.5 text-xs font-medium",children:l?c.jsxs(c.Fragment,{children:[c.jsx(u_,{className:"h-3 w-3 mr-1"}),"Copied"]}):c.jsxs(c.Fragment,{children:[c.jsx(j3,{className:"h-3 w-3 mr-1"}),"Copy"]})}),c.jsxs(ut,{variant:"outline",size:"sm",onClick:p,className:"h-7 px-2.5 text-xs font-medium",children:[c.jsx(A3,{className:"h-3 w-3 mr-1"}),"Download"]})]})]})}),c.jsx("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0",children:n&&!r?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading artifact..."})}):a?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"text-sm font-medium text-destructive",children:"Failed to load artifact"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:a.message})]})}):c.jsxs(mf,{value:f,onValueChange:d,className:"flex-1 min-h-0 flex flex-col",children:[c.jsx("div",{className:"px-4 py-2 border-b bg-muted/30 flex-shrink-0",children:c.jsxs(gf,{className:"h-8 bg-background/60",children:[c.jsxs(va,{value:"content",className:"text-xs font-medium h-6 px-3 data-[state=active]:bg-background",children:[c.jsx(xy,{className:"h-3 w-3 mr-1.5"}),"Content"]}),c.jsxs(va,{value:"metadata",className:"text-xs font-medium h-6 px-3 data-[state=active]:bg-background",children:[c.jsx(B3,{className:"h-3 w-3 mr-1.5"}),"Metadata"]})]})}),c.jsx(ya,{value:"content",className:"flex-1 min-h-0 overflow-y-auto m-0 bg-slate-950 data-[state=active]:block data-[state=inactive]:hidden",children:c.jsx("pre",{className:"text-xs p-4 text-slate-50 leading-relaxed font-mono",children:c.jsx("code",{children:g()})})}),c.jsx(ya,{value:"metadata",className:"flex-1 min-h-0 overflow-y-auto m-0 bg-slate-50 dark:bg-slate-900 data-[state=active]:block data-[state=inactive]:hidden",children:x()})]})})]})})}const od=10;function Hpe(){const{selectedTeamId:e}=wa(),[t]=n_(),[r,n]=N.useState(0),[a,i]=N.useState(""),[o,s]=N.useState(null),[l,u]=N.useState(""),[f,d]=N.useState(!1),[h,p]=N.useState(new Set),[g,m]=N.useState(!1),y=Fpe(),{data:x}=rf(e||"");N.useEffect(()=>{const L=t.get("experimentId"),Y=t.get("runId");L?i(L):Y&&i(Y)},[t]);const{data:v,isLoading:b}=Lpe(e||"",{page:r,pageSize:od,enabled:!!e}),S=(x==null?void 0:x.totalDatasets)||0,w=Math.ceil(S/od),O=L=>{const Y=L.match(/^[^/]+\/([^:]+):(.+)$/);return Y?{repoName:Y[1],tag:Y[2]}:{repoName:"",tag:""}},{repoName:j,tag:P}=o?O(o.path):{repoName:"",tag:""},{data:A,isLoading:_}=$M(e||"",P,j,!!o),{data:E,isLoading:k,error:R}=MM(e||"",P,j,l,f&&!!l),z=L=>{s(L),u("")},M=L=>{u(L),d(!0)},C=N.useMemo(()=>{if(!v)return[];if(!a.trim())return v;const L=a.toLowerCase();return v.filter(Y=>{var ve,Ne,we;return Y.name.toLowerCase().includes(L)||((ve=Y.description)==null?void 0:ve.toLowerCase().includes(L))||((Ne=Y.experimentId)==null?void 0:Ne.toLowerCase().includes(L))||((we=Y.runId)==null?void 0:we.toLowerCase().includes(L))||Y.id.toLowerCase().includes(L)})},[v,a]);Math.min(r*od+((v==null?void 0:v.length)||0),S);const D=L=>L<1024?`${L} B`:L<1024*1024?`${(L/1024).toFixed(1)} KB`:`${(L/(1024*1024)).toFixed(1)} MB`,T=C.length>0&&C.every(L=>h.has(L.id)),F=()=>{p(T?new Set:new Set(C.map(L=>L.id)))},W=L=>{const Y=new Set(h);Y.has(L)?Y.delete(L):Y.add(L),p(Y)},H=()=>{h.size!==0&&m(!0)},q=async L=>{if(L==null||L.preventDefault(),L==null||L.stopPropagation(),h.size!==0)try{const Y=await y.mutateAsync(Array.from(h));console.log(`Successfully deleted ${Y} datasets`),p(new Set),m(!1),o&&h.has(o.id)&&(s(null),u(""))}catch(Y){console.error("Failed to delete datasets:",Y),alert("Failed to delete datasets. Please try again.")}};return e?c.jsxs("div",{className:"space-y-3 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Datasets"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse and manage datasets"})]}),c.jsxs("div",{className:"relative w-80",children:[c.jsx(Or,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search datasets...",value:a,onChange:L=>{i(L.target.value),n(0)},className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]})]}),c.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-2 min-h-0",children:[c.jsx("div",{className:o?"col-span-8":"col-span-12",children:c.jsxs(ne,{className:"h-full flex flex-col",children:[c.jsx(ie,{className:"p-0 flex-1 overflow-auto",children:b?c.jsx("div",{className:"p-3 space-y-1.5",children:[...Array(10)].map((L,Y)=>c.jsx(je,{className:"h-12 w-full"},Y))}):v.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(_n,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No datasets found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Datasets will appear here once created"})]}):C.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(Or,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No matching datasets"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(yn,{className:"hover:bg-transparent",children:[c.jsx(Ge,{className:"w-[28%] h-9",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Rc,{checked:T,onChange:F,"aria-label":"Select all datasets"}),c.jsx("button",{onClick:H,disabled:y.isPending||h.size===0,className:`inline-flex items-center justify-center h-6 w-6 rounded hover:bg-destructive/10 text-destructive transition-colors disabled:opacity-50 ${h.size===0?"invisible pointer-events-none":""}`,title:h.size>0?`Delete ${h.size} ${h.size===1?"dataset":"datasets"}`:"",children:c.jsx(by,{className:"h-3.5 w-3.5"})}),c.jsx("span",{children:"Name"})]})}),c.jsx(Ge,{className:"w-[20%] h-9",children:"Description"}),c.jsx(Ge,{className:"w-[12%] h-9",children:"Experiment"}),c.jsx(Ge,{className:"w-[12%] h-9",children:"Run"}),c.jsx(Ge,{className:"w-[14%] h-9",children:"Created"}),c.jsx(Ge,{className:"w-[8%] h-9 text-right",children:"Actions"})]})}),c.jsx(Rl,{children:C.map(L=>c.jsxs(yn,{className:(o==null?void 0:o.id)===L.id?"bg-accent/50":"",children:[c.jsx(Ye,{className:"py-2",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Rc,{checked:h.has(L.id),onChange:()=>W(L.id),"aria-label":`Select dataset ${L.name}`}),c.jsx("div",{className:"w-6"}),c.jsx(_n,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsx("div",{className:"min-w-0",children:c.jsx("p",{className:"text-sm font-medium truncate",children:L.name})})]})}),c.jsx(Ye,{className:"py-2",children:c.jsx("p",{className:"text-sm text-muted-foreground line-clamp-1",children:L.description||"-"})}),c.jsx(Ye,{className:"py-2",children:L.experimentId?c.jsxs(ha,{to:`/experiments/${L.experimentId}`,className:"inline-flex items-center gap-1 text-sm text-blue-600 hover:text-blue-700 hover:underline",children:[c.jsx("span",{className:"font-mono truncate max-w-[100px]",children:L.experimentId.slice(0,8)}),c.jsx(cS,{className:"h-3.5 w-3.5 flex-shrink-0"})]}):c.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-2",children:L.runId?c.jsxs(ha,{to:`/runs/${L.runId}`,className:"inline-flex items-center gap-1 text-sm text-green-600 hover:text-green-700 hover:underline",children:[c.jsx("span",{className:"font-mono truncate max-w-[100px]",children:L.runId.slice(0,8)}),c.jsx(cS,{className:"h-3.5 w-3.5 flex-shrink-0"})]}):c.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-2",children:c.jsx("p",{className:"text-sm text-muted-foreground",children:hn(new Date(L.createdAt),{addSuffix:!0})})}),c.jsx(Ye,{className:"py-2 text-right",children:c.jsx(ut,{variant:"ghost",size:"sm",onClick:()=>z(L),className:"h-7 px-2",children:c.jsx(xy,{className:"h-3.5 w-3.5"})})})]},L.id))})]})}),c.jsx(pf,{currentPage:r,totalPages:w,pageSize:od,totalItems:S,onPageChange:n,itemName:"datasets"})]})}),o&&c.jsx("div",{className:"col-span-4",children:c.jsxs(ne,{className:"h-full flex flex-col",children:[c.jsx("div",{className:"p-3 border-b bg-muted/30",children:c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[c.jsx(_n,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("p",{className:"text-sm font-semibold truncate",children:o.name}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[(A==null?void 0:A.length)||0," ",(A==null?void 0:A.length)===1?"file":"files"]})]})]}),c.jsx(ut,{variant:"ghost",size:"sm",onClick:()=>{s(null),u("")},className:"h-7 w-7 p-0",children:c.jsx(ec,{className:"h-3.5 w-3.5"})})]})}),c.jsx("div",{className:"flex-1 overflow-y-auto",children:_?c.jsx("div",{className:"p-2 space-y-1",children:[...Array(10)].map((L,Y)=>c.jsx(je,{className:"h-10 w-full"},Y))}):!A||A.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No files found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"This dataset is empty"})]}):c.jsx("div",{className:"divide-y",children:A.map(L=>c.jsxs("button",{onClick:()=>M(L.filename),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-accent transition-colors group text-left",children:[c.jsx(ps,{className:"h-4 w-4 text-blue-500 flex-shrink-0 group-hover:text-blue-600"}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-sm font-medium truncate",children:L.filename}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[D(L.size)," • ",L.contentType]})]}),c.jsx(xy,{className:"h-4 w-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]},L.filename))})})]})})]}),c.jsx(IM,{open:f,onOpenChange:d,artifactContent:E,isLoading:k,error:R,title:l?`${o==null?void 0:o.name} / ${l}`:"File Content",hideLineCount:!0,hideCloseButton:!0}),c.jsx(Ew,{open:g,onOpenChange:m,children:c.jsxs(Mm,{className:"pointer-events-auto sm:max-w-[440px]",children:[c.jsxs(Im,{className:"space-y-3",children:[c.jsxs(Dm,{className:"text-lg font-semibold text-foreground",children:["Delete ",h.size===1?"Dataset":"Datasets"]}),c.jsxs(Tw,{className:"text-sm text-muted-foreground leading-relaxed",children:["You are about to delete ",c.jsx("span",{className:"font-medium text-foreground",children:h.size})," ",h.size===1?"dataset":"datasets",". This action cannot be undone."]})]}),c.jsxs(_w,{className:"gap-2 sm:gap-2",children:[c.jsx(ut,{type:"button",variant:"outline",onClick:L=>{L.preventDefault(),L.stopPropagation(),m(!1)},disabled:y.isPending,className:"h-9",children:"Cancel"}),c.jsx(ut,{type:"button",variant:"destructive",onClick:q,disabled:y.isPending,className:"h-9",children:y.isPending?"Deleting...":"Delete"})]})]})})]}):c.jsx("div",{className:"flex h-full items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx(_n,{className:"h-12 w-12 text-muted-foreground/30 mx-auto mb-3"}),c.jsx("p",{className:"text-sm font-medium mb-1",children:"No team selected"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please select a team to view datasets"})]})})}function Vpe(){const{selectedTeamId:e}=wa(),[t,r]=N.useState(""),[n,a]=N.useState(""),[i,o]=N.useState(""),[s,l]=N.useState(""),[u,f]=N.useState(""),[d,h]=N.useState(""),[p,g]=N.useState(!1),{data:m,isLoading:y}=Kpe(),x=m==null?void 0:m.filter(C=>C.toLowerCase().includes(t.toLowerCase())&&(e?C.includes(e):!0)),v=n?n.split("/")[1]||n:"",{data:b,isLoading:S}=qpe(e||"",v),{data:w,isLoading:O}=$M(e||"",i,v,!!i),{data:j,isLoading:P,error:A}=MM(e||"",i,v,s,p&&!!s),_=C=>{l(C),g(!0)},E=C=>{const D=C.split("/");return D.length>1?D[1]:C},k=C=>{const D=E(C).toLowerCase();return D.includes("execution")||D.includes("run")?c.jsx(ps,{className:"h-3.5 w-3.5 text-blue-600"}):D.includes("checkpoint")||D.includes("model")?c.jsx(_n,{className:"h-3.5 w-3.5 text-green-600"}):D.includes("dataset")?c.jsx(_n,{className:"h-3.5 w-3.5 text-purple-600"}):c.jsx(Zu,{className:"h-3.5 w-3.5 text-gray-600"})},R=(b==null?void 0:b.filter(C=>C.toLowerCase().includes(u.toLowerCase())))||[],z=(w==null?void 0:w.filter(C=>C.filename.toLowerCase().includes(d.toLowerCase())))||[],M=C=>C<1024?`${C} B`:C<1024*1024?`${(C/1024).toFixed(1)} KB`:`${(C/(1024*1024)).toFixed(1)} MB`;return c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Artifacts"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse execution results and checkpoints across repositories"})]}),c.jsxs("div",{className:"grid grid-cols-12 gap-3",children:[c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-3",children:c.jsx(ne,{className:"h-[calc(100vh-10rem)]",children:c.jsxs(ie,{className:"p-3 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"REPOSITORIES"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:(x==null?void 0:x.length)||0})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Or,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Search repositories...",value:t,onChange:C=>r(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:y?[...Array(5)].map((C,D)=>c.jsx(je,{className:"h-10 w-full"},D)):!x||x.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:t?c.jsx(Or,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(Zu,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:t?"No matches found":"No repositories"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t?"Try adjusting your search query":"Repositories will appear here once available"})]}):x.map(C=>c.jsxs("button",{type:"button",onClick:D=>{D.preventDefault(),D.stopPropagation(),a(C),o(""),l(""),f(""),h("")},className:`w-full flex items-center gap-2 px-2.5 py-2 rounded text-left transition-colors ${n===C?"bg-accent font-medium":"hover:bg-accent/50"}`,children:[k(C),c.jsx("span",{className:"flex-1 truncate font-medium text-sm",children:E(C)})]},C))})]})})}),c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-3",children:c.jsx(ne,{className:"h-[calc(100vh-10rem)]",children:c.jsx(ie,{className:"p-3 h-full flex flex-col",children:n?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"TAGS"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:R.length})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Or,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Filter tags...",value:u,onChange:C=>f(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:S?[...Array(10)].map((C,D)=>c.jsx(je,{className:"h-10 w-full"},D)):R.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:u?c.jsx(Or,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(dg,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:u?"No matching tags":"No tags found"}),u&&c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):R.map(C=>c.jsxs("button",{type:"button",onClick:()=>{o(C),l(""),h("")},className:`w-full flex items-center gap-2 px-2.5 py-2 rounded text-left transition-colors ${i===C?"bg-accent font-medium":"hover:bg-accent/50"}`,children:[c.jsx(dg,{className:"h-4 w-4 text-orange-600 flex-shrink-0"}),c.jsx("code",{className:"font-mono text-[13px] flex-1 truncate",children:C})]},C))})]}):c.jsx("div",{className:"flex-1 flex items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(dg,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"Select a repository"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Choose a repository to view tags"})]})})})})}),c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-6",children:c.jsx(ne,{className:"h-[calc(100vh-10rem)]",children:c.jsx(ie,{className:"p-3 h-full flex flex-col",children:i?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"FILES"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:z.length})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Or,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(sa,{placeholder:"Filter files...",value:d,onChange:C=>h(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:O?[...Array(10)].map((C,D)=>c.jsx(je,{className:"h-10 w-full"},D)):z.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:d?c.jsx(Or,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No files found"}),d&&c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):z.map(C=>c.jsxs("button",{type:"button",onClick:()=>_(C.filename),className:"w-full flex items-center gap-2 px-2.5 py-2 rounded hover:bg-accent text-left transition-colors group border border-transparent hover:border-border",children:[c.jsx(C3,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-sm font-medium truncate",children:C.filename}),c.jsx("p",{className:"text-xs text-muted-foreground",children:M(C.size)})]})]},C.filename))})]}):c.jsx("div",{className:"flex-1 flex items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"Select a tag"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Choose a tag to view files"})]})})})})})]}),c.jsx(IM,{open:p,onOpenChange:g,artifactContent:j,isLoading:P,error:A,title:s||"File Content",hideLineCount:!0,hideCloseButton:!0})]})}const Gpe=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""};function Ype(){const[e,t]=N.useState(""),[r,n]=N.useState(""),[a,i]=N.useState(""),[o,s]=N.useState(!1);Fn();const l=async u=>{u.preventDefault(),i(""),s(!0);try{const f=await fetch(`${Gpe()}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:r})});if(!f.ok){const p=await f.json();throw new Error(p.detail||"Login failed")}const d=await f.json();localStorage.setItem("alphatrion_token",d.access_token),localStorage.setItem("alphatrion_user",JSON.stringify(d.user));const h=JSON.parse(atob(d.access_token.split(".")[1]));localStorage.setItem("alphatrion_user_id",d.user.id),localStorage.setItem("alphatrion_org_id",h.org_id),d.user.teams&&d.user.teams.length>0&&localStorage.setItem("alphatrion_team_id",d.user.teams[0].id),window.location.href="/"}catch(f){i(f instanceof Error?f.message:"Login failed")}finally{s(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:c.jsxs("div",{className:"max-w-md w-full space-y-8 p-8 bg-white rounded-lg shadow",children:[c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-center gap-3 mb-2",children:[c.jsx("img",{src:O_,alt:"AlphaTrion Logo",className:"h-12 w-12"}),c.jsx("h2",{className:"text-3xl font-bold text-gray-900",children:"AlphaTrion"})]}),c.jsx("p",{className:"mt-2 text-center text-sm text-gray-600",children:"Sign in to your account"})]}),c.jsxs("form",{className:"mt-8 space-y-6",onSubmit:l,children:[a&&c.jsx("div",{className:"rounded-md bg-red-50 p-4",children:c.jsx("div",{className:"text-sm text-red-800",children:a})}),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700",children:"Email"}),c.jsx("input",{id:"email",name:"email",type:"email",autoComplete:"email",required:!0,className:"mt-1 appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500",placeholder:"you@example.com",value:e,onChange:u=>t(u.target.value)})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700",children:"Password"}),c.jsx("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,className:"mt-1 appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500",placeholder:"••••••••",value:r,onChange:u=>n(u.target.value)})]})]}),c.jsx("div",{children:c.jsx("button",{type:"submit",disabled:o,className:"w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed",children:o?"Signing in...":"Sign in"})})]})]})})}function Xpe(e){try{const r=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(a=>"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(n)}catch{return null}}function Qpe(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[a,i]=N.useState(null),{selectedTeamId:o,setSelectedTeamId:s}=wa(),l=Xc(),u=Fn();return N.useEffect(()=>{async function f(){try{const d=localStorage.getItem("alphatrion_token"),h=localStorage.getItem("alphatrion_user");if(console.log("Initializing app...",{hasToken:!!d,hasUser:!!h,currentPath:window.location.pathname}),!d||!h){console.log("No token or user, redirecting to login"),window.location.pathname!=="/login"&&u("/login"),n(!1);return}const p=Xpe(d),g=!p||p.exp*1e30){const b=`alphatrion_selected_team_${y}`,S=localStorage.getItem(b);let w;S?w=m.teams.find(j=>j.id===S)?S:m.teams[0].id:w=m.teams[0].id,localStorage.setItem("alphatrion_team_id",w),s(w,y)}}catch(d){console.error("Failed to initialize app:",d),i(d)}finally{n(!1)}}f()},[s,l,u]),r?c.jsx("div",{className:"flex h-screen items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),c.jsx("p",{className:"text-gray-600",children:"Loading user information..."})]})}):a?c.jsx("div",{className:"flex h-screen items-center justify-center",children:c.jsxs("div",{className:"text-center max-w-md",children:[c.jsx("h1",{className:"text-2xl font-bold text-red-600 mb-4",children:"Error Initializing Dashboard"}),c.jsx("p",{className:"text-gray-700 mb-2",children:a.message}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Please try:"}),c.jsxs("ul",{className:"text-gray-500 text-sm text-left mt-2 space-y-1",children:[c.jsx("li",{children:"• Clear browser cache and localStorage"}),c.jsx("li",{children:"• Verify the backend server is running"}),c.jsxs("li",{children:["• ",c.jsx("button",{onClick:()=>{localStorage.clear(),window.location.href="/login"},className:"text-blue-600 underline",children:"Logout and login again"})]})]})]})}):c.jsx("div",{className:"h-full",children:c.jsxs(RL,{children:[c.jsx(At,{path:"/login",element:c.jsx(Ype,{})}),e?c.jsxs(At,{path:"/",element:c.jsx(QL,{user:e,children:c.jsx(zF,{})}),children:[c.jsx(At,{index:!0,element:c.jsx(xde,{})}),c.jsxs(At,{path:"experiments",children:[c.jsx(At,{index:!0,element:c.jsx(spe,{})}),c.jsx(At,{path:":id",element:c.jsx(xpe,{})}),c.jsx(At,{path:"compare",element:c.jsx(jpe,{})})]}),c.jsxs(At,{path:"runs",children:[c.jsx(At,{index:!0,element:c.jsx(Ppe,{})}),c.jsx(At,{path:":id",element:c.jsx(Epe,{})})]}),c.jsxs(At,{path:"agents",children:[c.jsx(At,{index:!0,element:c.jsx(Cpe,{})}),c.jsx(At,{path:":id",element:c.jsx(Mpe,{})})]}),c.jsx(At,{path:"sessions",children:c.jsx(At,{path:":id",element:c.jsx(Rpe,{})})}),c.jsx(At,{path:"datasets",element:c.jsx(Hpe,{})}),c.jsx(At,{path:"artifacts",element:c.jsx(Vpe,{})})]}):null]})})}lv.createRoot(document.getElementById("root")).render(c.jsx($.StrictMode,{children:c.jsx(CR,{client:YL,children:c.jsx(qL,{children:c.jsx(XL,{children:c.jsx(Qpe,{})})})})}));export{xf as c,_e as g,kne as p,N as r}; diff --git a/dashboard/static/assets/index-b7FJa7kv.js b/dashboard/static/assets/index-b7FJa7kv.js deleted file mode 100644 index af5f6ba2..00000000 --- a/dashboard/static/assets/index-b7FJa7kv.js +++ /dev/null @@ -1,912 +0,0 @@ -var Iw=e=>{throw TypeError(e)};var Rm=(e,t,r)=>t.has(e)||Iw("Cannot "+r);var I=(e,t,r)=>(Rm(e,t,"read from private field"),r?r.call(e):t.get(e)),re=(e,t,r)=>t.has(e)?Iw("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Q=(e,t,r,n)=>(Rm(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),ge=(e,t,r)=>(Rm(e,t,"access private method"),r);var gf=(e,t,r,n)=>({set _(i){Q(e,t,i,r)},get _(){return I(e,t,n)}});function IM(e,t){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();var vf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var bA={exports:{}},cp={},wA={exports:{}},be={};/** - * @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 Wc=Symbol.for("react.element"),DM=Symbol.for("react.portal"),RM=Symbol.for("react.fragment"),LM=Symbol.for("react.strict_mode"),FM=Symbol.for("react.profiler"),zM=Symbol.for("react.provider"),BM=Symbol.for("react.context"),UM=Symbol.for("react.forward_ref"),WM=Symbol.for("react.suspense"),KM=Symbol.for("react.memo"),qM=Symbol.for("react.lazy"),Dw=Symbol.iterator;function HM(e){return e===null||typeof e!="object"?null:(e=Dw&&e[Dw]||e["@@iterator"],typeof e=="function"?e:null)}var SA={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jA=Object.assign,OA={};function dl(e,t,r){this.props=e,this.context=t,this.refs=OA,this.updater=r||SA}dl.prototype.isReactComponent={};dl.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=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,e,t,"setState")};dl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function NA(){}NA.prototype=dl.prototype;function ux(e,t,r){this.props=e,this.context=t,this.refs=OA,this.updater=r||SA}var cx=ux.prototype=new NA;cx.constructor=ux;jA(cx,dl.prototype);cx.isPureReactComponent=!0;var Rw=Array.isArray,PA=Object.prototype.hasOwnProperty,fx={current:null},AA={key:!0,ref:!0,__self:!0,__source:!0};function EA(e,t,r){var n,i={},a=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)PA.call(t,n)&&!AA.hasOwnProperty(n)&&(i[n]=t[n]);var s=arguments.length-2;if(s===1)i.children=r;else if(1>>1,q=T[H];if(0>>1;Hi(ve,W))Nei(we,ve)?(T[H]=we,T[Ne]=W,H=Ne):(T[H]=ve,T[Y]=W,H=Y);else if(Nei(we,W))T[H]=we,T[Ne]=W,H=Ne;else break e}}return z}function i(T,z){var W=T.sortIndex-z.sortIndex;return W!==0?W:T.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var l=[],u=[],f=1,d=null,h=3,p=!1,g=!1,m=!1,v=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(T){for(var z=r(u);z!==null;){if(z.callback===null)n(u);else if(z.startTime<=T)n(u),z.sortIndex=z.expirationTime,t(l,z);else break;z=r(u)}}function S(T){if(m=!1,b(T),!g)if(r(l)!==null)g=!0,C(w);else{var z=r(u);z!==null&&R(S,z.startTime-T)}}function w(T,z){g=!1,m&&(m=!1,y(P),P=-1),p=!0;var W=h;try{for(b(z),d=r(l);d!==null&&(!(d.expirationTime>z)||T&&!E());){var H=d.callback;if(typeof H=="function"){d.callback=null,h=d.priorityLevel;var q=H(d.expirationTime<=z);z=e.unstable_now(),typeof q=="function"?d.callback=q:d===r(l)&&n(l),b(z)}else n(l);d=r(l)}if(d!==null)var L=!0;else{var Y=r(u);Y!==null&&R(S,Y.startTime-z),L=!1}return L}finally{d=null,h=W,p=!1}}var O=!1,j=null,P=-1,A=5,_=-1;function E(){return!(e.unstable_now()-_T||125H?(T.sortIndex=W,t(u,T),r(l)===null&&T===r(u)&&(m?(y(P),P=-1):m=!0,R(S,W-H))):(T.sortIndex=q,t(l,T),g||p||(g=!0,C(w))),T},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(T){var z=h;return function(){var W=h;h=z;try{return T.apply(this,arguments)}finally{h=W}}}})($A);CA.exports=$A;var nI=CA.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 iI=N,_r=nI;function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),lv=Object.prototype.hasOwnProperty,aI=/^[: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]*$/,Fw={},zw={};function oI(e){return lv.call(zw,e)?!0:lv.call(Fw,e)?!1:aI.test(e)?zw[e]=!0:(Fw[e]=!0,!1)}function sI(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function lI(e,t,r,n){if(t===null||typeof t>"u"||sI(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ar(e,t,r,n,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var Lt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Lt[e]=new ar(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Lt[t]=new ar(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Lt[e]=new ar(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Lt[e]=new ar(e,2,!1,e,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(e){Lt[e]=new ar(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Lt[e]=new ar(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Lt[e]=new ar(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Lt[e]=new ar(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Lt[e]=new ar(e,5,!1,e.toLowerCase(),null,!1,!1)});var px=/[\-:]([a-z])/g;function mx(e){return e[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(e){var t=e.replace(px,mx);Lt[t]=new ar(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(px,mx);Lt[t]=new ar(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(px,mx);Lt[t]=new ar(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Lt[e]=new ar(e,1,!1,e.toLowerCase(),null,!1,!1)});Lt.xlinkHref=new ar("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Lt[e]=new ar(e,1,!1,e.toLowerCase(),null,!0,!0)});function gx(e,t,r,n){var i=Lt.hasOwnProperty(t)?Lt[t]:null;(i!==null?i.type!==0:n||!(2s||i[o]!==a[s]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{zm=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?su(e):""}function uI(e){switch(e.tag){case 5:return su(e.type);case 16:return su("Lazy");case 13:return su("Suspense");case 19:return su("SuspenseList");case 0:case 2:case 15:return e=Bm(e.type,!1),e;case 11:return e=Bm(e.type.render,!1),e;case 1:return e=Bm(e.type,!0),e;default:return""}}function dv(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ho:return"Fragment";case qo:return"Portal";case uv:return"Profiler";case vx:return"StrictMode";case cv:return"Suspense";case fv:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case DA:return(e.displayName||"Context")+".Consumer";case IA:return(e._context.displayName||"Context")+".Provider";case yx:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case xx:return t=e.displayName||null,t!==null?t:dv(e.type)||"Memo";case Mi:t=e._payload,e=e._init;try{return dv(e(t))}catch{}}return null}function cI(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return dv(t);case 8:return t===vx?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ha(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function LA(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function fI(e){var t=LA(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){n=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function bf(e){e._valueTracker||(e._valueTracker=fI(e))}function FA(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=LA(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Pd(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function hv(e,t){var r=t.checked;return et({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Uw(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=ha(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function zA(e,t){t=t.checked,t!=null&&gx(e,"checked",t,!1)}function pv(e,t){zA(e,t);var r=ha(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?mv(e,t.type,r):t.hasOwnProperty("defaultValue")&&mv(e,t.type,ha(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ww(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function mv(e,t,r){(t!=="number"||Pd(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var lu=Array.isArray;function ls(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=wf.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Cu(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var hu={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},dI=["Webkit","ms","Moz","O"];Object.keys(hu).forEach(function(e){dI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),hu[t]=hu[e]})});function KA(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||hu.hasOwnProperty(e)&&hu[e]?(""+t).trim():t+"px"}function qA(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=KA(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var hI=et({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 yv(e,t){if(t){if(hI[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function xv(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 bv=null;function bx(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var wv=null,us=null,cs=null;function Hw(e){if(e=Hc(e)){if(typeof wv!="function")throw Error(V(280));var t=e.stateNode;t&&(t=mp(t),wv(e.stateNode,e.type,t))}}function HA(e){us?cs?cs.push(e):cs=[e]:us=e}function VA(){if(us){var e=us,t=cs;if(cs=us=null,Hw(e),t)for(e=0;e>>=0,e===0?32:31-(OI(e)/NI|0)|0}var Sf=64,jf=4194304;function uu(e){switch(e&-e){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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function _d(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,a=e.pingedLanes,o=r&268435455;if(o!==0){var s=o&~i;s!==0?n=uu(s):(a&=o,a!==0&&(n=uu(a)))}else o=r&~i,o!==0?n=uu(o):a!==0&&(n=uu(a));if(n===0)return 0;if(t!==0&&t!==n&&!(t&i)&&(i=n&-n,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function Kc(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-un(t),e[t]=r}function kI(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=mu),t1=" ",r1=!1;function hE(e,t){switch(e){case"keyup":return nD.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pE(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Vo=!1;function aD(e,t){switch(e){case"compositionend":return pE(t);case"keypress":return t.which!==32?null:(r1=!0,t1);case"textInput":return e=t.data,e===t1&&r1?null:e;default:return null}}function oD(e,t){if(Vo)return e==="compositionend"||!Ex&&hE(e,t)?(e=fE(),ld=Nx=Yi=null,Vo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=o1(r)}}function yE(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?yE(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function xE(){for(var e=window,t=Pd();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Pd(e.document)}return t}function kx(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function mD(e){var t=xE(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&yE(r.ownerDocument.documentElement,r)){if(n!==null&&kx(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=r.textContent.length,a=Math.min(n.start,i);n=n.end===void 0?a:Math.min(n.end,i),!e.extend&&a>n&&(i=n,n=a,a=i),i=s1(r,a);var o=s1(r,n);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Go=null,Av=null,vu=null,Ev=!1;function l1(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Ev||Go==null||Go!==Pd(n)||(n=Go,"selectionStart"in n&&kx(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),vu&&Lu(vu,n)||(vu=n,n=$d(Av,"onSelect"),0Qo||(e.current=Mv[Qo],Mv[Qo]=null,Qo--)}function Be(e,t){Qo++,Mv[Qo]=e.current,e.current=t}var pa={},Ht=va(pa),dr=va(!1),uo=pa;function Cs(e,t){var r=e.type.contextTypes;if(!r)return pa;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in r)i[a]=t[a];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function hr(e){return e=e.childContextTypes,e!=null}function Id(){He(dr),He(Ht)}function m1(e,t,r){if(Ht.current!==pa)throw Error(V(168));Be(Ht,t),Be(dr,r)}function EE(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(V(108,cI(e)||"Unknown",i));return et({},r,n)}function Dd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pa,uo=Ht.current,Be(Ht,e),Be(dr,dr.current),!0}function g1(e,t,r){var n=e.stateNode;if(!n)throw Error(V(169));r?(e=EE(e,t,uo),n.__reactInternalMemoizedMergedChildContext=e,He(dr),He(Ht),Be(Ht,e)):He(dr),Be(dr,r)}var Vn=null,gp=!1,tg=!1;function kE(e){Vn===null?Vn=[e]:Vn.push(e)}function AD(e){gp=!0,kE(e)}function ya(){if(!tg&&Vn!==null){tg=!0;var e=0,t=Me;try{var r=Vn;for(Me=1;e>=o,i-=o,Jn=1<<32-un(t)+i|r<P?(A=j,j=null):A=j.sibling;var _=h(y,j,b[P],S);if(_===null){j===null&&(j=A);break}e&&j&&_.alternate===null&&t(y,j),x=a(_,x,P),O===null?w=_:O.sibling=_,O=_,j=A}if(P===b.length)return r(y,j),Ve&&Ta(y,P),w;if(j===null){for(;PP?(A=j,j=null):A=j.sibling;var E=h(y,j,_.value,S);if(E===null){j===null&&(j=A);break}e&&j&&E.alternate===null&&t(y,j),x=a(E,x,P),O===null?w=E:O.sibling=E,O=E,j=A}if(_.done)return r(y,j),Ve&&Ta(y,P),w;if(j===null){for(;!_.done;P++,_=b.next())_=d(y,_.value,S),_!==null&&(x=a(_,x,P),O===null?w=_:O.sibling=_,O=_);return Ve&&Ta(y,P),w}for(j=n(y,j);!_.done;P++,_=b.next())_=p(j,y,P,_.value,S),_!==null&&(e&&_.alternate!==null&&j.delete(_.key===null?P:_.key),x=a(_,x,P),O===null?w=_:O.sibling=_,O=_);return e&&j.forEach(function(k){return t(y,k)}),Ve&&Ta(y,P),w}function v(y,x,b,S){if(typeof b=="object"&&b!==null&&b.type===Ho&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case xf:e:{for(var w=b.key,O=x;O!==null;){if(O.key===w){if(w=b.type,w===Ho){if(O.tag===7){r(y,O.sibling),x=i(O,b.props.children),x.return=y,y=x;break e}}else if(O.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Mi&&x1(w)===O.type){r(y,O.sibling),x=i(O,b.props),x.ref=Wl(y,O,b),x.return=y,y=x;break e}r(y,O);break}else t(y,O);O=O.sibling}b.type===Ho?(x=no(b.props.children,y.mode,S,b.key),x.return=y,y=x):(S=gd(b.type,b.key,b.props,null,y.mode,S),S.ref=Wl(y,x,b),S.return=y,y=S)}return o(y);case qo:e:{for(O=b.key;x!==null;){if(x.key===O)if(x.tag===4&&x.stateNode.containerInfo===b.containerInfo&&x.stateNode.implementation===b.implementation){r(y,x.sibling),x=i(x,b.children||[]),x.return=y,y=x;break e}else{r(y,x);break}else t(y,x);x=x.sibling}x=ug(b,y.mode,S),x.return=y,y=x}return o(y);case Mi:return O=b._init,v(y,x,O(b._payload),S)}if(lu(b))return g(y,x,b,S);if(Ll(b))return m(y,x,b,S);_f(y,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,x!==null&&x.tag===6?(r(y,x.sibling),x=i(x,b),x.return=y,y=x):(r(y,x),x=lg(b,y.mode,S),x.return=y,y=x),o(y)):r(y,x)}return v}var Ms=$E(!0),ME=$E(!1),Fd=va(null),zd=null,es=null,$x=null;function Mx(){$x=es=zd=null}function Ix(e){var t=Fd.current;He(Fd),e._currentValue=t}function Rv(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function ds(e,t){zd=e,$x=es=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(cr=!0),e.firstContext=null)}function Vr(e){var t=e._currentValue;if($x!==e)if(e={context:e,memoizedValue:t,next:null},es===null){if(zd===null)throw Error(V(308));es=e,zd.dependencies={lanes:0,firstContext:e}}else es=es.next=e;return t}var Fa=null;function Dx(e){Fa===null?Fa=[e]:Fa.push(e)}function IE(e,t,r,n){var i=t.interleaved;return i===null?(r.next=r,Dx(t)):(r.next=i.next,i.next=r),t.interleaved=r,fi(e,n)}function fi(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Ii=!1;function Rx(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function DE(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ni(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ia(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,Oe&2){var i=n.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t,fi(e,r)}return i=n.interleaved,i===null?(t.next=t,Dx(n)):(t.next=i.next,i.next=t),n.interleaved=t,fi(e,r)}function cd(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Sx(e,r)}}function b1(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?i=a=o:a=a.next=o,r=r.next}while(r!==null);a===null?i=a=t:a=a.next=t}else i=a=t;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function Bd(e,t,r,n){var i=e.updateQueue;Ii=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?a=u:o.next=u,o=l;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==o&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=l))}if(a!==null){var d=i.baseState;o=0,f=u=l=null,s=a;do{var h=s.lane,p=s.eventTime;if((n&h)===h){f!==null&&(f=f.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(h=t,p=r,m.tag){case 1:if(g=m.payload,typeof g=="function"){d=g.call(p,d,h);break e}d=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,h=typeof g=="function"?g.call(p,d,h):g,h==null)break e;d=et({},d,h);break e;case 2:Ii=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=p,l=d):f=f.next=p,o|=h;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;h=s,s=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(f===null&&(l=d),i.baseState=l,i.firstBaseUpdate=u,i.lastBaseUpdate=f,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);ho|=o,e.lanes=o,e.memoizedState=d}}function w1(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=ng.transition;ng.transition={};try{e(!1),t()}finally{Me=r,ng.transition=n}}function ZE(){return Gr().memoizedState}function TD(e,t,r){var n=oa(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},ek(e))tk(t,r);else if(r=IE(e,t,r,n),r!==null){var i=tr();cn(r,e,n,i),rk(r,t,n)}}function CD(e,t,r){var n=oa(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(ek(e))tk(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,r);if(i.hasEagerState=!0,i.eagerState=s,pn(s,o)){var l=t.interleaved;l===null?(i.next=i,Dx(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}r=IE(e,t,i,n),r!==null&&(i=tr(),cn(r,e,n,i),rk(r,t,n))}}function ek(e){var t=e.alternate;return e===Ze||t!==null&&t===Ze}function tk(e,t){yu=Wd=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function rk(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Sx(e,r)}}var Kd={readContext:Vr,useCallback:zt,useContext:zt,useEffect:zt,useImperativeHandle:zt,useInsertionEffect:zt,useLayoutEffect:zt,useMemo:zt,useReducer:zt,useRef:zt,useState:zt,useDebugValue:zt,useDeferredValue:zt,useTransition:zt,useMutableSource:zt,useSyncExternalStore:zt,useId:zt,unstable_isNewReconciler:!1},$D={readContext:Vr,useCallback:function(e,t){return jn().memoizedState=[e,t===void 0?null:t],e},useContext:Vr,useEffect:j1,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,dd(4194308,4,GE.bind(null,t,e),r)},useLayoutEffect:function(e,t){return dd(4194308,4,e,t)},useInsertionEffect:function(e,t){return dd(4,2,e,t)},useMemo:function(e,t){var r=jn();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=jn();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=TD.bind(null,Ze,e),[n.memoizedState,e]},useRef:function(e){var t=jn();return e={current:e},t.memoizedState=e},useState:S1,useDebugValue:qx,useDeferredValue:function(e){return jn().memoizedState=e},useTransition:function(){var e=S1(!1),t=e[0];return e=_D.bind(null,e[1]),jn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Ze,i=jn();if(Ve){if(r===void 0)throw Error(V(407));r=r()}else{if(r=t(),Ct===null)throw Error(V(349));fo&30||zE(n,t,r)}i.memoizedState=r;var a={value:r,getSnapshot:t};return i.queue=a,j1(UE.bind(null,n,a,e),[e]),n.flags|=2048,Hu(9,BE.bind(null,n,a,r,t),void 0,null),r},useId:function(){var e=jn(),t=Ct.identifierPrefix;if(Ve){var r=Zn,n=Jn;r=(n&~(1<<32-un(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Ku++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[An]=t,e[Bu]=n,dk(e,t,!1,!1),t.stateNode=e;e:{switch(o=xv(r,n),r){case"dialog":We("cancel",e),We("close",e),i=n;break;case"iframe":case"object":case"embed":We("load",e),i=n;break;case"video":case"audio":for(i=0;iRs&&(t.flags|=128,n=!0,Kl(a,!1),t.lanes=4194304)}else{if(!n)if(e=Ud(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Kl(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ve)return Bt(t),null}else 2*ft()-a.renderingStartTime>Rs&&r!==1073741824&&(t.flags|=128,n=!0,Kl(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(r=a.last,r!==null?r.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=ft(),t.sibling=null,r=Qe.current,Be(Qe,n?r&1|2:r&1),t):(Bt(t),null);case 22:case 23:return Qx(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?br&1073741824&&(Bt(t),t.subtreeFlags&6&&(t.flags|=8192)):Bt(t),null;case 24:return null;case 25:return null}throw Error(V(156,t.tag))}function BD(e,t){switch(Tx(t),t.tag){case 1:return hr(t.type)&&Id(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Is(),He(dr),He(Ht),zx(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Fx(t),null;case 13:if(He(Qe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(V(340));$s()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return He(Qe),null;case 4:return Is(),null;case 10:return Ix(t.type._context),null;case 22:case 23:return Qx(),null;case 24:return null;default:return null}}var Cf=!1,Wt=!1,UD=typeof WeakSet=="function"?WeakSet:Set,J=null;function ts(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){nt(e,t,n)}else r.current=null}function Hv(e,t,r){try{r()}catch(n){nt(e,t,n)}}var M1=!1;function WD(e,t){if(kv=Td,e=xE(),kx(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var o=0,s=-1,l=-1,u=0,f=0,d=e,h=null;t:for(;;){for(var p;d!==r||i!==0&&d.nodeType!==3||(s=o+i),d!==a||n!==0&&d.nodeType!==3||(l=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(p=d.firstChild)!==null;)h=d,d=p;for(;;){if(d===e)break t;if(h===r&&++u===i&&(s=o),h===a&&++f===n&&(l=o),(p=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=p}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(_v={focusedElem:e,selectionRange:r},Td=!1,J=t;J!==null;)if(t=J,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,J=e;else for(;J!==null;){t=J;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,v=g.memoizedState,y=t.stateNode,x=y.getSnapshotBeforeUpdate(t.elementType===t.type?m:en(t.type,m),v);y.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(S){nt(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,J=e;break}J=t.return}return g=M1,M1=!1,g}function xu(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&Hv(t,r,a)}i=i.next}while(i!==n)}}function xp(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Vv(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function mk(e){var t=e.alternate;t!==null&&(e.alternate=null,mk(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[An],delete t[Bu],delete t[$v],delete t[ND],delete t[PD])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function gk(e){return e.tag===5||e.tag===3||e.tag===4}function I1(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||gk(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gv(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Md));else if(n!==4&&(e=e.child,e!==null))for(Gv(e,t,r),e=e.sibling;e!==null;)Gv(e,t,r),e=e.sibling}function Yv(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Yv(e,t,r),e=e.sibling;e!==null;)Yv(e,t,r),e=e.sibling}var It=null,nn=!1;function Ei(e,t,r){for(r=r.child;r!==null;)vk(e,t,r),r=r.sibling}function vk(e,t,r){if(Cn&&typeof Cn.onCommitFiberUnmount=="function")try{Cn.onCommitFiberUnmount(fp,r)}catch{}switch(r.tag){case 5:Wt||ts(r,t);case 6:var n=It,i=nn;It=null,Ei(e,t,r),It=n,nn=i,It!==null&&(nn?(e=It,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):It.removeChild(r.stateNode));break;case 18:It!==null&&(nn?(e=It,r=r.stateNode,e.nodeType===8?eg(e.parentNode,r):e.nodeType===1&&eg(e,r),Du(e)):eg(It,r.stateNode));break;case 4:n=It,i=nn,It=r.stateNode.containerInfo,nn=!0,Ei(e,t,r),It=n,nn=i;break;case 0:case 11:case 14:case 15:if(!Wt&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Hv(r,t,o),i=i.next}while(i!==n)}Ei(e,t,r);break;case 1:if(!Wt&&(ts(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){nt(r,t,s)}Ei(e,t,r);break;case 21:Ei(e,t,r);break;case 22:r.mode&1?(Wt=(n=Wt)||r.memoizedState!==null,Ei(e,t,r),Wt=n):Ei(e,t,r);break;default:Ei(e,t,r)}}function D1(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new UD),t.forEach(function(n){var i=JD.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i))})}}function Jr(e,t){var r=t.deletions;if(r!==null)for(var n=0;ni&&(i=o),n&=~a}if(n=i,n=ft()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*qD(n/1960))-n,10e?16:e,Xi===null)var n=!1;else{if(e=Xi,Xi=null,Vd=0,Oe&6)throw Error(V(331));var i=Oe;for(Oe|=4,J=e.current;J!==null;){var a=J,o=a.child;if(J.flags&16){var s=a.deletions;if(s!==null){for(var l=0;lft()-Yx?ro(e,0):Gx|=r),pr(e,t)}function Nk(e,t){t===0&&(e.mode&1?(t=jf,jf<<=1,!(jf&130023424)&&(jf=4194304)):t=1);var r=tr();e=fi(e,t),e!==null&&(Kc(e,t,r),pr(e,r))}function QD(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Nk(e,r)}function JD(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(V(314))}n!==null&&n.delete(t),Nk(e,r)}var Pk;Pk=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||dr.current)cr=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return cr=!1,FD(e,t,r);cr=!!(e.flags&131072)}else cr=!1,Ve&&t.flags&1048576&&_E(t,Ld,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;hd(e,t),e=t.pendingProps;var i=Cs(t,Ht.current);ds(t,r),i=Ux(null,t,n,e,i,r);var a=Wx();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,hr(n)?(a=!0,Dd(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Rx(t),i.updater=yp,t.stateNode=i,i._reactInternals=t,Fv(t,n,e,r),t=Uv(null,t,n,!0,a,r)):(t.tag=0,Ve&&a&&_x(t),Yt(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{switch(hd(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=eR(n),e=en(n,e),i){case 0:t=Bv(null,t,n,e,r);break e;case 1:t=T1(null,t,n,e,r);break e;case 11:t=k1(null,t,n,e,r);break e;case 14:t=_1(null,t,n,en(n.type,e),r);break e}throw Error(V(306,n,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:en(n,i),Bv(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:en(n,i),T1(e,t,n,i,r);case 3:e:{if(uk(t),e===null)throw Error(V(387));n=t.pendingProps,a=t.memoizedState,i=a.element,DE(e,t),Bd(t,n,null,r);var o=t.memoizedState;if(n=o.element,a.isDehydrated)if(a={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=Ds(Error(V(423)),t),t=C1(e,t,n,r,i);break e}else if(n!==i){i=Ds(Error(V(424)),t),t=C1(e,t,n,r,i);break e}else for(Or=na(t.stateNode.containerInfo.firstChild),Pr=t,Ve=!0,sn=null,r=ME(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if($s(),n===i){t=di(e,t,r);break e}Yt(e,t,n,r)}t=t.child}return t;case 5:return RE(t),e===null&&Dv(t),n=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,Tv(n,i)?o=null:a!==null&&Tv(n,a)&&(t.flags|=32),lk(e,t),Yt(e,t,o,r),t.child;case 6:return e===null&&Dv(t),null;case 13:return ck(e,t,r);case 4:return Lx(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Ms(t,null,n,r):Yt(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:en(n,i),k1(e,t,n,i,r);case 7:return Yt(e,t,t.pendingProps,r),t.child;case 8:return Yt(e,t,t.pendingProps.children,r),t.child;case 12:return Yt(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,Be(Fd,n._currentValue),n._currentValue=o,a!==null)if(pn(a.value,o)){if(a.children===i.children&&!dr.current){t=di(e,t,r);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var s=a.dependencies;if(s!==null){o=a.child;for(var l=s.firstContext;l!==null;){if(l.context===n){if(a.tag===1){l=ni(-1,r&-r),l.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?l.next=l:(l.next=f.next,f.next=l),u.pending=l}}a.lanes|=r,l=a.alternate,l!==null&&(l.lanes|=r),Rv(a.return,r,t),s.lanes|=r;break}l=l.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(V(341));o.lanes|=r,s=o.alternate,s!==null&&(s.lanes|=r),Rv(o,r,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}Yt(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=t.pendingProps.children,ds(t,r),i=Vr(i),n=n(i),t.flags|=1,Yt(e,t,n,r),t.child;case 14:return n=t.type,i=en(n,t.pendingProps),i=en(n.type,i),_1(e,t,n,i,r);case 15:return ok(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:en(n,i),hd(e,t),t.tag=1,hr(n)?(e=!0,Dd(t)):e=!1,ds(t,r),nk(t,n,i),Fv(t,n,i,r),Uv(null,t,n,!0,e,r);case 19:return fk(e,t,r);case 22:return sk(e,t,r)}throw Error(V(156,t.tag))};function Ak(e,t){return eE(e,t)}function ZD(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Kr(e,t,r,n){return new ZD(e,t,r,n)}function Zx(e){return e=e.prototype,!(!e||!e.isReactComponent)}function eR(e){if(typeof e=="function")return Zx(e)?1:0;if(e!=null){if(e=e.$$typeof,e===yx)return 11;if(e===xx)return 14}return 2}function sa(e,t){var r=e.alternate;return r===null?(r=Kr(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function gd(e,t,r,n,i,a){var o=2;if(n=e,typeof e=="function")Zx(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ho:return no(r.children,i,a,t);case vx:o=8,i|=8;break;case uv:return e=Kr(12,r,t,i|2),e.elementType=uv,e.lanes=a,e;case cv:return e=Kr(13,r,t,i),e.elementType=cv,e.lanes=a,e;case fv:return e=Kr(19,r,t,i),e.elementType=fv,e.lanes=a,e;case RA:return wp(r,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case IA:o=10;break e;case DA:o=9;break e;case yx:o=11;break e;case xx:o=14;break e;case Mi:o=16,n=null;break e}throw Error(V(130,e==null?e:typeof e,""))}return t=Kr(o,r,t,i),t.elementType=e,t.type=n,t.lanes=a,t}function no(e,t,r,n){return e=Kr(7,e,n,t),e.lanes=r,e}function wp(e,t,r,n){return e=Kr(22,e,n,t),e.elementType=RA,e.lanes=r,e.stateNode={isHidden:!1},e}function lg(e,t,r){return e=Kr(6,e,null,t),e.lanes=r,e}function ug(e,t,r){return t=Kr(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tR(e,t,r,n,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Wm(0),this.expirationTimes=Wm(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Wm(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function eb(e,t,r,n,i,a,o,s,l){return e=new tR(e,t,r,s,l),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Kr(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rx(a),e}function rR(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Tk)}catch(e){console.error(e)}}Tk(),TA.exports=Tr;var ib=TA.exports;const sR=_e(ib);var K1=ib;sv.createRoot=K1.createRoot,sv.hydrateRoot=K1.hydrateRoot;var ml=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},lR={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},zi,lx,uA,uR=(uA=class{constructor(){re(this,zi,lR);re(this,lx,!1)}setTimeoutProvider(e){Q(this,zi,e)}setTimeout(e,t){return I(this,zi).setTimeout(e,t)}clearTimeout(e){I(this,zi).clearTimeout(e)}setInterval(e,t){return I(this,zi).setInterval(e,t)}clearInterval(e){I(this,zi).clearInterval(e)}},zi=new WeakMap,lx=new WeakMap,uA),Ba=new uR;function cR(e){setTimeout(e,0)}var mo=typeof window>"u"||"Deno"in globalThis;function Xt(){}function fR(e,t){return typeof e=="function"?e(t):e}function ey(e){return typeof e=="number"&&e>=0&&e!==1/0}function Ck(e,t){return Math.max(e+(t||0)-Date.now(),0)}function la(e,t){return typeof e=="function"?e(t):e}function zr(e,t){return typeof e=="function"?e(t):e}function q1(e,t){const{type:r="all",exact:n,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(n){if(t.queryHash!==ab(o,t.options))return!1}else if(!Gu(t.queryKey,o))return!1}if(r!=="all"){const l=t.isActive();if(r==="active"&&!l||r==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function H1(e,t){const{exact:r,status:n,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(r){if(go(t.options.mutationKey)!==go(a))return!1}else if(!Gu(t.options.mutationKey,a))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function ab(e,t){return((t==null?void 0:t.queryKeyHashFn)||go)(e)}function go(e){return JSON.stringify(e,(t,r)=>ty(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function Gu(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(r=>Gu(e[r],t[r])):!1}var dR=Object.prototype.hasOwnProperty;function $k(e,t){if(e===t)return e;const r=V1(e)&&V1(t);if(!r&&!(ty(e)&&ty(t)))return t;const i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?new Array(o):{};let l=0;for(let u=0;u{Ba.setTimeout(t,e)})}function ry(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?$k(e,t):t}function pR(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}function mR(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var ob=Symbol();function Mk(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===ob?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Ik(e,t){return typeof e=="function"?e(...t):!!e}var Va,Bi,xs,cA,gR=(cA=class extends ml{constructor(){super();re(this,Va);re(this,Bi);re(this,xs);Q(this,xs,t=>{if(!mo&&window.addEventListener){const r=()=>t();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){I(this,Bi)||this.setEventListener(I(this,xs))}onUnsubscribe(){var t;this.hasListeners()||((t=I(this,Bi))==null||t.call(this),Q(this,Bi,void 0))}setEventListener(t){var r;Q(this,xs,t),(r=I(this,Bi))==null||r.call(this),Q(this,Bi,t(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(t){I(this,Va)!==t&&(Q(this,Va,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(r=>{r(t)})}isFocused(){var t;return typeof I(this,Va)=="boolean"?I(this,Va):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Va=new WeakMap,Bi=new WeakMap,xs=new WeakMap,cA),sb=new gR;function ny(){let e,t;const r=new Promise((i,a)=>{e=i,t=a});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}var vR=cR;function yR(){let e=[],t=0,r=s=>{s()},n=s=>{s()},i=vR;const a=s=>{t?e.push(s):i(()=>{r(s)})},o=()=>{const s=e;e=[],s.length&&i(()=>{n(()=>{s.forEach(l=>{r(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||o()}return l},batchCalls:s=>(...l)=>{a(()=>{s(...l)})},schedule:a,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{i=s}}}var St=yR(),bs,Ui,ws,fA,xR=(fA=class extends ml{constructor(){super();re(this,bs,!0);re(this,Ui);re(this,ws);Q(this,ws,t=>{if(!mo&&window.addEventListener){const r=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){I(this,Ui)||this.setEventListener(I(this,ws))}onUnsubscribe(){var t;this.hasListeners()||((t=I(this,Ui))==null||t.call(this),Q(this,Ui,void 0))}setEventListener(t){var r;Q(this,ws,t),(r=I(this,Ui))==null||r.call(this),Q(this,Ui,t(this.setOnline.bind(this)))}setOnline(t){I(this,bs)!==t&&(Q(this,bs,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return I(this,bs)}},bs=new WeakMap,Ui=new WeakMap,ws=new WeakMap,fA),Qd=new xR;function bR(e){return Math.min(1e3*2**e,3e4)}function Dk(e){return(e??"online")==="online"?Qd.isOnline():!0}var iy=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Rk(e){let t=!1,r=0,n;const i=ny(),a=()=>i.status!=="pending",o=m=>{var v;if(!a()){const y=new iy(m);h(y),(v=e.onCancel)==null||v.call(e,y)}},s=()=>{t=!0},l=()=>{t=!1},u=()=>sb.isFocused()&&(e.networkMode==="always"||Qd.isOnline())&&e.canRun(),f=()=>Dk(e.networkMode)&&e.canRun(),d=m=>{a()||(n==null||n(),i.resolve(m))},h=m=>{a()||(n==null||n(),i.reject(m))},p=()=>new Promise(m=>{var v;n=y=>{(a()||u())&&m(y)},(v=e.onPause)==null||v.call(e)}).then(()=>{var m;n=void 0,a()||(m=e.onContinue)==null||m.call(e)}),g=()=>{if(a())return;let m;const v=r===0?e.initialPromise:void 0;try{m=v??e.fn()}catch(y){m=Promise.reject(y)}Promise.resolve(m).then(d).catch(y=>{var O;if(a())return;const x=e.retry??(mo?0:3),b=e.retryDelay??bR,S=typeof b=="function"?b(r,y):b,w=x===!0||typeof x=="number"&&ru()?void 0:p()).then(()=>{t?h(y):g()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(n==null||n(),i),cancelRetry:s,continueRetry:l,canStart:f,start:()=>(f()?g():p().then(g),i)}}var Ga,dA,Lk=(dA=class{constructor(){re(this,Ga)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ey(this.gcTime)&&Q(this,Ga,Ba.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(mo?1/0:5*60*1e3))}clearGcTimeout(){I(this,Ga)&&(Ba.clearTimeout(I(this,Ga)),Q(this,Ga,void 0))}},Ga=new WeakMap,dA),Ya,Ss,Lr,Xa,Et,Lc,Qa,tn,Kn,hA,wR=(hA=class extends Lk{constructor(t){super();re(this,tn);re(this,Ya);re(this,Ss);re(this,Lr);re(this,Xa);re(this,Et);re(this,Lc);re(this,Qa);Q(this,Qa,!1),Q(this,Lc,t.defaultOptions),this.setOptions(t.options),this.observers=[],Q(this,Xa,t.client),Q(this,Lr,I(this,Xa).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Q(this,Ya,Y1(this.options)),this.state=t.state??I(this,Ya),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=I(this,Et))==null?void 0:t.promise}setOptions(t){if(this.options={...I(this,Lc),...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=Y1(this.options);r.data!==void 0&&(this.setData(r.data,{updatedAt:r.dataUpdatedAt,manual:!0}),Q(this,Ya,r))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&I(this,Lr).remove(this)}setData(t,r){const n=ry(this.state.data,t,this.options);return ge(this,tn,Kn).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(t,r){ge(this,tn,Kn).call(this,{type:"setState",state:t,setStateOptions:r})}cancel(t){var n,i;const r=(n=I(this,Et))==null?void 0:n.promise;return(i=I(this,Et))==null||i.cancel(t),r?r.then(Xt).catch(Xt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(I(this,Ya))}isActive(){return this.observers.some(t=>zr(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ob||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>la(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Ck(this.state.dataUpdatedAt,t)}onFocus(){var r;const t=this.observers.find(n=>n.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(r=I(this,Et))==null||r.continue()}onOnline(){var r;const t=this.observers.find(n=>n.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(r=I(this,Et))==null||r.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),I(this,Lr).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(r=>r!==t),this.observers.length||(I(this,Et)&&(I(this,Qa)?I(this,Et).cancel({revert:!0}):I(this,Et).cancelRetry()),this.scheduleGc()),I(this,Lr).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ge(this,tn,Kn).call(this,{type:"invalidate"})}async fetch(t,r){var l,u,f,d,h,p,g,m,v,y,x,b;if(this.state.fetchStatus!=="idle"&&((l=I(this,Et))==null?void 0:l.status())!=="rejected"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if(I(this,Et))return I(this,Et).continueRetry(),I(this,Et).promise}if(t&&this.setOptions(t),!this.options.queryFn){const S=this.observers.find(w=>w.options.queryFn);S&&this.setOptions(S.options)}const n=new AbortController,i=S=>{Object.defineProperty(S,"signal",{enumerable:!0,get:()=>(Q(this,Qa,!0),n.signal)})},a=()=>{const S=Mk(this.options,r),O=(()=>{const j={client:I(this,Xa),queryKey:this.queryKey,meta:this.meta};return i(j),j})();return Q(this,Qa,!1),this.options.persister?this.options.persister(S,O,this):S(O)},s=(()=>{const S={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:I(this,Xa),state:this.state,fetchFn:a};return i(S),S})();(u=this.options.behavior)==null||u.onFetch(s,this),Q(this,Ss,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((f=s.fetchOptions)==null?void 0:f.meta))&&ge(this,tn,Kn).call(this,{type:"fetch",meta:(d=s.fetchOptions)==null?void 0:d.meta}),Q(this,Et,Rk({initialPromise:r==null?void 0:r.initialPromise,fn:s.fetchFn,onCancel:S=>{S instanceof iy&&S.revert&&this.setState({...I(this,Ss),fetchStatus:"idle"}),n.abort()},onFail:(S,w)=>{ge(this,tn,Kn).call(this,{type:"failed",failureCount:S,error:w})},onPause:()=>{ge(this,tn,Kn).call(this,{type:"pause"})},onContinue:()=>{ge(this,tn,Kn).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0}));try{const S=await I(this,Et).start();if(S===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(S),(p=(h=I(this,Lr).config).onSuccess)==null||p.call(h,S,this),(m=(g=I(this,Lr).config).onSettled)==null||m.call(g,S,this.state.error,this),S}catch(S){if(S instanceof iy){if(S.silent)return I(this,Et).promise;if(S.revert){if(this.state.data===void 0)throw S;return this.state.data}}throw ge(this,tn,Kn).call(this,{type:"error",error:S}),(y=(v=I(this,Lr).config).onError)==null||y.call(v,S,this),(b=(x=I(this,Lr).config).onSettled)==null||b.call(x,this.state.data,S,this),S}finally{this.scheduleGc()}}},Ya=new WeakMap,Ss=new WeakMap,Lr=new WeakMap,Xa=new WeakMap,Et=new WeakMap,Lc=new WeakMap,Qa=new WeakMap,tn=new WeakSet,Kn=function(t){const r=n=>{switch(t.type){case"failed":return{...n,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...Fk(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,data:t.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return Q(this,Ss,t.manual?i:void 0),i;case"error":const a=t.error;return{...n,error:a,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=r(this.state),St.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),I(this,Lr).notify({query:this,type:"updated",action:t})})},hA);function Fk(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Dk(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Y1(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var sr,Se,Fc,Vt,Ja,js,Gn,Wi,zc,Os,Ns,Za,eo,Ki,Ps,ke,fu,ay,oy,sy,ly,uy,cy,fy,zk,pA,SR=(pA=class extends ml{constructor(t,r){super();re(this,ke);re(this,sr);re(this,Se);re(this,Fc);re(this,Vt);re(this,Ja);re(this,js);re(this,Gn);re(this,Wi);re(this,zc);re(this,Os);re(this,Ns);re(this,Za);re(this,eo);re(this,Ki);re(this,Ps,new Set);this.options=r,Q(this,sr,t),Q(this,Wi,null),Q(this,Gn,ny()),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(I(this,Se).addObserver(this),X1(I(this,Se),this.options)?ge(this,ke,fu).call(this):this.updateResult(),ge(this,ke,ly).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return dy(I(this,Se),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return dy(I(this,Se),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,ge(this,ke,uy).call(this),ge(this,ke,cy).call(this),I(this,Se).removeObserver(this)}setOptions(t){const r=this.options,n=I(this,Se);if(this.options=I(this,sr).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof zr(this.options.enabled,I(this,Se))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");ge(this,ke,fy).call(this),I(this,Se).setOptions(this.options),r._defaulted&&!Xd(this.options,r)&&I(this,sr).getQueryCache().notify({type:"observerOptionsUpdated",query:I(this,Se),observer:this});const i=this.hasListeners();i&&Q1(I(this,Se),n,this.options,r)&&ge(this,ke,fu).call(this),this.updateResult(),i&&(I(this,Se)!==n||zr(this.options.enabled,I(this,Se))!==zr(r.enabled,I(this,Se))||la(this.options.staleTime,I(this,Se))!==la(r.staleTime,I(this,Se)))&&ge(this,ke,ay).call(this);const a=ge(this,ke,oy).call(this);i&&(I(this,Se)!==n||zr(this.options.enabled,I(this,Se))!==zr(r.enabled,I(this,Se))||a!==I(this,Ki))&&ge(this,ke,sy).call(this,a)}getOptimisticResult(t){const r=I(this,sr).getQueryCache().build(I(this,sr),t),n=this.createResult(r,t);return OR(this,n)&&(Q(this,Vt,n),Q(this,js,this.options),Q(this,Ja,I(this,Se).state)),n}getCurrentResult(){return I(this,Vt)}trackResult(t,r){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),r==null||r(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&I(this,Gn).status==="pending"&&I(this,Gn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){I(this,Ps).add(t)}getCurrentQuery(){return I(this,Se)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const r=I(this,sr).defaultQueryOptions(t),n=I(this,sr).getQueryCache().build(I(this,sr),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(t){return ge(this,ke,fu).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),I(this,Vt)))}createResult(t,r){var A;const n=I(this,Se),i=this.options,a=I(this,Vt),o=I(this,Ja),s=I(this,js),u=t!==n?t.state:I(this,Fc),{state:f}=t;let d={...f},h=!1,p;if(r._optimisticResults){const _=this.hasListeners(),E=!_&&X1(t,r),k=_&&Q1(t,n,r,i);(E||k)&&(d={...d,...Fk(f.data,t.options)}),r._optimisticResults==="isRestoring"&&(d.fetchStatus="idle")}let{error:g,errorUpdatedAt:m,status:v}=d;p=d.data;let y=!1;if(r.placeholderData!==void 0&&p===void 0&&v==="pending"){let _;a!=null&&a.isPlaceholderData&&r.placeholderData===(s==null?void 0:s.placeholderData)?(_=a.data,y=!0):_=typeof r.placeholderData=="function"?r.placeholderData((A=I(this,Ns))==null?void 0:A.state.data,I(this,Ns)):r.placeholderData,_!==void 0&&(v="success",p=ry(a==null?void 0:a.data,_,r),h=!0)}if(r.select&&p!==void 0&&!y)if(a&&p===(o==null?void 0:o.data)&&r.select===I(this,zc))p=I(this,Os);else try{Q(this,zc,r.select),p=r.select(p),p=ry(a==null?void 0:a.data,p,r),Q(this,Os,p),Q(this,Wi,null)}catch(_){Q(this,Wi,_)}I(this,Wi)&&(g=I(this,Wi),p=I(this,Os),m=Date.now(),v="error");const x=d.fetchStatus==="fetching",b=v==="pending",S=v==="error",w=b&&x,O=p!==void 0,P={status:v,fetchStatus:d.fetchStatus,isPending:b,isSuccess:v==="success",isError:S,isInitialLoading:w,isLoading:w,data:p,dataUpdatedAt:d.dataUpdatedAt,error:g,errorUpdatedAt:m,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:d.dataUpdateCount>0||d.errorUpdateCount>0,isFetchedAfterMount:d.dataUpdateCount>u.dataUpdateCount||d.errorUpdateCount>u.errorUpdateCount,isFetching:x,isRefetching:x&&!b,isLoadingError:S&&!O,isPaused:d.fetchStatus==="paused",isPlaceholderData:h,isRefetchError:S&&O,isStale:lb(t,r),refetch:this.refetch,promise:I(this,Gn),isEnabled:zr(r.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const _=D=>{P.status==="error"?D.reject(P.error):P.data!==void 0&&D.resolve(P.data)},E=()=>{const D=Q(this,Gn,P.promise=ny());_(D)},k=I(this,Gn);switch(k.status){case"pending":t.queryHash===n.queryHash&&_(k);break;case"fulfilled":(P.status==="error"||P.data!==k.value)&&E();break;case"rejected":(P.status!=="error"||P.error!==k.reason)&&E();break}}return P}updateResult(){const t=I(this,Vt),r=this.createResult(I(this,Se),this.options);if(Q(this,Ja,I(this,Se).state),Q(this,js,this.options),I(this,Ja).data!==void 0&&Q(this,Ns,I(this,Se)),Xd(r,t))return;Q(this,Vt,r);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,a=typeof i=="function"?i():i;if(a==="all"||!a&&!I(this,Ps).size)return!0;const o=new Set(a??I(this,Ps));return this.options.throwOnError&&o.add("error"),Object.keys(I(this,Vt)).some(s=>{const l=s;return I(this,Vt)[l]!==t[l]&&o.has(l)})};ge(this,ke,zk).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ge(this,ke,ly).call(this)}},sr=new WeakMap,Se=new WeakMap,Fc=new WeakMap,Vt=new WeakMap,Ja=new WeakMap,js=new WeakMap,Gn=new WeakMap,Wi=new WeakMap,zc=new WeakMap,Os=new WeakMap,Ns=new WeakMap,Za=new WeakMap,eo=new WeakMap,Ki=new WeakMap,Ps=new WeakMap,ke=new WeakSet,fu=function(t){ge(this,ke,fy).call(this);let r=I(this,Se).fetch(this.options,t);return t!=null&&t.throwOnError||(r=r.catch(Xt)),r},ay=function(){ge(this,ke,uy).call(this);const t=la(this.options.staleTime,I(this,Se));if(mo||I(this,Vt).isStale||!ey(t))return;const n=Ck(I(this,Vt).dataUpdatedAt,t)+1;Q(this,Za,Ba.setTimeout(()=>{I(this,Vt).isStale||this.updateResult()},n))},oy=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(I(this,Se)):this.options.refetchInterval)??!1},sy=function(t){ge(this,ke,cy).call(this),Q(this,Ki,t),!(mo||zr(this.options.enabled,I(this,Se))===!1||!ey(I(this,Ki))||I(this,Ki)===0)&&Q(this,eo,Ba.setInterval(()=>{(this.options.refetchIntervalInBackground||sb.isFocused())&&ge(this,ke,fu).call(this)},I(this,Ki)))},ly=function(){ge(this,ke,ay).call(this),ge(this,ke,sy).call(this,ge(this,ke,oy).call(this))},uy=function(){I(this,Za)&&(Ba.clearTimeout(I(this,Za)),Q(this,Za,void 0))},cy=function(){I(this,eo)&&(Ba.clearInterval(I(this,eo)),Q(this,eo,void 0))},fy=function(){const t=I(this,sr).getQueryCache().build(I(this,sr),this.options);if(t===I(this,Se))return;const r=I(this,Se);Q(this,Se,t),Q(this,Fc,t.state),this.hasListeners()&&(r==null||r.removeObserver(this),t.addObserver(this))},zk=function(t){St.batch(()=>{t.listeners&&this.listeners.forEach(r=>{r(I(this,Vt))}),I(this,sr).getQueryCache().notify({query:I(this,Se),type:"observerResultsUpdated"})})},pA);function jR(e,t){return zr(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function X1(e,t){return jR(e,t)||e.state.data!==void 0&&dy(e,t,t.refetchOnMount)}function dy(e,t,r){if(zr(t.enabled,e)!==!1&&la(t.staleTime,e)!=="static"){const n=typeof r=="function"?r(e):r;return n==="always"||n!==!1&&lb(e,t)}return!1}function Q1(e,t,r,n){return(e!==t||zr(n.enabled,e)===!1)&&(!r.suspense||e.state.status!=="error")&&lb(e,r)}function lb(e,t){return zr(t.enabled,e)!==!1&&e.isStaleByTime(la(t.staleTime,e))}function OR(e,t){return!Xd(e.getCurrentResult(),t)}function J1(e){return{onFetch:(t,r)=>{var f,d,h,p,g;const n=t.options,i=(h=(d=(f=t.fetchOptions)==null?void 0:f.meta)==null?void 0:d.fetchMore)==null?void 0:h.direction,a=((p=t.state.data)==null?void 0:p.pages)||[],o=((g=t.state.data)==null?void 0:g.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const u=async()=>{let m=!1;const v=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?m=!0:t.signal.addEventListener("abort",()=>{m=!0}),t.signal)})},y=Mk(t.options,t.fetchOptions),x=async(b,S,w)=>{if(m)return Promise.reject();if(S==null&&b.pages.length)return Promise.resolve(b);const j=(()=>{const E={client:t.client,queryKey:t.queryKey,pageParam:S,direction:w?"backward":"forward",meta:t.options.meta};return v(E),E})(),P=await y(j),{maxPages:A}=t.options,_=w?mR:pR;return{pages:_(b.pages,P,A),pageParams:_(b.pageParams,S,A)}};if(i&&a.length){const b=i==="backward",S=b?NR:Z1,w={pages:a,pageParams:o},O=S(n,w);s=await x(w,O,b)}else{const b=e??a.length;do{const S=l===0?o[0]??n.initialPageParam:Z1(n,s);if(l>0&&S==null)break;s=await x(s,S),l++}while(l{var m,v;return(v=(m=t.options).persister)==null?void 0:v.call(m,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r)}:t.fetchFn=u}}}function Z1(e,{pages:t,pageParams:r}){const n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function NR(e,{pages:t,pageParams:r}){var n;return t.length>0?(n=e.getPreviousPageParam)==null?void 0:n.call(e,t[0],t,r[0],r):void 0}var Bc,On,Gt,to,Nn,Ci,mA,PR=(mA=class extends Lk{constructor(t){super();re(this,Nn);re(this,Bc);re(this,On);re(this,Gt);re(this,to);Q(this,Bc,t.client),this.mutationId=t.mutationId,Q(this,Gt,t.mutationCache),Q(this,On,[]),this.state=t.state||Bk(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){I(this,On).includes(t)||(I(this,On).push(t),this.clearGcTimeout(),I(this,Gt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Q(this,On,I(this,On).filter(r=>r!==t)),this.scheduleGc(),I(this,Gt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){I(this,On).length||(this.state.status==="pending"?this.scheduleGc():I(this,Gt).remove(this))}continue(){var t;return((t=I(this,to))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,s,l,u,f,d,h,p,g,m,v,y,x,b,S,w,O,j,P,A;const r=()=>{ge(this,Nn,Ci).call(this,{type:"continue"})},n={client:I(this,Bc),meta:this.options.meta,mutationKey:this.options.mutationKey};Q(this,to,Rk({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(_,E)=>{ge(this,Nn,Ci).call(this,{type:"failed",failureCount:_,error:E})},onPause:()=>{ge(this,Nn,Ci).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>I(this,Gt).canRun(this)}));const i=this.state.status==="pending",a=!I(this,to).canStart();try{if(i)r();else{ge(this,Nn,Ci).call(this,{type:"pending",variables:t,isPaused:a}),await((s=(o=I(this,Gt).config).onMutate)==null?void 0:s.call(o,t,this,n));const E=await((u=(l=this.options).onMutate)==null?void 0:u.call(l,t,n));E!==this.state.context&&ge(this,Nn,Ci).call(this,{type:"pending",context:E,variables:t,isPaused:a})}const _=await I(this,to).start();return await((d=(f=I(this,Gt).config).onSuccess)==null?void 0:d.call(f,_,t,this.state.context,this,n)),await((p=(h=this.options).onSuccess)==null?void 0:p.call(h,_,t,this.state.context,n)),await((m=(g=I(this,Gt).config).onSettled)==null?void 0:m.call(g,_,null,this.state.variables,this.state.context,this,n)),await((y=(v=this.options).onSettled)==null?void 0:y.call(v,_,null,t,this.state.context,n)),ge(this,Nn,Ci).call(this,{type:"success",data:_}),_}catch(_){try{throw await((b=(x=I(this,Gt).config).onError)==null?void 0:b.call(x,_,t,this.state.context,this,n)),await((w=(S=this.options).onError)==null?void 0:w.call(S,_,t,this.state.context,n)),await((j=(O=I(this,Gt).config).onSettled)==null?void 0:j.call(O,void 0,_,this.state.variables,this.state.context,this,n)),await((A=(P=this.options).onSettled)==null?void 0:A.call(P,void 0,_,t,this.state.context,n)),_}finally{ge(this,Nn,Ci).call(this,{type:"error",error:_})}}finally{I(this,Gt).runNext(this)}}},Bc=new WeakMap,On=new WeakMap,Gt=new WeakMap,to=new WeakMap,Nn=new WeakSet,Ci=function(t){const r=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=r(this.state),St.batch(()=>{I(this,On).forEach(n=>{n.onMutationUpdate(t)}),I(this,Gt).notify({mutation:this,type:"updated",action:t})})},mA);function Bk(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Yn,rn,Uc,gA,AR=(gA=class extends ml{constructor(t={}){super();re(this,Yn);re(this,rn);re(this,Uc);this.config=t,Q(this,Yn,new Set),Q(this,rn,new Map),Q(this,Uc,0)}build(t,r,n){const i=new PR({client:t,mutationCache:this,mutationId:++gf(this,Uc)._,options:t.defaultMutationOptions(r),state:n});return this.add(i),i}add(t){I(this,Yn).add(t);const r=If(t);if(typeof r=="string"){const n=I(this,rn).get(r);n?n.push(t):I(this,rn).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if(I(this,Yn).delete(t)){const r=If(t);if(typeof r=="string"){const n=I(this,rn).get(r);if(n)if(n.length>1){const i=n.indexOf(t);i!==-1&&n.splice(i,1)}else n[0]===t&&I(this,rn).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=If(t);if(typeof r=="string"){const n=I(this,rn).get(r),i=n==null?void 0:n.find(a=>a.state.status==="pending");return!i||i===t}else return!0}runNext(t){var n;const r=If(t);if(typeof r=="string"){const i=(n=I(this,rn).get(r))==null?void 0:n.find(a=>a!==t&&a.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){St.batch(()=>{I(this,Yn).forEach(t=>{this.notify({type:"removed",mutation:t})}),I(this,Yn).clear(),I(this,rn).clear()})}getAll(){return Array.from(I(this,Yn))}find(t){const r={exact:!0,...t};return this.getAll().find(n=>H1(r,n))}findAll(t={}){return this.getAll().filter(r=>H1(t,r))}notify(t){St.batch(()=>{this.listeners.forEach(r=>{r(t)})})}resumePausedMutations(){const t=this.getAll().filter(r=>r.state.isPaused);return St.batch(()=>Promise.all(t.map(r=>r.continue().catch(Xt))))}},Yn=new WeakMap,rn=new WeakMap,Uc=new WeakMap,gA);function If(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Xn,qi,lr,Qn,li,vd,hy,vA,ER=(vA=class extends ml{constructor(r,n){super();re(this,li);re(this,Xn);re(this,qi);re(this,lr);re(this,Qn);Q(this,Xn,r),this.setOptions(n),this.bindMethods(),ge(this,li,vd).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(r){var i;const n=this.options;this.options=I(this,Xn).defaultMutationOptions(r),Xd(this.options,n)||I(this,Xn).getMutationCache().notify({type:"observerOptionsUpdated",mutation:I(this,lr),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&go(n.mutationKey)!==go(this.options.mutationKey)?this.reset():((i=I(this,lr))==null?void 0:i.state.status)==="pending"&&I(this,lr).setOptions(this.options)}onUnsubscribe(){var r;this.hasListeners()||(r=I(this,lr))==null||r.removeObserver(this)}onMutationUpdate(r){ge(this,li,vd).call(this),ge(this,li,hy).call(this,r)}getCurrentResult(){return I(this,qi)}reset(){var r;(r=I(this,lr))==null||r.removeObserver(this),Q(this,lr,void 0),ge(this,li,vd).call(this),ge(this,li,hy).call(this)}mutate(r,n){var i;return Q(this,Qn,n),(i=I(this,lr))==null||i.removeObserver(this),Q(this,lr,I(this,Xn).getMutationCache().build(I(this,Xn),this.options)),I(this,lr).addObserver(this),I(this,lr).execute(r)}},Xn=new WeakMap,qi=new WeakMap,lr=new WeakMap,Qn=new WeakMap,li=new WeakSet,vd=function(){var n;const r=((n=I(this,lr))==null?void 0:n.state)??Bk();Q(this,qi,{...r,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",isIdle:r.status==="idle",mutate:this.mutate,reset:this.reset})},hy=function(r){St.batch(()=>{var n,i,a,o,s,l,u,f;if(I(this,Qn)&&this.hasListeners()){const d=I(this,qi).variables,h=I(this,qi).context,p={client:I(this,Xn),meta:this.options.meta,mutationKey:this.options.mutationKey};(r==null?void 0:r.type)==="success"?((i=(n=I(this,Qn)).onSuccess)==null||i.call(n,r.data,d,h,p),(o=(a=I(this,Qn)).onSettled)==null||o.call(a,r.data,null,d,h,p)):(r==null?void 0:r.type)==="error"&&((l=(s=I(this,Qn)).onError)==null||l.call(s,r.error,d,h,p),(f=(u=I(this,Qn)).onSettled)==null||f.call(u,void 0,r.error,d,h,p))}this.listeners.forEach(d=>{d(I(this,qi))})})},vA),Pn,yA,kR=(yA=class extends ml{constructor(t={}){super();re(this,Pn);this.config=t,Q(this,Pn,new Map)}build(t,r,n){const i=r.queryKey,a=r.queryHash??ab(i,r);let o=this.get(a);return o||(o=new wR({client:t,queryKey:i,queryHash:a,options:t.defaultQueryOptions(r),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){I(this,Pn).has(t.queryHash)||(I(this,Pn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=I(this,Pn).get(t.queryHash);r&&(t.destroy(),r===t&&I(this,Pn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){St.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return I(this,Pn).get(t)}getAll(){return[...I(this,Pn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(n=>q1(r,n))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(n=>q1(t,n)):r}notify(t){St.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){St.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){St.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Pn=new WeakMap,yA),rt,Hi,Vi,As,Es,Gi,ks,_s,xA,_R=(xA=class{constructor(e={}){re(this,rt);re(this,Hi);re(this,Vi);re(this,As);re(this,Es);re(this,Gi);re(this,ks);re(this,_s);Q(this,rt,e.queryCache||new kR),Q(this,Hi,e.mutationCache||new AR),Q(this,Vi,e.defaultOptions||{}),Q(this,As,new Map),Q(this,Es,new Map),Q(this,Gi,0)}mount(){gf(this,Gi)._++,I(this,Gi)===1&&(Q(this,ks,sb.subscribe(async e=>{e&&(await this.resumePausedMutations(),I(this,rt).onFocus())})),Q(this,_s,Qd.subscribe(async e=>{e&&(await this.resumePausedMutations(),I(this,rt).onOnline())})))}unmount(){var e,t;gf(this,Gi)._--,I(this,Gi)===0&&((e=I(this,ks))==null||e.call(this),Q(this,ks,void 0),(t=I(this,_s))==null||t.call(this),Q(this,_s,void 0))}isFetching(e){return I(this,rt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return I(this,Hi).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=I(this,rt).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=I(this,rt).build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(la(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return I(this,rt).findAll(e).map(({queryKey:t,state:r})=>{const n=r.data;return[t,n]})}setQueryData(e,t,r){const n=this.defaultQueryOptions({queryKey:e}),i=I(this,rt).get(n.queryHash),a=i==null?void 0:i.state.data,o=fR(t,a);if(o!==void 0)return I(this,rt).build(this,n).setData(o,{...r,manual:!0})}setQueriesData(e,t,r){return St.batch(()=>I(this,rt).findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=I(this,rt).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=I(this,rt);St.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=I(this,rt);return St.batch(()=>(r.findAll(e).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},n=St.batch(()=>I(this,rt).findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(Xt).catch(Xt)}invalidateQueries(e,t={}){return St.batch(()=>(I(this,rt).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},n=St.batch(()=>I(this,rt).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let a=i.fetch(void 0,r);return r.throwOnError||(a=a.catch(Xt)),i.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(n).then(Xt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=I(this,rt).build(this,t);return r.isStaleByTime(la(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Xt).catch(Xt)}fetchInfiniteQuery(e){return e.behavior=J1(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Xt).catch(Xt)}ensureInfiniteQueryData(e){return e.behavior=J1(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Qd.isOnline()?I(this,Hi).resumePausedMutations():Promise.resolve()}getQueryCache(){return I(this,rt)}getMutationCache(){return I(this,Hi)}getDefaultOptions(){return I(this,Vi)}setDefaultOptions(e){Q(this,Vi,e)}setQueryDefaults(e,t){I(this,As).set(go(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...I(this,As).values()],r={};return t.forEach(n=>{Gu(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){I(this,Es).set(go(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...I(this,Es).values()],r={};return t.forEach(n=>{Gu(e,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...I(this,Vi).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=ab(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===ob&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...I(this,Vi).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){I(this,rt).clear(),I(this,Hi).clear()}},rt=new WeakMap,Hi=new WeakMap,Vi=new WeakMap,As=new WeakMap,Es=new WeakMap,Gi=new WeakMap,ks=new WeakMap,_s=new WeakMap,xA),Uk=N.createContext(void 0),Gc=e=>{const t=N.useContext(Uk);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},TR=({client:e,children:t})=>(N.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),c.jsx(Uk.Provider,{value:e,children:t})),Wk=N.createContext(!1),CR=()=>N.useContext(Wk);Wk.Provider;function $R(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var MR=N.createContext($R()),IR=()=>N.useContext(MR),DR=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},RR=e=>{N.useEffect(()=>{e.clearReset()},[e])},LR=({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||Ik(r,[e.error,n])),FR=e=>{if(e.suspense){const r=i=>i==="static"?i:Math.max(i??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...i)=>r(n(...i)):r(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},zR=(e,t)=>e.isLoading&&e.isFetching&&!t,BR=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,eS=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function UR(e,t,r){var d,h,p,g,m;const n=CR(),i=IR(),a=Gc(),o=a.defaultQueryOptions(e);(h=(d=a.getDefaultOptions().queries)==null?void 0:d._experimental_beforeQuery)==null||h.call(d,o),o._optimisticResults=n?"isRestoring":"optimistic",FR(o),DR(o,i),RR(i);const s=!a.getQueryCache().get(o.queryHash),[l]=N.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),f=!n&&e.subscribed!==!1;if(N.useSyncExternalStore(N.useCallback(v=>{const y=f?l.subscribe(St.batchCalls(v)):Xt;return l.updateResult(),y},[l,f]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),N.useEffect(()=>{l.setOptions(o)},[o,l]),BR(o,u))throw eS(o,l,i);if(LR({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:a.getQueryCache().get(o.queryHash),suspense:o.suspense}))throw u.error;if((g=(p=a.getDefaultOptions().queries)==null?void 0:p._experimental_afterQuery)==null||g.call(p,o,u),o.experimental_prefetchInRender&&!mo&&zR(u,n)){const v=s?eS(o,l,i):(m=a.getQueryCache().get(o.queryHash))==null?void 0:m.promise;v==null||v.catch(Xt).finally(()=>{l.updateResult()})}return o.notifyOnChangeProps?u:l.trackResult(u)}function Nt(e,t){return UR(e,SR)}function Kk(e,t){const r=Gc(),[n]=N.useState(()=>new ER(r,e));N.useEffect(()=>{n.setOptions(e)},[n,e]);const i=N.useSyncExternalStore(N.useCallback(o=>n.subscribe(St.batchCalls(o)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),a=N.useCallback((o,s)=>{n.mutate(o,s).catch(Xt)},[n]);if(i.error&&Ik(n.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}/** - * @remix-run/router v1.23.0 - * - * 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 - */function Yu(){return Yu=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function qk(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function KR(){return Math.random().toString(36).substr(2,8)}function rS(e,t){return{usr:e.state,key:e.key,idx:t}}function py(e,t,r,n){return r===void 0&&(r=null),Yu({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?gl(t):t,{state:r,key:t&&t.key||n||KR()})}function Jd(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function gl(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function qR(e,t,r,n){n===void 0&&(n={});let{window:i=document.defaultView,v5Compat:a=!1}=n,o=i.history,s=Qi.Pop,l=null,u=f();u==null&&(u=0,o.replaceState(Yu({},o.state,{idx:u}),""));function f(){return(o.state||{idx:null}).idx}function d(){s=Qi.Pop;let v=f(),y=v==null?null:v-u;u=v,l&&l({action:s,location:m.location,delta:y})}function h(v,y){s=Qi.Push;let x=py(m.location,v,y);u=f()+1;let b=rS(x,u),S=m.createHref(x);try{o.pushState(b,"",S)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;i.location.assign(S)}a&&l&&l({action:s,location:m.location,delta:1})}function p(v,y){s=Qi.Replace;let x=py(m.location,v,y);u=f();let b=rS(x,u),S=m.createHref(x);o.replaceState(b,"",S),a&&l&&l({action:s,location:m.location,delta:0})}function g(v){let y=i.location.origin!=="null"?i.location.origin:i.location.href,x=typeof v=="string"?v:Jd(v);return x=x.replace(/ $/,"%20"),mt(y,"No window.location.(origin|href) available to create URL for href: "+x),new URL(x,y)}let m={get action(){return s},get location(){return e(i,o)},listen(v){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(tS,d),l=v,()=>{i.removeEventListener(tS,d),l=null}},createHref(v){return t(i,v)},createURL:g,encodeLocation(v){let y=g(v);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:h,replace:p,go(v){return o.go(v)}};return m}var nS;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(nS||(nS={}));function HR(e,t,r){return r===void 0&&(r="/"),VR(e,t,r)}function VR(e,t,r,n){let i=typeof t=="string"?gl(t):t,a=ub(i.pathname||"/",r);if(a==null)return null;let o=Hk(e);GR(o);let s=null;for(let l=0;s==null&&l{let l={relativePath:s===void 0?a.path||"":s,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};l.relativePath.startsWith("/")&&(mt(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=ua([n,l.relativePath]),f=r.concat(l);a.children&&a.children.length>0&&(mt(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Hk(a.children,t,f,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:tL(u,a.index),routesMeta:f})};return e.forEach((a,o)=>{var s;if(a.path===""||!((s=a.path)!=null&&s.includes("?")))i(a,o);else for(let l of Vk(a.path))i(a,o,l)}),t}function Vk(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,i=r.endsWith("?"),a=r.replace(/\?$/,"");if(n.length===0)return i?[a,""]:[a];let o=Vk(n.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),i&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function GR(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:rL(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const YR=/^:[\w-]+$/,XR=3,QR=2,JR=1,ZR=10,eL=-2,iS=e=>e==="*";function tL(e,t){let r=e.split("/"),n=r.length;return r.some(iS)&&(n+=eL),t&&(n+=QR),r.filter(i=>!iS(i)).reduce((i,a)=>i+(YR.test(a)?XR:a===""?JR:ZR),n)}function rL(e,t){return e.length===t.length&&e.slice(0,-1).every((n,i)=>n===t[i])?e[e.length-1]-t[t.length-1]:0}function nL(e,t,r){let{routesMeta:n}=e,i={},a="/",o=[];for(let s=0;s{let{paramName:h,isOptional:p}=f;if(h==="*"){let m=s[d]||"";o=a.slice(0,a.length-m.length).replace(/(.)\/+$/,"$1")}const g=s[d];return p&&!g?u[h]=void 0:u[h]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function aL(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),qk(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 n=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),n]}function oL(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qk(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ub(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function sL(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:i=""}=typeof e=="string"?gl(e):e;return{pathname:r?r.startsWith("/")?r:lL(r,t):t,search:fL(n),hash:dL(i)}}function lL(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function cg(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function uL(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Gk(e,t){let r=uL(e);return t?r.map((n,i)=>i===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Yk(e,t,r,n){n===void 0&&(n=!1);let i;typeof e=="string"?i=gl(e):(i=Yu({},e),mt(!i.pathname||!i.pathname.includes("?"),cg("?","pathname","search",i)),mt(!i.pathname||!i.pathname.includes("#"),cg("#","pathname","hash",i)),mt(!i.search||!i.search.includes("#"),cg("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,s;if(o==null)s=r;else{let d=t.length-1;if(!n&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),d-=1;i.pathname=h.join("/")}s=d>=0?t[d]:"/"}let l=sL(i,s),u=o&&o!=="/"&&o.endsWith("/"),f=(a||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||f)&&(l.pathname+="/"),l}const ua=e=>e.join("/").replace(/\/\/+/g,"/"),cL=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),fL=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,dL=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function hL(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Xk=["post","put","patch","delete"];new Set(Xk);const pL=["get",...Xk];new Set(pL);/** - * React Router v6.30.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 - */function Xu(){return Xu=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),N.useCallback(function(u,f){if(f===void 0&&(f={}),!s.current)return;if(typeof u=="number"){n.go(u);return}let d=Yk(u,JSON.parse(o),a,f.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:ua([t,d.pathname])),(f.replace?n.replace:n.push)(d,f.state,f)},[t,n,o,a,e])}const yL=N.createContext(null);function xL(e){let t=N.useContext(bi).outlet;return t&&N.createElement(yL.Provider,{value:e},t)}function Ap(){let{matches:e}=N.useContext(bi),t=e[e.length-1];return t?t.params:{}}function Zk(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=N.useContext(Po),{matches:i}=N.useContext(bi),{pathname:a}=Ao(),o=JSON.stringify(Gk(i,n.v7_relativeSplatPath));return N.useMemo(()=>Yk(e,JSON.parse(o),a,r==="path"),[e,o,a,r])}function bL(e,t){return wL(e,t)}function wL(e,t,r,n){Yc()||mt(!1);let{navigator:i}=N.useContext(Po),{matches:a}=N.useContext(bi),o=a[a.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Ao(),f;if(t){var d;let v=typeof t=="string"?gl(t):t;l==="/"||(d=v.pathname)!=null&&d.startsWith(l)||mt(!1),f=v}else f=u;let h=f.pathname||"/",p=h;if(l!=="/"){let v=l.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(v.length).join("/")}let g=HR(e,{pathname:p}),m=PL(g&&g.map(v=>Object.assign({},v,{params:Object.assign({},s,v.params),pathname:ua([l,i.encodeLocation?i.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?l:ua([l,i.encodeLocation?i.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),a,r,n);return t&&m?N.createElement(Pp.Provider,{value:{location:Xu({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:Qi.Pop}},m):m}function SL(){let e=_L(),t=hL(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return N.createElement(N.Fragment,null,N.createElement("h2",null,"Unexpected Application Error!"),N.createElement("h3",{style:{fontStyle:"italic"}},t),r?N.createElement("pre",{style:i},r):null,null)}const jL=N.createElement(SL,null);class OL extends N.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?N.createElement(bi.Provider,{value:this.props.routeContext},N.createElement(Qk.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function NL(e){let{routeContext:t,match:r,children:n}=e,i=N.useContext(cb);return i&&i.static&&i.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=r.route.id),N.createElement(bi.Provider,{value:t},n)}function PL(e,t,r,n){var i;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var a;if(!r)return null;if(r.errors)e=r.matches;else if((a=n)!=null&&a.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,s=(i=r)==null?void 0:i.errors;if(s!=null){let f=o.findIndex(d=>d.route.id&&(s==null?void 0:s[d.route.id])!==void 0);f>=0||mt(!1),o=o.slice(0,Math.min(o.length,f+1))}let l=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let f=0;f=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((f,d,h)=>{let p,g=!1,m=null,v=null;r&&(p=s&&d.route.id?s[d.route.id]:void 0,m=d.route.errorElement||jL,l&&(u<0&&h===0?(CL("route-fallback"),g=!0,v=null):u===h&&(g=!0,v=d.route.hydrateFallbackElement||null)));let y=t.concat(o.slice(0,h+1)),x=()=>{let b;return p?b=m:g?b=v:d.route.Component?b=N.createElement(d.route.Component,null):d.route.element?b=d.route.element:b=f,N.createElement(NL,{match:d,routeContext:{outlet:f,matches:y,isDataRoute:r!=null},children:b})};return r&&(d.route.ErrorBoundary||d.route.errorElement||h===0)?N.createElement(OL,{location:r.location,revalidation:r.revalidation,component:m,error:p,children:x(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):x()},null)}var e_=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(e_||{}),t_=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(t_||{});function AL(e){let t=N.useContext(cb);return t||mt(!1),t}function EL(e){let t=N.useContext(mL);return t||mt(!1),t}function kL(e){let t=N.useContext(bi);return t||mt(!1),t}function r_(e){let t=kL(),r=t.matches[t.matches.length-1];return r.route.id||mt(!1),r.route.id}function _L(){var e;let t=N.useContext(Qk),r=EL(),n=r_();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function TL(){let{router:e}=AL(e_.UseNavigateStable),t=r_(t_.UseNavigateStable),r=N.useRef(!1);return Jk(()=>{r.current=!0}),N.useCallback(function(i,a){a===void 0&&(a={}),r.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Xu({fromRouteId:t},a)))},[e,t])}const aS={};function CL(e,t,r){aS[e]||(aS[e]=!0)}function $L(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function ML(e){return xL(e.context)}function At(e){mt(!1)}function IL(e){let{basename:t="/",children:r=null,location:n,navigationType:i=Qi.Pop,navigator:a,static:o=!1,future:s}=e;Yc()&&mt(!1);let l=t.replace(/^\/*/,"/"),u=N.useMemo(()=>({basename:l,navigator:a,static:o,future:Xu({v7_relativeSplatPath:!1},s)}),[l,s,a,o]);typeof n=="string"&&(n=gl(n));let{pathname:f="/",search:d="",hash:h="",state:p=null,key:g="default"}=n,m=N.useMemo(()=>{let v=ub(f,l);return v==null?null:{location:{pathname:v,search:d,hash:h,state:p,key:g},navigationType:i}},[l,f,d,h,p,g,i]);return m==null?null:N.createElement(Po.Provider,{value:u},N.createElement(Pp.Provider,{children:r,value:m}))}function DL(e){let{children:t,location:r}=e;return bL(my(t),r)}new Promise(()=>{});function my(e,t){t===void 0&&(t=[]);let r=[];return N.Children.forEach(e,(n,i)=>{if(!N.isValidElement(n))return;let a=[...t,i];if(n.type===N.Fragment){r.push.apply(r,my(n.props.children,a));return}n.type!==At&&mt(!1),!n.props.index||!n.props.children||mt(!1);let o={id:n.props.id||a.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=my(n.props.children,a)),r.push(o)}),r}/** - * React Router DOM v6.30.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 - */function gy(){return gy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[i]=e[i]);return r}function LL(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function FL(e,t){return e.button===0&&(!t||t==="_self")&&!LL(e)}function vy(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(i=>[r,i]):[[r,n]])},[]))}function zL(e,t){let r=vy(e);return t&&t.forEach((n,i)=>{r.has(i)||t.getAll(i).forEach(a=>{r.append(i,a)})}),r}const BL=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],UL="6";try{window.__reactRouterVersion=UL}catch{}const WL="startTransition",oS=hx[WL];function KL(e){let{basename:t,children:r,future:n,window:i}=e,a=N.useRef();a.current==null&&(a.current=WR({window:i,v5Compat:!0}));let o=a.current,[s,l]=N.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},f=N.useCallback(d=>{u&&oS?oS(()=>l(d)):l(d)},[l,u]);return N.useLayoutEffect(()=>o.listen(f),[o,f]),N.useEffect(()=>$L(n),[n]),N.createElement(IL,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o,future:n})}const qL=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",HL=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,hi=N.forwardRef(function(t,r){let{onClick:n,relative:i,reloadDocument:a,replace:o,state:s,target:l,to:u,preventScrollReset:f,viewTransition:d}=t,h=RL(t,BL),{basename:p}=N.useContext(Po),g,m=!1;if(typeof u=="string"&&HL.test(u)&&(g=u,qL))try{let b=new URL(window.location.href),S=u.startsWith("//")?new URL(b.protocol+u):new URL(u),w=ub(S.pathname,p);S.origin===b.origin&&w!=null?u=w+S.search+S.hash:m=!0}catch{}let v=gL(u,{relative:i}),y=VL(u,{replace:o,state:s,target:l,preventScrollReset:f,relative:i,viewTransition:d});function x(b){n&&n(b),b.defaultPrevented||y(b)}return N.createElement("a",gy({},h,{href:g||v,onClick:m||a?n:x,ref:r,target:l}))});var sS;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(sS||(sS={}));var lS;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(lS||(lS={}));function VL(e,t){let{target:r,replace:n,state:i,preventScrollReset:a,relative:o,viewTransition:s}=t===void 0?{}:t,l=Fn(),u=Ao(),f=Zk(e,{relative:o});return N.useCallback(d=>{if(FL(d,r)){d.preventDefault();let h=n!==void 0?n:Jd(u)===Jd(f);l(e,{replace:h,state:i,preventScrollReset:a,relative:o,viewTransition:s})}},[u,l,f,n,i,r,e,a,o,s])}function n_(e){let t=N.useRef(vy(e)),r=N.useRef(!1),n=Ao(),i=N.useMemo(()=>zL(n.search,r.current?null:t.current),[n.search]),a=Fn(),o=N.useCallback((s,l)=>{const u=vy(typeof s=="function"?s(i):s);r.current=!0,a("?"+u,l)},[a,i]);return[i,o]}const GL=new _R({defaultOptions:{queries:{staleTime:10*60*1e3,gcTime:30*60*1e3,retry:2,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!0}}});function fb(e){if(!e||e.length===0)return!1;const t=["RUNNING","PENDING"];return e.some(n=>t.includes(n))?3e4:!1}function i_(e){if(!e||e.length===0)return!1;const t=["RUNNING","PENDING"];return e.some(n=>t.includes(n))?3e4:!1}const a_=N.createContext(void 0);function YL({children:e}){const[t,r]=N.useState(null),n=(i,a)=>{if(r(i),typeof window<"u"&&a){const o=`alphatrion_selected_team_${a}`;localStorage.setItem(o,i)}};return c.jsx(a_.Provider,{value:{selectedTeamId:t,setSelectedTeamId:n},children:e})}function wi(){const e=N.useContext(a_);if(!e)throw new Error("useTeamContext must be used within TeamProvider");return e}const o_=N.createContext(null);function XL({user:e,children:t}){const[r,n]=N.useState(e),i=a=>{n(o=>({...o,...a}))};return c.jsx(o_.Provider,{value:{user:r,updateUser:i},children:t})}function s_(){const e=N.useContext(o_);if(!e)throw new Error("useCurrentUser must be used within UserProvider");return e.user}/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const QL=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),JL=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,n)=>n?n.toUpperCase():r.toLowerCase()),uS=e=>{const t=JL(e);return t.charAt(0).toUpperCase()+t.slice(1)},l_=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim(),ZL=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var e3={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const t3=N.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:i="",children:a,iconNode:o,...s},l)=>N.createElement("svg",{ref:l,...e3,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:l_("lucide",i),...!a&&!ZL(s)&&{"aria-hidden":"true"},...s},[...o.map(([u,f])=>N.createElement(u,f)),...Array.isArray(a)?a:[a]]));/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pe=(e,t)=>{const r=N.forwardRef(({className:n,...i},a)=>N.createElement(t3,{ref:a,iconNode:t,className:l_(`lucide-${QL(uS(e))}`,`lucide-${e}`,n),...i}));return r.displayName=uS(e),r};/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const r3=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Mn=pe("bot",r3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const n3=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],i3=pe("brain",n3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const a3=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],o3=pe("building-2",a3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const s3=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],l3=pe("calendar",s3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const u3=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],u_=pe("check",u3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const c3=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Ep=pe("chevron-down",c3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const f3=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],db=pe("chevron-right",f3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const d3=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],h3=pe("chevron-left",d3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const p3=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],m3=pe("chevrons-left",p3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const g3=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],v3=pe("chevrons-right",g3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const y3=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],io=pe("clock",y3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const x3=[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]],b3=pe("coins",x3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const w3=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],S3=pe("copy",w3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const j3=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],kn=pe("database",j3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const O3=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],N3=pe("dollar-sign",O3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const P3=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],A3=pe("download",P3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const E3=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],cS=pe("external-link",E3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const k3=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],yy=pe("eye",k3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _3=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],ps=pe("file-text",_3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const T3=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],C3=pe("file",T3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $3=[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]],hb=pe("flask-conical",$3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const M3=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],I3=pe("folder-tree",M3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const D3=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],R3=pe("git-branch",D3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const L3=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],F3=pe("github",L3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const z3=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],B3=pe("globe",z3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const U3=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],W3=pe("info",U3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K3=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],q3=pe("key",K3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const H3=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],V3=pe("layout-dashboard",H3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const G3=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],Y3=pe("log-out",G3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const X3=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],fS=pe("message-square",X3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Q3=[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]],J3=pe("messages-square",Q3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Z3=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Qu=pe("package",Z3);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const e5=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Sr=pe("search",e5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const t5=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],fg=pe("tag",t5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const r5=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],xy=pe("trash-2",r5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const n5=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],i5=pe("trending-up",n5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const a5=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],o5=pe("user",a5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const s5=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],l5=pe("users",s5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const u5=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],c5=pe("wrench",u5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const f5=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ju=pe("x",f5);/** - * @license lucide-react v0.555.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const d5=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],yd=pe("zap",d5);function c_(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t{const r=new Array(e.length+t.length);for(let n=0;n({classGroupId:e,validator:t}),f_=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),Zd="-",dS=[],m5="arbitrary..",g5=e=>{const t=y5(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:o=>{if(o.startsWith("[")&&o.endsWith("]"))return v5(o);const s=o.split(Zd),l=s[0]===""&&s.length>1?1:0;return d_(s,l,t)},getConflictingClassGroupIds:(o,s)=>{if(s){const l=n[o],u=r[o];return l?u?h5(u,l):l:u||dS}return r[o]||dS}}},d_=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const i=e[t],a=r.nextPart.get(i);if(a){const u=d_(e,t+1,a);if(u)return u}const o=r.validators;if(o===null)return;const s=t===0?e.join(Zd):e.slice(t).join(Zd),l=o.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),n=t.slice(0,r);return n?m5+n:void 0})(),y5=e=>{const{theme:t,classGroups:r}=e;return x5(r,t)},x5=(e,t)=>{const r=f_();for(const n in e){const i=e[n];pb(i,r,n,t)}return r},pb=(e,t,r,n)=>{const i=e.length;for(let a=0;a{if(typeof e=="string"){w5(e,t,r);return}if(typeof e=="function"){S5(e,t,r,n);return}j5(e,t,r,n)},w5=(e,t,r)=>{const n=e===""?t:h_(t,e);n.classGroupId=r},S5=(e,t,r,n)=>{if(O5(e)){pb(e(n),t,r,n);return}t.validators===null&&(t.validators=[]),t.validators.push(p5(r,e))},j5=(e,t,r,n)=>{const i=Object.entries(e),a=i.length;for(let o=0;o{let r=e;const n=t.split(Zd),i=n.length;for(let a=0;a"isThemeGetter"in e&&e.isThemeGetter===!0,N5=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null);const i=(a,o)=>{r[a]=o,t++,t>e&&(t=0,n=r,r=Object.create(null))};return{get(a){let o=r[a];if(o!==void 0)return o;if((o=n[a])!==void 0)return i(a,o),o},set(a,o){a in r?r[a]=o:i(a,o)}}},by="!",hS=":",P5=[],pS=(e,t,r,n,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:i}),A5=e=>{const{prefix:t,experimentalParseClassName:r}=e;let n=i=>{const a=[];let o=0,s=0,l=0,u;const f=i.length;for(let m=0;ml?u-l:void 0;return pS(a,p,h,g)};if(t){const i=t+hS,a=n;n=o=>o.startsWith(i)?a(o.slice(i.length)):pS(P5,!1,o,void 0,!0)}if(r){const i=n;n=a=>r({className:a,parseClassName:i})}return n},E5=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,n)=>{t.set(r,1e6+n)}),r=>{const n=[];let i=[];for(let a=0;a0&&(i.sort(),n.push(...i),i=[]),n.push(o)):i.push(o)}return i.length>0&&(i.sort(),n.push(...i)),n}},k5=e=>({cache:N5(e.cacheSize),parseClassName:A5(e),sortModifiers:E5(e),...g5(e)}),_5=/\s+/,T5=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(_5);let l="";for(let u=s.length-1;u>=0;u-=1){const f=s[u],{isExternal:d,modifiers:h,hasImportantModifier:p,baseClassName:g,maybePostfixModifierPosition:m}=r(f);if(d){l=f+(l.length>0?" "+l:l);continue}let v=!!m,y=n(v?g.substring(0,m):g);if(!y){if(!v){l=f+(l.length>0?" "+l:l);continue}if(y=n(g),!y){l=f+(l.length>0?" "+l:l);continue}v=!1}const x=h.length===0?"":h.length===1?h[0]:a(h).join(":"),b=p?x+by:x,S=b+y;if(o.indexOf(S)>-1)continue;o.push(S);const w=i(y,v);for(let O=0;O0?" "+l:l)}return l},C5=(...e)=>{let t=0,r,n,i="";for(;t{if(typeof e=="string")return e;let t,r="";for(let n=0;n{let r,n,i,a;const o=l=>{const u=t.reduce((f,d)=>d(f),e());return r=k5(u),n=r.cache.get,i=r.cache.set,a=s,s(l)},s=l=>{const u=n(l);if(u)return u;const f=T5(l,r);return i(l,f),f};return a=o,(...l)=>a(C5(...l))},M5=[],yt=e=>{const t=r=>r[e]||M5;return t.isThemeGetter=!0,t},m_=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,g_=/^\((?:(\w[\w-]*):)?(.+)\)$/i,I5=/^\d+\/\d+$/,D5=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,R5=/\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$/,L5=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,F5=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,z5=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Do=e=>I5.test(e),ye=e=>!!e&&!Number.isNaN(Number(e)),ki=e=>!!e&&Number.isInteger(Number(e)),dg=e=>e.endsWith("%")&&ye(e.slice(0,-1)),Un=e=>D5.test(e),B5=()=>!0,U5=e=>R5.test(e)&&!L5.test(e),v_=()=>!1,W5=e=>F5.test(e),K5=e=>z5.test(e),q5=e=>!ee(e)&&!te(e),H5=e=>vl(e,b_,v_),ee=e=>m_.test(e),Pa=e=>vl(e,w_,U5),hg=e=>vl(e,Q5,ye),mS=e=>vl(e,y_,v_),V5=e=>vl(e,x_,K5),Df=e=>vl(e,S_,W5),te=e=>g_.test(e),Hl=e=>yl(e,w_),G5=e=>yl(e,J5),gS=e=>yl(e,y_),Y5=e=>yl(e,b_),X5=e=>yl(e,x_),Rf=e=>yl(e,S_,!0),vl=(e,t,r)=>{const n=m_.exec(e);return n?n[1]?t(n[1]):r(n[2]):!1},yl=(e,t,r=!1)=>{const n=g_.exec(e);return n?n[1]?t(n[1]):r:!1},y_=e=>e==="position"||e==="percentage",x_=e=>e==="image"||e==="url",b_=e=>e==="length"||e==="size"||e==="bg-size",w_=e=>e==="length",Q5=e=>e==="number",J5=e=>e==="family-name",S_=e=>e==="shadow",Z5=()=>{const e=yt("color"),t=yt("font"),r=yt("text"),n=yt("font-weight"),i=yt("tracking"),a=yt("leading"),o=yt("breakpoint"),s=yt("container"),l=yt("spacing"),u=yt("radius"),f=yt("shadow"),d=yt("inset-shadow"),h=yt("text-shadow"),p=yt("drop-shadow"),g=yt("blur"),m=yt("perspective"),v=yt("aspect"),y=yt("ease"),x=yt("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],S=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...S(),te,ee],O=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],P=()=>[te,ee,l],A=()=>[Do,"full","auto",...P()],_=()=>[ki,"none","subgrid",te,ee],E=()=>["auto",{span:["full",ki,te,ee]},ki,te,ee],k=()=>[ki,"auto",te,ee],D=()=>["auto","min","max","fr",te,ee],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],M=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...P()],R=()=>[Do,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],T=()=>[e,te,ee],z=()=>[...S(),gS,mS,{position:[te,ee]}],W=()=>["no-repeat",{repeat:["","x","y","space","round"]}],H=()=>["auto","cover","contain",Y5,H5,{size:[te,ee]}],q=()=>[dg,Hl,Pa],L=()=>["","none","full",u,te,ee],Y=()=>["",ye,Hl,Pa],ve=()=>["solid","dashed","dotted","double"],Ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],we=()=>[ye,dg,gS,mS],dt=()=>["","none",g,te,ee],X=()=>["none",ye,te,ee],ue=()=>["none",ye,te,ee],ce=()=>[ye,te,ee],K=()=>[Do,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Un],breakpoint:[Un],color:[B5],container:[Un],"drop-shadow":[Un],ease:["in","out","in-out"],font:[q5],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Un],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Un],shadow:[Un],spacing:["px",ye],text:[Un],"text-shadow":[Un],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Do,ee,te,v]}],container:["container"],columns:[{columns:[ye,ee,te,s]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"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:w()}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[ki,"auto",te,ee]}],basis:[{basis:[Do,"full","auto",s,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ye,Do,"auto","initial","none",ee]}],grow:[{grow:["",ye,te,ee]}],shrink:[{shrink:["",ye,te,ee]}],order:[{order:[ki,"first","last","none",te,ee]}],"grid-cols":[{"grid-cols":_()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":_()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...M(),"normal"]}],"justify-self":[{"justify-self":["auto",...M()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...M(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...M(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...M(),"baseline"]}],"place-self":[{"place-self":["auto",...M()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:R()}],w:[{w:[s,"screen",...R()]}],"min-w":[{"min-w":[s,"screen","none",...R()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[o]},...R()]}],h:[{h:["screen","lh",...R()]}],"min-h":[{"min-h":["screen","lh","none",...R()]}],"max-h":[{"max-h":["screen","lh",...R()]}],"font-size":[{text:["base",r,Hl,Pa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,te,hg]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",dg,ee]}],"font-family":[{font:[G5,ee,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,te,ee]}],"line-clamp":[{"line-clamp":[ye,"none",te,hg]}],leading:[{leading:[a,...P()]}],"list-image":[{"list-image":["none",te,ee]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",te,ee]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:T()}],"text-color":[{text:T()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ve(),"wavy"]}],"text-decoration-thickness":[{decoration:[ye,"from-font","auto",te,Pa]}],"text-decoration-color":[{decoration:T()}],"underline-offset":[{"underline-offset":[ye,"auto",te,ee]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",te,ee]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",te,ee]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:z()}],"bg-repeat":[{bg:W()}],"bg-size":[{bg:H()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ki,te,ee],radial:["",te,ee],conic:[ki,te,ee]},X5,V5]}],"bg-color":[{bg:T()}],"gradient-from-pos":[{from:q()}],"gradient-via-pos":[{via:q()}],"gradient-to-pos":[{to:q()}],"gradient-from":[{from:T()}],"gradient-via":[{via:T()}],"gradient-to":[{to:T()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:Y()}],"border-w-x":[{"border-x":Y()}],"border-w-y":[{"border-y":Y()}],"border-w-s":[{"border-s":Y()}],"border-w-e":[{"border-e":Y()}],"border-w-t":[{"border-t":Y()}],"border-w-r":[{"border-r":Y()}],"border-w-b":[{"border-b":Y()}],"border-w-l":[{"border-l":Y()}],"divide-x":[{"divide-x":Y()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Y()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ve(),"hidden","none"]}],"divide-style":[{divide:[...ve(),"hidden","none"]}],"border-color":[{border:T()}],"border-color-x":[{"border-x":T()}],"border-color-y":[{"border-y":T()}],"border-color-s":[{"border-s":T()}],"border-color-e":[{"border-e":T()}],"border-color-t":[{"border-t":T()}],"border-color-r":[{"border-r":T()}],"border-color-b":[{"border-b":T()}],"border-color-l":[{"border-l":T()}],"divide-color":[{divide:T()}],"outline-style":[{outline:[...ve(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ye,te,ee]}],"outline-w":[{outline:["",ye,Hl,Pa]}],"outline-color":[{outline:T()}],shadow:[{shadow:["","none",f,Rf,Df]}],"shadow-color":[{shadow:T()}],"inset-shadow":[{"inset-shadow":["none",d,Rf,Df]}],"inset-shadow-color":[{"inset-shadow":T()}],"ring-w":[{ring:Y()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:T()}],"ring-offset-w":[{"ring-offset":[ye,Pa]}],"ring-offset-color":[{"ring-offset":T()}],"inset-ring-w":[{"inset-ring":Y()}],"inset-ring-color":[{"inset-ring":T()}],"text-shadow":[{"text-shadow":["none",h,Rf,Df]}],"text-shadow-color":[{"text-shadow":T()}],opacity:[{opacity:[ye,te,ee]}],"mix-blend":[{"mix-blend":[...Ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ye]}],"mask-image-linear-from-pos":[{"mask-linear-from":we()}],"mask-image-linear-to-pos":[{"mask-linear-to":we()}],"mask-image-linear-from-color":[{"mask-linear-from":T()}],"mask-image-linear-to-color":[{"mask-linear-to":T()}],"mask-image-t-from-pos":[{"mask-t-from":we()}],"mask-image-t-to-pos":[{"mask-t-to":we()}],"mask-image-t-from-color":[{"mask-t-from":T()}],"mask-image-t-to-color":[{"mask-t-to":T()}],"mask-image-r-from-pos":[{"mask-r-from":we()}],"mask-image-r-to-pos":[{"mask-r-to":we()}],"mask-image-r-from-color":[{"mask-r-from":T()}],"mask-image-r-to-color":[{"mask-r-to":T()}],"mask-image-b-from-pos":[{"mask-b-from":we()}],"mask-image-b-to-pos":[{"mask-b-to":we()}],"mask-image-b-from-color":[{"mask-b-from":T()}],"mask-image-b-to-color":[{"mask-b-to":T()}],"mask-image-l-from-pos":[{"mask-l-from":we()}],"mask-image-l-to-pos":[{"mask-l-to":we()}],"mask-image-l-from-color":[{"mask-l-from":T()}],"mask-image-l-to-color":[{"mask-l-to":T()}],"mask-image-x-from-pos":[{"mask-x-from":we()}],"mask-image-x-to-pos":[{"mask-x-to":we()}],"mask-image-x-from-color":[{"mask-x-from":T()}],"mask-image-x-to-color":[{"mask-x-to":T()}],"mask-image-y-from-pos":[{"mask-y-from":we()}],"mask-image-y-to-pos":[{"mask-y-to":we()}],"mask-image-y-from-color":[{"mask-y-from":T()}],"mask-image-y-to-color":[{"mask-y-to":T()}],"mask-image-radial":[{"mask-radial":[te,ee]}],"mask-image-radial-from-pos":[{"mask-radial-from":we()}],"mask-image-radial-to-pos":[{"mask-radial-to":we()}],"mask-image-radial-from-color":[{"mask-radial-from":T()}],"mask-image-radial-to-color":[{"mask-radial-to":T()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":S()}],"mask-image-conic-pos":[{"mask-conic":[ye]}],"mask-image-conic-from-pos":[{"mask-conic-from":we()}],"mask-image-conic-to-pos":[{"mask-conic-to":we()}],"mask-image-conic-from-color":[{"mask-conic-from":T()}],"mask-image-conic-to-color":[{"mask-conic-to":T()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:z()}],"mask-repeat":[{mask:W()}],"mask-size":[{mask:H()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",te,ee]}],filter:[{filter:["","none",te,ee]}],blur:[{blur:dt()}],brightness:[{brightness:[ye,te,ee]}],contrast:[{contrast:[ye,te,ee]}],"drop-shadow":[{"drop-shadow":["","none",p,Rf,Df]}],"drop-shadow-color":[{"drop-shadow":T()}],grayscale:[{grayscale:["",ye,te,ee]}],"hue-rotate":[{"hue-rotate":[ye,te,ee]}],invert:[{invert:["",ye,te,ee]}],saturate:[{saturate:[ye,te,ee]}],sepia:[{sepia:["",ye,te,ee]}],"backdrop-filter":[{"backdrop-filter":["","none",te,ee]}],"backdrop-blur":[{"backdrop-blur":dt()}],"backdrop-brightness":[{"backdrop-brightness":[ye,te,ee]}],"backdrop-contrast":[{"backdrop-contrast":[ye,te,ee]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ye,te,ee]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ye,te,ee]}],"backdrop-invert":[{"backdrop-invert":["",ye,te,ee]}],"backdrop-opacity":[{"backdrop-opacity":[ye,te,ee]}],"backdrop-saturate":[{"backdrop-saturate":[ye,te,ee]}],"backdrop-sepia":[{"backdrop-sepia":["",ye,te,ee]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",te,ee]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ye,"initial",te,ee]}],ease:[{ease:["linear","initial",y,te,ee]}],delay:[{delay:[ye,te,ee]}],animate:[{animate:["none",x,te,ee]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,te,ee]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:X()}],"rotate-x":[{"rotate-x":X()}],"rotate-y":[{"rotate-y":X()}],"rotate-z":[{"rotate-z":X()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":["scale-3d"],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[te,ee,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:K()}],"translate-x":[{"translate-x":K()}],"translate-y":[{"translate-y":K()}],"translate-z":[{"translate-z":K()}],"translate-none":["translate-none"],accent:[{accent:T()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:T()}],"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",te,ee]}],"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":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"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",te,ee]}],fill:[{fill:["none",...T()]}],"stroke-w":[{stroke:[ye,Hl,Pa,hg]}],stroke:[{stroke:["none",...T()]}],"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-x","border-w-y","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-x","border-color-y","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:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},e4=$5(Z5);function he(...e){return e4(fe(e))}const j_="/static/assets/logo-D6hHn9pX.png",t4=[{title:"Dashboard",href:"/",icon:V3},{title:"Experiments",href:"/experiments",icon:hb},{title:"Agents",href:"/agents",icon:Mn},{title:"Datasets",href:"/datasets",icon:I3},{title:"Artifacts",href:"/artifacts",icon:Qu}];function r4(){const e=Ao();return c.jsxs("div",{className:"flex h-screen w-48 flex-col bg-card",children:[c.jsx("div",{className:"flex items-center gap-2.5 px-3 py-3 border-b border-border",children:c.jsxs(hi,{to:"/",className:"flex items-center gap-2.5",children:[c.jsx("img",{src:j_,alt:"AlphaTrion Logo",className:"h-8 w-8"}),c.jsx("h1",{className:"text-lg font-bold text-foreground",children:"AlphaTrion"})]})}),c.jsx("nav",{className:"flex-1 space-y-1 overflow-y-auto px-3 py-4",children:t4.map(t=>{const r=t.icon;let n=e.pathname===t.href||t.href!=="/"&&e.pathname.startsWith(t.href);return t.href==="/experiments"&&(n=n||e.pathname.startsWith("/runs")),c.jsxs(hi,{to:t.href,className:he("flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm font-medium transition-colors relative",n?"bg-blue-50 dark:bg-blue-950 text-blue-600 dark:text-blue-400":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[n&&c.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-1 bg-blue-600 dark:bg-blue-400 rounded-r"}),c.jsx(r,{className:he("h-4 w-4 ml-1",n&&"text-blue-600 dark:text-blue-400")}),t.title]},t.href)})}),c.jsx("div",{className:"px-3 py-3 border-t border-border mt-auto",children:c.jsxs("div",{className:"flex items-center gap-2 px-1 justify-center",children:[c.jsx("a",{href:"https://github.com/InftyAI/alphatrion",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center h-6 w-6 rounded-md hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",title:"View on GitHub",children:c.jsx(F3,{className:"h-4 w-4"})}),c.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:"v0.2.0"})]})})]})}function O_(e,t){return function(){return e.apply(t,arguments)}}const{toString:n4}=Object.prototype,{getPrototypeOf:mb}=Object,{iterator:kp,toStringTag:N_}=Symbol,_p=(e=>t=>{const r=n4.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),yn=e=>(e=e.toLowerCase(),t=>_p(t)===e),Tp=e=>t=>typeof t===e,{isArray:xl}=Array,Ls=Tp("undefined");function Xc(e){return e!==null&&!Ls(e)&&e.constructor!==null&&!Ls(e.constructor)&&mr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const P_=yn("ArrayBuffer");function i4(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&P_(e.buffer),t}const a4=Tp("string"),mr=Tp("function"),A_=Tp("number"),Qc=e=>e!==null&&typeof e=="object",o4=e=>e===!0||e===!1,xd=e=>{if(_p(e)!=="object")return!1;const t=mb(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(N_ in e)&&!(kp in e)},s4=e=>{if(!Qc(e)||Xc(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},l4=yn("Date"),u4=yn("File"),c4=yn("Blob"),f4=yn("FileList"),d4=e=>Qc(e)&&mr(e.pipe),h4=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||mr(e.append)&&((t=_p(e))==="formdata"||t==="object"&&mr(e.toString)&&e.toString()==="[object FormData]"))},p4=yn("URLSearchParams"),[m4,g4,v4,y4]=["ReadableStream","Request","Response","Headers"].map(yn),x4=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Jc(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),xl(e))for(n=0,i=e.length;n0;)if(i=r[n],t===i.toLowerCase())return i;return null}const Ua=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,k_=e=>!Ls(e)&&e!==Ua;function wy(){const{caseless:e,skipUndefined:t}=k_(this)&&this||{},r={},n=(i,a)=>{const o=e&&E_(r,a)||a;xd(r[o])&&xd(i)?r[o]=wy(r[o],i):xd(i)?r[o]=wy({},i):xl(i)?r[o]=i.slice():(!t||!Ls(i))&&(r[o]=i)};for(let i=0,a=arguments.length;i(Jc(t,(i,a)=>{r&&mr(i)?e[a]=O_(i,r):e[a]=i},{allOwnKeys:n}),e),w4=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),S4=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},j4=(e,t,r,n)=>{let i,a,o;const s={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],(!n||n(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=r!==!1&&mb(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},O4=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},N4=e=>{if(!e)return null;if(xl(e))return e;let t=e.length;if(!A_(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},P4=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&mb(Uint8Array)),A4=(e,t)=>{const n=(e&&e[kp]).call(e);let i;for(;(i=n.next())&&!i.done;){const a=i.value;t.call(e,a[0],a[1])}},E4=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},k4=yn("HTMLFormElement"),_4=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),vS=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),T4=yn("RegExp"),__=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};Jc(r,(i,a)=>{let o;(o=t(i,a,e))!==!1&&(n[a]=o||i)}),Object.defineProperties(e,n)},C4=e=>{__(e,(t,r)=>{if(mr(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(mr(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},$4=(e,t)=>{const r={},n=i=>{i.forEach(a=>{r[a]=!0})};return xl(e)?n(e):n(String(e).split(t)),r},M4=()=>{},I4=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function D4(e){return!!(e&&mr(e.append)&&e[N_]==="FormData"&&e[kp])}const R4=e=>{const t=new Array(10),r=(n,i)=>{if(Qc(n)){if(t.indexOf(n)>=0)return;if(Xc(n))return n;if(!("toJSON"in n)){t[i]=n;const a=xl(n)?[]:{};return Jc(n,(o,s)=>{const l=r(o,i+1);!Ls(l)&&(a[s]=l)}),t[i]=void 0,a}}return n};return r(e,0)},L4=yn("AsyncFunction"),F4=e=>e&&(Qc(e)||mr(e))&&mr(e.then)&&mr(e.catch),T_=((e,t)=>e?setImmediate:t?((r,n)=>(Ua.addEventListener("message",({source:i,data:a})=>{i===Ua&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),Ua.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",mr(Ua.postMessage)),z4=typeof queueMicrotask<"u"?queueMicrotask.bind(Ua):typeof process<"u"&&process.nextTick||T_,B4=e=>e!=null&&mr(e[kp]),B={isArray:xl,isArrayBuffer:P_,isBuffer:Xc,isFormData:h4,isArrayBufferView:i4,isString:a4,isNumber:A_,isBoolean:o4,isObject:Qc,isPlainObject:xd,isEmptyObject:s4,isReadableStream:m4,isRequest:g4,isResponse:v4,isHeaders:y4,isUndefined:Ls,isDate:l4,isFile:u4,isBlob:c4,isRegExp:T4,isFunction:mr,isStream:d4,isURLSearchParams:p4,isTypedArray:P4,isFileList:f4,forEach:Jc,merge:wy,extend:b4,trim:x4,stripBOM:w4,inherits:S4,toFlatObject:j4,kindOf:_p,kindOfTest:yn,endsWith:O4,toArray:N4,forEachEntry:A4,matchAll:E4,isHTMLForm:k4,hasOwnProperty:vS,hasOwnProp:vS,reduceDescriptors:__,freezeMethods:C4,toObjectSet:$4,toCamelCase:_4,noop:M4,toFiniteNumber:I4,findKey:E_,global:Ua,isContextDefined:k_,isSpecCompliantForm:D4,toJSONObject:R4,isAsyncFn:L4,isThenable:F4,setImmediate:T_,asap:z4,isIterable:B4};function de(e,t,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i,this.status=i.status?i.status:null)}B.inherits(de,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:B.toJSONObject(this.config),code:this.code,status:this.status}}});const C_=de.prototype,$_={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{$_[e]={value:e}});Object.defineProperties(de,$_);Object.defineProperty(C_,"isAxiosError",{value:!0});de.from=(e,t,r,n,i,a)=>{const o=Object.create(C_);B.toFlatObject(e,o,function(f){return f!==Error.prototype},u=>u!=="isAxiosError");const s=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return de.call(o,s,l,r,n,i),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",a&&Object.assign(o,a),o};const U4=null;function Sy(e){return B.isPlainObject(e)||B.isArray(e)}function M_(e){return B.endsWith(e,"[]")?e.slice(0,-2):e}function yS(e,t,r){return e?e.concat(t).map(function(i,a){return i=M_(i),!r&&a?"["+i+"]":i}).join(r?".":""):t}function W4(e){return B.isArray(e)&&!e.some(Sy)}const K4=B.toFlatObject(B,{},null,function(t){return/^is[A-Z]/.test(t)});function Cp(e,t,r){if(!B.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=B.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,v){return!B.isUndefined(v[m])});const n=r.metaTokens,i=r.visitor||f,a=r.dots,o=r.indexes,l=(r.Blob||typeof Blob<"u"&&Blob)&&B.isSpecCompliantForm(t);if(!B.isFunction(i))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(B.isDate(g))return g.toISOString();if(B.isBoolean(g))return g.toString();if(!l&&B.isBlob(g))throw new de("Blob is not supported. Use a Buffer instead.");return B.isArrayBuffer(g)||B.isTypedArray(g)?l&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function f(g,m,v){let y=g;if(g&&!v&&typeof g=="object"){if(B.endsWith(m,"{}"))m=n?m:m.slice(0,-2),g=JSON.stringify(g);else if(B.isArray(g)&&W4(g)||(B.isFileList(g)||B.endsWith(m,"[]"))&&(y=B.toArray(g)))return m=M_(m),y.forEach(function(b,S){!(B.isUndefined(b)||b===null)&&t.append(o===!0?yS([m],S,a):o===null?m:m+"[]",u(b))}),!1}return Sy(g)?!0:(t.append(yS(v,m,a),u(g)),!1)}const d=[],h=Object.assign(K4,{defaultVisitor:f,convertValue:u,isVisitable:Sy});function p(g,m){if(!B.isUndefined(g)){if(d.indexOf(g)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(g),B.forEach(g,function(y,x){(!(B.isUndefined(y)||y===null)&&i.call(t,y,B.isString(x)?x.trim():x,m,h))===!0&&p(y,m?m.concat(x):[x])}),d.pop()}}if(!B.isObject(e))throw new TypeError("data must be an object");return p(e),t}function xS(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function gb(e,t){this._pairs=[],e&&Cp(e,this,t)}const I_=gb.prototype;I_.append=function(t,r){this._pairs.push([t,r])};I_.toString=function(t){const r=t?function(n){return t.call(this,n,xS)}:xS;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function q4(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function D_(e,t,r){if(!t)return e;const n=r&&r.encode||q4;B.isFunction(r)&&(r={serialize:r});const i=r&&r.serialize;let a;if(i?a=i(t,r):a=B.isURLSearchParams(t)?t.toString():new gb(t,r).toString(n),a){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class bS{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){B.forEach(this.handlers,function(n){n!==null&&t(n)})}}const R_={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},H4=typeof URLSearchParams<"u"?URLSearchParams:gb,V4=typeof FormData<"u"?FormData:null,G4=typeof Blob<"u"?Blob:null,Y4={isBrowser:!0,classes:{URLSearchParams:H4,FormData:V4,Blob:G4},protocols:["http","https","file","blob","url","data"]},vb=typeof window<"u"&&typeof document<"u",jy=typeof navigator=="object"&&navigator||void 0,X4=vb&&(!jy||["ReactNative","NativeScript","NS"].indexOf(jy.product)<0),Q4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",J4=vb&&window.location.href||"http://localhost",Z4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:vb,hasStandardBrowserEnv:X4,hasStandardBrowserWebWorkerEnv:Q4,navigator:jy,origin:J4},Symbol.toStringTag,{value:"Module"})),qt={...Z4,...Y4};function eF(e,t){return Cp(e,new qt.classes.URLSearchParams,{visitor:function(r,n,i,a){return qt.isNode&&B.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)},...t})}function tF(e){return B.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function rF(e){const t={},r=Object.keys(e);let n;const i=r.length;let a;for(n=0;n=r.length;return o=!o&&B.isArray(i)?i.length:o,l?(B.hasOwnProp(i,o)?i[o]=[i[o],n]:i[o]=n,!s):((!i[o]||!B.isObject(i[o]))&&(i[o]=[]),t(r,n,i[o],a)&&B.isArray(i[o])&&(i[o]=rF(i[o])),!s)}if(B.isFormData(e)&&B.isFunction(e.entries)){const r={};return B.forEachEntry(e,(n,i)=>{t(tF(n),i,r,0)}),r}return null}function nF(e,t,r){if(B.isString(e))try{return(t||JSON.parse)(e),B.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const Zc={transitional:R_,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,a=B.isObject(t);if(a&&B.isHTMLForm(t)&&(t=new FormData(t)),B.isFormData(t))return i?JSON.stringify(L_(t)):t;if(B.isArrayBuffer(t)||B.isBuffer(t)||B.isStream(t)||B.isFile(t)||B.isBlob(t)||B.isReadableStream(t))return t;if(B.isArrayBufferView(t))return t.buffer;if(B.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return eF(t,this.formSerializer).toString();if((s=B.isFileList(t))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Cp(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return a||i?(r.setContentType("application/json",!1),nF(t)):t}],transformResponse:[function(t){const r=this.transitional||Zc.transitional,n=r&&r.forcedJSONParsing,i=this.responseType==="json";if(B.isResponse(t)||B.isReadableStream(t))return t;if(t&&B.isString(t)&&(n&&!this.responseType||i)){const o=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(t,this.parseReviver)}catch(s){if(o)throw s.name==="SyntaxError"?de.from(s,de.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:qt.classes.FormData,Blob:qt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};B.forEach(["delete","get","head","post","put","patch"],e=>{Zc.headers[e]={}});const iF=B.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),aF=e=>{const t={};let r,n,i;return e&&e.split(` -`).forEach(function(o){i=o.indexOf(":"),r=o.substring(0,i).trim().toLowerCase(),n=o.substring(i+1).trim(),!(!r||t[r]&&iF[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},wS=Symbol("internals");function Vl(e){return e&&String(e).trim().toLowerCase()}function bd(e){return e===!1||e==null?e:B.isArray(e)?e.map(bd):String(e)}function oF(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const sF=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function pg(e,t,r,n,i){if(B.isFunction(n))return n.call(this,t,r);if(i&&(t=r),!!B.isString(t)){if(B.isString(n))return t.indexOf(n)!==-1;if(B.isRegExp(n))return n.test(t)}}function lF(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function uF(e,t){const r=B.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(i,a,o){return this[n].call(this,t,i,a,o)},configurable:!0})})}let gr=class{constructor(t){t&&this.set(t)}set(t,r,n){const i=this;function a(s,l,u){const f=Vl(l);if(!f)throw new Error("header name must be a non-empty string");const d=B.findKey(i,f);(!d||i[d]===void 0||u===!0||u===void 0&&i[d]!==!1)&&(i[d||l]=bd(s))}const o=(s,l)=>B.forEach(s,(u,f)=>a(u,f,l));if(B.isPlainObject(t)||t instanceof this.constructor)o(t,r);else if(B.isString(t)&&(t=t.trim())&&!sF(t))o(aF(t),r);else if(B.isObject(t)&&B.isIterable(t)){let s={},l,u;for(const f of t){if(!B.isArray(f))throw TypeError("Object iterator must return a key-value pair");s[u=f[0]]=(l=s[u])?B.isArray(l)?[...l,f[1]]:[l,f[1]]:f[1]}o(s,r)}else t!=null&&a(r,t,n);return this}get(t,r){if(t=Vl(t),t){const n=B.findKey(this,t);if(n){const i=this[n];if(!r)return i;if(r===!0)return oF(i);if(B.isFunction(r))return r.call(this,i,n);if(B.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=Vl(t),t){const n=B.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||pg(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let i=!1;function a(o){if(o=Vl(o),o){const s=B.findKey(n,o);s&&(!r||pg(n,n[s],s,r))&&(delete n[s],i=!0)}}return B.isArray(t)?t.forEach(a):a(t),i}clear(t){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const a=r[n];(!t||pg(this,this[a],a,t,!0))&&(delete this[a],i=!0)}return i}normalize(t){const r=this,n={};return B.forEach(this,(i,a)=>{const o=B.findKey(n,a);if(o){r[o]=bd(i),delete r[a];return}const s=t?lF(a):String(a).trim();s!==a&&delete r[a],r[s]=bd(i),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return B.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=t&&B.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(i=>n.set(i)),n}static accessor(t){const n=(this[wS]=this[wS]={accessors:{}}).accessors,i=this.prototype;function a(o){const s=Vl(o);n[s]||(uF(i,o),n[s]=!0)}return B.isArray(t)?t.forEach(a):a(t),this}};gr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);B.reduceDescriptors(gr.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});B.freezeMethods(gr);function mg(e,t){const r=this||Zc,n=t||r,i=gr.from(n.headers);let a=n.data;return B.forEach(e,function(s){a=s.call(r,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function F_(e){return!!(e&&e.__CANCEL__)}function bl(e,t,r){de.call(this,e??"canceled",de.ERR_CANCELED,t,r),this.name="CanceledError"}B.inherits(bl,de,{__CANCEL__:!0});function z_(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new de("Request failed with status code "+r.status,[de.ERR_BAD_REQUEST,de.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function cF(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function fF(e,t){e=e||10;const r=new Array(e),n=new Array(e);let i=0,a=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),f=n[a];o||(o=u),r[i]=l,n[i]=u;let d=a,h=0;for(;d!==i;)h+=r[d++],d=d%e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),u-o{r=f,i=null,a&&(clearTimeout(a),a=null),e(...u)};return[(...u)=>{const f=Date.now(),d=f-r;d>=n?o(u,f):(i=u,a||(a=setTimeout(()=>{a=null,o(i)},n-d)))},()=>i&&o(i)]}const eh=(e,t,r=3)=>{let n=0;const i=fF(50,250);return dF(a=>{const o=a.loaded,s=a.lengthComputable?a.total:void 0,l=o-n,u=i(l),f=o<=s;n=o;const d={loaded:o,total:s,progress:s?o/s:void 0,bytes:l,rate:u||void 0,estimated:u&&s&&f?(s-o)/u:void 0,event:a,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(d)},r)},SS=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},jS=e=>(...t)=>B.asap(()=>e(...t)),hF=qt.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,qt.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(qt.origin),qt.navigator&&/(msie|trident)/i.test(qt.navigator.userAgent)):()=>!0,pF=qt.hasStandardBrowserEnv?{write(e,t,r,n,i,a){const o=[e+"="+encodeURIComponent(t)];B.isNumber(r)&&o.push("expires="+new Date(r).toGMTString()),B.isString(n)&&o.push("path="+n),B.isString(i)&&o.push("domain="+i),a===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function mF(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function gF(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function B_(e,t,r){let n=!mF(t);return e&&(n||r==!1)?gF(e,t):t}const OS=e=>e instanceof gr?{...e}:e;function vo(e,t){t=t||{};const r={};function n(u,f,d,h){return B.isPlainObject(u)&&B.isPlainObject(f)?B.merge.call({caseless:h},u,f):B.isPlainObject(f)?B.merge({},f):B.isArray(f)?f.slice():f}function i(u,f,d,h){if(B.isUndefined(f)){if(!B.isUndefined(u))return n(void 0,u,d,h)}else return n(u,f,d,h)}function a(u,f){if(!B.isUndefined(f))return n(void 0,f)}function o(u,f){if(B.isUndefined(f)){if(!B.isUndefined(u))return n(void 0,u)}else return n(void 0,f)}function s(u,f,d){if(d in t)return n(u,f);if(d in e)return n(void 0,u)}const l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(u,f,d)=>i(OS(u),OS(f),d,!0)};return B.forEach(Object.keys({...e,...t}),function(f){const d=l[f]||i,h=d(e[f],t[f],f);B.isUndefined(h)&&d!==s||(r[f]=h)}),r}const U_=e=>{const t=vo({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:i,xsrfCookieName:a,headers:o,auth:s}=t;if(t.headers=o=gr.from(o),t.url=D_(B_(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&o.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):""))),B.isFormData(r)){if(qt.hasStandardBrowserEnv||qt.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(B.isFunction(r.getHeaders)){const l=r.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([f,d])=>{u.includes(f.toLowerCase())&&o.set(f,d)})}}if(qt.hasStandardBrowserEnv&&(n&&B.isFunction(n)&&(n=n(t)),n||n!==!1&&hF(t.url))){const l=i&&a&&pF.read(a);l&&o.set(i,l)}return t},vF=typeof XMLHttpRequest<"u",yF=vF&&function(e){return new Promise(function(r,n){const i=U_(e);let a=i.data;const o=gr.from(i.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:u}=i,f,d,h,p,g;function m(){p&&p(),g&&g(),i.cancelToken&&i.cancelToken.unsubscribe(f),i.signal&&i.signal.removeEventListener("abort",f)}let v=new XMLHttpRequest;v.open(i.method.toUpperCase(),i.url,!0),v.timeout=i.timeout;function y(){if(!v)return;const b=gr.from("getAllResponseHeaders"in v&&v.getAllResponseHeaders()),w={data:!s||s==="text"||s==="json"?v.responseText:v.response,status:v.status,statusText:v.statusText,headers:b,config:e,request:v};z_(function(j){r(j),m()},function(j){n(j),m()},w),v=null}"onloadend"in v?v.onloadend=y:v.onreadystatechange=function(){!v||v.readyState!==4||v.status===0&&!(v.responseURL&&v.responseURL.indexOf("file:")===0)||setTimeout(y)},v.onabort=function(){v&&(n(new de("Request aborted",de.ECONNABORTED,e,v)),v=null)},v.onerror=function(S){const w=S&&S.message?S.message:"Network Error",O=new de(w,de.ERR_NETWORK,e,v);O.event=S||null,n(O),v=null},v.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const w=i.transitional||R_;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),n(new de(S,w.clarifyTimeoutError?de.ETIMEDOUT:de.ECONNABORTED,e,v)),v=null},a===void 0&&o.setContentType(null),"setRequestHeader"in v&&B.forEach(o.toJSON(),function(S,w){v.setRequestHeader(w,S)}),B.isUndefined(i.withCredentials)||(v.withCredentials=!!i.withCredentials),s&&s!=="json"&&(v.responseType=i.responseType),u&&([h,g]=eh(u,!0),v.addEventListener("progress",h)),l&&v.upload&&([d,p]=eh(l),v.upload.addEventListener("progress",d),v.upload.addEventListener("loadend",p)),(i.cancelToken||i.signal)&&(f=b=>{v&&(n(!b||b.type?new bl(null,e,v):b),v.abort(),v=null)},i.cancelToken&&i.cancelToken.subscribe(f),i.signal&&(i.signal.aborted?f():i.signal.addEventListener("abort",f)));const x=cF(i.url);if(x&&qt.protocols.indexOf(x)===-1){n(new de("Unsupported protocol "+x+":",de.ERR_BAD_REQUEST,e));return}v.send(a||null)})},xF=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,i;const a=function(u){if(!i){i=!0,s();const f=u instanceof Error?u:this.reason;n.abort(f instanceof de?f:new bl(f instanceof Error?f.message:f))}};let o=t&&setTimeout(()=>{o=null,a(new de(`timeout ${t} of ms exceeded`,de.ETIMEDOUT))},t);const s=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(a):u.removeEventListener("abort",a)}),e=null)};e.forEach(u=>u.addEventListener("abort",a));const{signal:l}=n;return l.unsubscribe=()=>B.asap(s),l}},bF=function*(e,t){let r=e.byteLength;if(r{const i=wF(e,t);let a=0,o,s=l=>{o||(o=!0,n&&n(l))};return new ReadableStream({async pull(l){try{const{done:u,value:f}=await i.next();if(u){s(),l.close();return}let d=f.byteLength;if(r){let h=a+=d;r(h)}l.enqueue(new Uint8Array(f))}catch(u){throw s(u),u}},cancel(l){return s(l),i.return()}},{highWaterMark:2})},PS=64*1024,{isFunction:Lf}=B,jF=(({Request:e,Response:t})=>({Request:e,Response:t}))(B.global),{ReadableStream:AS,TextEncoder:ES}=B.global,kS=(e,...t)=>{try{return!!e(...t)}catch{return!1}},OF=e=>{e=B.merge.call({skipUndefined:!0},jF,e);const{fetch:t,Request:r,Response:n}=e,i=t?Lf(t):typeof fetch=="function",a=Lf(r),o=Lf(n);if(!i)return!1;const s=i&&Lf(AS),l=i&&(typeof ES=="function"?(g=>m=>g.encode(m))(new ES):async g=>new Uint8Array(await new r(g).arrayBuffer())),u=a&&s&&kS(()=>{let g=!1;const m=new r(qt.origin,{body:new AS,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!m}),f=o&&s&&kS(()=>B.isReadableStream(new n("").body)),d={stream:f&&(g=>g.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!d[g]&&(d[g]=(m,v)=>{let y=m&&m[g];if(y)return y.call(m);throw new de(`Response type '${g}' is not supported`,de.ERR_NOT_SUPPORT,v)})});const h=async g=>{if(g==null)return 0;if(B.isBlob(g))return g.size;if(B.isSpecCompliantForm(g))return(await new r(qt.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(B.isArrayBufferView(g)||B.isArrayBuffer(g))return g.byteLength;if(B.isURLSearchParams(g)&&(g=g+""),B.isString(g))return(await l(g)).byteLength},p=async(g,m)=>{const v=B.toFiniteNumber(g.getContentLength());return v??h(m)};return async g=>{let{url:m,method:v,data:y,signal:x,cancelToken:b,timeout:S,onDownloadProgress:w,onUploadProgress:O,responseType:j,headers:P,withCredentials:A="same-origin",fetchOptions:_}=U_(g),E=t||fetch;j=j?(j+"").toLowerCase():"text";let k=xF([x,b&&b.toAbortSignal()],S),D=null;const F=k&&k.unsubscribe&&(()=>{k.unsubscribe()});let M;try{if(O&&u&&v!=="get"&&v!=="head"&&(M=await p(P,y))!==0){let H=new r(m,{method:"POST",body:y,duplex:"half"}),q;if(B.isFormData(y)&&(q=H.headers.get("content-type"))&&P.setContentType(q),H.body){const[L,Y]=SS(M,eh(jS(O)));y=NS(H.body,PS,L,Y)}}B.isString(A)||(A=A?"include":"omit");const C=a&&"credentials"in r.prototype,R={..._,signal:k,method:v.toUpperCase(),headers:P.normalize().toJSON(),body:y,duplex:"half",credentials:C?A:void 0};D=a&&new r(m,R);let T=await(a?E(D,_):E(m,R));const z=f&&(j==="stream"||j==="response");if(f&&(w||z&&F)){const H={};["status","statusText","headers"].forEach(ve=>{H[ve]=T[ve]});const q=B.toFiniteNumber(T.headers.get("content-length")),[L,Y]=w&&SS(q,eh(jS(w),!0))||[];T=new n(NS(T.body,PS,L,()=>{Y&&Y(),F&&F()}),H)}j=j||"text";let W=await d[B.findKey(d,j)||"text"](T,g);return!z&&F&&F(),await new Promise((H,q)=>{z_(H,q,{data:W,headers:gr.from(T.headers),status:T.status,statusText:T.statusText,config:g,request:D})})}catch(C){throw F&&F(),C&&C.name==="TypeError"&&/Load failed|fetch/i.test(C.message)?Object.assign(new de("Network Error",de.ERR_NETWORK,g,D),{cause:C.cause||C}):de.from(C,C&&C.code,g,D)}}},NF=new Map,W_=e=>{let t=e?e.env:{};const{fetch:r,Request:n,Response:i}=t,a=[n,i,r];let o=a.length,s=o,l,u,f=NF;for(;s--;)l=a[s],u=f.get(l),u===void 0&&f.set(l,u=s?new Map:OF(t)),f=u;return u};W_();const Oy={http:U4,xhr:yF,fetch:{get:W_}};B.forEach(Oy,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const _S=e=>`- ${e}`,PF=e=>B.isFunction(e)||e===null||e===!1,K_={getAdapter:(e,t)=>{e=B.isArray(e)?e:[e];const{length:r}=e;let n,i;const a={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let s=r?o.length>1?`since : -`+o.map(_S).join(` -`):" "+_S(o[0]):"as no adapter specified";throw new de("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return i},adapters:Oy};function gg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new bl(null,e)}function TS(e){return gg(e),e.headers=gr.from(e.headers),e.data=mg.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),K_.getAdapter(e.adapter||Zc.adapter,e)(e).then(function(n){return gg(e),n.data=mg.call(e,e.transformResponse,n),n.headers=gr.from(n.headers),n},function(n){return F_(n)||(gg(e),n&&n.response&&(n.response.data=mg.call(e,e.transformResponse,n.response),n.response.headers=gr.from(n.response.headers))),Promise.reject(n)})}const q_="1.12.2",$p={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{$p[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const CS={};$p.transitional=function(t,r,n){function i(a,o){return"[Axios v"+q_+"] Transitional option '"+a+"'"+o+(n?". "+n:"")}return(a,o,s)=>{if(t===!1)throw new de(i(o," has been removed"+(r?" in "+r:"")),de.ERR_DEPRECATED);return r&&!CS[o]&&(CS[o]=!0,console.warn(i(o," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(a,o,s):!0}};$p.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function AF(e,t,r){if(typeof e!="object")throw new de("options must be an object",de.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let i=n.length;for(;i-- >0;){const a=n[i],o=t[a];if(o){const s=e[a],l=s===void 0||o(s,a,e);if(l!==!0)throw new de("option "+a+" must be "+l,de.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new de("Unknown option "+a,de.ERR_BAD_OPTION)}}const wd={assertOptions:AF,validators:$p},Sn=wd.validators;let ao=class{constructor(t){this.defaults=t||{},this.interceptors={request:new bS,response:new bS}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const a=i.stack?i.stack.replace(/^.+\n/,""):"";try{n.stack?a&&!String(n.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(n.stack+=` -`+a):n.stack=a}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=vo(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:a}=r;n!==void 0&&wd.assertOptions(n,{silentJSONParsing:Sn.transitional(Sn.boolean),forcedJSONParsing:Sn.transitional(Sn.boolean),clarifyTimeoutError:Sn.transitional(Sn.boolean)},!1),i!=null&&(B.isFunction(i)?r.paramsSerializer={serialize:i}:wd.assertOptions(i,{encode:Sn.function,serialize:Sn.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),wd.assertOptions(r,{baseUrl:Sn.spelling("baseURL"),withXsrfToken:Sn.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let o=a&&B.merge(a.common,a[r.method]);a&&B.forEach(["delete","get","head","post","put","patch","common"],g=>{delete a[g]}),r.headers=gr.concat(o,a);const s=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(r)===!1||(l=l&&m.synchronous,s.unshift(m.fulfilled,m.rejected))});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let f,d=0,h;if(!l){const g=[TS.bind(this),void 0];for(g.unshift(...s),g.push(...u),h=g.length,f=Promise.resolve(r);d{if(!n._listeners)return;let a=n._listeners.length;for(;a-- >0;)n._listeners[a](i);n._listeners=null}),this.promise.then=i=>{let a;const o=new Promise(s=>{n.subscribe(s),a=s}).then(i);return o.cancel=function(){n.unsubscribe(a)},o},t(function(a,o,s){n.reason||(n.reason=new bl(a,o,s),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new H_(function(i){t=i}),cancel:t}}};function kF(e){return function(r){return e.apply(null,r)}}function _F(e){return B.isObject(e)&&e.isAxiosError===!0}const Ny={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ny).forEach(([e,t])=>{Ny[t]=e});function V_(e){const t=new ao(e),r=O_(ao.prototype.request,t);return B.extend(r,ao.prototype,t,{allOwnKeys:!0}),B.extend(r,t,null,{allOwnKeys:!0}),r.create=function(i){return V_(vo(e,i))},r}const ut=V_(Zc);ut.Axios=ao;ut.CanceledError=bl;ut.CancelToken=EF;ut.isCancel=F_;ut.VERSION=q_;ut.toFormData=Cp;ut.AxiosError=de;ut.Cancel=ut.CanceledError;ut.all=function(t){return Promise.all(t)};ut.spread=kF;ut.isAxiosError=_F;ut.mergeConfig=vo;ut.AxiosHeaders=gr;ut.formToJSON=e=>L_(B.isHTMLForm(e)?new FormData(e):e);ut.getAdapter=K_.getAdapter;ut.HttpStatusCode=Ny;ut.default=ut;const{Axios:ime,AxiosError:ame,CanceledError:ome,isCancel:sme,CancelToken:lme,VERSION:ume,all:cme,Cancel:fme,isAxiosError:dme,spread:hme,toFormData:pme,AxiosHeaders:mme,HttpStatusCode:gme,formToJSON:vme,getAdapter:yme,mergeConfig:xme}=ut,TF=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""},CF=TF(),$F=`${CF}/graphql`;function MF(){const e={"Content-Type":"application/json"},t=localStorage.getItem("alphatrion_token");if(t)return e.Authorization=`Bearer ${t}`,e;const r=localStorage.getItem("alphatrion_org_id"),n=localStorage.getItem("alphatrion_user_id");return r&&(e["x-org-id"]=r),n&&(e["x-user-id"]=n),e}async function tt(e,t){try{const r=await ut.post($F,{query:e,variables:t},{headers:MF()});if(r.data.errors)throw new Error(r.data.errors.map(n=>n.message).join(", "));if(!r.data.data)throw new Error("No data returned from GraphQL query");return r.data.data}catch(r){throw ut.isAxiosError(r)?new Error(`GraphQL request failed: ${r.message}`):r}}async function G_(e,t){return tt(e,t)}const Ft={listTeams:` - query ListTeams { - teams { - id - orgId - name - description - meta - createdAt - updatedAt - } - } - `,getUser:` - query GetUser($id: ID!) { - user(id: $id) { - id - orgId - name - email - avatarUrl - meta - createdAt - updatedAt - } - } - `,getTeam:` - query GetTeam($id: ID!) { - team(id: $id) { - id - orgId - name - description - meta - createdAt - updatedAt - totalExperiments - totalRuns - totalDatasets - totalAgents - totalSessions - aggregatedTokens { - totalTokens - inputTokens - outputTokens - } - } - } - `,getOrganization:` - query GetOrganization($id: ID!) { - organization(id: $id) { - id - name - description - meta - createdAt - updatedAt - } - } - `,getTeamWithExperiments:` - query GetTeamWithExperiments($id: ID!, $startTime: DateTime!, $endTime: DateTime!) { - team(id: $id) { - id - name - expsByTimeframe(startTime: $startTime, endTime: $endTime) { - id - teamId - userId - name - status - createdAt - } - } - } - `,getTeamWithLabelKeys:` - query GetTeamWithLabelKeys($id: ID!) { - team(id: $id) { - id - labelKeys - } - } - `,listExperiments:` - query ListExperiments($teamId: ID!, $labelName: String, $labelValue: String, $tag: String, $page: Int, $pageSize: Int) { - experiments(teamId: $teamId, labelName: $labelName, labelValue: $labelValue, tag: $tag, page: $page, pageSize: $pageSize) { - id - teamId - userId - name - description - kind - meta - params - labels { - name - value - } - tags - duration - status - createdAt - updatedAt - } - } - `,getExperiment:` - query GetExperiment($id: ID!) { - experiment(id: $id) { - id - teamId - userId - name - description - kind - meta - params - labels { - name - value - } - tags - duration - status - createdAt - updatedAt - aggregatedTokens { - totalTokens - inputTokens - outputTokens - } - traceStats { - totalSpans - successSpans - errorSpans - } - metrics { - id - key - value - teamId - experimentId - runId - createdAt - } - } - } - `,listRuns:` - query ListRuns($experimentId: ID!, $page: Int, $pageSize: Int) { - runs(experimentId: $experimentId, page: $page, pageSize: $pageSize) { - id - teamId - userId - experimentId - meta - duration - status - createdAt - } - } - `,getRun:` - query GetRun($id: ID!) { - run(id: $id) { - id - teamId - userId - experimentId - meta - duration - status - createdAt - aggregatedTokens { - totalTokens - inputTokens - outputTokens - } - metrics { - id - key - value - teamId - experimentId - runId - createdAt - } - spans { - timestamp - traceId - spanId - parentSpanId - spanName - spanKind - semanticKind - serviceName - duration - statusCode - statusMessage - teamId - runId - experimentId - spanAttributes - resourceAttributes - events { - timestamp - name - attributes - } - links { - traceId - spanId - attributes - } - } - } - } - `,listArtifactRepositories:` - query ListArtifactRepositories { - artifactRepos { - name - } - } - `,listArtifactTags:` - query ListArtifactTags($team_id: ID!, $repo_name: String!) { - artifactTags(teamId: $team_id, repoName: $repo_name) { - name - } - } - `,listArtifactFiles:` - query ListArtifactFiles($team_id: ID!, $tag: String!, $repo_name: String!) { - artifactFiles(teamId: $team_id, tag: $tag, repoName: $repo_name) { - filename - size - contentType - } - } - `,getArtifactContent:` - query GetArtifactContent($team_id: ID!, $tag: String!, $repo_name: String!, $filename: String) { - artifactContent(teamId: $team_id, tag: $tag, repoName: $repo_name, filename: $filename) { - filename - content - contentType - } - } - `,listTraces:` - query ListSpans($runId: ID!) { - spansByRunId(runId: $runId) { - timestamp - traceId - spanId - parentSpanId - spanName - spanKind - semanticKind - serviceName - duration - statusCode - statusMessage - teamId - runId - experimentId - spanAttributes - resourceAttributes - events { - timestamp - name - attributes - } - links { - traceId - spanId - attributes - } - } - } - `,getDailyTokenUsage:` - query GetDailyTokenUsage($teamId: ID!, $days: Int = 30) { - dailyTokenUsage(teamId: $teamId, days: $days) { - date - totalTokens - inputTokens - outputTokens - } - } - `,listDatasets:` - query ListDatasets($teamId: ID!, $page: Int, $pageSize: Int) { - datasets(teamId: $teamId, page: $page, pageSize: $pageSize) { - id - name - description - path - meta - teamId - experimentId - runId - userId - createdAt - updatedAt - } - } - `,getDataset:` - query GetDataset($id: ID!) { - dataset(id: $id) { - id - name - description - path - meta - teamId - experimentId - runId - userId - createdAt - updatedAt - } - } - `,listDatasetsByExperiment:` - query ListDatasetsByExperiment($teamId: ID!, $experimentId: ID!, $page: Int, $pageSize: Int) { - datasetsByExperiment(teamId: $teamId, experimentId: $experimentId, page: $page, pageSize: $pageSize) { - id - name - description - path - meta - teamId - experimentId - runId - userId - createdAt - updatedAt - } - } - `,listAgents:` - query ListAgents($teamId: ID!, $page: Int, $pageSize: Int) { - agents(teamId: $teamId, page: $page, pageSize: $pageSize) { - id - teamId - userId - name - type - description - meta - createdAt - updatedAt - } - } - `,getAgent:` - query GetAgent($id: ID!) { - agent(id: $id) { - id - teamId - userId - name - type - description - meta - createdAt - updatedAt - } - } - `,listAllSessions:` - query ListAllSessions($teamId: ID!, $page: Int, $pageSize: Int) { - team(id: $teamId) { - id - agents(page: 0, pageSize: 1000) { - id - sessions(page: $page, pageSize: $pageSize) { - id - agentId - teamId - userId - meta - createdAt - updatedAt - } - } - } - } - `,listAllAgentRuns:` - query ListAllAgentRuns($teamId: ID!, $page: Int, $pageSize: Int) { - team(id: $teamId) { - id - agents(page: 0, pageSize: 1000) { - id - sessions(page: 0, pageSize: 1000) { - id - runs(page: $page, pageSize: $pageSize) { - id - teamId - userId - sessionId - status - duration - createdAt - } - } - } - } - } - `,getSession:` - query GetSession($sessionId: ID!) { - session(sessionId: $sessionId) { - id - agentId - teamId - userId - meta - createdAt - updatedAt - } - } - `},Y_={deleteExperiments:` - mutation DeleteExperiments($experimentIds: [ID!]!) { - deleteExperiments(experimentIds: $experimentIds) - } - `,deleteDatasets:` - mutation DeleteDatasets($datasetIds: [ID!]!) { - deleteDatasets(datasetIds: $datasetIds) - } - `};function IF(e=0,t=100){const r=s_();return Nt({queryKey:["teams",r.id,e,t],queryFn:async()=>(await tt(Ft.listTeams)).teams,staleTime:10*60*1e3})}function ef(e){return Nt({queryKey:["team",e],queryFn:async()=>(await tt(Ft.getTeam,{id:e})).team,enabled:!!e,staleTime:10*60*1e3})}function DF(e){return Nt({queryKey:["organization",e],queryFn:async()=>e?(await tt(Ft.getOrganization,{id:e})).organization:null,enabled:!!e,staleTime:10*60*1e3})}const RF=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""};function LF(){const[e,t]=N.useState(!1),[r,n]=N.useState(!1),[i,a]=N.useState({currentPassword:"",newPassword:"",confirmPassword:""}),[o,s]=N.useState(""),[l,u]=N.useState(!1),[f,d]=N.useState(!1),h=N.useRef(null),p=s_(),g=Fn(),{data:m}=IF(),{selectedTeamId:v,setSelectedTeamId:y}=wi(),x=m==null?void 0:m.find(j=>j.id===v),{data:b}=DF(x==null?void 0:x.orgId);N.useEffect(()=>{function j(P){h.current&&!h.current.contains(P.target)&&t(!1)}return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const S=()=>{localStorage.removeItem("alphatrion_token"),localStorage.removeItem("alphatrion_user"),localStorage.removeItem("alphatrion_user_id"),localStorage.removeItem("alphatrion_org_id"),localStorage.removeItem("alphatrion_team_id"),g("/login")},w=async j=>{if(j.preventDefault(),s(""),u(!1),i.newPassword.length<6){s("New password must be at least 6 characters");return}if(i.newPassword!==i.confirmPassword){s("New passwords do not match");return}d(!0);try{const P=await fetch(`${RF()}/api/auth/change-password`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("alphatrion_token")}`},body:JSON.stringify({current_password:i.currentPassword,new_password:i.newPassword})});if(!P.ok){const A=await P.json();throw new Error(A.detail||"Failed to change password")}u(!0),a({currentPassword:"",newPassword:"",confirmPassword:""}),setTimeout(()=>{n(!1),u(!1)},2e3)}catch(P){s(P instanceof Error?P.message:"Failed to change password")}finally{d(!1)}},O=j=>j.split(" ").map(P=>P[0]).join("").toUpperCase().slice(0,2);return c.jsxs("div",{className:"relative",ref:h,children:[c.jsxs("button",{onClick:()=>t(!e),className:"flex items-center gap-1 p-1 rounded-md hover:bg-muted transition-colors",title:p.name,children:[p.avatarUrl?c.jsx("img",{src:p.avatarUrl,alt:p.name,className:"w-8 h-8 rounded-full"}):c.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 text-white flex items-center justify-center text-sm font-medium",children:O(p.name)}),c.jsx(Ep,{className:`h-3 w-3 text-muted-foreground transition-transform ${e?"rotate-180":""}`})]}),e&&c.jsxs("div",{className:"absolute right-0 mt-2 w-64 bg-white rounded-lg shadow-lg border border-gray-200 z-50 overflow-hidden",children:[c.jsx("div",{className:"px-3 py-2 bg-gray-50",children:c.jsxs("div",{className:"flex items-center gap-2",children:[p.avatarUrl?c.jsx("img",{src:p.avatarUrl,alt:p.name,className:"w-8 h-8 rounded-full flex-shrink-0"}):c.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 text-white flex items-center justify-center text-[11px] font-medium flex-shrink-0",children:O(p.name)}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-xs font-semibold text-gray-900 truncate",children:p.name}),c.jsx("p",{className:"text-[11px] text-gray-500 truncate",children:p.email})]})]})}),b&&c.jsxs("div",{className:"px-3 py-2 border-b border-gray-200",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-gray-600 mb-1.5",children:[c.jsx(o3,{className:"h-3.5 w-3.5 flex-shrink-0"}),c.jsx("p",{className:"text-[10px] text-gray-500 uppercase tracking-wide font-medium",children:"Organization"})]}),c.jsx("div",{className:"flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-xs bg-gray-50 text-gray-900 font-medium",children:c.jsx("span",{className:"truncate",children:b.name})})]}),m&&m.length>0&&c.jsxs("div",{className:"px-3 py-2 border-b border-gray-200",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-gray-600 mb-1.5",children:[c.jsx(l5,{className:"h-3.5 w-3.5 flex-shrink-0"}),c.jsx("p",{className:"text-[10px] text-gray-500 uppercase tracking-wide font-medium",children:"Team"})]}),c.jsx("div",{className:"space-y-0.5 max-h-40 overflow-y-auto",children:m.map(j=>{const P=j.id===v;return c.jsxs("button",{onClick:()=>{y(j.id,p.id),localStorage.setItem("alphatrion_org_id",j.orgId),localStorage.setItem("alphatrion_team_id",j.id),t(!1),g("/")},className:he("flex w-full items-center justify-between gap-2 px-2 py-1.5 rounded-md text-xs transition-all",P?"bg-blue-50 text-blue-900 font-medium shadow-sm":"hover:bg-gray-50 text-gray-700"),children:[c.jsx("span",{className:"truncate",children:j.name||"Unnamed Team"}),P&&c.jsx(u_,{className:"h-3.5 w-3.5 flex-shrink-0 text-blue-600"})]},j.id)})})]}),c.jsxs("div",{className:"p-1.5 space-y-0.5",children:[c.jsxs("button",{onClick:()=>{n(!0),t(!1)},className:"w-full flex items-center gap-2 px-2 py-1.5 text-xs text-gray-700 hover:bg-gray-50 rounded-md transition-colors font-medium",children:[c.jsx(q3,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Change Password"})]}),c.jsxs("button",{onClick:S,className:"w-full flex items-center gap-2 px-2 py-1.5 text-xs text-red-600 hover:bg-red-50 rounded-md transition-colors font-medium",children:[c.jsx(Y3,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"Logout"})]})]})]}),r&&c.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:c.jsxs("div",{className:"bg-white rounded-lg shadow-xl p-4 w-80 max-w-md",children:[c.jsx("h2",{className:"text-base font-semibold text-gray-900 mb-3",children:"Change Password"}),c.jsxs("form",{onSubmit:w,className:"space-y-3",children:[c.jsxs("div",{children:[c.jsx("label",{htmlFor:"currentPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"Current Password"}),c.jsx("input",{id:"currentPassword",type:"password",required:!0,value:i.currentPassword,onChange:j=>a({...i,currentPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"newPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"New Password"}),c.jsx("input",{id:"newPassword",type:"password",required:!0,value:i.newPassword,onChange:j=>a({...i,newPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"confirmPassword",className:"block text-xs font-medium text-gray-700 mb-1",children:"Confirm New Password"}),c.jsx("input",{id:"confirmPassword",type:"password",required:!0,value:i.confirmPassword,onChange:j=>a({...i,confirmPassword:j.target.value}),className:"w-full px-2.5 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),o&&c.jsx("div",{className:"text-xs text-red-600 bg-red-50 px-2.5 py-1.5 rounded-md",children:o}),l&&c.jsx("div",{className:"text-xs text-green-600 bg-green-50 px-2.5 py-1.5 rounded-md",children:"Password changed successfully!"}),c.jsxs("div",{className:"flex gap-2 pt-1",children:[c.jsx("button",{type:"button",onClick:()=>{n(!1),a({currentPassword:"",newPassword:"",confirmPassword:""}),s(""),u(!1)},className:"flex-1 px-3 py-1.5 text-xs font-medium text-gray-700 bg-gray-100 rounded-md hover:bg-gray-200 transition-colors",children:"Cancel"}),c.jsx("button",{type:"submit",disabled:f,className:"flex-1 px-3 py-1.5 text-xs font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:f?"Changing...":"Change Password"})]})]})]})})]})}function X_(e,t){const{page:r=0,pageSize:n=100,labelName:i,labelValue:a,enabled:o=!0}=t||{};return Nt({queryKey:["experiments",e,i,a,r,n],queryFn:async()=>(await tt(Ft.listExperiments,{teamId:e,labelName:i,labelValue:a,page:r,pageSize:n})).experiments,enabled:o&&!!e,refetchInterval:s=>{const l=s.state.data;if(!l)return!1;const u=l.map(f=>f.status);return fb(u)}})}function Mp(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["experiment",e],queryFn:async()=>(await tt(Ft.getExperiment,{id:e})).experiment,enabled:r&&!!e,refetchInterval:n=>{const i=n.state.data;return i?fb([i.status]):!1}})}function FF(e){return Nt({queryKey:["experiments","by-ids",e],queryFn:async()=>(await Promise.all(e.map(async r=>(await tt(Ft.getExperiment,{id:r})).experiment))).filter(r=>r!==null),enabled:e.length>0,refetchInterval:t=>{const r=t.state.data;if(!r)return!1;const n=r.map(i=>i.status);return fb(n)}})}function Py(e,t){const{page:r=0,pageSize:n=100,enabled:i=!0}=t||{};return Nt({queryKey:["runs",e,r,n],queryFn:async()=>(await tt(Ft.listRuns,{experimentId:e,page:r,pageSize:n})).runs,enabled:i&&!!e,refetchInterval:a=>{const o=a.state.data;if(!o)return!1;const s=o.map(l=>l.status);return i_(s)}})}function Q_(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["run",e],queryFn:async()=>(await tt(Ft.getRun,{id:e})).run,enabled:r&&!!e,refetchInterval:n=>{const i=n.state.data;return i?i_([i.status]):!1}})}function zF(e,t){const{page:r=0,pageSize:n=20,enabled:i=!0}=t||{};return Nt({queryKey:["agents",e,r,n],queryFn:async()=>(await tt(Ft.listAgents,{teamId:e,page:r,pageSize:n})).agents||[],enabled:i&&!!e})}function J_(e,t){const{enabled:r=!0}=t||{};return Nt({queryKey:["agent",e],queryFn:async()=>(await tt(Ft.getAgent,{id:e})).agent,enabled:r&&!!e})}function Aa(e,t=4,r=4){return!e||e.length<=t+r?e:`${e.slice(0,t)}....${e.slice(-r)}`}function Fr(e){if(e===0)return"0s";if(e<1)return`${Math.round(e*1e3)}ms`;const t=Math.floor(e/3600),r=Math.floor(e%3600/60),n=Math.floor(e%60),i=[];return t>0&&i.push(`${t}h`),r>0&&i.push(`${r}m`),(n>0||i.length===0)&&i.push(`${n}s`),i.join(" ")}function BF(){const e=Ao(),{selectedTeamId:t}=wi(),{data:r}=ef(t),n=e.pathname.split("/").filter(Boolean),i=n[0]==="experiments"&&n[1]&&n[1]!=="compare"?n[1]:void 0,a=n[0]==="runs"&&n[1]?n[1]:void 0,o=n[0]==="agents"&&n[1]?n[1]:void 0,s=n[0]==="sessions"&&n[1]?n[1]:void 0,{data:l}=Mp(i||"",{enabled:!!i}),{data:u}=Q_(a||"",{enabled:!!a}),{data:f}=J_(o||"",{enabled:!!o}),{data:d}=Nt({queryKey:["session",s],queryFn:async()=>(await tt(`query GetSession($sessionId: ID!) { - session(sessionId: $sessionId) { - id - agentId - teamId - userId - meta - createdAt - updatedAt - } - }`,{sessionId:s})).session,enabled:!!s}),p=(()=>{const g=e.pathname.split("/").filter(Boolean);if(g.length===0)return[{label:"Home"}];const m=[{label:"Home",href:"/"}];return g[0]==="experiments"?i&&l?(m.push({label:"Experiments",href:"/experiments"}),m.push({label:Aa(l.id),href:g.length===2?void 0:`/experiments/${l.id}`})):m.push({label:"Experiments",href:void 0}):g[0]==="runs"?a&&u?(m.push({label:"Experiments",href:"/experiments"}),m.push({label:Aa(u.experimentId),href:`/experiments/${u.experimentId}`}),m.push({label:"Runs",href:`/experiments/${u.experimentId}`}),m.push({label:Aa(u.id),href:void 0})):m.push({label:"Runs",href:void 0}):g[0]==="agents"?o&&f&&g[1]?(m.push({label:"Agents",href:"/agents"}),m.push({label:Aa(f.id),href:void 0})):m.push({label:"Agents",href:void 0}):g[0]==="sessions"?s?(m.push({label:"Agents",href:"/agents"}),d?(m.push({label:Aa(d.agentId),href:`/agents/${d.agentId}`}),m.push({label:"Sessions",href:`/agents/${d.agentId}`}),m.push({label:Aa(d.id),href:void 0})):(m.push({label:"...",href:void 0}),m.push({label:"Sessions",href:void 0}),m.push({label:Aa(s),href:void 0}))):m.push({label:"Sessions",href:void 0}):g.forEach((v,y)=>{const x="/"+g.slice(0,y+1).join("/"),b=y===g.length-1,S=v.charAt(0).toUpperCase()+v.slice(1);m.push({label:S,href:b?void 0:x})}),m})();return c.jsxs("header",{className:"flex h-14 items-center justify-between bg-card px-6",children:[c.jsx("nav",{className:"flex items-center space-x-2 text-sm",children:p.map((g,m)=>{const v=m===p.length-1;return c.jsxs("div",{className:"flex items-center",children:[m>0&&c.jsx(db,{className:"mx-2 h-4 w-4 text-muted-foreground"}),g.href&&!v?c.jsx(hi,{to:g.href,className:"text-muted-foreground hover:text-foreground transition-colors",children:g.label}):c.jsx("span",{className:"text-foreground font-medium",children:g.label})]},m)})}),c.jsx("div",{className:"flex items-center",children:c.jsx(LF,{})})]})}function UF(){return c.jsxs("div",{className:"flex h-screen overflow-hidden bg-background",children:[c.jsx("div",{className:"shadow-sm",children:c.jsx(r4,{})}),c.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[c.jsx("div",{className:"shadow-sm",children:c.jsx(BF,{})}),c.jsx("main",{className:"flex-1 overflow-y-auto p-6 bg-muted/20",children:c.jsx(ML,{})})]})]})}function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function mn(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Te(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function $e(e){Te(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||th(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function WF(e,t){Te(2,arguments);var r=$e(e),n=mn(t);return isNaN(n)?new Date(NaN):(n&&r.setDate(r.getDate()+n),r)}function KF(e,t){Te(2,arguments);var r=$e(e),n=mn(t);if(isNaN(n))return new Date(NaN);if(!n)return r;var i=r.getDate(),a=new Date(r.getTime());a.setMonth(r.getMonth()+n+1,0);var o=a.getDate();return i>=o?a:(r.setFullYear(a.getFullYear(),a.getMonth(),i),r)}function qF(e,t){Te(2,arguments);var r=$e(e).getTime(),n=mn(t);return new Date(r+n)}var HF={};function tf(){return HF}function Ay(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function Ey(e){Te(1,arguments);var t=$e(e);return t.setHours(0,0,0,0),t}function Sd(e,t){Te(2,arguments);var r=$e(e),n=$e(t),i=r.getTime()-n.getTime();return i<0?-1:i>0?1:i}function VF(e){return Te(1,arguments),e instanceof Date||th(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function GF(e){if(Te(1,arguments),!VF(e)&&typeof e!="number")return!1;var t=$e(e);return!isNaN(Number(t))}function YF(e,t){Te(2,arguments);var r=$e(e),n=$e(t),i=r.getFullYear()-n.getFullYear(),a=r.getMonth()-n.getMonth();return i*12+a}function XF(e,t){return Te(2,arguments),$e(e).getTime()-$e(t).getTime()}var QF={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},JF="trunc";function ZF(e){return QF[JF]}function ez(e){Te(1,arguments);var t=$e(e);return t.setHours(23,59,59,999),t}function tz(e){Te(1,arguments);var t=$e(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function rz(e){Te(1,arguments);var t=$e(e);return ez(t).getTime()===tz(t).getTime()}function nz(e,t){Te(2,arguments);var r=$e(e),n=$e(t),i=Sd(r,n),a=Math.abs(YF(r,n)),o;if(a<1)o=0;else{r.getMonth()===1&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-i*a);var s=Sd(r,n)===-i;rz($e(e))&&a===1&&Sd(e,n)===1&&(s=!1),o=i*(a-Number(s))}return o===0?0:o}function iz(e,t,r){Te(2,arguments);var n=XF(e,t)/1e3;return ZF()(n)}function az(e,t){Te(2,arguments);var r=mn(t);return qF(e,-r)}var oz=864e5;function sz(e){Te(1,arguments);var t=$e(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=t.getTime(),i=r-n;return Math.floor(i/oz)+1}function rh(e){Te(1,arguments);var t=1,r=$e(e),n=r.getUTCDay(),i=(n=i.getTime()?r+1:t.getTime()>=o.getTime()?r:r-1}function lz(e){Te(1,arguments);var t=Z_(e),r=new Date(0);r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0);var n=rh(r);return n}var uz=6048e5;function cz(e){Te(1,arguments);var t=$e(e),r=rh(t).getTime()-lz(t).getTime();return Math.round(r/uz)+1}function nh(e,t){var r,n,i,a,o,s,l,u;Te(1,arguments);var f=tf(),d=mn((r=(n=(i=(a=t==null?void 0:t.weekStartsOn)!==null&&a!==void 0?a:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.weekStartsOn)!==null&&i!==void 0?i:f.weekStartsOn)!==null&&n!==void 0?n:(l=f.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&r!==void 0?r:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var h=$e(e),p=h.getUTCDay(),g=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(d+1,0,p),g.setUTCHours(0,0,0,0);var m=nh(g,t),v=new Date(0);v.setUTCFullYear(d,0,p),v.setUTCHours(0,0,0,0);var y=nh(v,t);return f.getTime()>=m.getTime()?d+1:f.getTime()>=y.getTime()?d:d-1}function fz(e,t){var r,n,i,a,o,s,l,u;Te(1,arguments);var f=tf(),d=mn((r=(n=(i=(a=t==null?void 0:t.firstWeekContainsDate)!==null&&a!==void 0?a:t==null||(o=t.locale)===null||o===void 0||(s=o.options)===null||s===void 0?void 0:s.firstWeekContainsDate)!==null&&i!==void 0?i:f.firstWeekContainsDate)!==null&&n!==void 0?n:(l=f.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&r!==void 0?r:1),h=eT(e,t),p=new Date(0);p.setUTCFullYear(h,0,d),p.setUTCHours(0,0,0,0);var g=nh(p,t);return g}var dz=6048e5;function hz(e,t){Te(1,arguments);var r=$e(e),n=nh(r,t).getTime()-fz(r,t).getTime();return Math.round(n/dz)+1}function Ce(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length0?n:1-n;return Ce(r==="yy"?i%100:i,r.length)},M:function(t,r){var n=t.getUTCMonth();return r==="M"?String(n+1):Ce(n+1,2)},d:function(t,r){return Ce(t.getUTCDate(),r.length)},a:function(t,r){var n=t.getUTCHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h:function(t,r){return Ce(t.getUTCHours()%12||12,r.length)},H:function(t,r){return Ce(t.getUTCHours(),r.length)},m:function(t,r){return Ce(t.getUTCMinutes(),r.length)},s:function(t,r){return Ce(t.getUTCSeconds(),r.length)},S:function(t,r){var n=r.length,i=t.getUTCMilliseconds(),a=Math.floor(i*Math.pow(10,n-3));return Ce(a,r.length)}},Ro={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},pz={G:function(t,r,n){var i=t.getUTCFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return n.era(i,{width:"abbreviated"});case"GGGGG":return n.era(i,{width:"narrow"});case"GGGG":default:return n.era(i,{width:"wide"})}},y:function(t,r,n){if(r==="yo"){var i=t.getUTCFullYear(),a=i>0?i:1-i;return n.ordinalNumber(a,{unit:"year"})}return _i.y(t,r)},Y:function(t,r,n,i){var a=eT(t,i),o=a>0?a:1-a;if(r==="YY"){var s=o%100;return Ce(s,2)}return r==="Yo"?n.ordinalNumber(o,{unit:"year"}):Ce(o,r.length)},R:function(t,r){var n=Z_(t);return Ce(n,r.length)},u:function(t,r){var n=t.getUTCFullYear();return Ce(n,r.length)},Q:function(t,r,n){var i=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"Q":return String(i);case"QQ":return Ce(i,2);case"Qo":return n.ordinalNumber(i,{unit:"quarter"});case"QQQ":return n.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(i,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(i,{width:"wide",context:"formatting"})}},q:function(t,r,n){var i=Math.ceil((t.getUTCMonth()+1)/3);switch(r){case"q":return String(i);case"qq":return Ce(i,2);case"qo":return n.ordinalNumber(i,{unit:"quarter"});case"qqq":return n.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(i,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(i,{width:"wide",context:"standalone"})}},M:function(t,r,n){var i=t.getUTCMonth();switch(r){case"M":case"MM":return _i.M(t,r);case"Mo":return n.ordinalNumber(i+1,{unit:"month"});case"MMM":return n.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(i,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(i,{width:"wide",context:"formatting"})}},L:function(t,r,n){var i=t.getUTCMonth();switch(r){case"L":return String(i+1);case"LL":return Ce(i+1,2);case"Lo":return n.ordinalNumber(i+1,{unit:"month"});case"LLL":return n.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(i,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(i,{width:"wide",context:"standalone"})}},w:function(t,r,n,i){var a=hz(t,i);return r==="wo"?n.ordinalNumber(a,{unit:"week"}):Ce(a,r.length)},I:function(t,r,n){var i=cz(t);return r==="Io"?n.ordinalNumber(i,{unit:"week"}):Ce(i,r.length)},d:function(t,r,n){return r==="do"?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):_i.d(t,r)},D:function(t,r,n){var i=sz(t);return r==="Do"?n.ordinalNumber(i,{unit:"dayOfYear"}):Ce(i,r.length)},E:function(t,r,n){var i=t.getUTCDay();switch(r){case"E":case"EE":case"EEE":return n.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(i,{width:"short",context:"formatting"});case"EEEE":default:return n.day(i,{width:"wide",context:"formatting"})}},e:function(t,r,n,i){var a=t.getUTCDay(),o=(a-i.weekStartsOn+8)%7||7;switch(r){case"e":return String(o);case"ee":return Ce(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,r,n,i){var a=t.getUTCDay(),o=(a-i.weekStartsOn+8)%7||7;switch(r){case"c":return String(o);case"cc":return Ce(o,r.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,r,n){var i=t.getUTCDay(),a=i===0?7:i;switch(r){case"i":return String(a);case"ii":return Ce(a,r.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(i,{width:"short",context:"formatting"});case"iiii":default:return n.day(i,{width:"wide",context:"formatting"})}},a:function(t,r,n){var i=t.getUTCHours(),a=i/12>=1?"pm":"am";switch(r){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,r,n){var i=t.getUTCHours(),a;switch(i===12?a=Ro.noon:i===0?a=Ro.midnight:a=i/12>=1?"pm":"am",r){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,r,n){var i=t.getUTCHours(),a;switch(i>=17?a=Ro.evening:i>=12?a=Ro.afternoon:i>=4?a=Ro.morning:a=Ro.night,r){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,r,n){if(r==="ho"){var i=t.getUTCHours()%12;return i===0&&(i=12),n.ordinalNumber(i,{unit:"hour"})}return _i.h(t,r)},H:function(t,r,n){return r==="Ho"?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):_i.H(t,r)},K:function(t,r,n){var i=t.getUTCHours()%12;return r==="Ko"?n.ordinalNumber(i,{unit:"hour"}):Ce(i,r.length)},k:function(t,r,n){var i=t.getUTCHours();return i===0&&(i=24),r==="ko"?n.ordinalNumber(i,{unit:"hour"}):Ce(i,r.length)},m:function(t,r,n){return r==="mo"?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):_i.m(t,r)},s:function(t,r,n){return r==="so"?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):_i.s(t,r)},S:function(t,r){return _i.S(t,r)},X:function(t,r,n,i){var a=i._originalDate||t,o=a.getTimezoneOffset();if(o===0)return"Z";switch(r){case"X":return MS(o);case"XXXX":case"XX":return $a(o);case"XXXXX":case"XXX":default:return $a(o,":")}},x:function(t,r,n,i){var a=i._originalDate||t,o=a.getTimezoneOffset();switch(r){case"x":return MS(o);case"xxxx":case"xx":return $a(o);case"xxxxx":case"xxx":default:return $a(o,":")}},O:function(t,r,n,i){var a=i._originalDate||t,o=a.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+$S(o,":");case"OOOO":default:return"GMT"+$a(o,":")}},z:function(t,r,n,i){var a=i._originalDate||t,o=a.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+$S(o,":");case"zzzz":default:return"GMT"+$a(o,":")}},t:function(t,r,n,i){var a=i._originalDate||t,o=Math.floor(a.getTime()/1e3);return Ce(o,r.length)},T:function(t,r,n,i){var a=i._originalDate||t,o=a.getTime();return Ce(o,r.length)}};function $S(e,t){var r=e>0?"-":"+",n=Math.abs(e),i=Math.floor(n/60),a=n%60;if(a===0)return r+String(i);var o=t;return r+String(i)+o+Ce(a,2)}function MS(e,t){if(e%60===0){var r=e>0?"-":"+";return r+Ce(Math.abs(e)/60,2)}return $a(e,t)}function $a(e,t){var r=t||"",n=e>0?"-":"+",i=Math.abs(e),a=Ce(Math.floor(i/60),2),o=Ce(i%60,2);return n+a+r+o}var IS=function(t,r){switch(t){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},tT=function(t,r){switch(t){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},mz=function(t,r){var n=t.match(/(P+)(p+)?/)||[],i=n[1],a=n[2];if(!a)return IS(t,r);var o;switch(i){case"P":o=r.dateTime({width:"short"});break;case"PP":o=r.dateTime({width:"medium"});break;case"PPP":o=r.dateTime({width:"long"});break;case"PPPP":default:o=r.dateTime({width:"full"});break}return o.replace("{{date}}",IS(i,r)).replace("{{time}}",tT(a,r))},gz={p:tT,P:mz},vz=["D","DD"],yz=["YY","YYYY"];function xz(e){return vz.indexOf(e)!==-1}function bz(e){return yz.indexOf(e)!==-1}function DS(e,t,r){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var wz={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Sz=function(t,r,n){var i,a=wz[t];return typeof a=="string"?i=a:r===1?i=a.one:i=a.other.replace("{{count}}",r.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+i:i+" ago":i};function vg(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth,n=e.formats[r]||e.formats[e.defaultWidth];return n}}var jz={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Oz={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Nz={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Pz={date:vg({formats:jz,defaultWidth:"full"}),time:vg({formats:Oz,defaultWidth:"full"}),dateTime:vg({formats:Nz,defaultWidth:"full"})},Az={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Ez=function(t,r,n,i){return Az[t]};function Gl(e){return function(t,r){var n=r!=null&&r.context?String(r.context):"standalone",i;if(n==="formatting"&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,o=r!=null&&r.width?String(r.width):a;i=e.formattingValues[o]||e.formattingValues[a]}else{var s=e.defaultWidth,l=r!=null&&r.width?String(r.width):e.defaultWidth;i=e.values[l]||e.values[s]}var u=e.argumentCallback?e.argumentCallback(t):t;return i[u]}}var kz={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},_z={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Tz={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Cz={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},$z={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Mz={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Iz=function(t,r){var n=Number(t),i=n%100;if(i>20||i<10)switch(i%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Dz={ordinalNumber:Iz,era:Gl({values:kz,defaultWidth:"wide"}),quarter:Gl({values:_z,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Gl({values:Tz,defaultWidth:"wide"}),day:Gl({values:Cz,defaultWidth:"wide"}),dayPeriod:Gl({values:$z,defaultWidth:"wide",formattingValues:Mz,defaultFormattingWidth:"wide"})};function Yl(e){return function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.width,i=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;var o=a[0],s=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?Lz(s,function(d){return d.test(o)}):Rz(s,function(d){return d.test(o)}),u;u=e.valueCallback?e.valueCallback(l):l,u=r.valueCallback?r.valueCallback(u):u;var f=t.slice(o.length);return{value:u,rest:f}}}function Rz(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r}function Lz(e,t){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:{},n=t.match(e.matchPattern);if(!n)return null;var i=n[0],a=t.match(e.parsePattern);if(!a)return null;var o=e.valueCallback?e.valueCallback(a[0]):a[0];o=r.valueCallback?r.valueCallback(o):o;var s=t.slice(i.length);return{value:o,rest:s}}}var zz=/^(\d+)(th|st|nd|rd)?/i,Bz=/\d+/i,Uz={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Wz={any:[/^b/i,/^(a|c)/i]},Kz={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},qz={any:[/1/i,/2/i,/3/i,/4/i]},Hz={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Vz={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Gz={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Yz={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Xz={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Qz={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Jz={ordinalNumber:Fz({matchPattern:zz,parsePattern:Bz,valueCallback:function(t){return parseInt(t,10)}}),era:Yl({matchPatterns:Uz,defaultMatchWidth:"wide",parsePatterns:Wz,defaultParseWidth:"any"}),quarter:Yl({matchPatterns:Kz,defaultMatchWidth:"wide",parsePatterns:qz,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Yl({matchPatterns:Hz,defaultMatchWidth:"wide",parsePatterns:Vz,defaultParseWidth:"any"}),day:Yl({matchPatterns:Gz,defaultMatchWidth:"wide",parsePatterns:Yz,defaultParseWidth:"any"}),dayPeriod:Yl({matchPatterns:Xz,defaultMatchWidth:"any",parsePatterns:Qz,defaultParseWidth:"any"})},rT={code:"en-US",formatDistance:Sz,formatLong:Pz,formatRelative:Ez,localize:Dz,match:Jz,options:{weekStartsOn:0,firstWeekContainsDate:1}},Zz=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,eB=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,tB=/^'([^]*?)'?$/,rB=/''/g,nB=/[a-zA-Z]/;function ca(e,t,r){var n,i,a,o,s,l,u,f,d,h,p,g,m,v;Te(2,arguments);var y=String(t),x=tf(),b=(n=(i=void 0)!==null&&i!==void 0?i:x.locale)!==null&&n!==void 0?n:rT,S=mn((a=(o=(s=(l=void 0)!==null&&l!==void 0?l:void 0)!==null&&s!==void 0?s:x.firstWeekContainsDate)!==null&&o!==void 0?o:(u=x.locale)===null||u===void 0||(f=u.options)===null||f===void 0?void 0:f.firstWeekContainsDate)!==null&&a!==void 0?a:1);if(!(S>=1&&S<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var w=mn((d=(h=(p=(g=void 0)!==null&&g!==void 0?g:void 0)!==null&&p!==void 0?p:x.weekStartsOn)!==null&&h!==void 0?h:(m=x.locale)===null||m===void 0||(v=m.options)===null||v===void 0?void 0:v.weekStartsOn)!==null&&d!==void 0?d:0);if(!(w>=0&&w<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!b.localize)throw new RangeError("locale must contain localize property");if(!b.formatLong)throw new RangeError("locale must contain formatLong property");var O=$e(e);if(!GF(O))throw new RangeError("Invalid time value");var j=Ay(O),P=az(O,j),A={firstWeekContainsDate:S,weekStartsOn:w,locale:b,_originalDate:O},_=y.match(eB).map(function(E){var k=E[0];if(k==="p"||k==="P"){var D=gz[k];return D(E,b.formatLong)}return E}).join("").match(Zz).map(function(E){if(E==="''")return"'";var k=E[0];if(k==="'")return iB(E);var D=pz[k];if(D)return bz(E)&&DS(E,t,String(e)),xz(E)&&DS(E,t,String(e)),D(P,E,b.localize,A);if(k.match(nB))throw new RangeError("Format string contains an unescaped latin alphabet character `"+k+"`");return E}).join("");return _}function iB(e){var t=e.match(tB);return t?t[1].replace(rB,"'"):e}function nT(e,t){if(e==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}function aB(e){return nT({},e)}var RS=1440,oB=2520,yg=43200,sB=86400;function lB(e,t,r){var n,i;Te(2,arguments);var a=tf(),o=(n=(i=r==null?void 0:r.locale)!==null&&i!==void 0?i:a.locale)!==null&&n!==void 0?n:rT;if(!o.formatDistance)throw new RangeError("locale must contain formatDistance property");var s=Sd(e,t);if(isNaN(s))throw new RangeError("Invalid time value");var l=nT(aB(r),{addSuffix:!!(r!=null&&r.addSuffix),comparison:s}),u,f;s>0?(u=$e(t),f=$e(e)):(u=$e(e),f=$e(t));var d=iz(f,u),h=(Ay(f)-Ay(u))/1e3,p=Math.round((d-h)/60),g;if(p<2)return r!=null&&r.includeSeconds?d<5?o.formatDistance("lessThanXSeconds",5,l):d<10?o.formatDistance("lessThanXSeconds",10,l):d<20?o.formatDistance("lessThanXSeconds",20,l):d<40?o.formatDistance("halfAMinute",0,l):d<60?o.formatDistance("lessThanXMinutes",1,l):o.formatDistance("xMinutes",1,l):p===0?o.formatDistance("lessThanXMinutes",1,l):o.formatDistance("xMinutes",p,l);if(p<45)return o.formatDistance("xMinutes",p,l);if(p<90)return o.formatDistance("aboutXHours",1,l);if(p{const n=new Date,i=ky(n,3);return(await tt(Ft.getTeamWithExperiments,{id:e,startTime:i.toISOString(),endTime:n.toISOString()})).team.expsByTimeframe},enabled:r&&!!e,staleTime:5*60*1e3})}function cB(e,t=30){return Nt({queryKey:["dailyTokenUsage",e,t],queryFn:async()=>(await tt(Ft.getDailyTokenUsage,{teamId:e,days:t})).dailyTokenUsage,enabled:!!e,staleTime:5*60*1e3})}const fB=` - query GetModelDistributions($teamId: ID!) { - team(id: $teamId) { - id - modelDistributions { - model - count - } - } - } -`;function dB(e){return Nt({queryKey:["model-distributions",e],queryFn:async()=>{var r;return e?((r=(await tt(fB,{teamId:e})).team)==null?void 0:r.modelDistributions)||[]:[]},enabled:!!e,staleTime:5*60*1e3})}const ie=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));ie.displayName="Card";const it=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("flex flex-col space-y-1.5 p-6",e),...t}));it.displayName="CardHeader";const at=N.forwardRef(({className:e,...t},r)=>c.jsx("h3",{ref:r,className:he("text-2xl font-semibold leading-none tracking-tight",e),...t}));at.displayName="CardTitle";const Qt=N.forwardRef(({className:e,...t},r)=>c.jsx("p",{ref:r,className:he("text-sm text-muted-foreground",e),...t}));Qt.displayName="CardDescription";const ae=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("p-6 pt-0",e),...t}));ae.displayName="CardContent";const hB=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("flex items-center p-6 pt-0",e),...t}));hB.displayName="CardFooter";const lt=N.forwardRef(({className:e,variant:t="default",size:r="default",...n},i)=>{const a={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},o={default:"h-10 px-4 py-2",sm:"h-9 px-3",lg:"h-11 px-8",icon:"h-10 w-10"};return c.jsx("button",{className:he("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",a[t],o[r],e),ref:i,...n})});lt.displayName="Button";function je({className:e,...t}){return c.jsx("div",{className:he("animate-pulse rounded-md bg-muted",e),...t})}var pB=Array.isArray,vr=pB,mB=typeof vf=="object"&&vf&&vf.Object===Object&&vf,iT=mB,gB=iT,vB=typeof self=="object"&&self&&self.Object===Object&&self,yB=gB||vB||Function("return this")(),zn=yB,xB=zn,bB=xB.Symbol,rf=bB,LS=rf,aT=Object.prototype,wB=aT.hasOwnProperty,SB=aT.toString,Xl=LS?LS.toStringTag:void 0;function jB(e){var t=wB.call(e,Xl),r=e[Xl];try{e[Xl]=void 0;var n=!0}catch{}var i=SB.call(e);return n&&(t?e[Xl]=r:delete e[Xl]),i}var OB=jB,NB=Object.prototype,PB=NB.toString;function AB(e){return PB.call(e)}var EB=AB,FS=rf,kB=OB,_B=EB,TB="[object Null]",CB="[object Undefined]",zS=FS?FS.toStringTag:void 0;function $B(e){return e==null?e===void 0?CB:TB:zS&&zS in Object(e)?kB(e):_B(e)}var Si=$B;function MB(e){return e!=null&&typeof e=="object"}var ji=MB,IB=Si,DB=ji,RB="[object Symbol]";function LB(e){return typeof e=="symbol"||DB(e)&&IB(e)==RB}var wl=LB,FB=vr,zB=wl,BB=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,UB=/^\w*$/;function WB(e,t){if(FB(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||zB(e)?!0:UB.test(e)||!BB.test(e)||t!=null&&e in Object(t)}var xb=WB;function KB(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xa=KB;const Sl=_e(xa);var qB=Si,HB=xa,VB="[object AsyncFunction]",GB="[object Function]",YB="[object GeneratorFunction]",XB="[object Proxy]";function QB(e){if(!HB(e))return!1;var t=qB(e);return t==GB||t==YB||t==VB||t==XB}var bb=QB;const le=_e(bb);var JB=zn,ZB=JB["__core-js_shared__"],e6=ZB,xg=e6,BS=function(){var e=/[^.]+$/.exec(xg&&xg.keys&&xg.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function t6(e){return!!BS&&BS in e}var r6=t6,n6=Function.prototype,i6=n6.toString;function a6(e){if(e!=null){try{return i6.call(e)}catch{}try{return e+""}catch{}}return""}var oT=a6,o6=bb,s6=r6,l6=xa,u6=oT,c6=/[\\^$.*+?()[\]{}|]/g,f6=/^\[object .+?Constructor\]$/,d6=Function.prototype,h6=Object.prototype,p6=d6.toString,m6=h6.hasOwnProperty,g6=RegExp("^"+p6.call(m6).replace(c6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function v6(e){if(!l6(e)||s6(e))return!1;var t=o6(e)?g6:f6;return t.test(u6(e))}var y6=v6;function x6(e,t){return e==null?void 0:e[t]}var b6=x6,w6=y6,S6=b6;function j6(e,t){var r=S6(e,t);return w6(r)?r:void 0}var Eo=j6,O6=Eo,N6=O6(Object,"create"),Ip=N6,US=Ip;function P6(){this.__data__=US?US(null):{},this.size=0}var A6=P6;function E6(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var k6=E6,_6=Ip,T6="__lodash_hash_undefined__",C6=Object.prototype,$6=C6.hasOwnProperty;function M6(e){var t=this.__data__;if(_6){var r=t[e];return r===T6?void 0:r}return $6.call(t,e)?t[e]:void 0}var I6=M6,D6=Ip,R6=Object.prototype,L6=R6.hasOwnProperty;function F6(e){var t=this.__data__;return D6?t[e]!==void 0:L6.call(t,e)}var z6=F6,B6=Ip,U6="__lodash_hash_undefined__";function W6(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=B6&&t===void 0?U6:t,this}var K6=W6,q6=A6,H6=k6,V6=I6,G6=z6,Y6=K6;function jl(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1}var dU=fU,hU=Dp;function pU(e,t){var r=this.__data__,n=hU(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var mU=pU,gU=J6,vU=oU,yU=uU,xU=dU,bU=mU;function Ol(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0?1:-1},Wa=function(t){return yo(t)&&t.indexOf("%")===t.length-1},G=function(t){return z8(t)&&!nf(t)},K8=function(t){return se(t)},Ot=function(t){return G(t)||yo(t)},q8=0,ko=function(t){var r=++q8;return"".concat(t||"").concat(r)},Zt=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!G(t)&&!yo(t))return n;var a;if(Wa(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return nf(a)&&(a=n),i&&a>r&&(a=r),a},Fi=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},H8=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function eW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Ty(e){"@babel/helpers - typeof";return Ty=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ty(e)}var YS={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ii=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},XS=null,wg=null,_b=function e(t){if(t===XS&&Array.isArray(wg))return wg;var r=[];return N.Children.forEach(t,function(n){se(n)||(I8.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),wg=r,XS=t,r};function rr(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return ii(i)}):n=[ii(t)],_b(e).forEach(function(i){var a=Ar(i,"type.displayName")||Ar(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function wr(e,t){var r=rr(e,t);return r&&r[0]}var QS=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!G(n)||n<=0||!G(i)||i<=0)},tW=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],rW=function(t){return t&&t.type&&yo(t.type)&&tW.indexOf(t.type)>=0},nW=function(t){return t&&Ty(t)==="object"&&"clipDot"in t},iW=function(t,r,n,i){var a,o=(a=bg==null?void 0:bg[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!le(t)&&(i&&o.includes(r)||X8.includes(r))||n&&kb.includes(r)},ne=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(N.isValidElement(t)&&(i=t.props),!Sl(i))return null;var a={};return Object.keys(i).forEach(function(o){var s;iW((s=i)===null||s===void 0?void 0:s[o],o,r,n)&&(a[o]=i[o])}),a},Cy=function e(t,r){if(t===r)return!0;var n=N.Children.count(t);if(n!==N.Children.count(r))return!1;if(n===0)return!0;if(n===1)return JS(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function uW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function My(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,s=e.title,l=e.desc,u=lW(e,sW),f=i||{width:r,height:n,x:0,y:0},d=fe("recharts-surface",a);return $.createElement("svg",$y({},ne(u,!0,"svg"),{className:d,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),$.createElement("title",null,s),$.createElement("desc",null,l),t)}var cW=["children","className"];function Iy(){return Iy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function dW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var xe=$.forwardRef(function(e,t){var r=e.children,n=e.className,i=fW(e,cW),a=fe("recharts-layer",n);return $.createElement("g",Iy({className:a},ne(i,!0),{ref:t}),r)}),dn=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;ai?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n=n?e:mW(e,t,r)}var vW=gW,yW="\\ud800-\\udfff",xW="\\u0300-\\u036f",bW="\\ufe20-\\ufe2f",wW="\\u20d0-\\u20ff",SW=xW+bW+wW,jW="\\ufe0e\\ufe0f",OW="\\u200d",NW=RegExp("["+OW+yW+SW+jW+"]");function PW(e){return NW.test(e)}var gT=PW;function AW(e){return e.split("")}var EW=AW,vT="\\ud800-\\udfff",kW="\\u0300-\\u036f",_W="\\ufe20-\\ufe2f",TW="\\u20d0-\\u20ff",CW=kW+_W+TW,$W="\\ufe0e\\ufe0f",MW="["+vT+"]",Dy="["+CW+"]",Ry="\\ud83c[\\udffb-\\udfff]",IW="(?:"+Dy+"|"+Ry+")",yT="[^"+vT+"]",xT="(?:\\ud83c[\\udde6-\\uddff]){2}",bT="[\\ud800-\\udbff][\\udc00-\\udfff]",DW="\\u200d",wT=IW+"?",ST="["+$W+"]?",RW="(?:"+DW+"(?:"+[yT,xT,bT].join("|")+")"+ST+wT+")*",LW=ST+wT+RW,FW="(?:"+[yT+Dy+"?",Dy,xT,bT,MW].join("|")+")",zW=RegExp(Ry+"(?="+Ry+")|"+FW+LW,"g");function BW(e){return e.match(zW)||[]}var UW=BW,WW=EW,KW=gT,qW=UW;function HW(e){return KW(e)?qW(e):WW(e)}var VW=HW,GW=vW,YW=gT,XW=VW,QW=cT;function JW(e){return function(t){t=QW(t);var r=YW(t)?XW(t):void 0,n=r?r[0]:t.charAt(0),i=r?GW(r,1).join(""):t.slice(1);return n[e]()+i}}var ZW=JW,e7=ZW,t7=e7("toUpperCase"),r7=t7;const Xp=_e(r7);function ze(e){return function(){return e}}const jT=Math.cos,oh=Math.sin,xn=Math.sqrt,sh=Math.PI,Qp=2*sh,Ly=Math.PI,Fy=2*Ly,Ma=1e-6,n7=Fy-Ma;function OT(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return OT;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;iMa)if(!(Math.abs(d*l-u*f)>Ma)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,g=i-s,m=l*l+u*u,v=p*p+g*g,y=Math.sqrt(m),x=Math.sqrt(h),b=a*Math.tan((Ly-Math.acos((m+h-v)/(2*y*x)))/2),S=b/x,w=b/y;Math.abs(S-1)>Ma&&this._append`L${t+S*f},${r+S*d}`,this._append`A${a},${a},0,0,${+(d*p>f*g)},${this._x1=t+w*l},${this._y1=r+w*u}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(i),l=n*Math.sin(i),u=t+s,f=r+l,d=1^o,h=o?i-a:a-i;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>Ma||Math.abs(this._y1-f)>Ma)&&this._append`L${u},${f}`,n&&(h<0&&(h=h%Fy+Fy),h>n7?this._append`A${n},${n},0,1,${d},${t-s},${r-l}A${n},${n},0,1,${d},${this._x1=u},${this._y1=f}`:h>Ma&&this._append`A${n},${n},0,${+(h>=Ly)},${d},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Tb(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new a7(t)}function Cb(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function NT(e){this._context=e}NT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Jp(e){return new NT(e)}function PT(e){return e[0]}function AT(e){return e[1]}function ET(e,t){var r=ze(!0),n=null,i=Jp,a=null,o=Tb(s);e=typeof e=="function"?e:e===void 0?PT:ze(e),t=typeof t=="function"?t:t===void 0?AT:ze(t);function s(l){var u,f=(l=Cb(l)).length,d,h=!1,p;for(n==null&&(a=i(p=o())),u=0;u<=f;++u)!(u=p;--g)s.point(b[g],S[g]);s.lineEnd(),s.areaEnd()}y&&(b[h]=+e(v,h,d),S[h]=+t(v,h,d),s.point(n?+n(v,h,d):b[h],r?+r(v,h,d):S[h]))}if(x)return s=null,x+""||null}function f(){return ET().defined(i).curve(o).context(a)}return u.x=function(d){return arguments.length?(e=typeof d=="function"?d:ze(+d),n=null,u):e},u.x0=function(d){return arguments.length?(e=typeof d=="function"?d:ze(+d),u):e},u.x1=function(d){return arguments.length?(n=d==null?null:typeof d=="function"?d:ze(+d),u):n},u.y=function(d){return arguments.length?(t=typeof d=="function"?d:ze(+d),r=null,u):t},u.y0=function(d){return arguments.length?(t=typeof d=="function"?d:ze(+d),u):t},u.y1=function(d){return arguments.length?(r=d==null?null:typeof d=="function"?d:ze(+d),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(n).y(t)},u.defined=function(d){return arguments.length?(i=typeof d=="function"?d:ze(!!d),u):i},u.curve=function(d){return arguments.length?(o=d,a!=null&&(s=o(a)),u):o},u.context=function(d){return arguments.length?(d==null?a=s=null:s=o(a=d),u):a},u}class kT{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function o7(e){return new kT(e,!0)}function s7(e){return new kT(e,!1)}const $b={draw(e,t){const r=xn(t/sh);e.moveTo(r,0),e.arc(0,0,r,0,Qp)}},l7={draw(e,t){const r=xn(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},_T=xn(1/3),u7=_T*2,c7={draw(e,t){const r=xn(t/u7),n=r*_T;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},f7={draw(e,t){const r=xn(t),n=-r/2;e.rect(n,n,r,r)}},d7=.8908130915292852,TT=oh(sh/10)/oh(7*sh/10),h7=oh(Qp/10)*TT,p7=-jT(Qp/10)*TT,m7={draw(e,t){const r=xn(t*d7),n=h7*r,i=p7*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=Qp*a/5,s=jT(o),l=oh(o);e.lineTo(l*r,-s*r),e.lineTo(s*n-l*i,l*n+s*i)}e.closePath()}},Sg=xn(3),g7={draw(e,t){const r=-xn(t/(Sg*3));e.moveTo(0,r*2),e.lineTo(-Sg*r,-r),e.lineTo(Sg*r,-r),e.closePath()}},Mr=-.5,Ir=xn(3)/2,zy=1/xn(12),v7=(zy/2+1)*3,y7={draw(e,t){const r=xn(t/v7),n=r/2,i=r*zy,a=n,o=r*zy+r,s=-a,l=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(s,l),e.lineTo(Mr*n-Ir*i,Ir*n+Mr*i),e.lineTo(Mr*a-Ir*o,Ir*a+Mr*o),e.lineTo(Mr*s-Ir*l,Ir*s+Mr*l),e.lineTo(Mr*n+Ir*i,Mr*i-Ir*n),e.lineTo(Mr*a+Ir*o,Mr*o-Ir*a),e.lineTo(Mr*s+Ir*l,Mr*l-Ir*s),e.closePath()}};function x7(e,t){let r=null,n=Tb(i);e=typeof e=="function"?e:ze(e||$b),t=typeof t=="function"?t:ze(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:ze(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:ze(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function lh(){}function uh(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function CT(e){this._context=e}CT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:uh(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:uh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function b7(e){return new CT(e)}function $T(e){this._context=e}$T.prototype={areaStart:lh,areaEnd:lh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:uh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function w7(e){return new $T(e)}function MT(e){this._context=e}MT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:uh(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function S7(e){return new MT(e)}function IT(e){this._context=e}IT.prototype={areaStart:lh,areaEnd:lh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function j7(e){return new IT(e)}function ej(e){return e<0?-1:1}function tj(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),s=(a*i+o*n)/(n+i);return(ej(a)+ej(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function rj(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function jg(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-n)/3;e._context.bezierCurveTo(n+s,i+s*t,a-s,o-s*r,a,o)}function ch(e){this._context=e}ch.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:jg(this,this._t0,rj(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,jg(this,rj(this,r=tj(this,e,t)),r);break;default:jg(this,this._t0,r=tj(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function DT(e){this._context=new RT(e)}(DT.prototype=Object.create(ch.prototype)).point=function(e,t){ch.prototype.point.call(this,t,e)};function RT(e){this._context=e}RT.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function O7(e){return new ch(e)}function N7(e){return new DT(e)}function LT(e){this._context=e}LT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=nj(e),i=nj(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function A7(e){return new Zp(e,.5)}function E7(e){return new Zp(e,0)}function k7(e){return new Zp(e,1)}function Fs(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,s=a.length;r=0;)r[t]=t;return r}function _7(e,t){return e[t]}function T7(e){const t=[];return t.key=e,t}function C7(){var e=ze([]),t=By,r=Fs,n=_7;function i(a){var o=Array.from(e.apply(this,arguments),T7),s,l=o.length,u=-1,f;for(const d of a)for(s=0,++u;s0){for(var r,n,i=0,a=e[0].length,o;i0){for(var r=0,n=e[t[0]],i,a=n.length;r0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function B7(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var FT={symbolCircle:$b,symbolCross:l7,symbolDiamond:c7,symbolSquare:f7,symbolStar:m7,symbolTriangle:g7,symbolWye:y7},U7=Math.PI/180,W7=function(t){var r="symbol".concat(Xp(t));return FT[r]||$b},K7=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*U7;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},q7=function(t,r){FT["symbol".concat(Xp(t))]=r},em=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,s=o===void 0?"area":o,l=z7(t,D7),u=aj(aj({},l),{},{type:n,size:a,sizeType:s}),f=function(){var v=W7(n),y=x7().type(v).size(K7(a,s,n));return y()},d=u.className,h=u.cx,p=u.cy,g=ne(u,!0);return h===+h&&p===+p&&a===+a?$.createElement("path",Uy({},g,{className:fe("recharts-symbols",d),transform:"translate(".concat(h,", ").concat(p,")"),d:f()})):null};em.registerSymbol=q7;function zs(e){"@babel/helpers - typeof";return zs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zs(e)}function Wy(){return Wy=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var x=p.inactive?u:p.color;return $.createElement("li",Wy({className:v,style:d,key:"legend-item-".concat(g)},ma(n.props,p,g)),$.createElement(My,{width:o,height:o,viewBox:f,style:h},n.renderIcon(p)),$.createElement("span",{className:"recharts-legend-item-text",style:{color:x}},m?m(y,p,g):y))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var s={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return $.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(N.PureComponent);ec(Mb,"displayName","Legend");ec(Mb,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var t9=Rp;function r9(){this.__data__=new t9,this.size=0}var n9=r9;function i9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var a9=i9;function o9(e){return this.__data__.get(e)}var s9=o9;function l9(e){return this.__data__.has(e)}var u9=l9,c9=Rp,f9=Sb,d9=jb,h9=200;function p9(e,t){var r=this.__data__;if(r instanceof c9){var n=r.__data__;if(!f9||n.lengths))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var d=-1,h=!0,p=r&D9?new C9:void 0;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=zK}var Lb=BK,UK=Si,WK=Lb,KK=ji,qK="[object Arguments]",HK="[object Array]",VK="[object Boolean]",GK="[object Date]",YK="[object Error]",XK="[object Function]",QK="[object Map]",JK="[object Number]",ZK="[object Object]",eq="[object RegExp]",tq="[object Set]",rq="[object String]",nq="[object WeakMap]",iq="[object ArrayBuffer]",aq="[object DataView]",oq="[object Float32Array]",sq="[object Float64Array]",lq="[object Int8Array]",uq="[object Int16Array]",cq="[object Int32Array]",fq="[object Uint8Array]",dq="[object Uint8ClampedArray]",hq="[object Uint16Array]",pq="[object Uint32Array]",Ke={};Ke[oq]=Ke[sq]=Ke[lq]=Ke[uq]=Ke[cq]=Ke[fq]=Ke[dq]=Ke[hq]=Ke[pq]=!0;Ke[qK]=Ke[HK]=Ke[iq]=Ke[VK]=Ke[aq]=Ke[GK]=Ke[YK]=Ke[XK]=Ke[QK]=Ke[JK]=Ke[ZK]=Ke[eq]=Ke[tq]=Ke[rq]=Ke[nq]=!1;function mq(e){return KK(e)&&WK(e.length)&&!!Ke[UK(e)]}var gq=mq;function vq(e){return function(t){return e(t)}}var XT=vq,ph={exports:{}};ph.exports;(function(e,t){var r=iT,n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||o&&o.binding&&o.binding("util")}catch{}}();e.exports=s})(ph,ph.exports);var yq=ph.exports,xq=gq,bq=XT,dj=yq,hj=dj&&dj.isTypedArray,wq=hj?bq(hj):xq,QT=wq,Sq=NK,jq=Db,Oq=vr,Nq=YT,Pq=Rb,Aq=QT,Eq=Object.prototype,kq=Eq.hasOwnProperty;function _q(e,t){var r=Oq(e),n=!r&&jq(e),i=!r&&!n&&Nq(e),a=!r&&!n&&!i&&Aq(e),o=r||n||i||a,s=o?Sq(e.length,String):[],l=s.length;for(var u in e)(t||kq.call(e,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Pq(u,l)))&&s.push(u);return s}var Tq=_q,Cq=Object.prototype;function $q(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Cq;return e===r}var Mq=$q;function Iq(e,t){return function(r){return e(t(r))}}var JT=Iq,Dq=JT,Rq=Dq(Object.keys,Object),Lq=Rq,Fq=Mq,zq=Lq,Bq=Object.prototype,Uq=Bq.hasOwnProperty;function Wq(e){if(!Fq(e))return zq(e);var t=[];for(var r in Object(e))Uq.call(e,r)&&r!="constructor"&&t.push(r);return t}var Kq=Wq,qq=bb,Hq=Lb;function Vq(e){return e!=null&&Hq(e.length)&&!qq(e)}var af=Vq,Gq=Tq,Yq=Kq,Xq=af;function Qq(e){return Xq(e)?Gq(e):Yq(e)}var tm=Qq,Jq=hK,Zq=jK,eH=tm;function tH(e){return Jq(e,eH,Zq)}var rH=tH,pj=rH,nH=1,iH=Object.prototype,aH=iH.hasOwnProperty;function oH(e,t,r,n,i,a){var o=r&nH,s=pj(e),l=s.length,u=pj(t),f=u.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=s[d];if(!(o?h in t:aH.call(t,h)))return!1}var p=a.get(e),g=a.get(t);if(p&&g)return p==t&&g==e;var m=!0;a.set(e,t),a.set(t,e);for(var v=o;++d-1}var iG=nG;function aG(e,t,r){for(var n=-1,i=e==null?0:e.length;++n=bG){var u=t?null:yG(e);if(u)return xG(u);o=!1,i=vG,l=new pG}else l=t?[]:s;e:for(;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function DG(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function RG(e){return e.value}function LG(e,t){if($.isValidElement(e))return $.cloneElement(e,t);if(typeof e=="function")return $.createElement(e,t);t.ref;var r=IG(t,AG);return $.createElement(Mb,r)}var _j=1,nr=function(e){function t(){var r;EG(this,t);for(var n=arguments.length,i=new Array(n),a=0;a_j||Math.abs(i.height-this.lastBoundingBox.height)>_j)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Wn({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,s=i.verticalAlign,l=i.margin,u=i.chartWidth,f=i.chartHeight,d,h;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var p=this.getBBoxSnapshot();d={left:((u||0)-p.width)/2}}else d=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(s==="middle"){var g=this.getBBoxSnapshot();h={top:((f||0)-g.height)/2}}else h=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return Wn(Wn({},d),h)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,s=i.height,l=i.wrapperStyle,u=i.payloadUniqBy,f=i.payload,d=Wn(Wn({position:"absolute",width:o||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return $.createElement("div",{className:"recharts-legend-wrapper",style:d,ref:function(p){n.wrapperNode=p}},LG(a,Wn(Wn({},this.props),{},{payload:aC(f,u,RG)})))}}],[{key:"getWithHeight",value:function(n,i){var a=Wn(Wn({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&G(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])}(N.PureComponent);rm(nr,"displayName","Legend");rm(nr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Tj=rf,FG=Db,zG=vr,Cj=Tj?Tj.isConcatSpreadable:void 0;function BG(e){return zG(e)||FG(e)||!!(Cj&&e&&e[Cj])}var UG=BG,WG=VT,KG=UG;function lC(e,t,r,n,i){var a=-1,o=e.length;for(r||(r=KG),i||(i=[]);++a0&&r(s)?t>1?lC(s,t-1,r,n,i):WG(i,s):n||(i[i.length]=s)}return i}var uC=lC;function qG(e){return function(t,r,n){for(var i=-1,a=Object(t),o=n(t),s=o.length;s--;){var l=o[e?s:++i];if(r(a[l],l,a)===!1)break}return t}}var HG=qG,VG=HG,GG=VG(),YG=GG,XG=YG,QG=tm;function JG(e,t){return e&&XG(e,t,QG)}var cC=JG,ZG=af;function eY(e,t){return function(r,n){if(r==null)return r;if(!ZG(r))return e(r,n);for(var i=r.length,a=t?i:-1,o=Object(r);(t?a--:++at||a&&o&&l&&!s&&!u||n&&o&&l||!r&&l||!i)return 1;if(!n&&!a&&!u&&e=s)return l;var u=r[n];return l*(u=="desc"?-1:1)}}return e.index-t.index}var pY=hY,Ag=Nb,mY=Pb,gY=Bn,vY=fC,yY=uY,xY=XT,bY=pY,wY=El,SY=vr;function jY(e,t,r){t.length?t=Ag(t,function(a){return SY(a)?function(o){return mY(o,a.length===1?a[0]:a)}:a}):t=[wY];var n=-1;t=Ag(t,xY(gY));var i=vY(e,function(a,o,s){var l=Ag(t,function(u){return u(a)});return{criteria:l,index:++n,value:a}});return yY(i,function(a,o){return bY(a,o,r)})}var OY=jY;function NY(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var PY=NY,AY=PY,Mj=Math.max;function EY(e,t,r){return t=Mj(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=Mj(n.length-t,0),o=Array(a);++i0){if(++t>=LY)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var UY=BY,WY=RY,KY=UY,qY=KY(WY),HY=qY,VY=El,GY=kY,YY=HY;function XY(e,t){return YY(GY(e,t,VY),e+"")}var QY=XY,JY=wb,ZY=af,eX=Rb,tX=xa;function rX(e,t,r){if(!tX(r))return!1;var n=typeof t;return(n=="number"?ZY(r)&&eX(t,r.length):n=="string"&&t in r)?JY(r[t],e):!1}var nm=rX,nX=uC,iX=OY,aX=QY,Dj=nm,oX=aX(function(e,t){if(e==null)return[];var r=t.length;return r>1&&Dj(e,t[0],t[1])?t=[]:r>2&&Dj(t[0],t[1],t[2])&&(t=[t[0]]),iX(e,nX(t,1),[])}),sX=oX;const Bb=_e(sX);function tc(e){"@babel/helpers - typeof";return tc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tc(e)}function Qy(){return Qy=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t.x),"".concat(Ql,"-left"),G(r)&&t&&G(t.x)&&r=t.y),"".concat(Ql,"-top"),G(n)&&t&&G(t.y)&&nm?Math.max(f,l[n]):Math.max(d,l[n])}function SX(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function jX(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,f,d;return o.height>0&&o.width>0&&r?(f=Fj({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:l,viewBoxDimension:l.width}),d=Fj({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:l,viewBoxDimension:l.height}),u=SX({translateX:f,translateY:d,useTranslate3d:s})):u=bX,{cssProperties:u,cssClasses:wX({translateX:f,translateY:d,coordinate:r})}}function Us(e){"@babel/helpers - typeof";return Us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Us(e)}function zj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Bj(e){for(var t=1;tUj||Math.abs(n.height-this.state.lastBoundingBox.height)>Uj)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,s=i.animationDuration,l=i.animationEasing,u=i.children,f=i.coordinate,d=i.hasPayload,h=i.isAnimationActive,p=i.offset,g=i.position,m=i.reverseDirection,v=i.useTranslate3d,y=i.viewBox,x=i.wrapperStyle,b=jX({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:p,position:g,reverseDirection:m,tooltipBox:this.state.lastBoundingBox,useTranslate3d:v,viewBox:y}),S=b.cssClasses,w=b.cssProperties,O=Bj(Bj({transition:h&&a?"transform ".concat(s,"ms ").concat(l):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&d?"visible":"hidden",position:"absolute",top:0,left:0},x);return $.createElement("div",{tabIndex:-1,className:S,style:O,ref:function(P){n.wrapperNode=P}},u)}}])}(N.PureComponent),$X=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},ba={isSsr:$X()};function Ws(e){"@babel/helpers - typeof";return Ws=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ws(e)}function Wj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Kj(e){for(var t=1;t0;return $.createElement(CX,{allowEscapeViewBox:o,animationDuration:s,animationEasing:l,isAnimationActive:h,active:a,coordinate:f,hasPayload:O,offset:p,position:v,reverseDirection:y,useTranslate3d:x,viewBox:b,wrapperStyle:S},WX(u,Kj(Kj({},this.props),{},{payload:w})))}}])}(N.PureComponent);Ub(st,"displayName","Tooltip");Ub(st,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!ba.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var KX=zn,qX=function(){return KX.Date.now()},HX=qX,VX=/\s/;function GX(e){for(var t=e.length;t--&&VX.test(e.charAt(t)););return t}var YX=GX,XX=YX,QX=/^\s+/;function JX(e){return e&&e.slice(0,XX(e)+1).replace(QX,"")}var ZX=JX,eQ=ZX,qj=xa,tQ=wl,Hj=NaN,rQ=/^[-+]0x[0-9a-f]+$/i,nQ=/^0b[01]+$/i,iQ=/^0o[0-7]+$/i,aQ=parseInt;function oQ(e){if(typeof e=="number")return e;if(tQ(e))return Hj;if(qj(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=qj(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=eQ(e);var r=nQ.test(e);return r||iQ.test(e)?aQ(e.slice(2),r?2:8):rQ.test(e)?Hj:+e}var vC=oQ,sQ=xa,kg=HX,Vj=vC,lQ="Expected a function",uQ=Math.max,cQ=Math.min;function fQ(e,t,r){var n,i,a,o,s,l,u=0,f=!1,d=!1,h=!0;if(typeof e!="function")throw new TypeError(lQ);t=Vj(t)||0,sQ(r)&&(f=!!r.leading,d="maxWait"in r,a=d?uQ(Vj(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h);function p(O){var j=n,P=i;return n=i=void 0,u=O,o=e.apply(P,j),o}function g(O){return u=O,s=setTimeout(y,t),f?p(O):o}function m(O){var j=O-l,P=O-u,A=t-j;return d?cQ(A,a-P):A}function v(O){var j=O-l,P=O-u;return l===void 0||j>=t||j<0||d&&P>=a}function y(){var O=kg();if(v(O))return x(O);s=setTimeout(y,m(O))}function x(O){return s=void 0,h&&n?p(O):(n=i=void 0,o)}function b(){s!==void 0&&clearTimeout(s),u=0,n=l=i=s=void 0}function S(){return s===void 0?o:x(kg())}function w(){var O=kg(),j=v(O);if(n=arguments,i=this,l=O,j){if(s===void 0)return g(l);if(d)return clearTimeout(s),s=setTimeout(y,t),p(l)}return s===void 0&&(s=setTimeout(y,t)),o}return w.cancel=b,w.flush=S,w}var dQ=fQ,hQ=dQ,pQ=xa,mQ="Expected a function";function gQ(e,t,r){var n=!0,i=!0;if(typeof e!="function")throw new TypeError(mQ);return pQ(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),hQ(e,t,{leading:n,maxWait:t,trailing:i})}var vQ=gQ;const yC=_e(vQ);function nc(e){"@babel/helpers - typeof";return nc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nc(e)}function Gj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Uf(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(D=yC(D,m,{trailing:!0,leading:!1}));var F=new ResizeObserver(D),M=w.current.getBoundingClientRect(),C=M.width,R=M.height;return E(C,R),F.observe(w.current),function(){F.disconnect()}},[E,m]);var k=N.useMemo(function(){var D=A.containerWidth,F=A.containerHeight;if(D<0||F<0)return null;dn(Wa(o)||Wa(l),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,o,l),dn(!r||r>0,"The aspect(%s) must be greater than zero.",r);var M=Wa(o)?D:o,C=Wa(l)?F:l;r&&r>0&&(M?C=M/r:C&&(M=C*r),h&&C>h&&(C=h)),dn(M>0||C>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,M,C,o,l,f,d,r);var R=!Array.isArray(p)&&ii(p.type).endsWith("Chart");return $.Children.map(p,function(T){return $.isValidElement(T)?N.cloneElement(T,Uf({width:M,height:C},R?{style:Uf({height:"100%",width:"100%",maxHeight:C,maxWidth:M},T.props.style)}:{})):T})},[r,p,l,h,d,f,A,o]);return $.createElement("div",{id:v?"".concat(v):void 0,className:fe("recharts-responsive-container",y),style:Uf(Uf({},S),{},{width:o,height:l,minWidth:f,minHeight:d,maxHeight:h}),ref:w},k)}),Oi=function(t){return null};Oi.displayName="Cell";function ic(e){"@babel/helpers - typeof";return ic=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ic(e)}function Xj(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function t0(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||ba.isSsr)return{width:0,height:0};var n=TQ(r),i=JSON.stringify({text:t,copyStyle:n});if(Lo.widthCache[i])return Lo.widthCache[i];try{var a=document.getElementById(Qj);a||(a=document.createElement("span"),a.setAttribute("id",Qj),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=t0(t0({},_Q),n);Object.assign(a.style,o),a.textContent="".concat(t);var s=a.getBoundingClientRect(),l={width:s.width,height:s.height};return Lo.widthCache[i]=l,++Lo.cacheCount>kQ&&(Lo.cacheCount=0,Lo.widthCache={}),l}catch{return{width:0,height:0}}},CQ=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function ac(e){"@babel/helpers - typeof";return ac=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ac(e)}function yh(e,t){return DQ(e)||IQ(e,t)||MQ(e,t)||$Q()}function $Q(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function MQ(e,t){if(e){if(typeof e=="string")return Jj(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jj(e,t)}}function Jj(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function XQ(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function iO(e,t){return eJ(e)||ZQ(e,t)||JQ(e,t)||QQ()}function QQ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function JQ(e,t){if(e){if(typeof e=="string")return aO(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return aO(e,t)}}function aO(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[];return M.reduce(function(C,R){var T=R.word,z=R.width,W=C[C.length-1];if(W&&(i==null||a||W.width+z+nR.width?C:R})};if(!f)return p;for(var m="…",v=function(M){var C=d.slice(0,M),R=SC({breakAll:u,style:l,children:C+m}).wordsWithComputedWidth,T=h(R),z=T.length>o||g(T).width>Number(i);return[z,T]},y=0,x=d.length-1,b=0,S;y<=x&&b<=d.length-1;){var w=Math.floor((y+x)/2),O=w-1,j=v(O),P=iO(j,2),A=P[0],_=P[1],E=v(w),k=iO(E,1),D=k[0];if(!A&&!D&&(y=w+1),A&&D&&(x=w-1),!A&&D){S=_;break}b++}return S||p},oO=function(t){var r=se(t)?[]:t.toString().split(wC);return[{words:r}]},rJ=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,s=t.maxLines;if((r||n)&&!ba.isSsr){var l,u,f=SC({breakAll:o,children:i,style:a});if(f){var d=f.wordsWithComputedWidth,h=f.spaceWidth;l=d,u=h}else return oO(i);return tJ({breakAll:o,children:i,maxLines:s,style:a},l,u,r,n)}return oO(i)},sO="#808080",xo=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,s=o===void 0?"1em":o,l=t.capHeight,u=l===void 0?"0.71em":l,f=t.scaleToFit,d=f===void 0?!1:f,h=t.textAnchor,p=h===void 0?"start":h,g=t.verticalAnchor,m=g===void 0?"end":g,v=t.fill,y=v===void 0?sO:v,x=nO(t,GQ),b=N.useMemo(function(){return rJ({breakAll:x.breakAll,children:x.children,maxLines:x.maxLines,scaleToFit:d,style:x.style,width:x.width})},[x.breakAll,x.children,x.maxLines,d,x.style,x.width]),S=x.dx,w=x.dy,O=x.angle,j=x.className,P=x.breakAll,A=nO(x,YQ);if(!Ot(n)||!Ot(a))return null;var _=n+(G(S)?S:0),E=a+(G(w)?w:0),k;switch(m){case"start":k=_g("calc(".concat(u,")"));break;case"middle":k=_g("calc(".concat((b.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:k=_g("calc(".concat(b.length-1," * -").concat(s,")"));break}var D=[];if(d){var F=b[0].width,M=x.width;D.push("scale(".concat((G(M)?M/F:1)/F,")"))}return O&&D.push("rotate(".concat(O,", ").concat(_,", ").concat(E,")")),D.length&&(A.transform=D.join(" ")),$.createElement("text",r0({},ne(A,!0),{x:_,y:E,className:fe("recharts-text",j),textAnchor:p,fill:y.includes("url")?sO:y}),b.map(function(C,R){var T=C.words.join(P?"":" ");return $.createElement("tspan",{x:_,dy:R===0?k:s,key:"".concat(T,"-").concat(R)},T)}))};function fa(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function nJ(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Wb(e){let t,r,n;e.length!==2?(t=fa,r=(s,l)=>fa(e(s),l),n=(s,l)=>e(s)-l):(t=e===fa||e===nJ?e:iJ,r=e,n=e);function i(s,l,u=0,f=s.length){if(u>>1;r(s[d],l)<0?u=d+1:f=d}while(u>>1;r(s[d],l)<=0?u=d+1:f=d}while(uu&&n(s[d-1],l)>-n(s[d],l)?d-1:d}return{left:i,center:o,right:a}}function iJ(){return 0}function jC(e){return e===null?NaN:+e}function*aJ(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const oJ=Wb(fa),of=oJ.right;Wb(jC).center;class lO extends Map{constructor(t,r=uJ){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(uO(this,t))}has(t){return super.has(uO(this,t))}set(t,r){return super.set(sJ(this,t),r)}delete(t){return super.delete(lJ(this,t))}}function uO({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function sJ({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function lJ({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function uJ(e){return e!==null&&typeof e=="object"?e.valueOf():e}function cJ(e=fa){if(e===fa)return OC;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function OC(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const fJ=Math.sqrt(50),dJ=Math.sqrt(10),hJ=Math.sqrt(2);function xh(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=fJ?10:a>=dJ?5:a>=hJ?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if(e===t)return[e];const n=t=i))return[];const s=a-i+1,l=new Array(s);if(n)if(o<0)for(let u=0;u=n)&&(r=n);return r}function fO(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function NC(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?OC:cJ(i);n>r;){if(n-r>600){const l=n-r+1,u=t-r+1,f=Math.log(l),d=.5*Math.exp(2*f/3),h=.5*Math.sqrt(f*d*(l-d)/l)*(u-l/2<0?-1:1),p=Math.max(r,Math.floor(t-u*d/l+h)),g=Math.min(n,Math.floor(t+(l-u)*d/l+h));NC(e,t,p,g,i)}const a=e[t];let o=r,s=n;for(Jl(e,r,t),i(e[n],a)>0&&Jl(e,r,n);o0;)--s}i(e[r],a)===0?Jl(e,r,s):(++s,Jl(e,s,n)),s<=t&&(r=s+1),t<=s&&(n=s-1)}return e}function Jl(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function pJ(e,t,r){if(e=Float64Array.from(aJ(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return fO(e);if(t>=1)return cO(e);var n,i=(n-1)*t,a=Math.floor(i),o=cO(NC(e,a).subarray(0,a+1)),s=fO(e.subarray(a+1));return o+(s-o)*(i-a)}}function mJ(e,t,r=jC){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),s=+r(e[a+1],a+1,e);return o+(s-o)*(i-a)}}function gJ(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Kf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Kf(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=yJ.exec(e))?new fr(t[1],t[2],t[3],1):(t=xJ.exec(e))?new fr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bJ.exec(e))?Kf(t[1],t[2],t[3],t[4]):(t=wJ.exec(e))?Kf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=SJ.exec(e))?yO(t[1],t[2]/100,t[3]/100,1):(t=jJ.exec(e))?yO(t[1],t[2]/100,t[3]/100,t[4]):dO.hasOwnProperty(e)?mO(dO[e]):e==="transparent"?new fr(NaN,NaN,NaN,0):null}function mO(e){return new fr(e>>16&255,e>>8&255,e&255,1)}function Kf(e,t,r,n){return n<=0&&(e=t=r=NaN),new fr(e,t,r,n)}function PJ(e){return e instanceof sf||(e=uc(e)),e?(e=e.rgb(),new fr(e.r,e.g,e.b,e.opacity)):new fr}function s0(e,t,r,n){return arguments.length===1?PJ(e):new fr(e,t,r,n??1)}function fr(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}qb(fr,s0,AC(sf,{brighter(e){return e=e==null?bh:Math.pow(bh,e),new fr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sc:Math.pow(sc,e),new fr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new fr(oo(this.r),oo(this.g),oo(this.b),wh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:gO,formatHex:gO,formatHex8:AJ,formatRgb:vO,toString:vO}));function gO(){return`#${Ka(this.r)}${Ka(this.g)}${Ka(this.b)}`}function AJ(){return`#${Ka(this.r)}${Ka(this.g)}${Ka(this.b)}${Ka((isNaN(this.opacity)?1:this.opacity)*255)}`}function vO(){const e=wh(this.opacity);return`${e===1?"rgb(":"rgba("}${oo(this.r)}, ${oo(this.g)}, ${oo(this.b)}${e===1?")":`, ${e})`}`}function wh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function oo(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ka(e){return e=oo(e),(e<16?"0":"")+e.toString(16)}function yO(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new ln(e,t,r,n)}function EC(e){if(e instanceof ln)return new ln(e.h,e.s,e.l,e.opacity);if(e instanceof sf||(e=uc(e)),!e)return new ln;if(e instanceof ln)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(r-n)/s+(r0&&l<1?0:o,new ln(o,s,l,e.opacity)}function EJ(e,t,r,n){return arguments.length===1?EC(e):new ln(e,t,r,n??1)}function ln(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}qb(ln,EJ,AC(sf,{brighter(e){return e=e==null?bh:Math.pow(bh,e),new ln(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sc:Math.pow(sc,e),new ln(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new fr(Tg(e>=240?e-240:e+120,i,n),Tg(e,i,n),Tg(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new ln(xO(this.h),qf(this.s),qf(this.l),wh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wh(this.opacity);return`${e===1?"hsl(":"hsla("}${xO(this.h)}, ${qf(this.s)*100}%, ${qf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xO(e){return e=(e||0)%360,e<0?e+360:e}function qf(e){return Math.max(0,Math.min(1,e||0))}function Tg(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const Hb=e=>()=>e;function kJ(e,t){return function(r){return e+r*t}}function _J(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function TJ(e){return(e=+e)==1?kC:function(t,r){return r-t?_J(t,r,e):Hb(isNaN(t)?r:t)}}function kC(e,t){var r=t-e;return r?kJ(e,r):Hb(isNaN(e)?t:e)}const bO=function e(t){var r=TJ(t);function n(i,a){var o=r((i=s0(i)).r,(a=s0(a)).r),s=r(i.g,a.g),l=r(i.b,a.b),u=kC(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=s(f),i.b=l(f),i.opacity=u(f),i+""}}return n.gamma=e,n}(1);function CJ(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;ir&&(a=t.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:Sh(n,i)})),r=Cg.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function WJ(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i2?KJ:WJ,l=u=null,d}function d(h){return h==null||isNaN(h=+h)?a:(l||(l=s(e.map(n),t,r)))(n(o(h)))}return d.invert=function(h){return o(i((u||(u=s(t,e.map(n),Sh)))(h)))},d.domain=function(h){return arguments.length?(e=Array.from(h,jh),f()):e.slice()},d.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},d.rangeRound=function(h){return t=Array.from(h),r=Vb,f()},d.clamp=function(h){return arguments.length?(o=h?!0:er,f()):o!==er},d.interpolate=function(h){return arguments.length?(r=h,f()):r},d.unknown=function(h){return arguments.length?(a=h,d):a},function(h,p){return n=h,i=p,f()}}function Gb(){return im()(er,er)}function qJ(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Oh(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Ks(e){return e=Oh(Math.abs(e)),e?e[1]:NaN}function HJ(e,t){return function(r,n){for(var i=r.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(r.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function VJ(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var GJ=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cc(e){if(!(t=GJ.exec(e)))throw new Error("invalid format: "+e);var t;return new Yb({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}cc.prototype=Yb.prototype;function Yb(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Yb.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function YJ(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var _C;function XJ(e,t){var r=Oh(e,t);if(!r)return e+"";var n=r[0],i=r[1],a=i-(_C=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Oh(e,Math.max(0,t+a-1))[0]}function SO(e,t){var r=Oh(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const jO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:qJ,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>SO(e*100,t),r:SO,s:XJ,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function OO(e){return e}var NO=Array.prototype.map,PO=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function QJ(e){var t=e.grouping===void 0||e.thousands===void 0?OO:HJ(NO.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?OO:VJ(NO.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(d){d=cc(d);var h=d.fill,p=d.align,g=d.sign,m=d.symbol,v=d.zero,y=d.width,x=d.comma,b=d.precision,S=d.trim,w=d.type;w==="n"?(x=!0,w="g"):jO[w]||(b===void 0&&(b=12),S=!0,w="g"),(v||h==="0"&&p==="=")&&(v=!0,h="0",p="=");var O=m==="$"?r:m==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",j=m==="$"?n:/[%p]/.test(w)?o:"",P=jO[w],A=/[defgprs%]/.test(w);b=b===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b));function _(E){var k=O,D=j,F,M,C;if(w==="c")D=P(E)+D,E="";else{E=+E;var R=E<0||1/E<0;if(E=isNaN(E)?l:P(Math.abs(E),b),S&&(E=YJ(E)),R&&+E==0&&g!=="+"&&(R=!1),k=(R?g==="("?g:s:g==="-"||g==="("?"":g)+k,D=(w==="s"?PO[8+_C/3]:"")+D+(R&&g==="("?")":""),A){for(F=-1,M=E.length;++FC||C>57){D=(C===46?i+E.slice(F+1):E.slice(F))+D,E=E.slice(0,F);break}}}x&&!v&&(E=t(E,1/0));var T=k.length+E.length+D.length,z=T>1)+k+E+D+z.slice(T);break;default:E=z+k+E+D;break}return a(E)}return _.toString=function(){return d+""},_}function f(d,h){var p=u((d=cc(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(Ks(h)/3)))*3,m=Math.pow(10,-g),v=PO[8+g/3];return function(y){return p(m*y)+v}}return{format:u,formatPrefix:f}}var Hf,Xb,TC;JJ({thousands:",",grouping:[3],currency:["$",""]});function JJ(e){return Hf=QJ(e),Xb=Hf.format,TC=Hf.formatPrefix,Hf}function ZJ(e){return Math.max(0,-Ks(Math.abs(e)))}function eZ(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ks(t)/3)))*3-Ks(Math.abs(e)))}function tZ(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ks(t)-Ks(e))+1}function CC(e,t,r,n){var i=a0(e,t,r),a;switch(n=cc(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=eZ(i,o))&&(n.precision=a),TC(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=tZ(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=ZJ(i))&&(n.precision=a-(n.type==="%")*2);break}}return Xb(n)}function wa(e){var t=e.domain;return e.ticks=function(r){var n=t();return n0(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return CC(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],s=n[a],l,u,f=10;for(s0;){if(u=i0(o,s,r),u===l)return n[i]=o,n[a]=s,t(n);if(u>0)o=Math.floor(o/u)*u,s=Math.ceil(s/u)*u;else if(u<0)o=Math.ceil(o*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Nh(){var e=Gb();return e.copy=function(){return lf(e,Nh())},Qr.apply(e,arguments),wa(e)}function $C(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,jh),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return $C(e).unknown(t)},e=arguments.length?Array.from(e,jh):[0,1],wa(r)}function MC(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return aMath.pow(e,t)}function oZ(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function kO(e){return(t,r)=>-e(-t,r)}function Qb(e){const t=e(AO,EO),r=t.domain;let n=10,i,a;function o(){return i=oZ(n),a=aZ(n),r()[0]<0?(i=kO(i),a=kO(a),e(rZ,nZ)):e(AO,EO),t}return t.base=function(s){return arguments.length?(n=+s,o()):n},t.domain=function(s){return arguments.length?(r(s),o()):r()},t.ticks=s=>{const l=r();let u=l[0],f=l[l.length-1];const d=f0){for(;h<=p;++h)for(g=1;gf)break;y.push(m)}}else for(;h<=p;++h)for(g=n-1;g>=1;--g)if(m=h>0?g/a(-h):g*a(h),!(mf)break;y.push(m)}y.length*2{if(s==null&&(s=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=cc(l)).precision==null&&(l.trim=!0),l=Xb(l)),s===1/0)return l;const u=Math.max(1,n*s/t.ticks().length);return f=>{let d=f/a(Math.round(i(f)));return d*nr(MC(r(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),t}function IC(){const e=Qb(im()).domain([1,10]);return e.copy=()=>lf(e,IC()).base(e.base()),Qr.apply(e,arguments),e}function _O(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function TO(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Jb(e){var t=1,r=e(_O(t),TO(t));return r.constant=function(n){return arguments.length?e(_O(t=+n),TO(t)):t},wa(r)}function DC(){var e=Jb(im());return e.copy=function(){return lf(e,DC()).constant(e.constant())},Qr.apply(e,arguments)}function CO(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function sZ(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function lZ(e){return e<0?-e*e:e*e}function Zb(e){var t=e(er,er),r=1;function n(){return r===1?e(er,er):r===.5?e(sZ,lZ):e(CO(r),CO(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},wa(t)}function ew(){var e=Zb(im());return e.copy=function(){return lf(e,ew()).exponent(e.exponent())},Qr.apply(e,arguments),e}function uZ(){return ew.apply(null,arguments).exponent(.5)}function $O(e){return Math.sign(e)*e*e}function cZ(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function RC(){var e=Gb(),t=[0,1],r=!1,n;function i(a){var o=cZ(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert($O(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,jh)).map($O)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return RC(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Qr.apply(i,arguments),wa(i)}function LC(){var e=[],t=[],r=[],n;function i(){var o=0,s=Math.max(1,t.length);for(r=new Array(s-1);++o0?r[s-1]:e[0],s=r?[n[r-1],t]:[n[u-1],n[u]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return n.slice()},o.copy=function(){return FC().domain([e,t]).range(i).unknown(a)},Qr.apply(wa(o),arguments)}function zC(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[of(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return zC().domain(e).range(t).unknown(r)},Qr.apply(i,arguments)}const $g=new Date,Mg=new Date;function Pt(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),s=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,s)=>{const l=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a0))return l;let u;do l.push(u=new Date(+a)),t(a,s),e(a);while(uPt(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,s)=>{if(o>=o)if(s<0)for(;++s<=0;)for(;t(o,-1),!a(o););else for(;--s>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>($g.setTime(+a),Mg.setTime(+o),e($g),e(Mg),Math.floor(r($g,Mg))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Ph=Pt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ph.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Pt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Ph);Ph.range;const ei=1e3,qr=ei*60,ti=qr*60,pi=ti*24,tw=pi*7,MO=pi*30,Ig=pi*365,qa=Pt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ei)},(e,t)=>(t-e)/ei,e=>e.getUTCSeconds());qa.range;const rw=Pt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ei)},(e,t)=>{e.setTime(+e+t*qr)},(e,t)=>(t-e)/qr,e=>e.getMinutes());rw.range;const nw=Pt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*qr)},(e,t)=>(t-e)/qr,e=>e.getUTCMinutes());nw.range;const iw=Pt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ei-e.getMinutes()*qr)},(e,t)=>{e.setTime(+e+t*ti)},(e,t)=>(t-e)/ti,e=>e.getHours());iw.range;const aw=Pt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*ti)},(e,t)=>(t-e)/ti,e=>e.getUTCHours());aw.range;const uf=Pt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*qr)/pi,e=>e.getDate()-1);uf.range;const am=Pt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pi,e=>e.getUTCDate()-1);am.range;const BC=Pt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pi,e=>Math.floor(e/pi));BC.range;function _o(e){return Pt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*qr)/tw)}const om=_o(0),Ah=_o(1),fZ=_o(2),dZ=_o(3),qs=_o(4),hZ=_o(5),pZ=_o(6);om.range;Ah.range;fZ.range;dZ.range;qs.range;hZ.range;pZ.range;function To(e){return Pt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/tw)}const sm=To(0),Eh=To(1),mZ=To(2),gZ=To(3),Hs=To(4),vZ=To(5),yZ=To(6);sm.range;Eh.range;mZ.range;gZ.range;Hs.range;vZ.range;yZ.range;const ow=Pt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());ow.range;const sw=Pt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());sw.range;const mi=Pt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());mi.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});mi.range;const gi=Pt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());gi.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});gi.range;function UC(e,t,r,n,i,a){const o=[[qa,1,ei],[qa,5,5*ei],[qa,15,15*ei],[qa,30,30*ei],[a,1,qr],[a,5,5*qr],[a,15,15*qr],[a,30,30*qr],[i,1,ti],[i,3,3*ti],[i,6,6*ti],[i,12,12*ti],[n,1,pi],[n,2,2*pi],[r,1,tw],[t,1,MO],[t,3,3*MO],[e,1,Ig]];function s(u,f,d){const h=fv).right(o,h);if(p===o.length)return e.every(a0(u/Ig,f/Ig,d));if(p===0)return Ph.every(Math.max(a0(u,f,d),1));const[g,m]=o[h/o[p-1][2]53)return null;"w"in K||(K.w=1),"Z"in K?(me=Rg(Zl(K.y,0,1)),Le=me.getUTCDay(),me=Le>4||Le===0?Eh.ceil(me):Eh(me),me=am.offset(me,(K.V-1)*7),K.y=me.getUTCFullYear(),K.m=me.getUTCMonth(),K.d=me.getUTCDate()+(K.w+6)%7):(me=Dg(Zl(K.y,0,1)),Le=me.getDay(),me=Le>4||Le===0?Ah.ceil(me):Ah(me),me=uf.offset(me,(K.V-1)*7),K.y=me.getFullYear(),K.m=me.getMonth(),K.d=me.getDate()+(K.w+6)%7)}else("W"in K||"U"in K)&&("w"in K||(K.w="u"in K?K.u%7:"W"in K?1:0),Le="Z"in K?Rg(Zl(K.y,0,1)).getUTCDay():Dg(Zl(K.y,0,1)).getDay(),K.m=0,K.d="W"in K?(K.w+6)%7+K.W*7-(Le+5)%7:K.w+K.U*7-(Le+6)%7);return"Z"in K?(K.H+=K.Z/100|0,K.M+=K.Z%100,Rg(K)):Dg(K)}}function P(X,ue,ce,K){for(var Ae=0,me=ue.length,Le=ce.length,ct,or;Ae=Le)return-1;if(ct=ue.charCodeAt(Ae++),ct===37){if(ct=ue.charAt(Ae++),or=w[ct in IO?ue.charAt(Ae++):ct],!or||(K=or(X,ce,K))<0)return-1}else if(ct!=ce.charCodeAt(K++))return-1}return K}function A(X,ue,ce){var K=u.exec(ue.slice(ce));return K?(X.p=f.get(K[0].toLowerCase()),ce+K[0].length):-1}function _(X,ue,ce){var K=p.exec(ue.slice(ce));return K?(X.w=g.get(K[0].toLowerCase()),ce+K[0].length):-1}function E(X,ue,ce){var K=d.exec(ue.slice(ce));return K?(X.w=h.get(K[0].toLowerCase()),ce+K[0].length):-1}function k(X,ue,ce){var K=y.exec(ue.slice(ce));return K?(X.m=x.get(K[0].toLowerCase()),ce+K[0].length):-1}function D(X,ue,ce){var K=m.exec(ue.slice(ce));return K?(X.m=v.get(K[0].toLowerCase()),ce+K[0].length):-1}function F(X,ue,ce){return P(X,t,ue,ce)}function M(X,ue,ce){return P(X,r,ue,ce)}function C(X,ue,ce){return P(X,n,ue,ce)}function R(X){return o[X.getDay()]}function T(X){return a[X.getDay()]}function z(X){return l[X.getMonth()]}function W(X){return s[X.getMonth()]}function H(X){return i[+(X.getHours()>=12)]}function q(X){return 1+~~(X.getMonth()/3)}function L(X){return o[X.getUTCDay()]}function Y(X){return a[X.getUTCDay()]}function ve(X){return l[X.getUTCMonth()]}function Ne(X){return s[X.getUTCMonth()]}function we(X){return i[+(X.getUTCHours()>=12)]}function dt(X){return 1+~~(X.getUTCMonth()/3)}return{format:function(X){var ue=O(X+="",b);return ue.toString=function(){return X},ue},parse:function(X){var ue=j(X+="",!1);return ue.toString=function(){return X},ue},utcFormat:function(X){var ue=O(X+="",S);return ue.toString=function(){return X},ue},utcParse:function(X){var ue=j(X+="",!0);return ue.toString=function(){return X},ue}}}var IO={"-":"",_:" ",0:"0"},$t=/^\s*\d+/,OZ=/^%/,NZ=/[\\^$*+?|[\]().{}]/g;function Pe(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function AZ(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function EZ(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function kZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function _Z(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function TZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function DO(e,t,r){var n=$t.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function RO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function CZ(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function $Z(e,t,r){var n=$t.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function MZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function LO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function IZ(e,t,r){var n=$t.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function FO(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function DZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function RZ(e,t,r){var n=$t.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function LZ(e,t,r){var n=$t.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function FZ(e,t,r){var n=$t.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function zZ(e,t,r){var n=OZ.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function BZ(e,t,r){var n=$t.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function UZ(e,t,r){var n=$t.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function zO(e,t){return Pe(e.getDate(),t,2)}function WZ(e,t){return Pe(e.getHours(),t,2)}function KZ(e,t){return Pe(e.getHours()%12||12,t,2)}function qZ(e,t){return Pe(1+uf.count(mi(e),e),t,3)}function WC(e,t){return Pe(e.getMilliseconds(),t,3)}function HZ(e,t){return WC(e,t)+"000"}function VZ(e,t){return Pe(e.getMonth()+1,t,2)}function GZ(e,t){return Pe(e.getMinutes(),t,2)}function YZ(e,t){return Pe(e.getSeconds(),t,2)}function XZ(e){var t=e.getDay();return t===0?7:t}function QZ(e,t){return Pe(om.count(mi(e)-1,e),t,2)}function KC(e){var t=e.getDay();return t>=4||t===0?qs(e):qs.ceil(e)}function JZ(e,t){return e=KC(e),Pe(qs.count(mi(e),e)+(mi(e).getDay()===4),t,2)}function ZZ(e){return e.getDay()}function eee(e,t){return Pe(Ah.count(mi(e)-1,e),t,2)}function tee(e,t){return Pe(e.getFullYear()%100,t,2)}function ree(e,t){return e=KC(e),Pe(e.getFullYear()%100,t,2)}function nee(e,t){return Pe(e.getFullYear()%1e4,t,4)}function iee(e,t){var r=e.getDay();return e=r>=4||r===0?qs(e):qs.ceil(e),Pe(e.getFullYear()%1e4,t,4)}function aee(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pe(t/60|0,"0",2)+Pe(t%60,"0",2)}function BO(e,t){return Pe(e.getUTCDate(),t,2)}function oee(e,t){return Pe(e.getUTCHours(),t,2)}function see(e,t){return Pe(e.getUTCHours()%12||12,t,2)}function lee(e,t){return Pe(1+am.count(gi(e),e),t,3)}function qC(e,t){return Pe(e.getUTCMilliseconds(),t,3)}function uee(e,t){return qC(e,t)+"000"}function cee(e,t){return Pe(e.getUTCMonth()+1,t,2)}function fee(e,t){return Pe(e.getUTCMinutes(),t,2)}function dee(e,t){return Pe(e.getUTCSeconds(),t,2)}function hee(e){var t=e.getUTCDay();return t===0?7:t}function pee(e,t){return Pe(sm.count(gi(e)-1,e),t,2)}function HC(e){var t=e.getUTCDay();return t>=4||t===0?Hs(e):Hs.ceil(e)}function mee(e,t){return e=HC(e),Pe(Hs.count(gi(e),e)+(gi(e).getUTCDay()===4),t,2)}function gee(e){return e.getUTCDay()}function vee(e,t){return Pe(Eh.count(gi(e)-1,e),t,2)}function yee(e,t){return Pe(e.getUTCFullYear()%100,t,2)}function xee(e,t){return e=HC(e),Pe(e.getUTCFullYear()%100,t,2)}function bee(e,t){return Pe(e.getUTCFullYear()%1e4,t,4)}function wee(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Hs(e):Hs.ceil(e),Pe(e.getUTCFullYear()%1e4,t,4)}function See(){return"+0000"}function UO(){return"%"}function WO(e){return+e}function KO(e){return Math.floor(+e/1e3)}var Fo,VC,GC;jee({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function jee(e){return Fo=jZ(e),VC=Fo.format,Fo.parse,GC=Fo.utcFormat,Fo.utcParse,Fo}function Oee(e){return new Date(e)}function Nee(e){return e instanceof Date?+e:+new Date(+e)}function lw(e,t,r,n,i,a,o,s,l,u){var f=Gb(),d=f.invert,h=f.domain,p=u(".%L"),g=u(":%S"),m=u("%I:%M"),v=u("%I %p"),y=u("%a %d"),x=u("%b %d"),b=u("%B"),S=u("%Y");function w(O){return(l(O)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>pJ(e,a/n))},r.copy=function(){return JC(t).domain(e)},Ni.apply(r,arguments)}function um(){var e=0,t=.5,r=1,n=1,i,a,o,s,l,u=er,f,d=!1,h;function p(m){return isNaN(m=+m)?h:(m=.5+((m=+f(m))-a)*(n*mt}var r2=Cee,$ee=cm,Mee=r2,Iee=El;function Dee(e){return e&&e.length?$ee(e,Iee,Mee):void 0}var Ree=Dee;const fm=_e(Ree);function Lee(e,t){return ee.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=ne.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};Z.decimalPlaces=Z.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*qe;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};Z.dividedBy=Z.div=function(e){return ai(this,new this.constructor(e))};Z.dividedToIntegerBy=Z.idiv=function(e){var t=this,r=t.constructor;return Re(ai(t,new r(e),0,1),r.precision)};Z.equals=Z.eq=function(e){return!this.cmp(e)};Z.exponent=function(){return gt(this)};Z.greaterThan=Z.gt=function(e){return this.cmp(e)>0};Z.greaterThanOrEqualTo=Z.gte=function(e){return this.cmp(e)>=0};Z.isInteger=Z.isint=function(){return this.e>this.d.length-2};Z.isNegative=Z.isneg=function(){return this.s<0};Z.isPositive=Z.ispos=function(){return this.s>0};Z.isZero=function(){return this.s===0};Z.lessThan=Z.lt=function(e){return this.cmp(e)<0};Z.lessThanOrEqualTo=Z.lte=function(e){return this.cmp(e)<1};Z.logarithm=Z.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(jr))throw Error(Yr+"NaN");if(r.s<1)throw Error(Yr+(r.s?"NaN":"-Infinity"));return r.eq(jr)?new n(0):(Xe=!1,t=ai(fc(r,a),fc(e,a),a),Xe=!0,Re(t,i))};Z.minus=Z.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?s2(t,e):a2(t,(e.s=-e.s,e))};Z.modulo=Z.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Yr+"NaN");return r.s?(Xe=!1,t=ai(r,e,0,1).times(e),Xe=!0,r.minus(t)):Re(new n(r),i)};Z.naturalExponential=Z.exp=function(){return o2(this)};Z.naturalLogarithm=Z.ln=function(){return fc(this)};Z.negated=Z.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Z.plus=Z.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?a2(t,e):s2(t,(e.s=-e.s,e))};Z.precision=Z.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(so+e);if(t=gt(i)+1,n=i.d.length-1,r=n*qe+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};Z.squareRoot=Z.sqrt=function(){var e,t,r,n,i,a,o,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(Yr+"NaN")}for(e=gt(s),Xe=!1,i=Math.sqrt(+s),i==0||i==1/0?(t=_n(s.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Cl((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new l(t)):n=new l(i.toString()),r=l.precision,i=o=r+3;;)if(a=n,n=a.plus(ai(s,a,o+2)).times(.5),_n(a.d).slice(0,o)===(t=_n(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(Re(a,r+1,0),a.times(a).eq(s)){n=a;break}}else if(t!="9999")break;o+=4}return Xe=!0,Re(n,r)};Z.times=Z.mul=function(e){var t,r,n,i,a,o,s,l,u,f=this,d=f.constructor,h=f.d,p=(e=new d(e)).d;if(!f.s||!e.s)return new d(0);for(e.s*=f.s,r=f.e+e.e,l=h.length,u=p.length,l=0;){for(t=0,i=l+n;i>n;)s=a[i]+p[n]*h[i-n-1]+t,a[i--]=s%kt|0,t=s/kt|0;a[i]=(a[i]+t)%kt|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,Xe?Re(e,d.precision):e};Z.toDecimalPlaces=Z.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(Ln(e,0,Tl),t===void 0?t=n.rounding:Ln(t,0,8),Re(r,e+gt(r)+1,t))};Z.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=bo(n,!0):(Ln(e,0,Tl),t===void 0?t=i.rounding:Ln(t,0,8),n=Re(new i(n),e+1,t),r=bo(n,!0,e+1)),r};Z.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?bo(i):(Ln(e,0,Tl),t===void 0?t=a.rounding:Ln(t,0,8),n=Re(new a(i),e+gt(i)+1,t),r=bo(n.abs(),!1,e+gt(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};Z.toInteger=Z.toint=function(){var e=this,t=e.constructor;return Re(new t(e),gt(e)+1,t.rounding)};Z.toNumber=function(){return+this};Z.toPower=Z.pow=function(e){var t,r,n,i,a,o,s=this,l=s.constructor,u=12,f=+(e=new l(e));if(!e.s)return new l(jr);if(s=new l(s),!s.s){if(e.s<1)throw Error(Yr+"Infinity");return s}if(s.eq(jr))return s;if(n=l.precision,e.eq(jr))return Re(s,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=s.s,o){if((r=f<0?-f:f)<=i2){for(i=new l(jr),t=Math.ceil(n/qe+4),Xe=!1;r%2&&(i=i.times(s),VO(i.d,t)),r=Cl(r/2),r!==0;)s=s.times(s),VO(s.d,t);return Xe=!0,e.s<0?new l(jr).div(i):Re(i,n)}}else if(a<0)throw Error(Yr+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,s.s=1,Xe=!1,i=e.times(fc(s,n+u)),Xe=!0,i=o2(i),i.s=a,i};Z.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=gt(i),n=bo(i,r<=a.toExpNeg||r>=a.toExpPos)):(Ln(e,1,Tl),t===void 0?t=a.rounding:Ln(t,0,8),i=Re(new a(i),e,t),r=gt(i),n=bo(i,e<=r||r<=a.toExpNeg,e)),n};Z.toSignificantDigits=Z.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(Ln(e,1,Tl),t===void 0?t=n.rounding:Ln(t,0,8)),Re(new n(r),e,t)};Z.toString=Z.valueOf=Z.val=Z.toJSON=Z[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gt(e),r=e.constructor;return bo(e,t<=r.toExpNeg||t>=r.toExpPos)};function a2(e,t){var r,n,i,a,o,s,l,u,f=e.constructor,d=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),Xe?Re(t,d):t;if(l=e.d,u=t.d,o=e.e,i=t.e,l=l.slice(),a=o-i,a){for(a<0?(n=l,a=-a,s=u.length):(n=u,i=o,s=l.length),o=Math.ceil(d/qe),s=o>s?o+1:s+1,a>s&&(a=s,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(s=l.length,a=u.length,s-a<0&&(a=s,n=u,u=l,l=n),r=0;a;)r=(l[--a]=l[a]+u[a]+r)/kt|0,l[a]%=kt;for(r&&(l.unshift(r),++i),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=i,Xe?Re(t,d):t}function Ln(e,t,r){if(e!==~~e||er)throw Error(so+e)}function _n(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(s=l=0;si[s]?1:-1;break}return l}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]1;)n.shift()}return function(n,i,a,o){var s,l,u,f,d,h,p,g,m,v,y,x,b,S,w,O,j,P,A=n.constructor,_=n.s==i.s?1:-1,E=n.d,k=i.d;if(!n.s)return new A(n);if(!i.s)throw Error(Yr+"Division by zero");for(l=n.e-i.e,j=k.length,w=E.length,p=new A(_),g=p.d=[],u=0;k[u]==(E[u]||0);)++u;if(k[u]>(E[u]||0)&&--l,a==null?x=a=A.precision:o?x=a+(gt(n)-gt(i))+1:x=a,x<0)return new A(0);if(x=x/qe+2|0,u=0,j==1)for(f=0,k=k[0],x++;(u1&&(k=e(k,f),E=e(E,f),j=k.length,w=E.length),S=j,m=E.slice(0,j),v=m.length;v=kt/2&&++O;do f=0,s=t(k,m,j,v),s<0?(y=m[0],j!=v&&(y=y*kt+(m[1]||0)),f=y/O|0,f>1?(f>=kt&&(f=kt-1),d=e(k,f),h=d.length,v=m.length,s=t(d,m,h,v),s==1&&(f--,r(d,j16)throw Error(fw+gt(e));if(!e.s)return new f(jr);for(Xe=!1,s=d,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),u+=5;for(n=Math.log(Da(2,u))/Math.LN10*2+5|0,s+=n,r=i=a=new f(jr),f.precision=s;;){if(i=Re(i.times(e),s),r=r.times(++l),o=a.plus(ai(i,r,s)),_n(o.d).slice(0,s)===_n(a.d).slice(0,s)){for(;u--;)a=Re(a.times(a),s);return f.precision=d,t==null?(Xe=!0,Re(a,d)):a}a=o}}function gt(e){for(var t=e.e*qe,r=e.d[0];r>=10;r/=10)t++;return t}function Lg(e,t,r){if(t>e.LN10.sd())throw Xe=!0,r&&(e.precision=r),Error(Yr+"LN10 precision limit exceeded");return Re(new e(e.LN10),t)}function Di(e){for(var t="";e--;)t+="0";return t}function fc(e,t){var r,n,i,a,o,s,l,u,f,d=1,h=10,p=e,g=p.d,m=p.constructor,v=m.precision;if(p.s<1)throw Error(Yr+(p.s?"NaN":"-Infinity"));if(p.eq(jr))return new m(0);if(t==null?(Xe=!1,u=v):u=t,p.eq(10))return t==null&&(Xe=!0),Lg(m,u);if(u+=h,m.precision=u,r=_n(g),n=r.charAt(0),a=gt(p),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)p=p.times(e),r=_n(p.d),n=r.charAt(0),d++;a=gt(p),n>1?(p=new m("0."+r),a++):p=new m(n+"."+r.slice(1))}else return l=Lg(m,u+2,v).times(a+""),p=fc(new m(n+"."+r.slice(1)),u-h).plus(l),m.precision=v,t==null?(Xe=!0,Re(p,v)):p;for(s=o=p=ai(p.minus(jr),p.plus(jr),u),f=Re(p.times(p),u),i=3;;){if(o=Re(o.times(f),u),l=s.plus(ai(o,new m(i),u)),_n(l.d).slice(0,u)===_n(s.d).slice(0,u))return s=s.times(2),a!==0&&(s=s.plus(Lg(m,u+2,v).times(a+""))),s=ai(s,new m(d),u),m.precision=v,t==null?(Xe=!0,Re(s,v)):s;s=l,i+=2}}function HO(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Cl(r/qe),e.d=[],n=(r+1)%qe,r<0&&(n+=qe),nkh||e.e<-kh))throw Error(fw+r)}else e.s=0,e.e=0,e.d=[0];return e}function Re(e,t,r){var n,i,a,o,s,l,u,f,d=e.d;for(o=1,a=d[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=qe,i=t,u=d[f=0];else{if(f=Math.ceil((n+1)/qe),a=d.length,f>=a)return e;for(u=a=d[f],o=1;a>=10;a/=10)o++;n%=qe,i=n-qe+o}if(r!==void 0&&(a=Da(10,o-i-1),s=u/a%10|0,l=t<0||d[f+1]!==void 0||u%a,l=r<4?(s||l)&&(r==0||r==(e.s<0?3:2)):s>5||s==5&&(r==4||l||r==6&&(n>0?i>0?u/Da(10,o-i):0:d[f-1])%10&1||r==(e.s<0?8:7))),t<1||!d[0])return l?(a=gt(e),d.length=1,t=t-a-1,d[0]=Da(10,(qe-t%qe)%qe),e.e=Cl(-t/qe)||0):(d.length=1,d[0]=e.e=e.s=0),e;if(n==0?(d.length=f,a=1,f--):(d.length=f+1,a=Da(10,qe-n),d[f]=i>0?(u/Da(10,o-i)%Da(10,i)|0)*a:0),l)for(;;)if(f==0){(d[0]+=a)==kt&&(d[0]=1,++e.e);break}else{if(d[f]+=a,d[f]!=kt)break;d[f--]=0,a=1}for(n=d.length;d[--n]===0;)d.pop();if(Xe&&(e.e>kh||e.e<-kh))throw Error(fw+gt(e));return e}function s2(e,t){var r,n,i,a,o,s,l,u,f,d,h=e.constructor,p=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),Xe?Re(t,p):t;if(l=e.d,d=t.d,n=t.e,u=e.e,l=l.slice(),o=u-n,o){for(f=o<0,f?(r=l,o=-o,s=d.length):(r=d,n=u,s=l.length),i=Math.max(Math.ceil(p/qe),s)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=l.length,s=d.length,f=i0;--i)l[s++]=0;for(i=d.length;i>o;){if(l[--i]0?a=a.charAt(0)+"."+a.slice(1)+Di(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Di(-i-1)+a,r&&(n=r-o)>0&&(a+=Di(n))):i>=o?(a+=Di(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+Di(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=Di(n))),e.s<0?"-"+a:a}function VO(e,t){if(e.length>t)return e.length=t,!0}function l2(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(so+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return HO(o,a.toString())}else if(typeof a!="string")throw Error(so+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,ate.test(a))HO(o,a);else throw Error(so+a)}if(i.prototype=Z,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=l2,i.config=i.set=ote,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(so+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(so+r+": "+n);return this}var dw=l2(ite);jr=new dw(1);const De=dw;function ste(e){return fte(e)||cte(e)||ute(e)||lte()}function lte(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ute(e,t){if(e){if(typeof e=="string")return c0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c0(e,t)}}function cte(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function fte(e){if(Array.isArray(e))return c0(e)}function c0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t?r.apply(void 0,i):e(t-o,GO(function(){for(var s=arguments.length,l=new Array(s),u=0;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(r.push(s.value),!(t&&r.length===t));n=!0);}catch(l){i=!0,a=l}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function Pte(e){if(Array.isArray(e))return e}function h2(e){var t=dc(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function p2(e,t,r){if(e.lte(0))return new De(0);var n=pm.getDigitCount(e.toNumber()),i=new De(10).pow(n),a=e.div(i),o=n!==1?.05:.1,s=new De(Math.ceil(a.div(o).toNumber())).add(r).mul(o),l=s.mul(i);return t?l:new De(Math.ceil(l))}function Ate(e,t,r){var n=1,i=new De(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new De(10).pow(pm.getDigitCount(e)-1),i=new De(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new De(Math.floor(e)))}else e===0?i=new De(Math.floor((t-1)/2)):r||(i=new De(Math.floor(e)));var o=Math.floor((t-1)/2),s=mte(pte(function(l){return i.add(new De(l-o).mul(n)).toNumber()}),f0);return s(0,t)}function m2(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new De(0),tickMin:new De(0),tickMax:new De(0)};var a=p2(new De(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new De(0):(o=new De(e).add(t).div(2),o=o.sub(new De(o).mod(a)));var s=Math.ceil(o.sub(e).div(a).toNumber()),l=Math.ceil(new De(t).sub(o).div(a).toNumber()),u=s+l+1;return u>r?m2(e,t,r,n,i+1):(u0?l+(r-u):l,s=t>0?s:s+(r-u)),{step:a,tickMin:o.sub(new De(s).mul(a)),tickMax:o.add(new De(l).mul(a))})}function Ete(e){var t=dc(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),s=h2([r,n]),l=dc(s,2),u=l[0],f=l[1];if(u===-1/0||f===1/0){var d=f===1/0?[u].concat(h0(f0(0,i-1).map(function(){return 1/0}))):[].concat(h0(f0(0,i-1).map(function(){return-1/0})),[f]);return r>n?d0(d):d}if(u===f)return Ate(u,i,a);var h=m2(u,f,o,a),p=h.step,g=h.tickMin,m=h.tickMax,v=pm.rangeStep(g,m.add(new De(.1).mul(p)),p);return r>n?d0(v):v}function kte(e,t){var r=dc(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=h2([n,i]),s=dc(o,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[n,i];if(l===u)return[l];var f=Math.max(t,2),d=p2(new De(u).sub(l).div(f-1),a,0),h=[].concat(h0(pm.rangeStep(new De(l),new De(u).sub(new De(.99).mul(d)),d)),[u]);return n>i?d0(h):h}var _te=f2(Ete),Tte=f2(kte),Cte="Invariant failed";function wo(e,t){throw new Error(Cte)}var $te=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Vs(e){"@babel/helpers - typeof";return Vs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vs(e)}function _h(){return _h=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zte(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Bte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ute(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,s=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(s<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var l=a.range,u=0;u0?i[u-1].coordinate:i[s-1].coordinate,d=i[u].coordinate,h=u>=s-1?i[0].coordinate:i[u+1].coordinate,p=void 0;if(Jt(d-f)!==Jt(h-d)){var g=[];if(Jt(h-d)===Jt(l[1]-l[0])){p=h;var m=d+l[1]-l[0];g[0]=Math.min(m,(m+f)/2),g[1]=Math.max(m,(m+f)/2)}else{p=f;var v=h+l[1]-l[0];g[0]=Math.min(d,(v+d)/2),g[1]=Math.max(d,(v+d)/2)}var y=[Math.min(d,(p+d)/2),Math.max(d,(p+d)/2)];if(t>y[0]&&t<=y[1]||t>=g[0]&&t<=g[1]){o=i[u].index;break}}else{var x=Math.min(f,h),b=Math.max(f,h);if(t>(x+d)/2&&t<=(b+d)/2){o=i[u].index;break}}}else for(var S=0;S0&&S(n[S].coordinate+n[S-1].coordinate)/2&&t<=(n[S].coordinate+n[S+1].coordinate)/2||S===s-1&&t>(n[S].coordinate+n[S-1].coordinate)/2){o=n[S].index;break}return o},hw=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?ot(ot({},t.type.defaultProps),t.props):t.props,o=a.stroke,s=a.fill,l;switch(i){case"Line":l=o;break;case"Area":case"Radar":l=o&&o!=="none"?o:s;break;default:l=s;break}return l},are=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},s=Object.keys(a),l=0,u=s.length;l=0});if(y&&y.length){var x=y[0].type.defaultProps,b=x!==void 0?ot(ot({},x),y[0].props):y[0].props,S=b.barSize,w=b[v];o[w]||(o[w]=[]);var O=se(S)?r:S;o[w].push({item:y[0],stackList:y.slice(1),barSize:se(O)?void 0:Zt(O,n,0)})}}return o},ore=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,s=t.maxBarSize,l=o.length;if(l<1)return null;var u=Zt(r,i,0,!0),f,d=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=i/l,g=o.reduce(function(S,w){return S+w.barSize||0},0);g+=(l-1)*u,g>=i&&(g-=(l-1)*u,u=0),g>=i&&p>0&&(h=!0,p*=.9,g=l*p);var m=(i-g)/2>>0,v={offset:m-u,size:0};f=o.reduce(function(S,w){var O={item:w.item,position:{offset:v.offset+v.size+u,size:h?p:w.barSize}},j=[].concat(QO(S),[O]);return v=j[j.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(P){j.push({item:P,position:v})}),j},d)}else{var y=Zt(n,i,0,!0);i-2*y-(l-1)*u<=0&&(u=0);var x=(i-2*y-(l-1)*u)/l;x>1&&(x>>=0);var b=s===+s?Math.min(x,s):x;f=o.reduce(function(S,w,O){var j=[].concat(QO(S),[{item:w.item,position:{offset:y+(x+u)*O+(x-b)/2,size:b}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(P){j.push({item:P,position:j[j.length-1].position})}),j},d)}return f},sre=function(t,r,n,i){var a=n.children,o=n.width,s=n.margin,l=o-(s.left||0)-(s.right||0),u=x2({children:a,legendWidth:l});if(u){var f=i||{},d=f.width,h=f.height,p=u.align,g=u.verticalAlign,m=u.layout;if((m==="vertical"||m==="horizontal"&&g==="middle")&&p!=="center"&&G(t[p]))return ot(ot({},t),{},vs({},p,t[p]+(d||0)));if((m==="horizontal"||m==="vertical"&&p==="center")&&g!=="middle"&&G(t[g]))return ot(ot({},t),{},vs({},g,t[g]+(h||0)))}return t},lre=function(t,r,n){return se(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},b2=function(t,r,n,i,a){var o=r.props.children,s=rr(o,$l).filter(function(u){return lre(i,a,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var d=Je(f,n);if(se(d))return u;var h=Array.isArray(d)?[dm(d),fm(d)]:[d,d],p=l.reduce(function(g,m){var v=Je(f,m,0),y=h[0]-Math.abs(Array.isArray(v)?v[0]:v),x=h[1]+Math.abs(Array.isArray(v)?v[1]:v);return[Math.min(y,g[0]),Math.max(x,g[1])]},[1/0,-1/0]);return[Math.min(p[0],u[0]),Math.max(p[1],u[1])]},[1/0,-1/0])}return null},ure=function(t,r,n,i,a){var o=r.map(function(s){return b2(t,s,n,a,i)}).filter(function(s){return!se(s)});return o&&o.length?o.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},w2=function(t,r,n,i,a){var o=r.map(function(l){var u=l.props.dataKey;return n==="number"&&u&&b2(t,l,u,i)||Ou(t,u,n,a)});if(n==="number")return o.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return o.reduce(function(l,u){for(var f=0,d=u.length;f=2?Jt(s[0]-s[1])*2*u:u,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(d){var h=a?a.indexOf(d):d;return{coordinate:i(h)+u,value:d,offset:u}});return f.filter(function(d){return!nf(d.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(d,h){return{coordinate:i(d)+u,value:d,index:h,offset:u}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(d){return{coordinate:i(d)+u,value:d,offset:u}}):i.domain().map(function(d,h){return{coordinate:i(d)+u,value:a?a[d]:d,index:h,offset:u}})},Fg=new WeakMap,Vf=function(t,r){if(typeof r!="function")return t;Fg.has(t)||Fg.set(t,new WeakMap);var n=Fg.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},O2=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,s=t.axisType;if(i==="auto")return o==="radial"&&s==="radiusAxis"?{scale:oc(),realScaleType:"band"}:o==="radial"&&s==="angleAxis"?{scale:Nh(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:ju(),realScaleType:"point"}:a==="category"?{scale:oc(),realScaleType:"band"}:{scale:Nh(),realScaleType:"linear"};if(yo(i)){var l="scale".concat(Xp(i));return{scale:(qO[l]||ju)(),realScaleType:qO[l]?l:"point"}}return le(i)?{scale:i}:{scale:ju(),realScaleType:"point"}},ZO=1e-4,N2=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-ZO,o=Math.max(i[0],i[1])+ZO,s=t(r[0]),l=t(r[n-1]);(so||lo)&&t.domain([r[0],r[n-1]])}},cre=function(t,r){if(!t)return null;for(var n=0,i=t.length;ni)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(t[s][n][0]=a,t[s][n][1]=a+l,a=t[s][n][1]):(t[s][n][0]=o,t[s][n][1]=o+l,o=t[s][n][1])}},hre=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n=0?(t[o][n][0]=a,t[o][n][1]=a+s,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},pre={sign:dre,expand:$7,none:Fs,silhouette:M7,wiggle:I7,positive:hre},mre=function(t,r,n){var i=r.map(function(s){return s.props.dataKey}),a=pre[n],o=C7().keys(i).value(function(s,l){return+Je(s,l,0)}).order(By).offset(a);return o(t)},gre=function(t,r,n,i,a,o){if(!t)return null;var s=o?r.reverse():r,l={},u=s.reduce(function(d,h){var p,g=(p=h.type)!==null&&p!==void 0&&p.defaultProps?ot(ot({},h.type.defaultProps),h.props):h.props,m=g.stackId,v=g.hide;if(v)return d;var y=g[n],x=d[y]||{hasStack:!1,stackGroups:{}};if(Ot(m)){var b=x.stackGroups[m]||{numericAxisId:n,cateAxisId:i,items:[]};b.items.push(h),x.hasStack=!0,x.stackGroups[m]=b}else x.stackGroups[ko("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[h]};return ot(ot({},d),{},vs({},y,x))},l),f={};return Object.keys(u).reduce(function(d,h){var p=u[h];if(p.hasStack){var g={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(m,v){var y=p.stackGroups[v];return ot(ot({},m),{},vs({},v,{numericAxisId:n,cateAxisId:i,items:y.items,stackedData:mre(t,y.items,a)}))},g)}return ot(ot({},d),{},vs({},h,p))},f)},P2=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,s=r.allowDecimals,l=n||r.scale;if(l!=="auto"&&l!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=_te(u,a,s);return t.domain([dm(f),fm(f)]),{niceTicks:f}}if(a&&i==="number"){var d=t.domain(),h=Tte(d,a,s);return{niceTicks:h}}return null};function Ch(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!se(i[t.dataKey])){var s=ih(r,"value",i[t.dataKey]);if(s)return s.coordinate+n/2}return r[a]?r[a].coordinate+n/2:null}var l=Je(i,se(o)?t.dataKey:o);return se(l)?null:t.scale(l)}var eN=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,s=t.index;if(r.type==="category")return n[s]?n[s].coordinate+i:null;var l=Je(o,r.dataKey,r.domain[s]);return se(l)?null:r.scale(l)-a/2+i},vre=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},yre=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?ot(ot({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(Ot(a)){var o=r[a];if(o){var s=o.items.indexOf(t);return s>=0?o.stackedData[s]:null}}return null},xre=function(t){return t.reduce(function(r,n){return[dm(n.concat([r[0]]).filter(G)),fm(n.concat([r[1]]).filter(G))]},[1/0,-1/0])},A2=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],s=o.stackedData,l=s.reduce(function(u,f){var d=xre(f.slice(r,n+1));return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]);return[Math.min(l[0],i[0]),Math.max(l[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},tN=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rN=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,v0=function(t,r,n){if(le(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(G(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(tN.test(t[0])){var a=+tN.exec(t[0])[1];i[0]=r[0]-a}else le(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(G(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(rN.test(t[1])){var o=+rN.exec(t[1])[1];i[1]=r[1]+o}else le(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},$h=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=Bb(r,function(d){return d.coordinate}),o=1/0,s=1,l=a.length;se.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},Ere=function(t,r,n,i,a){var o=t.width,s=t.height,l=t.startAngle,u=t.endAngle,f=Zt(t.cx,o,o/2),d=Zt(t.cy,s,s/2),h=_2(o,s,n),p=Zt(t.innerRadius,h,0),g=Zt(t.outerRadius,h,h*.8),m=Object.keys(r);return m.reduce(function(v,y){var x=r[y],b=x.domain,S=x.reversed,w;if(se(x.range))i==="angleAxis"?w=[l,u]:i==="radiusAxis"&&(w=[p,g]),S&&(w=[w[1],w[0]]);else{w=x.range;var O=w,j=Sre(O,2);l=j[0],u=j[1]}var P=O2(x,a),A=P.realScaleType,_=P.scale;_.domain(b).range(w),N2(_);var E=P2(_,Hn(Hn({},x),{},{realScaleType:A})),k=Hn(Hn(Hn({},x),E),{},{range:w,radius:g,realScaleType:A,scale:_,cx:f,cy:d,innerRadius:p,outerRadius:g,startAngle:l,endAngle:u});return Hn(Hn({},v),{},k2({},y,k))},{})},kre=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},_re=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,s=kre({x:n,y:i},{x:a,y:o});if(s<=0)return{radius:s};var l=(n-a)/s,u=Math.acos(l);return i>o&&(u=2*Math.PI-u),{radius:s,angle:Are(u),angleInRadian:u}},Tre=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},Cre=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),s=Math.min(a,o);return t+s*360},oN=function(t,r){var n=t.x,i=t.y,a=_re({x:n,y:i},r),o=a.radius,s=a.angle,l=r.innerRadius,u=r.outerRadius;if(ou)return!1;if(o===0)return!0;var f=Tre(r),d=f.startAngle,h=f.endAngle,p=s,g;if(d<=h){for(;p>h;)p-=360;for(;p=d&&p<=h}else{for(;p>d;)p-=360;for(;p=h&&p<=d}return g?Hn(Hn({},r),{},{radius:o,angle:Cre(p,r)}):null},T2=function(t){return!N.isValidElement(t)&&!le(t)&&typeof t!="boolean"?t.className:""};function gc(e){"@babel/helpers - typeof";return gc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gc(e)}var $re=["offset"];function Mre(e){return Lre(e)||Rre(e)||Dre(e)||Ire()}function Ire(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return y0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y0(e,t)}}function Rre(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Lre(e){if(Array.isArray(e))return y0(e)}function y0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zre(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function sN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function bt(e){for(var t=1;t=0?1:-1,b,S;i==="insideStart"?(b=p+x*o,S=m):i==="insideEnd"?(b=g-x*o,S=!m):i==="end"&&(b=g+x*o,S=m),S=y<=0?S:!S;var w=Ue(u,f,v,b),O=Ue(u,f,v,b+(S?1:-1)*359),j="M".concat(w.x,",").concat(w.y,` - A`).concat(v,",").concat(v,",0,1,").concat(S?0:1,`, - `).concat(O.x,",").concat(O.y),P=se(t.id)?ko("recharts-radial-line-"):t.id;return $.createElement("text",vc({},n,{dominantBaseline:"central",className:fe("recharts-radial-bar-label",s)}),$.createElement("defs",null,$.createElement("path",{id:P,d:j})),$.createElement("textPath",{xlinkHref:"#".concat(P)},r))},Vre=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,s=a.cy,l=a.innerRadius,u=a.outerRadius,f=a.startAngle,d=a.endAngle,h=(f+d)/2;if(i==="outside"){var p=Ue(o,s,u+n,h),g=p.x,m=p.y;return{x:g,y:m,textAnchor:g>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:s,textAnchor:"middle",verticalAnchor:"end"};var v=(l+u)/2,y=Ue(o,s,v,h),x=y.x,b=y.y;return{x,y:b,textAnchor:"middle",verticalAnchor:"middle"}},Gre=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,s=o.x,l=o.y,u=o.width,f=o.height,d=f>=0?1:-1,h=d*i,p=d>0?"end":"start",g=d>0?"start":"end",m=u>=0?1:-1,v=m*i,y=m>0?"end":"start",x=m>0?"start":"end";if(a==="top"){var b={x:s+u/2,y:l-d*i,textAnchor:"middle",verticalAnchor:p};return bt(bt({},b),n?{height:Math.max(l-n.y,0),width:u}:{})}if(a==="bottom"){var S={x:s+u/2,y:l+f+h,textAnchor:"middle",verticalAnchor:g};return bt(bt({},S),n?{height:Math.max(n.y+n.height-(l+f),0),width:u}:{})}if(a==="left"){var w={x:s-v,y:l+f/2,textAnchor:y,verticalAnchor:"middle"};return bt(bt({},w),n?{width:Math.max(w.x-n.x,0),height:f}:{})}if(a==="right"){var O={x:s+u+v,y:l+f/2,textAnchor:x,verticalAnchor:"middle"};return bt(bt({},O),n?{width:Math.max(n.x+n.width-O.x,0),height:f}:{})}var j=n?{width:u,height:f}:{};return a==="insideLeft"?bt({x:s+v,y:l+f/2,textAnchor:x,verticalAnchor:"middle"},j):a==="insideRight"?bt({x:s+u-v,y:l+f/2,textAnchor:y,verticalAnchor:"middle"},j):a==="insideTop"?bt({x:s+u/2,y:l+h,textAnchor:"middle",verticalAnchor:g},j):a==="insideBottom"?bt({x:s+u/2,y:l+f-h,textAnchor:"middle",verticalAnchor:p},j):a==="insideTopLeft"?bt({x:s+v,y:l+h,textAnchor:x,verticalAnchor:g},j):a==="insideTopRight"?bt({x:s+u-v,y:l+h,textAnchor:y,verticalAnchor:g},j):a==="insideBottomLeft"?bt({x:s+v,y:l+f-h,textAnchor:x,verticalAnchor:p},j):a==="insideBottomRight"?bt({x:s+u-v,y:l+f-h,textAnchor:y,verticalAnchor:p},j):Sl(a)&&(G(a.x)||Wa(a.x))&&(G(a.y)||Wa(a.y))?bt({x:s+Zt(a.x,u),y:l+Zt(a.y,f),textAnchor:"end",verticalAnchor:"end"},j):bt({x:s+u/2,y:l+f/2,textAnchor:"middle",verticalAnchor:"middle"},j)},Yre=function(t){return"cx"in t&&G(t.cx)};function Tt(e){var t=e.offset,r=t===void 0?5:t,n=Fre(e,$re),i=bt({offset:r},n),a=i.viewBox,o=i.position,s=i.value,l=i.children,u=i.content,f=i.className,d=f===void 0?"":f,h=i.textBreakAll;if(!a||se(s)&&se(l)&&!N.isValidElement(u)&&!le(u))return null;if(N.isValidElement(u))return N.cloneElement(u,i);var p;if(le(u)){if(p=N.createElement(u,i),N.isValidElement(p))return p}else p=Kre(i);var g=Yre(a),m=ne(i,!0);if(g&&(o==="insideStart"||o==="insideEnd"||o==="end"))return Hre(i,p,m);var v=g?Vre(i):Gre(i);return $.createElement(xo,vc({className:fe("recharts-label",d)},m,v,{breakAll:h}),p)}Tt.displayName="Label";var C2=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,f=t.outerRadius,d=t.x,h=t.y,p=t.top,g=t.left,m=t.width,v=t.height,y=t.clockWise,x=t.labelViewBox;if(x)return x;if(G(m)&&G(v)){if(G(d)&&G(h))return{x:d,y:h,width:m,height:v};if(G(p)&&G(g))return{x:p,y:g,width:m,height:v}}return G(d)&&G(h)?{x:d,y:h,width:0,height:0}:G(r)&&G(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:u||0,outerRadius:f||l||s||0,clockWise:y}:t.viewBox?t.viewBox:{}},Xre=function(t,r){return t?t===!0?$.createElement(Tt,{key:"label-implicit",viewBox:r}):Ot(t)?$.createElement(Tt,{key:"label-implicit",viewBox:r,value:t}):N.isValidElement(t)?t.type===Tt?N.cloneElement(t,{key:"label-implicit",viewBox:r}):$.createElement(Tt,{key:"label-implicit",content:t,viewBox:r}):le(t)?$.createElement(Tt,{key:"label-implicit",content:t,viewBox:r}):Sl(t)?$.createElement(Tt,vc({viewBox:r},t,{key:"label-implicit"})):null:null},Qre=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=C2(t),o=rr(i,Tt).map(function(l,u){return N.cloneElement(l,{viewBox:r||a,key:"label-".concat(u)})});if(!n)return o;var s=Xre(t.label,r||a);return[s].concat(Mre(o))};Tt.parseViewBox=C2;Tt.renderCallByParent=Qre;function Jre(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Zre=Jre;const ene=_e(Zre);function yc(e){"@babel/helpers - typeof";return yc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yc(e)}var tne=["valueAccessor"],rne=["data","dataKey","clockWise","id","textBreakAll"];function nne(e){return sne(e)||one(e)||ane(e)||ine()}function ine(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ane(e,t){if(e){if(typeof e=="string")return x0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return x0(e,t)}}function one(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sne(e){if(Array.isArray(e))return x0(e)}function x0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function fne(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var dne=function(t){return Array.isArray(t.value)?ene(t.value):t.value};function Dn(e){var t=e.valueAccessor,r=t===void 0?dne:t,n=cN(e,tne),i=n.data,a=n.dataKey,o=n.clockWise,s=n.id,l=n.textBreakAll,u=cN(n,rne);return!i||!i.length?null:$.createElement(xe,{className:"recharts-label-list"},i.map(function(f,d){var h=se(a)?r(f,d):Je(f&&f.payload,a),p=se(s)?{}:{id:"".concat(s,"-").concat(d)};return $.createElement(Tt,Ih({},ne(f,!0),u,p,{parentViewBox:f.parentViewBox,value:h,textBreakAll:l,viewBox:Tt.parseViewBox(se(o)?f:uN(uN({},f),{},{clockWise:o})),key:"label-".concat(d),index:d}))}))}Dn.displayName="LabelList";function hne(e,t){return e?e===!0?$.createElement(Dn,{key:"labelList-implicit",data:t}):$.isValidElement(e)||le(e)?$.createElement(Dn,{key:"labelList-implicit",data:t,content:e}):Sl(e)?$.createElement(Dn,Ih({data:t},e,{key:"labelList-implicit"})):null:null}function pne(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=rr(n,Dn).map(function(o,s){return N.cloneElement(o,{data:t,key:"labelList-".concat(s)})});if(!r)return i;var a=hne(e.label,t);return[a].concat(nne(i))}Dn.renderCallByParent=pne;function xc(e){"@babel/helpers - typeof";return xc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xc(e)}function b0(){return b0=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>u),`, - `).concat(d.x,",").concat(d.y,` - `);if(i>0){var p=Ue(r,n,i,o),g=Ue(r,n,i,u);h+="L ".concat(g.x,",").concat(g.y,` - A `).concat(i,",").concat(i,`,0, - `).concat(+(Math.abs(l)>180),",").concat(+(o<=u),`, - `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(r,",").concat(n," Z");return h},xne=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,d=Jt(f-u),h=Gf({cx:r,cy:n,radius:a,angle:u,sign:d,cornerRadius:o,cornerIsExternal:l}),p=h.circleTangency,g=h.lineTangency,m=h.theta,v=Gf({cx:r,cy:n,radius:a,angle:f,sign:-d,cornerRadius:o,cornerIsExternal:l}),y=v.circleTangency,x=v.lineTangency,b=v.theta,S=l?Math.abs(u-f):Math.abs(u-f)-m-b;if(S<0)return s?"M ".concat(g.x,",").concat(g.y,` - a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 - a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 - `):$2({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:u,endAngle:f});var w="M ".concat(g.x,",").concat(g.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(p.x,",").concat(p.y,` - A`).concat(a,",").concat(a,",0,").concat(+(S>180),",").concat(+(d<0),",").concat(y.x,",").concat(y.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(x.x,",").concat(x.y,` - `);if(i>0){var O=Gf({cx:r,cy:n,radius:i,angle:u,sign:d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),j=O.circleTangency,P=O.lineTangency,A=O.theta,_=Gf({cx:r,cy:n,radius:i,angle:f,sign:-d,isExternal:!0,cornerRadius:o,cornerIsExternal:l}),E=_.circleTangency,k=_.lineTangency,D=_.theta,F=l?Math.abs(u-f):Math.abs(u-f)-A-D;if(F<0&&o===0)return"".concat(w,"L").concat(r,",").concat(n,"Z");w+="L".concat(k.x,",").concat(k.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(E.x,",").concat(E.y,` - A`).concat(i,",").concat(i,",0,").concat(+(F>180),",").concat(+(d>0),",").concat(j.x,",").concat(j.y,` - A`).concat(o,",").concat(o,",0,0,").concat(+(d<0),",").concat(P.x,",").concat(P.y,"Z")}else w+="L".concat(r,",").concat(n,"Z");return w},bne={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},M2=function(t){var r=dN(dN({},bne),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,s=r.cornerRadius,l=r.forceCornerRadius,u=r.cornerIsExternal,f=r.startAngle,d=r.endAngle,h=r.className;if(o0&&Math.abs(f-d)<360?v=xne({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(m,g/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:f,endAngle:d}):v=$2({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:d}),$.createElement("path",b0({},ne(r,!0),{className:p,d:v,role:"img"}))};function bc(e){"@babel/helpers - typeof";return bc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bc(e)}function w0(){return w0=Object.assign?Object.assign.bind():function(e){for(var t=1;t$ne.call(e,t));function Co(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const Dne="__v",Rne="__o",Lne="_owner",{getOwnPropertyDescriptor:vN,keys:yN}=Object;function Fne(e,t){return e.byteLength===t.byteLength&&Dh(new Uint8Array(e),new Uint8Array(t))}function zne(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function Bne(e,t){return e.byteLength===t.byteLength&&Dh(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function Une(e,t){return Co(e.getTime(),t.getTime())}function Wne(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function Kne(e,t){return e===t}function xN(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.entries();let o,s,l=0;for(;(o=a.next())&&!o.done;){const u=t.entries();let f=!1,d=0;for(;(s=u.next())&&!s.done;){if(i[d]){d++;continue}const h=o.value,p=s.value;if(r.equals(h[0],p[0],l,d,e,t,r)&&r.equals(h[1],p[1],h[0],p[0],e,t,r)){f=i[d]=!0;break}d++}if(!f)return!1;l++}return!0}const qne=Co;function Hne(e,t,r){const n=yN(e);let i=n.length;if(yN(t).length!==i)return!1;for(;i-- >0;)if(!L2(e,t,r,n[i]))return!1;return!0}function iu(e,t,r){const n=gN(e);let i=n.length;if(gN(t).length!==i)return!1;let a,o,s;for(;i-- >0;)if(a=n[i],!L2(e,t,r,a)||(o=vN(e,a),s=vN(t,a),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function Vne(e,t){return Co(e.valueOf(),t.valueOf())}function Gne(e,t){return e.source===t.source&&e.flags===t.flags}function bN(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.values();let o,s;for(;(o=a.next())&&!o.done;){const l=t.values();let u=!1,f=0;for(;(s=l.next())&&!s.done;){if(!i[f]&&r.equals(o.value,s.value,o.value,s.value,e,t,r)){u=i[f]=!0;break}f++}if(!u)return!1}return!0}function Dh(e,t){let r=e.byteLength;if(t.byteLength!==r||e.byteOffset!==t.byteOffset)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function Yne(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function L2(e,t,r,n){return(n===Lne||n===Rne||n===Dne)&&(e.$$typeof||t.$$typeof)?!0:Ine(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const Xne="[object ArrayBuffer]",Qne="[object Arguments]",Jne="[object Boolean]",Zne="[object DataView]",eie="[object Date]",tie="[object Error]",rie="[object Map]",nie="[object Number]",iie="[object Object]",aie="[object RegExp]",oie="[object Set]",sie="[object String]",lie={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},uie="[object URL]",cie=Object.prototype.toString;function fie({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:l,arePrimitiveWrappersEqual:u,areRegExpsEqual:f,areSetsEqual:d,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:g}){return function(v,y,x){if(v===y)return!0;if(v==null||y==null)return!1;const b=typeof v;if(b!==typeof y)return!1;if(b!=="object")return b==="number"?s(v,y,x):b==="function"?a(v,y,x):!1;const S=v.constructor;if(S!==y.constructor)return!1;if(S===Object)return l(v,y,x);if(Array.isArray(v))return t(v,y,x);if(S===Date)return n(v,y,x);if(S===RegExp)return f(v,y,x);if(S===Map)return o(v,y,x);if(S===Set)return d(v,y,x);const w=cie.call(v);if(w===eie)return n(v,y,x);if(w===aie)return f(v,y,x);if(w===rie)return o(v,y,x);if(w===oie)return d(v,y,x);if(w===iie)return typeof v.then!="function"&&typeof y.then!="function"&&l(v,y,x);if(w===uie)return p(v,y,x);if(w===tie)return i(v,y,x);if(w===Qne)return l(v,y,x);if(lie[w])return h(v,y,x);if(w===Xne)return e(v,y,x);if(w===Zne)return r(v,y,x);if(w===Jne||w===nie||w===sie)return u(v,y,x);if(g){let O=g[w];if(!O){const j=Mne(v);j&&(O=g[j])}if(O)return O(v,y,x)}return!1}}function die({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:Fne,areArraysEqual:r?iu:zne,areDataViewsEqual:Bne,areDatesEqual:Une,areErrorsEqual:Wne,areFunctionsEqual:Kne,areMapsEqual:r?zg(xN,iu):xN,areNumbersEqual:qne,areObjectsEqual:r?iu:Hne,arePrimitiveWrappersEqual:Vne,areRegExpsEqual:Gne,areSetsEqual:r?zg(bN,iu):bN,areTypedArraysEqual:r?zg(Dh,iu):Dh,areUrlsEqual:Yne,unknownTagComparators:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const i=Xf(n.areArraysEqual),a=Xf(n.areMapsEqual),o=Xf(n.areObjectsEqual),s=Xf(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:s})}return n}function hie(e){return function(t,r,n,i,a,o,s){return e(t,r,s)}}function pie({circular:e,comparator:t,createState:r,equals:n,strict:i}){if(r)return function(s,l){const{cache:u=e?new WeakMap:void 0,meta:f}=r();return t(s,l,{cache:u,equals:n,meta:f,strict:i})};if(e)return function(s,l){return t(s,l,{cache:new WeakMap,equals:n,meta:void 0,strict:i})};const a={cache:void 0,equals:n,meta:void 0,strict:i};return function(s,l){return t(s,l,a)}}const mie=ja();ja({strict:!0});ja({circular:!0});ja({circular:!0,strict:!0});ja({createInternalComparator:()=>Co});ja({strict:!0,createInternalComparator:()=>Co});ja({circular:!0,createInternalComparator:()=>Co});ja({circular:!0,createInternalComparator:()=>Co,strict:!0});function ja(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:i=!1}=e,a=die(e),o=fie(a),s=r?r(o):hie(o);return pie({circular:t,comparator:o,createState:n,equals:s,strict:i})}function gie(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function wN(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):gie(i)};requestAnimationFrame(n)}function S0(e){"@babel/helpers - typeof";return S0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},S0(e)}function vie(e){return wie(e)||bie(e)||xie(e)||yie()}function yie(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xie(e,t){if(e){if(typeof e=="string")return SN(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return SN(e,t)}}function SN(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?1:y<0?0:y},m=function(y){for(var x=y>1?1:y,b=x,S=0;S<8;++S){var w=d(b)-x,O=p(b);if(Math.abs(w-x)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,s=o===void 0?17:o,l=function(f,d,h){var p=-(f-d)*n,g=h*a,m=h+(p-g)*s/1e3,v=h*s/1e3+f;return Math.abs(v-d)e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Jie(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a=0)&&(r[i]=e[i]);return r}function Bg(e){return rae(e)||tae(e)||eae(e)||Zie()}function Zie(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eae(e,t){if(e){if(typeof e=="string")return A0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return A0(e,t)}}function tae(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function rae(e){if(Array.isArray(e))return A0(e)}function A0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Fh(e){return Fh=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Fh(e)}var gn=function(e){sae(r,e);var t=lae(r);function r(n,i){var a;nae(this,r),a=t.call(this,n,i);var o=a.props,s=o.isActive,l=o.attributeName,u=o.from,f=o.to,d=o.steps,h=o.children,p=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(_0(a)),a.changeStyle=a.changeStyle.bind(_0(a)),!s||p<=0)return a.state={style:{}},typeof h=="function"&&(a.state={style:f}),k0(a);if(d&&d.length)a.state={style:d[0].style};else if(u){if(typeof h=="function")return a.state={style:u},k0(a);a.state={style:l?du({},l,u):u}}else a.state={style:{}};return a}return aae(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,s=a.canBegin,l=a.attributeName,u=a.shouldReAnimate,f=a.to,d=a.from,h=this.state.style;if(s){if(!o){var p={style:l?du({},l,f):f};this.state&&h&&(l&&h[l]!==f||!l&&h!==f)&&this.setState(p);return}if(!(mie(i.to,f)&&i.canBegin&&i.isActive)){var g=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var m=g||u?d:i.to;if(this.state&&h){var v={style:l?du({},l,m):m};(l&&h[l]!==m||!l&&h!==m)&&this.setState(v)}this.runAnimation(Zr(Zr({},this.props),{},{from:m,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,s=i.to,l=i.duration,u=i.easing,f=i.begin,d=i.onAnimationEnd,h=i.onAnimationStart,p=Yie(o,s,Lie(u),l,this.changeStyle),g=function(){a.stopJSAnimation=p()};this.manager.start([h,f,g,l,d])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,s=i.begin,l=i.onAnimationStart,u=o[0],f=u.style,d=u.duration,h=d===void 0?0:d,p=function(m,v,y){if(y===0)return m;var x=v.duration,b=v.easing,S=b===void 0?"ease":b,w=v.style,O=v.properties,j=v.onAnimationEnd,P=y>0?o[y-1]:v,A=O||Object.keys(w);if(typeof S=="function"||S==="spring")return[].concat(Bg(m),[a.runJSAnimation.bind(a,{from:P.style,to:w,duration:x,easing:S}),x]);var _=NN(A,x,S),E=Zr(Zr(Zr({},P.style),w),{},{transition:_});return[].concat(Bg(m),[E,x,j]).filter(Pie)};return this.manager.start([l].concat(Bg(o.reduce(p,[f,Math.max(h,s)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=Sie());var a=i.begin,o=i.duration,s=i.attributeName,l=i.to,u=i.easing,f=i.onAnimationStart,d=i.onAnimationEnd,h=i.steps,p=i.children,g=this.manager;if(this.unSubscribe=g.subscribe(this.handleStyleChange),typeof u=="function"||typeof p=="function"||u==="spring"){this.runJSAnimation(i);return}if(h.length>1){this.runStepAnimation(i);return}var m=s?du({},s,l):l,v=NN(Object.keys(m),o,u);g.start([f,a,Zr(Zr({},m),{},{transition:v}),o,d])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var s=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var l=Qie(i,Xie),u=N.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!s||u===0||o<=0)return a;var d=function(p){var g=p.props,m=g.style,v=m===void 0?{}:m,y=g.className,x=N.cloneElement(p,Zr(Zr({},l),{},{style:Zr(Zr({},v),f),className:y}));return x};return u===1?d(N.Children.only(a)):$.createElement("div",null,N.Children.map(a,function(h){return d(h)}))}}]),r}(N.PureComponent);gn.displayName="Animate";gn.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};gn.propTypes={from:Ee.oneOfType([Ee.object,Ee.string]),to:Ee.oneOfType([Ee.object,Ee.string]),attributeName:Ee.string,duration:Ee.number,begin:Ee.number,easing:Ee.oneOfType([Ee.string,Ee.func]),steps:Ee.arrayOf(Ee.shape({duration:Ee.number.isRequired,style:Ee.object.isRequired,easing:Ee.oneOfType([Ee.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Ee.func]),properties:Ee.arrayOf("string"),onAnimationEnd:Ee.func})),children:Ee.oneOfType([Ee.node,Ee.func]),isActive:Ee.bool,canBegin:Ee.bool,onAnimationEnd:Ee.func,shouldReAnimate:Ee.bool,onAnimationStart:Ee.func,onAnimationReStart:Ee.func};function Oc(e){"@babel/helpers - typeof";return Oc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Oc(e)}function zh(){return zh=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?1:-1,l=n>=0?1:-1,u=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var d=[0,0,0,0],h=0,p=4;ho?o:a[h];f="M".concat(t,",").concat(r+s*d[0]),d[0]>0&&(f+="A ".concat(d[0],",").concat(d[0],",0,0,").concat(u,",").concat(t+l*d[0],",").concat(r)),f+="L ".concat(t+n-l*d[1],",").concat(r),d[1]>0&&(f+="A ".concat(d[1],",").concat(d[1],",0,0,").concat(u,`, - `).concat(t+n,",").concat(r+s*d[1])),f+="L ".concat(t+n,",").concat(r+i-s*d[2]),d[2]>0&&(f+="A ".concat(d[2],",").concat(d[2],",0,0,").concat(u,`, - `).concat(t+n-l*d[2],",").concat(r+i)),f+="L ".concat(t+l*d[3],",").concat(r+i),d[3]>0&&(f+="A ".concat(d[3],",").concat(d[3],",0,0,").concat(u,`, - `).concat(t,",").concat(r+i-s*d[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var g=Math.min(o,a);f="M ".concat(t,",").concat(r+s*g,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+l*g,",").concat(r,` - L `).concat(t+n-l*g,",").concat(r,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+n,",").concat(r+s*g,` - L `).concat(t+n,",").concat(r+i-s*g,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t+n-l*g,",").concat(r+i,` - L `).concat(t+l*g,",").concat(r+i,` - A `).concat(g,",").concat(g,",0,0,").concat(u,",").concat(t,",").concat(r+i-s*g," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},yae=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,s=r.width,l=r.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(a,a+s),f=Math.max(a,a+s),d=Math.min(o,o+l),h=Math.max(o,o+l);return n>=u&&n<=f&&i>=d&&i<=h}return!1},xae={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},pw=function(t){var r=$N($N({},xae),t),n=N.useRef(),i=N.useState(-1),a=cae(i,2),o=a[0],s=a[1];N.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var S=n.current.getTotalLength();S&&s(S)}catch{}},[]);var l=r.x,u=r.y,f=r.width,d=r.height,h=r.radius,p=r.className,g=r.animationEasing,m=r.animationDuration,v=r.animationBegin,y=r.isAnimationActive,x=r.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||d!==+d||f===0||d===0)return null;var b=fe("recharts-rectangle",p);return x?$.createElement(gn,{canBegin:o>0,from:{width:f,height:d,x:l,y:u},to:{width:f,height:d,x:l,y:u},duration:m,animationEasing:g,isActive:x},function(S){var w=S.width,O=S.height,j=S.x,P=S.y;return $.createElement(gn,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:m,isActive:y,easing:g},$.createElement("path",zh({},ne(r,!0),{className:b,d:MN(j,P,w,O,h),ref:n})))}):$.createElement("path",zh({},ne(r,!0),{className:b,d:MN(l,u,f,d,h)}))},bae=["points","className","baseLinePoints","connectNulls"];function is(){return is=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Sae(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function IN(e){return Pae(e)||Nae(e)||Oae(e)||jae()}function jae(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oae(e,t){if(e){if(typeof e=="string")return T0(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return T0(e,t)}}function Nae(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Pae(e){if(Array.isArray(e))return T0(e)}function T0(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){DN(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),DN(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},Pu=function(t,r){var n=Aae(t);r&&(n=[n.reduce(function(a,o){return[].concat(IN(a),IN(o))},[])]);var i=n.map(function(a){return a.reduce(function(o,s,l){return"".concat(o).concat(l===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},Eae=function(t,r,n){var i=Pu(t,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(Pu(r.reverse(),n).slice(1))},kae=function(t){var r=t.points,n=t.className,i=t.baseLinePoints,a=t.connectNulls,o=wae(t,bae);if(!r||!r.length)return null;var s=fe("recharts-polygon",n);if(i&&i.length){var l=o.stroke&&o.stroke!=="none",u=Eae(r,i,a);return $.createElement("g",{className:s},$.createElement("path",is({},ne(o,!0),{fill:u.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:u})),l?$.createElement("path",is({},ne(o,!0),{fill:"none",d:Pu(r,a)})):null,l?$.createElement("path",is({},ne(o,!0),{fill:"none",d:Pu(i,a)})):null)}var f=Pu(r,a);return $.createElement("path",is({},ne(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:s,d:f}))};function C0(){return C0=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Dae(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var Rae=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},Lae=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,s=o===void 0?0:o,l=t.left,u=l===void 0?0:l,f=t.width,d=f===void 0?0:f,h=t.height,p=h===void 0?0:h,g=t.className,m=Iae(t,_ae),v=Tae({x:n,y:a,top:s,left:u,width:d,height:p},m);return!G(n)||!G(a)||!G(d)||!G(p)||!G(s)||!G(u)?null:$.createElement("path",$0({},ne(v,!0),{className:fe("recharts-cross",g),d:Rae(n,a,d,p,s,u)}))},Fae=cm,zae=r2,Bae=Bn;function Uae(e,t){return e&&e.length?Fae(e,Bae(t),zae):void 0}var Wae=Uae;const Kae=_e(Wae);var qae=cm,Hae=Bn,Vae=n2;function Gae(e,t){return e&&e.length?qae(e,Hae(t),Vae):void 0}var Yae=Gae;const Xae=_e(Yae);var Qae=["cx","cy","angle","ticks","axisLine"],Jae=["ticks","tick","angle","tickFormatter","stroke"];function Ys(e){"@babel/helpers - typeof";return Ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ys(e)}function Au(){return Au=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Zae(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function eoe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zN(e,t){for(var r=0;rWN?o=i==="outer"?"start":"end":a<-WN?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.radius,s=n.axisLine,l=n.axisLineType,u=_a(_a({},ne(this.props,!1)),{},{fill:"none"},ne(s,!1));if(l==="circle")return $.createElement(mm,Ra({className:"recharts-polar-angle-axis-line"},u,{cx:i,cy:a,r:o}));var f=this.props.ticks,d=f.map(function(h){return Ue(i,a,o,h.coordinate)});return $.createElement(kae,Ra({className:"recharts-polar-angle-axis-line"},u,{points:d}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,s=i.tickLine,l=i.tickFormatter,u=i.stroke,f=ne(this.props,!1),d=ne(o,!1),h=_a(_a({},f),{},{fill:"none"},ne(s,!1)),p=a.map(function(g,m){var v=n.getTickLineCoord(g),y=n.getTickTextAnchor(g),x=_a(_a(_a({textAnchor:y},f),{},{stroke:"none",fill:u},d),{},{index:m,payload:g,x:v.x2,y:v.y2});return $.createElement(xe,Ra({className:fe("recharts-polar-angle-axis-tick",T2(o)),key:"tick-".concat(g.coordinate)},ma(n.props,g,m)),s&&$.createElement("line",Ra({className:"recharts-polar-angle-axis-tick-line"},h,v)),o&&t.renderTickItem(o,x,l?l(g.value,m):g.value))});return $.createElement(xe,{className:"recharts-polar-angle-axis-ticks"},p)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,o=n.axisLine;return a<=0||!i||!i.length?null:$.createElement(xe,{className:fe("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var o;return $.isValidElement(n)?o=$.cloneElement(n,i):le(n)?o=n(i):o=$.createElement(xo,Ra({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])}(N.PureComponent);ym(xm,"displayName","PolarAngleAxis");ym(xm,"axisType","angleAxis");ym(xm,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var moe=JT,goe=moe(Object.getPrototypeOf,Object),voe=goe,yoe=Si,xoe=voe,boe=ji,woe="[object Object]",Soe=Function.prototype,joe=Object.prototype,Y2=Soe.toString,Ooe=joe.hasOwnProperty,Noe=Y2.call(Object);function Poe(e){if(!boe(e)||yoe(e)!=woe)return!1;var t=xoe(e);if(t===null)return!0;var r=Ooe.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Y2.call(r)==Noe}var Aoe=Poe;const Eoe=_e(Aoe);var koe=Si,_oe=ji,Toe="[object Boolean]";function Coe(e){return e===!0||e===!1||_oe(e)&&koe(e)==Toe}var $oe=Coe;const Moe=_e($oe);function Pc(e){"@babel/helpers - typeof";return Pc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pc(e)}function Wh(){return Wh=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0,from:{upperWidth:0,lowerWidth:0,height:h,x:l,y:u},to:{upperWidth:f,lowerWidth:d,height:h,x:l,y:u},duration:m,animationEasing:g,isActive:y},function(b){var S=b.upperWidth,w=b.lowerWidth,O=b.height,j=b.x,P=b.y;return $.createElement(gn,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:m,easing:g},$.createElement("path",Wh({},ne(r,!0),{className:x,d:VN(j,P,S,w,O),ref:n})))}):$.createElement("g",null,$.createElement("path",Wh({},ne(r,!0),{className:x,d:VN(l,u,f,d,h)})))},qoe=["option","shapeType","propTransformer","activeClassName","isActive"];function Ac(e){"@babel/helpers - typeof";return Ac=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ac(e)}function Hoe(e,t){if(e==null)return{};var r=Voe(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Voe(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function GN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Kh(e){for(var t=1;t0?Ar(b,"paddingAngle",0):0;if(w){var j=Dt(w.endAngle-w.startAngle,b.endAngle-b.startAngle),P=Fe(Fe({},b),{},{startAngle:x+O,endAngle:x+j(m)+O});v.push(P),x=P.endAngle}else{var A=b.endAngle,_=b.startAngle,E=Dt(0,A-_),k=E(m),D=Fe(Fe({},b),{},{startAngle:x+O,endAngle:x+k+O});v.push(D),x=D.endAngle}}),$.createElement(xe,null,n.renderSectorsStatically(v))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var s=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[s].focus(),i.setState({sectorToFocus:s});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!_l(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,o=i.sectors,s=i.className,l=i.label,u=i.cx,f=i.cy,d=i.innerRadius,h=i.outerRadius,p=i.isAnimationActive,g=this.state.isAnimationFinished;if(a||!o||!o.length||!G(u)||!G(f)||!G(d)||!G(h))return null;var m=fe("recharts-pie",s);return $.createElement(xe,{tabIndex:this.props.rootTabIndex,className:m,ref:function(y){n.pieRef=y}},this.renderSectors(),l&&this.renderLabels(o),Tt.renderCallByParent(this.props,null,!1),(!p||g)&&Dn.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n=360?x:x-1)*l,S=v-x*p-b,w=i.reduce(function(P,A){var _=Je(A,y,0);return P+(G(_)?_:0)},0),O;if(w>0){var j;O=i.map(function(P,A){var _=Je(P,y,0),E=Je(P,f,A),k=(G(_)?_:0)/w,D;A?D=j.endAngle+Jt(m)*l*(_!==0?1:0):D=o;var F=D+Jt(m)*((_!==0?p:0)+k*S),M=(D+F)/2,C=(g.innerRadius+g.outerRadius)/2,R=[{name:E,value:_,payload:P,dataKey:y,type:h}],T=Ue(g.cx,g.cy,C,M);return j=Fe(Fe(Fe({percent:k,cornerRadius:a,name:E,tooltipPayload:R,midAngle:M,middleRadius:C,tooltipPosition:T},P),g),{},{value:Je(P,y),startAngle:D,endAngle:F,payload:P,paddingAngle:Jt(m)*l}),j})}return Fe(Fe({},g),{},{sectors:O,data:i})});var pse=Math.ceil,mse=Math.max;function gse(e,t,r,n){for(var i=-1,a=mse(pse((t-e)/(r||1)),0),o=Array(a);a--;)o[n?a:++i]=e,e+=r;return o}var vse=gse,yse=vC,JN=1/0,xse=17976931348623157e292;function bse(e){if(!e)return e===0?e:0;if(e=yse(e),e===JN||e===-JN){var t=e<0?-1:1;return t*xse}return e===e?e:0}var J2=bse,wse=vse,Sse=nm,Ug=J2;function jse(e){return function(t,r,n){return n&&typeof n!="number"&&Sse(t,r,n)&&(r=n=void 0),t=Ug(t),r===void 0?(r=t,t=0):r=Ug(r),n=n===void 0?t0&&n.handleDrag(i.changedTouches[0])}),xr(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,s=i.startIndex;o==null||o({endIndex:a,startIndex:s})}),n.detachDragEndListener()}),xr(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),xr(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),xr(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),xr(n,"handleSlideDragStart",function(i){var a=nP(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return Rse(t,e),$se(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,f=u.length-1,d=Math.min(i,a),h=Math.max(i,a),p=t.getIndexInRange(o,d),g=t.getIndexInRange(o,h);return{startIndex:p-p%l,endIndex:g===f?f:g-g%l}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,s=i.dataKey,l=Je(a[n],s,n);return le(o)?o(l,n):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,s=i.endX,l=this.props,u=l.x,f=l.width,d=l.travellerWidth,h=l.startIndex,p=l.endIndex,g=l.onChange,m=n.pageX-a;m>0?m=Math.min(m,u+f-d-s,u+f-d-o):m<0&&(m=Math.max(m,u-o,u-s));var v=this.getIndex({startX:o+m,endX:s+m});(v.startIndex!==h||v.endIndex!==p)&&g&&g(v),this.setState({startX:o+m,endX:s+m,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=nP(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,s=i.endX,l=i.startX,u=this.state[o],f=this.props,d=f.x,h=f.width,p=f.travellerWidth,g=f.onChange,m=f.gap,v=f.data,y={startX:this.state.startX,endX:this.state.endX},x=n.pageX-a;x>0?x=Math.min(x,d+h-p-u):x<0&&(x=Math.max(x,d-u)),y[o]=u+x;var b=this.getIndex(y),S=b.startIndex,w=b.endIndex,O=function(){var P=v.length-1;return o==="startX"&&(s>l?S%m===0:w%m===0)||sl?w%m===0:S%m===0)||s>l&&w===P};this.setState(xr(xr({},o,u+x),"brushMoveStartX",n.pageX),function(){g&&O()&&g(b)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,s=o.scaleValues,l=o.startX,u=o.endX,f=this.state[i],d=s.indexOf(f);if(d!==-1){var h=d+n;if(!(h===-1||h>=s.length)){var p=s[h];i==="startX"&&p>=u||i==="endX"&&p<=l||this.setState(xr({},i,p),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.fill,u=n.stroke;return $.createElement("rect",{stroke:u,fill:l,x:i,y:a,width:o,height:s})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,s=n.height,l=n.data,u=n.children,f=n.padding,d=N.Children.only(u);return d?$.cloneElement(d,{x:i,y:a,width:o,height:s,margin:f,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,s=this,l=this.props,u=l.y,f=l.travellerWidth,d=l.height,h=l.traveller,p=l.ariaLabel,g=l.data,m=l.startIndex,v=l.endIndex,y=Math.max(n,this.props.x),x=Wg(Wg({},ne(this.props,!1)),{},{x:y,y:u,width:f,height:d}),b=p||"Min value: ".concat((a=g[m])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=g[v])===null||o===void 0?void 0:o.name);return $.createElement(xe,{tabIndex:0,role:"slider","aria-label":b,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),s.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,i))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(h,x))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,s=a.height,l=a.stroke,u=a.travellerWidth,f=Math.min(n,i)+u,d=Math.max(Math.abs(i-n)-u,0);return $.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:f,y:o,width:d,height:s})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,s=n.height,l=n.travellerWidth,u=n.stroke,f=this.state,d=f.startX,h=f.endX,p=5,g={pointerEvents:"none",fill:u};return $.createElement(xe,{className:"recharts-brush-texts"},$.createElement(xo,Gh({textAnchor:"end",verticalAnchor:"middle",x:Math.min(d,h)-p,y:o+s/2},g),this.getTextOfTick(i)),$.createElement(xo,Gh({textAnchor:"start",verticalAnchor:"middle",x:Math.max(d,h)+l+p,y:o+s/2},g),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,s=n.x,l=n.y,u=n.width,f=n.height,d=n.alwaysShowText,h=this.state,p=h.startX,g=h.endX,m=h.isTextActive,v=h.isSlideMoving,y=h.isTravellerMoving,x=h.isTravellerFocused;if(!i||!i.length||!G(s)||!G(l)||!G(u)||!G(f)||u<=0||f<=0)return null;var b=fe("recharts-brush",a),S=$.Children.count(o)===1,w=Tse("userSelect","none");return $.createElement(xe,{className:b,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),S&&this.renderPanorama(),this.renderSlide(p,g),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(g,"endX"),(m||v||y||x||d)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,s=n.height,l=n.stroke,u=Math.floor(a+s/2)-1;return $.createElement($.Fragment,null,$.createElement("rect",{x:i,y:a,width:o,height:s,fill:l,stroke:"none"}),$.createElement("line",{x1:i+1,y1:u,x2:i+o-1,y2:u,fill:"none",stroke:"#fff"}),$.createElement("line",{x1:i+1,y1:u+2,x2:i+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return $.isValidElement(n)?a=$.cloneElement(n,i):le(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,s=n.x,l=n.travellerWidth,u=n.updateId,f=n.startIndex,d=n.endIndex;if(a!==i.prevData||u!==i.prevUpdateId)return Wg({prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o},a&&a.length?Fse({data:a,width:o,x:s,travellerWidth:l,startIndex:f,endIndex:d}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||s!==i.prevX||l!==i.prevTravellerWidth)){i.scale.range([s,s+o-l]);var h=i.scale.domain().map(function(p){return i.scale(p)});return{prevData:a,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,s=a-1;s-o>1;){var l=Math.floor((o+s)/2);n[l]>i?s=l:o=l}return i>=n[s]?s:o}}])}(N.PureComponent);xr(Zs,"displayName","Brush");xr(Zs,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var zse=zb;function Bse(e,t){var r;return zse(e,function(n,i,a){return r=t(n,i,a),!r}),!!r}var Use=Bse,Wse=KT,Kse=Bn,qse=Use,Hse=vr,Vse=nm;function Gse(e,t,r){var n=Hse(e)?Wse:qse;return r&&Vse(e,t,r)&&(t=void 0),n(e,Kse(t))}var Yse=Gse;const Xse=_e(Yse);var Rn=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},iP=dC;function Qse(e,t,r){t=="__proto__"&&iP?iP(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var Jse=Qse,Zse=Jse,ele=cC,tle=Bn;function rle(e,t){var r={};return t=tle(t),ele(e,function(n,i,a){Zse(r,i,t(n,i,a))}),r}var nle=rle;const ile=_e(nle);function ale(e,t){for(var r=-1,n=e==null?0:e.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Sle(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function jle(e,t){var r=e.x,n=e.y,i=wle(e,vle),a="".concat(r),o=parseInt(a,10),s="".concat(n),l=parseInt(s,10),u="".concat(t.height||i.height),f=parseInt(u,10),d="".concat(t.width||i.width),h=parseInt(d,10);return au(au(au(au(au({},t),i),o?{x:o}:{}),l?{y:l}:{}),{},{height:f,width:h,name:t.name,radius:t.radius})}function oP(e){return $.createElement(qh,L0({shapeType:"rectangle",propTransformer:jle,activeClassName:"recharts-active-bar"},e))}var Ole=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=G(n)||K8(n);return a?t(n,i):(a||wo(),r)}},Nle=["value","background"],n$;function el(e){"@babel/helpers - typeof";return el=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},el(e)}function Ple(e,t){if(e==null)return{};var r=Ale(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ale(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Xh(){return Xh=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(M)0&&Math.abs(F)0&&(D=Math.min((Y||0)-(F[ve-1]||0),D))}),Number.isFinite(D)){var M=D/k,C=m.layout==="vertical"?n.height:n.width;if(m.padding==="gap"&&(j=M*C/2),m.padding==="no-gap"){var R=Zt(t.barCategoryGap,M*C),T=M*C/2;j=T-R-(T-R)/C*R}}}i==="xAxis"?P=[n.left+(b.left||0)+(j||0),n.left+n.width-(b.right||0)-(j||0)]:i==="yAxis"?P=l==="horizontal"?[n.top+n.height-(b.bottom||0),n.top+(b.top||0)]:[n.top+(b.top||0)+(j||0),n.top+n.height-(b.bottom||0)-(j||0)]:P=m.range,w&&(P=[P[1],P[0]]);var z=O2(m,a,h),W=z.scale,H=z.realScaleType;W.domain(y).range(P),N2(W);var q=P2(W,an(an({},m),{},{realScaleType:H}));i==="xAxis"?(E=v==="top"&&!S||v==="bottom"&&S,A=n.left,_=d[O]-E*m.height):i==="yAxis"&&(E=v==="left"&&!S||v==="right"&&S,A=d[O]-E*m.width,_=n.top);var L=an(an(an({},m),q),{},{realScaleType:H,x:A,y:_,scale:W,width:i==="xAxis"?n.width:m.width,height:i==="yAxis"?n.height:m.height});return L.bandSize=$h(L,q),!m.hide&&i==="xAxis"?d[O]+=(E?-1:1)*L.height:m.hide||(d[O]+=(E?-1:1)*L.width),an(an({},p),{},Sm({},g,L))},{})},s$=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},Lle=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return s$({x:r,y:n},{x:i,y:a})},l$=function(){function e(t){Ile(this,e),this.scale=t}return Dle(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(r)+s}default:return this.scale(r)}if(i){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+l}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])}();Sm(l$,"EPS",1e-4);var gw=function(t){var r=Object.keys(t).reduce(function(n,i){return an(an({},n),{},Sm({},i,l$.create(t[i])))},{});return an(an({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,s=a.position;return ile(i,function(l,u){return r[u].apply(l,{bandAware:o,position:s})})},isInRange:function(i){return r$(i,function(a,o){return r[o].isInRange(a)})}})};function Fle(e){return(e%180+180)%180}var zle=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=Fle(i),o=a*Math.PI/180,s=Math.atan(n/r),l=o>s&&o-1?i[a?t[o]:o]:void 0}}var qle=Kle,Hle=J2;function Vle(e){var t=Hle(e),r=t%1;return t===t?r?t-r:t:0}var Gle=Vle,Yle=iC,Xle=Bn,Qle=Gle,Jle=Math.max;function Zle(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:Qle(r);return i<0&&(i=Jle(n+i,0)),Yle(e,Xle(t),i)}var eue=Zle,tue=qle,rue=eue,nue=tue(rue),iue=nue;const aue=_e(iue);var oue=XU(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),vw=N.createContext(void 0),yw=N.createContext(void 0),u$=N.createContext(void 0),c$=N.createContext({}),f$=N.createContext(void 0),d$=N.createContext(0),h$=N.createContext(0),fP=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,s=t.children,l=t.width,u=t.height,f=oue(a);return $.createElement(vw.Provider,{value:n},$.createElement(yw.Provider,{value:i},$.createElement(c$.Provider,{value:a},$.createElement(u$.Provider,{value:f},$.createElement(f$.Provider,{value:o},$.createElement(d$.Provider,{value:u},$.createElement(h$.Provider,{value:l},s)))))))},sue=function(){return N.useContext(f$)},p$=function(t){var r=N.useContext(vw);r==null&&wo();var n=r[t];return n==null&&wo(),n},lue=function(){var t=N.useContext(vw);return Fi(t)},uue=function(){var t=N.useContext(yw),r=aue(t,function(n){return r$(n.domain,Number.isFinite)});return r||Fi(t)},m$=function(t){var r=N.useContext(yw);r==null&&wo();var n=r[t];return n==null&&wo(),n},cue=function(){var t=N.useContext(u$);return t},fue=function(){return N.useContext(c$)},xw=function(){return N.useContext(h$)},bw=function(){return N.useContext(d$)};function tl(e){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tl(e)}function due(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hue(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function Gue(e,t){return S$(e,t+1)}function Yue(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,s=t.end,l=0,u=1,f=o,d=function(){var g=n==null?void 0:n[l];if(g===void 0)return{v:S$(n,u)};var m=l,v,y=function(){return v===void 0&&(v=r(g,m)),v},x=g.coordinate,b=l===0||tp(e,x,y,f,s);b||(l=0,f=o,u+=1),b&&(f=x+e*(y()/2+i),l+=u)},h;u<=a.length;)if(h=d(),h)return h.v;return[]}function Cc(e){"@babel/helpers - typeof";return Cc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cc(e)}function xP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ut(e){for(var t=1;t0?p.coordinate-v*e:p.coordinate})}else a[h]=p=Ut(Ut({},p),{},{tickCoord:p.coordinate});var y=tp(e,p.tickCoord,m,s,l);y&&(l=p.tickCoord-e*(m()/2+i),a[h]=Ut(Ut({},p),{},{isShow:!0}))},f=o-1;f>=0;f--)u(f);return a}function ece(e,t,r,n,i,a){var o=(n||[]).slice(),s=o.length,l=t.start,u=t.end;if(a){var f=n[s-1],d=r(f,s-1),h=e*(f.coordinate+e*d/2-u);o[s-1]=f=Ut(Ut({},f),{},{tickCoord:h>0?f.coordinate-h*e:f.coordinate});var p=tp(e,f.tickCoord,function(){return d},l,u);p&&(u=f.tickCoord-e*(d/2+i),o[s-1]=Ut(Ut({},f),{},{isShow:!0}))}for(var g=a?s-1:s,m=function(x){var b=o[x],S,w=function(){return S===void 0&&(S=r(b,x)),S};if(x===0){var O=e*(b.coordinate-e*w()/2-l);o[x]=b=Ut(Ut({},b),{},{tickCoord:O<0?b.coordinate-O*e:b.coordinate})}else o[x]=b=Ut(Ut({},b),{},{tickCoord:b.coordinate});var j=tp(e,b.tickCoord,w,l,u);j&&(l=b.tickCoord+e*(w()/2+i),o[x]=Ut(Ut({},b),{},{isShow:!0}))},v=0;v=2?Jt(i[1].coordinate-i[0].coordinate):1,y=Vue(a,v,p);return l==="equidistantPreserveStart"?Yue(v,y,m,i,o):(l==="preserveStart"||l==="preserveStartEnd"?h=ece(v,y,m,i,o,l==="preserveStartEnd"):h=Zue(v,y,m,i,o),h.filter(function(x){return x.isShow}))}var tce=["viewBox"],rce=["viewBox"],nce=["ticks"];function il(e){"@babel/helpers - typeof";return il=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},il(e)}function os(){return os=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function ice(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ace(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function wP(e,t){for(var r=0;r0?l(this.props):l(p)),o<=0||s<=0||!g||!g.length?null:$.createElement(xe,{className:fe("recharts-cartesian-axis",u),ref:function(v){n.layerReference=v}},a&&this.renderAxisLine(),this.renderTicks(g,this.state.fontSize,this.state.letterSpacing),Tt.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,s=fe(i.className,"recharts-cartesian-axis-tick-value");return $.isValidElement(n)?o=$.cloneElement(n,xt(xt({},i),{},{className:s})):le(n)?o=n(xt(xt({},i),{},{className:s})):o=$.createElement(xo,os({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(N.Component);Ow(Ml,"displayName","CartesianAxis");Ow(Ml,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var dce=["x1","y1","x2","y2","key"],hce=["offset"];function So(e){"@babel/helpers - typeof";return So=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},So(e)}function SP(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Kt(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function vce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var yce=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,s=t.height,l=t.ry;return $.createElement("rect",{x:i,y:a,ry:l,width:o,height:s,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function N$(e,t){var r;if($.isValidElement(e))r=$.cloneElement(e,t);else if(le(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,s=t.key,l=jP(t,dce),u=ne(l,!1);u.offset;var f=jP(u,hce);r=$.createElement("line",Ha({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:s}))}return r}function xce(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=Kt(Kt({},e),{},{x1:t,y1:s,x2:t+r,y2:s,key:"line-".concat(l),index:l});return N$(i,u)});return $.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function bce(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(s,l){var u=Kt(Kt({},e),{},{x1:s,y1:t,x2:s,y2:t+r,key:"line-".concat(l),index:l});return N$(i,u)});return $.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function wce(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var f=s.map(function(h){return Math.round(h+i-i)}).sort(function(h,p){return h-p});i!==f[0]&&f.unshift(0);var d=f.map(function(h,p){var g=!f[p+1],m=g?i+o-h:f[p+1]-h;if(m<=0)return null;var v=p%t.length;return $.createElement("rect",{key:"react-".concat(p),y:h,x:n,height:m,width:a,stroke:"none",fill:t[v],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return $.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Sce(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!r||!n||!n.length)return null;var f=u.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==f[0]&&f.unshift(0);var d=f.map(function(h,p){var g=!f[p+1],m=g?a+s-h:f[p+1]-h;if(m<=0)return null;var v=p%n.length;return $.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:m,height:l,stroke:"none",fill:n[v],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return $.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var jce=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return j2(jw(Kt(Kt(Kt({},Ml.defaultProps),n),{},{ticks:ri(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},Oce=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return j2(jw(Kt(Kt(Kt({},Ml.defaultProps),n),{},{ticks:ri(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},zo={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function oi(e){var t,r,n,i,a,o,s=xw(),l=bw(),u=fue(),f=Kt(Kt({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:zo.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:zo.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:zo.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:zo.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:zo.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:zo.verticalFill,x:G(e.x)?e.x:u.left,y:G(e.y)?e.y:u.top,width:G(e.width)?e.width:u.width,height:G(e.height)?e.height:u.height}),d=f.x,h=f.y,p=f.width,g=f.height,m=f.syncWithTicks,v=f.horizontalValues,y=f.verticalValues,x=lue(),b=uue();if(!G(p)||p<=0||!G(g)||g<=0||!G(d)||d!==+d||!G(h)||h!==+h)return null;var S=f.verticalCoordinatesGenerator||jce,w=f.horizontalCoordinatesGenerator||Oce,O=f.horizontalPoints,j=f.verticalPoints;if((!O||!O.length)&&le(w)){var P=v&&v.length,A=w({yAxis:b?Kt(Kt({},b),{},{ticks:P?v:b.ticks}):void 0,width:s,height:l,offset:u},P?!0:m);dn(Array.isArray(A),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(So(A),"]")),Array.isArray(A)&&(O=A)}if((!j||!j.length)&&le(S)){var _=y&&y.length,E=S({xAxis:x?Kt(Kt({},x),{},{ticks:_?y:x.ticks}):void 0,width:s,height:l,offset:u},_?!0:m);dn(Array.isArray(E),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(So(E),"]")),Array.isArray(E)&&(j=E)}return $.createElement("g",{className:"recharts-cartesian-grid"},$.createElement(yce,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),$.createElement(xce,Ha({},f,{offset:u,horizontalPoints:O,xAxis:x,yAxis:b})),$.createElement(bce,Ha({},f,{offset:u,verticalPoints:j,xAxis:x,yAxis:b})),$.createElement(wce,Ha({},f,{horizontalPoints:O})),$.createElement(Sce,Ha({},f,{verticalPoints:j})))}oi.displayName="CartesianGrid";var Nce=["type","layout","connectNulls","ref"],Pce=["key"];function al(e){"@babel/helpers - typeof";return al=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},al(e)}function OP(e,t){if(e==null)return{};var r=Ace(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ace(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Eu(){return Eu=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);rd){p=[].concat(Bo(l.slice(0,g)),[d-m]);break}var v=p.length%2===0?[0,h]:[h];return[].concat(Bo(t.repeat(l,f)),Bo(p),v).map(function(y){return"".concat(y,"px")}).join(", ")}),on(r,"id",ko("recharts-line-")),on(r,"pathRef",function(o){r.mainCurve=o}),on(r,"handleAnimationEnd",function(){r.setState({isAnimationFinished:!0}),r.props.onAnimationEnd&&r.props.onAnimationEnd()}),on(r,"handleAnimationStart",function(){r.setState({isAnimationFinished:!1}),r.props.onAnimationStart&&r.props.onAnimationStart()}),r}return Rce(t,e),$ce(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();this.setState({totalLength:n})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();n!==this.state.totalLength&&this.setState({totalLength:n})}}},{key:"getTotalLength",value:function(){var n=this.mainCurve;try{return n&&n.getTotalLength&&n.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(n,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,s=a.xAxis,l=a.yAxis,u=a.layout,f=a.children,d=rr(f,$l);if(!d)return null;var h=function(m,v){return{x:m.x,y:m.y,value:m.value,errorVal:Je(m.payload,v)}},p={clipPath:n?"url(#clipPath-".concat(i,")"):null};return $.createElement(xe,p,d.map(function(g){return $.cloneElement(g,{key:"bar-".concat(g.props.dataKey),data:o,xAxis:s,yAxis:l,layout:u,dataPointFormatter:h})}))}},{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,f=s.dataKey,d=ne(this.props,!1),h=ne(l,!0),p=u.map(function(m,v){var y=yr(yr(yr({key:"dot-".concat(v),r:3},d),h),{},{index:v,cx:m.x,cy:m.y,value:m.value,dataKey:f,payload:m.payload,points:u});return t.renderDotItem(l,y)}),g={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return $.createElement(xe,Eu({className:"recharts-line-dots",key:"dots"},g),p)}},{key:"renderCurveStatically",value:function(n,i,a,o){var s=this.props,l=s.type,u=s.layout,f=s.connectNulls;s.ref;var d=OP(s,Nce),h=yr(yr(yr({},ne(d,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:n},o),{},{type:l,layout:u,connectNulls:f});return $.createElement(wc,Eu({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(n,i){var a=this,o=this.props,s=o.points,l=o.strokeDasharray,u=o.isAnimationActive,f=o.animationBegin,d=o.animationDuration,h=o.animationEasing,p=o.animationId,g=o.animateNewValues,m=o.width,v=o.height,y=this.state,x=y.prevPoints,b=y.totalLength;return $.createElement(gn,{begin:f,duration:d,isActive:u,easing:h,from:{t:0},to:{t:1},key:"line-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(S){var w=S.t;if(x){var O=x.length/s.length,j=s.map(function(k,D){var F=Math.floor(D*O);if(x[F]){var M=x[F],C=Dt(M.x,k.x),R=Dt(M.y,k.y);return yr(yr({},k),{},{x:C(w),y:R(w)})}if(g){var T=Dt(m*2,k.x),z=Dt(v/2,k.y);return yr(yr({},k),{},{x:T(w),y:z(w)})}return yr(yr({},k),{},{x:k.x,y:k.y})});return a.renderCurveStatically(j,n,i)}var P=Dt(0,b),A=P(w),_;if(l){var E="".concat(l).split(/[,\s]+/gim).map(function(k){return parseFloat(k)});_=a.getStrokeDasharray(A,b,E)}else _=a.generateSimpleStrokeDasharray(b,A);return a.renderCurveStatically(s,n,i,{strokeDasharray:_})})}},{key:"renderCurve",value:function(n,i){var a=this.props,o=a.points,s=a.isAnimationActive,l=this.state,u=l.prevPoints,f=l.totalLength;return s&&o&&o.length&&(!u&&f>0||!_l(u,o))?this.renderCurveWithAnimation(n,i):this.renderCurveStatically(o,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,s=i.points,l=i.className,u=i.xAxis,f=i.yAxis,d=i.top,h=i.left,p=i.width,g=i.height,m=i.isAnimationActive,v=i.id;if(a||!s||!s.length)return null;var y=this.state.isAnimationFinished,x=s.length===1,b=fe("recharts-line",l),S=u&&u.allowDataOverflow,w=f&&f.allowDataOverflow,O=S||w,j=se(v)?this.id:v,P=(n=ne(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},A=P.r,_=A===void 0?3:A,E=P.strokeWidth,k=E===void 0?2:E,D=nW(o)?o:{},F=D.clipDot,M=F===void 0?!0:F,C=_*2+k;return $.createElement(xe,{className:b},S||w?$.createElement("defs",null,$.createElement("clipPath",{id:"clipPath-".concat(j)},$.createElement("rect",{x:S?h:h-p/2,y:w?d:d-g/2,width:S?p:p*2,height:w?g:g*2})),!M&&$.createElement("clipPath",{id:"clipPath-dots-".concat(j)},$.createElement("rect",{x:h-C/2,y:d-C/2,width:p+C,height:g+C}))):null,!x&&this.renderCurve(O,j),this.renderErrorBar(O,j),(x||o)&&this.renderDots(O,M,j),(!m||y)&&Dn.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:i.curPoints}:n.points!==i.curPoints?{curPoints:n.points}:null}},{key:"repeat",value:function(n,i){for(var a=n.length%2!==0?[].concat(Bo(n),[0]):n,o=[],s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Yce(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Xce(e){var t=e.option,r=e.isActive,n=Gce(e,Vce);return typeof t=="string"?N.createElement(qh,ku({option:N.createElement(em,ku({type:t},n)),isActive:r,shapeType:"symbols"},n)):N.createElement(qh,ku({option:t,isActive:r,shapeType:"symbols"},n))}function sl(e){"@babel/helpers - typeof";return sl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sl(e)}function _u(){return _u=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function qfe(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Hfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Vfe(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&G(i)&&G(a)?t.slice(i,a+1):[]};function H$(e){return e==="number"?[0,"auto"]:void 0}var ax=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,s=Em(r,t);return n<0||!a||!a.length||n>=s.length?null:a.reduce(function(l,u){var f,d=(f=u.props.data)!==null&&f!==void 0?f:r;d&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(d=d.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=d===void 0?s:d;h=ih(p,o.dataKey,i)}else h=d&&d[n]||s[n];return h?[].concat(fl(l),[E2(u,h)]):l},[])},MP=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=ade(a,n),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,f=ire(o,s,u,l);if(f>=0&&u){var d=u[f]&&u[f].value,h=ax(t,r,f,d),p=ode(n,s,f,a);return{activeTooltipIndex:f,activeLabel:d,activePayload:h,activeCoordinate:p}}return null},sde=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,h=t.stackOffset,p=S2(f,a);return n.reduce(function(g,m){var v,y=m.type.defaultProps!==void 0?U(U({},m.type.defaultProps),m.props):m.props,x=y.type,b=y.dataKey,S=y.allowDataOverflow,w=y.allowDuplicatedCategory,O=y.scale,j=y.ticks,P=y.includeHidden,A=y[o];if(g[A])return g;var _=Em(t.data,{graphicalItems:i.filter(function(q){var L,Y=o in q.props?q.props[o]:(L=q.type.defaultProps)===null||L===void 0?void 0:L[o];return Y===A}),dataStartIndex:l,dataEndIndex:u}),E=_.length,k,D,F;$fe(y.domain,S,x)&&(k=v0(y.domain,null,S),p&&(x==="number"||O!=="auto")&&(F=Ou(_,b,"category")));var M=H$(x);if(!k||k.length===0){var C,R=(C=y.domain)!==null&&C!==void 0?C:M;if(b){if(k=Ou(_,b,x),x==="category"&&p){var T=H8(k);w&&T?(D=k,k=Vh(0,E)):w||(k=nN(R,k,m).reduce(function(q,L){return q.indexOf(L)>=0?q:[].concat(fl(q),[L])},[]))}else if(x==="category")w?k=k.filter(function(q){return q!==""&&!se(q)}):k=nN(R,k,m).reduce(function(q,L){return q.indexOf(L)>=0||L===""||se(L)?q:[].concat(fl(q),[L])},[]);else if(x==="number"){var z=ure(_,i.filter(function(q){var L,Y,ve=o in q.props?q.props[o]:(L=q.type.defaultProps)===null||L===void 0?void 0:L[o],Ne="hide"in q.props?q.props.hide:(Y=q.type.defaultProps)===null||Y===void 0?void 0:Y.hide;return ve===A&&(P||!Ne)}),b,a,f);z&&(k=z)}p&&(x==="number"||O!=="auto")&&(F=Ou(_,b,"category"))}else p?k=Vh(0,E):s&&s[A]&&s[A].hasStack&&x==="number"?k=h==="expand"?[0,1]:A2(s[A].stackGroups,l,u):k=w2(_,i.filter(function(q){var L=o in q.props?q.props[o]:q.type.defaultProps[o],Y="hide"in q.props?q.props.hide:q.type.defaultProps.hide;return L===A&&(P||!Y)}),x,f,!0);if(x==="number")k=rx(d,k,A,a,j),R&&(k=v0(R,k,S));else if(x==="category"&&R){var W=R,H=k.every(function(q){return W.indexOf(q)>=0});H&&(k=W)}}return U(U({},g),{},oe({},A,U(U({},y),{},{axisType:a,domain:k,categoricalDomain:F,duplicateDomain:D,originalDomain:(v=y.domain)!==null&&v!==void 0?v:M,isCategorical:p,layout:f})))},{})},lde=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.layout,d=t.children,h=Em(t.data,{graphicalItems:n,dataStartIndex:l,dataEndIndex:u}),p=h.length,g=S2(f,a),m=-1;return n.reduce(function(v,y){var x=y.type.defaultProps!==void 0?U(U({},y.type.defaultProps),y.props):y.props,b=x[o],S=H$("number");if(!v[b]){m++;var w;return g?w=Vh(0,p):s&&s[b]&&s[b].hasStack?(w=A2(s[b].stackGroups,l,u),w=rx(d,w,b,a)):(w=v0(S,w2(h,n.filter(function(O){var j,P,A=o in O.props?O.props[o]:(j=O.type.defaultProps)===null||j===void 0?void 0:j[o],_="hide"in O.props?O.props.hide:(P=O.type.defaultProps)===null||P===void 0?void 0:P.hide;return A===b&&!_}),"number",f),i.defaultProps.allowDataOverflow),w=rx(d,w,b,a)),U(U({},v),{},oe({},b,U(U({axisType:a},i.defaultProps),{},{hide:!0,orientation:Ar(nde,"".concat(a,".").concat(m%2),null),domain:w,originalDomain:S,isCategorical:g,layout:f})))}return v},{})},ude=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,s=r.stackGroups,l=r.dataStartIndex,u=r.dataEndIndex,f=t.children,d="".concat(i,"Id"),h=rr(f,a),p={};return h&&h.length?p=sde(t,{axes:h,graphicalItems:o,axisType:i,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):o&&o.length&&(p=lde(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:d,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),p},cde=function(t){var r=Fi(t),n=ri(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Bb(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:$h(r,n)}},IP=function(t){var r=t.children,n=t.defaultShowTooltip,i=wr(r,Zs),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},fde=function(t){return!t||!t.length?!1:t.some(function(r){var n=ii(r&&r.type);return n&&n.indexOf("Bar")>=0})},DP=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},dde=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,s=t.yAxisMap,l=s===void 0?{}:s,u=n.width,f=n.height,d=n.children,h=n.margin||{},p=wr(d,Zs),g=wr(d,nr),m=Object.keys(l).reduce(function(w,O){var j=l[O],P=j.orientation;return!j.mirror&&!j.hide?U(U({},w),{},oe({},P,w[P]+j.width)):w},{left:h.left||0,right:h.right||0}),v=Object.keys(o).reduce(function(w,O){var j=o[O],P=j.orientation;return!j.mirror&&!j.hide?U(U({},w),{},oe({},P,Ar(w,"".concat(P))+j.height)):w},{top:h.top||0,bottom:h.bottom||0}),y=U(U({},v),m),x=y.bottom;p&&(y.bottom+=p.props.height||Zs.defaultProps.height),g&&r&&(y=sre(y,i,n,r));var b=u-y.left-y.right,S=f-y.top-y.bottom;return U(U({brushBottom:x},y),{},{width:Math.max(b,0),height:Math.max(S,0)})},hde=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},km=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,s=o===void 0?["axis"]:o,l=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,d=t.defaultProps,h=function(y,x){var b=x.graphicalItems,S=x.stackGroups,w=x.offset,O=x.updateId,j=x.dataStartIndex,P=x.dataEndIndex,A=y.barSize,_=y.layout,E=y.barGap,k=y.barCategoryGap,D=y.maxBarSize,F=DP(_),M=F.numericAxisName,C=F.cateAxisName,R=fde(b),T=[];return b.forEach(function(z,W){var H=Em(y.data,{graphicalItems:[z],dataStartIndex:j,dataEndIndex:P}),q=z.type.defaultProps!==void 0?U(U({},z.type.defaultProps),z.props):z.props,L=q.dataKey,Y=q.maxBarSize,ve=q["".concat(M,"Id")],Ne=q["".concat(C,"Id")],we={},dt=l.reduce(function(Oa,Na){var Dm=x["".concat(Na.axisType,"Map")],$w=q["".concat(Na.axisType,"Id")];Dm&&Dm[$w]||Na.axisType==="zAxis"||wo();var Mw=Dm[$w];return U(U({},Oa),{},oe(oe({},Na.axisType,Mw),"".concat(Na.axisType,"Ticks"),ri(Mw)))},we),X=dt[C],ue=dt["".concat(C,"Ticks")],ce=S&&S[ve]&&S[ve].hasStack&&yre(z,S[ve].stackGroups),K=ii(z.type).indexOf("Bar")>=0,Ae=$h(X,ue),me=[],Le=R&&are({barSize:A,stackGroups:S,totalSize:hde(dt,C)});if(K){var ct,or,Ai=se(Y)?D:Y,Mo=(ct=(or=$h(X,ue,!0))!==null&&or!==void 0?or:Ai)!==null&&ct!==void 0?ct:0;me=ore({barGap:E,barCategoryGap:k,bandSize:Mo!==Ae?Mo:Ae,sizeList:Le[Ne],maxBarSize:Ai}),Mo!==Ae&&(me=me.map(function(Oa){return U(U({},Oa),{},{position:U(U({},Oa.position),{},{offset:Oa.position.offset-Mo/2})})}))}var mf=z&&z.type&&z.type.getComposedData;mf&&T.push({props:U(U({},mf(U(U({},dt),{},{displayedData:H,props:y,dataKey:L,item:z,bandSize:Ae,barPosition:me,offset:w,stackedData:ce,layout:_,dataStartIndex:j,dataEndIndex:P}))),{},oe(oe(oe({key:z.key||"item-".concat(W)},M,dt[M]),C,dt[C]),"animationId",O)),childIndex:oW(z,y.children),item:z})}),T},p=function(y,x){var b=y.props,S=y.dataStartIndex,w=y.dataEndIndex,O=y.updateId;if(!QS({props:b}))return null;var j=b.children,P=b.layout,A=b.stackOffset,_=b.data,E=b.reverseStackOrder,k=DP(P),D=k.numericAxisName,F=k.cateAxisName,M=rr(j,n),C=gre(_,M,"".concat(D,"Id"),"".concat(F,"Id"),A,E),R=l.reduce(function(q,L){var Y="".concat(L.axisType,"Map");return U(U({},q),{},oe({},Y,ude(b,U(U({},L),{},{graphicalItems:M,stackGroups:L.axisType===D&&C,dataStartIndex:S,dataEndIndex:w}))))},{}),T=dde(U(U({},R),{},{props:b,graphicalItems:M}),x==null?void 0:x.legendBBox);Object.keys(R).forEach(function(q){R[q]=f(b,R[q],T,q.replace("Map",""),r)});var z=R["".concat(F,"Map")],W=cde(z),H=h(b,U(U({},R),{},{dataStartIndex:S,dataEndIndex:w,updateId:O,graphicalItems:M,stackGroups:C,offset:T}));return U(U({formattedGraphicalItems:H,graphicalItems:M,offset:T,stackGroups:C},W),R)},g=function(v){function y(x){var b,S,w;return Hfe(this,y),w=Yfe(this,y,[x]),oe(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),oe(w,"accessibilityManager",new Cfe),oe(w,"handleLegendBBoxUpdate",function(O){if(O){var j=w.state,P=j.dataStartIndex,A=j.dataEndIndex,_=j.updateId;w.setState(U({legendBBox:O},p({props:w.props,dataStartIndex:P,dataEndIndex:A,updateId:_},U(U({},w.state),{},{legendBBox:O}))))}}),oe(w,"handleReceiveSyncEvent",function(O,j,P){if(w.props.syncId===O){if(P===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(j)}}),oe(w,"handleBrushChange",function(O){var j=O.startIndex,P=O.endIndex;if(j!==w.state.dataStartIndex||P!==w.state.dataEndIndex){var A=w.state.updateId;w.setState(function(){return U({dataStartIndex:j,dataEndIndex:P},p({props:w.props,dataStartIndex:j,dataEndIndex:P,updateId:A},w.state))}),w.triggerSyncEvent({dataStartIndex:j,dataEndIndex:P})}}),oe(w,"handleMouseEnter",function(O){var j=w.getMouseInfo(O);if(j){var P=U(U({},j),{},{isTooltipActive:!0});w.setState(P),w.triggerSyncEvent(P);var A=w.props.onMouseEnter;le(A)&&A(P,O)}}),oe(w,"triggeredAfterMouseMove",function(O){var j=w.getMouseInfo(O),P=j?U(U({},j),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(P),w.triggerSyncEvent(P);var A=w.props.onMouseMove;le(A)&&A(P,O)}),oe(w,"handleItemMouseEnter",function(O){w.setState(function(){return{isTooltipActive:!0,activeItem:O,activePayload:O.tooltipPayload,activeCoordinate:O.tooltipPosition||{x:O.cx,y:O.cy}}})}),oe(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),oe(w,"handleMouseMove",function(O){O.persist(),w.throttleTriggeredAfterMouseMove(O)}),oe(w,"handleMouseLeave",function(O){w.throttleTriggeredAfterMouseMove.cancel();var j={isTooltipActive:!1};w.setState(j),w.triggerSyncEvent(j);var P=w.props.onMouseLeave;le(P)&&P(j,O)}),oe(w,"handleOuterEvent",function(O){var j=aW(O),P=Ar(w.props,"".concat(j));if(j&&le(P)){var A,_;/.*touch.*/i.test(j)?_=w.getMouseInfo(O.changedTouches[0]):_=w.getMouseInfo(O),P((A=_)!==null&&A!==void 0?A:{},O)}}),oe(w,"handleClick",function(O){var j=w.getMouseInfo(O);if(j){var P=U(U({},j),{},{isTooltipActive:!0});w.setState(P),w.triggerSyncEvent(P);var A=w.props.onClick;le(A)&&A(P,O)}}),oe(w,"handleMouseDown",function(O){var j=w.props.onMouseDown;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleMouseUp",function(O){var j=w.props.onMouseUp;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleTouchMove",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(O.changedTouches[0])}),oe(w,"handleTouchStart",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.handleMouseDown(O.changedTouches[0])}),oe(w,"handleTouchEnd",function(O){O.changedTouches!=null&&O.changedTouches.length>0&&w.handleMouseUp(O.changedTouches[0])}),oe(w,"handleDoubleClick",function(O){var j=w.props.onDoubleClick;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"handleContextMenu",function(O){var j=w.props.onContextMenu;if(le(j)){var P=w.getMouseInfo(O);j(P,O)}}),oe(w,"triggerSyncEvent",function(O){w.props.syncId!==void 0&&qg.emit(Hg,w.props.syncId,O,w.eventEmitterSymbol)}),oe(w,"applySyncEvent",function(O){var j=w.props,P=j.layout,A=j.syncMethod,_=w.state.updateId,E=O.dataStartIndex,k=O.dataEndIndex;if(O.dataStartIndex!==void 0||O.dataEndIndex!==void 0)w.setState(U({dataStartIndex:E,dataEndIndex:k},p({props:w.props,dataStartIndex:E,dataEndIndex:k,updateId:_},w.state)));else if(O.activeTooltipIndex!==void 0){var D=O.chartX,F=O.chartY,M=O.activeTooltipIndex,C=w.state,R=C.offset,T=C.tooltipTicks;if(!R)return;if(typeof A=="function")M=A(T,O);else if(A==="value"){M=-1;for(var z=0;z=0){var ce,K;if(D.dataKey&&!D.allowDuplicatedCategory){var Ae=typeof D.dataKey=="function"?ue:"payload.".concat(D.dataKey.toString());ce=ih(z,Ae,M),K=W&&H&&ih(H,Ae,M)}else ce=z==null?void 0:z[F],K=W&&H&&H[F];if(Ne||ve){var me=O.props.activeIndex!==void 0?O.props.activeIndex:F;return[N.cloneElement(O,U(U(U({},A.props),dt),{},{activeIndex:me})),null,null]}if(!se(ce))return[X].concat(fl(w.renderActivePoints({item:A,activePoint:ce,basePoint:K,childIndex:F,isRange:W})))}else{var Le,ct=(Le=w.getItemByXY(w.state.activeCoordinate))!==null&&Le!==void 0?Le:{graphicalItem:X},or=ct.graphicalItem,Ai=or.item,Mo=Ai===void 0?O:Ai,mf=or.childIndex,Oa=U(U(U({},A.props),dt),{},{activeIndex:mf});return[N.cloneElement(Mo,Oa),null,null]}return W?[X,null,null]:[X,null]}),oe(w,"renderCustomized",function(O,j,P){return N.cloneElement(O,U(U({key:"recharts-customized-".concat(P)},w.props),w.state))}),oe(w,"renderMap",{CartesianGrid:{handler:Jf,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Jf},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Jf},YAxis:{handler:Jf},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((b=x.id)!==null&&b!==void 0?b:ko("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=yC(w.triggeredAfterMouseMove,(S=x.throttleDelay)!==null&&S!==void 0?S:1e3/60),w.state={},w}return Jfe(y,v),Gfe(y,[{key:"componentDidMount",value:function(){var b,S;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(b=this.props.margin.left)!==null&&b!==void 0?b:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var b=this.props,S=b.children,w=b.data,O=b.height,j=b.layout,P=wr(S,st);if(P){var A=P.props.defaultIndex;if(!(typeof A!="number"||A<0||A>this.state.tooltipTicks.length-1)){var _=this.state.tooltipTicks[A]&&this.state.tooltipTicks[A].value,E=ax(this.state,w,A,_),k=this.state.tooltipTicks[A].coordinate,D=(this.state.offset.top+O)/2,F=j==="horizontal",M=F?{x:k,y:D}:{y:k,x:D},C=this.state.formattedGraphicalItems.find(function(T){var z=T.item;return z.type.name==="Scatter"});C&&(M=U(U({},M),C.props.points[A].tooltipPosition),E=C.props.points[A].tooltipPayload);var R={activeTooltipIndex:A,isTooltipActive:!0,activeLabel:_,activePayload:E,activeCoordinate:M};this.setState(R),this.renderCursor(P),this.accessibilityManager.setIndex(A)}}}},{key:"getSnapshotBeforeUpdate",value:function(b,S){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==S.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==b.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==b.margin){var w,O;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0}})}return null}},{key:"componentDidUpdate",value:function(b){Cy([wr(b.children,st)],[wr(this.props.children,st)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var b=wr(this.props.children,st);if(b&&typeof b.props.shared=="boolean"){var S=b.props.shared?"axis":"item";return s.indexOf(S)>=0?S:a}return a}},{key:"getMouseInfo",value:function(b){if(!this.container)return null;var S=this.container,w=S.getBoundingClientRect(),O=CQ(w),j={chartX:Math.round(b.pageX-O.left),chartY:Math.round(b.pageY-O.top)},P=w.width/S.offsetWidth||1,A=this.inRange(j.chartX,j.chartY,P);if(!A)return null;var _=this.state,E=_.xAxisMap,k=_.yAxisMap,D=this.getTooltipEventType(),F=MP(this.state,this.props.data,this.props.layout,A);if(D!=="axis"&&E&&k){var M=Fi(E).scale,C=Fi(k).scale,R=M&&M.invert?M.invert(j.chartX):null,T=C&&C.invert?C.invert(j.chartY):null;return U(U({},j),{},{xValue:R,yValue:T},F)}return F?U(U({},j),F):null}},{key:"inRange",value:function(b,S){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,O=this.props.layout,j=b/w,P=S/w;if(O==="horizontal"||O==="vertical"){var A=this.state.offset,_=j>=A.left&&j<=A.left+A.width&&P>=A.top&&P<=A.top+A.height;return _?{x:j,y:P}:null}var E=this.state,k=E.angleAxisMap,D=E.radiusAxisMap;if(k&&D){var F=Fi(k);return oN({x:j,y:P},F)}return null}},{key:"parseEventsOfWrapper",value:function(){var b=this.props.children,S=this.getTooltipEventType(),w=wr(b,st),O={};w&&S==="axis"&&(w.props.trigger==="click"?O={onClick:this.handleClick}:O={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var j=ah(this.props,this.handleOuterEvent);return U(U({},j),O)}},{key:"addListener",value:function(){qg.on(Hg,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){qg.removeListener(Hg,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(b,S,w){for(var O=this.state.formattedGraphicalItems,j=0,P=O.length;j{const i=mde.find(s=>s.value===t);if(!i)return[];const a=new Date,o=new Map;for(let s=0;s{const l=new Date(s.createdAt),u=ca(Ey(l),"yyyy-MM-dd"),f=o.get(u)||0;o.set(u,f+1)}),Array.from(o.entries()).map(([s,l])=>({date:s,experiments:l,displayDate:ca(new Date(s),"MMM dd")})).sort((s,l)=>s.date.localeCompare(l.date))},[e,t]),n=N.useMemo(()=>e.length,[e]);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Experiments Timeline"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",n]})]}),r.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No experiments data available for this time range"}):c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(cf,{data:r,margin:{left:5,right:10,top:5,bottom:0},children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e2e8f0",opacity:.5}),c.jsx(Er,{dataKey:"displayDate",tick:{fontSize:9},angle:-45,textAnchor:"end",height:40}),c.jsx(kr,{tick:{fontSize:9},width:35,label:{value:"Count",angle:-90,position:"insideLeft",offset:0,style:{textAnchor:"middle",fontSize:9}}}),c.jsx(st,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"},content:({active:i,payload:a,label:o})=>{if(!i||!a||!a.length)return null;const s=a[0].payload;return c.jsxs("div",{className:"bg-card border border-border rounded-md p-2 shadow-sm",children:[c.jsx("div",{className:"text-[10px] font-medium mb-1.5",children:o}),c.jsx("div",{className:"space-y-0.5 text-[10px]",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-purple-400"}),c.jsx("span",{className:"text-muted-foreground",children:"Launched:"}),c.jsx("span",{className:"font-medium ml-auto",children:s.experiments})]})})]})}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px",paddingTop:"2px"},iconType:"circle",iconSize:6,verticalAlign:"bottom",height:20}),c.jsx(hn,{type:"monotone",dataKey:"experiments",stroke:"#a78bfa",strokeWidth:2,dot:{fill:"#a78bfa",r:3},activeDot:{r:5},name:"Launched"})]})})]})}const LP={COMPLETED:"#22c55e",RUNNING:"#3b82f6",FAILED:"#ef4444",PENDING:"#eab308",CANCELLED:"#6b7280",UNKNOWN:"#a78bfa"};function vde({experiments:e}){const t=N.useMemo(()=>{const n=new Map;return e.forEach(i=>{const a=i.status,o=n.get(a)||0;n.set(a,o+1)}),Array.from(n.entries()).map(([i,a])=>({name:i,value:a,color:LP[i]||LP.UNKNOWN})).sort((i,a)=>a.value-i.value)},[e]),r=t.reduce((n,i)=>n+i.value,0);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Experiments Distribution"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",r]})]}),t.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No data available"}):c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(ff,{children:[c.jsx($r,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:65,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,i)=>c.jsx(Oi,{fill:n.color},`cell-${i}`))}),c.jsx(st,{formatter:n=>[n,"Count"],contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})]})}const yde=[{value:"7days",label:"7 Days",days:7},{value:"1month",label:"1 Month",days:30},{value:"3months",label:"3 Months",days:90}];function xde({data:e,timeRange:t}){const r=N.useMemo(()=>{const o=yde.find(u=>u.value===t);if(!o)return[];const s=new Date,l=new Map;for(let u=0;u{const f=ca(new Date(u.date),"yyyy-MM-dd");l.has(f)&&l.set(f,{totalTokens:u.totalTokens,inputTokens:u.inputTokens,outputTokens:u.outputTokens})}),Array.from(l.entries()).map(([u,f])=>({date:u,displayDate:ca(new Date(u),"MMM dd"),totalTokens:f.totalTokens,inputTokens:f.inputTokens,outputTokens:f.outputTokens})).sort((u,f)=>u.date.localeCompare(f.date))},[e,t]),n=N.useMemo(()=>r.reduce((o,s)=>o+s.totalTokens,0),[r]),i=N.useMemo(()=>r.reduce((o,s)=>o+s.inputTokens,0),[r]),a=N.useMemo(()=>r.reduce((o,s)=>o+s.outputTokens,0),[r]);return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Token Usage"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",n.toLocaleString()," (",i.toLocaleString(),"↓ ",a.toLocaleString(),"↑)"]})]}),c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(cf,{data:r,margin:{left:5,right:10,top:5,bottom:0},children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e2e8f0",opacity:.5}),c.jsx(Er,{dataKey:"displayDate",tick:{fontSize:9},angle:-45,textAnchor:"end",height:40}),c.jsx(kr,{tick:{fontSize:9},width:35,tickFormatter:o=>o>=1e6?`${(o/1e6).toFixed(1)}M`:o>=1e3?`${(o/1e3).toFixed(1)}K`:o.toString(),label:{value:"Tokens",angle:-90,position:"insideLeft",offset:0,style:{textAnchor:"middle",fontSize:9}}}),c.jsx(st,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"},content:({active:o,payload:s,label:l})=>{if(!o||!s||!s.length)return null;const u=s[0].payload;return c.jsxs("div",{className:"bg-card border border-border rounded-md p-2 shadow-sm",children:[c.jsx("div",{className:"text-[10px] font-medium mb-1.5",children:l}),c.jsxs("div",{className:"space-y-0.5 text-[10px]",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Total:"}),c.jsx("span",{className:"font-medium ml-auto",children:u.totalTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Input:"}),c.jsx("span",{className:"font-medium ml-auto",children:u.inputTokens.toLocaleString()})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("div",{className:"w-2 h-2 rounded-full bg-orange-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Output:"}),c.jsx("span",{className:"font-medium ml-auto",children:u.outputTokens.toLocaleString()})]})]})]})}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px",paddingTop:"2px"},iconType:"circle",iconSize:6,verticalAlign:"bottom",height:20}),c.jsx(hn,{type:"monotone",dataKey:"totalTokens",stroke:"#3b82f6",strokeWidth:2,dot:{fill:"#3b82f6",r:3},activeDot:{r:5},name:"Total"}),c.jsx(hn,{type:"monotone",dataKey:"inputTokens",stroke:"#10b981",strokeWidth:2,dot:{fill:"#10b981",r:3},activeDot:{r:5},name:"Input"}),c.jsx(hn,{type:"monotone",dataKey:"outputTokens",stroke:"#f59e0b",strokeWidth:2,dot:{fill:"#f59e0b",r:3},activeDot:{r:5},name:"Output"})]})})]})}const FP=["#8b5cf6","#3b82f6","#10b981","#f59e0b","#ef4444","#ec4899","#06b6d4","#84cc16","#f97316","#6366f1"];function bde({data:e}){const t=e&&e.length>0?e.reduce((n,i)=>n+i.count,0):0,r=e&&e.length>0?e.map(n=>({name:n.model,value:n.count})):[];return c.jsxs("div",{className:"space-y-1.5",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h3",{className:"text-xs font-semibold",children:"Model Distribution"}),c.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Total: ",t]})]}),!e||e.length===0?c.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-muted-foreground",children:"No model data available"}):c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(ff,{children:[c.jsx($r,{data:r,cx:"50%",cy:"50%",labelLine:!1,label:n=>`${(n.value/t*100).toFixed(1)}%`,outerRadius:65,dataKey:"value",style:{fontSize:"10px"},children:r.map((n,i)=>c.jsx(Oi,{fill:FP[i%FP.length]},`cell-${i}`))}),c.jsx(st,{formatter:n=>[n,"Count"],contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})]})}const zP=[{value:"7days",label:"7 Days",days:7},{value:"1month",label:"1 Month",days:30},{value:"3months",label:"3 Months",days:90}];function wde(){var p,g,m,v;const{selectedTeamId:e}=wi(),[t,r]=N.useState("7days"),{data:n,isLoading:i}=ef(e||""),{data:a,isLoading:o}=uB(e||"",{enabled:!!e}),s=((p=zP.find(y=>y.value===t))==null?void 0:p.days)||30,{data:l,isLoading:u}=cB(e||"",s),{data:f,isLoading:d}=dB(e||""),h=N.useMemo(()=>{if(!a)return[];const y=new Date,x=t==="7days"?yb(y,7):t==="1month"?ky(y,1):ky(y,3);return a.filter(b=>{const S=new Date(b.createdAt);return S>=x&&S<=y})},[a,t]);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Dashboard"}),c.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"Overview of your team's experiments and activity"})]}),c.jsx("div",{children:c.jsx("h2",{className:"text-sm font-semibold text-foreground mb-1.5",children:"Overview"})}),i?c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:[c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"}),c.jsx(je,{className:"h-14 w-full"})]}):c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:[c.jsx(ie,{children:c.jsx(ae,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"EXPERIMENTS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalExperiments)||0})]}),c.jsx("div",{className:"p-1.5 bg-purple-100 rounded-lg",children:c.jsx(hb,{className:"h-3.5 w-3.5 text-purple-600"})})]})})}),c.jsx(ie,{children:c.jsx(ae,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"AGENTS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalAgents)||0})]}),c.jsx("div",{className:"p-1.5 bg-blue-100 rounded-lg",children:c.jsx(Mn,{className:"h-3.5 w-3.5 text-blue-600"})})]})})}),c.jsx(ie,{children:c.jsx(ae,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"SESSIONS"}),c.jsx("p",{className:"text-base font-bold tabular-nums text-foreground",children:(n==null?void 0:n.totalSessions)||0})]}),c.jsx("div",{className:"p-1.5 bg-green-100 rounded-lg",children:c.jsx(J3,{className:"h-3.5 w-3.5 text-green-600"})})]})})}),c.jsx(ie,{children:c.jsx(ae,{className:"p-2.5",children:c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"space-y-0.5",children:[c.jsx("p",{className:"text-[10px] font-medium text-muted-foreground",children:"TOKENS"}),c.jsxs("p",{className:"text-base font-bold tabular-nums text-foreground",children:[(((g=n==null?void 0:n.aggregatedTokens)==null?void 0:g.totalTokens)||0).toLocaleString(),c.jsxs("span",{className:"text-muted-foreground text-[10px] ml-1 font-normal",children:["(",(((m=n==null?void 0:n.aggregatedTokens)==null?void 0:m.inputTokens)||0).toLocaleString(),"↓ ",(((v=n==null?void 0:n.aggregatedTokens)==null?void 0:v.outputTokens)||0).toLocaleString(),"↑)"]})]})]}),c.jsx("div",{className:"p-1.5 bg-orange-100 rounded-lg",children:c.jsx(b3,{className:"h-3.5 w-3.5 text-orange-600"})})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Activity"}),c.jsx("div",{className:"flex gap-1",children:zP.map(y=>c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>r(y.value),className:`h-7 px-2 text-[11px] transition-colors ${t===y.value?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:y.label},y.value))})]}),c.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:o?c.jsx(je,{className:"h-60 w-full"}):c.jsx(vde,{experiments:h||[]})})}),c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:o?c.jsx(je,{className:"h-60 w-full"}):c.jsx(gde,{experiments:h||[],timeRange:t})})})]}),c.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:d?c.jsx(je,{className:"h-60 w-full"}):c.jsx(bde,{data:f||[]})})}),c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:u?c.jsx(je,{className:"h-60 w-full"}):l?c.jsx(xde,{data:l,timeRange:t}):c.jsx("div",{className:"flex items-center justify-center h-60 text-xs text-muted-foreground",children:"No token usage data available for this time range"})})})]})]})]})}function Sde(){const e=Gc();return Kk({mutationFn:async t=>(await G_(Y_.deleteExperiments,{experimentIds:t})).deleteExperiments,onSuccess:()=>{e.invalidateQueries({queryKey:["experiments"]}),e.invalidateQueries({queryKey:["experiment"]})}})}const Il=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{className:"relative w-full overflow-auto",children:c.jsx("table",{ref:r,className:he("w-full caption-bottom text-sm",e),...t})}));Il.displayName="Table";const Dl=N.forwardRef(({className:e,...t},r)=>c.jsx("thead",{ref:r,className:he("[&_tr]:border-b",e),...t}));Dl.displayName="TableHeader";const Rl=N.forwardRef(({className:e,...t},r)=>c.jsx("tbody",{ref:r,className:he("[&_tr:last-child]:border-0",e),...t}));Rl.displayName="TableBody";const jde=N.forwardRef(({className:e,...t},r)=>c.jsx("tfoot",{ref:r,className:he("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));jde.displayName="TableFooter";const vn=N.forwardRef(({className:e,...t},r)=>c.jsx("tr",{ref:r,className:he("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));vn.displayName="TableRow";const Ge=N.forwardRef(({className:e,...t},r)=>c.jsx("th",{ref:r,className:he("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",e),...t}));Ge.displayName="TableHead";const Ye=N.forwardRef(({className:e,...t},r)=>c.jsx("td",{ref:r,className:he("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));Ye.displayName="TableCell";const Ode=N.forwardRef(({className:e,...t},r)=>c.jsx("caption",{ref:r,className:he("mt-4 text-sm text-muted-foreground",e),...t}));Ode.displayName="TableCaption";function vt({className:e,variant:t="default",...r}){const n={default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"bg-slate-100 text-slate-700 border-slate-200",destructive:"bg-red-50 text-red-700 border-red-200",outline:"text-foreground",success:"bg-emerald-50 text-emerald-700 border-emerald-200",warning:"bg-amber-50 text-amber-700 border-amber-200",unknown:"bg-purple-50 text-purple-700 border-purple-200",info:"bg-blue-50 text-blue-700 border-blue-200"};return c.jsx("div",{className:he("inline-flex items-center rounded-md border px-2 py-0.5 text-[11px] font-medium transition-colors",n[t],e),...r})}const si=N.forwardRef(({className:e,type:t,...r},n)=>c.jsx("input",{type:t,className:he("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...r}));si.displayName="Input";const Ic=N.forwardRef(({className:e,...t},r)=>c.jsx("input",{type:"checkbox",className:he("h-4 w-4 rounded border-gray-300 text-primary cursor-pointer","focus:ring-0 focus:ring-offset-0 focus:outline-none","checked:border-primary checked:bg-primary",e),ref:r,...t}));Ic.displayName="Checkbox";function Nw({value:e,onChange:t,options:r,className:n,placeholder:i}){const[a,o]=N.useState(!1),s=N.useRef(null),l=r.find(u=>u.value===e);return N.useEffect(()=>{const u=f=>{s.current&&!s.current.contains(f.target)&&o(!1)};return a&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[a]),c.jsxs("div",{ref:s,className:he("relative",n),children:[c.jsxs("button",{type:"button",onClick:()=>o(!a),className:he("flex h-9 w-full items-center justify-between rounded-md border bg-background px-3 py-2 text-[13px] font-medium text-foreground","hover:bg-accent hover:text-accent-foreground transition-colors","focus:outline-none focus:border-blue-300 focus:bg-blue-50","disabled:cursor-not-allowed disabled:opacity-50"),children:[c.jsx("span",{children:(l==null?void 0:l.label)||i||"Select..."}),c.jsx(Ep,{className:he("h-3.5 w-3.5 opacity-50 transition-transform",a&&"transform rotate-180")})]}),a&&c.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-lg",children:c.jsx("div",{className:"max-h-60 overflow-auto p-1",children:r.map(u=>c.jsx("button",{type:"button",onClick:()=>{t(u.value),o(!1)},className:he("w-full rounded-sm px-2 py-1.5 text-[13px] text-left cursor-pointer transition-colors","hover:bg-accent hover:text-accent-foreground",e===u.value&&"bg-accent text-accent-foreground font-medium"),children:u.label},u.value))})})]})}function BP({values:e,onChange:t,options:r,className:n,placeholder:i}){const[a,o]=N.useState(!1),s=N.useRef(null),l=r.filter(p=>e.includes(p.value)),u=N.useMemo(()=>{const p={};return r.forEach(g=>{const m=g.group||"Other";p[m]||(p[m]=[]),p[m].push(g)}),p},[r]);N.useEffect(()=>{const p=g=>{s.current&&!s.current.contains(g.target)&&o(!1)};return a&&document.addEventListener("mousedown",p),()=>{document.removeEventListener("mousedown",p)}},[a]);const f=p=>{e.includes(p)?t(e.filter(g=>g!==p)):t([...e,p])},d=(p,g)=>{g.stopPropagation(),t(e.filter(m=>m!==p))},h=p=>{p.stopPropagation(),t([])};return c.jsxs("div",{ref:s,className:he("relative",n),children:[c.jsxs("button",{type:"button",onClick:()=>o(!a),className:he("flex min-h-9 w-full items-center justify-between rounded-md border bg-background px-3 py-1.5 text-[13px]","hover:bg-accent hover:text-accent-foreground transition-colors","focus:outline-none focus:border-blue-300 focus:bg-blue-50","disabled:cursor-not-allowed disabled:opacity-50"),children:[c.jsx("div",{className:"flex flex-wrap gap-1 flex-1",children:l.length===0?c.jsx("span",{className:"text-muted-foreground font-medium",children:i||"Select labels..."}):l.map(p=>{const g=p.group?`${p.group}:${p.label}`:p.label;return c.jsxs(vt,{variant:"outline",className:"text-[11px] px-1.5 py-0 font-normal",children:[g,c.jsx(Ju,{className:"ml-1 h-3 w-3 cursor-pointer hover:text-destructive",onClick:m=>d(p.value,m)})]},p.value)})}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[l.length>0&&c.jsx(Ju,{className:"h-3.5 w-3.5 opacity-50 hover:opacity-100 cursor-pointer",onClick:h}),c.jsx(Ep,{className:he("h-3.5 w-3.5 opacity-50 transition-transform",a&&"transform rotate-180")})]})]}),a&&c.jsx("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-lg",children:c.jsx("div",{className:"max-h-80 overflow-auto p-1",children:Object.entries(u).map(([p,g])=>{const m=g.map(x=>x.value),v=m.every(x=>e.includes(x)),y=()=>{if(v)t(e.filter(x=>!m.includes(x)));else{const x=[...e];m.forEach(b=>{x.includes(b)||x.push(b)}),t(x)}};return c.jsxs("div",{children:[c.jsxs("button",{type:"button",onClick:y,className:"flex items-center gap-2 w-full px-2 py-1.5 hover:bg-accent/50 transition-colors rounded-sm",title:v?"Deselect all":"Select all",children:[c.jsx("input",{type:"checkbox",checked:v,readOnly:!0,className:"h-3.5 w-3.5 rounded border-gray-300"}),c.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:p})]}),g.map(x=>c.jsxs("button",{type:"button",onClick:()=>f(x.value),className:he("w-full rounded-sm px-2 py-1.5 pl-6 text-[13px] text-left cursor-pointer transition-colors flex items-center gap-2","hover:bg-accent hover:text-accent-foreground"),children:[c.jsx("input",{type:"checkbox",checked:e.includes(x.value),onChange:()=>{},className:"h-3.5 w-3.5 rounded border-gray-300"}),c.jsx("span",{className:he(e.includes(x.value)&&"font-medium"),children:x.label})]},x.value))]},p)})})})]})}function df({currentPage:e,totalPages:t,pageSize:r,totalItems:n,onPageChange:i,itemName:a="items"}){if(n===0)return null;if(t<=1)return c.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t bg-background",children:[c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Showing ",c.jsx("span",{className:"font-medium text-foreground",children:"1"})," to"," ",c.jsx("span",{className:"font-medium text-foreground",children:n})," of"," ",c.jsx("span",{className:"font-medium text-foreground",children:n})," ",a]}),c.jsx("div",{className:"text-xs text-muted-foreground",children:"Page 1 of 1"})]});const s=(()=>{const f=[];if(t<=7)for(let h=0;h=t-4){f.push("...");for(let h=t-6;hi(0),disabled:e===0,className:"h-8 w-8 p-0",title:"First page",children:c.jsx(m3,{className:"h-3.5 w-3.5"})}),c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>i(Math.max(0,e-1)),disabled:e===0,className:"h-8 w-8 p-0",title:"Previous page",children:c.jsx(h3,{className:"h-3.5 w-3.5"})}),s.map((f,d)=>{if(f==="...")return c.jsx("div",{className:"h-8 w-8 flex items-center justify-center text-muted-foreground",children:c.jsx("span",{className:"text-sm",children:"..."})},`ellipsis-${d}`);const h=f,p=h===e;return c.jsx(lt,{variant:p?"default":"outline",size:"sm",onClick:()=>i(h),className:"h-8 w-8 p-0 text-xs",disabled:p,children:h+1},h)}),c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>i(Math.min(t-1,e+1)),disabled:e>=t-1,className:"h-8 w-8 p-0",title:"Next page",children:c.jsx(db,{className:"h-3.5 w-3.5"})}),c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>i(t-1),disabled:e>=t-1,className:"h-8 w-8 p-0",title:"Last page",children:c.jsx(v3,{className:"h-3.5 w-3.5"})})]})]})}function da(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e==null||e(i),r===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function UP(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function V$(...e){return t=>{let r=!1;const n=e.map(i=>{const a=UP(i,t);return!r&&typeof a=="function"&&(r=!0),a});if(r)return()=>{for(let i=0;i{const{children:o,...s}=a,l=N.useMemo(()=>s,Object.values(s));return c.jsx(r.Provider,{value:l,children:o})};n.displayName=e+"Provider";function i(a){const o=N.useContext(r);if(o)return o;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[n,i]}function Pde(e,t=[]){let r=[];function n(a,o){const s=N.createContext(o),l=r.length;r=[...r,o];const u=d=>{var y;const{scope:h,children:p,...g}=d,m=((y=h==null?void 0:h[e])==null?void 0:y[l])||s,v=N.useMemo(()=>g,Object.values(g));return c.jsx(m.Provider,{value:v,children:p})};u.displayName=a+"Provider";function f(d,h){var m;const p=((m=h==null?void 0:h[e])==null?void 0:m[l])||s,g=N.useContext(p);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${d}\` must be used within \`${a}\``)}return[u,f]}const i=()=>{const a=r.map(o=>N.createContext(o));return function(s){const l=(s==null?void 0:s[e])||a;return N.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return i.scopeName=e,[n,Ade(i,...t)]}function Ade(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){const o=n.reduce((s,{useScope:l,scopeName:u})=>{const d=l(a)[`__scope${u}`];return{...s,...d}},{});return N.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}var Dc=globalThis!=null&&globalThis.document?N.useLayoutEffect:()=>{},Ede=hx[" useId ".trim().toString()]||(()=>{}),kde=0;function Gg(e){const[t,r]=N.useState(Ede());return Dc(()=>{r(n=>n??String(kde++))},[e]),e||(t?`radix-${t}`:"")}var _de=hx[" useInsertionEffect ".trim().toString()]||Dc;function Tde({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,a,o]=Cde({defaultProp:t,onChange:r}),s=e!==void 0,l=s?e:i;{const f=N.useRef(e!==void 0);N.useEffect(()=>{const d=f.current;d!==s&&console.warn(`${n} is changing from ${d?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=s},[s,n])}const u=N.useCallback(f=>{var d;if(s){const h=$de(f)?f(e):f;h!==e&&((d=o.current)==null||d.call(o,h))}else a(f)},[s,e,a,o]);return[l,u]}function Cde({defaultProp:e,onChange:t}){const[r,n]=N.useState(e),i=N.useRef(r),a=N.useRef(t);return _de(()=>{a.current=t},[t]),N.useEffect(()=>{var o;i.current!==r&&((o=a.current)==null||o.call(a,r),i.current=r)},[r,i]),[r,n,a]}function $de(e){return typeof e=="function"}function G$(e){const t=Mde(e),r=N.forwardRef((n,i)=>{const{children:a,...o}=n,s=N.Children.toArray(a),l=s.find(Dde);if(l){const u=l.props.children,f=s.map(d=>d===l?N.Children.count(u)>1?N.Children.only(null):N.isValidElement(u)?u.props.children:null:d);return c.jsx(t,{...o,ref:i,children:N.isValidElement(u)?N.cloneElement(u,void 0,f):null})}return c.jsx(t,{...o,ref:i,children:a})});return r.displayName=`${e}.Slot`,r}function Mde(e){const t=N.forwardRef((r,n)=>{const{children:i,...a}=r;if(N.isValidElement(i)){const o=Lde(i),s=Rde(a,i.props);return i.type!==N.Fragment&&(s.ref=n?V$(n,o):o),N.cloneElement(i,s)}return N.Children.count(i)>1?N.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ide=Symbol("radix.slottable");function Dde(e){return N.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ide}function Rde(e,t){const r={...t};for(const n in t){const i=e[n],a=t[n];/^on[A-Z]/.test(n)?i&&a?r[n]=(...s)=>{const l=a(...s);return i(...s),l}:i&&(r[n]=i):n==="style"?r[n]={...i,...a}:n==="className"&&(r[n]=[i,a].filter(Boolean).join(" "))}return{...e,...r}}function Lde(e){var n,i;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var Fde=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pi=Fde.reduce((e,t)=>{const r=G$(`Primitive.${t}`),n=N.forwardRef((i,a)=>{const{asChild:o,...s}=i,l=o?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),c.jsx(l,{...s,ref:a})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function zde(e,t){e&&ib.flushSync(()=>e.dispatchEvent(t))}function Rc(e){const t=N.useRef(e);return N.useEffect(()=>{t.current=e}),N.useMemo(()=>(...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)},[])}function Bde(e,t=globalThis==null?void 0:globalThis.document){const r=Rc(e);N.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var Ude="DismissableLayer",ox="dismissableLayer.update",Wde="dismissableLayer.pointerDownOutside",Kde="dismissableLayer.focusOutside",WP,Y$=N.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),X$=N.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:s,...l}=e,u=N.useContext(Y$),[f,d]=N.useState(null),h=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,p]=N.useState({}),g=$o(t,j=>d(j)),m=Array.from(u.layers),[v]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),y=m.indexOf(v),x=f?m.indexOf(f):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,S=x>=y,w=Vde(j=>{const P=j.target,A=[...u.branches].some(_=>_.contains(P));!S||A||(i==null||i(j),o==null||o(j),j.defaultPrevented||s==null||s())},h),O=Gde(j=>{const P=j.target;[...u.branches].some(_=>_.contains(P))||(a==null||a(j),o==null||o(j),j.defaultPrevented||s==null||s())},h);return Bde(j=>{x===u.layers.size-1&&(n==null||n(j),!j.defaultPrevented&&s&&(j.preventDefault(),s()))},h),N.useEffect(()=>{if(f)return r&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(WP=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),KP(),()=>{r&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=WP)}},[f,h,r,u]),N.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),KP())},[f,u]),N.useEffect(()=>{const j=()=>p({});return document.addEventListener(ox,j),()=>document.removeEventListener(ox,j)},[]),c.jsx(Pi.div,{...l,ref:g,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:da(e.onFocusCapture,O.onFocusCapture),onBlurCapture:da(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:da(e.onPointerDownCapture,w.onPointerDownCapture)})});X$.displayName=Ude;var qde="DismissableLayerBranch",Hde=N.forwardRef((e,t)=>{const r=N.useContext(Y$),n=N.useRef(null),i=$o(t,n);return N.useEffect(()=>{const a=n.current;if(a)return r.branches.add(a),()=>{r.branches.delete(a)}},[r.branches]),c.jsx(Pi.div,{...e,ref:i})});Hde.displayName=qde;function Vde(e,t=globalThis==null?void 0:globalThis.document){const r=Rc(e),n=N.useRef(!1),i=N.useRef(()=>{});return N.useEffect(()=>{const a=s=>{if(s.target&&!n.current){let l=function(){Q$(Wde,r,u,{discrete:!0})};const u={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);n.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",a),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function Gde(e,t=globalThis==null?void 0:globalThis.document){const r=Rc(e),n=N.useRef(!1);return N.useEffect(()=>{const i=a=>{a.target&&!n.current&&Q$(Kde,r,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function KP(){const e=new CustomEvent(ox);document.dispatchEvent(e)}function Q$(e,t,r,{discrete:n}){const i=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?zde(i,a):i.dispatchEvent(a)}var Yg="focusScope.autoFocusOnMount",Xg="focusScope.autoFocusOnUnmount",qP={bubbles:!1,cancelable:!0},Yde="FocusScope",J$=N.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,l]=N.useState(null),u=Rc(i),f=Rc(a),d=N.useRef(null),h=$o(t,m=>l(m)),p=N.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;N.useEffect(()=>{if(n){let m=function(b){if(p.paused||!s)return;const S=b.target;s.contains(S)?d.current=S:$i(d.current,{select:!0})},v=function(b){if(p.paused||!s)return;const S=b.relatedTarget;S!==null&&(s.contains(S)||$i(d.current,{select:!0}))},y=function(b){if(document.activeElement===document.body)for(const w of b)w.removedNodes.length>0&&$i(s)};document.addEventListener("focusin",m),document.addEventListener("focusout",v);const x=new MutationObserver(y);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",v),x.disconnect()}}},[n,s,p.paused]),N.useEffect(()=>{if(s){VP.add(p);const m=document.activeElement;if(!s.contains(m)){const y=new CustomEvent(Yg,qP);s.addEventListener(Yg,u),s.dispatchEvent(y),y.defaultPrevented||(Xde(the(Z$(s)),{select:!0}),document.activeElement===m&&$i(s))}return()=>{s.removeEventListener(Yg,u),setTimeout(()=>{const y=new CustomEvent(Xg,qP);s.addEventListener(Xg,f),s.dispatchEvent(y),y.defaultPrevented||$i(m??document.body,{select:!0}),s.removeEventListener(Xg,f),VP.remove(p)},0)}}},[s,u,f,p]);const g=N.useCallback(m=>{if(!r&&!n||p.paused)return;const v=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,y=document.activeElement;if(v&&y){const x=m.currentTarget,[b,S]=Qde(x);b&&S?!m.shiftKey&&y===S?(m.preventDefault(),r&&$i(b,{select:!0})):m.shiftKey&&y===b&&(m.preventDefault(),r&&$i(S,{select:!0})):y===x&&m.preventDefault()}},[r,n,p.paused]);return c.jsx(Pi.div,{tabIndex:-1,...o,ref:h,onKeyDown:g})});J$.displayName=Yde;function Xde(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if($i(n,{select:t}),document.activeElement!==r)return}function Qde(e){const t=Z$(e),r=HP(t,e),n=HP(t.reverse(),e);return[r,n]}function Z$(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function HP(e,t){for(const r of e)if(!Jde(r,{upTo:t}))return r}function Jde(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Zde(e){return e instanceof HTMLInputElement&&"select"in e}function $i(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&Zde(e)&&t&&e.select()}}var VP=ehe();function ehe(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=GP(e,t),e.unshift(t)},remove(t){var r;e=GP(e,t),(r=e[0])==null||r.resume()}}}function GP(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function the(e){return e.filter(t=>t.tagName!=="A")}var rhe="Portal",eM=N.forwardRef((e,t)=>{var s;const{container:r,...n}=e,[i,a]=N.useState(!1);Dc(()=>a(!0),[]);const o=r||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return o?sR.createPortal(c.jsx(Pi.div,{...n,ref:t}),o):null});eM.displayName=rhe;function nhe(e,t){return N.useReducer((r,n)=>t[r][n]??r,e)}var _m=e=>{const{present:t,children:r}=e,n=ihe(t),i=typeof r=="function"?r({present:n.isPresent}):N.Children.only(r),a=$o(n.ref,ahe(i));return typeof r=="function"||n.isPresent?N.cloneElement(i,{ref:a}):null};_m.displayName="Presence";function ihe(e){const[t,r]=N.useState(),n=N.useRef(null),i=N.useRef(e),a=N.useRef("none"),o=e?"mounted":"unmounted",[s,l]=nhe(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return N.useEffect(()=>{const u=Zf(n.current);a.current=s==="mounted"?u:"none"},[s]),Dc(()=>{const u=n.current,f=i.current;if(f!==e){const h=a.current,p=Zf(u);e?l("MOUNT"):p==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(f&&h!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),Dc(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,d=p=>{const m=Zf(n.current).includes(CSS.escape(p.animationName));if(p.target===t&&m&&(l("ANIMATION_END"),!i.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},h=p=>{p.target===t&&(a.current=Zf(n.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:N.useCallback(u=>{n.current=u?getComputedStyle(u):null,r(u)},[])}}function Zf(e){return(e==null?void 0:e.animationName)||"none"}function ahe(e){var n,i;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var Qg=0;function ohe(){N.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??YP()),document.body.insertAdjacentElement("beforeend",e[1]??YP()),Qg++,()=>{Qg===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Qg--}},[])}function YP(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var En=function(){return En=Object.assign||function(t){for(var r,n=1,i=arguments.length;n"u")return jhe;var t=Ohe(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},Phe=iM(),ys="data-scroll-locked",Ahe=function(e,t,r,n){var i=e.left,a=e.top,o=e.right,s=e.gap;return r===void 0&&(r="margin"),` - .`.concat(lhe,` { - overflow: hidden `).concat(n,`; - padding-right: `).concat(s,"px ").concat(n,`; - } - body[`).concat(ys,`] { - overflow: hidden `).concat(n,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(n,";"),r==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(a,`px; - padding-right: `).concat(o,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(n,`; - `),r==="padding"&&"padding-right: ".concat(s,"px ").concat(n,";")].filter(Boolean).join(""),` - } - - .`).concat(Od,` { - right: `).concat(s,"px ").concat(n,`; - } - - .`).concat(Nd,` { - margin-right: `).concat(s,"px ").concat(n,`; - } - - .`).concat(Od," .").concat(Od,` { - right: 0 `).concat(n,`; - } - - .`).concat(Nd," .").concat(Nd,` { - margin-right: 0 `).concat(n,`; - } - - body[`).concat(ys,`] { - `).concat(uhe,": ").concat(s,`px; - } -`)},QP=function(){var e=parseInt(document.body.getAttribute(ys)||"0",10);return isFinite(e)?e:0},Ehe=function(){N.useEffect(function(){return document.body.setAttribute(ys,(QP()+1).toString()),function(){var e=QP()-1;e<=0?document.body.removeAttribute(ys):document.body.setAttribute(ys,e.toString())}},[])},khe=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,i=n===void 0?"margin":n;Ehe();var a=N.useMemo(function(){return Nhe(i)},[i]);return N.createElement(Phe,{styles:Ahe(a,!t,i,r?"":"!important")})},sx=!1;if(typeof window<"u")try{var ed=Object.defineProperty({},"passive",{get:function(){return sx=!0,!0}});window.addEventListener("test",ed,ed),window.removeEventListener("test",ed,ed)}catch{sx=!1}var Uo=sx?{passive:!1}:!1,_he=function(e){return e.tagName==="TEXTAREA"},aM=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!_he(e)&&r[t]==="visible")},The=function(e){return aM(e,"overflowY")},Che=function(e){return aM(e,"overflowX")},JP=function(e,t){var r=t.ownerDocument,n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=oM(e,n);if(i){var a=sM(e,n),o=a[1],s=a[2];if(o>s)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},$he=function(e){var t=e.scrollTop,r=e.scrollHeight,n=e.clientHeight;return[t,r,n]},Mhe=function(e){var t=e.scrollLeft,r=e.scrollWidth,n=e.clientWidth;return[t,r,n]},oM=function(e,t){return e==="v"?The(t):Che(t)},sM=function(e,t){return e==="v"?$he(t):Mhe(t)},Ihe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Dhe=function(e,t,r,n,i){var a=Ihe(e,window.getComputedStyle(t).direction),o=a*n,s=r.target,l=t.contains(s),u=!1,f=o>0,d=0,h=0;do{if(!s)break;var p=sM(e,s),g=p[0],m=p[1],v=p[2],y=m-v-a*g;(g||y)&&oM(e,s)&&(d+=y,h+=g);var x=s.parentNode;s=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(f&&Math.abs(d)<1||!f&&Math.abs(h)<1)&&(u=!0),u},td=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ZP=function(e){return[e.deltaX,e.deltaY]},eA=function(e){return e&&"current"in e?e.current:e},Rhe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Lhe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},Fhe=0,Wo=[];function zhe(e){var t=N.useRef([]),r=N.useRef([0,0]),n=N.useRef(),i=N.useState(Fhe++)[0],a=N.useState(iM)[0],o=N.useRef(e);N.useEffect(function(){o.current=e},[e]),N.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var m=she([e.lockRef.current],(e.shards||[]).map(eA),!0).filter(Boolean);return m.forEach(function(v){return v.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),m.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=N.useCallback(function(m,v){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!o.current.allowPinchZoom;var y=td(m),x=r.current,b="deltaX"in m?m.deltaX:x[0]-y[0],S="deltaY"in m?m.deltaY:x[1]-y[1],w,O=m.target,j=Math.abs(b)>Math.abs(S)?"h":"v";if("touches"in m&&j==="h"&&O.type==="range")return!1;var P=window.getSelection(),A=P&&P.anchorNode,_=A?A===O||A.contains(O):!1;if(_)return!1;var E=JP(j,O);if(!E)return!0;if(E?w=j:(w=j==="v"?"h":"v",E=JP(j,O)),!E)return!1;if(!n.current&&"changedTouches"in m&&(b||S)&&(n.current=w),!w)return!0;var k=n.current||w;return Dhe(k,v,m,k==="h"?b:S)},[]),l=N.useCallback(function(m){var v=m;if(!(!Wo.length||Wo[Wo.length-1]!==a)){var y="deltaY"in v?ZP(v):td(v),x=t.current.filter(function(w){return w.name===v.type&&(w.target===v.target||v.target===w.shadowParent)&&Rhe(w.delta,y)})[0];if(x&&x.should){v.cancelable&&v.preventDefault();return}if(!x){var b=(o.current.shards||[]).map(eA).filter(Boolean).filter(function(w){return w.contains(v.target)}),S=b.length>0?s(v,b[0]):!o.current.noIsolation;S&&v.cancelable&&v.preventDefault()}}},[]),u=N.useCallback(function(m,v,y,x){var b={name:m,delta:v,target:y,should:x,shadowParent:Bhe(y)};t.current.push(b),setTimeout(function(){t.current=t.current.filter(function(S){return S!==b})},1)},[]),f=N.useCallback(function(m){r.current=td(m),n.current=void 0},[]),d=N.useCallback(function(m){u(m.type,ZP(m),m.target,s(m,e.lockRef.current))},[]),h=N.useCallback(function(m){u(m.type,td(m),m.target,s(m,e.lockRef.current))},[]);N.useEffect(function(){return Wo.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:h}),document.addEventListener("wheel",l,Uo),document.addEventListener("touchmove",l,Uo),document.addEventListener("touchstart",f,Uo),function(){Wo=Wo.filter(function(m){return m!==a}),document.removeEventListener("wheel",l,Uo),document.removeEventListener("touchmove",l,Uo),document.removeEventListener("touchstart",f,Uo)}},[]);var p=e.removeScrollBar,g=e.inert;return N.createElement(N.Fragment,null,g?N.createElement(a,{styles:Lhe(i)}):null,p?N.createElement(khe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Bhe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Uhe=ghe(nM,zhe);var lM=N.forwardRef(function(e,t){return N.createElement(Tm,En({},e,{ref:t,sideCar:Uhe}))});lM.classNames=Tm.classNames;var Whe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ko=new WeakMap,rd=new WeakMap,nd={},tv=0,uM=function(e){return e&&(e.host||uM(e.parentNode))},Khe=function(e,t){return t.map(function(r){if(e.contains(r))return r;var n=uM(r);return n&&e.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},qhe=function(e,t,r,n){var i=Khe(t,Array.isArray(e)?e:[e]);nd[r]||(nd[r]=new WeakMap);var a=nd[r],o=[],s=new Set,l=new Set(i),u=function(d){!d||s.has(d)||(s.add(d),u(d.parentNode))};i.forEach(u);var f=function(d){!d||l.has(d)||Array.prototype.forEach.call(d.children,function(h){if(s.has(h))f(h);else try{var p=h.getAttribute(n),g=p!==null&&p!=="false",m=(Ko.get(h)||0)+1,v=(a.get(h)||0)+1;Ko.set(h,m),a.set(h,v),o.push(h),m===1&&g&&rd.set(h,!0),v===1&&h.setAttribute(r,"true"),g||h.setAttribute(n,"true")}catch(y){console.error("aria-hidden: cannot operate on ",h,y)}})};return f(t),s.clear(),tv++,function(){o.forEach(function(d){var h=Ko.get(d)-1,p=a.get(d)-1;Ko.set(d,h),a.set(d,p),h||(rd.has(d)||d.removeAttribute(n),rd.delete(d)),p||d.removeAttribute(r)}),tv--,tv||(Ko=new WeakMap,Ko=new WeakMap,rd=new WeakMap,nd={})}},Hhe=function(e,t,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),i=Whe(e);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live], script"))),qhe(n,i,r,"aria-hidden")):function(){return null}},Cm="Dialog",[cM]=Pde(Cm),[Vhe,bn]=cM(Cm),fM=e=>{const{__scopeDialog:t,children:r,open:n,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=N.useRef(null),l=N.useRef(null),[u,f]=Tde({prop:n,defaultProp:i??!1,onChange:a,caller:Cm});return c.jsx(Vhe,{scope:t,triggerRef:s,contentRef:l,contentId:Gg(),titleId:Gg(),descriptionId:Gg(),open:u,onOpenChange:f,onOpenToggle:N.useCallback(()=>f(d=>!d),[f]),modal:o,children:r})};fM.displayName=Cm;var dM="DialogTrigger",Ghe=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=bn(dM,r),a=$o(t,i.triggerRef);return c.jsx(Pi.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Ew(i.open),...n,ref:a,onClick:da(e.onClick,i.onOpenToggle)})});Ghe.displayName=dM;var Pw="DialogPortal",[Yhe,hM]=cM(Pw,{forceMount:void 0}),pM=e=>{const{__scopeDialog:t,forceMount:r,children:n,container:i}=e,a=bn(Pw,t);return c.jsx(Yhe,{scope:t,forceMount:r,children:N.Children.map(n,o=>c.jsx(_m,{present:r||a.open,children:c.jsx(eM,{asChild:!0,container:i,children:o})}))})};pM.displayName=Pw;var up="DialogOverlay",mM=N.forwardRef((e,t)=>{const r=hM(up,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,a=bn(up,e.__scopeDialog);return a.modal?c.jsx(_m,{present:n||a.open,children:c.jsx(Qhe,{...i,ref:t})}):null});mM.displayName=up;var Xhe=G$("DialogOverlay.RemoveScroll"),Qhe=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=bn(up,r);return c.jsx(lM,{as:Xhe,allowPinchZoom:!0,shards:[i.contentRef],children:c.jsx(Pi.div,{"data-state":Ew(i.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),jo="DialogContent",gM=N.forwardRef((e,t)=>{const r=hM(jo,e.__scopeDialog),{forceMount:n=r.forceMount,...i}=e,a=bn(jo,e.__scopeDialog);return c.jsx(_m,{present:n||a.open,children:a.modal?c.jsx(Jhe,{...i,ref:t}):c.jsx(Zhe,{...i,ref:t})})});gM.displayName=jo;var Jhe=N.forwardRef((e,t)=>{const r=bn(jo,e.__scopeDialog),n=N.useRef(null),i=$o(t,r.contentRef,n);return N.useEffect(()=>{const a=n.current;if(a)return Hhe(a)},[]),c.jsx(vM,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:da(e.onCloseAutoFocus,a=>{var o;a.preventDefault(),(o=r.triggerRef.current)==null||o.focus()}),onPointerDownOutside:da(e.onPointerDownOutside,a=>{const o=a.detail.originalEvent,s=o.button===0&&o.ctrlKey===!0;(o.button===2||s)&&a.preventDefault()}),onFocusOutside:da(e.onFocusOutside,a=>a.preventDefault())})}),Zhe=N.forwardRef((e,t)=>{const r=bn(jo,e.__scopeDialog),n=N.useRef(!1),i=N.useRef(!1);return c.jsx(vM,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var o,s;(o=e.onCloseAutoFocus)==null||o.call(e,a),a.defaultPrevented||(n.current||(s=r.triggerRef.current)==null||s.focus(),a.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:a=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,a),a.defaultPrevented||(n.current=!0,a.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const o=a.target;((u=r.triggerRef.current)==null?void 0:u.contains(o))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&i.current&&a.preventDefault()}})}),vM=N.forwardRef((e,t)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=bn(jo,r),l=N.useRef(null),u=$o(t,l);return ohe(),c.jsxs(c.Fragment,{children:[c.jsx(J$,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:a,children:c.jsx(X$,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":Ew(s.open),...o,ref:u,onDismiss:()=>s.onOpenChange(!1)})}),c.jsxs(c.Fragment,{children:[c.jsx(epe,{titleId:s.titleId}),c.jsx(rpe,{contentRef:l,descriptionId:s.descriptionId})]})]})}),Aw="DialogTitle",yM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=bn(Aw,r);return c.jsx(Pi.h2,{id:i.titleId,...n,ref:t})});yM.displayName=Aw;var xM="DialogDescription",bM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=bn(xM,r);return c.jsx(Pi.p,{id:i.descriptionId,...n,ref:t})});bM.displayName=xM;var wM="DialogClose",SM=N.forwardRef((e,t)=>{const{__scopeDialog:r,...n}=e,i=bn(wM,r);return c.jsx(Pi.button,{type:"button",...n,ref:t,onClick:da(e.onClick,()=>i.onOpenChange(!1))})});SM.displayName=wM;function Ew(e){return e?"open":"closed"}var jM="DialogTitleWarning",[bme,OM]=Nde(jM,{contentName:jo,titleName:Aw,docsSlug:"dialog"}),epe=({titleId:e})=>{const t=OM(jM),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return N.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},tpe="DialogDescriptionWarning",rpe=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${OM(tpe).contentName}}.`;return N.useEffect(()=>{var a;const i=(a=e.current)==null?void 0:a.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},npe=fM,ipe=pM,NM=mM,PM=gM,AM=yM,EM=bM,ape=SM;const kw=npe,ope=ipe,kM=N.forwardRef(({className:e,...t},r)=>c.jsx(NM,{ref:r,className:he("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));kM.displayName=NM.displayName;const $m=N.forwardRef(({className:e,children:t,hideCloseButton:r=!1,...n},i)=>c.jsxs(ope,{children:[c.jsx(kM,{}),c.jsxs(PM,{ref:i,className:he("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,!r&&c.jsxs(ape,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[c.jsx(Ju,{className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));$m.displayName=PM.displayName;const Mm=({className:e,...t})=>c.jsx("div",{className:he("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Mm.displayName="DialogHeader";const _w=({className:e,...t})=>c.jsx("div",{className:he("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});_w.displayName="DialogFooter";const Im=N.forwardRef(({className:e,...t},r)=>c.jsx(AM,{ref:r,className:he("text-lg font-semibold leading-none tracking-tight",e),...t}));Im.displayName=AM.displayName;const Tw=N.forwardRef(({className:e,...t},r)=>c.jsx(EM,{ref:r,className:he("text-sm text-muted-foreground",e),...t}));Tw.displayName=EM.displayName;const spe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},lpe=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],rv=[{bg:"bg-blue-100",text:"text-blue-700",border:"border-blue-300"},{bg:"bg-green-100",text:"text-green-700",border:"border-green-300"},{bg:"bg-purple-100",text:"text-purple-700",border:"border-purple-300"},{bg:"bg-orange-100",text:"text-orange-700",border:"border-orange-300"},{bg:"bg-pink-100",text:"text-pink-700",border:"border-pink-300"},{bg:"bg-cyan-100",text:"text-cyan-700",border:"border-cyan-300"},{bg:"bg-indigo-100",text:"text-indigo-700",border:"border-indigo-300"},{bg:"bg-teal-100",text:"text-teal-700",border:"border-teal-300"},{bg:"bg-amber-100",text:"text-amber-700",border:"border-amber-300"},{bg:"bg-rose-100",text:"text-rose-700",border:"border-rose-300"},{bg:"bg-violet-100",text:"text-violet-700",border:"border-violet-300"},{bg:"bg-lime-100",text:"text-lime-700",border:"border-lime-300"},{bg:"bg-fuchsia-100",text:"text-fuchsia-700",border:"border-fuchsia-300"},{bg:"bg-emerald-100",text:"text-emerald-700",border:"border-emerald-300"},{bg:"bg-sky-100",text:"text-sky-700",border:"border-sky-300"},{bg:"bg-red-100",text:"text-red-700",border:"border-red-300"},{bg:"bg-yellow-100",text:"text-yellow-700",border:"border-yellow-300"},{bg:"bg-slate-100",text:"text-slate-700",border:"border-slate-300"},{bg:"bg-zinc-100",text:"text-zinc-700",border:"border-zinc-300"},{bg:"bg-stone-100",text:"text-stone-700",border:"border-stone-300"}],nv=[{bg:"bg-blue-100",text:"text-blue-700",arrow:"border-r-blue-100"},{bg:"bg-green-100",text:"text-green-700",arrow:"border-r-green-100"},{bg:"bg-purple-100",text:"text-purple-700",arrow:"border-r-purple-100"},{bg:"bg-orange-100",text:"text-orange-700",arrow:"border-r-orange-100"},{bg:"bg-pink-100",text:"text-pink-700",arrow:"border-r-pink-100"},{bg:"bg-cyan-100",text:"text-cyan-700",arrow:"border-r-cyan-100"},{bg:"bg-indigo-100",text:"text-indigo-700",arrow:"border-r-indigo-100"},{bg:"bg-teal-100",text:"text-teal-700",arrow:"border-r-teal-100"},{bg:"bg-amber-100",text:"text-amber-700",arrow:"border-r-amber-100"},{bg:"bg-rose-100",text:"text-rose-700",arrow:"border-r-rose-100"},{bg:"bg-violet-100",text:"text-violet-700",arrow:"border-r-violet-100"},{bg:"bg-lime-100",text:"text-lime-700",arrow:"border-r-lime-100"},{bg:"bg-fuchsia-100",text:"text-fuchsia-700",arrow:"border-r-fuchsia-100"},{bg:"bg-emerald-100",text:"text-emerald-700",arrow:"border-r-emerald-100"},{bg:"bg-sky-100",text:"text-sky-700",arrow:"border-r-sky-100"},{bg:"bg-red-100",text:"text-red-700",arrow:"border-r-red-100"},{bg:"bg-yellow-100",text:"text-yellow-700",arrow:"border-r-yellow-100"},{bg:"bg-slate-100",text:"text-slate-700",arrow:"border-r-slate-100"},{bg:"bg-zinc-100",text:"text-zinc-700",arrow:"border-r-zinc-100"},{bg:"bg-stone-100",text:"text-stone-700",arrow:"border-r-stone-100"}],iv=10;function upe(){const{selectedTeamId:e}=wi(),[t,r]=N.useState("ALL"),[n,i]=N.useState([]),[a,o]=N.useState([]),[s,l]=N.useState(""),[u,f]=N.useState(0),[d,h]=N.useState(new Set),[p,g]=N.useState(!1),m=Sde(),{data:v}=ef(e||""),{data:y,isLoading:x}=X_(e||"",{page:u,pageSize:iv,enabled:!!e}),b=(v==null?void 0:v.totalExperiments)||0,S=Math.ceil(b/iv),w=N.useMemo(()=>{if(!y||y.length===0)return new Map;const M=new Set;y.forEach(T=>{var z;(z=T.labels)==null||z.forEach(W=>{M.add(W.name)})});const C=Array.from(M).sort(),R=new Map;return C.forEach((T,z)=>{R.set(T,rv[z%rv.length])}),R},[y]),O=N.useMemo(()=>{if(!y||y.length===0)return new Map;const M=new Set;y.forEach(T=>{var z;(z=T.tags)==null||z.forEach(W=>{M.add(W)})});const C=Array.from(M).sort(),R=new Map;return C.forEach((T,z)=>{R.set(T,nv[(z+10)%nv.length])}),R},[y]),j=N.useMemo(()=>{if(!y||y.length===0)return[];const M=new Map;y.forEach(R=>{var T;(T=R.labels)==null||T.forEach(z=>{M.has(z.name)||M.set(z.name,new Set),M.get(z.name).add(z.value)})});const C=[];return Array.from(M.entries()).sort(([R],[T])=>R.localeCompare(T)).forEach(([R,T])=>{Array.from(T).sort().forEach(z=>{C.push({value:`${R}:${z}`,label:z,group:R})})}),C},[y]),P=N.useMemo(()=>{if(!y||y.length===0)return[];const M=new Set;return y.forEach(C=>{var R;(R=C.tags)==null||R.forEach(T=>M.add(T))}),Array.from(M).sort().map(C=>({value:C,label:C,group:"Tags"}))},[y]),A=N.useMemo(()=>{if(!y)return[];let M=[...y];if(s.trim()){const C=s.toLowerCase();M=M.filter(R=>{var T,z,W,H,q;return((T=R.name)==null?void 0:T.toLowerCase().includes(C))||((z=R.description)==null?void 0:z.toLowerCase().includes(C))||((W=R.id)==null?void 0:W.toLowerCase().includes(C))||((H=R.labels)==null?void 0:H.some(L=>L.name.toLowerCase().includes(C)||L.value.toLowerCase().includes(C)))||((q=R.tags)==null?void 0:q.some(L=>L.toLowerCase().includes(C)))})}return t!=="ALL"&&(M=M.filter(C=>C.status===t)),n.length>0&&(M=M.filter(C=>n.every(R=>{var W;const[T,z]=R.split(":",2);return(W=C.labels)==null?void 0:W.some(H=>H.name===T&&H.value===z)}))),a.length>0&&(M=M.filter(C=>a.every(R=>{var T;return(T=C.tags)==null?void 0:T.includes(R)}))),M.sort((C,R)=>new Date(R.createdAt).getTime()-new Date(C.createdAt).getTime()),M},[y,t,n,a,s]),_=A.length>0&&A.every(M=>d.has(M.id)),E=()=>{h(_?new Set:new Set(A.map(M=>M.id)))},k=M=>{const C=new Set(d);C.has(M)?C.delete(M):C.add(M),h(C)},D=()=>{d.size!==0&&g(!0)},F=async M=>{if(M==null||M.preventDefault(),M==null||M.stopPropagation(),d.size!==0)try{const C=await m.mutateAsync(Array.from(d));console.log(`Successfully deleted ${C} experiments`),h(new Set),g(!1)}catch(C){console.error("Failed to delete experiments:",C),alert("Failed to delete experiments. Please try again.")}};return c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Experiments"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse and manage experiments"})]}),c.jsxs("div",{className:"flex gap-2 items-center",children:[c.jsxs("div",{className:"relative w-80",children:[c.jsx(Sr,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Search experiments...",value:s,onChange:M=>l(M.target.value),className:"pl-8 h-9 text-[13px] font-medium focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(BP,{values:n,onChange:M=>i(M),options:j,className:"w-48",placeholder:"Filter by labels..."}),P.length>0&&c.jsx(BP,{values:a,onChange:M=>o(M),options:P,className:"w-48",placeholder:"Filter by tags..."}),c.jsx(Nw,{value:t,onChange:M=>r(M),options:lpe,className:"w-40"})]})]}),c.jsx(ie,{className:"border-0 shadow-sm flex-1 flex flex-col",children:c.jsxs(ae,{className:"p-0 flex-1 overflow-auto",children:[x?c.jsx("div",{className:"p-8",children:c.jsx(je,{className:"h-24 w-full"})}):!A||A.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:s.trim()||t!=="ALL"||n.length>0||a.length>0?c.jsx(Sr,{className:"h-8 w-8 text-muted-foreground/60"}):c.jsx(hb,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:s.trim()||t!=="ALL"||n.length>0||a.length>0?"No experiments match your filters":"No experiments found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:s.trim()||t!=="ALL"||n.length>0||a.length>0?"Try adjusting your filters or search query":"Experiments will appear here once created"})]}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(vn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Ic,{checked:_,onChange:E,"aria-label":"Select all experiments"}),c.jsx("button",{onClick:D,disabled:m.isPending||d.size===0,className:`inline-flex items-center justify-center h-6 w-6 rounded hover:bg-destructive/10 text-destructive transition-colors disabled:opacity-50 ${d.size===0?"invisible pointer-events-none":""}`,title:d.size>0?`Delete ${d.size} ${d.size===1?"experiment":"experiments"}`:"",children:c.jsx(xy,{className:"h-3.5 w-3.5"})}),c.jsx("span",{children:"ID"})]})}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Name"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Labels"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Tags"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:A.map((M,C)=>c.jsxs(vn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Ic,{checked:d.has(M.id),onChange:()=>k(M.id),"aria-label":`Select experiment ${M.name}`}),c.jsx("div",{className:"w-6"}),c.jsx(hi,{to:`/experiments/${M.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors text-sm font-mono",children:M.id})]})}),c.jsx(Ye,{className:"py-3 text-sm font-medium text-foreground",children:M.name}),c.jsx(Ye,{className:"py-3 text-sm",children:M.labels&&M.labels.length>0?c.jsx("div",{className:"flex gap-1 flex-wrap",children:M.labels.map((R,T)=>{const z=w.get(R.name)||rv[0];return c.jsxs(vt,{variant:"outline",className:`text-xs px-2 py-0.5 font-normal ${z.bg} ${z.text} ${z.border}`,children:[R.name,": ",R.value]},T)})}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm",children:M.tags&&M.tags.length>0?c.jsx("div",{className:"flex flex-wrap gap-x-1 gap-y-1",children:M.tags.map((R,T)=>{const z=O.get(R)||nv[0];return c.jsxs("span",{className:"inline-flex items-stretch",children:[c.jsx("span",{className:`border-y-[10px] border-y-transparent border-r-[7px] ${z.arrow}`,style:{width:0}}),c.jsx("span",{className:`inline-flex items-center text-xs pl-1 pr-1.5 ${z.bg} ${z.text} rounded-r-sm font-medium`,children:R})]},T)})}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:spe[M.status],children:M.status})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:fn(new Date(M.createdAt),{addSuffix:!0})})]},M.id))})]})}),c.jsx(df,{currentPage:u,totalPages:S,pageSize:iv,totalItems:b,onPageChange:f,itemName:"experiments"})]})}),c.jsx(kw,{open:p,onOpenChange:g,children:c.jsxs($m,{className:"pointer-events-auto sm:max-w-[440px]",children:[c.jsxs(Mm,{className:"space-y-3",children:[c.jsxs(Im,{className:"text-lg font-semibold text-foreground",children:["Delete ",d.size===1?"Experiment":"Experiments"]}),c.jsxs(Tw,{className:"text-sm text-muted-foreground leading-relaxed",children:["You are about to delete ",c.jsx("span",{className:"font-medium text-foreground",children:d.size})," ",d.size===1?"experiment":"experiments",". This action cannot be undone."]})]}),c.jsxs(_w,{className:"gap-2 sm:gap-2",children:[c.jsx(lt,{type:"button",variant:"outline",onClick:M=>{M.preventDefault(),M.stopPropagation(),g(!1)},disabled:m.isPending,className:"h-9",children:"Cancel"}),c.jsx(lt,{type:"button",variant:"destructive",onClick:F,disabled:m.isPending,className:"h-9",children:m.isPending?c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"mr-2",children:"Deleting..."}),c.jsx("span",{className:"inline-block h-3 w-3 animate-spin rounded-full border-2 border-solid border-current border-r-transparent"})]}):c.jsxs(c.Fragment,{children:[c.jsx(xy,{className:"h-3.5 w-3.5 mr-2"}),"Delete"]})})]})]})})]})}function _M(e){const{data:t,...r}=Mp(e),n=N.useMemo(()=>{const i={};return((t==null?void 0:t.metrics)||[]).forEach(o=>{const s=o.key||"unknown";i[s]||(i[s]=[]),i[s].push(o)}),Object.keys(i).forEach(o=>{i[o].sort((s,l)=>new Date(s.createdAt).getTime()-new Date(l.createdAt).getTime())}),i},[t==null?void 0:t.metrics]);return{...r,data:n,metricKeys:Object.keys(n)}}const cpe="modulepreload",fpe=function(e){return"/static/"+e},tA={},dpe=function(t,r,n){let i=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),s=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=Promise.allSettled(r.map(l=>{if(l=fpe(l),l in tA)return;tA[l]=!0;const u=l.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":cpe,u||(d.as="script"),d.crossOrigin="",d.href=l,s&&d.setAttribute("nonce",s),document.head.appendChild(d),u)return new Promise((h,p)=>{d.addEventListener("load",h),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function a(o){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=o,window.dispatchEvent(s),!s.defaultPrevented)throw o}return i.then(o=>{for(const s of o||[])s.status==="rejected"&&a(s.reason);return t().catch(a)})};function hpe(e){const{data:t,...r}=Mp(e),{runMetrics:n,availableMetrics:i}=N.useMemo(()=>{const a=(t==null?void 0:t.metrics)||[];if(a.length===0)return{runMetrics:[],availableMetrics:[]};const o=new Map,s=new Set;[...a].sort((f,d)=>new Date(f.createdAt).getTime()-new Date(d.createdAt).getTime()).forEach(f=>{!f.key||f.value===null||(s.add(f.key),o.has(f.runId)||o.set(f.runId,new Map),o.get(f.runId).set(f.key,f.value))});const u=[];return o.forEach((f,d)=>{const h={};f.forEach((p,g)=>{h[g]=p}),u.push({runId:d,metrics:h})}),{runMetrics:u,availableMetrics:Array.from(s).sort()}},[t==null?void 0:t.metrics]);return{...r,runMetrics:n,availableMetrics:i}}function ppe(e,t,r){let n=!1;for(const i of r){const a=e.metrics[i.key],o=t.metrics[i.key];if(a===void 0||o===void 0)return!1;if(i.direction==="maximize"){if(ao&&(n=!0)}else{if(a>o)return!1;adpe(()=>import("./react-plotly-C3GhZ4YA.js").then(e=>e.r),[])),Ti=["#0ea5e9","#8b5cf6","#ec4899","#f59e0b","#10b981","#ef4444","#6366f1","#14b8a6"],rA="#10b981",nA="#9ca3af",iA="#f59e0b";function vpe({metrics:e,experimentId:t,title:r="Metrics",description:n}){const i=Object.keys(e),[a,o]=N.useState(i[0]||""),[s,l]=N.useState("timeline"),[u,f]=N.useState([]),{runMetrics:d,availableMetrics:h}=hpe(t),p=N.useMemo(()=>{const j=[];return Object.values(e).forEach(P=>{j.push(...P)}),j.length===0?null:j[0].runId},[e]),g=N.useMemo(()=>u.length===0?d:d.filter(j=>u.every(P=>j.metrics[P.key]!==void 0)),[d,u]),m=N.useMemo(()=>u.length<2||g.length<2?new Set:mpe(g,u),[g,u]),v=N.useMemo(()=>{var P;if(i.length===0||!a)return[];const j=[];return e[a]&&e[a].forEach((A,_)=>{A.value!==null&&j.push({timestamp:new Date(A.createdAt).getTime(),index:_,time:ca(new Date(A.createdAt),"MMM dd HH:mm:ss"),value:A.value,runId:A.runId})}),j.sort((A,_)=>A.timestamp-_.timestamp),j.forEach((A,_)=>{A.index=_}),console.log("[MetricsChart] Selected key:",a),console.log("[MetricsChart] Total metrics for this key:",(P=e[a])==null?void 0:P.length),console.log("[MetricsChart] Total data points after processing:",j.length),console.log("[MetricsChart] All data points:",j),j},[e,i,a]),y=N.useMemo(()=>{if(u.length<2)return{all:[],paretoLine:[]};const j=u[0],P=u[1],A=u.length>=3?u[2]:void 0,_=g.map(k=>({runId:k.runId,x:k.metrics[j.key],y:k.metrics[P.key],z:A?k.metrics[A.key]:void 0,isParetoOptimal:m.has(k.runId),metrics:k.metrics})),E=_.filter(k=>k.isParetoOptimal).sort((k,D)=>k.x-D.x);return{all:_,paretoLine:E}},[g,u,m]),x=N.useMemo(()=>{if(u.length!==3||y.all.length===0)return null;const j=[...y.paretoLine].sort((k,D)=>k.x!==D.x?k.x-D.x:k.y!==D.y?k.y-D.y:(k.z||0)-(D.z||0)),P=y.all.find(k=>k.runId===p),A=j.filter(k=>k.runId!==p),_=y.all.filter(k=>!k.isParetoOptimal&&k.runId!==p),E=[{x:_.map(k=>k.x),y:_.map(k=>k.y),z:_.map(k=>k.z),mode:"markers",type:"scatter3d",name:"Dominated",showlegend:!1,marker:{size:5,color:nA,opacity:.4,symbol:"circle",line:{color:"#6b7280",width:1,opacity:.3}},customdata:_.map(k=>[k.runId,k.x,k.y,k.z]),hovertemplate:`Run: %{customdata[0]}
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#fafafa",bordercolor:"#d1d5db",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}},{x:A.map(k=>k.x),y:A.map(k=>k.y),z:A.map(k=>k.z),mode:"markers",type:"scatter3d",name:"Pareto Optimal",showlegend:!1,marker:{size:5,color:rA,symbol:"circle",opacity:.95,line:{color:"#059669",width:1,opacity:.8}},customdata:A.map(k=>[k.runId,k.x,k.y,k.z]),hovertemplate:`Run: %{customdata[0]}
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#f0fdf4",bordercolor:"#86efac",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}}];return P&&E.push({x:[P.x],y:[P.y],z:[P.z],mode:"markers",type:"scatter3d",name:"Start Point",showlegend:!1,marker:{size:5,color:iA,symbol:"circle",opacity:1,line:{color:"#d97706",width:1,opacity:1}},customdata:[[P.runId,P.x,P.y,P.z]],hovertemplate:`Run: %{customdata[0]} (StartPoint)
${u[0].key}: %{customdata[1]:.4f}
${u[1].key}: %{customdata[2]:.4f}
${u[2].key}: %{customdata[3]:.4f}`,hoverlabel:{bgcolor:"#fef3c7",bordercolor:"#fcd34d",font:{family:"system-ui, -apple-system, sans-serif",size:12,color:"#374151"},align:"left"}}),E},[y,u,p]),b=j=>{o(j)},S=j=>{u.length>=3||u.some(P=>P.key===j)||f([...u,{key:j,direction:"maximize"}])},w=j=>{f(u.filter(P=>P.key!==j))},O=j=>{f(u.map(P=>P.key===j?{...P,direction:P.direction==="maximize"?"minimize":"maximize"}:P))};return i.length===0?c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-3",children:[c.jsx(at,{className:"text-sm",children:r}),n&&c.jsx(Qt,{className:"text-xs",children:n})]}),c.jsx(ae,{children:c.jsx("div",{className:"flex h-48 items-center justify-center text-sm text-muted-foreground",children:"No metrics data available"})})]}):c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-3",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx(at,{className:"text-sm",children:r}),n&&c.jsx(Qt,{className:"text-xs",children:n})]}),c.jsxs("div",{className:"flex gap-1",children:[c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>l("timeline"),className:`h-7 px-3 text-xs transition-colors ${s==="timeline"?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:"Timeline"}),c.jsx(lt,{variant:"outline",size:"sm",onClick:()=>l("pareto"),className:`h-7 px-3 text-xs transition-colors ${s==="pareto"?"bg-blue-50 border-blue-300 text-blue-700 hover:bg-blue-100":"bg-white hover:bg-gray-50"}`,children:"Pareto"})]})]}),s==="timeline"?c.jsx("div",{className:"flex flex-wrap gap-1.5 pt-3",children:i.map((j,P)=>c.jsx(vt,{variant:a===j?"default":"outline",className:"cursor-pointer text-xs px-2 py-0.5",style:{backgroundColor:a===j?Ti[P%Ti.length]:void 0},onClick:()=>b(j),children:j},j))}):c.jsxs("div",{className:"space-y-2 pt-3",children:[c.jsx("div",{className:"flex flex-wrap gap-1.5",children:h.map((j,P)=>{const A=u.find(E=>E.key===j),_=(A==null?void 0:A.direction)==="maximize";return c.jsxs(vt,{variant:A?"default":"outline",className:"cursor-pointer text-xs px-2 py-1 transition-colors relative",style:{backgroundColor:A?Ti[P%Ti.length]:void 0,borderColor:A?Ti[P%Ti.length]:void 0},onClick:()=>{A?O(j):u.length<3&&S(j)},onContextMenu:E=>{E.preventDefault(),A&&w(j)},children:[j,A&&c.jsx("span",{className:"ml-1 text-[10px] opacity-90",children:_?"↑":"↓"})]},j)})}),u.length>0&&c.jsx("div",{className:"text-xs text-gray-500 italic",children:"Click: toggle direction ↑↓ • Right-click: remove"}),c.jsx("div",{className:"text-xs text-muted-foreground",children:u.length===0?c.jsx("span",{children:"Click metrics to select (up to 3)"}):u.length<2?c.jsx("span",{children:"Select at least 2 metrics for analysis"}):c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsxs("span",{children:["Runs: ",g.length]}),m.size>0&&c.jsxs("span",{className:"text-emerald-600 font-medium",children:["Pareto Optimal: ",m.size]})]})})]})]}),c.jsx(ae,{className:"pt-0",children:s==="timeline"?a?c.jsx(Nr,{width:"100%",height:280,children:c.jsxs(cf,{data:v,margin:{top:5,right:20,left:10,bottom:5},onClick:j=>{if(j&&j.activePayload&&j.activePayload[0]){const P=j.activePayload[0].payload;P.runId&&window.open(`/runs/${P.runId}`,"_blank")}},children:[c.jsx(oi,{strokeDasharray:"3 3"}),c.jsx(Er,{dataKey:"index",label:{value:"Index",position:"insideBottom",offset:-5,style:{fontSize:10}},type:"number",domain:["dataMin","dataMax"],tick:{fontSize:10}}),c.jsx(kr,{label:{value:"Value",angle:-90,position:"insideLeft",style:{fontSize:10}},tick:{fontSize:10}}),c.jsx(st,{cursor:{strokeDasharray:"5 5",stroke:"#94a3b8",strokeWidth:1},contentStyle:{backgroundColor:"transparent",border:"none",padding:0},content:({active:j,payload:P})=>{if(!j||!P||P.length===0)return null;const A=P[0].payload;return A.runId?c.jsxs("div",{style:{backgroundColor:"#f9fafb",border:"1px solid #d1d5db",borderRadius:"6px",padding:"8px 12px",boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)",fontFamily:"system-ui, -apple-system, sans-serif",lineHeight:"1.4"},children:[c.jsxs("div",{style:{fontWeight:600,fontSize:"10px"},children:["Run: ",A.runId]}),c.jsxs("div",{style:{fontSize:"10px"},children:[a,": ",typeof A.value=="number"?A.value.toFixed(4):A.value]})]}):null}}),c.jsx(hn,{type:"monotone",dataKey:"value",name:a,stroke:Ti[i.indexOf(a)%Ti.length],strokeWidth:2,dot:{r:3,style:{cursor:"pointer"}},activeDot:{r:5,style:{cursor:"pointer"}},connectNulls:!0})]})}):c.jsx("div",{className:"flex h-48 items-center justify-center text-sm text-muted-foreground",children:"Select a metric to display"}):u.length<2?c.jsx("div",{className:"flex h-80 items-center justify-center text-sm text-muted-foreground",children:"Select at least 2 metrics for Pareto analysis"}):y.all.length===0?c.jsx("div",{className:"flex h-80 items-center justify-center text-sm text-muted-foreground",children:"No runs with complete data for selected metrics"}):u.length===3?c.jsxs("div",{className:"w-full h-[550px] rounded-lg overflow-hidden",style:{background:"linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%)"},children:[c.jsx("style",{children:` - #pareto-3d-plot .nsewdrag { - cursor: default !important; - } - #pareto-3d-plot .nsewdrag.cursor-crosshair { - cursor: default !important; - } - `}),c.jsx(N.Suspense,{fallback:c.jsx("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:c.jsxs("div",{className:"text-center space-y-2",children:[c.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-emerald-500 mx-auto"}),c.jsx("div",{children:"Loading 3D visualization..."})]})}),children:c.jsx(gpe,{divId:"pareto-3d-plot",data:x,onInitialized:(j,P)=>{P.on("plotly_click",A=>{var _;if(A&&A.points&&A.points[0]){const k=(_=A.points[0].customdata)==null?void 0:_[0];k&&window.open(`/runs/${k}`,"_blank")}})},onUpdate:(j,P)=>{P.removeAllListeners("plotly_click"),P.on("plotly_click",A=>{var _;if(A&&A.points&&A.points[0]){const k=(_=A.points[0].customdata)==null?void 0:_[0];k&&window.open(`/runs/${k}`,"_blank")}})},layout:{autosize:!0,transition:{duration:0},scene:{xaxis:{title:{text:`${u[0].key} (${u[0].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},yaxis:{title:{text:`${u[1].key} (${u[1].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},zaxis:{title:{text:`${u[2].key} (${u[2].direction})`,font:{size:10,color:"#374151",family:"system-ui"}},gridcolor:"#e5e7eb",gridwidth:1,showbackground:!0,backgroundcolor:"#fafafa",tickfont:{size:10,color:"#6b7280"}},camera:{eye:{x:1.7,y:1.7,z:1.3},center:{x:0,y:0,z:0},up:{x:0,y:0,z:1}},aspectmode:"cube"},showlegend:!1,hovermode:"closest",margin:{l:10,r:10,t:10,b:10},paper_bgcolor:"rgba(0,0,0,0)",plot_bgcolor:"rgba(0,0,0,0)",dragmode:"orbit"},config:{responsive:!0,displayModeBar:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"],modeBarButtonsToAdd:[]},style:{width:"100%",height:"100%"}})})]}):c.jsx(Nr,{width:"100%",height:400,children:c.jsxs(pde,{margin:{top:20,right:20,bottom:60,left:60},children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(Er,{type:"number",dataKey:"x",name:u[0].key,label:{value:`${u[0].key} (${u[0].direction})`,position:"insideBottom",offset:-10,style:{fontSize:10,fill:"#374151"}},tick:{fontSize:10,fill:"#6b7280"},domain:["dataMin - 0.1 * abs(dataMin)","dataMax + 0.1 * abs(dataMax)"]}),c.jsx(kr,{type:"number",dataKey:"y",name:u[1].key,label:{value:`${u[1].key} (${u[1].direction})`,angle:-90,position:"insideLeft",style:{fontSize:10,fill:"#374151"}},tick:{fontSize:10,fill:"#6b7280"},domain:["dataMin - 0.1 * abs(dataMin)","dataMax + 0.1 * abs(dataMax)"]}),c.jsx(st,{cursor:{strokeDasharray:"3 3"},content:({active:j,payload:P})=>{var F,M;if(!j||!P||!P[0])return null;const A=P[0].payload,_=A.runId===p,E=A.isParetoOptimal,k=_?"#fef3c7":E?"#f0fdf4":"#fafafa",D=_?"#fcd34d":E?"#86efac":"#d1d5db";return c.jsxs("div",{style:{backgroundColor:k,border:`1px solid ${D}`,borderRadius:"6px",padding:"8px 12px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",fontSize:"10px"},children:[c.jsxs("div",{style:{fontWeight:600,marginBottom:"4px"},children:["Run: ",A.runId,_?" (StartPoint)":""]}),c.jsxs("div",{children:[u[0].key,": ",(F=A.x)==null?void 0:F.toFixed(4)]}),c.jsxs("div",{children:[u[1].key,": ",(M=A.y)==null?void 0:M.toFixed(4)]})]})}}),c.jsx(lo,{name:"Dominated",data:y.all.filter(j=>!j.isParetoOptimal&&j.runId!==p),fill:nA,fillOpacity:.4,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")}),c.jsx(lo,{name:"Pareto",data:y.all.filter(j=>j.isParetoOptimal&&j.runId!==p),fill:rA,fillOpacity:.95,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")}),p&&c.jsx(lo,{name:"Start",data:y.all.filter(j=>j.runId===p),fill:iA,shape:"circle",onClick:j=>(j==null?void 0:j.runId)&&window.open(`/runs/${j.runId}`,"_blank")})]})})})]})}function ype({traceStats:e}){const t=N.useMemo(()=>{const{successSpans:n,errorSpans:i}=e,a=[];return n>0&&a.push({name:"Success",value:n,color:"#22c55e"}),i>0&&a.push({name:"Error",value:i,color:"#ef4444"}),a},[e]),r=e.totalSpans;return e.totalSpans===0||t.length===0?c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No trace data available"}):c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(ff,{children:[c.jsx($r,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:70,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,i)=>c.jsx(Oi,{fill:n.color},`cell-${i}`))}),c.jsx(st,{formatter:n=>[n,"Spans"],contentStyle:{fontSize:"10px",backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})}function xpe({runs:e}){const t=N.useMemo(()=>!e||e.length===0?[]:[{name:"COMPLETED",value:e.filter(i=>i.status==="COMPLETED").length,color:"#22c55e"},{name:"RUNNING",value:e.filter(i=>i.status==="RUNNING").length,color:"#3b82f6"},{name:"FAILED",value:e.filter(i=>i.status==="FAILED").length,color:"#ef4444"},{name:"PENDING",value:e.filter(i=>i.status==="PENDING").length,color:"#eab308"},{name:"CANCELLED",value:e.filter(i=>i.status==="CANCELLED").length,color:"#6b7280"},{name:"UNKNOWN",value:e.filter(i=>i.status==="UNKNOWN").length,color:"#a78bfa"}].filter(i=>i.value>0),[e]),r=e.length;return e.length===0||t.length===0?c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No run data available"}):c.jsx(Nr,{width:"100%",height:200,children:c.jsxs(ff,{children:[c.jsx($r,{data:t,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:70,labelLine:!1,label:n=>`${(n.value/r*100).toFixed(1)}%`,style:{fontSize:"10px"},children:t.map((n,i)=>c.jsx(Oi,{fill:n.color},`cell-${i}`))}),c.jsx(st,{formatter:n=>[n,"Count"],contentStyle:{fontSize:"10px",backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"6px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}})]})})}const Cw=N.createContext(void 0),hf=N.forwardRef(({className:e,value:t,onValueChange:r,...n},i)=>c.jsx(Cw.Provider,{value:{value:t,onValueChange:r},children:c.jsx("div",{ref:i,className:he("w-full",e),...n})}));hf.displayName="Tabs";const pf=N.forwardRef(({className:e,...t},r)=>c.jsx("div",{ref:r,className:he("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));pf.displayName="TabsList";const vi=N.forwardRef(({className:e,value:t,...r},n)=>{const i=N.useContext(Cw);if(!i)throw new Error("TabsTrigger must be used within Tabs");const a=i.value===t;return c.jsx("button",{ref:n,className:he("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",a?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground",e),onClick:()=>i.onValueChange(t),...r})});vi.displayName="TabsTrigger";const yi=N.forwardRef(({className:e,value:t,...r},n)=>{const i=N.useContext(Cw);if(!i)throw new Error("TabsContent must be used within Tabs");return i.value!==t?null:c.jsx("div",{ref:n,className:he("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...r})});yi.displayName="TabsContent";const aA={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},bpe=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],av=10;function wpe(){var w;const{id:e}=Ap(),t=Fn(),[r,n]=N.useState("overview"),[i,a]=N.useState(0),[o,s]=N.useState(""),[l,u]=N.useState("ALL"),{data:f,isLoading:d,error:h}=Mp(e),{data:p,isLoading:g}=Py(e,{page:i,pageSize:av}),{data:m}=Py(e,{page:0,pageSize:1e3}),v=(m==null?void 0:m.length)||0,y=Math.ceil(v/av),{data:x,isLoading:b}=_M(e),S=N.useMemo(()=>{if(!p)return[];let O=[...p];if(o.trim()){const j=o.toLowerCase();O=O.filter(P=>{var A;return(A=P.id)==null?void 0:A.toLowerCase().includes(j)})}return l!=="ALL"&&(O=O.filter(j=>j.status===l)),O.sort((j,P)=>new Date(P.createdAt).getTime()-new Date(j.createdAt).getTime()),O},[p,o,l]);return d?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):h||!f?c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Error"}),c.jsx(Qt,{children:"Failed to load experiment"})]}),c.jsx(ae,{children:c.jsx("p",{className:"text-destructive",children:(h==null?void 0:h.message)||"Experiment not found"})})]}):c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:f.name}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:f.id})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs(lt,{variant:"outline",size:"sm",onClick:()=>t(`/datasets?experimentId=${f.id}`),className:"h-8 gap-2",children:[c.jsx(kn,{className:"h-3.5 w-3.5"}),"Datasets"]}),c.jsx(vt,{variant:aA[f.status],children:f.status})]})]}),c.jsxs(hf,{value:r,onValueChange:n,children:[c.jsxs(pf,{children:[c.jsx(vi,{value:"overview",children:"Overview"}),c.jsx(vi,{value:"runs",children:"Runs"})]}),c.jsxs(yi,{value:"overview",className:"space-y-2",children:[c.jsx(ie,{children:c.jsxs(ae,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Details"}),c.jsxs("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:[f.description&&c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Description"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:f.description})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Runs"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:(m==null?void 0:m.length)||0})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Tokens"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((w=f.aggregatedTokens)==null?void 0:w.totalTokens)!==void 0&&f.aggregatedTokens.totalTokens>0?c.jsxs(c.Fragment,{children:[Number(f.aggregatedTokens.totalTokens).toLocaleString(),f.aggregatedTokens.inputTokens!==void 0&&f.aggregatedTokens.outputTokens!==void 0&&c.jsxs("span",{className:"text-muted-foreground text-xs ml-1",children:["(",Number(f.aggregatedTokens.inputTokens).toLocaleString(),"↓ ",Number(f.aggregatedTokens.outputTokens).toLocaleString(),"↑)"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:f.duration>0?Fr(f.duration):"-"})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Created"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:fn(new Date(f.createdAt),{addSuffix:!0})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Updated"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:fn(new Date(f.updatedAt),{addSuffix:!0})})]})]}),f.meta&&Object.keys(f.meta).length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metadata"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(f.meta).map(([O,j])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:O}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof j=="string"?j:JSON.stringify(j)})]},O))})]}),f.params&&Object.keys(f.params).length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Parameters"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(f.params).map(([O,j])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:O}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof j=="string"?j:JSON.stringify(j)})]},O))})]})]})}),m&&m.length>0&&c.jsx(ie,{children:c.jsxs(ae,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Statistics"}),c.jsxs("div",{className:"grid gap-4 grid-cols-2",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"text-xs font-semibold mb-2 text-muted-foreground uppercase tracking-wide",children:"Run Status Distribution"}),c.jsx(xpe,{runs:m})]}),c.jsxs("div",{children:[c.jsx("h4",{className:"text-xs font-semibold mb-2 text-muted-foreground uppercase tracking-wide",children:"Trace STATUS DISTRIBUTION"}),f.traceStats&&f.traceStats.totalSpans>0?c.jsx(ype,{traceStats:f.traceStats}):c.jsx("div",{className:"flex h-48 items-center justify-center text-xs text-muted-foreground",children:"No trace data available"})]})]})]})}),b?c.jsx(je,{className:"h-80 w-full"}):x&&Object.keys(x).length>0?c.jsx(vpe,{metrics:x,experimentId:e,title:"Metrics",description:"Switch between timeline and Pareto analysis views"}):c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-2",children:[c.jsx(at,{className:"text-sm",children:"Metrics"}),c.jsx(Qt,{className:"text-xs",children:"No metrics data available"})]}),c.jsx(ae,{children:c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:m&&m.length>0?"No metrics logged yet":"No runs in this experiment"})})]})]}),c.jsx(yi,{value:"runs",className:"space-y-2",children:c.jsx(ie,{children:c.jsxs(ae,{className:"p-0",children:[c.jsxs("div",{className:"flex gap-2 mb-3 items-center px-4 pt-4",children:[c.jsxs("div",{className:"relative w-64",children:[c.jsx(Sr,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Search runs...",value:o,onChange:O=>s(O.target.value),className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(Nw,{value:l,onChange:O=>u(O),options:bpe,className:"w-40"})]}),g?c.jsx("div",{className:"p-6",children:c.jsx(je,{className:"h-20 w-full"})}):!p||p.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No runs found"}):S.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No runs match your search"}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(vn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"UUID"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:S.map(O=>c.jsxs(vn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3 text-sm font-mono",children:c.jsx(hi,{to:`/runs/${O.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",children:O.id})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:aA[O.status],children:O.status})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:fn(new Date(O.createdAt),{addSuffix:!0})})]},O.id))})]})}),!g&&S&&S.length>0&&c.jsx(df,{currentPage:i,totalPages:y,pageSize:av,totalItems:v,onPageChange:a,itemName:"runs"})]})})})]})]})}function Spe({experiments:e}){const t=N.useMemo(()=>{const r=new Set;return e.forEach(i=>{i.params&&Object.keys(i.params).forEach(a=>r.add(a))}),Array.from(r).map(i=>{const a=e.map(l=>l.params&&i in l.params?JSON.stringify(l.params[i]):null),s=new Set(a.filter(l=>l!==null)).size>1;return{key:i,values:a,isDifferent:s}}).sort((i,a)=>i.isDifferent!==a.isDifferent?i.isDifferent?-1:1:i.key.localeCompare(a.key))},[e]);return c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Parameter Comparison"}),c.jsx(Qt,{children:"Side-by-side comparison of experiment parameters"})]}),c.jsx(ae,{children:t.length===0?c.jsx("div",{className:"flex h-32 items-center justify-center text-muted-foreground",children:"No parameters to compare"}):c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(vn,{children:[c.jsx(Ge,{className:"font-semibold",children:"Parameter"}),e.map((r,n)=>c.jsx(Ge,{className:"font-semibold",children:r.name},r.id))]})}),c.jsx(Rl,{children:t.map(r=>c.jsxs(vn,{className:r.isDifferent?"bg-yellow-50 dark:bg-yellow-950":"",children:[c.jsx(Ye,{className:"font-medium",children:r.key}),r.values.map((n,i)=>c.jsx(Ye,{className:n===null?"text-muted-foreground italic":r.isDifferent?"font-medium":"",children:n===null?"-":n},i))]},r.key))})]})})]})}const oA=["#0ea5e9","#8b5cf6","#ec4899","#f59e0b","#10b981"];function jpe({experimentIds:e}){const t=e.map(a=>_M(a)),r=t.some(a=>a.isLoading),n=N.useMemo(()=>{if(r)return[];const a=new Map;return t.forEach((o,s)=>{const l=o.data||{};Object.entries(l).forEach(([u,f])=>{f.forEach(d=>{const h=d.createdAt,p=`exp${s+1}_${u}`;a.has(h)||a.set(h,{timestamp:h,time:ca(new Date(h),"HH:mm:ss")});const g=a.get(h);g[p]=d.value})})}),Array.from(a.values()).sort((o,s)=>new Date(o.timestamp).getTime()-new Date(s.timestamp).getTime())},[t,r]),i=N.useMemo(()=>{const a=new Set;return n.length>0&&Object.keys(n[0]).forEach(o=>{o!=="timestamp"&&o!=="time"&&a.add(o)}),Array.from(a)},[n]);return r?c.jsxs(ie,{children:[c.jsx(it,{children:c.jsx(at,{children:"Metrics Overlay"})}),c.jsx(ae,{children:c.jsx(je,{className:"h-96 w-full"})})]}):n.length===0?c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Metrics Overlay"}),c.jsx(Qt,{children:"Combined metrics visualization across experiments"})]}),c.jsx(ae,{children:c.jsx("div",{className:"flex h-64 items-center justify-center text-muted-foreground",children:"No metrics data available for comparison"})})]}):c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Metrics Overlay"}),c.jsx(Qt,{children:"Combined metrics from all selected experiments"})]}),c.jsx(ae,{children:c.jsx(Nr,{width:"100%",height:400,children:c.jsxs(cf,{data:n,margin:{top:5,right:30,left:20,bottom:5},children:[c.jsx(oi,{strokeDasharray:"3 3"}),c.jsx(Er,{dataKey:"time",tick:{fontSize:10},label:{value:"Time",position:"insideBottom",offset:-5,style:{fontSize:10}}}),c.jsx(kr,{tick:{fontSize:10},label:{value:"Value",angle:-90,position:"insideLeft",style:{fontSize:10}}}),c.jsx(st,{contentStyle:{backgroundColor:"hsl(var(--card))",border:"1px solid hsl(var(--border))",borderRadius:"0.5rem",fontSize:"10px"}}),c.jsx(nr,{wrapperStyle:{fontSize:"10px"}}),i.map((a,o)=>c.jsx(hn,{type:"monotone",dataKey:a,stroke:oA[o%oA.length],strokeWidth:2,dot:{r:3},connectNulls:!0},a))]})})})]})}const Ope={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"};function Npe(){var i;const[e]=n_(),t=((i=e.get("ids"))==null?void 0:i.split(","))||[],{data:r,isLoading:n}=FF(t);return n?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):!r||r.length<2?c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Experiment Comparison"}),c.jsx(Qt,{children:"Select at least 2 experiments to compare"})]}),c.jsx(ae,{children:c.jsx("p",{className:"text-muted-foreground",children:"No experiments selected for comparison"})})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-3xl font-bold text-foreground",children:"Experiment Comparison"}),c.jsxs("p",{className:"mt-2 text-muted-foreground",children:["Comparing ",r.length," experiments"]})]}),c.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:r.map(a=>c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsx(at,{className:"text-lg",children:a.name}),c.jsx(vt,{variant:Ope[a.status],children:a.status})]}),a.description&&c.jsx(Qt,{children:a.description})]}),c.jsx(ae,{children:c.jsxs("dl",{className:"space-y-2 text-sm",children:[c.jsxs("div",{className:"flex justify-between",children:[c.jsx("dt",{className:"text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"font-medium",children:a.duration>0?Fr(a.duration):"-"})]}),c.jsxs("div",{className:"flex justify-between",children:[c.jsx("dt",{className:"text-muted-foreground",children:"Params"}),c.jsx("dd",{className:"font-medium",children:a.params?Object.keys(a.params).length:0})]})]})})]},a.id))}),c.jsx(Spe,{experiments:r}),c.jsx(jpe,{experimentIds:t})]})}const Ppe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},Ape=[{value:"ALL",label:"All Status"},{value:"COMPLETED",label:"Completed"},{value:"RUNNING",label:"Running"},{value:"FAILED",label:"Failed"},{value:"PENDING",label:"Pending"},{value:"CANCELLED",label:"Cancelled"}],ov=10;function Epe(){var y;const{selectedTeamId:e}=wi(),[t,r]=N.useState("ALL"),[n,i]=N.useState(""),[a,o]=N.useState(0),{data:s}=ef(e||""),{data:l,isLoading:u}=X_(e||"",{page:0,pageSize:1e3,enabled:!!e}),f=((y=l==null?void 0:l[0])==null?void 0:y.id)||"",{data:d,isLoading:h}=Py(f,{page:a,pageSize:ov,enabled:!!f}),p=(s==null?void 0:s.totalRuns)||0,g=Math.ceil(p/ov),m=N.useMemo(()=>{if(!d)return[];let x=[...d];if(n.trim()){const b=n.toLowerCase();x=x.filter(S=>{var w,O;return((w=S.id)==null?void 0:w.toLowerCase().includes(b))||((O=S.experimentId)==null?void 0:O.toLowerCase().includes(b))})}return t!=="ALL"&&(x=x.filter(b=>b.status===t)),x.sort((b,S)=>new Date(S.createdAt).getTime()-new Date(b.createdAt).getTime()),x},[d,t,n]),v=u||h;return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Runs"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Monitor execution runs with token usage and performance metrics"})]}),c.jsxs("div",{className:"flex gap-2 items-center",children:[c.jsxs("div",{className:"relative w-80",children:[c.jsx(Sr,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Search runs...",value:n,onChange:x=>i(x.target.value),className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx(Nw,{value:t,onChange:x=>r(x),options:Ape,className:"w-40"})]})]}),c.jsx(ie,{className:"border-0 shadow-sm",children:c.jsxs(ae,{className:"p-0",children:[v?c.jsx("div",{className:"p-8",children:c.jsx(je,{className:"h-24 w-full"})}):!m||m.length===0?c.jsx("div",{className:"flex h-32 items-center justify-center text-sm text-muted-foreground",children:n.trim()?"No runs match your search":t!=="ALL"?`No ${t} runs found`:"No runs found"}):c.jsx("div",{className:"overflow-hidden rounded-lg",children:c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(vn,{className:"hover:bg-transparent border-b",children:[c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Run ID"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Status"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Tokens"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Duration"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Experiment"}),c.jsx(Ge,{className:"h-11 text-xs font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:"Created"})]})}),c.jsx(Rl,{children:m.map(x=>{var O,j,P;const b=((O=x.aggregatedTokens)==null?void 0:O.totalTokens)||0,S=((j=x.aggregatedTokens)==null?void 0:j.inputTokens)||0,w=((P=x.aggregatedTokens)==null?void 0:P.outputTokens)||0;return c.jsxs(vn,{className:"hover:bg-accent/50 transition-colors border-b last:border-0",children:[c.jsx(Ye,{className:"py-3 text-sm font-mono",children:c.jsxs(hi,{to:`/runs/${x.id}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",title:x.id,children:[x.id.substring(0,8),"..."]})}),c.jsx(Ye,{className:"py-3",children:c.jsx(vt,{variant:Ppe[x.status],children:x.status})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:b>0?c.jsxs("div",{className:"flex flex-col",children:[c.jsx("span",{className:"font-semibold",children:b.toLocaleString()}),c.jsxs("span",{className:"text-xs text-muted-foreground",children:[S.toLocaleString(),"↓ ",w.toLocaleString(),"↑"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:x.duration>0?Fr(x.duration):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm font-mono",children:x.experimentId?c.jsxs(hi,{to:`/experiments/${x.experimentId}`,className:"text-blue-600 hover:text-blue-800 hover:underline font-medium transition-colors",title:x.experimentId,children:[x.experimentId.substring(0,8),"..."]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-3 text-sm text-muted-foreground",children:fn(new Date(x.createdAt),{addSuffix:!0})})]},x.id)})})]})}),c.jsx(df,{currentPage:a,totalPages:g,pageSize:ov,totalItems:p,onPageChange:o,itemName:"runs"})]})})]})}const sA={OK:"bg-green-500",ERROR:"bg-red-500",UNSET:"bg-green-500"},lA=e=>{var n,i;const t=e.spanName.toLowerCase(),r=e.spanKind;return t.includes("openai")||t.includes("chat")||t.includes("completion")?{label:"LLM",icon:c.jsx(Mn,{className:"h-3 w-3"}),badgeColor:"bg-purple-100 text-purple-700 border-purple-200"}:r==="CLIENT"||t.includes("http")||t.includes("api")?{label:"API",icon:c.jsx(B3,{className:"h-3 w-3"}),badgeColor:"bg-blue-100 text-blue-700 border-blue-200"}:t.includes("db")||t.includes("database")||t.includes("query")?{label:"DB",icon:c.jsx(kn,{className:"h-3 w-3"}),badgeColor:"bg-cyan-100 text-cyan-700 border-cyan-200"}:((n=e.spanAttributes)==null?void 0:n["traceloop.span.kind"])==="workflow"?{label:"Workflow",icon:c.jsx(R3,{className:"h-3 w-3"}),badgeColor:"bg-indigo-100 text-indigo-700 border-indigo-200"}:((i=e.spanAttributes)==null?void 0:i["traceloop.span.kind"])==="task"?{label:"Task",icon:c.jsx(yd,{className:"h-3 w-3"}),badgeColor:"bg-amber-100 text-amber-700 border-amber-200"}:{label:"Span",icon:c.jsx(io,{className:"h-3 w-3"}),badgeColor:"bg-gray-100 text-gray-700 border-gray-200"}};function kpe({spans:e}){const[t,r]=N.useState(()=>new Set(e.filter(v=>!v.parentSpanId||v.parentSpanId==="").map(v=>v.spanId))),[n,i]=N.useState(null),a=()=>{const v=new Set(e.map(y=>y.spanId));r(v)},o=()=>{r(new Set)},s=N.useMemo(()=>{if(!e||e.length===0)return[];const v=new Map,y=[];e.forEach(S=>{v.set(S.spanId,{span:S,children:[],depth:0})}),e.forEach(S=>{const w=v.get(S.spanId);if(!S.parentSpanId||S.parentSpanId==="")y.push(w);else{const O=v.get(S.parentSpanId);O?(w.depth=O.depth+1,O.children.push(w)):y.push(w)}});const x=S=>{S.sort((w,O)=>new Date(w.span.timestamp).getTime()-new Date(O.span.timestamp).getTime()),S.forEach(w=>x(w.children))},b=S=>{var E,k,D;S.children.forEach(F=>b(F));const w=parseInt((E=S.span.spanAttributes)==null?void 0:E["gen_ai.usage.input_tokens"])||0,O=parseInt((k=S.span.spanAttributes)==null?void 0:k["gen_ai.usage.output_tokens"])||0,j=parseInt((D=S.span.spanAttributes)==null?void 0:D["llm.usage.total_tokens"])||0,P=S.children.reduce((F,M)=>F+(M.inputTokens||0),0),A=S.children.reduce((F,M)=>F+(M.outputTokens||0),0),_=S.children.reduce((F,M)=>F+(M.totalTokens||0),0);S.inputTokens=w+P,S.outputTokens=O+A,S.totalTokens=j+_};return x(y),y.forEach(S=>b(S)),y},[e]),{minTimestamp:l,maxTimestamp:u,totalDuration:f}=N.useMemo(()=>{if(!e||e.length===0)return{minTimestamp:0,maxTimestamp:0,totalDuration:0};const v=e.map(w=>new Date(w.timestamp).getTime()),y=e.map(w=>new Date(w.timestamp).getTime()+w.duration/1e6),x=Math.min(...v),b=Math.max(...y),S=b-x;return{minTimestamp:x,maxTimestamp:b,totalDuration:S||1}},[e]),d=v=>{r(y=>{const x=new Set(y);return x.has(v)?x.delete(v):x.add(v),x})},h=v=>{const y=v/1e3,x=y/1e3,b=x/1e3;return b>=1?`${b.toFixed(2)}s`:x>=1?`${x.toFixed(2)}ms`:`${y.toFixed(2)}μs`},p=v=>{const{span:y}=v,x=new Date(y.timestamp).getTime(),b=x+y.duration/1e6,S=(x-l)/f*100,w=(b-x)/f*100,O=sA[y.statusCode]||sA.UNSET;return c.jsx("div",{className:`${O} absolute h-6 rounded flex items-center px-1.5 text-white text-[10px] font-medium overflow-hidden transition-all hover:opacity-90 hover:shadow-md cursor-pointer shadow`,style:{left:`${S}%`,width:`${Math.max(w,.8)}%`},title:`${y.spanName} -Duration: ${h(y.duration)} -Status: ${y.statusCode} -Kind: ${y.spanKind}`,children:c.jsx("span",{className:"truncate",children:h(y.duration)})})},g=v=>{const{span:y,children:x,depth:b,totalTokens:S,inputTokens:w,outputTokens:O}=v,j=x.length>0,P=t.has(y.spanId),A=lA(y),_=j&&S&&S>0;return c.jsxs("div",{children:[c.jsxs("div",{className:`flex items-center border-b border-border hover:bg-muted/30 transition-colors cursor-pointer h-10 ${(n==null?void 0:n.spanId)===y.spanId?"bg-accent":""}`,onClick:E=>{E.target.closest("button")||i(y)},children:[c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1.5 h-full min-w-0",style:{width:"320px",paddingLeft:`${b*10+8}px`,paddingRight:"8px"},children:[b>0&&c.jsx("div",{className:"absolute h-full border-l border-border/60",style:{left:`${(b-1)*10+8}px`}}),j?c.jsx("button",{onClick:()=>d(y.spanId),className:"p-0.5 hover:bg-accent rounded flex-shrink-0 transition-colors",children:P?c.jsx(Ep,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-foreground"}):c.jsx(db,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-foreground"})}):c.jsx("div",{className:"w-[18px] flex-shrink-0"}),c.jsxs(vt,{variant:"outline",className:`${A.badgeColor} flex items-center gap-0.5 px-1.5 py-0.5 text-[11px] font-medium flex-shrink-0`,children:[A.icon,c.jsx("span",{children:A.label})]}),c.jsx("span",{className:"text-[13px] font-medium truncate text-foreground",title:y.spanName,children:y.spanName})]}),c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1 whitespace-nowrap text-foreground h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"8px"},children:[c.jsx(io,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),c.jsx("span",{className:"text-[11px] font-mono",children:h(y.duration)})]}),c.jsx("div",{className:"flex-shrink-0 flex items-center whitespace-nowrap text-foreground h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"4px"},children:S&&S>0?c.jsxs("div",{className:"flex flex-col justify-center",children:[c.jsxs("div",{className:"font-mono flex items-center text-[11px] leading-tight",children:[_&&c.jsx("span",{className:"inline-block align-middle mr-0.5 text-muted-foreground text-[10px]",children:"∑"}),c.jsx("span",{children:S.toLocaleString()})]}),w&&O&&w>0&&O>0&&c.jsxs("div",{className:"text-muted-foreground text-[9px] font-mono leading-tight mt-0.5",children:[w.toLocaleString(),"↓ ",O.toLocaleString(),"↑"]})]}):c.jsx("span",{className:"text-muted-foreground/40 text-[11px]",children:"—"})}),c.jsx("div",{className:"flex-1 relative h-full min-w-0 flex items-center",style:{paddingLeft:"2px",paddingRight:"8px"},children:p(v)})]}),j&&P&&c.jsx("div",{children:x.map(E=>g(E))})]},y.spanId)};if(!e||e.length===0)return c.jsx(ie,{children:c.jsx(ae,{className:"p-4",children:c.jsx("div",{className:"flex h-32 items-center justify-center text-sm text-muted-foreground",children:"No traces available"})})});const m=v=>{const y=lA(v),x=v.spanAttributes||{},b=x["gen_ai.request.model"]||x["gen_ai.response.model"],S=x["gen_ai.request.temperature"],w=x["gen_ai.request.max_tokens"],O=x["gen_ai.request.top_p"],j=[];let P=0;for(;x[`gen_ai.prompt.${P}.role`];)j.push({role:x[`gen_ai.prompt.${P}.role`],content:x[`gen_ai.prompt.${P}.content`]}),P++;const A=[];for(P=0;x[`gen_ai.completion.${P}.role`];)A.push({role:x[`gen_ai.completion.${P}.role`],content:x[`gen_ai.completion.${P}.content`],finishReason:x[`gen_ai.completion.${P}.finish_reason`]}),P++;const _=j.length===0&&A.length===0;return c.jsx(ie,{className:"mt-2 border-2 shadow-sm",children:c.jsxs(ae,{className:"p-2.5",children:[c.jsxs("div",{className:"flex items-start justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:[c.jsxs(vt,{variant:"outline",className:`${y.badgeColor} flex items-center gap-0.5 px-1.5 py-0.5 text-[10px] flex-shrink-0`,children:[y.icon,y.label]}),c.jsx("h4",{className:"font-semibold text-[12px] truncate",children:v.spanName})]}),c.jsx(lt,{variant:"ghost",size:"sm",onClick:()=>i(null),className:"h-6 w-6 p-0 hover:bg-muted flex-shrink-0",children:c.jsx(Ju,{className:"h-3 w-3"})})]}),Object.keys(v.spanAttributes).length>0&&c.jsxs("div",{className:"mb-2",children:[c.jsx("div",{className:"text-[10px] font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider",children:"Span Attributes"}),c.jsx("div",{className:"space-y-1",children:Object.entries(v.spanAttributes).map(([E,k])=>c.jsxs("div",{className:"flex gap-2 text-[10px] bg-muted/20 rounded px-2 py-1",children:[c.jsxs("span",{className:"text-muted-foreground font-medium min-w-[120px] flex-shrink-0",children:[E,":"]}),c.jsx("span",{className:"font-mono text-foreground break-all",children:k})]},E))})]}),Object.keys(v.resourceAttributes).length>0&&c.jsxs("div",{className:"mb-2",children:[c.jsx("div",{className:"text-[10px] font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider",children:"Resource Attributes"}),c.jsx("div",{className:"space-y-1",children:Object.entries(v.resourceAttributes).map(([E,k])=>c.jsxs("div",{className:"flex gap-2 text-[10px] bg-muted/20 rounded px-2 py-1",children:[c.jsxs("span",{className:"text-muted-foreground font-medium min-w-[120px] flex-shrink-0",children:[E,":"]}),c.jsx("span",{className:"font-mono text-foreground break-all",children:k})]},E))})]}),!_&&b&&c.jsx("div",{className:"mb-2 pb-2 border-b",children:c.jsxs("div",{className:"flex flex-wrap gap-2 text-[10px]",children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Model:"}),c.jsx("span",{className:"font-mono text-foreground bg-muted/30 px-1.5 py-0.5 rounded",children:b})]}),S!==void 0&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Temp:"}),c.jsx("span",{className:"font-mono text-foreground",children:S})]}),w&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Max:"}),c.jsx("span",{className:"font-mono text-foreground",children:w})]}),O!==void 0&&c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-muted-foreground",children:"Top-p:"}),c.jsx("span",{className:"font-mono text-foreground",children:O})]})]})}),(j.length>0||A.length>0)&&c.jsxs("div",{className:"space-y-1.5",children:[j.map((E,k)=>c.jsxs("div",{className:"border rounded p-1.5 bg-muted/20",children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("span",{className:"text-[8px] font-semibold text-muted-foreground uppercase tracking-wider px-1 py-0.5 bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 rounded",children:E.role}),c.jsx("span",{className:"text-[8px] text-muted-foreground",children:"Input"})]}),c.jsx("div",{className:"text-[11px] whitespace-pre-wrap leading-relaxed text-foreground",children:E.content})]},`prompt-${k}`)),A.map((E,k)=>{let D="bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400";return E.role==="thinking"?D="bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-400":E.role==="assistant"&&(D="bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400"),c.jsxs("div",{className:"border rounded p-1.5 bg-muted/20",children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("span",{className:`text-[8px] font-semibold uppercase tracking-wider px-1 py-0.5 rounded ${D}`,children:E.role}),c.jsx("span",{className:"text-[8px] text-muted-foreground",children:"Output"}),E.finishReason&&c.jsxs("span",{className:"text-[8px] text-muted-foreground ml-auto",children:["· ",E.finishReason]})]}),c.jsx("div",{className:"text-[11px] whitespace-pre-wrap leading-relaxed text-foreground",children:E.content})]},`completion-${k}`)})]})]})})};return c.jsx(ie,{className:"shadow-sm",children:c.jsxs(ae,{className:"p-3",children:[c.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(io,{className:"h-3.5 w-3.5 text-muted-foreground"}),c.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Timeline"}),c.jsxs("span",{className:"text-[11px] text-muted-foreground",children:[h(f*1e6)," · ",e.length," span",e.length!==1?"s":""]}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[c.jsx("button",{onClick:a,className:"text-[11px] px-1.5 py-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:"Expand all"}),c.jsx("span",{className:"text-muted-foreground/30 text-xs",children:"|"}),c.jsx("button",{onClick:o,className:"text-[11px] px-1.5 py-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors",children:"Collapse all"})]})]}),c.jsxs("div",{className:"flex items-center gap-2 text-[11px]",children:[c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-green-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Success"})]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-red-500"}),c.jsx("span",{className:"text-muted-foreground",children:"Error"})]})]})]}),c.jsxs("div",{className:"border rounded-md overflow-hidden bg-background shadow-sm",children:[c.jsxs("div",{className:"flex items-center bg-muted/50 border-b border-border font-semibold text-[10px] text-foreground uppercase tracking-wide h-8",children:[c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"320px",paddingLeft:"8px",paddingRight:"8px"},children:"Span Name"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"8px"},children:"Duration"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"90px",paddingLeft:"8px",paddingRight:"4px"},children:"Tokens"}),c.jsx("div",{className:"flex-1 flex items-center h-full",style:{paddingLeft:"2px",paddingRight:"8px"},children:"Timeline"})]}),s.map(v=>g(v))]}),n&&c.jsx("div",{className:"mt-2",children:m(n)})]})})}const _pe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"};function Tpe(){var h;const{id:e}=Ap(),t=Fn(),{data:r,isLoading:n,error:i}=Q_(e),[a,o]=N.useState("overview"),s=(r==null?void 0:r.metrics)||[],l=(r==null?void 0:r.spans)||[],u=n,f=n,d=i;return n?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):i||!r?c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{children:"Error"}),c.jsx(Qt,{children:"Failed to load run"})]}),c.jsx(ae,{children:c.jsx("p",{className:"text-destructive",children:(i==null?void 0:i.message)||"Run not found"})})]}):c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Run Details"}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:r.id})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsxs(lt,{variant:"outline",size:"sm",onClick:()=>t(`/datasets?runId=${r.id}`),className:"h-8 gap-2",children:[c.jsx(kn,{className:"h-3.5 w-3.5"}),"Datasets"]}),c.jsx(vt,{variant:_pe[r.status],children:r.status})]})]}),c.jsxs(hf,{value:a,onValueChange:o,children:[c.jsxs(pf,{children:[c.jsx(vi,{value:"overview",children:"Overview"}),c.jsx(vi,{value:"traces",children:"Traces"})]}),c.jsxs(yi,{value:"overview",className:"space-y-2",children:[c.jsx(ie,{children:c.jsxs(ae,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Overview"}),c.jsxs("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:[c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Total Tokens"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:((h=r.aggregatedTokens)==null?void 0:h.totalTokens)!==void 0&&r.aggregatedTokens.totalTokens>0?c.jsxs(c.Fragment,{children:[Number(r.aggregatedTokens.totalTokens).toLocaleString(),c.jsxs("span",{className:"text-muted-foreground text-xs ml-1",children:["(",Number(r.aggregatedTokens.inputTokens||0).toLocaleString(),"↓ ",Number(r.aggregatedTokens.outputTokens||0).toLocaleString(),"↑)"]})]}):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Duration"}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:r.duration!==void 0&&r.duration>0?Fr(r.duration):c.jsx("span",{className:"text-muted-foreground",children:"-"})})]}),c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Created"}),c.jsx("dd",{className:"mt-1.5 text-foreground text-sm",children:fn(new Date(r.createdAt),{addSuffix:!0})})]})]}),r.meta&&Object.keys(r.meta).filter(p=>p!=="execution_result").length>0&&c.jsxs("div",{className:"mt-3 pt-3 border-t",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metadata"}),c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:Object.entries(r.meta).filter(([p])=>p!=="execution_result").map(([p,g])=>c.jsxs("div",{className:"break-words",children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:p}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm break-all",children:typeof g=="string"?g:JSON.stringify(g)})]},p))})]})]})}),c.jsx(ie,{children:c.jsxs(ae,{className:"p-3",children:[c.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Metrics"}),u?c.jsx(je,{className:"h-32 w-full"}):s.length===0?c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No metrics logged for this run"}):c.jsx("dl",{className:"grid grid-cols-3 gap-2 text-sm",children:s.map(p=>c.jsxs("div",{children:[c.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:p.key}),c.jsx("dd",{className:"mt-1.5 text-foreground font-mono text-sm",children:p.value})]},p.id))})]})})]}),c.jsx(yi,{value:"traces",children:f?c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:c.jsx(je,{className:"h-64 w-full"})})}):d?c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:c.jsxs("div",{className:"text-red-500 text-xs",children:["Error loading traces: ",d.message]})})}):l&&l.length>0?c.jsx(kpe,{spans:l}):c.jsx(ie,{children:c.jsx(ae,{className:"p-3",children:c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No traces available for this run"})})})})]})]})}var TM=(e=>(e[e.CLAUDE=1]="CLAUDE",e))(TM||{});const Cpe=e=>e===TM.CLAUDE||e===1||String(e).toUpperCase()==="CLAUDE"?"Claude":"Unknown",$pe=20;function Mpe(){const e=Fn(),{selectedTeamId:t}=wi(),[r]=N.useState(0),[n,i]=N.useState(""),{data:a,isLoading:o}=zF(t||"",{page:r,pageSize:$pe,enabled:!!t}),s=(a==null?void 0:a.filter(l=>{var u;return l.name.toLowerCase().includes(n.toLowerCase())||((u=l.description)==null?void 0:u.toLowerCase().includes(n.toLowerCase()))}))||[];return c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Agents"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"View and manage your agent registry"})]}),c.jsxs("div",{className:"relative w-80",children:[c.jsx(Sr,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Search agents...",value:n,onChange:l=>i(l.target.value),className:"pl-8 h-9 text-[13px] font-medium focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]})]}),o?c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[...Array(8)].map((l,u)=>c.jsx(je,{className:"h-32 w-full"},u))}):!s||s.length===0?c.jsx(ie,{className:"flex-1 flex flex-col",children:c.jsxs(ae,{className:"flex-1 flex flex-col items-center justify-center text-center py-16",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(Mn,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:n?"No agents match your search":"No agents found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1 max-w-md",children:n?"Try a different search term":"Run alphatrion run claude to create your first agent"})]})}):c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:s.map(l=>c.jsxs(ie,{className:"hover:shadow-lg transition-all cursor-pointer border hover:border-blue-200",onClick:()=>e(`/agents/${l.id}`),children:[c.jsx(it,{className:"p-4 pb-3",children:c.jsx("div",{className:"flex items-start justify-between gap-3",children:c.jsxs("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[c.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-purple-100 dark:bg-purple-900/20",children:c.jsx(Mn,{className:"h-5 w-5 text-purple-600 dark:text-purple-400"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(at,{className:"text-base font-semibold truncate",children:l.name}),c.jsx(vt,{variant:"outline",className:"text-xs",children:Cpe(l.type)})]}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1 font-mono truncate",children:l.id})]})]})})}),c.jsxs(ae,{className:"p-4 pt-0",children:[l.description&&c.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2 mb-3",children:l.description}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Created ",fn(new Date(l.createdAt),{addSuffix:!0})]})]})]},l.id))})]})}const Ipe=e=>e===1||String(e).toUpperCase()==="CLAUDE"?"Claude":"Unknown";function Dpe(){const{id:e}=Ap(),t=Fn(),{data:r,isLoading:n,error:i}=J_(e),[a,o]=N.useState([]),[s,l]=N.useState(!0);return N.useEffect(()=>{if(!e)return;(async()=>{var f;l(!0);try{const h=((f=(await tt(`query GetAgentSessions($id: ID!) { - agent(id: $id) { - sessions(page: 0, pageSize: 1000) { - id - agentId - teamId - userId - meta - createdAt - updatedAt - } - } - }`,{id:e})).agent)==null?void 0:f.sessions)||[];h.sort((p,g)=>new Date(g.createdAt).getTime()-new Date(p.createdAt).getTime()),o(h)}catch(d){console.error("Failed to fetch agent sessions:",d),o([])}finally{l(!1)}})()},[e]),n?c.jsxs("div",{className:"p-6 space-y-6",children:[c.jsx(je,{className:"h-10 w-64"}),c.jsx(je,{className:"h-32 w-full"}),c.jsx(je,{className:"h-96 w-full"})]}):i||!r?c.jsx("div",{className:"p-6",children:c.jsx(ie,{children:c.jsxs(ae,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx(Mn,{className:"h-12 w-12 text-muted-foreground mb-4"}),c.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Agent not found"}),c.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"The requested agent could not be found."}),c.jsx(lt,{onClick:()=>t("/agents"),children:"Back to Agents"})]})})}):c.jsxs("div",{className:"space-y-4 h-full flex flex-col",children:[c.jsx("div",{className:"flex items-center gap-4",children:c.jsxs("div",{className:"flex-1",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx(Mn,{className:"h-6 w-6 text-purple-600"}),c.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:r.name}),c.jsx(vt,{variant:"outline",className:"text-xs",children:Ipe(r.type)})]}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[a.length," session",a.length!==1?"s":""]})]})}),c.jsxs("div",{className:"flex-1 flex flex-col",children:[c.jsxs("div",{className:"mb-3",children:[c.jsx("h2",{className:"text-base font-semibold text-foreground",children:"Sessions"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"All conversation sessions for this agent"})]}),s?c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:[...Array(6)].map((u,f)=>c.jsx(je,{className:"h-40 w-full"},f))}):a.length===0?c.jsx(ie,{className:"flex-1",children:c.jsxs(ae,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(fS,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No sessions found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Sessions will appear here when you use Claude Code"})]})}):c.jsx(c.Fragment,{children:c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 overflow-y-auto",children:a.map(u=>{var d;const f=(d=u.meta)==null?void 0:d.project_name;return c.jsxs(ie,{className:"hover:shadow-lg transition-all cursor-pointer border hover:border-blue-200",onClick:()=>t(`/sessions/${u.id}`),children:[c.jsx(it,{className:"p-4 pb-3",children:c.jsx("div",{className:"flex items-start justify-between gap-2 mb-2",children:c.jsxs("div",{className:"flex items-center gap-2.5 min-w-0 flex-1",children:[c.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-blue-100 dark:bg-blue-900/20",children:c.jsx(fS,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx(at,{className:"text-sm font-semibold truncate",children:f||"Session"}),c.jsx("p",{className:"text-[11px] font-mono text-muted-foreground truncate mt-0.5",children:u.id})]})]})})}),c.jsxs(ae,{className:"p-4 pt-0 space-y-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[c.jsx(l3,{className:"h-3 w-3 shrink-0"}),c.jsx("span",{className:"truncate",children:fn(new Date(u.createdAt),{addSuffix:!0})})]}),c.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[c.jsx(io,{className:"h-3 w-3 shrink-0"}),c.jsxs("span",{className:"truncate",children:["Updated ",fn(new Date(u.updatedAt),{addSuffix:!0})]})]})]})]},u.id)})})})]})]})}const Rpe={UNKNOWN:"unknown",PENDING:"warning",RUNNING:"info",CANCELLED:"secondary",COMPLETED:"success",FAILED:"destructive"},ou=10;function Lpe(e,t){var f,d;if(!e||e.length===0)return[];const r=[...e].sort((h,p)=>{const g=h.timestamp?new Date(h.timestamp).getTime():0,m=p.timestamp?new Date(p.timestamp).getTime():0;return g-m}),n=r[0];let i="";for(let h=r.length-1;h>=0;h--){const p=(f=r[h].spanAttributes)==null?void 0:f["gen_ai.prompt.0.content"];if(p&&p.trim()){i=p;break}}i||(i="User input");const a=n!=null&&n.timestamp?new Date(n.timestamp).getTime():0,o=[];for(const h of r){const p=h.spanAttributes||{},g=h.timestamp?new Date(h.timestamp).getTime():0,m=h.duration?h.duration/1e9:0,v=h.semanticKind;let y="",x="",b="processing";if(v==="processing"){o.push({type:"processing",name:"Processing",duration:m,timestamp:g});continue}else if(v==="thinking")y=p["gen_ai.completion.0.content"]||"",x="Thinking",b="thinking";else if(v==="tool"){x=p["tool.name"]||p["gen_ai.completion.0.tool_calls.0.name"]||"Tool",b="tool_use";const w=p["gen_ai.completion.0.tool_calls.0.arguments"],O=p["alphatrion.completion.0.tool_calls.0.output"],j=p["alphatrion.completion.0.tool_calls.0.status_code"];o.push({type:"tool_use",name:x,duration:m,timestamp:g,isError:j==="ERROR",input:w,output:O});continue}else if(v==="text-generation")y=p["gen_ai.completion.0.content"]||"",x=(y.substring(0,25)||"Response").trim()+"...",b="text";else continue;o.push({type:b,name:x,duration:m,timestamp:g,content:y})}const s=[],u=((((d=o[0])==null?void 0:d.timestamp)||a)-a)/1e3;return s.push({type:"user_input",name:i.length>30?i.substring(0,30)+"...":i,duration:u,timestamp:a,content:i}),s.push(...o),s}function Fpe(){const{id:e}=Ap(),t=Fn(),[r,n]=N.useState("overview"),[i,a]=N.useState(null),[o,s]=N.useState([]),[l,u]=N.useState([]),[f,d]=N.useState(!0),[h,p]=N.useState(null),[g,m]=N.useState(null),[v,y]=N.useState(null),[x,b]=N.useState(0);N.useEffect(()=>{if(!e)return;(async()=>{var _;try{const E=await tt(`query GetSession($sessionId: ID!) { - session(sessionId: $sessionId) { - id - agentId - teamId - userId - meta - createdAt - updatedAt - runs(page: 0, pageSize: 1000) { - id - teamId - userId - sessionId - meta - duration - status - createdAt - aggregatedTokens { - totalTokens - inputTokens - outputTokens - } - } - } - }`,{sessionId:e});a(E.session);const k=((_=E.session)==null?void 0:_.runs)||[];s(k);try{const D=await tt(`query GetSessionSpans($sessionId: ID!) { - spansBySessionId(sessionId: $sessionId) { - timestamp - traceId - spanId - parentSpanId - spanName - spanKind - semanticKind - duration - statusCode - statusMessage - spanAttributes - runId - } - }`,{sessionId:e}),F=new Map;for(const C of D.spansBySessionId||[]){const R=C.runId||"";F.has(R)||F.set(R,[]),F.get(R).push(C)}const M=k.map(C=>({run:C,spans:F.get(C.id)||[]}));M.sort((C,R)=>new Date(R.run.createdAt).getTime()-new Date(C.run.createdAt).getTime()),u(M)}catch(D){console.error("Failed to fetch spans for session:",D),u(k.map(F=>({run:F,spans:[]})))}}catch(E){p(E.message)}finally{d(!1)}})()},[e]);const S=N.useMemo(()=>{const A=o.reduce((T,z)=>{var W;return T+(((W=z.aggregatedTokens)==null?void 0:W.totalTokens)||0)},0),_=o.reduce((T,z)=>{var W;return T+(((W=z.aggregatedTokens)==null?void 0:W.inputTokens)||0)},0),E=o.reduce((T,z)=>{var W;return T+(((W=z.aggregatedTokens)==null?void 0:W.outputTokens)||0)},0),k=o.reduce((T,z)=>T+(z.duration||0),0),D=o.length>0?k/o.length:0,F=o.filter(T=>T.status==="COMPLETED").length,M=o.filter(T=>T.status==="FAILED").length,C=o.length>0?F/o.length*100:0,R=_*3/1e6+E*15/1e6;return{totalTokens:A,inputTokens:_,outputTokens:E,totalDuration:k,avgDuration:D,completedRuns:F,failedRuns:M,successRate:C,estimatedCost:R}},[o]),w=N.useMemo(()=>o.map((A,_)=>{var E,k,D;return{index:_+1,name:`Run ${_+1}`,inputTokens:((E=A.aggregatedTokens)==null?void 0:E.inputTokens)||0,outputTokens:((k=A.aggregatedTokens)==null?void 0:k.outputTokens)||0,totalTokens:((D=A.aggregatedTokens)==null?void 0:D.totalTokens)||0}}),[o]),O=N.useMemo(()=>o.map((A,_)=>({index:_+1,name:`Run ${_+1}`,duration:A.duration||0})),[o]),j=N.useMemo(()=>{const A={"text-generation":0,thinking:0,tool:0};for(const E of l)for(const k of E.spans){const D=k.semanticKind;(D==="text-generation"||D==="thinking"||D==="tool")&&A[D]++}const _={"text-generation":"#10b981",thinking:"#8b5cf6",tool:"#3b82f6"};return Object.entries(A).filter(([E,k])=>k>0).map(([E,k])=>({name:E.charAt(0).toUpperCase()+E.slice(1).replace("-"," "),value:k,color:_[E]||"#6b7280"})).sort((E,k)=>k.value-E.value)},[l]),P=N.useMemo(()=>{const A={"text-generation":{input:0,output:0,total:0},thinking:{input:0,output:0,total:0},tool:{input:0,output:0,total:0},processing:{input:0,output:0,total:0}};for(const E of l)for(const k of E.spans){const D=k.semanticKind,F=k.spanAttributes||{},M=parseInt(F["gen_ai.usage.input_tokens"])||0,C=parseInt(F["gen_ai.usage.output_tokens"])||0;A[D]&&(A[D].input+=M,A[D].output+=C,A[D].total+=M+C)}const _={"text-generation":"#10b981",thinking:"#8b5cf6",tool:"#3b82f6",processing:"#6b7280"};return Object.entries(A).filter(([E,k])=>k.total>0).map(([E,k])=>({name:E.charAt(0).toUpperCase()+E.slice(1).replace("-"," "),inputTokens:k.input,outputTokens:k.output,totalTokens:k.total,color:_[E]||"#6b7280"})).sort((E,k)=>k.totalTokens-E.totalTokens)},[l]);return f?c.jsxs("div",{className:"space-y-4",children:[c.jsx(je,{className:"h-12 w-64"}),c.jsx(je,{className:"h-96 w-full"})]}):h||!i?c.jsx("div",{className:"p-6",children:c.jsx(ie,{children:c.jsxs(ae,{className:"flex flex-col items-center justify-center py-16 text-center",children:[c.jsx(Mn,{className:"h-12 w-12 text-muted-foreground mb-4"}),c.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Session not found"}),c.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:h||"The requested session could not be found."}),c.jsx(lt,{onClick:()=>t("/agents"),children:"Back to Agents"})]})})}):c.jsxs("div",{className:"space-y-4",children:[c.jsx("div",{className:"flex items-start justify-between",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground font-mono",children:i.agentId}),c.jsx("p",{className:"mt-0.5 text-muted-foreground font-mono text-xs",children:i.id})]})}),c.jsxs(hf,{value:r,onValueChange:n,children:[c.jsxs(pf,{children:[c.jsx(vi,{value:"overview",children:"Overview"}),c.jsx(vi,{value:"runs",children:"Completions"})]}),c.jsxs(yi,{value:"overview",className:"space-y-4",children:[c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(at,{className:"text-sm font-medium text-muted-foreground",children:"Completions"}),c.jsx(i5,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ae,{children:[c.jsx("div",{className:"text-2xl font-bold",children:o.length}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[S.completedRuns," completed / ",S.failedRuns," failed"]})]})]}),c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(at,{className:"text-sm font-medium text-muted-foreground",children:"Total Tokens"}),c.jsx(yd,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ae,{children:[c.jsx("div",{className:"text-2xl font-bold",children:S.totalTokens.toLocaleString()}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[S.inputTokens.toLocaleString()," in / ",S.outputTokens.toLocaleString()," out"]})]})]}),c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(at,{className:"text-sm font-medium text-muted-foreground",children:"Avg Duration"}),c.jsx(io,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ae,{children:[c.jsx("div",{className:"text-2xl font-bold",children:Fr(S.avgDuration)}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Total: ",Fr(S.totalDuration)]})]})]}),c.jsxs(ie,{children:[c.jsxs(it,{className:"pb-2 flex flex-row items-center justify-between space-y-0",children:[c.jsx(at,{className:"text-sm font-medium text-muted-foreground",children:"Est. Cost"}),c.jsx(N3,{className:"h-4 w-4 text-muted-foreground"})]}),c.jsxs(ae,{children:[c.jsxs("div",{className:"text-2xl font-bold",children:["$",S.estimatedCost.toFixed(4)]}),c.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Success rate: ",S.successRate.toFixed(1),"%"]})]})]})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{className:"text-sm",children:"Token Usage per Completion"}),c.jsx(Qt,{className:"text-xs",children:"Input vs Output tokens"})]}),c.jsx(ae,{children:c.jsx(Nr,{width:"100%",height:250,children:c.jsxs(RP,{data:w,children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(Er,{dataKey:"index",tick:{fontSize:12}}),c.jsx(kr,{tick:{fontSize:12}}),c.jsx(st,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"}}),c.jsx(Tn,{dataKey:"inputTokens",stackId:"a",fill:"#0ea5e9",name:"Input"}),c.jsx(Tn,{dataKey:"outputTokens",stackId:"a",fill:"#8b5cf6",name:"Output"})]})})})]}),c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{className:"text-sm",children:"Response Time"}),c.jsx(Qt,{className:"text-xs",children:"Duration per completion"})]}),c.jsx(ae,{children:c.jsx(Nr,{width:"100%",height:250,children:c.jsxs(cf,{data:O,children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(Er,{dataKey:"index",tick:{fontSize:12}}),c.jsx(kr,{tick:{fontSize:12}}),c.jsx(st,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>Fr(A)}),c.jsx(hn,{type:"monotone",dataKey:"duration",stroke:"#10b981",strokeWidth:2,dot:{r:3}})]})})})]}),c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{className:"text-sm",children:"Operation Distribution"}),c.jsx(Qt,{className:"text-xs",children:"By operation type"})]}),c.jsx(ae,{children:c.jsx(Nr,{width:"100%",height:250,children:c.jsxs(ff,{children:[c.jsx($r,{data:j,cx:"50%",cy:"50%",labelLine:!1,label:({name:A,percent:_})=>`${A}: ${(_*100).toFixed(1)}%`,outerRadius:80,fill:"#8884d8",dataKey:"value",style:{fontSize:"12px"},children:j.map((A,_)=>c.jsx(Oi,{fill:A.color},`cell-${_}`))}),c.jsx(st,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>`${A} operations`}),c.jsx(nr,{wrapperStyle:{fontSize:"12px"},iconType:"circle"})]})})})]}),c.jsxs(ie,{children:[c.jsxs(it,{children:[c.jsx(at,{className:"text-sm",children:"Token Distribution by Operation"}),c.jsx(Qt,{className:"text-xs",children:"Input vs Output tokens"})]}),c.jsx(ae,{children:c.jsx(Nr,{width:"100%",height:250,children:c.jsxs(RP,{data:P,layout:"vertical",children:[c.jsx(oi,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),c.jsx(Er,{type:"number",tick:{fontSize:12}}),c.jsx(kr,{dataKey:"name",type:"category",tick:{fontSize:11},width:100}),c.jsx(st,{contentStyle:{fontSize:"12px",backgroundColor:"#fafafa",border:"1px solid #d1d5db"},formatter:A=>A.toLocaleString()}),c.jsx(nr,{wrapperStyle:{fontSize:"12px"},iconType:"circle"}),c.jsx(Tn,{dataKey:"inputTokens",stackId:"a",fill:"#0ea5e9",name:"Input"}),c.jsx(Tn,{dataKey:"outputTokens",stackId:"a",fill:"#8b5cf6",name:"Output"})]})})})]})]})]}),c.jsx(yi,{value:"runs",className:"space-y-2",children:l.length===0?c.jsx(ie,{children:c.jsxs(ae,{className:"flex flex-col items-center justify-center h-64 text-center p-6",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:c.jsx(Mn,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-xs font-medium text-foreground mb-1",children:"No completions yet"}),c.jsx("p",{className:"text-[10px] text-muted-foreground max-w-xs",children:o.length>0?"Trace data may not be available for this session":"Completions will appear here as you interact with the agent"})]})}):c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"space-y-2",children:l.slice(x*ou,(x+1)*ou).map((A,_)=>{const E=x*ou+_,k=g===E,D=[...A.spans].sort((C,R)=>{const T=C.timestamp?new Date(C.timestamp).getTime():0,z=R.timestamp?new Date(R.timestamp).getTime():0;return T-z});let F="";for(const C of D){const R=C.spanAttributes||{},T=R["gen_ai.prompt.0.content"];if(T&&T.trim()){F=T;break}if(F||(F=R["llm.prompts.0.content"]||R["input.value"]||R.input||""),F&&F.trim())break}const M=F.length>100?F.substring(0,100)+"...":F;return c.jsx(ie,{className:`cursor-pointer transition-all hover:shadow-md ${k?"ring-2 ring-primary":""}`,onClick:()=>{m(k?null:E),y(null)},children:c.jsxs(ae,{className:"p-3",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:`flex-shrink-0 w-2 h-2 rounded-full mt-1.5 ${A.run.status==="COMPLETED"?"bg-green-500":A.run.status==="FAILED"?"bg-red-500":"bg-yellow-500"}`}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsxs("div",{className:"flex items-start gap-2 mb-1",children:[F?c.jsx("p",{className:"text-sm text-foreground line-clamp-2 flex-1",children:M}):c.jsx("p",{className:"text-sm text-muted-foreground italic flex-1",children:"[No user input]"}),c.jsx(vt,{variant:Rpe[A.run.status],className:"text-[10px] flex-shrink-0",children:A.run.status})]}),c.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[c.jsx("span",{children:fn(new Date(A.run.createdAt),{addSuffix:!0})}),A.run.duration&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsx(io,{className:"h-3 w-3"}),c.jsx("span",{className:"font-mono",children:Fr(A.run.duration)})]}),A.run.aggregatedTokens&&A.run.aggregatedTokens.totalTokens>0&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsx(yd,{className:"h-3 w-3"}),c.jsxs("span",{className:"font-mono",children:[A.run.aggregatedTokens.totalTokens.toLocaleString()," tokens"]})]}),A.spans.length>0&&c.jsxs(c.Fragment,{children:[c.jsx("span",{children:"•"}),c.jsxs("span",{children:[A.spans.length," span",A.spans.length!==1?"s":""]})]})]})]})]}),k&&c.jsx("div",{className:"mt-3 pt-3 border-t space-y-3",children:c.jsx("div",{children:(()=>{const C=Lpe(A.spans,A.run.duration||0);if(C.length===0)return c.jsx("div",{className:"flex h-24 items-center justify-center text-xs text-muted-foreground",children:"No timeline data available"});const R=C.filter(L=>L.timestamp&&L.timestamp>0).map(L=>L.timestamp),T=Math.min(...R),z=Math.max(...R),W=C[C.length-1],H=W.timestamp&&W.duration?W.timestamp+W.duration*1e3:z,q=Math.max(H-T,1e3);return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:"Timeline"}),c.jsxs("span",{className:"text-[10px] text-muted-foreground font-mono",children:[C.length-1," operations • ",Fr(q/1e3)]})]}),A.run.aggregatedTokens&&c.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[c.jsx(yd,{className:"h-3 w-3"}),A.run.aggregatedTokens.inputTokens,"↓ ",A.run.aggregatedTokens.outputTokens,"↑"]})]}),c.jsxs("div",{className:"border rounded overflow-hidden",children:[c.jsxs("div",{className:"flex items-center bg-muted/30 border-b text-[9px] text-muted-foreground uppercase tracking-wide h-6",children:[c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"140px",paddingLeft:"6px"},children:"Operation"}),c.jsx("div",{className:"flex-shrink-0 flex items-center h-full",style:{width:"70px",paddingLeft:"6px"},children:"Duration"}),c.jsx("div",{className:"flex-1 flex items-center h-full",style:{paddingLeft:"6px",paddingRight:"6px"},children:"Timeline"})]}),C.map((L,Y)=>{const ve=L.duration!==void 0&&L.duration>0,Ne=L.duration||0,dt=(L.timestamp||T)-T,X=dt/q*100,ce=Ne*1e3/q*100;let K="",Ae="",me=null,Le="";return L.type==="user_input"?(K="bg-green-100 text-green-700 border-green-200",Ae="bg-green-500",me=c.jsx(o5,{className:"h-3 w-3"}),Le="User"):L.type==="thinking"?(K="bg-purple-100 text-purple-700 border-purple-200",Ae="bg-purple-500",me=c.jsx(i3,{className:"h-3 w-3"}),Le="Think"):L.type==="text"?(K="bg-gray-100 text-gray-700 border-gray-200",Ae="bg-gray-500",me=c.jsx(Mn,{className:"h-3 w-3"}),Le="Text"):L.type==="tool_use"?(L.isError?(K="bg-red-100 text-red-700 border-red-200",Ae="bg-red-500"):(K="bg-blue-100 text-blue-700 border-blue-200",Ae="bg-blue-500"),me=c.jsx(c5,{className:"h-3 w-3"}),Le="Tool"):L.type==="processing"&&(K="bg-slate-100 text-slate-600 border-slate-200",Ae="bg-slate-400",me=c.jsx(io,{className:"h-3 w-3"}),Le="Proc"),c.jsxs("div",{children:[c.jsxs("div",{className:`flex items-center border-b border-border hover:bg-muted/20 transition-colors h-8 cursor-pointer ${v===Y?"bg-accent":""}`,onClick:ct=>{ct.stopPropagation(),y(v===Y?null:Y)},children:[c.jsxs("div",{className:"flex-shrink-0 flex items-center gap-1 h-full min-w-0",style:{width:"140px",paddingLeft:"6px",paddingRight:"6px"},children:[c.jsxs(vt,{variant:"outline",className:`${K} flex items-center gap-0.5 px-1 py-0 text-[9px] font-medium flex-shrink-0 h-4`,children:[me,c.jsx("span",{children:Le})]}),c.jsx("span",{className:"text-[11px] truncate text-foreground",title:L.name,children:L.name})]}),c.jsx("div",{className:"flex-shrink-0 flex items-center gap-1 text-foreground h-full",style:{width:"70px",paddingLeft:"6px"},children:c.jsx("span",{className:`text-[10px] font-mono ${ve?"":"text-muted-foreground italic"}`,children:ve?Fr(Ne):c.jsx("span",{className:"text-muted-foreground/40",children:"~0ms"})})}),c.jsx("div",{className:"flex-1 relative h-full min-w-0 flex items-center",style:{paddingLeft:"6px",paddingRight:"6px"},children:ve&&c.jsx("div",{className:`${Ae} absolute h-4 rounded flex items-center px-1 text-white text-[9px] font-medium`,style:{left:`${Math.max(0,Math.min(99,X))}%`,width:`${Math.max(1,Math.min(100-X,ce))}%`},title:`${L.name} -Start: +${(dt/1e3).toFixed(2)}s -Duration: ${Fr(Ne)}`,children:c.jsx("span",{className:"truncate",children:Fr(Ne)})})})]}),v===Y&&L.type!=="processing"&&c.jsxs("div",{className:"border-b border-border bg-muted/10 p-3",children:[L.type==="user_input"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"User Input"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="thinking"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Thinking"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="text"&&L.content&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Response"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground whitespace-pre-wrap break-words max-h-96 overflow-y-auto",children:L.content})})]}),L.type==="tool_use"&&c.jsxs("div",{className:"space-y-3",children:[L.input&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Input"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:(()=>{try{return JSON.stringify(JSON.parse(L.input),null,2)}catch{return L.input}})()})})]}),L.output&&c.jsxs("div",{children:[c.jsx("h5",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Output"}),c.jsx("div",{className:"bg-background rounded border p-2.5",children:c.jsx("pre",{className:"text-xs text-foreground font-mono whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:L.output})})]}),L.isError&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/10 border border-red-200 dark:border-red-800 rounded p-2",children:c.jsx("p",{className:"text-xs text-red-700 dark:text-red-300 font-semibold",children:"Tool execution failed"})})]})]})]},Y)})]})]})})()})})]})},A.run.id)})}),c.jsx(df,{currentPage:x,totalPages:Math.max(1,Math.ceil(l.length/ou)),pageSize:ou,totalItems:l.length,onPageChange:b,itemName:"completions"})]})})]})]})}function zpe(e,t){const{page:r=0,pageSize:n=20,enabled:i=!0}=t||{};return Nt({queryKey:["datasets",e,r,n],queryFn:async()=>(await tt(Ft.listDatasets,{teamId:e,page:r,pageSize:n})).datasets,enabled:i&&!!e})}function Bpe(){const e=Gc();return Kk({mutationFn:async t=>(await G_(Y_.deleteDatasets,{datasetIds:t})).deleteDatasets,onSuccess:()=>{e.invalidateQueries({queryKey:["datasets"]}),e.invalidateQueries({queryKey:["dataset"]})}})}async function Upe(){try{return(await tt(Ft.listArtifactRepositories)).artifactRepos.map(t=>t.name)}catch(e){throw new Error(`Failed to list repositories: ${e instanceof Error?e.message:"Unknown error"}`)}}async function Wpe(e,t){try{return(await tt(Ft.listArtifactTags,{team_id:e,repo_name:t})).artifactTags.map(n=>n.name)}catch(r){throw new Error(`Failed to list tags for repository ${t}: ${r instanceof Error?r.message:"Unknown error"}`)}}async function Kpe(e,t,r){try{return(await tt(Ft.listArtifactFiles,{team_id:e,tag:t,repo_name:r})).artifactFiles}catch(n){throw new Error(`Failed to list files for artifact: ${n instanceof Error?n.message:"Unknown error"}`)}}async function qpe(e,t,r,n){try{return(await tt(Ft.getArtifactContent,{team_id:e,tag:t,repo_name:r,filename:n})).artifactContent}catch(i){throw new Error(`Failed to get artifact content: ${i instanceof Error?i.message:"Unknown error"}`)}}function Hpe(){return Nt({queryKey:["artifacts","repositories"],queryFn:Upe,staleTime:30*60*1e3})}function Vpe(e,t){return Nt({queryKey:["artifacts","tags",e,t],queryFn:()=>Wpe(e,t),enabled:!!(e&&t),staleTime:10*60*1e3})}function CM(e,t,r,n=!0){return Nt({queryKey:["artifacts","files",e,t,r],queryFn:()=>Kpe(e,t,r),enabled:!!(n&&e&&t&&r),staleTime:1/0,gcTime:30*60*1e3,retry:1})}function $M(e,t,r,n,i=!0){return Nt({queryKey:["artifacts","content",e,t,r,n],queryFn:()=>qpe(e,t,r,n),enabled:!!(i&&e&&t&&r),staleTime:1/0,gcTime:30*60*1e3,retry:1})}function MM({open:e,onOpenChange:t,artifactContent:r,isLoading:n,error:i,title:a="Artifact Content",hideLineCount:o=!1,hideCloseButton:s=!1}){const[l,u]=N.useState(!1),[f,d]=N.useState("content"),h=()=>{r!=null&&r.content&&(navigator.clipboard.writeText(r.content),u(!0),setTimeout(()=>u(!1),2e3))},p=()=>{if(r){const x=new Blob([r.content],{type:r.contentType}),b=URL.createObjectURL(x),S=document.createElement("a");S.href=b,S.download=r.filename,document.body.appendChild(S),S.click(),document.body.removeChild(S),URL.revokeObjectURL(b)}},g=()=>{if(!r)return"";const{content:x,filename:b,contentType:S}=r;if(S==="application/json"||b.endsWith(".json"))try{const w=JSON.parse(x);return JSON.stringify(w,null,2)}catch{return x}return x},m=()=>{var b;if(!r)return c.jsx(Qu,{className:"h-3.5 w-3.5 text-purple-600"});const x=((b=a.split(" - ")[0])==null?void 0:b.toLowerCase())||"";return x.includes("execution")||x.includes("run")?c.jsx(ps,{className:"h-3.5 w-3.5 text-blue-600"}):x.includes("checkpoint")||x.includes("model")?c.jsx(kn,{className:"h-3.5 w-3.5 text-green-600"}):c.jsx(Qu,{className:"h-3.5 w-3.5 text-purple-600"})},v=N.useMemo(()=>{if(!(r!=null&&r.content))return null;const x=r.content,b=x.split(` -`).length,S=new TextEncoder().encode(x).length;let w;return S<1024?w=`${S} B`:S<1024*1024?w=`${(S/1024).toFixed(2)} KB`:w=`${(S/(1024*1024)).toFixed(2)} MB`,{lines:b,size:w,bytes:S}},[r==null?void 0:r.content]),y=()=>!r||!v?null:c.jsxs("div",{className:"p-3 space-y-3",children:[c.jsxs("div",{className:"space-y-1.5",children:[c.jsx("h3",{className:"text-xs font-semibold text-slate-900 dark:text-slate-100 uppercase tracking-wide",children:"File Information"}),c.jsxs("div",{className:"border border-slate-200 dark:border-slate-700 rounded bg-white dark:bg-slate-800",children:[c.jsxs("div",{className:"flex justify-between items-center py-1.5 px-2 border-b border-slate-200 dark:border-slate-700",children:[c.jsx("span",{className:"text-slate-600 dark:text-slate-400 font-medium text-xs",children:"Filename"}),c.jsx("code",{className:"font-mono text-slate-900 dark:text-slate-100 text-xs",children:r.filename})]}),c.jsxs("div",{className:"flex justify-between items-center py-1.5 px-2",children:[c.jsx("span",{className:"text-slate-600 dark:text-slate-400 font-medium text-xs",children:"Content Type"}),c.jsx("code",{className:"font-mono text-slate-900 dark:text-slate-100 text-xs",children:r.contentType})]})]})]}),c.jsxs("div",{className:"space-y-1.5",children:[c.jsx("h3",{className:"text-xs font-semibold text-slate-900 dark:text-slate-100 uppercase tracking-wide",children:"Statistics"}),c.jsxs("div",{className:"grid grid-cols-2 gap-1.5",children:[c.jsxs("div",{className:"p-2 rounded bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700",children:[c.jsx("div",{className:"text-xs font-medium text-slate-600 dark:text-slate-400 uppercase tracking-wide",children:"Lines"}),c.jsx("div",{className:"text-xs font-semibold tabular-nums text-slate-900 dark:text-slate-100",children:v.lines.toLocaleString()})]}),c.jsxs("div",{className:"p-2 rounded bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700",children:[c.jsx("div",{className:"text-xs font-medium text-slate-600 dark:text-slate-400 uppercase tracking-wide",children:"Size"}),c.jsx("div",{className:"text-xs font-semibold tabular-nums text-slate-900 dark:text-slate-100",children:v.size})]})]})]})]});return c.jsx(kw,{open:e,onOpenChange:t,children:c.jsxs($m,{className:"max-w-5xl max-h-[85vh] overflow-hidden flex flex-col gap-0 p-0",hideCloseButton:s,children:[c.jsx(Mm,{className:"px-4 py-2.5 border-b bg-gradient-to-r from-slate-50 to-slate-100 dark:from-slate-900 dark:to-slate-800",children:c.jsxs("div",{className:"flex items-center justify-between gap-3",children:[c.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[m(),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx(Im,{className:"text-sm font-semibold truncate text-slate-900 dark:text-slate-100",children:a}),c.jsx("p",{className:"text-xs text-slate-600 dark:text-slate-400 font-mono truncate mt-0.5",children:(r==null?void 0:r.filename)||"Loading..."})]}),v&&!o&&c.jsx("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:c.jsxs(vt,{variant:"secondary",className:"text-xs font-medium px-2 py-0.5",children:[v.lines," lines"]})})]}),r&&c.jsxs("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:[c.jsx(lt,{variant:"outline",size:"sm",onClick:h,className:"h-7 px-2.5 text-xs font-medium",children:l?c.jsxs(c.Fragment,{children:[c.jsx(u_,{className:"h-3 w-3 mr-1"}),"Copied"]}):c.jsxs(c.Fragment,{children:[c.jsx(S3,{className:"h-3 w-3 mr-1"}),"Copy"]})}),c.jsxs(lt,{variant:"outline",size:"sm",onClick:p,className:"h-7 px-2.5 text-xs font-medium",children:[c.jsx(A3,{className:"h-3 w-3 mr-1"}),"Download"]})]})]})}),c.jsx("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0",children:n&&!r?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading artifact..."})}):i?c.jsx("div",{className:"flex items-center justify-center h-full",children:c.jsxs("div",{className:"text-center",children:[c.jsx("p",{className:"text-sm font-medium text-destructive",children:"Failed to load artifact"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:i.message})]})}):c.jsxs(hf,{value:f,onValueChange:d,className:"flex-1 min-h-0 flex flex-col",children:[c.jsx("div",{className:"px-4 py-2 border-b bg-muted/30 flex-shrink-0",children:c.jsxs(pf,{className:"h-8 bg-background/60",children:[c.jsxs(vi,{value:"content",className:"text-xs font-medium h-6 px-3 data-[state=active]:bg-background",children:[c.jsx(yy,{className:"h-3 w-3 mr-1.5"}),"Content"]}),c.jsxs(vi,{value:"metadata",className:"text-xs font-medium h-6 px-3 data-[state=active]:bg-background",children:[c.jsx(W3,{className:"h-3 w-3 mr-1.5"}),"Metadata"]})]})}),c.jsx(yi,{value:"content",className:"flex-1 min-h-0 overflow-y-auto m-0 bg-slate-950 data-[state=active]:block data-[state=inactive]:hidden",children:c.jsx("pre",{className:"text-xs p-4 text-slate-50 leading-relaxed font-mono",children:c.jsx("code",{children:g()})})}),c.jsx(yi,{value:"metadata",className:"flex-1 min-h-0 overflow-y-auto m-0 bg-slate-50 dark:bg-slate-900 data-[state=active]:block data-[state=inactive]:hidden",children:y()})]})})]})})}const id=10;function Gpe(){const{selectedTeamId:e}=wi(),[t]=n_(),[r,n]=N.useState(0),[i,a]=N.useState(""),[o,s]=N.useState(null),[l,u]=N.useState(""),[f,d]=N.useState(!1),[h,p]=N.useState(new Set),[g,m]=N.useState(!1),v=Bpe(),{data:y}=ef(e||"");N.useEffect(()=>{const L=t.get("experimentId"),Y=t.get("runId");L?a(L):Y&&a(Y)},[t]);const{data:x,isLoading:b}=zpe(e||"",{page:r,pageSize:id,enabled:!!e}),S=(y==null?void 0:y.totalDatasets)||0,w=Math.ceil(S/id),O=L=>{const Y=L.match(/^[^/]+\/([^:]+):(.+)$/);return Y?{repoName:Y[1],tag:Y[2]}:{repoName:"",tag:""}},{repoName:j,tag:P}=o?O(o.path):{repoName:"",tag:""},{data:A,isLoading:_}=CM(e||"",P,j,!!o),{data:E,isLoading:k,error:D}=$M(e||"",P,j,l,f&&!!l),F=L=>{s(L),u("")},M=L=>{u(L),d(!0)},C=N.useMemo(()=>{if(!x)return[];if(!i.trim())return x;const L=i.toLowerCase();return x.filter(Y=>{var ve,Ne,we;return Y.name.toLowerCase().includes(L)||((ve=Y.description)==null?void 0:ve.toLowerCase().includes(L))||((Ne=Y.experimentId)==null?void 0:Ne.toLowerCase().includes(L))||((we=Y.runId)==null?void 0:we.toLowerCase().includes(L))||Y.id.toLowerCase().includes(L)})},[x,i]);Math.min(r*id+((x==null?void 0:x.length)||0),S);const R=L=>L<1024?`${L} B`:L<1024*1024?`${(L/1024).toFixed(1)} KB`:`${(L/(1024*1024)).toFixed(1)} MB`,T=C.length>0&&C.every(L=>h.has(L.id)),z=()=>{p(T?new Set:new Set(C.map(L=>L.id)))},W=L=>{const Y=new Set(h);Y.has(L)?Y.delete(L):Y.add(L),p(Y)},H=()=>{h.size!==0&&m(!0)},q=async L=>{if(L==null||L.preventDefault(),L==null||L.stopPropagation(),h.size!==0)try{const Y=await v.mutateAsync(Array.from(h));console.log(`Successfully deleted ${Y} datasets`),p(new Set),m(!1),o&&h.has(o.id)&&(s(null),u(""))}catch(Y){console.error("Failed to delete datasets:",Y),alert("Failed to delete datasets. Please try again.")}};return e?c.jsxs("div",{className:"space-y-3 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Datasets"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse and manage datasets"})]}),c.jsxs("div",{className:"relative w-80",children:[c.jsx(Sr,{className:"absolute left-2.5 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),c.jsx(si,{placeholder:"Search datasets...",value:i,onChange:L=>{a(L.target.value),n(0)},className:"pl-8 h-9 text-sm focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]})]}),c.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-2 min-h-0",children:[c.jsx("div",{className:o?"col-span-8":"col-span-12",children:c.jsxs(ie,{className:"h-full flex flex-col",children:[c.jsx(ae,{className:"p-0 flex-1 overflow-auto",children:b?c.jsx("div",{className:"p-3 space-y-1.5",children:[...Array(10)].map((L,Y)=>c.jsx(je,{className:"h-12 w-full"},Y))}):x.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(kn,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No datasets found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Datasets will appear here once created"})]}):C.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-16 h-16 rounded-full bg-muted/50 flex items-center justify-center mb-4",children:c.jsx(Sr,{className:"h-8 w-8 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No matching datasets"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):c.jsxs(Il,{children:[c.jsx(Dl,{children:c.jsxs(vn,{className:"hover:bg-transparent",children:[c.jsx(Ge,{className:"w-[28%] h-9",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Ic,{checked:T,onChange:z,"aria-label":"Select all datasets"}),c.jsx("button",{onClick:H,disabled:v.isPending||h.size===0,className:`inline-flex items-center justify-center h-6 w-6 rounded hover:bg-destructive/10 text-destructive transition-colors disabled:opacity-50 ${h.size===0?"invisible pointer-events-none":""}`,title:h.size>0?`Delete ${h.size} ${h.size===1?"dataset":"datasets"}`:"",children:c.jsx(xy,{className:"h-3.5 w-3.5"})}),c.jsx("span",{children:"Name"})]})}),c.jsx(Ge,{className:"w-[20%] h-9",children:"Description"}),c.jsx(Ge,{className:"w-[12%] h-9",children:"Experiment"}),c.jsx(Ge,{className:"w-[12%] h-9",children:"Run"}),c.jsx(Ge,{className:"w-[14%] h-9",children:"Created"}),c.jsx(Ge,{className:"w-[8%] h-9 text-right",children:"Actions"})]})}),c.jsx(Rl,{children:C.map(L=>c.jsxs(vn,{className:(o==null?void 0:o.id)===L.id?"bg-accent/50":"",children:[c.jsx(Ye,{className:"py-2",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(Ic,{checked:h.has(L.id),onChange:()=>W(L.id),"aria-label":`Select dataset ${L.name}`}),c.jsx("div",{className:"w-6"}),c.jsx(kn,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsx("div",{className:"min-w-0",children:c.jsx("p",{className:"text-sm font-medium truncate",children:L.name})})]})}),c.jsx(Ye,{className:"py-2",children:c.jsx("p",{className:"text-sm text-muted-foreground line-clamp-1",children:L.description||"-"})}),c.jsx(Ye,{className:"py-2",children:L.experimentId?c.jsxs(hi,{to:`/experiments/${L.experimentId}`,className:"inline-flex items-center gap-1 text-sm text-blue-600 hover:text-blue-700 hover:underline",children:[c.jsx("span",{className:"font-mono truncate max-w-[100px]",children:L.experimentId.slice(0,8)}),c.jsx(cS,{className:"h-3.5 w-3.5 flex-shrink-0"})]}):c.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-2",children:L.runId?c.jsxs(hi,{to:`/runs/${L.runId}`,className:"inline-flex items-center gap-1 text-sm text-green-600 hover:text-green-700 hover:underline",children:[c.jsx("span",{className:"font-mono truncate max-w-[100px]",children:L.runId.slice(0,8)}),c.jsx(cS,{className:"h-3.5 w-3.5 flex-shrink-0"})]}):c.jsx("span",{className:"text-sm text-muted-foreground",children:"-"})}),c.jsx(Ye,{className:"py-2",children:c.jsx("p",{className:"text-sm text-muted-foreground",children:fn(new Date(L.createdAt),{addSuffix:!0})})}),c.jsx(Ye,{className:"py-2 text-right",children:c.jsx(lt,{variant:"ghost",size:"sm",onClick:()=>F(L),className:"h-7 px-2",children:c.jsx(yy,{className:"h-3.5 w-3.5"})})})]},L.id))})]})}),c.jsx(df,{currentPage:r,totalPages:w,pageSize:id,totalItems:S,onPageChange:n,itemName:"datasets"})]})}),o&&c.jsx("div",{className:"col-span-4",children:c.jsxs(ie,{className:"h-full flex flex-col",children:[c.jsx("div",{className:"p-3 border-b bg-muted/30",children:c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[c.jsx(kn,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("p",{className:"text-sm font-semibold truncate",children:o.name}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[(A==null?void 0:A.length)||0," ",(A==null?void 0:A.length)===1?"file":"files"]})]})]}),c.jsx(lt,{variant:"ghost",size:"sm",onClick:()=>{s(null),u("")},className:"h-7 w-7 p-0",children:c.jsx(Ju,{className:"h-3.5 w-3.5"})})]})}),c.jsx("div",{className:"flex-1 overflow-y-auto",children:_?c.jsx("div",{className:"p-2 space-y-1",children:[...Array(10)].map((L,Y)=>c.jsx(je,{className:"h-10 w-full"},Y))}):!A||A.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No files found"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"This dataset is empty"})]}):c.jsx("div",{className:"divide-y",children:A.map(L=>c.jsxs("button",{onClick:()=>M(L.filename),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-accent transition-colors group text-left",children:[c.jsx(ps,{className:"h-4 w-4 text-blue-500 flex-shrink-0 group-hover:text-blue-600"}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-sm font-medium truncate",children:L.filename}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[R(L.size)," • ",L.contentType]})]}),c.jsx(yy,{className:"h-4 w-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]},L.filename))})})]})})]}),c.jsx(MM,{open:f,onOpenChange:d,artifactContent:E,isLoading:k,error:D,title:l?`${o==null?void 0:o.name} / ${l}`:"File Content",hideLineCount:!0,hideCloseButton:!0}),c.jsx(kw,{open:g,onOpenChange:m,children:c.jsxs($m,{className:"pointer-events-auto sm:max-w-[440px]",children:[c.jsxs(Mm,{className:"space-y-3",children:[c.jsxs(Im,{className:"text-lg font-semibold text-foreground",children:["Delete ",h.size===1?"Dataset":"Datasets"]}),c.jsxs(Tw,{className:"text-sm text-muted-foreground leading-relaxed",children:["You are about to delete ",c.jsx("span",{className:"font-medium text-foreground",children:h.size})," ",h.size===1?"dataset":"datasets",". This action cannot be undone."]})]}),c.jsxs(_w,{className:"gap-2 sm:gap-2",children:[c.jsx(lt,{type:"button",variant:"outline",onClick:L=>{L.preventDefault(),L.stopPropagation(),m(!1)},disabled:v.isPending,className:"h-9",children:"Cancel"}),c.jsx(lt,{type:"button",variant:"destructive",onClick:q,disabled:v.isPending,className:"h-9",children:v.isPending?"Deleting...":"Delete"})]})]})})]}):c.jsx("div",{className:"flex h-full items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx(kn,{className:"h-12 w-12 text-muted-foreground/30 mx-auto mb-3"}),c.jsx("p",{className:"text-sm font-medium mb-1",children:"No team selected"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please select a team to view datasets"})]})})}function Ype(){const{selectedTeamId:e}=wi(),[t,r]=N.useState(""),[n,i]=N.useState(""),[a,o]=N.useState(""),[s,l]=N.useState(""),[u,f]=N.useState(""),[d,h]=N.useState(""),[p,g]=N.useState(!1),{data:m,isLoading:v}=Hpe(),y=m==null?void 0:m.filter(C=>C.toLowerCase().includes(t.toLowerCase())&&(e?C.includes(e):!0)),x=n?n.split("/")[1]||n:"",{data:b,isLoading:S}=Vpe(e||"",x),{data:w,isLoading:O}=CM(e||"",a,x,!!a),{data:j,isLoading:P,error:A}=$M(e||"",a,x,s,p&&!!s),_=C=>{l(C),g(!0)},E=C=>{const R=C.split("/");return R.length>1?R[1]:C},k=C=>{const R=E(C).toLowerCase();return R.includes("execution")||R.includes("run")?c.jsx(ps,{className:"h-3.5 w-3.5 text-blue-600"}):R.includes("checkpoint")||R.includes("model")?c.jsx(kn,{className:"h-3.5 w-3.5 text-green-600"}):R.includes("dataset")?c.jsx(kn,{className:"h-3.5 w-3.5 text-purple-600"}):c.jsx(Qu,{className:"h-3.5 w-3.5 text-gray-600"})},D=(b==null?void 0:b.filter(C=>C.toLowerCase().includes(u.toLowerCase())))||[],F=(w==null?void 0:w.filter(C=>C.filename.toLowerCase().includes(d.toLowerCase())))||[],M=C=>C<1024?`${C} B`:C<1024*1024?`${(C/1024).toFixed(1)} KB`:`${(C/(1024*1024)).toFixed(1)} MB`;return c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground",children:"Artifacts"}),c.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Browse execution results and checkpoints across repositories"})]}),c.jsxs("div",{className:"grid grid-cols-12 gap-3",children:[c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-3",children:c.jsx(ie,{className:"h-[calc(100vh-10rem)]",children:c.jsxs(ae,{className:"p-3 h-full flex flex-col",children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"REPOSITORIES"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:(y==null?void 0:y.length)||0})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Sr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Search repositories...",value:t,onChange:C=>r(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:v?[...Array(5)].map((C,R)=>c.jsx(je,{className:"h-10 w-full"},R)):!y||y.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:t?c.jsx(Sr,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(Qu,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:t?"No matches found":"No repositories"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t?"Try adjusting your search query":"Repositories will appear here once available"})]}):y.map(C=>c.jsxs("button",{type:"button",onClick:R=>{R.preventDefault(),R.stopPropagation(),i(C),o(""),l(""),f(""),h("")},className:`w-full flex items-center gap-2 px-2.5 py-2 rounded text-left transition-colors ${n===C?"bg-accent font-medium":"hover:bg-accent/50"}`,children:[k(C),c.jsx("span",{className:"flex-1 truncate font-medium text-sm",children:E(C)})]},C))})]})})}),c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-3",children:c.jsx(ie,{className:"h-[calc(100vh-10rem)]",children:c.jsx(ae,{className:"p-3 h-full flex flex-col",children:n?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"TAGS"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:D.length})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Sr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Filter tags...",value:u,onChange:C=>f(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:S?[...Array(10)].map((C,R)=>c.jsx(je,{className:"h-10 w-full"},R)):D.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:u?c.jsx(Sr,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(fg,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:u?"No matching tags":"No tags found"}),u&&c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):D.map(C=>c.jsxs("button",{type:"button",onClick:()=>{o(C),l(""),h("")},className:`w-full flex items-center gap-2 px-2.5 py-2 rounded text-left transition-colors ${a===C?"bg-accent font-medium":"hover:bg-accent/50"}`,children:[c.jsx(fg,{className:"h-4 w-4 text-orange-600 flex-shrink-0"}),c.jsx("code",{className:"font-mono text-[13px] flex-1 truncate",children:C})]},C))})]}):c.jsx("div",{className:"flex-1 flex items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(fg,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"Select a repository"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Choose a repository to view tags"})]})})})})}),c.jsx("div",{className:"col-span-12 md:col-span-4 lg:col-span-6",children:c.jsx(ie,{className:"h-[calc(100vh-10rem)]",children:c.jsx(ae,{className:"p-3 h-full flex flex-col",children:a?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center justify-between mb-2",children:[c.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"FILES"}),c.jsx(vt,{variant:"secondary",className:"text-xs",children:F.length})]}),c.jsxs("div",{className:"relative mb-1.5",children:[c.jsx(Sr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(si,{placeholder:"Filter files...",value:d,onChange:C=>h(C.target.value),className:"h-9 text-sm pl-8 focus:bg-blue-50 focus:border-blue-300 focus-visible:ring-0"})]}),c.jsx("div",{className:"space-y-1 flex-1 overflow-y-auto",children:O?[...Array(10)].map((C,R)=>c.jsx(je,{className:"h-10 w-full"},R)):F.length===0?c.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mb-3",children:d?c.jsx(Sr,{className:"h-6 w-6 text-muted-foreground/60"}):c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"No files found"}),d&&c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Try adjusting your search query"})]}):F.map(C=>c.jsxs("button",{type:"button",onClick:()=>_(C.filename),className:"w-full flex items-center gap-2 px-2.5 py-2 rounded hover:bg-accent text-left transition-colors group border border-transparent hover:border-border",children:[c.jsx(C3,{className:"h-4 w-4 text-blue-500 flex-shrink-0"}),c.jsxs("div",{className:"flex-1 min-w-0",children:[c.jsx("p",{className:"text-sm font-medium truncate",children:C.filename}),c.jsx("p",{className:"text-xs text-muted-foreground",children:M(C.size)})]})]},C.filename))})]}):c.jsx("div",{className:"flex-1 flex items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"w-12 h-12 rounded-full bg-muted/50 flex items-center justify-center mx-auto mb-3",children:c.jsx(ps,{className:"h-6 w-6 text-muted-foreground/60"})}),c.jsx("p",{className:"text-sm font-medium text-foreground",children:"Select a tag"}),c.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Choose a tag to view files"})]})})})})})]}),c.jsx(MM,{open:p,onOpenChange:g,artifactContent:j,isLoading:P,error:A,title:s||"File Content",hideLineCount:!0,hideCloseButton:!0})]})}const Xpe=()=>{var e;return typeof window<"u"&&((e=window.ENV)!=null&&e.VITE_API_URL)?window.ENV.VITE_API_URL:""};function Qpe(){const[e,t]=N.useState(""),[r,n]=N.useState(""),[i,a]=N.useState(""),[o,s]=N.useState(!1);Fn();const l=async u=>{u.preventDefault(),a(""),s(!0);try{const f=await fetch(`${Xpe()}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:r})});if(!f.ok){const p=await f.json();throw new Error(p.detail||"Login failed")}const d=await f.json();localStorage.setItem("alphatrion_token",d.access_token),localStorage.setItem("alphatrion_user",JSON.stringify(d.user));const h=JSON.parse(atob(d.access_token.split(".")[1]));localStorage.setItem("alphatrion_user_id",d.user.id),localStorage.setItem("alphatrion_org_id",h.org_id),d.user.teams&&d.user.teams.length>0&&localStorage.setItem("alphatrion_team_id",d.user.teams[0].id),window.location.href="/"}catch(f){a(f instanceof Error?f.message:"Login failed")}finally{s(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:c.jsxs("div",{className:"max-w-md w-full space-y-8 p-8 bg-white rounded-lg shadow",children:[c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-center gap-3 mb-2",children:[c.jsx("img",{src:j_,alt:"AlphaTrion Logo",className:"h-12 w-12"}),c.jsx("h2",{className:"text-3xl font-bold text-gray-900",children:"AlphaTrion"})]}),c.jsx("p",{className:"mt-2 text-center text-sm text-gray-600",children:"Sign in to your account"})]}),c.jsxs("form",{className:"mt-8 space-y-6",onSubmit:l,children:[i&&c.jsx("div",{className:"rounded-md bg-red-50 p-4",children:c.jsx("div",{className:"text-sm text-red-800",children:i})}),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700",children:"Email"}),c.jsx("input",{id:"email",name:"email",type:"email",autoComplete:"email",required:!0,className:"mt-1 appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500",placeholder:"you@example.com",value:e,onChange:u=>t(u.target.value)})]}),c.jsxs("div",{children:[c.jsx("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700",children:"Password"}),c.jsx("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,className:"mt-1 appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500",placeholder:"••••••••",value:r,onChange:u=>n(u.target.value)})]})]}),c.jsx("div",{children:c.jsx("button",{type:"submit",disabled:o,className:"w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed",children:o?"Signing in...":"Sign in"})})]})]})})}function Jpe(e){try{const r=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(i=>"%"+("00"+i.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(n)}catch{return null}}function Zpe(){const[e,t]=N.useState(null),[r,n]=N.useState(!0),[i,a]=N.useState(null),{selectedTeamId:o,setSelectedTeamId:s}=wi(),l=Gc(),u=Fn();return N.useEffect(()=>{async function f(){try{const d=localStorage.getItem("alphatrion_token"),h=localStorage.getItem("alphatrion_user");if(console.log("Initializing app...",{hasToken:!!d,hasUser:!!h,currentPath:window.location.pathname}),!d||!h){console.log("No token or user, redirecting to login"),window.location.pathname!=="/login"&&u("/login"),n(!1);return}const p=Jpe(d),g=!p||p.exp*1e30){const b=`alphatrion_selected_team_${v}`,S=localStorage.getItem(b);let w;S?w=m.teams.find(j=>j.id===S)?S:m.teams[0].id:w=m.teams[0].id,localStorage.setItem("alphatrion_team_id",w),s(w,v)}}catch(d){console.error("Failed to initialize app:",d),a(d)}finally{n(!1)}}f()},[s,l,u]),r?c.jsx("div",{className:"flex h-screen items-center justify-center",children:c.jsxs("div",{className:"text-center",children:[c.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),c.jsx("p",{className:"text-gray-600",children:"Loading user information..."})]})}):i?c.jsx("div",{className:"flex h-screen items-center justify-center",children:c.jsxs("div",{className:"text-center max-w-md",children:[c.jsx("h1",{className:"text-2xl font-bold text-red-600 mb-4",children:"Error Initializing Dashboard"}),c.jsx("p",{className:"text-gray-700 mb-2",children:i.message}),c.jsx("p",{className:"text-gray-500 text-sm",children:"Please try:"}),c.jsxs("ul",{className:"text-gray-500 text-sm text-left mt-2 space-y-1",children:[c.jsx("li",{children:"• Clear browser cache and localStorage"}),c.jsx("li",{children:"• Verify the backend server is running"}),c.jsxs("li",{children:["• ",c.jsx("button",{onClick:()=>{localStorage.clear(),window.location.href="/login"},className:"text-blue-600 underline",children:"Logout and login again"})]})]})]})}):c.jsx("div",{className:"h-full",children:c.jsxs(DL,{children:[c.jsx(At,{path:"/login",element:c.jsx(Qpe,{})}),e?c.jsxs(At,{path:"/",element:c.jsx(XL,{user:e,children:c.jsx(UF,{})}),children:[c.jsx(At,{index:!0,element:c.jsx(wde,{})}),c.jsxs(At,{path:"experiments",children:[c.jsx(At,{index:!0,element:c.jsx(upe,{})}),c.jsx(At,{path:":id",element:c.jsx(wpe,{})}),c.jsx(At,{path:"compare",element:c.jsx(Npe,{})})]}),c.jsxs(At,{path:"runs",children:[c.jsx(At,{index:!0,element:c.jsx(Epe,{})}),c.jsx(At,{path:":id",element:c.jsx(Tpe,{})})]}),c.jsxs(At,{path:"agents",children:[c.jsx(At,{index:!0,element:c.jsx(Mpe,{})}),c.jsx(At,{path:":id",element:c.jsx(Dpe,{})})]}),c.jsx(At,{path:"sessions",children:c.jsx(At,{path:":id",element:c.jsx(Fpe,{})})}),c.jsx(At,{path:"datasets",element:c.jsx(Gpe,{})}),c.jsx(At,{path:"artifacts",element:c.jsx(Ype,{})})]}):null]})})}sv.createRoot(document.getElementById("root")).render(c.jsx($.StrictMode,{children:c.jsx(TR,{client:GL,children:c.jsx(KL,{children:c.jsx(YL,{children:c.jsx(Zpe,{})})})})}));export{vf as c,_e as g,_ne as p,N as r}; diff --git a/dashboard/static/assets/react-plotly-C3GhZ4YA.js b/dashboard/static/assets/react-plotly-C5KGg_lj.js similarity index 99% rename from dashboard/static/assets/react-plotly-C3GhZ4YA.js rename to dashboard/static/assets/react-plotly-C5KGg_lj.js index 959324f5..6d6f586a 100644 --- a/dashboard/static/assets/react-plotly-C3GhZ4YA.js +++ b/dashboard/static/assets/react-plotly-C5KGg_lj.js @@ -1,4 +1,4 @@ -import{r as FD,p as OD,c as BD,g as ND}from"./index-b7FJa7kv.js";function UD(zh,Yh){for(var Fh=0;FhAu[Th]})}}}return Object.freeze(Object.defineProperty(zh,Symbol.toStringTag,{value:"Module"}))}var rb={},V5={};(function(zh){function Yh(bs){"@babel/helpers - typeof";return Yh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Hs){return typeof Hs}:function(Hs){return Hs&&typeof Symbol=="function"&&Hs.constructor===Symbol&&Hs!==Symbol.prototype?"symbol":typeof Hs},Yh(bs)}Object.defineProperty(zh,"__esModule",{value:!0}),zh.default=qm;var Fh=Yv(FD),Au=Th(OD);function Th(bs){return bs&&bs.__esModule?bs:{default:bs}}function uv(bs){if(typeof WeakMap!="function")return null;var Hs=new WeakMap,Mc=new WeakMap;return(uv=function(bi){return bi?Mc:Hs})(bs)}function Yv(bs,Hs){if(bs&&bs.__esModule)return bs;if(bs===null||Yh(bs)!=="object"&&typeof bs!="function")return{default:bs};var Mc=uv(Hs);if(Mc&&Mc.has(bs))return Mc.get(bs);var zc={},bi=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var nc in bs)if(nc!=="default"&&Object.prototype.hasOwnProperty.call(bs,nc)){var bo=bi?Object.getOwnPropertyDescriptor(bs,nc):null;bo&&(bo.get||bo.set)?Object.defineProperty(zc,nc,bo):zc[nc]=bs[nc]}return zc.default=bs,Mc&&Mc.set(bs,zc),zc}function Gy(bs,Hs){if(!(bs instanceof Hs))throw new TypeError("Cannot call a class as a function")}function M0(bs,Hs){for(var Mc=0;Mc"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function gp(bs){return gp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Mc){return Mc.__proto__||Object.getPrototypeOf(Mc)},gp(bs)}var Ll=["AfterExport","AfterPlot","Animated","AnimatingFrame","AnimationInterrupted","AutoSize","BeforeExport","BeforeHover","ButtonClicked","Click","ClickAnnotation","Deselect","DoubleClick","Framework","Hover","LegendClick","LegendDoubleClick","Relayout","Relayouting","Restyle","Redraw","Selected","Selecting","SliderChange","SliderEnd","SliderStart","SunburstClick","Transitioning","TransitionInterrupted","Unhover","WebGlContextLost"],He=["plotly_restyle","plotly_redraw","plotly_relayout","plotly_relayouting","plotly_doubleclick","plotly_animated","plotly_sunburstclick"],yp=typeof window<"u";function qm(bs){var Hs=function(Mc){Hy(bi,Mc);var zc=jm(bi);function bi(nc){var bo;return Gy(this,bi),bo=zc.call(this,nc),bo.p=Promise.resolve(),bo.resizeHandler=null,bo.handlers={},bo.syncWindowResize=bo.syncWindowResize.bind(sh(bo)),bo.syncEventHandlers=bo.syncEventHandlers.bind(sh(bo)),bo.attachUpdateEvents=bo.attachUpdateEvents.bind(sh(bo)),bo.getRef=bo.getRef.bind(sh(bo)),bo.handleUpdate=bo.handleUpdate.bind(sh(bo)),bo.figureCallback=bo.figureCallback.bind(sh(bo)),bo.updatePlotly=bo.updatePlotly.bind(sh(bo)),bo}return mp(bi,[{key:"updatePlotly",value:function(bo,Fc,Eh){var Bi=this;this.p=this.p.then(function(){if(!Bi.unmounting){if(!Bi.el)throw new Error("Missing element reference");return bs.react(Bi.el,{data:Bi.props.data,layout:Bi.props.layout,config:Bi.props.config,frames:Bi.props.frames})}}).then(function(){Bi.unmounting||(Bi.syncWindowResize(bo),Bi.syncEventHandlers(),Bi.figureCallback(Fc),Eh&&Bi.attachUpdateEvents())}).catch(function(Yo){Bi.props.onError&&Bi.props.onError(Yo)})}},{key:"componentDidMount",value:function(){this.unmounting=!1,this.updatePlotly(!0,this.props.onInitialized,!0)}},{key:"componentDidUpdate",value:function(bo){this.unmounting=!1;var Fc=bo.frames&&bo.frames.length?bo.frames.length:0,Eh=this.props.frames&&this.props.frames.length?this.props.frames.length:0,Bi=!(bo.layout===this.props.layout&&bo.data===this.props.data&&bo.config===this.props.config&&Eh===Fc),Yo=bo.revision!==void 0,_p=bo.revision!==this.props.revision;!Bi&&(!Yo||Yo&&!_p)||this.updatePlotly(!1,this.props.onUpdate,!1)}},{key:"componentWillUnmount",value:function(){this.unmounting=!0,this.figureCallback(this.props.onPurge),this.resizeHandler&&yp&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.removeUpdateEvents(),bs.purge(this.el)}},{key:"attachUpdateEvents",value:function(){var bo=this;!this.el||!this.el.removeListener||He.forEach(function(Fc){bo.el.on(Fc,bo.handleUpdate)})}},{key:"removeUpdateEvents",value:function(){var bo=this;!this.el||!this.el.removeListener||He.forEach(function(Fc){bo.el.removeListener(Fc,bo.handleUpdate)})}},{key:"handleUpdate",value:function(){this.figureCallback(this.props.onUpdate)}},{key:"figureCallback",value:function(bo){if(typeof bo=="function"){var Fc=this.el,Eh=Fc.data,Bi=Fc.layout,Yo=this.el._transitionData?this.el._transitionData._frames:null,_p={data:Eh,layout:Bi,frames:Yo};bo(_p,this.el)}}},{key:"syncWindowResize",value:function(bo){var Fc=this;yp&&(this.props.useResizeHandler&&!this.resizeHandler?(this.resizeHandler=function(){return bs.Plots.resize(Fc.el)},window.addEventListener("resize",this.resizeHandler),bo&&this.resizeHandler()):!this.props.useResizeHandler&&this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null))}},{key:"getRef",value:function(bo){this.el=bo,this.props.debug&&yp&&(window.gd=this.el)}},{key:"syncEventHandlers",value:function(){var bo=this;Ll.forEach(function(Fc){var Eh=bo.props["on"+Fc],Bi=bo.handlers[Fc],Yo=!!Bi;Eh&&!Yo?bo.addEventHandler(Fc,Eh):!Eh&&Yo?bo.removeEventHandler(Fc):Eh&&Yo&&Eh!==Bi&&(bo.removeEventHandler(Fc),bo.addEventHandler(Fc,Eh))})}},{key:"addEventHandler",value:function(bo,Fc){this.handlers[bo]=Fc,this.el.on(this.getPlotlyEventName(bo),this.handlers[bo])}},{key:"removeEventHandler",value:function(bo){this.el.removeListener(this.getPlotlyEventName(bo),this.handlers[bo]),delete this.handlers[bo]}},{key:"getPlotlyEventName",value:function(bo){return"plotly_"+bo.toLowerCase()}},{key:"render",value:function(){return Fh.default.createElement("div",{id:this.props.divId,style:this.props.style,ref:this.getRef,className:this.props.className})}}]),bi}(Fh.Component);return Hs.propTypes={data:Au.default.arrayOf(Au.default.object),config:Au.default.object,layout:Au.default.object,frames:Au.default.arrayOf(Au.default.object),revision:Au.default.number,onInitialized:Au.default.func,onPurge:Au.default.func,onError:Au.default.func,onUpdate:Au.default.func,debug:Au.default.bool,style:Au.default.object,className:Au.default.string,useResizeHandler:Au.default.bool,divId:Au.default.string},Ll.forEach(function(Mc){Hs.propTypes["on"+Mc]=Au.default.func}),Hs.defaultProps={debug:!1,useResizeHandler:!1,data:[],style:{position:"relative",display:"inline-block"}},Hs}})(V5);var q5={exports:{}};(function(zh){var Yh={};(function(Fh,Au){zh.exports?zh.exports=Au():Fh.moduleName=Au()})(typeof self<"u"?self:BD,()=>{var Fh=(()=>{var Au=Object.create,Th=Object.defineProperty,uv=Object.defineProperties,Yv=Object.getOwnPropertyDescriptor,Gy=Object.getOwnPropertyDescriptors,M0=Object.getOwnPropertyNames,mp=Object.getOwnPropertySymbols,Hy=Object.getPrototypeOf,Cd=Object.prototype.hasOwnProperty,jm=Object.prototype.propertyIsEnumerable,Vm=(Y,G,h)=>G in Y?Th(Y,G,{enumerable:!0,configurable:!0,writable:!0,value:h}):Y[G]=h,sh=(Y,G)=>{for(var h in G||(G={}))Cd.call(G,h)&&Vm(Y,h,G[h]);if(mp)for(var h of mp(G))jm.call(G,h)&&Vm(Y,h,G[h]);return Y},Ld=(Y,G)=>uv(Y,Gy(G)),gp=(Y,G)=>{var h={};for(var b in Y)Cd.call(Y,b)&&G.indexOf(b)<0&&(h[b]=Y[b]);if(Y!=null&&mp)for(var b of mp(Y))G.indexOf(b)<0&&jm.call(Y,b)&&(h[b]=Y[b]);return h},Ll=(Y,G)=>function(){return Y&&(G=(0,Y[M0(Y)[0]])(Y=0)),G},He=(Y,G)=>function(){return G||(0,Y[M0(Y)[0]])((G={exports:{}}).exports,G),G.exports},yp=(Y,G)=>{for(var h in G)Th(Y,h,{get:G[h],enumerable:!0})},qm=(Y,G,h,b)=>{if(G&&typeof G=="object"||typeof G=="function")for(let S of M0(G))!Cd.call(Y,S)&&S!==h&&Th(Y,S,{get:()=>G[S],enumerable:!(b=Yv(G,S))||b.enumerable});return Y},bs=(Y,G,h)=>(h=Y!=null?Au(Hy(Y)):{},qm(Th(h,"default",{value:Y,enumerable:!0}),Y)),Hs=Y=>qm(Th({},"__esModule",{value:!0}),Y),Mc=He({"src/version.js"(Y){Y.version="3.3.1"}}),zc=He({"node_modules/native-promise-only/lib/npo.src.js"(Y,G){(function(b,S,E){S[b]=S[b]||E(),typeof G<"u"&&G.exports&&(G.exports=S[b])})("Promise",typeof window<"u"?window:Y,function(){var b,S,E,e=Object.prototype.toString,t=typeof setImmediate<"u"?function(g){return setImmediate(g)}:setTimeout;try{Object.defineProperty({},"x",{}),b=function(g,x,A,M){return Object.defineProperty(g,x,{value:A,writable:!0,configurable:M!==!1})}}catch{b=function(x,A,M){return x[A]=M,x}}E=function(){var g,x,A;function M(_,w){this.fn=_,this.self=w,this.next=void 0}return{add:function(w,m){A=new M(w,m),x?x.next=A:g=A,x=A,A=void 0},drain:function(){var w=g;for(g=x=S=void 0;w;)w.fn.call(w.self),w=w.next}}}();function r(l,g){E.add(l,g),S||(S=t(E.drain))}function o(l){var g,x=typeof l;return l!=null&&(x=="object"||x=="function")&&(g=l.then),typeof g=="function"?g:!1}function a(){for(var l=0;l0&&r(a,x))}catch(A){s.call(new c(x),A)}}}function s(l){var g=this;g.triggered||(g.triggered=!0,g.def&&(g=g.def),g.msg=l,g.state=2,g.chain.length>0&&r(a,g))}function f(l,g,x,A){for(var M=0;MPe?1:de>=Pe?0:NaN}h.descending=function(de,Pe){return Pede?1:Pe>=de?0:NaN},h.min=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt;if(arguments.length===1){for(;++Ke=Tt){mt=Tt;break}for(;++KeTt&&(mt=Tt)}else{for(;++Ke=Tt){mt=Tt;break}for(;++KeTt&&(mt=Tt)}return mt},h.max=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt;if(arguments.length===1){for(;++Ke=Tt){mt=Tt;break}for(;++Kemt&&(mt=Tt)}else{for(;++Ke=Tt){mt=Tt;break}for(;++Kemt&&(mt=Tt)}return mt},h.extent=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt,qt;if(arguments.length===1){for(;++Ke=Tt){mt=qt=Tt;break}for(;++KeTt&&(mt=Tt),qt=Tt){mt=qt=Tt;break}for(;++KeTt&&(mt=Tt),qt1)return qt/(or-1)},h.deviation=function(){var de=h.variance.apply(this,arguments);return de&&Math.sqrt(de)};function p(de){return{left:function(Pe,Ke,vt,mt){for(arguments.length<3&&(vt=0),arguments.length<4&&(mt=Pe.length);vt>>1;de(Pe[Tt],Ke)<0?vt=Tt+1:mt=Tt}return vt},right:function(Pe,Ke,vt,mt){for(arguments.length<3&&(vt=0),arguments.length<4&&(mt=Pe.length);vt>>1;de(Pe[Tt],Ke)>0?mt=Tt:vt=Tt+1}return vt}}}var d=p(s);h.bisectLeft=d.left,h.bisect=h.bisectRight=d.right,h.bisector=function(de){return p(de.length===1?function(Pe,Ke){return s(de(Pe),Ke)}:de)},h.shuffle=function(de,Pe,Ke){(vt=arguments.length)<3&&(Ke=de.length,vt<2&&(Pe=0));for(var vt=Ke-Pe,mt,Tt;vt;)Tt=Math.random()*vt--|0,mt=de[vt+Pe],de[vt+Pe]=de[Tt+Pe],de[Tt+Pe]=mt;return de},h.permute=function(de,Pe){for(var Ke=Pe.length,vt=new Array(Ke);Ke--;)vt[Ke]=de[Pe[Ke]];return vt},h.pairs=function(de){for(var Pe=0,Ke=de.length-1,vt=de[0],mt=new Array(Ke<0?0:Ke);Pe=0;)for(qt=de[Pe],Ke=qt.length;--Ke>=0;)Tt[--mt]=qt[Ke];return Tt};var l=Math.abs;h.range=function(de,Pe,Ke){if(arguments.length<3&&(Ke=1,arguments.length<2&&(Pe=de,de=0)),(Pe-de)/Ke===1/0)throw new Error("infinite range");var vt=[],mt=g(l(Ke)),Tt=-1,qt;if(de*=mt,Pe*=mt,Ke*=mt,Ke<0)for(;(qt=de+Ke*++Tt)>Pe;)vt.push(qt/mt);else for(;(qt=de+Ke*++Tt)=Pe.length)return mt?mt.call(de,or):vt?or.sort(vt):or;for(var Lr=-1,Zr=or.length,ia=Pe[Ir++],la,an,da,La=new A,Oa;++Lr=Pe.length)return Vt;var Ir=[],Lr=Ke[or++];return Vt.forEach(function(Zr,ia){Ir.push({key:Zr,values:qt(ia,or)})}),Lr?Ir.sort(function(Zr,ia){return Lr(Zr.key,ia.key)}):Ir}return de.map=function(Vt,or){return Tt(or,Vt,0)},de.entries=function(Vt){return qt(Tt(h.map,Vt,0),0)},de.key=function(Vt){return Pe.push(Vt),de},de.sortKeys=function(Vt){return Ke[Pe.length-1]=Vt,de},de.sortValues=function(Vt){return vt=Vt,de},de.rollup=function(Vt){return mt=Vt,de},de},h.set=function(de){var Pe=new z;if(de)for(var Ke=0,vt=de.length;Ke=0&&(vt=de.slice(Ke+1),de=de.slice(0,Ke)),de)return arguments.length<2?this[de].on(vt):this[de].on(vt,Pe);if(arguments.length===2){if(Pe==null)for(de in this)this.hasOwnProperty(de)&&this[de].on(vt,null);return this}};function X(de){var Pe=[],Ke=new A;function vt(){for(var mt=Pe,Tt=-1,qt=mt.length,Vt;++Tt=0&&(Ke=de.slice(0,Pe))!=="xmlns"&&(de=de.slice(Pe+1)),fe.hasOwnProperty(Ke)?{space:fe[Ke],local:de}:de}},Q.attr=function(de,Pe){if(arguments.length<2){if(typeof de=="string"){var Ke=this.node();return de=h.ns.qualify(de),de.local?Ke.getAttributeNS(de.space,de.local):Ke.getAttribute(de)}for(Pe in de)this.each(be(Pe,de[Pe]));return this}return this.each(be(de,Pe))};function be(de,Pe){de=h.ns.qualify(de);function Ke(){this.removeAttribute(de)}function vt(){this.removeAttributeNS(de.space,de.local)}function mt(){this.setAttribute(de,Pe)}function Tt(){this.setAttributeNS(de.space,de.local,Pe)}function qt(){var or=Pe.apply(this,arguments);or==null?this.removeAttribute(de):this.setAttribute(de,or)}function Vt(){var or=Pe.apply(this,arguments);or==null?this.removeAttributeNS(de.space,de.local):this.setAttributeNS(de.space,de.local,or)}return Pe==null?de.local?vt:Ke:typeof Pe=="function"?de.local?Vt:qt:de.local?Tt:mt}function Me(de){return de.trim().replace(/\s+/g," ")}Q.classed=function(de,Pe){if(arguments.length<2){if(typeof de=="string"){var Ke=this.node(),vt=(de=Le(de)).length,mt=-1;if(Pe=Ke.classList){for(;++mt=0;)(Tt=Ke[vt])&&(mt&&mt!==Tt.nextSibling&&mt.parentNode.insertBefore(Tt,mt),mt=Tt);return this},Q.sort=function(de){de=De.apply(this,arguments);for(var Pe=-1,Ke=this.length;++Pe=Pe&&(Pe=mt+1);!(or=qt[Pe])&&++Pe0&&(de=de.slice(0,mt));var qt=jt.get(de);qt&&(de=qt,Tt=dr);function Vt(){var Lr=this[vt];Lr&&(this.removeEventListener(de,Lr,Lr.$),delete this[vt])}function or(){var Lr=Tt(Pe,S(arguments));Vt.call(this),this.addEventListener(de,this[vt]=Lr,Lr.$=Ke),Lr._=Pe}function Ir(){var Lr=new RegExp("^__on([^.]+)"+h.requote(de)+"$"),Zr;for(var ia in this)if(Zr=ia.match(Lr)){var la=this[ia];this.removeEventListener(Zr[1],la,la.$),delete this[ia]}}return mt?Pe?or:Vt:Pe?N:Ir}var jt=h.map({mouseenter:"mouseover",mouseleave:"mouseout"});E&&jt.forEach(function(de){"on"+de in E&&jt.remove(de)});function Wt(de,Pe){return function(Ke){var vt=h.event;h.event=Ke,Pe[0]=this.__data__;try{de.apply(this,Pe)}finally{h.event=vt}}}function dr(de,Pe){var Ke=Wt(de,Pe);return function(vt){var mt=this,Tt=vt.relatedTarget;(!Tt||Tt!==mt&&!(Tt.compareDocumentPosition(mt)&8))&&Ke.call(mt,vt)}}var vr,Dr=0;function hr(de){var Pe=".dragsuppress-"+ ++Dr,Ke="click"+Pe,vt=h.select(t(de)).on("touchmove"+Pe,ee).on("dragstart"+Pe,ee).on("selectstart"+Pe,ee);if(vr==null&&(vr="onselectstart"in de?!1:O(de.style,"userSelect")),vr){var mt=e(de).style,Tt=mt[vr];mt[vr]="none"}return function(qt){if(vt.on(Pe,null),vr&&(mt[vr]=Tt),qt){var Vt=function(){vt.on(Ke,null)};vt.on(Ke,function(){ee(),Vt()},!0),setTimeout(Vt,0)}}}h.mouse=function(de){return gt(de,ue())};var Ar=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function gt(de,Pe){Pe.changedTouches&&(Pe=Pe.changedTouches[0]);var Ke=de.ownerSVGElement||de;if(Ke.createSVGPoint){var vt=Ke.createSVGPoint();if(Ar<0){var mt=t(de);if(mt.scrollX||mt.scrollY){Ke=h.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var Tt=Ke[0][0].getScreenCTM();Ar=!(Tt.f||Tt.e),Ke.remove()}}return Ar?(vt.x=Pe.pageX,vt.y=Pe.pageY):(vt.x=Pe.clientX,vt.y=Pe.clientY),vt=vt.matrixTransform(de.getScreenCTM().inverse()),[vt.x,vt.y]}var qt=de.getBoundingClientRect();return[Pe.clientX-qt.left-de.clientLeft,Pe.clientY-qt.top-de.clientTop]}h.touch=function(de,Pe,Ke){if(arguments.length<3&&(Ke=Pe,Pe=ue().changedTouches),Pe){for(var vt=0,mt=Pe.length,Tt;vt1?Ue:de<-1?-Ue:Math.asin(de)}function Nt(de){return((de=Math.exp(de))-1/de)/2}function sr(de){return((de=Math.exp(de))+1/de)/2}function ar(de){return((de=Math.exp(2*de))-1)/(de+1)}var tr=Math.SQRT2,Tr=2,sa=4;h.interpolateZoom=function(de,Pe){var Ke=de[0],vt=de[1],mt=de[2],Tt=Pe[0],qt=Pe[1],Vt=Pe[2],or=Tt-Ke,Ir=qt-vt,Lr=or*or+Ir*Ir,Zr,ia;if(Lr0&&(pi=pi.transition().duration(qt)),pi.call(on.event)}function Ti(){La&&La.domain(da.range().map(function(pi){return(pi-de.x)/de.k}).map(da.invert)),Qa&&Qa.domain(Oa.range().map(function(pi){return(pi-de.y)/de.k}).map(Oa.invert))}function ki(pi){Vt++||pi({type:"zoomstart"})}function Go(pi){Ti(),pi({type:"zoom",scale:de.k,translate:[de.x,de.y]})}function Pi(pi){--Vt||(pi({type:"zoomend"}),Ke=null)}function oo(){var pi=this,ko=an.of(pi,arguments),Xo=0,Os=h.select(t(pi)).on(Ir,gs).on(Lr,Bs),Ms=Fa(h.mouse(pi)),Zl=hr(pi);$a.call(pi),ki(ko);function gs(){Xo=1,Kn(h.mouse(pi),Ms),Go(ko)}function Bs(){Os.on(Ir,null).on(Lr,null),Zl(Xo),Pi(ko)}}function $o(){var pi=this,ko=an.of(pi,arguments),Xo={},Os=0,Ms,Zl=".zoom-"+h.event.changedTouches[0].identifier,gs="touchmove"+Zl,Bs="touchend"+Zl,du=[],ul=h.select(pi),st=hr(pi);ur(),ki(ko),ul.on(or,null).on(ia,ur);function ir(){var Qr=h.touches(pi);return Ms=de.k,Qr.forEach(function($r){$r.identifier in Xo&&(Xo[$r.identifier]=Fa($r))}),Qr}function ur(){var Qr=h.event.target;h.select(Qr).on(gs,ua).on(Bs,Ua),du.push(Qr);for(var $r=h.event.changedTouches,un=0,sn=$r.length;un1){var Qn=ln[0],jn=ln[1],yn=Qn[0]-jn[0],Wa=Qn[1]-jn[1];Os=yn*yn+Wa*Wa}}function ua(){var Qr=h.touches(pi),$r,un,sn,ln;$a.call(pi);for(var xn=0,Qn=Qr.length;xn1?1:Pe,Ke=Ke<0?0:Ke>1?1:Ke,mt=Ke<=.5?Ke*(1+Pe):Ke+Pe-Ke*Pe,vt=2*Ke-mt;function Tt(Vt){return Vt>360?Vt-=360:Vt<0&&(Vt+=360),Vt<60?vt+(mt-vt)*Vt/60:Vt<180?mt:Vt<240?vt+(mt-vt)*(240-Vt)/60:vt}function qt(Vt){return Math.round(Tt(Vt)*255)}return new Bn(qt(de+120),qt(de),qt(de-120))}h.hcl=Yt;function Yt(de,Pe,Ke){return this instanceof Yt?(this.h=+de,this.c=+Pe,void(this.l=+Ke)):arguments.length<2?de instanceof Yt?new Yt(de.h,de.c,de.l):de instanceof $t?Va(de.l,de.a,de.b):Va((de=_r((de=h.rgb(de)).r,de.g,de.b)).l,de.a,de.b):new Yt(de,Pe,Ke)}var It=Yt.prototype=new Ra;It.brighter=function(de){return new Yt(this.h,this.c,Math.min(100,this.l+Cr*(arguments.length?de:1)))},It.darker=function(de){return new Yt(this.h,this.c,Math.max(0,this.l-Cr*(arguments.length?de:1)))},It.rgb=function(){return Zt(this.h,this.c,this.l).rgb()};function Zt(de,Pe,Ke){return isNaN(de)&&(de=0),isNaN(Pe)&&(Pe=0),new $t(Ke,Math.cos(de*=Xe)*Pe,Math.sin(de)*Pe)}h.lab=$t;function $t(de,Pe,Ke){return this instanceof $t?(this.l=+de,this.a=+Pe,void(this.b=+Ke)):arguments.length<2?de instanceof $t?new $t(de.l,de.a,de.b):de instanceof Yt?Zt(de.h,de.c,de.l):_r((de=Bn(de)).r,de.g,de.b):new $t(de,Pe,Ke)}var Cr=18,qr=.95047,Jr=1,aa=1.08883,Ca=$t.prototype=new Ra;Ca.brighter=function(de){return new $t(Math.min(100,this.l+Cr*(arguments.length?de:1)),this.a,this.b)},Ca.darker=function(de){return new $t(Math.max(0,this.l-Cr*(arguments.length?de:1)),this.a,this.b)},Ca.rgb=function(){return Ha(this.l,this.a,this.b)};function Ha(de,Pe,Ke){var vt=(de+16)/116,mt=vt+Pe/500,Tt=vt-Ke/200;return mt=Za(mt)*qr,vt=Za(vt)*Jr,Tt=Za(Tt)*aa,new Bn(wa(3.2404542*mt-1.5371385*vt-.4985314*Tt),wa(-.969266*mt+1.8760108*vt+.041556*Tt),wa(.0556434*mt-.2040259*vt+1.0572252*Tt))}function Va(de,Pe,Ke){return de>0?new Yt(Math.atan2(Ke,Pe)*bt,Math.sqrt(Pe*Pe+Ke*Ke),de):new Yt(NaN,NaN,de)}function Za(de){return de>.206893034?de*de*de:(de-4/29)/7.787037}function rn(de){return de>.008856?Math.pow(de,1/3):7.787037*de+4/29}function wa(de){return Math.round(255*(de<=.00304?12.92*de:1.055*Math.pow(de,1/2.4)-.055))}h.rgb=Bn;function Bn(de,Pe,Ke){return this instanceof Bn?(this.r=~~de,this.g=~~Pe,void(this.b=~~Ke)):arguments.length<2?de instanceof Bn?new Bn(de.r,de.g,de.b):Sr(""+de,Bn,mn):new Bn(de,Pe,Ke)}function Hn(de){return new Bn(de>>16,de>>8&255,de&255)}function At(de){return Hn(de)+""}var ft=Bn.prototype=new Ra;ft.brighter=function(de){de=Math.pow(.7,arguments.length?de:1);var Pe=this.r,Ke=this.g,vt=this.b,mt=30;return!Pe&&!Ke&&!vt?new Bn(mt,mt,mt):(Pe&&Pe>4,vt=vt>>4|vt,mt=or&240,mt=mt>>4|mt,Tt=or&15,Tt=Tt<<4|Tt):de.length===7&&(vt=(or&16711680)>>16,mt=(or&65280)>>8,Tt=or&255)),Pe(vt,mt,Tt))}function Er(de,Pe,Ke){var vt=Math.min(de/=255,Pe/=255,Ke/=255),mt=Math.max(de,Pe,Ke),Tt=mt-vt,qt,Vt,or=(mt+vt)/2;return Tt?(Vt=or<.5?Tt/(mt+vt):Tt/(2-mt-vt),de==mt?qt=(Pe-Ke)/Tt+(Pe0&&or<1?0:qt),new ya(qt,Vt,or)}function _r(de,Pe,Ke){de=Mr(de),Pe=Mr(Pe),Ke=Mr(Ke);var vt=rn((.4124564*de+.3575761*Pe+.1804375*Ke)/qr),mt=rn((.2126729*de+.7151522*Pe+.072175*Ke)/Jr),Tt=rn((.0193339*de+.119192*Pe+.9503041*Ke)/aa);return $t(116*mt-16,500*(vt-mt),200*(mt-Tt))}function Mr(de){return(de/=255)<=.04045?de/12.92:Math.pow((de+.055)/1.055,2.4)}function Gr(de){var Pe=parseFloat(de);return de.charAt(de.length-1)==="%"?Math.round(Pe*2.55):Pe}var Fr=h.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Fr.forEach(function(de,Pe){Fr.set(de,Hn(Pe))});function pt(de){return typeof de=="function"?de:function(){return de}}h.functor=pt,h.xhr=Kt(F);function Kt(de){return function(Pe,Ke,vt){return arguments.length===2&&typeof Ke=="function"&&(vt=Ke,Ke=null),xr(Pe,Ke,de,vt)}}function xr(de,Pe,Ke,vt){var mt={},Tt=h.dispatch("beforesend","progress","load","error"),qt={},Vt=new XMLHttpRequest,or=null;self.XDomainRequest&&!("withCredentials"in Vt)&&/^(http(s)?:)?\/\//.test(de)&&(Vt=new XDomainRequest),"onload"in Vt?Vt.onload=Vt.onerror=Ir:Vt.onreadystatechange=function(){Vt.readyState>3&&Ir()};function Ir(){var Lr=Vt.status,Zr;if(!Lr&&fa(Vt)||Lr>=200&&Lr<300||Lr===304){try{Zr=Ke.call(mt,Vt)}catch(ia){Tt.error.call(mt,ia);return}Tt.load.call(mt,Zr)}else Tt.error.call(mt,Vt)}return Vt.onprogress=function(Lr){var Zr=h.event;h.event=Lr;try{Tt.progress.call(mt,Vt)}finally{h.event=Zr}},mt.header=function(Lr,Zr){return Lr=(Lr+"").toLowerCase(),arguments.length<2?qt[Lr]:(Zr==null?delete qt[Lr]:qt[Lr]=Zr+"",mt)},mt.mimeType=function(Lr){return arguments.length?(Pe=Lr==null?null:Lr+"",mt):Pe},mt.responseType=function(Lr){return arguments.length?(or=Lr,mt):or},mt.response=function(Lr){return Ke=Lr,mt},["get","post"].forEach(function(Lr){mt[Lr]=function(){return mt.send.apply(mt,[Lr].concat(S(arguments)))}}),mt.send=function(Lr,Zr,ia){if(arguments.length===2&&typeof Zr=="function"&&(ia=Zr,Zr=null),Vt.open(Lr,de,!0),Pe!=null&&!("accept"in qt)&&(qt.accept=Pe+",*/*"),Vt.setRequestHeader)for(var la in qt)Vt.setRequestHeader(la,qt[la]);return Pe!=null&&Vt.overrideMimeType&&Vt.overrideMimeType(Pe),or!=null&&(Vt.responseType=or),ia!=null&&mt.on("error",ia).on("load",function(an){ia(null,an)}),Tt.beforesend.call(mt,Vt),Vt.send(Zr??null),mt},mt.abort=function(){return Vt.abort(),mt},h.rebind(mt,Tt,"on"),vt==null?mt:mt.get(Hr(vt))}function Hr(de){return de.length===1?function(Pe,Ke){de(Pe==null?Ke:null)}:de}function fa(de){var Pe=de.responseType;return Pe&&Pe!=="text"?de.response:de.responseText}h.dsv=function(de,Pe){var Ke=new RegExp('["'+de+` +import{r as FD,p as OD,c as BD,g as ND}from"./index-DWJXXRKj.js";function UD(zh,Yh){for(var Fh=0;FhAu[Th]})}}}return Object.freeze(Object.defineProperty(zh,Symbol.toStringTag,{value:"Module"}))}var rb={},V5={};(function(zh){function Yh(bs){"@babel/helpers - typeof";return Yh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Hs){return typeof Hs}:function(Hs){return Hs&&typeof Symbol=="function"&&Hs.constructor===Symbol&&Hs!==Symbol.prototype?"symbol":typeof Hs},Yh(bs)}Object.defineProperty(zh,"__esModule",{value:!0}),zh.default=qm;var Fh=Yv(FD),Au=Th(OD);function Th(bs){return bs&&bs.__esModule?bs:{default:bs}}function uv(bs){if(typeof WeakMap!="function")return null;var Hs=new WeakMap,Mc=new WeakMap;return(uv=function(bi){return bi?Mc:Hs})(bs)}function Yv(bs,Hs){if(bs&&bs.__esModule)return bs;if(bs===null||Yh(bs)!=="object"&&typeof bs!="function")return{default:bs};var Mc=uv(Hs);if(Mc&&Mc.has(bs))return Mc.get(bs);var zc={},bi=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var nc in bs)if(nc!=="default"&&Object.prototype.hasOwnProperty.call(bs,nc)){var bo=bi?Object.getOwnPropertyDescriptor(bs,nc):null;bo&&(bo.get||bo.set)?Object.defineProperty(zc,nc,bo):zc[nc]=bs[nc]}return zc.default=bs,Mc&&Mc.set(bs,zc),zc}function Gy(bs,Hs){if(!(bs instanceof Hs))throw new TypeError("Cannot call a class as a function")}function M0(bs,Hs){for(var Mc=0;Mc"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function gp(bs){return gp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Mc){return Mc.__proto__||Object.getPrototypeOf(Mc)},gp(bs)}var Ll=["AfterExport","AfterPlot","Animated","AnimatingFrame","AnimationInterrupted","AutoSize","BeforeExport","BeforeHover","ButtonClicked","Click","ClickAnnotation","Deselect","DoubleClick","Framework","Hover","LegendClick","LegendDoubleClick","Relayout","Relayouting","Restyle","Redraw","Selected","Selecting","SliderChange","SliderEnd","SliderStart","SunburstClick","Transitioning","TransitionInterrupted","Unhover","WebGlContextLost"],He=["plotly_restyle","plotly_redraw","plotly_relayout","plotly_relayouting","plotly_doubleclick","plotly_animated","plotly_sunburstclick"],yp=typeof window<"u";function qm(bs){var Hs=function(Mc){Hy(bi,Mc);var zc=jm(bi);function bi(nc){var bo;return Gy(this,bi),bo=zc.call(this,nc),bo.p=Promise.resolve(),bo.resizeHandler=null,bo.handlers={},bo.syncWindowResize=bo.syncWindowResize.bind(sh(bo)),bo.syncEventHandlers=bo.syncEventHandlers.bind(sh(bo)),bo.attachUpdateEvents=bo.attachUpdateEvents.bind(sh(bo)),bo.getRef=bo.getRef.bind(sh(bo)),bo.handleUpdate=bo.handleUpdate.bind(sh(bo)),bo.figureCallback=bo.figureCallback.bind(sh(bo)),bo.updatePlotly=bo.updatePlotly.bind(sh(bo)),bo}return mp(bi,[{key:"updatePlotly",value:function(bo,Fc,Eh){var Bi=this;this.p=this.p.then(function(){if(!Bi.unmounting){if(!Bi.el)throw new Error("Missing element reference");return bs.react(Bi.el,{data:Bi.props.data,layout:Bi.props.layout,config:Bi.props.config,frames:Bi.props.frames})}}).then(function(){Bi.unmounting||(Bi.syncWindowResize(bo),Bi.syncEventHandlers(),Bi.figureCallback(Fc),Eh&&Bi.attachUpdateEvents())}).catch(function(Yo){Bi.props.onError&&Bi.props.onError(Yo)})}},{key:"componentDidMount",value:function(){this.unmounting=!1,this.updatePlotly(!0,this.props.onInitialized,!0)}},{key:"componentDidUpdate",value:function(bo){this.unmounting=!1;var Fc=bo.frames&&bo.frames.length?bo.frames.length:0,Eh=this.props.frames&&this.props.frames.length?this.props.frames.length:0,Bi=!(bo.layout===this.props.layout&&bo.data===this.props.data&&bo.config===this.props.config&&Eh===Fc),Yo=bo.revision!==void 0,_p=bo.revision!==this.props.revision;!Bi&&(!Yo||Yo&&!_p)||this.updatePlotly(!1,this.props.onUpdate,!1)}},{key:"componentWillUnmount",value:function(){this.unmounting=!0,this.figureCallback(this.props.onPurge),this.resizeHandler&&yp&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.removeUpdateEvents(),bs.purge(this.el)}},{key:"attachUpdateEvents",value:function(){var bo=this;!this.el||!this.el.removeListener||He.forEach(function(Fc){bo.el.on(Fc,bo.handleUpdate)})}},{key:"removeUpdateEvents",value:function(){var bo=this;!this.el||!this.el.removeListener||He.forEach(function(Fc){bo.el.removeListener(Fc,bo.handleUpdate)})}},{key:"handleUpdate",value:function(){this.figureCallback(this.props.onUpdate)}},{key:"figureCallback",value:function(bo){if(typeof bo=="function"){var Fc=this.el,Eh=Fc.data,Bi=Fc.layout,Yo=this.el._transitionData?this.el._transitionData._frames:null,_p={data:Eh,layout:Bi,frames:Yo};bo(_p,this.el)}}},{key:"syncWindowResize",value:function(bo){var Fc=this;yp&&(this.props.useResizeHandler&&!this.resizeHandler?(this.resizeHandler=function(){return bs.Plots.resize(Fc.el)},window.addEventListener("resize",this.resizeHandler),bo&&this.resizeHandler()):!this.props.useResizeHandler&&this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null))}},{key:"getRef",value:function(bo){this.el=bo,this.props.debug&&yp&&(window.gd=this.el)}},{key:"syncEventHandlers",value:function(){var bo=this;Ll.forEach(function(Fc){var Eh=bo.props["on"+Fc],Bi=bo.handlers[Fc],Yo=!!Bi;Eh&&!Yo?bo.addEventHandler(Fc,Eh):!Eh&&Yo?bo.removeEventHandler(Fc):Eh&&Yo&&Eh!==Bi&&(bo.removeEventHandler(Fc),bo.addEventHandler(Fc,Eh))})}},{key:"addEventHandler",value:function(bo,Fc){this.handlers[bo]=Fc,this.el.on(this.getPlotlyEventName(bo),this.handlers[bo])}},{key:"removeEventHandler",value:function(bo){this.el.removeListener(this.getPlotlyEventName(bo),this.handlers[bo]),delete this.handlers[bo]}},{key:"getPlotlyEventName",value:function(bo){return"plotly_"+bo.toLowerCase()}},{key:"render",value:function(){return Fh.default.createElement("div",{id:this.props.divId,style:this.props.style,ref:this.getRef,className:this.props.className})}}]),bi}(Fh.Component);return Hs.propTypes={data:Au.default.arrayOf(Au.default.object),config:Au.default.object,layout:Au.default.object,frames:Au.default.arrayOf(Au.default.object),revision:Au.default.number,onInitialized:Au.default.func,onPurge:Au.default.func,onError:Au.default.func,onUpdate:Au.default.func,debug:Au.default.bool,style:Au.default.object,className:Au.default.string,useResizeHandler:Au.default.bool,divId:Au.default.string},Ll.forEach(function(Mc){Hs.propTypes["on"+Mc]=Au.default.func}),Hs.defaultProps={debug:!1,useResizeHandler:!1,data:[],style:{position:"relative",display:"inline-block"}},Hs}})(V5);var q5={exports:{}};(function(zh){var Yh={};(function(Fh,Au){zh.exports?zh.exports=Au():Fh.moduleName=Au()})(typeof self<"u"?self:BD,()=>{var Fh=(()=>{var Au=Object.create,Th=Object.defineProperty,uv=Object.defineProperties,Yv=Object.getOwnPropertyDescriptor,Gy=Object.getOwnPropertyDescriptors,M0=Object.getOwnPropertyNames,mp=Object.getOwnPropertySymbols,Hy=Object.getPrototypeOf,Cd=Object.prototype.hasOwnProperty,jm=Object.prototype.propertyIsEnumerable,Vm=(Y,G,h)=>G in Y?Th(Y,G,{enumerable:!0,configurable:!0,writable:!0,value:h}):Y[G]=h,sh=(Y,G)=>{for(var h in G||(G={}))Cd.call(G,h)&&Vm(Y,h,G[h]);if(mp)for(var h of mp(G))jm.call(G,h)&&Vm(Y,h,G[h]);return Y},Ld=(Y,G)=>uv(Y,Gy(G)),gp=(Y,G)=>{var h={};for(var b in Y)Cd.call(Y,b)&&G.indexOf(b)<0&&(h[b]=Y[b]);if(Y!=null&&mp)for(var b of mp(Y))G.indexOf(b)<0&&jm.call(Y,b)&&(h[b]=Y[b]);return h},Ll=(Y,G)=>function(){return Y&&(G=(0,Y[M0(Y)[0]])(Y=0)),G},He=(Y,G)=>function(){return G||(0,Y[M0(Y)[0]])((G={exports:{}}).exports,G),G.exports},yp=(Y,G)=>{for(var h in G)Th(Y,h,{get:G[h],enumerable:!0})},qm=(Y,G,h,b)=>{if(G&&typeof G=="object"||typeof G=="function")for(let S of M0(G))!Cd.call(Y,S)&&S!==h&&Th(Y,S,{get:()=>G[S],enumerable:!(b=Yv(G,S))||b.enumerable});return Y},bs=(Y,G,h)=>(h=Y!=null?Au(Hy(Y)):{},qm(Th(h,"default",{value:Y,enumerable:!0}),Y)),Hs=Y=>qm(Th({},"__esModule",{value:!0}),Y),Mc=He({"src/version.js"(Y){Y.version="3.3.1"}}),zc=He({"node_modules/native-promise-only/lib/npo.src.js"(Y,G){(function(b,S,E){S[b]=S[b]||E(),typeof G<"u"&&G.exports&&(G.exports=S[b])})("Promise",typeof window<"u"?window:Y,function(){var b,S,E,e=Object.prototype.toString,t=typeof setImmediate<"u"?function(g){return setImmediate(g)}:setTimeout;try{Object.defineProperty({},"x",{}),b=function(g,x,A,M){return Object.defineProperty(g,x,{value:A,writable:!0,configurable:M!==!1})}}catch{b=function(x,A,M){return x[A]=M,x}}E=function(){var g,x,A;function M(_,w){this.fn=_,this.self=w,this.next=void 0}return{add:function(w,m){A=new M(w,m),x?x.next=A:g=A,x=A,A=void 0},drain:function(){var w=g;for(g=x=S=void 0;w;)w.fn.call(w.self),w=w.next}}}();function r(l,g){E.add(l,g),S||(S=t(E.drain))}function o(l){var g,x=typeof l;return l!=null&&(x=="object"||x=="function")&&(g=l.then),typeof g=="function"?g:!1}function a(){for(var l=0;l0&&r(a,x))}catch(A){s.call(new c(x),A)}}}function s(l){var g=this;g.triggered||(g.triggered=!0,g.def&&(g=g.def),g.msg=l,g.state=2,g.chain.length>0&&r(a,g))}function f(l,g,x,A){for(var M=0;MPe?1:de>=Pe?0:NaN}h.descending=function(de,Pe){return Pede?1:Pe>=de?0:NaN},h.min=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt;if(arguments.length===1){for(;++Ke=Tt){mt=Tt;break}for(;++KeTt&&(mt=Tt)}else{for(;++Ke=Tt){mt=Tt;break}for(;++KeTt&&(mt=Tt)}return mt},h.max=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt;if(arguments.length===1){for(;++Ke=Tt){mt=Tt;break}for(;++Kemt&&(mt=Tt)}else{for(;++Ke=Tt){mt=Tt;break}for(;++Kemt&&(mt=Tt)}return mt},h.extent=function(de,Pe){var Ke=-1,vt=de.length,mt,Tt,qt;if(arguments.length===1){for(;++Ke=Tt){mt=qt=Tt;break}for(;++KeTt&&(mt=Tt),qt=Tt){mt=qt=Tt;break}for(;++KeTt&&(mt=Tt),qt1)return qt/(or-1)},h.deviation=function(){var de=h.variance.apply(this,arguments);return de&&Math.sqrt(de)};function p(de){return{left:function(Pe,Ke,vt,mt){for(arguments.length<3&&(vt=0),arguments.length<4&&(mt=Pe.length);vt>>1;de(Pe[Tt],Ke)<0?vt=Tt+1:mt=Tt}return vt},right:function(Pe,Ke,vt,mt){for(arguments.length<3&&(vt=0),arguments.length<4&&(mt=Pe.length);vt>>1;de(Pe[Tt],Ke)>0?mt=Tt:vt=Tt+1}return vt}}}var d=p(s);h.bisectLeft=d.left,h.bisect=h.bisectRight=d.right,h.bisector=function(de){return p(de.length===1?function(Pe,Ke){return s(de(Pe),Ke)}:de)},h.shuffle=function(de,Pe,Ke){(vt=arguments.length)<3&&(Ke=de.length,vt<2&&(Pe=0));for(var vt=Ke-Pe,mt,Tt;vt;)Tt=Math.random()*vt--|0,mt=de[vt+Pe],de[vt+Pe]=de[Tt+Pe],de[Tt+Pe]=mt;return de},h.permute=function(de,Pe){for(var Ke=Pe.length,vt=new Array(Ke);Ke--;)vt[Ke]=de[Pe[Ke]];return vt},h.pairs=function(de){for(var Pe=0,Ke=de.length-1,vt=de[0],mt=new Array(Ke<0?0:Ke);Pe=0;)for(qt=de[Pe],Ke=qt.length;--Ke>=0;)Tt[--mt]=qt[Ke];return Tt};var l=Math.abs;h.range=function(de,Pe,Ke){if(arguments.length<3&&(Ke=1,arguments.length<2&&(Pe=de,de=0)),(Pe-de)/Ke===1/0)throw new Error("infinite range");var vt=[],mt=g(l(Ke)),Tt=-1,qt;if(de*=mt,Pe*=mt,Ke*=mt,Ke<0)for(;(qt=de+Ke*++Tt)>Pe;)vt.push(qt/mt);else for(;(qt=de+Ke*++Tt)=Pe.length)return mt?mt.call(de,or):vt?or.sort(vt):or;for(var Lr=-1,Zr=or.length,ia=Pe[Ir++],la,an,da,La=new A,Oa;++Lr=Pe.length)return Vt;var Ir=[],Lr=Ke[or++];return Vt.forEach(function(Zr,ia){Ir.push({key:Zr,values:qt(ia,or)})}),Lr?Ir.sort(function(Zr,ia){return Lr(Zr.key,ia.key)}):Ir}return de.map=function(Vt,or){return Tt(or,Vt,0)},de.entries=function(Vt){return qt(Tt(h.map,Vt,0),0)},de.key=function(Vt){return Pe.push(Vt),de},de.sortKeys=function(Vt){return Ke[Pe.length-1]=Vt,de},de.sortValues=function(Vt){return vt=Vt,de},de.rollup=function(Vt){return mt=Vt,de},de},h.set=function(de){var Pe=new z;if(de)for(var Ke=0,vt=de.length;Ke=0&&(vt=de.slice(Ke+1),de=de.slice(0,Ke)),de)return arguments.length<2?this[de].on(vt):this[de].on(vt,Pe);if(arguments.length===2){if(Pe==null)for(de in this)this.hasOwnProperty(de)&&this[de].on(vt,null);return this}};function X(de){var Pe=[],Ke=new A;function vt(){for(var mt=Pe,Tt=-1,qt=mt.length,Vt;++Tt=0&&(Ke=de.slice(0,Pe))!=="xmlns"&&(de=de.slice(Pe+1)),fe.hasOwnProperty(Ke)?{space:fe[Ke],local:de}:de}},Q.attr=function(de,Pe){if(arguments.length<2){if(typeof de=="string"){var Ke=this.node();return de=h.ns.qualify(de),de.local?Ke.getAttributeNS(de.space,de.local):Ke.getAttribute(de)}for(Pe in de)this.each(be(Pe,de[Pe]));return this}return this.each(be(de,Pe))};function be(de,Pe){de=h.ns.qualify(de);function Ke(){this.removeAttribute(de)}function vt(){this.removeAttributeNS(de.space,de.local)}function mt(){this.setAttribute(de,Pe)}function Tt(){this.setAttributeNS(de.space,de.local,Pe)}function qt(){var or=Pe.apply(this,arguments);or==null?this.removeAttribute(de):this.setAttribute(de,or)}function Vt(){var or=Pe.apply(this,arguments);or==null?this.removeAttributeNS(de.space,de.local):this.setAttributeNS(de.space,de.local,or)}return Pe==null?de.local?vt:Ke:typeof Pe=="function"?de.local?Vt:qt:de.local?Tt:mt}function Me(de){return de.trim().replace(/\s+/g," ")}Q.classed=function(de,Pe){if(arguments.length<2){if(typeof de=="string"){var Ke=this.node(),vt=(de=Le(de)).length,mt=-1;if(Pe=Ke.classList){for(;++mt=0;)(Tt=Ke[vt])&&(mt&&mt!==Tt.nextSibling&&mt.parentNode.insertBefore(Tt,mt),mt=Tt);return this},Q.sort=function(de){de=De.apply(this,arguments);for(var Pe=-1,Ke=this.length;++Pe=Pe&&(Pe=mt+1);!(or=qt[Pe])&&++Pe0&&(de=de.slice(0,mt));var qt=jt.get(de);qt&&(de=qt,Tt=dr);function Vt(){var Lr=this[vt];Lr&&(this.removeEventListener(de,Lr,Lr.$),delete this[vt])}function or(){var Lr=Tt(Pe,S(arguments));Vt.call(this),this.addEventListener(de,this[vt]=Lr,Lr.$=Ke),Lr._=Pe}function Ir(){var Lr=new RegExp("^__on([^.]+)"+h.requote(de)+"$"),Zr;for(var ia in this)if(Zr=ia.match(Lr)){var la=this[ia];this.removeEventListener(Zr[1],la,la.$),delete this[ia]}}return mt?Pe?or:Vt:Pe?N:Ir}var jt=h.map({mouseenter:"mouseover",mouseleave:"mouseout"});E&&jt.forEach(function(de){"on"+de in E&&jt.remove(de)});function Wt(de,Pe){return function(Ke){var vt=h.event;h.event=Ke,Pe[0]=this.__data__;try{de.apply(this,Pe)}finally{h.event=vt}}}function dr(de,Pe){var Ke=Wt(de,Pe);return function(vt){var mt=this,Tt=vt.relatedTarget;(!Tt||Tt!==mt&&!(Tt.compareDocumentPosition(mt)&8))&&Ke.call(mt,vt)}}var vr,Dr=0;function hr(de){var Pe=".dragsuppress-"+ ++Dr,Ke="click"+Pe,vt=h.select(t(de)).on("touchmove"+Pe,ee).on("dragstart"+Pe,ee).on("selectstart"+Pe,ee);if(vr==null&&(vr="onselectstart"in de?!1:O(de.style,"userSelect")),vr){var mt=e(de).style,Tt=mt[vr];mt[vr]="none"}return function(qt){if(vt.on(Pe,null),vr&&(mt[vr]=Tt),qt){var Vt=function(){vt.on(Ke,null)};vt.on(Ke,function(){ee(),Vt()},!0),setTimeout(Vt,0)}}}h.mouse=function(de){return gt(de,ue())};var Ar=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function gt(de,Pe){Pe.changedTouches&&(Pe=Pe.changedTouches[0]);var Ke=de.ownerSVGElement||de;if(Ke.createSVGPoint){var vt=Ke.createSVGPoint();if(Ar<0){var mt=t(de);if(mt.scrollX||mt.scrollY){Ke=h.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var Tt=Ke[0][0].getScreenCTM();Ar=!(Tt.f||Tt.e),Ke.remove()}}return Ar?(vt.x=Pe.pageX,vt.y=Pe.pageY):(vt.x=Pe.clientX,vt.y=Pe.clientY),vt=vt.matrixTransform(de.getScreenCTM().inverse()),[vt.x,vt.y]}var qt=de.getBoundingClientRect();return[Pe.clientX-qt.left-de.clientLeft,Pe.clientY-qt.top-de.clientTop]}h.touch=function(de,Pe,Ke){if(arguments.length<3&&(Ke=Pe,Pe=ue().changedTouches),Pe){for(var vt=0,mt=Pe.length,Tt;vt1?Ue:de<-1?-Ue:Math.asin(de)}function Nt(de){return((de=Math.exp(de))-1/de)/2}function sr(de){return((de=Math.exp(de))+1/de)/2}function ar(de){return((de=Math.exp(2*de))-1)/(de+1)}var tr=Math.SQRT2,Tr=2,sa=4;h.interpolateZoom=function(de,Pe){var Ke=de[0],vt=de[1],mt=de[2],Tt=Pe[0],qt=Pe[1],Vt=Pe[2],or=Tt-Ke,Ir=qt-vt,Lr=or*or+Ir*Ir,Zr,ia;if(Lr0&&(pi=pi.transition().duration(qt)),pi.call(on.event)}function Ti(){La&&La.domain(da.range().map(function(pi){return(pi-de.x)/de.k}).map(da.invert)),Qa&&Qa.domain(Oa.range().map(function(pi){return(pi-de.y)/de.k}).map(Oa.invert))}function ki(pi){Vt++||pi({type:"zoomstart"})}function Go(pi){Ti(),pi({type:"zoom",scale:de.k,translate:[de.x,de.y]})}function Pi(pi){--Vt||(pi({type:"zoomend"}),Ke=null)}function oo(){var pi=this,ko=an.of(pi,arguments),Xo=0,Os=h.select(t(pi)).on(Ir,gs).on(Lr,Bs),Ms=Fa(h.mouse(pi)),Zl=hr(pi);$a.call(pi),ki(ko);function gs(){Xo=1,Kn(h.mouse(pi),Ms),Go(ko)}function Bs(){Os.on(Ir,null).on(Lr,null),Zl(Xo),Pi(ko)}}function $o(){var pi=this,ko=an.of(pi,arguments),Xo={},Os=0,Ms,Zl=".zoom-"+h.event.changedTouches[0].identifier,gs="touchmove"+Zl,Bs="touchend"+Zl,du=[],ul=h.select(pi),st=hr(pi);ur(),ki(ko),ul.on(or,null).on(ia,ur);function ir(){var Qr=h.touches(pi);return Ms=de.k,Qr.forEach(function($r){$r.identifier in Xo&&(Xo[$r.identifier]=Fa($r))}),Qr}function ur(){var Qr=h.event.target;h.select(Qr).on(gs,ua).on(Bs,Ua),du.push(Qr);for(var $r=h.event.changedTouches,un=0,sn=$r.length;un1){var Qn=ln[0],jn=ln[1],yn=Qn[0]-jn[0],Wa=Qn[1]-jn[1];Os=yn*yn+Wa*Wa}}function ua(){var Qr=h.touches(pi),$r,un,sn,ln;$a.call(pi);for(var xn=0,Qn=Qr.length;xn1?1:Pe,Ke=Ke<0?0:Ke>1?1:Ke,mt=Ke<=.5?Ke*(1+Pe):Ke+Pe-Ke*Pe,vt=2*Ke-mt;function Tt(Vt){return Vt>360?Vt-=360:Vt<0&&(Vt+=360),Vt<60?vt+(mt-vt)*Vt/60:Vt<180?mt:Vt<240?vt+(mt-vt)*(240-Vt)/60:vt}function qt(Vt){return Math.round(Tt(Vt)*255)}return new Bn(qt(de+120),qt(de),qt(de-120))}h.hcl=Yt;function Yt(de,Pe,Ke){return this instanceof Yt?(this.h=+de,this.c=+Pe,void(this.l=+Ke)):arguments.length<2?de instanceof Yt?new Yt(de.h,de.c,de.l):de instanceof $t?Va(de.l,de.a,de.b):Va((de=_r((de=h.rgb(de)).r,de.g,de.b)).l,de.a,de.b):new Yt(de,Pe,Ke)}var It=Yt.prototype=new Ra;It.brighter=function(de){return new Yt(this.h,this.c,Math.min(100,this.l+Cr*(arguments.length?de:1)))},It.darker=function(de){return new Yt(this.h,this.c,Math.max(0,this.l-Cr*(arguments.length?de:1)))},It.rgb=function(){return Zt(this.h,this.c,this.l).rgb()};function Zt(de,Pe,Ke){return isNaN(de)&&(de=0),isNaN(Pe)&&(Pe=0),new $t(Ke,Math.cos(de*=Xe)*Pe,Math.sin(de)*Pe)}h.lab=$t;function $t(de,Pe,Ke){return this instanceof $t?(this.l=+de,this.a=+Pe,void(this.b=+Ke)):arguments.length<2?de instanceof $t?new $t(de.l,de.a,de.b):de instanceof Yt?Zt(de.h,de.c,de.l):_r((de=Bn(de)).r,de.g,de.b):new $t(de,Pe,Ke)}var Cr=18,qr=.95047,Jr=1,aa=1.08883,Ca=$t.prototype=new Ra;Ca.brighter=function(de){return new $t(Math.min(100,this.l+Cr*(arguments.length?de:1)),this.a,this.b)},Ca.darker=function(de){return new $t(Math.max(0,this.l-Cr*(arguments.length?de:1)),this.a,this.b)},Ca.rgb=function(){return Ha(this.l,this.a,this.b)};function Ha(de,Pe,Ke){var vt=(de+16)/116,mt=vt+Pe/500,Tt=vt-Ke/200;return mt=Za(mt)*qr,vt=Za(vt)*Jr,Tt=Za(Tt)*aa,new Bn(wa(3.2404542*mt-1.5371385*vt-.4985314*Tt),wa(-.969266*mt+1.8760108*vt+.041556*Tt),wa(.0556434*mt-.2040259*vt+1.0572252*Tt))}function Va(de,Pe,Ke){return de>0?new Yt(Math.atan2(Ke,Pe)*bt,Math.sqrt(Pe*Pe+Ke*Ke),de):new Yt(NaN,NaN,de)}function Za(de){return de>.206893034?de*de*de:(de-4/29)/7.787037}function rn(de){return de>.008856?Math.pow(de,1/3):7.787037*de+4/29}function wa(de){return Math.round(255*(de<=.00304?12.92*de:1.055*Math.pow(de,1/2.4)-.055))}h.rgb=Bn;function Bn(de,Pe,Ke){return this instanceof Bn?(this.r=~~de,this.g=~~Pe,void(this.b=~~Ke)):arguments.length<2?de instanceof Bn?new Bn(de.r,de.g,de.b):Sr(""+de,Bn,mn):new Bn(de,Pe,Ke)}function Hn(de){return new Bn(de>>16,de>>8&255,de&255)}function At(de){return Hn(de)+""}var ft=Bn.prototype=new Ra;ft.brighter=function(de){de=Math.pow(.7,arguments.length?de:1);var Pe=this.r,Ke=this.g,vt=this.b,mt=30;return!Pe&&!Ke&&!vt?new Bn(mt,mt,mt):(Pe&&Pe>4,vt=vt>>4|vt,mt=or&240,mt=mt>>4|mt,Tt=or&15,Tt=Tt<<4|Tt):de.length===7&&(vt=(or&16711680)>>16,mt=(or&65280)>>8,Tt=or&255)),Pe(vt,mt,Tt))}function Er(de,Pe,Ke){var vt=Math.min(de/=255,Pe/=255,Ke/=255),mt=Math.max(de,Pe,Ke),Tt=mt-vt,qt,Vt,or=(mt+vt)/2;return Tt?(Vt=or<.5?Tt/(mt+vt):Tt/(2-mt-vt),de==mt?qt=(Pe-Ke)/Tt+(Pe0&&or<1?0:qt),new ya(qt,Vt,or)}function _r(de,Pe,Ke){de=Mr(de),Pe=Mr(Pe),Ke=Mr(Ke);var vt=rn((.4124564*de+.3575761*Pe+.1804375*Ke)/qr),mt=rn((.2126729*de+.7151522*Pe+.072175*Ke)/Jr),Tt=rn((.0193339*de+.119192*Pe+.9503041*Ke)/aa);return $t(116*mt-16,500*(vt-mt),200*(mt-Tt))}function Mr(de){return(de/=255)<=.04045?de/12.92:Math.pow((de+.055)/1.055,2.4)}function Gr(de){var Pe=parseFloat(de);return de.charAt(de.length-1)==="%"?Math.round(Pe*2.55):Pe}var Fr=h.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Fr.forEach(function(de,Pe){Fr.set(de,Hn(Pe))});function pt(de){return typeof de=="function"?de:function(){return de}}h.functor=pt,h.xhr=Kt(F);function Kt(de){return function(Pe,Ke,vt){return arguments.length===2&&typeof Ke=="function"&&(vt=Ke,Ke=null),xr(Pe,Ke,de,vt)}}function xr(de,Pe,Ke,vt){var mt={},Tt=h.dispatch("beforesend","progress","load","error"),qt={},Vt=new XMLHttpRequest,or=null;self.XDomainRequest&&!("withCredentials"in Vt)&&/^(http(s)?:)?\/\//.test(de)&&(Vt=new XDomainRequest),"onload"in Vt?Vt.onload=Vt.onerror=Ir:Vt.onreadystatechange=function(){Vt.readyState>3&&Ir()};function Ir(){var Lr=Vt.status,Zr;if(!Lr&&fa(Vt)||Lr>=200&&Lr<300||Lr===304){try{Zr=Ke.call(mt,Vt)}catch(ia){Tt.error.call(mt,ia);return}Tt.load.call(mt,Zr)}else Tt.error.call(mt,Vt)}return Vt.onprogress=function(Lr){var Zr=h.event;h.event=Lr;try{Tt.progress.call(mt,Vt)}finally{h.event=Zr}},mt.header=function(Lr,Zr){return Lr=(Lr+"").toLowerCase(),arguments.length<2?qt[Lr]:(Zr==null?delete qt[Lr]:qt[Lr]=Zr+"",mt)},mt.mimeType=function(Lr){return arguments.length?(Pe=Lr==null?null:Lr+"",mt):Pe},mt.responseType=function(Lr){return arguments.length?(or=Lr,mt):or},mt.response=function(Lr){return Ke=Lr,mt},["get","post"].forEach(function(Lr){mt[Lr]=function(){return mt.send.apply(mt,[Lr].concat(S(arguments)))}}),mt.send=function(Lr,Zr,ia){if(arguments.length===2&&typeof Zr=="function"&&(ia=Zr,Zr=null),Vt.open(Lr,de,!0),Pe!=null&&!("accept"in qt)&&(qt.accept=Pe+",*/*"),Vt.setRequestHeader)for(var la in qt)Vt.setRequestHeader(la,qt[la]);return Pe!=null&&Vt.overrideMimeType&&Vt.overrideMimeType(Pe),or!=null&&(Vt.responseType=or),ia!=null&&mt.on("error",ia).on("load",function(an){ia(null,an)}),Tt.beforesend.call(mt,Vt),Vt.send(Zr??null),mt},mt.abort=function(){return Vt.abort(),mt},h.rebind(mt,Tt,"on"),vt==null?mt:mt.get(Hr(vt))}function Hr(de){return de.length===1?function(Pe,Ke){de(Pe==null?Ke:null)}:de}function fa(de){var Pe=de.responseType;return Pe&&Pe!=="text"?de.response:de.responseText}h.dsv=function(de,Pe){var Ke=new RegExp('["'+de+` ]`),vt=de.charCodeAt(0);function mt(Ir,Lr,Zr){arguments.length<3&&(Zr=Lr,Lr=null);var ia=xr(Ir,Pe,Lr==null?Tt:qt(Lr),Zr);return ia.row=function(la){return arguments.length?ia.response((Lr=la)==null?Tt:qt(la)):Lr},ia}function Tt(Ir){return mt.parse(Ir.responseText)}function qt(Ir){return function(Lr){return mt.parse(Lr.responseText,Ir)}}mt.parse=function(Ir,Lr){var Zr;return mt.parseRows(Ir,function(ia,la){if(Zr)return Zr(ia,la-1);var an=function(da){for(var La={},Oa=ia.length,Qa=0;Qa=an)return ia;if(Qa)return Qa=!1,Zr;var Ln=da;if(Ir.charCodeAt(Ln)===34){for(var oi=Ln;oi++24?(isFinite(Pe)&&(clearTimeout(ha),ha=setTimeout(Xn,Pe)),Wr=0):(Wr=1,Un(Xn))}h.timer.flush=function(){ni(),di()};function ni(){for(var de=Date.now(),Pe=xa;Pe;)de>=Pe.t&&Pe.c(de-Pe.t)&&(Pe.c=null),Pe=Pe.n;return de}function di(){for(var de,Pe=xa,Ke=1/0;Pe;)Pe.c?(Pe.t=0;--Vt)da.push(mt[Ir[Zr[Vt]][2]]);for(Vt=+la;Vt1&&xt(de[Ke[vt-2]],de[Ke[vt-1]],de[mt])<=0;)--vt;Ke[vt++]=mt}return Ke.slice(0,vt)}function to(de,Pe){return de[0]-Pe[0]||de[1]-Pe[1]}h.geom.polygon=function(de){return V(de,Gi),de};var Gi=h.geom.polygon.prototype=[];Gi.area=function(){for(var de=-1,Pe=this.length,Ke,vt=this[Pe-1],mt=0;++deWe)Vt=Vt.L;else if(qt=Pe-hi(Vt,Ke),qt>We){if(!Vt.R){vt=Vt;break}Vt=Vt.R}else{Tt>-We?(vt=Vt.P,mt=Vt):qt>-We?(vt=Vt,mt=Vt.N):vt=mt=Vt;break}var or=rs(de);if(Bo.insert(vt,or),!(!vt&&!mt)){if(vt===mt){as(vt),mt=rs(vt.site),Bo.insert(or,mt),or.edge=mt.edge=Rs(vt.site,or.site),qo(vt),qo(mt);return}if(!mt){or.edge=Rs(vt.site,or.site);return}as(vt),as(mt);var Ir=vt.site,Lr=Ir.x,Zr=Ir.y,ia=de.x-Lr,la=de.y-Zr,an=mt.site,da=an.x-Lr,La=an.y-Zr,Oa=2*(ia*La-la*da),Qa=ia*ia+la*la,on=da*da+La*La,Fa={x:(La*Qa-la*on)/Oa+Lr,y:(ia*on-da*Qa)/Oa+Zr};Ii(mt.edge,Ir,an,Fa),or.edge=Rs(Ir,de,null,Fa),mt.edge=Rs(de,an,null,Fa),qo(vt),qo(mt)}}function Fn(de,Pe){var Ke=de.site,vt=Ke.x,mt=Ke.y,Tt=mt-Pe;if(!Tt)return vt;var qt=de.P;if(!qt)return-1/0;Ke=qt.site;var Vt=Ke.x,or=Ke.y,Ir=or-Pe;if(!Ir)return Vt;var Lr=Vt-vt,Zr=1/Tt-1/Ir,ia=Lr/Ir;return Zr?(-ia+Math.sqrt(ia*ia-2*Zr*(Lr*Lr/(-2*Ir)-or+Ir/2+mt-Tt/2)))/Zr+vt:(vt+Vt)/2}function hi(de,Pe){var Ke=de.N;if(Ke)return Fn(Ke,Pe);var vt=de.site;return vt.y===Pe?vt.x:1/0}function _s(de){this.site=de,this.edges=[]}_s.prototype.prepare=function(){for(var de=this.edges,Pe=de.length,Ke;Pe--;)Ke=de[Pe].edge,(!Ke.b||!Ke.a)&&de.splice(Pe,1);return de.sort(Fi),de.length};function Po(de){for(var Pe=de[0][0],Ke=de[1][0],vt=de[0][1],mt=de[1][1],Tt,qt,Vt,or,Ir=Vo,Lr=Ir.length,Zr,ia,la,an,da,La;Lr--;)if(Zr=Ir[Lr],!(!Zr||!Zr.prepare()))for(la=Zr.edges,an=la.length,ia=0;iaWe||l(or-qt)>We)&&(la.splice(ia,0,new Xs(Ds(Zr.site,La,l(Vt-Pe)We?{x:Pe,y:l(Tt-Pe)We?{x:l(qt-mt)We?{x:Ke,y:l(Tt-Ke)We?{x:l(qt-vt)=-Ae)){var ia=or*or+Ir*Ir,la=Lr*Lr+La*La,an=(La*ia-Ir*la)/Zr,da=(or*la-Lr*ia)/Zr,La=da+Vt,Oa=_i.pop()||new Ts;Oa.arc=de,Oa.site=mt,Oa.x=an+qt,Oa.y=La+Math.sqrt(an*an+da*da),Oa.cy=La,de.circle=Oa;for(var Qa=null,on=Zi._;on;)if(Oa.y0)){if(da/=la,la<0){if(da0){if(da>ia)return;da>Zr&&(Zr=da)}if(da=Ke-Vt,!(!la&&da<0)){if(da/=la,la<0){if(da>ia)return;da>Zr&&(Zr=da)}else if(la>0){if(da0)){if(da/=an,an<0){if(da0){if(da>ia)return;da>Zr&&(Zr=da)}if(da=vt-or,!(!an&&da<0)){if(da/=an,an<0){if(da>ia)return;da>Zr&&(Zr=da)}else if(an>0){if(da0&&(mt.a={x:Vt+Zr*la,y:or+Zr*an}),ia<1&&(mt.b={x:Vt+ia*la,y:or+ia*an}),mt}}}}}}function ci(de){for(var Pe=ji,Ke=al(de[0][0],de[0][1],de[1][0],de[1][1]),vt=Pe.length,mt;vt--;)mt=Pe[vt],(!mo(mt,de)||!Ke(mt)||l(mt.a.x-mt.b.x)=Tt)return;if(Lr>ia){if(!vt)vt={x:an,y:qt};else if(vt.y>=Vt)return;Ke={x:an,y:Vt}}else{if(!vt)vt={x:an,y:Vt};else if(vt.y1)if(Lr>ia){if(!vt)vt={x:(qt-Oa)/La,y:qt};else if(vt.y>=Vt)return;Ke={x:(Vt-Oa)/La,y:Vt}}else{if(!vt)vt={x:(Vt-Oa)/La,y:Vt};else if(vt.y=Tt)return;Ke={x:Tt,y:La*Tt+Oa}}else{if(!vt)vt={x:Tt,y:La*Tt+Oa};else if(vt.x=Lr&&Oa.x<=ia&&Oa.y>=Zr&&Oa.y<=la?[[Lr,la],[ia,la],[ia,Zr],[Lr,Zr]]:[];Qa.point=or[da]}),Ir}function Vt(or){return or.map(function(Ir,Lr){return{x:Math.round(vt(Ir,Lr)/We)*We,y:Math.round(mt(Ir,Lr)/We)*We,i:Lr}})}return qt.links=function(or){return wl(Vt(or)).edges.filter(function(Ir){return Ir.l&&Ir.r}).map(function(Ir){return{source:or[Ir.l.i],target:or[Ir.r.i]}})},qt.triangles=function(or){var Ir=[];return wl(Vt(or)).cells.forEach(function(Lr,Zr){for(var ia=Lr.site,la=Lr.edges.sort(Fi),an=-1,da=la.length,La,Oa=la[da-1].edge,Qa=Oa.l===ia?Oa.r:Oa.l;++anon&&(on=Lr.x),Lr.y>Fa&&(Fa=Lr.y),la.push(Lr.x),an.push(Lr.y);else for(da=0;daon&&(on=Ln),oi>Fa&&(Fa=oi),la.push(Ln),an.push(oi)}var Kn=on-Oa,ai=Fa-Qa;Kn>ai?Fa=Qa+Kn:on=Oa+ai;function Ti(Pi,oo,$o,hl,js,pi,ko,Xo){if(!(isNaN($o)||isNaN(hl)))if(Pi.leaf){var Os=Pi.x,Ms=Pi.y;if(Os!=null)if(l(Os-$o)+l(Ms-hl)<.01)ki(Pi,oo,$o,hl,js,pi,ko,Xo);else{var Zl=Pi.point;Pi.x=Pi.y=Pi.point=null,ki(Pi,Zl,Os,Ms,js,pi,ko,Xo),ki(Pi,oo,$o,hl,js,pi,ko,Xo)}else Pi.x=$o,Pi.y=hl,Pi.point=oo}else ki(Pi,oo,$o,hl,js,pi,ko,Xo)}function ki(Pi,oo,$o,hl,js,pi,ko,Xo){var Os=(js+ko)*.5,Ms=(pi+Xo)*.5,Zl=$o>=Os,gs=hl>=Ms,Bs=gs<<1|Zl;Pi.leaf=!1,Pi=Pi.nodes[Bs]||(Pi.nodes[Bs]=ds()),Zl?js=Os:ko=Os,gs?pi=Ms:Xo=Ms,Ti(Pi,oo,$o,hl,js,pi,ko,Xo)}var Go=ds();if(Go.add=function(Pi){Ti(Go,Pi,+Zr(Pi,++da),+ia(Pi,da),Oa,Qa,on,Fa)},Go.visit=function(Pi){Jl(Pi,Go,Oa,Qa,on,Fa)},Go.find=function(Pi){return Nc(Go,Pi[0],Pi[1],Oa,Qa,on,Fa)},da=-1,Pe==null){for(;++daTt||ia>qt||la=Ln,ai=Ke>=oi,Ti=ai<<1|Kn,ki=Ti+4;TiKe&&(Tt=Pe.slice(Ke,Tt),Vt[qt]?Vt[qt]+=Tt:Vt[++qt]=Tt),(vt=vt[0])===(mt=mt[0])?Vt[qt]?Vt[qt]+=mt:Vt[++qt]=mt:(Vt[++qt]=null,or.push({i:qt,x:Rl(vt,mt)})),Ke=Al.lastIndex;return Ke=0&&!(vt=h.interpolators[Ke](de,Pe)););return vt}h.interpolators=[function(de,Pe){var Ke=typeof Pe;return(Ke==="string"?Fr.has(Pe.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(Pe)?Il:gu:Pe instanceof Ra?Il:Array.isArray(Pe)?As:Ke==="object"&&isNaN(Pe)?Tl:Rl)(de,Pe)}],h.interpolateArray=As;function As(de,Pe){var Ke=[],vt=[],mt=de.length,Tt=Pe.length,qt=Math.min(de.length,Pe.length),Vt;for(Vt=0;Vt=0?de.slice(0,Pe):de,vt=Pe>=0?de.slice(Pe+1):"in";return Ke=Hl.get(Ke)||Uu,vt=Yu.get(vt)||F,Zs(vt(Ke.apply(null,b.call(arguments,1))))};function Zs(de){return function(Pe){return Pe<=0?0:Pe>=1?1:de(Pe)}}function df(de){return function(Pe){return 1-de(1-Pe)}}function zo(de){return function(Pe){return .5*(Pe<.5?de(2*Pe):2-de(2-2*Pe))}}function Ef(de){return de*de}function ls(de){return de*de*de}function zi(de){if(de<=0)return 0;if(de>=1)return 1;var Pe=de*de,Ke=Pe*de;return 4*(de<.5?Ke:3*(de-Pe)+Ke-.75)}function uc(de){return function(Pe){return Math.pow(Pe,de)}}function yu(de){return 1-Math.cos(de*Ue)}function dl(de){return Math.pow(2,10*(de-1))}function Uc(de){return 1-Math.sqrt(1-de*de)}function Ku(de,Pe){var Ke;return arguments.length<2&&(Pe=.45),arguments.length?Ke=Pe/pe*Math.asin(1/de):(de=1,Ke=Pe/4),function(vt){return 1+de*Math.pow(2,-10*vt)*Math.sin((vt-Ke)*pe/Pe)}}function _c(de){return de||(de=1.70158),function(Pe){return Pe*Pe*((de+1)*Pe-de)}}function Sl(de){return de<1/2.75?7.5625*de*de:de<2/2.75?7.5625*(de-=1.5/2.75)*de+.75:de<2.5/2.75?7.5625*(de-=2.25/2.75)*de+.9375:7.5625*(de-=2.625/2.75)*de+.984375}h.interpolateHcl=lf;function lf(de,Pe){de=h.hcl(de),Pe=h.hcl(Pe);var Ke=de.h,vt=de.c,mt=de.l,Tt=Pe.h-Ke,qt=Pe.c-vt,Vt=Pe.l-mt;return isNaN(qt)&&(qt=0,vt=isNaN(vt)?Pe.c:vt),isNaN(Tt)?(Tt=0,Ke=isNaN(Ke)?Pe.h:Ke):Tt>180?Tt-=360:Tt<-180&&(Tt+=360),function(or){return Zt(Ke+Tt*or,vt+qt*or,mt+Vt*or)+""}}h.interpolateHsl=Wc;function Wc(de,Pe){de=h.hsl(de),Pe=h.hsl(Pe);var Ke=de.h,vt=de.s,mt=de.l,Tt=Pe.h-Ke,qt=Pe.s-vt,Vt=Pe.l-mt;return isNaN(qt)&&(qt=0,vt=isNaN(vt)?Pe.s:vt),isNaN(Tt)?(Tt=0,Ke=isNaN(Ke)?Pe.h:Ke):Tt>180?Tt-=360:Tt<-180&&(Tt+=360),function(or){return mn(Ke+Tt*or,vt+qt*or,mt+Vt*or)+""}}h.interpolateLab=xc;function xc(de,Pe){de=h.lab(de),Pe=h.lab(Pe);var Ke=de.l,vt=de.a,mt=de.b,Tt=Pe.l-Ke,qt=Pe.a-vt,Vt=Pe.b-mt;return function(or){return Ha(Ke+Tt*or,vt+qt*or,mt+Vt*or)+""}}h.interpolateRound=$u;function $u(de,Pe){return Pe-=de,function(Ke){return Math.round(de+Pe*Ke)}}h.transform=function(de){var Pe=E.createElementNS(h.ns.prefix.svg,"g");return(h.transform=function(Ke){if(Ke!=null){Pe.setAttribute("transform",Ke);var vt=Pe.transform.baseVal.consolidate()}return new jc(vt?vt.matrix:ju)})(de)};function jc(de){var Pe=[de.a,de.b],Ke=[de.c,de.d],vt=_u(Pe),mt=Vc(Pe,Ke),Tt=_u(Xc(Ke,Pe,-mt))||0;Pe[0]*Ke[1]180?Pe+=360:Pe-de>180&&(de+=360),vt.push({i:Ke.push(Cu(Ke)+"rotate(",null,")")-2,x:Rl(de,Pe)})):Pe&&Ke.push(Cu(Ke)+"rotate("+Pe+")")}function qc(de,Pe,Ke,vt){de!==Pe?vt.push({i:Ke.push(Cu(Ke)+"skewX(",null,")")-2,x:Rl(de,Pe)}):Pe&&Ke.push(Cu(Ke)+"skewX("+Pe+")")}function Cs(de,Pe,Ke,vt){if(de[0]!==Pe[0]||de[1]!==Pe[1]){var mt=Ke.push(Cu(Ke)+"scale(",null,",",null,")");vt.push({i:mt-4,x:Rl(de[0],Pe[0])},{i:mt-2,x:Rl(de[1],Pe[1])})}else(Pe[0]!==1||Pe[1]!==1)&&Ke.push(Cu(Ke)+"scale("+Pe+")")}function kc(de,Pe){var Ke=[],vt=[];return de=h.transform(de),Pe=h.transform(Pe),Ml(de.translate,Pe.translate,Ke,vt),ic(de.rotate,Pe.rotate,Ke,vt),qc(de.skew,Pe.skew,Ke,vt),Cs(de.scale,Pe.scale,Ke,vt),de=Pe=null,function(mt){for(var Tt=-1,qt=vt.length,Vt;++Tt0?Tt=Fa:(Ke.c=null,Ke.t=NaN,Ke=null,Pe.end({type:"end",alpha:Tt=0})):Fa>0&&(Pe.start({type:"start",alpha:Tt=Fa}),Ke=en(de.tick)),de):Tt},de.start=function(){var Fa,Ln=la.length,oi=an.length,Kn=vt[0],ai=vt[1],Ti,ki;for(Fa=0;Fa=0;)Tt.push(Lr=Ir[or]),Lr.parent=Vt,Lr.depth=Vt.depth+1;Ke&&(Vt.value=0),Vt.children=Ir}else Ke&&(Vt.value=+Ke.call(vt,Vt,Vt.depth)||0),delete Vt.children;return Lu(mt,function(Zr){var ia,la;de&&(ia=Zr.children)&&ia.sort(de),Ke&&(la=Zr.parent)&&(la.value+=Zr.value)}),qt}return vt.sort=function(mt){return arguments.length?(de=mt,vt):de},vt.children=function(mt){return arguments.length?(Pe=mt,vt):Pe},vt.value=function(mt){return arguments.length?(Ke=mt,vt):Ke},vt.revalue=function(mt){return Ke&&(cc(mt,function(Tt){Tt.children&&(Tt.value=0)}),Lu(mt,function(Tt){var qt;Tt.children||(Tt.value=+Ke.call(vt,Tt,Tt.depth)||0),(qt=Tt.parent)&&(qt.value+=Tt.value)})),mt},vt};function Ys(de,Pe){return h.rebind(de,Pe,"sort","children","value"),de.nodes=de,de.links=Df,de}function cc(de,Pe){for(var Ke=[de];(de=Ke.pop())!=null;)if(Pe(de),(mt=de.children)&&(vt=mt.length))for(var vt,mt;--vt>=0;)Ke.push(mt[vt])}function Lu(de,Pe){for(var Ke=[de],vt=[];(de=Ke.pop())!=null;)if(vt.push(de),(qt=de.children)&&(Tt=qt.length))for(var mt=-1,Tt,qt;++mtmt&&(mt=Vt),vt.push(Vt)}for(qt=0;qtvt&&(Ke=Pe,vt=mt);return Ke}function ru(de){return de.reduce(xu,0)}function xu(de,Pe){return de+Pe[1]}h.layout.histogram=function(){var de=!0,Pe=Number,Ke=wc,vt=Gc;function mt(Tt,ia){for(var Vt=[],or=Tt.map(Pe,this),Ir=Ke.call(this,or,ia),Lr=vt.call(this,Ir,or,ia),Zr,ia=-1,la=or.length,an=Lr.length-1,da=de?1:1/la,La;++ia0)for(ia=-1;++ia=Ir[0]&&La<=Ir[1]&&(Zr=Vt[h.bisect(Lr,La,1,an)-1],Zr.y+=da,Zr.push(Tt[ia]));return Vt}return mt.value=function(Tt){return arguments.length?(Pe=Tt,mt):Pe},mt.range=function(Tt){return arguments.length?(Ke=pt(Tt),mt):Ke},mt.bins=function(Tt){return arguments.length?(vt=typeof Tt=="number"?function(qt){return Ws(qt,Tt)}:pt(Tt),mt):vt},mt.frequency=function(Tt){return arguments.length?(de=!!Tt,mt):de},mt};function Gc(de,Pe){return Ws(de,Math.ceil(Math.log(Pe.length)/Math.LN2+1))}function Ws(de,Pe){for(var Ke=-1,vt=+de[0],mt=(de[1]-vt)/Pe,Tt=[];++Ke<=Pe;)Tt[Ke]=mt*Ke+vt;return Tt}function wc(de){return[h.min(de),h.max(de)]}h.layout.pack=function(){var de=h.layout.hierarchy().sort(ec),Pe=0,Ke=[1,1],vt;function mt(Tt,qt){var Vt=de.call(this,Tt,qt),or=Vt[0],Ir=Ke[0],Lr=Ke[1],Zr=vt==null?Math.sqrt:typeof vt=="function"?vt:function(){return vt};if(or.x=or.y=0,Lu(or,function(la){la.r=+Zr(la.value)}),Lu(or,Ac),Pe){var ia=Pe*(vt?1:Math.max(2*or.r/Ir,2*or.r/Lr))/2;Lu(or,function(la){la.r+=ia}),Lu(or,Ac),Lu(or,function(la){la.r-=ia})}return Jc(or,Ir/2,Lr/2,vt?1:1/Math.max(2*or.r/Ir,2*or.r/Lr)),Vt}return mt.size=function(Tt){return arguments.length?(Ke=Tt,mt):Ke},mt.radius=function(Tt){return arguments.length?(vt=Tt==null||typeof Tt=="function"?Tt:+Tt,mt):vt},mt.padding=function(Tt){return arguments.length?(Pe=+Tt,mt):Pe},Ys(mt,de)};function ec(de,Pe){return de.value-Pe.value}function fu(de,Pe){var Ke=de._pack_next;de._pack_next=Pe,Pe._pack_prev=de,Pe._pack_next=Ke,Ke._pack_prev=Pe}function Tc(de,Pe){de._pack_next=Pe,Pe._pack_prev=de}function Pu(de,Pe){var Ke=Pe.x-de.x,vt=Pe.y-de.y,mt=de.r+Pe.r;return .999*mt*mt>Ke*Ke+vt*vt}function Ac(de){if(!(Pe=de.children)||!(ia=Pe.length))return;var Pe,Ke=1/0,vt=-1/0,mt=1/0,Tt=-1/0,qt,Vt,or,Ir,Lr,Zr,ia;function la(Fa){Ke=Math.min(Fa.x-Fa.r,Ke),vt=Math.max(Fa.x+Fa.r,vt),mt=Math.min(Fa.y-Fa.r,mt),Tt=Math.max(Fa.y+Fa.r,Tt)}if(Pe.forEach(gf),qt=Pe[0],qt.x=-qt.r,qt.y=0,la(qt),ia>1&&(Vt=Pe[1],Vt.x=Vt.r,Vt.y=0,la(Vt),ia>2))for(or=Pe[2],hu(qt,Vt,or),la(or),fu(qt,or),qt._pack_prev=or,fu(or,Vt),Vt=qt._pack_next,Ir=3;IrLa.x&&(La=Ln),Ln.depth>Oa.depth&&(Oa=Ln)});var Qa=Pe(da,La)/2-da.x,on=Ke[0]/(La.x+Pe(La,da)/2+Qa),Fa=Ke[1]/(Oa.depth||1);cc(la,function(Ln){Ln.x=(Ln.x+Qa)*on,Ln.y=Ln.depth*Fa})}return ia}function Tt(Lr){for(var Zr={A:null,children:[Lr]},ia=[Zr],la;(la=ia.pop())!=null;)for(var an=la.children,da,La=0,Oa=an.length;La0&&(Wl(tc(da,Lr,ia),Lr,Ln),Oa+=Ln,Qa+=Ln),on+=da.m,Oa+=la.m,Fa+=La.m,Qa+=an.m;da&&!nl(an)&&(an.t=da,an.m+=on-Qa),la&&!Iu(La)&&(La.t=la,La.m+=Oa-Fa,ia=Lr)}return ia}function Ir(Lr){Lr.x*=Ke[0],Lr.y=Lr.depth*Ke[1]}return mt.separation=function(Lr){return arguments.length?(Pe=Lr,mt):Pe},mt.size=function(Lr){return arguments.length?(vt=(Ke=Lr)==null?Ir:null,mt):vt?null:Ke},mt.nodeSize=function(Lr){return arguments.length?(vt=(Ke=Lr)==null?null:Ir,mt):vt?Ke:null},Ys(mt,de)};function qu(de,Pe){return de.parent==Pe.parent?1:2}function Iu(de){var Pe=de.children;return Pe.length?Pe[0]:de.t}function nl(de){var Pe=de.children,Ke;return(Ke=Pe.length)?Pe[Ke-1]:de.t}function Wl(de,Pe,Ke){var vt=Ke/(Pe.i-de.i);Pe.c-=vt,Pe.s+=Ke,de.c+=vt,Pe.z+=Ke,Pe.m+=Ke}function Js(de){for(var Pe=0,Ke=0,vt=de.children,mt=vt.length,Tt;--mt>=0;)Tt=vt[mt],Tt.z+=Pe,Tt.m+=Pe,Pe+=Tt.s+(Ke+=Tt.c)}function tc(de,Pe,Ke){return de.a.parent===Pe.parent?de.a:Ke}h.layout.cluster=function(){var de=h.layout.hierarchy().sort(null).value(null),Pe=qu,Ke=[1,1],vt=!1;function mt(Tt,qt){var Vt=de.call(this,Tt,qt),or=Vt[0],Ir,Lr=0;Lu(or,function(da){var La=da.children;La&&La.length?(da.x=Hc(La),da.y=Ru(La)):(da.x=Ir?Lr+=Pe(da,Ir):0,da.y=0,Ir=da)});var Zr=Jt(or),ia=yr(or),la=Zr.x-Pe(Zr,ia)/2,an=ia.x+Pe(ia,Zr)/2;return Lu(or,vt?function(da){da.x=(da.x-or.x)*Ke[0],da.y=(or.y-da.y)*Ke[1]}:function(da){da.x=(da.x-la)/(an-la)*Ke[0],da.y=(1-(or.y?da.y/or.y:1))*Ke[1]}),Vt}return mt.separation=function(Tt){return arguments.length?(Pe=Tt,mt):Pe},mt.size=function(Tt){return arguments.length?(vt=(Ke=Tt)==null,mt):vt?null:Ke},mt.nodeSize=function(Tt){return arguments.length?(vt=(Ke=Tt)!=null,mt):vt?Ke:null},Ys(mt,de)};function Ru(de){return 1+h.max(de,function(Pe){return Pe.y})}function Hc(de){return de.reduce(function(Pe,Ke){return Pe+Ke.x},0)/de.length}function Jt(de){var Pe=de.children;return Pe&&Pe.length?Jt(Pe[0]):de}function yr(de){var Pe=de.children,Ke;return Pe&&(Ke=Pe.length)?yr(Pe[Ke-1]):de}h.layout.treemap=function(){var de=h.layout.hierarchy(),Pe=Math.round,Ke=[1,1],vt=null,mt=Kr,Tt=!1,qt,Vt="squarify",or=.5*(1+Math.sqrt(5));function Ir(da,La){for(var Oa=-1,Qa=da.length,on,Fa;++Oa0;)Qa.push(Fa=on[ai-1]),Qa.area+=Fa.area,Vt!=="squarify"||(oi=ia(Qa,Kn))<=Ln?(on.pop(),Ln=oi):(Qa.area-=Qa.pop().area,la(Qa,Kn,Oa,!1),Kn=Math.min(Oa.dx,Oa.dy),Qa.length=Qa.area=0,Ln=1/0);Qa.length&&(la(Qa,Kn,Oa,!0),Qa.length=Qa.area=0),La.forEach(Lr)}}function Zr(da){var La=da.children;if(La&&La.length){var Oa=mt(da),Qa=La.slice(),on,Fa=[];for(Ir(Qa,Oa.dx*Oa.dy/da.value),Fa.area=0;on=Qa.pop();)Fa.push(on),Fa.area+=on.area,on.z!=null&&(la(Fa,on.z?Oa.dx:Oa.dy,Oa,!Qa.length),Fa.length=Fa.area=0);La.forEach(Zr)}}function ia(da,La){for(var Oa=da.area,Qa,on=0,Fa=1/0,Ln=-1,oi=da.length;++Lnon&&(on=Qa));return Oa*=Oa,La*=La,Oa?Math.max(La*on*or/Oa,Oa/(La*Fa*or)):1/0}function la(da,La,Oa,Qa){var on=-1,Fa=da.length,Ln=Oa.x,oi=Oa.y,Kn=La?Pe(da.area/La):0,ai;if(La==Oa.dx){for((Qa||Kn>Oa.dy)&&(Kn=Oa.dy);++onOa.dx)&&(Kn=Oa.dx);++on1);return de+Pe*vt*Math.sqrt(-2*Math.log(Tt)/Tt)}},logNormal:function(){var de=h.random.normal.apply(h,arguments);return function(){return Math.exp(de())}},bates:function(de){var Pe=h.random.irwinHall(de);return function(){return Pe()/de}},irwinHall:function(de){return function(){for(var Pe=0,Ke=0;Ke2?gn:Ya,Ir=vt?Zc:pf;return mt=or(de,Pe,Ir,Ke),Tt=or(Pe,de,Ir,No),Vt}function Vt(or){return mt(or)}return Vt.invert=function(or){return Tt(or)},Vt.domain=function(or){return arguments.length?(de=or.map(Number),qt()):de},Vt.range=function(or){return arguments.length?(Pe=or,qt()):Pe},Vt.rangeRound=function(or){return Vt.range(or).interpolate($u)},Vt.clamp=function(or){return arguments.length?(vt=or,qt()):vt},Vt.interpolate=function(or){return arguments.length?(Ke=or,qt()):Ke},Vt.ticks=function(or){return Ui(de,or)},Vt.tickFormat=function(or,Ir){return d3_scale_linearTickFormat(de,or,Ir)},Vt.nice=function(or){return vn(de,or),qt()},Vt.copy=function(){return qn(de,Pe,Ke,vt)},qt()}function Sn(de,Pe){return h.rebind(de,Pe,"range","rangeRound","interpolate","clamp")}function vn(de,Pe){return En(de,Rn(ii(de,Pe)[2])),En(de,Rn(ii(de,Pe)[2])),de}function ii(de,Pe){Pe==null&&(Pe=10);var Ke=pa(de),vt=Ke[1]-Ke[0],mt=Math.pow(10,Math.floor(Math.log(vt/Pe)/Math.LN10)),Tt=Pe/vt*mt;return Tt<=.15?mt*=10:Tt<=.35?mt*=5:Tt<=.75&&(mt*=2),Ke[0]=Math.ceil(Ke[0]/mt)*mt,Ke[1]=Math.floor(Ke[1]/mt)*mt+mt*.5,Ke[2]=mt,Ke}function Ui(de,Pe){return h.range.apply(h,ii(de,Pe))}h.scale.log=function(){return Di(h.scale.linear().domain([0,1]),10,!0,[1,10])};function Di(de,Pe,Ke,vt){function mt(Vt){return(Ke?Math.log(Vt<0?0:Vt):-Math.log(Vt>0?0:-Vt))/Math.log(Pe)}function Tt(Vt){return Ke?Math.pow(Pe,Vt):-Math.pow(Pe,-Vt)}function qt(Vt){return de(mt(Vt))}return qt.invert=function(Vt){return Tt(de.invert(Vt))},qt.domain=function(Vt){return arguments.length?(Ke=Vt[0]>=0,de.domain((vt=Vt.map(Number)).map(mt)),qt):vt},qt.base=function(Vt){return arguments.length?(Pe=+Vt,de.domain(vt.map(mt)),qt):Pe},qt.nice=function(){var Vt=En(vt.map(mt),Ke?Math:Hi);return de.domain(Vt),vt=Vt.map(Tt),qt},qt.ticks=function(){var Vt=pa(vt),or=[],Ir=Vt[0],Lr=Vt[1],Zr=Math.floor(mt(Ir)),ia=Math.ceil(mt(Lr)),la=Pe%1?2:Pe;if(isFinite(ia-Zr)){if(Ke){for(;Zr0;an--)or.push(Tt(Zr)*an);for(Zr=0;or[Zr]Lr;ia--);or=or.slice(Zr,ia)}return or},qt.copy=function(){return Di(de.copy(),Pe,Ke,vt)},Sn(qt,de)}var Hi={floor:function(de){return-Math.ceil(-de)},ceil:function(de){return-Math.floor(-de)}};h.scale.pow=function(){return Vi(h.scale.linear(),1,[0,1])};function Vi(de,Pe,Ke){var vt=si(Pe),mt=si(1/Pe);function Tt(qt){return de(vt(qt))}return Tt.invert=function(qt){return mt(de.invert(qt))},Tt.domain=function(qt){return arguments.length?(de.domain((Ke=qt.map(Number)).map(vt)),Tt):Ke},Tt.ticks=function(qt){return Ui(Ke,qt)},Tt.tickFormat=function(qt,Vt){return d3_scale_linearTickFormat(Ke,qt,Vt)},Tt.nice=function(qt){return Tt.domain(vn(Ke,qt))},Tt.exponent=function(qt){return arguments.length?(vt=si(Pe=qt),mt=si(1/Pe),de.domain(Ke.map(vt)),Tt):Pe},Tt.copy=function(){return Vi(de.copy(),Pe,Ke)},Sn(Tt,de)}function si(de){return function(Pe){return Pe<0?-Math.pow(-Pe,de):Math.pow(Pe,de)}}h.scale.sqrt=function(){return h.scale.pow().exponent(.5)},h.scale.ordinal=function(){return Zn([],{t:"range",a:[[]]})};function Zn(de,Pe){var Ke,vt,mt;function Tt(Vt){return vt[((Ke.get(Vt)||(Pe.t==="range"?Ke.set(Vt,de.push(Vt)):NaN))-1)%vt.length]}function qt(Vt,or){return h.range(de.length).map(function(Ir){return Vt+or*Ir})}return Tt.domain=function(Vt){if(!arguments.length)return de;de=[],Ke=new A;for(var or=-1,Ir=Vt.length,Lr;++or0?Ke[Tt-1]:de[0],Ttia?0:1;if(Lr=Te)return or(Lr,an)+(Ir?or(Ir,1-an):"")+"Z";var da,La,Oa,Qa,on=0,Fa=0,Ln,oi,Kn,ai,Ti,ki,Go,Pi,oo=[];if((Qa=(+qt.apply(this,arguments)||0)/2)&&(Oa=vt===Ps?Math.sqrt(Ir*Ir+Lr*Lr):+vt.apply(this,arguments),an||(Fa*=-1),Lr&&(Fa=Mt(Oa/Lr*Math.sin(Qa))),Ir&&(on=Mt(Oa/Ir*Math.sin(Qa)))),Lr){Ln=Lr*Math.cos(Zr+Fa),oi=Lr*Math.sin(Zr+Fa),Kn=Lr*Math.cos(ia-Fa),ai=Lr*Math.sin(ia-Fa);var $o=Math.abs(ia-Zr-2*Fa)<=ge?0:1;if(Fa&&ql(Ln,oi,Kn,ai)===an^$o){var hl=(Zr+ia)/2;Ln=Lr*Math.cos(hl),oi=Lr*Math.sin(hl),Kn=ai=null}}else Ln=oi=0;if(Ir){Ti=Ir*Math.cos(ia-on),ki=Ir*Math.sin(ia-on),Go=Ir*Math.cos(Zr+on),Pi=Ir*Math.sin(Zr+on);var js=Math.abs(Zr-ia+2*on)<=ge?0:1;if(on&&ql(Ti,ki,Go,Pi)===1-an^js){var pi=(Zr+ia)/2;Ti=Ir*Math.cos(pi),ki=Ir*Math.sin(pi),Go=Pi=null}}else Ti=ki=0;if(la>We&&(da=Math.min(Math.abs(Lr-Ir)/2,+Ke.apply(this,arguments)))>.001){La=Ir0?0:1}function Xl(de,Pe,Ke,vt,mt){var Tt=de[0]-Pe[0],qt=de[1]-Pe[1],Vt=(mt?vt:-vt)/Math.sqrt(Tt*Tt+qt*qt),or=Vt*qt,Ir=-Vt*Tt,Lr=de[0]+or,Zr=de[1]+Ir,ia=Pe[0]+or,la=Pe[1]+Ir,an=(Lr+ia)/2,da=(Zr+la)/2,La=ia-Lr,Oa=la-Zr,Qa=La*La+Oa*Oa,on=Ke-vt,Fa=Lr*la-ia*Zr,Ln=(Oa<0?-1:1)*Math.sqrt(Math.max(0,on*on*Qa-Fa*Fa)),oi=(Fa*Oa-La*Ln)/Qa,Kn=(-Fa*La-Oa*Ln)/Qa,ai=(Fa*Oa+La*Ln)/Qa,Ti=(-Fa*La+Oa*Ln)/Qa,ki=oi-an,Go=Kn-da,Pi=ai-an,oo=Ti-da;return ki*ki+Go*Go>Pi*Pi+oo*oo&&(oi=ai,Kn=Ti),[[oi-or,Kn-Ir],[oi*Ke/on,Kn*Ke/on]]}function oc(){return!0}function Gl(de){var Pe=vi,Ke=Ei,vt=oc,mt=ll,Tt=mt.key,qt=.7;function Vt(or){var Ir=[],Lr=[],Zr=-1,ia=or.length,la,an=pt(Pe),da=pt(Ke);function La(){Ir.push("M",mt(de(Lr),qt))}for(;++Zr1?de.join("L"):de+"Z"}function Hu(de){return de.join("L")+"Z"}function Wi(de){for(var Pe=0,Ke=de.length,vt=de[0],mt=[vt[0],",",vt[1]];++Pe1&&mt.push("H",vt[0]),mt.join("")}function no(de){for(var Pe=0,Ke=de.length,vt=de[0],mt=[vt[0],",",vt[1]];++Pe1){Vt=Pe[1],Tt=de[or],or++,vt+="C"+(mt[0]+qt[0])+","+(mt[1]+qt[1])+","+(Tt[0]-Vt[0])+","+(Tt[1]-Vt[1])+","+Tt[0]+","+Tt[1];for(var Ir=2;Ir9&&(Tt=Ke*3/Math.sqrt(Tt),qt[Vt]=Tt*vt,qt[Vt+1]=Tt*mt));for(Vt=-1;++Vt<=or;)Tt=(de[Math.min(or,Vt+1)][0]-de[Math.max(0,Vt-1)][0])/(6*(1+qt[Vt]*qt[Vt])),Pe.push([Tt||0,qt[Vt]*Tt||0]);return Pe}function Ye(de){return de.length<3?ll(de):de[0]+P(de,Ve(de))}h.svg.line.radial=function(){var de=Gl(it);return de.radius=de.x,delete de.x,de.angle=de.y,delete de.y,de};function it(de){for(var Pe,Ke=-1,vt=de.length,mt,Tt;++Kege)+",1 "+Zr}function Ir(Lr,Zr,ia,la){return"Q 0,0 "+la}return Tt.radius=function(Lr){return arguments.length?(Ke=pt(Lr),Tt):Ke},Tt.source=function(Lr){return arguments.length?(de=pt(Lr),Tt):de},Tt.target=function(Lr){return arguments.length?(Pe=pt(Lr),Tt):Pe},Tt.startAngle=function(Lr){return arguments.length?(vt=pt(Lr),Tt):vt},Tt.endAngle=function(Lr){return arguments.length?(mt=pt(Lr),Tt):mt},Tt};function Lt(de){return de.radius}h.svg.diagonal=function(){var de=St,Pe=yt,Ke=nr;function vt(mt,Tt){var qt=de.call(this,mt,Tt),Vt=Pe.call(this,mt,Tt),or=(qt.y+Vt.y)/2,Ir=[qt,{x:qt.x,y:or},{x:Vt.x,y:or},Vt];return Ir=Ir.map(Ke),"M"+Ir[0]+"C"+Ir[1]+" "+Ir[2]+" "+Ir[3]}return vt.source=function(mt){return arguments.length?(de=pt(mt),vt):de},vt.target=function(mt){return arguments.length?(Pe=pt(mt),vt):Pe},vt.projection=function(mt){return arguments.length?(Ke=mt,vt):Ke},vt};function nr(de){return[de.x,de.y]}h.svg.diagonal.radial=function(){var de=h.svg.diagonal(),Pe=nr,Ke=de.projection;return de.projection=function(vt){return arguments.length?Ke(cr(Pe=vt)):Pe},de};function cr(de){return function(){var Pe=de.apply(this,arguments),Ke=Pe[0],vt=Pe[1]-Ue;return[Ke*Math.cos(vt),Ke*Math.sin(vt)]}}h.svg.symbol=function(){var de=Pr,Pe=gr;function Ke(vt,mt){return(oa.get(de.call(this,vt,mt))||Vr)(Pe.call(this,vt,mt))}return Ke.type=function(vt){return arguments.length?(de=pt(vt),Ke):de},Ke.size=function(vt){return arguments.length?(Pe=pt(vt),Ke):Pe},Ke};function gr(){return 64}function Pr(){return"circle"}function Vr(de){var Pe=Math.sqrt(de/ge);return"M0,"+Pe+"A"+Pe+","+Pe+" 0 1,1 0,"+-Pe+"A"+Pe+","+Pe+" 0 1,1 0,"+Pe+"Z"}var oa=h.map({circle:Vr,cross:function(de){var Pe=Math.sqrt(de/5)/2;return"M"+-3*Pe+","+-Pe+"H"+-Pe+"V"+-3*Pe+"H"+Pe+"V"+-Pe+"H"+3*Pe+"V"+Pe+"H"+Pe+"V"+3*Pe+"H"+-Pe+"V"+Pe+"H"+-3*Pe+"Z"},diamond:function(de){var Pe=Math.sqrt(de/(2*Aa)),Ke=Pe*Aa;return"M0,"+-Pe+"L"+Ke+",0 0,"+Pe+" "+-Ke+",0Z"},square:function(de){var Pe=Math.sqrt(de)/2;return"M"+-Pe+","+-Pe+"L"+Pe+","+-Pe+" "+Pe+","+Pe+" "+-Pe+","+Pe+"Z"},"triangle-down":function(de){var Pe=Math.sqrt(de/ca),Ke=Pe*ca/2;return"M0,"+Ke+"L"+Pe+","+-Ke+" "+-Pe+","+-Ke+"Z"},"triangle-up":function(de){var Pe=Math.sqrt(de/ca),Ke=Pe*ca/2;return"M0,"+-Ke+"L"+Pe+","+Ke+" "+-Pe+","+Ke+"Z"}});h.svg.symbolTypes=oa.keys();var ca=Math.sqrt(3),Aa=Math.tan(30*Xe);Q.transition=function(de){for(var Pe=Si||++li,Ke=Wo(de),vt=[],mt,Tt,qt=yi||{time:Date.now(),ease:zi,delay:0,duration:250},Vt=-1,or=this.length;++Vt0;)Zr[--Qa].call(de,Oa);if(La>=1)return qt.event&&qt.event.end.call(de,de.__data__,Pe),--Tt.count?delete Tt[vt]:delete de[Ke],1}qt||(Vt=mt.time,or=en(ia,0,Vt),qt=Tt[vt]={tween:new A,time:Vt,timer:or,delay:mt.delay,duration:mt.duration,ease:mt.ease,index:Pe},mt=null,++Tt.count)}h.svg.axis=function(){var de=h.scale.linear(),Pe=Jo,Ke=6,vt=6,mt=3,Tt=[10],qt=null,Vt;function or(Ir){Ir.each(function(){var Lr=h.select(this),Zr=this.__chart__||de,ia=this.__chart__=de.copy(),la=qt??(ia.ticks?ia.ticks.apply(ia,Tt):ia.domain()),an=Vt??(ia.tickFormat?ia.tickFormat.apply(ia,Tt):F),da=Lr.selectAll(".tick").data(la,ia),La=da.enter().insert("g",".domain").attr("class","tick").style("opacity",We),Oa=h.transition(da.exit()).style("opacity",We).remove(),Qa=h.transition(da.order()).style("opacity",1),on=Math.max(Ke,0)+mt,Fa,Ln=Ja(ia),oi=Lr.selectAll(".domain").data([0]),Kn=(oi.enter().append("path").attr("class","domain"),h.transition(oi));La.append("line"),La.append("text");var ai=La.select("line"),Ti=Qa.select("line"),ki=da.select("text").text(an),Go=La.select("text"),Pi=Qa.select("text"),oo=Pe==="top"||Pe==="left"?-1:1,$o,hl,js,pi;if(Pe==="bottom"||Pe==="top"?(Fa=Gs,$o="x",js="y",hl="x2",pi="y2",ki.attr("dy",oo<0?"0em":".71em").style("text-anchor","middle"),Kn.attr("d","M"+Ln[0]+","+oo*vt+"V0H"+Ln[1]+"V"+oo*vt)):(Fa=Mo,$o="y",js="x",hl="y2",pi="x2",ki.attr("dy",".32em").style("text-anchor",oo<0?"end":"start"),Kn.attr("d","M"+oo*vt+","+Ln[0]+"H0V"+Ln[1]+"H"+oo*vt)),ai.attr(pi,oo*Ke),Go.attr(js,oo*on),Ti.attr(hl,0).attr(pi,oo*Ke),Pi.attr($o,0).attr(js,oo*on),ia.rangeBand){var ko=ia,Xo=ko.rangeBand()/2;Zr=ia=function(Os){return ko(Os)+Xo}}else Zr.rangeBand?Zr=ia:Oa.call(Fa,ia,Zr);La.call(Fa,Zr,ia),Qa.call(Fa,ia,ia)})}return or.scale=function(Ir){return arguments.length?(de=Ir,or):de},or.orient=function(Ir){return arguments.length?(Pe=Ir in Qs?Ir+"":Jo,or):Pe},or.ticks=function(){return arguments.length?(Tt=S(arguments),or):Tt},or.tickValues=function(Ir){return arguments.length?(qt=Ir,or):qt},or.tickFormat=function(Ir){return arguments.length?(Vt=Ir,or):Vt},or.tickSize=function(Ir){var Lr=arguments.length;return Lr?(Ke=+Ir,vt=+arguments[Lr-1],or):Ke},or.innerTickSize=function(Ir){return arguments.length?(Ke=+Ir,or):Ke},or.outerTickSize=function(Ir){return arguments.length?(vt=+Ir,or):vt},or.tickPadding=function(Ir){return arguments.length?(mt=+Ir,or):mt},or.tickSubdivide=function(){return arguments.length&&or},or};var Jo="bottom",Qs={top:1,right:1,bottom:1,left:1};function Gs(de,Pe,Ke){de.attr("transform",function(vt){var mt=Pe(vt);return"translate("+(isFinite(mt)?mt:Ke(vt))+",0)"})}function Mo(de,Pe,Ke){de.attr("transform",function(vt){var mt=Pe(vt);return"translate(0,"+(isFinite(mt)?mt:Ke(vt))+")"})}h.svg.brush=function(){var de=oe(Lr,"brushstart","brush","brushend"),Pe=null,Ke=null,vt=[0,0],mt=[0,0],Tt,qt,Vt=!0,or=!0,Ir=fl[0];function Lr(da){da.each(function(){var La=h.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",an).on("touchstart.brush",an),Oa=La.selectAll(".background").data([0]);Oa.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),La.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var Qa=La.selectAll(".resize").data(Ir,F);Qa.exit().remove(),Qa.enter().append("g").attr("class",function(oi){return"resize "+oi}).style("cursor",function(oi){return Eo[oi]}).append("rect").attr("x",function(oi){return/[ew]$/.test(oi)?-3:null}).attr("y",function(oi){return/^[ns]/.test(oi)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),Qa.style("display",Lr.empty()?"none":null);var on=h.transition(La),Fa=h.transition(Oa),Ln;Pe&&(Ln=Ja(Pe),Fa.attr("x",Ln[0]).attr("width",Ln[1]-Ln[0]),ia(on)),Ke&&(Ln=Ja(Ke),Fa.attr("y",Ln[0]).attr("height",Ln[1]-Ln[0]),la(on)),Zr(on)})}Lr.event=function(da){da.each(function(){var La=de.of(this,arguments),Oa={x:vt,y:mt,i:Tt,j:qt},Qa=this.__chart__||Oa;this.__chart__=Oa,Si?h.select(this).transition().each("start.brush",function(){Tt=Qa.i,qt=Qa.j,vt=Qa.x,mt=Qa.y,La({type:"brushstart"})}).tween("brush:brush",function(){var on=As(vt,Oa.x),Fa=As(mt,Oa.y);return Tt=qt=null,function(Ln){vt=Oa.x=on(Ln),mt=Oa.y=Fa(Ln),La({type:"brush",mode:"resize"})}}).each("end.brush",function(){Tt=Oa.i,qt=Oa.j,La({type:"brush",mode:"resize"}),La({type:"brushend"})}):(La({type:"brushstart"}),La({type:"brush",mode:"resize"}),La({type:"brushend"}))})};function Zr(da){da.selectAll(".resize").attr("transform",function(La){return"translate("+vt[+/e$/.test(La)]+","+mt[+/^s/.test(La)]+")"})}function ia(da){da.select(".extent").attr("x",vt[0]),da.selectAll(".extent,.n>rect,.s>rect").attr("width",vt[1]-vt[0])}function la(da){da.select(".extent").attr("y",mt[0]),da.selectAll(".extent,.e>rect,.w>rect").attr("height",mt[1]-mt[0])}function an(){var da=this,La=h.select(h.event.target),Oa=de.of(da,arguments),Qa=h.select(da),on=La.datum(),Fa=!/^(n|s)$/.test(on)&&Pe,Ln=!/^(e|w)$/.test(on)&&Ke,oi=La.classed("extent"),Kn=hr(da),ai,Ti=h.mouse(da),ki,Go=h.select(t(da)).on("keydown.brush",$o).on("keyup.brush",hl);if(h.event.changedTouches?Go.on("touchmove.brush",js).on("touchend.brush",ko):Go.on("mousemove.brush",js).on("mouseup.brush",ko),Qa.interrupt().selectAll("*").interrupt(),oi)Ti[0]=vt[0]-Ti[0],Ti[1]=mt[0]-Ti[1];else if(on){var Pi=+/w$/.test(on),oo=+/^n/.test(on);ki=[vt[1-Pi]-Ti[0],mt[1-oo]-Ti[1]],Ti[0]=vt[Pi],Ti[1]=mt[oo]}else h.event.altKey&&(ai=Ti.slice());Qa.style("pointer-events","none").selectAll(".resize").style("display",null),h.select("body").style("cursor",La.style("cursor")),Oa({type:"brushstart"}),js();function $o(){h.event.keyCode==32&&(oi||(ai=null,Ti[0]-=vt[1],Ti[1]-=mt[1],oi=2),ee())}function hl(){h.event.keyCode==32&&oi==2&&(Ti[0]+=vt[1],Ti[1]+=mt[1],oi=0,ee())}function js(){var Xo=h.mouse(da),Os=!1;ki&&(Xo[0]+=ki[0],Xo[1]+=ki[1]),oi||(h.event.altKey?(ai||(ai=[(vt[0]+vt[1])/2,(mt[0]+mt[1])/2]),Ti[0]=vt[+(Xo[0]0))return Wt;do Wt.push(dr=new Date(+Et)),De(Et,jt),he(Et);while(dr=Ct)for(;he(Ct),!Et(Ct);)Ct.setTime(Ct-1)},function(Ct,jt){if(Ct>=Ct)if(jt<0)for(;++jt<=0;)for(;De(Ct,-1),!Et(Ct););else for(;--jt>=0;)for(;De(Ct,1),!Et(Ct););})},tt&&($e.count=function(Et,Ct){return b.setTime(+Et),S.setTime(+Ct),he(b),he(S),Math.floor(tt(b,S))},$e.every=function(Et){return Et=Math.floor(Et),!isFinite(Et)||!(Et>0)?null:Et>1?$e.filter(nt?function(Ct){return nt(Ct)%Et===0}:function(Ct){return $e.count(0,Ct)%Et===0}):$e}),$e}var e=E(function(){},function(he,De){he.setTime(+he+De)},function(he,De){return De-he});e.every=function(he){return he=Math.floor(he),!isFinite(he)||!(he>0)?null:he>1?E(function(De){De.setTime(Math.floor(De/he)*he)},function(De,tt){De.setTime(+De+tt*he)},function(De,tt){return(tt-De)/he}):e};var t=e.range,r=1e3,o=6e4,a=36e5,i=864e5,n=6048e5,s=E(function(he){he.setTime(he-he.getMilliseconds())},function(he,De){he.setTime(+he+De*r)},function(he,De){return(De-he)/r},function(he){return he.getUTCSeconds()}),f=s.range,c=E(function(he){he.setTime(he-he.getMilliseconds()-he.getSeconds()*r)},function(he,De){he.setTime(+he+De*o)},function(he,De){return(De-he)/o},function(he){return he.getMinutes()}),p=c.range,d=E(function(he){he.setTime(he-he.getMilliseconds()-he.getSeconds()*r-he.getMinutes()*o)},function(he,De){he.setTime(+he+De*a)},function(he,De){return(De-he)/a},function(he){return he.getHours()}),T=d.range,l=E(function(he){he.setHours(0,0,0,0)},function(he,De){he.setDate(he.getDate()+De)},function(he,De){return(De-he-(De.getTimezoneOffset()-he.getTimezoneOffset())*o)/i},function(he){return he.getDate()-1}),g=l.range;function x(he){return E(function(De){De.setDate(De.getDate()-(De.getDay()+7-he)%7),De.setHours(0,0,0,0)},function(De,tt){De.setDate(De.getDate()+tt*7)},function(De,tt){return(tt-De-(tt.getTimezoneOffset()-De.getTimezoneOffset())*o)/n})}var A=x(0),M=x(1),_=x(2),w=x(3),m=x(4),u=x(5),v=x(6),y=A.range,R=M.range,L=_.range,z=w.range,F=m.range,B=u.range,O=v.range,I=E(function(he){he.setDate(1),he.setHours(0,0,0,0)},function(he,De){he.setMonth(he.getMonth()+De)},function(he,De){return De.getMonth()-he.getMonth()+(De.getFullYear()-he.getFullYear())*12},function(he){return he.getMonth()}),N=I.range,U=E(function(he){he.setMonth(0,1),he.setHours(0,0,0,0)},function(he,De){he.setFullYear(he.getFullYear()+De)},function(he,De){return De.getFullYear()-he.getFullYear()},function(he){return he.getFullYear()});U.every=function(he){return!isFinite(he=Math.floor(he))||!(he>0)?null:E(function(De){De.setFullYear(Math.floor(De.getFullYear()/he)*he),De.setMonth(0,1),De.setHours(0,0,0,0)},function(De,tt){De.setFullYear(De.getFullYear()+tt*he)})};var X=U.range,ee=E(function(he){he.setUTCSeconds(0,0)},function(he,De){he.setTime(+he+De*o)},function(he,De){return(De-he)/o},function(he){return he.getUTCMinutes()}),ue=ee.range,oe=E(function(he){he.setUTCMinutes(0,0,0)},function(he,De){he.setTime(+he+De*a)},function(he,De){return(De-he)/a},function(he){return he.getUTCHours()}),le=oe.range,V=E(function(he){he.setUTCHours(0,0,0,0)},function(he,De){he.setUTCDate(he.getUTCDate()+De)},function(he,De){return(De-he)/i},function(he){return he.getUTCDate()-1}),J=V.range;function te(he){return E(function(De){De.setUTCDate(De.getUTCDate()-(De.getUTCDay()+7-he)%7),De.setUTCHours(0,0,0,0)},function(De,tt){De.setUTCDate(De.getUTCDate()+tt*7)},function(De,tt){return(tt-De)/n})}var Z=te(0),se=te(1),Q=te(2),q=te(3),re=te(4),ae=te(5),fe=te(6),be=Z.range,Me=se.range,Ie=Q.range,Le=q.range,je=re.range,et=ae.range,rt=fe.range,Je=E(function(he){he.setUTCDate(1),he.setUTCHours(0,0,0,0)},function(he,De){he.setUTCMonth(he.getUTCMonth()+De)},function(he,De){return De.getUTCMonth()-he.getUTCMonth()+(De.getUTCFullYear()-he.getUTCFullYear())*12},function(he){return he.getUTCMonth()}),Ze=Je.range,Ee=E(function(he){he.setUTCMonth(0,1),he.setUTCHours(0,0,0,0)},function(he,De){he.setUTCFullYear(he.getUTCFullYear()+De)},function(he,De){return De.getUTCFullYear()-he.getUTCFullYear()},function(he){return he.getUTCFullYear()});Ee.every=function(he){return!isFinite(he=Math.floor(he))||!(he>0)?null:E(function(De){De.setUTCFullYear(Math.floor(De.getUTCFullYear()/he)*he),De.setUTCMonth(0,1),De.setUTCHours(0,0,0,0)},function(De,tt){De.setUTCFullYear(De.getUTCFullYear()+tt*he)})};var xe=Ee.range;h.timeDay=l,h.timeDays=g,h.timeFriday=u,h.timeFridays=B,h.timeHour=d,h.timeHours=T,h.timeInterval=E,h.timeMillisecond=e,h.timeMilliseconds=t,h.timeMinute=c,h.timeMinutes=p,h.timeMonday=M,h.timeMondays=R,h.timeMonth=I,h.timeMonths=N,h.timeSaturday=v,h.timeSaturdays=O,h.timeSecond=s,h.timeSeconds=f,h.timeSunday=A,h.timeSundays=y,h.timeThursday=m,h.timeThursdays=F,h.timeTuesday=_,h.timeTuesdays=L,h.timeWednesday=w,h.timeWednesdays=z,h.timeWeek=A,h.timeWeeks=y,h.timeYear=U,h.timeYears=X,h.utcDay=V,h.utcDays=J,h.utcFriday=ae,h.utcFridays=et,h.utcHour=oe,h.utcHours=le,h.utcMillisecond=e,h.utcMilliseconds=t,h.utcMinute=ee,h.utcMinutes=ue,h.utcMonday=se,h.utcMondays=Me,h.utcMonth=Je,h.utcMonths=Ze,h.utcSaturday=fe,h.utcSaturdays=rt,h.utcSecond=s,h.utcSeconds=f,h.utcSunday=Z,h.utcSundays=be,h.utcThursday=re,h.utcThursdays=je,h.utcTuesday=Q,h.utcTuesdays=Ie,h.utcWednesday=q,h.utcWednesdays=Le,h.utcWeek=Z,h.utcWeeks=be,h.utcYear=Ee,h.utcYears=xe,Object.defineProperty(h,"__esModule",{value:!0})})}}),bo=He({"node_modules/d3-time-format/dist/d3-time-format.js"(Y,G){(function(h,b){typeof Y=="object"&&typeof G<"u"?b(Y,nc()):(h=h||self,b(h.d3=h.d3||{},h.d3))})(Y,function(h,b){function S(Fe){if(0<=Fe.y&&Fe.y<100){var We=new Date(-1,Fe.m,Fe.d,Fe.H,Fe.M,Fe.S,Fe.L);return We.setFullYear(Fe.y),We}return new Date(Fe.y,Fe.m,Fe.d,Fe.H,Fe.M,Fe.S,Fe.L)}function E(Fe){if(0<=Fe.y&&Fe.y<100){var We=new Date(Date.UTC(-1,Fe.m,Fe.d,Fe.H,Fe.M,Fe.S,Fe.L));return We.setUTCFullYear(Fe.y),We}return new Date(Date.UTC(Fe.y,Fe.m,Fe.d,Fe.H,Fe.M,Fe.S,Fe.L))}function e(Fe,We,Ae){return{y:Fe,m:We,d:Ae,H:0,M:0,S:0,L:0}}function t(Fe){var We=Fe.dateTime,Ae=Fe.date,ge=Fe.time,pe=Fe.periods,Te=Fe.days,Ue=Fe.shortDays,Xe=Fe.months,bt=Fe.shortMonths,xt=f(pe),Mt=c(pe),Nt=f(Te),sr=c(Te),ar=f(Ue),tr=c(Ue),Tr=f(Xe),sa=c(Xe),Ea=f(bt),ba=c(bt),Ia={a:Ha,A:Va,b:Za,B:rn,c:null,d:I,e:I,f:ue,H:N,I:U,j:X,L:ee,m:oe,M:le,p:wa,q:Bn,Q:Ct,s:jt,S:V,u:J,U:te,V:Z,w:se,W:Q,x:null,X:null,y:q,Y:re,Z:ae,"%":Et},Ra={a:Hn,A:At,b:ft,B:pr,c:null,d:fe,e:fe,f:je,H:be,I:Me,j:Ie,L:Le,m:et,M:rt,p:Sr,q:Er,Q:Ct,s:jt,S:Je,u:Ze,U:Ee,V:xe,w:he,W:De,x:null,X:null,y:tt,Y:nt,Z:$e,"%":Et},ya={a:Zt,A:$t,b:Cr,B:qr,c:Jr,d:m,e:m,f:z,H:v,I:v,j:u,L,m:w,M:y,p:It,q:_,Q:B,s:O,S:R,u:d,U:T,V:l,w:p,W:g,x:aa,X:Ca,y:A,Y:x,Z:M,"%":F};Ia.x=tn(Ae,Ia),Ia.X=tn(ge,Ia),Ia.c=tn(We,Ia),Ra.x=tn(Ae,Ra),Ra.X=tn(ge,Ra),Ra.c=tn(We,Ra);function tn(_r,Mr){return function(Gr){var Fr=[],pt=-1,Kt=0,xr=_r.length,Hr,fa,xa;for(Gr instanceof Date||(Gr=new Date(+Gr));++pt53)return null;"w"in Fr||(Fr.w=1),"Z"in Fr?(Kt=E(e(Fr.y,0,1)),xr=Kt.getUTCDay(),Kt=xr>4||xr===0?b.utcMonday.ceil(Kt):b.utcMonday(Kt),Kt=b.utcDay.offset(Kt,(Fr.V-1)*7),Fr.y=Kt.getUTCFullYear(),Fr.m=Kt.getUTCMonth(),Fr.d=Kt.getUTCDate()+(Fr.w+6)%7):(Kt=S(e(Fr.y,0,1)),xr=Kt.getDay(),Kt=xr>4||xr===0?b.timeMonday.ceil(Kt):b.timeMonday(Kt),Kt=b.timeDay.offset(Kt,(Fr.V-1)*7),Fr.y=Kt.getFullYear(),Fr.m=Kt.getMonth(),Fr.d=Kt.getDate()+(Fr.w+6)%7)}else("W"in Fr||"U"in Fr)&&("w"in Fr||(Fr.w="u"in Fr?Fr.u%7:"W"in Fr?1:0),xr="Z"in Fr?E(e(Fr.y,0,1)).getUTCDay():S(e(Fr.y,0,1)).getDay(),Fr.m=0,Fr.d="W"in Fr?(Fr.w+6)%7+Fr.W*7-(xr+5)%7:Fr.w+Fr.U*7-(xr+6)%7);return"Z"in Fr?(Fr.H+=Fr.Z/100|0,Fr.M+=Fr.Z%100,E(Fr)):S(Fr)}}function Yt(_r,Mr,Gr,Fr){for(var pt=0,Kt=Mr.length,xr=Gr.length,Hr,fa;pt=xr)return-1;if(Hr=Mr.charCodeAt(pt++),Hr===37){if(Hr=Mr.charAt(pt++),fa=ya[Hr in r?Mr.charAt(pt++):Hr],!fa||(Fr=fa(_r,Gr,Fr))<0)return-1}else if(Hr!=Gr.charCodeAt(Fr++))return-1}return Fr}function It(_r,Mr,Gr){var Fr=xt.exec(Mr.slice(Gr));return Fr?(_r.p=Mt[Fr[0].toLowerCase()],Gr+Fr[0].length):-1}function Zt(_r,Mr,Gr){var Fr=ar.exec(Mr.slice(Gr));return Fr?(_r.w=tr[Fr[0].toLowerCase()],Gr+Fr[0].length):-1}function $t(_r,Mr,Gr){var Fr=Nt.exec(Mr.slice(Gr));return Fr?(_r.w=sr[Fr[0].toLowerCase()],Gr+Fr[0].length):-1}function Cr(_r,Mr,Gr){var Fr=Ea.exec(Mr.slice(Gr));return Fr?(_r.m=ba[Fr[0].toLowerCase()],Gr+Fr[0].length):-1}function qr(_r,Mr,Gr){var Fr=Tr.exec(Mr.slice(Gr));return Fr?(_r.m=sa[Fr[0].toLowerCase()],Gr+Fr[0].length):-1}function Jr(_r,Mr,Gr){return Yt(_r,We,Mr,Gr)}function aa(_r,Mr,Gr){return Yt(_r,Ae,Mr,Gr)}function Ca(_r,Mr,Gr){return Yt(_r,ge,Mr,Gr)}function Ha(_r){return Ue[_r.getDay()]}function Va(_r){return Te[_r.getDay()]}function Za(_r){return bt[_r.getMonth()]}function rn(_r){return Xe[_r.getMonth()]}function wa(_r){return pe[+(_r.getHours()>=12)]}function Bn(_r){return 1+~~(_r.getMonth()/3)}function Hn(_r){return Ue[_r.getUTCDay()]}function At(_r){return Te[_r.getUTCDay()]}function ft(_r){return bt[_r.getUTCMonth()]}function pr(_r){return Xe[_r.getUTCMonth()]}function Sr(_r){return pe[+(_r.getUTCHours()>=12)]}function Er(_r){return 1+~~(_r.getUTCMonth()/3)}return{format:function(_r){var Mr=tn(_r+="",Ia);return Mr.toString=function(){return _r},Mr},parse:function(_r){var Mr=mn(_r+="",!1);return Mr.toString=function(){return _r},Mr},utcFormat:function(_r){var Mr=tn(_r+="",Ra);return Mr.toString=function(){return _r},Mr},utcParse:function(_r){var Mr=mn(_r+="",!0);return Mr.toString=function(){return _r},Mr}}}var r={"-":"",_:" ",0:"0"},o=/^\s*\d+/,a=/^%/,i=/[\\^$*+?|[\]().{}]/g;function n(Fe,We,Ae){var ge=Fe<0?"-":"",pe=(ge?-Fe:Fe)+"",Te=pe.length;return ge+(Te68?1900:2e3),Ae+ge[0].length):-1}function M(Fe,We,Ae){var ge=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(We.slice(Ae,Ae+6));return ge?(Fe.Z=ge[1]?0:-(ge[2]+(ge[3]||"00")),Ae+ge[0].length):-1}function _(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+1));return ge?(Fe.q=ge[0]*3-3,Ae+ge[0].length):-1}function w(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+2));return ge?(Fe.m=ge[0]-1,Ae+ge[0].length):-1}function m(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+2));return ge?(Fe.d=+ge[0],Ae+ge[0].length):-1}function u(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+3));return ge?(Fe.m=0,Fe.d=+ge[0],Ae+ge[0].length):-1}function v(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+2));return ge?(Fe.H=+ge[0],Ae+ge[0].length):-1}function y(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+2));return ge?(Fe.M=+ge[0],Ae+ge[0].length):-1}function R(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+2));return ge?(Fe.S=+ge[0],Ae+ge[0].length):-1}function L(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+3));return ge?(Fe.L=+ge[0],Ae+ge[0].length):-1}function z(Fe,We,Ae){var ge=o.exec(We.slice(Ae,Ae+6));return ge?(Fe.L=Math.floor(ge[0]/1e3),Ae+ge[0].length):-1}function F(Fe,We,Ae){var ge=a.exec(We.slice(Ae,Ae+1));return ge?Ae+ge[0].length:-1}function B(Fe,We,Ae){var ge=o.exec(We.slice(Ae));return ge?(Fe.Q=+ge[0],Ae+ge[0].length):-1}function O(Fe,We,Ae){var ge=o.exec(We.slice(Ae));return ge?(Fe.s=+ge[0],Ae+ge[0].length):-1}function I(Fe,We){return n(Fe.getDate(),We,2)}function N(Fe,We){return n(Fe.getHours(),We,2)}function U(Fe,We){return n(Fe.getHours()%12||12,We,2)}function X(Fe,We){return n(1+b.timeDay.count(b.timeYear(Fe),Fe),We,3)}function ee(Fe,We){return n(Fe.getMilliseconds(),We,3)}function ue(Fe,We){return ee(Fe,We)+"000"}function oe(Fe,We){return n(Fe.getMonth()+1,We,2)}function le(Fe,We){return n(Fe.getMinutes(),We,2)}function V(Fe,We){return n(Fe.getSeconds(),We,2)}function J(Fe){var We=Fe.getDay();return We===0?7:We}function te(Fe,We){return n(b.timeSunday.count(b.timeYear(Fe)-1,Fe),We,2)}function Z(Fe,We){var Ae=Fe.getDay();return Fe=Ae>=4||Ae===0?b.timeThursday(Fe):b.timeThursday.ceil(Fe),n(b.timeThursday.count(b.timeYear(Fe),Fe)+(b.timeYear(Fe).getDay()===4),We,2)}function se(Fe){return Fe.getDay()}function Q(Fe,We){return n(b.timeMonday.count(b.timeYear(Fe)-1,Fe),We,2)}function q(Fe,We){return n(Fe.getFullYear()%100,We,2)}function re(Fe,We){return n(Fe.getFullYear()%1e4,We,4)}function ae(Fe){var We=Fe.getTimezoneOffset();return(We>0?"-":(We*=-1,"+"))+n(We/60|0,"0",2)+n(We%60,"0",2)}function fe(Fe,We){return n(Fe.getUTCDate(),We,2)}function be(Fe,We){return n(Fe.getUTCHours(),We,2)}function Me(Fe,We){return n(Fe.getUTCHours()%12||12,We,2)}function Ie(Fe,We){return n(1+b.utcDay.count(b.utcYear(Fe),Fe),We,3)}function Le(Fe,We){return n(Fe.getUTCMilliseconds(),We,3)}function je(Fe,We){return Le(Fe,We)+"000"}function et(Fe,We){return n(Fe.getUTCMonth()+1,We,2)}function rt(Fe,We){return n(Fe.getUTCMinutes(),We,2)}function Je(Fe,We){return n(Fe.getUTCSeconds(),We,2)}function Ze(Fe){var We=Fe.getUTCDay();return We===0?7:We}function Ee(Fe,We){return n(b.utcSunday.count(b.utcYear(Fe)-1,Fe),We,2)}function xe(Fe,We){var Ae=Fe.getUTCDay();return Fe=Ae>=4||Ae===0?b.utcThursday(Fe):b.utcThursday.ceil(Fe),n(b.utcThursday.count(b.utcYear(Fe),Fe)+(b.utcYear(Fe).getUTCDay()===4),We,2)}function he(Fe){return Fe.getUTCDay()}function De(Fe,We){return n(b.utcMonday.count(b.utcYear(Fe)-1,Fe),We,2)}function tt(Fe,We){return n(Fe.getUTCFullYear()%100,We,2)}function nt(Fe,We){return n(Fe.getUTCFullYear()%1e4,We,4)}function $e(){return"+0000"}function Et(){return"%"}function Ct(Fe){return+Fe}function jt(Fe){return Math.floor(+Fe/1e3)}var Wt;dr({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function dr(Fe){return Wt=t(Fe),h.timeFormat=Wt.format,h.timeParse=Wt.parse,h.utcFormat=Wt.utcFormat,h.utcParse=Wt.utcParse,Wt}var vr="%Y-%m-%dT%H:%M:%S.%LZ";function Dr(Fe){return Fe.toISOString()}var hr=Date.prototype.toISOString?Dr:h.utcFormat(vr);function Ar(Fe){var We=new Date(Fe);return isNaN(We)?null:We}var gt=+new Date("2000-01-01T00:00:00.000Z")?Ar:h.utcParse(vr);h.isoFormat=hr,h.isoParse=gt,h.timeFormatDefaultLocale=dr,h.timeFormatLocale=t,Object.defineProperty(h,"__esModule",{value:!0})})}}),Fc=He({"node_modules/d3-format/dist/d3-format.js"(Y,G){(function(h,b){typeof Y=="object"&&typeof G<"u"?b(Y):(h=typeof globalThis<"u"?globalThis:h||self,b(h.d3=h.d3||{}))})(Y,function(h){function b(w){return Math.abs(w=Math.round(w))>=1e21?w.toLocaleString("en").replace(/,/g,""):w.toString(10)}function S(w,m){if((u=(w=m?w.toExponential(m-1):w.toExponential()).indexOf("e"))<0)return null;var u,v=w.slice(0,u);return[v.length>1?v[0]+v.slice(2):v,+w.slice(u+1)]}function E(w){return w=S(Math.abs(w)),w?w[1]:NaN}function e(w,m){return function(u,v){for(var y=u.length,R=[],L=0,z=w[0],F=0;y>0&&z>0&&(F+z+1>v&&(z=Math.max(1,v-F)),R.push(u.substring(y-=z,y+z)),!((F+=z+1)>v));)z=w[L=(L+1)%w.length];return R.reverse().join(m)}}function t(w){return function(m){return m.replace(/[0-9]/g,function(u){return w[+u]})}}var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(w){if(!(m=r.exec(w)))throw new Error("invalid format: "+w);var m;return new a({fill:m[1],align:m[2],sign:m[3],symbol:m[4],zero:m[5],width:m[6],comma:m[7],precision:m[8]&&m[8].slice(1),trim:m[9],type:m[10]})}o.prototype=a.prototype;function a(w){this.fill=w.fill===void 0?" ":w.fill+"",this.align=w.align===void 0?">":w.align+"",this.sign=w.sign===void 0?"-":w.sign+"",this.symbol=w.symbol===void 0?"":w.symbol+"",this.zero=!!w.zero,this.width=w.width===void 0?void 0:+w.width,this.comma=!!w.comma,this.precision=w.precision===void 0?void 0:+w.precision,this.trim=!!w.trim,this.type=w.type===void 0?"":w.type+""}a.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function i(w){e:for(var m=w.length,u=1,v=-1,y;u0&&(v=0);break}return v>0?w.slice(0,v)+w.slice(y+1):w}var n;function s(w,m){var u=S(w,m);if(!u)return w+"";var v=u[0],y=u[1],R=y-(n=Math.max(-8,Math.min(8,Math.floor(y/3)))*3)+1,L=v.length;return R===L?v:R>L?v+new Array(R-L+1).join("0"):R>0?v.slice(0,R)+"."+v.slice(R):"0."+new Array(1-R).join("0")+S(w,Math.max(0,m+R-1))[0]}function f(w,m){var u=S(w,m);if(!u)return w+"";var v=u[0],y=u[1];return y<0?"0."+new Array(-y).join("0")+v:v.length>y+1?v.slice(0,y+1)+"."+v.slice(y+1):v+new Array(y-v.length+2).join("0")}var c={"%":function(w,m){return(w*100).toFixed(m)},b:function(w){return Math.round(w).toString(2)},c:function(w){return w+""},d:b,e:function(w,m){return w.toExponential(m)},f:function(w,m){return w.toFixed(m)},g:function(w,m){return w.toPrecision(m)},o:function(w){return Math.round(w).toString(8)},p:function(w,m){return f(w*100,m)},r:f,s,X:function(w){return Math.round(w).toString(16).toUpperCase()},x:function(w){return Math.round(w).toString(16)}};function p(w){return w}var d=Array.prototype.map,T=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function l(w){var m=w.grouping===void 0||w.thousands===void 0?p:e(d.call(w.grouping,Number),w.thousands+""),u=w.currency===void 0?"":w.currency[0]+"",v=w.currency===void 0?"":w.currency[1]+"",y=w.decimal===void 0?".":w.decimal+"",R=w.numerals===void 0?p:t(d.call(w.numerals,String)),L=w.percent===void 0?"%":w.percent+"",z=w.minus===void 0?"-":w.minus+"",F=w.nan===void 0?"NaN":w.nan+"";function B(I){I=o(I);var N=I.fill,U=I.align,X=I.sign,ee=I.symbol,ue=I.zero,oe=I.width,le=I.comma,V=I.precision,J=I.trim,te=I.type;te==="n"?(le=!0,te="g"):c[te]||(V===void 0&&(V=12),J=!0,te="g"),(ue||N==="0"&&U==="=")&&(ue=!0,N="0",U="=");var Z=ee==="$"?u:ee==="#"&&/[boxX]/.test(te)?"0"+te.toLowerCase():"",se=ee==="$"?v:/[%p]/.test(te)?L:"",Q=c[te],q=/[defgprs%]/.test(te);V=V===void 0?6:/[gprs]/.test(te)?Math.max(1,Math.min(21,V)):Math.max(0,Math.min(20,V));function re(ae){var fe=Z,be=se,Me,Ie,Le;if(te==="c")be=Q(ae)+be,ae="";else{ae=+ae;var je=ae<0||1/ae<0;if(ae=isNaN(ae)?F:Q(Math.abs(ae),V),J&&(ae=i(ae)),je&&+ae==0&&X!=="+"&&(je=!1),fe=(je?X==="("?X:z:X==="-"||X==="("?"":X)+fe,be=(te==="s"?T[8+n/3]:"")+be+(je&&X==="("?")":""),q){for(Me=-1,Ie=ae.length;++MeLe||Le>57){be=(Le===46?y+ae.slice(Me+1):ae.slice(Me))+be,ae=ae.slice(0,Me);break}}}le&&!ue&&(ae=m(ae,1/0));var et=fe.length+ae.length+be.length,rt=et>1)+fe+ae+be+rt.slice(et);break;default:ae=rt+fe+ae+be;break}return R(ae)}return re.toString=function(){return I+""},re}function O(I,N){var U=B((I=o(I),I.type="f",I)),X=Math.max(-8,Math.min(8,Math.floor(E(N)/3)))*3,ee=Math.pow(10,-X),ue=T[8+X/3];return function(oe){return U(ee*oe)+ue}}return{format:B,formatPrefix:O}}var g;x({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function x(w){return g=l(w),h.format=g.format,h.formatPrefix=g.formatPrefix,g}function A(w){return Math.max(0,-E(Math.abs(w)))}function M(w,m){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(E(m)/3)))*3-E(Math.abs(w)))}function _(w,m){return w=Math.abs(w),m=Math.abs(m)-w,Math.max(0,E(m)-E(w))+1}h.FormatSpecifier=a,h.formatDefaultLocale=x,h.formatLocale=l,h.formatSpecifier=o,h.precisionFixed=A,h.precisionPrefix=M,h.precisionRound=_,Object.defineProperty(h,"__esModule",{value:!0})})}}),Eh=He({"node_modules/is-string-blank/index.js"(Y,G){G.exports=function(h){for(var b=h.length,S,E=0;E13)&&S!==32&&S!==133&&S!==160&&S!==5760&&S!==6158&&(S<8192||S>8205)&&S!==8232&&S!==8233&&S!==8239&&S!==8287&&S!==8288&&S!==12288&&S!==65279)return!1;return!0}}}),Bi=He({"node_modules/fast-isnumeric/index.js"(Y,G){var h=Eh();G.exports=function(b){var S=typeof b;if(S==="string"){var E=b;if(b=+b,b===0&&h(E))return!1}else if(S!=="number")return!1;return b-b<1}}}),Yo=He({"src/constants/numerical.js"(Y,G){G.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE*1e-4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,ONEMILLI:1,ONEMICROSEC:.001,EPOCHJD:24405875e-1,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:"−"}}}),_p=He({"node_modules/base64-arraybuffer/dist/base64-arraybuffer.umd.js"(Y,G){(function(h,b){typeof Y=="object"&&typeof G<"u"?b(Y):(h=typeof globalThis<"u"?globalThis:h||self,b(h["base64-arraybuffer"]={}))})(Y,function(h){for(var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",S=typeof Uint8Array>"u"?[]:new Uint8Array(256),E=0;E>2],n+=b[(o[a]&3)<<4|o[a+1]>>4],n+=b[(o[a+1]&15)<<2|o[a+2]>>6],n+=b[o[a+2]&63];return i%3===2?n=n.substring(0,n.length-1)+"=":i%3===1&&(n=n.substring(0,n.length-2)+"=="),n},t=function(r){var o=r.length*.75,a=r.length,i,n=0,s,f,c,p;r[r.length-1]==="="&&(o--,r[r.length-2]==="="&&o--);var d=new ArrayBuffer(o),T=new Uint8Array(d);for(i=0;i>4,T[n++]=(f&15)<<4|c>>2,T[n++]=(c&3)<<6|p&63;return d};h.decode=t,h.encode=e,Object.defineProperty(h,"__esModule",{value:!0})})}}),Kv=He({"src/lib/is_plain_object.js"(Y,G){G.exports=function(b){return window&&window.process&&window.process.versions?Object.prototype.toString.call(b)==="[object Object]":Object.prototype.toString.call(b)==="[object Object]"&&Object.getPrototypeOf(b).hasOwnProperty("hasOwnProperty")}}}),lh=He({"src/lib/array.js"(Y){var G=_p().decode,h=Kv(),b=Array.isArray,S=ArrayBuffer,E=DataView;function e(s){return S.isView(s)&&!(s instanceof E)}Y.isTypedArray=e;function t(s){return b(s)||e(s)}Y.isArrayOrTypedArray=t;function r(s){return!t(s[0])}Y.isArray1D=r,Y.ensureArray=function(s,f){return b(s)||(s=[]),s.length=f,s};var o={u1c:typeof Uint8ClampedArray>"u"?void 0:Uint8ClampedArray,i1:typeof Int8Array>"u"?void 0:Int8Array,u1:typeof Uint8Array>"u"?void 0:Uint8Array,i2:typeof Int16Array>"u"?void 0:Int16Array,u2:typeof Uint16Array>"u"?void 0:Uint16Array,i4:typeof Int32Array>"u"?void 0:Int32Array,u4:typeof Uint32Array>"u"?void 0:Uint32Array,f4:typeof Float32Array>"u"?void 0:Float32Array,f8:typeof Float64Array>"u"?void 0:Float64Array};o.uint8c=o.u1c,o.uint8=o.u1,o.int8=o.i1,o.uint16=o.u2,o.int16=o.i2,o.uint32=o.u4,o.int32=o.i4,o.float32=o.f4,o.float64=o.f8;function a(s){return s.constructor===ArrayBuffer}Y.isArrayBuffer=a,Y.decodeTypedArraySpec=function(s){var f=[],c=i(s),p=c.dtype,d=o[p];if(!d)throw new Error('Error in dtype: "'+p+'"');var T=d.BYTES_PER_ELEMENT,l=c.bdata;a(l)||(l=G(l));var g=c.shape===void 0?[l.byteLength/T]:(""+c.shape).split(",");g.reverse();var x=g.length,A,M,_=+g[0],w=T*_,m=0;if(x===1)f=new d(l);else if(x===2)for(A=+g[1],M=0;M2)return d[A]=d[A]|e,g.set(x,null);if(l){for(f=A;f0)return Math.log(S)/Math.LN10;var e=Math.log(Math.min(E[0],E[1]))/Math.LN10;return h(e)||(e=Math.log(Math.max(E[0],E[1]))/Math.LN10-6),e}}}),X5=He({"src/lib/relink_private.js"(Y,G){var h=lh().isArrayOrTypedArray,b=Kv();G.exports=function S(E,e){for(var t in e){var r=e[t],o=E[t];if(o!==r)if(t.charAt(0)==="_"||typeof r=="function"){if(t in E)continue;E[t]=r}else if(h(r)&&h(o)&&b(r[0])){if(t==="customdata"||t==="ids")continue;for(var a=Math.min(r.length,o.length),i=0;iE/2?S-Math.round(S/E)*E:S}G.exports={mod:h,modHalf:b}}}),If=He({"node_modules/tinycolor2/tinycolor.js"(Y,G){(function(h){var b=/^\s+/,S=/\s+$/,E=0,e=h.round,t=h.min,r=h.max,o=h.random;function a(q,re){if(q=q||"",re=re||{},q instanceof a)return q;if(!(this instanceof a))return new a(q,re);var ae=i(q);this._originalInput=q,this._r=ae.r,this._g=ae.g,this._b=ae.b,this._a=ae.a,this._roundA=e(100*this._a)/100,this._format=re.format||ae.format,this._gradientType=re.gradientType,this._r<1&&(this._r=e(this._r)),this._g<1&&(this._g=e(this._g)),this._b<1&&(this._b=e(this._b)),this._ok=ae.ok,this._tc_id=E++}a.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var q=this.toRgb();return(q.r*299+q.g*587+q.b*114)/1e3},getLuminance:function(){var q=this.toRgb(),re,ae,fe,be,Me,Ie;return re=q.r/255,ae=q.g/255,fe=q.b/255,re<=.03928?be=re/12.92:be=h.pow((re+.055)/1.055,2.4),ae<=.03928?Me=ae/12.92:Me=h.pow((ae+.055)/1.055,2.4),fe<=.03928?Ie=fe/12.92:Ie=h.pow((fe+.055)/1.055,2.4),.2126*be+.7152*Me+.0722*Ie},setAlpha:function(q){return this._a=I(q),this._roundA=e(100*this._a)/100,this},toHsv:function(){var q=c(this._r,this._g,this._b);return{h:q.h*360,s:q.s,v:q.v,a:this._a}},toHsvString:function(){var q=c(this._r,this._g,this._b),re=e(q.h*360),ae=e(q.s*100),fe=e(q.v*100);return this._a==1?"hsv("+re+", "+ae+"%, "+fe+"%)":"hsva("+re+", "+ae+"%, "+fe+"%, "+this._roundA+")"},toHsl:function(){var q=s(this._r,this._g,this._b);return{h:q.h*360,s:q.s,l:q.l,a:this._a}},toHslString:function(){var q=s(this._r,this._g,this._b),re=e(q.h*360),ae=e(q.s*100),fe=e(q.l*100);return this._a==1?"hsl("+re+", "+ae+"%, "+fe+"%)":"hsla("+re+", "+ae+"%, "+fe+"%, "+this._roundA+")"},toHex:function(q){return d(this._r,this._g,this._b,q)},toHexString:function(q){return"#"+this.toHex(q)},toHex8:function(q){return T(this._r,this._g,this._b,this._a,q)},toHex8String:function(q){return"#"+this.toHex8(q)},toRgb:function(){return{r:e(this._r),g:e(this._g),b:e(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+e(this._r)+", "+e(this._g)+", "+e(this._b)+")":"rgba("+e(this._r)+", "+e(this._g)+", "+e(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:e(N(this._r,255)*100)+"%",g:e(N(this._g,255)*100)+"%",b:e(N(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+e(N(this._r,255)*100)+"%, "+e(N(this._g,255)*100)+"%, "+e(N(this._b,255)*100)+"%)":"rgba("+e(N(this._r,255)*100)+"%, "+e(N(this._g,255)*100)+"%, "+e(N(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:B[d(this._r,this._g,this._b,!0)]||!1},toFilter:function(q){var re="#"+l(this._r,this._g,this._b,this._a),ae=re,fe=this._gradientType?"GradientType = 1, ":"";if(q){var be=a(q);ae="#"+l(be._r,be._g,be._b,be._a)}return"progid:DXImageTransform.Microsoft.gradient("+fe+"startColorstr="+re+",endColorstr="+ae+")"},toString:function(q){var re=!!q;q=q||this._format;var ae=!1,fe=this._a<1&&this._a>=0,be=!re&&fe&&(q==="hex"||q==="hex6"||q==="hex3"||q==="hex4"||q==="hex8"||q==="name");return be?q==="name"&&this._a===0?this.toName():this.toRgbString():(q==="rgb"&&(ae=this.toRgbString()),q==="prgb"&&(ae=this.toPercentageRgbString()),(q==="hex"||q==="hex6")&&(ae=this.toHexString()),q==="hex3"&&(ae=this.toHexString(!0)),q==="hex4"&&(ae=this.toHex8String(!0)),q==="hex8"&&(ae=this.toHex8String()),q==="name"&&(ae=this.toName()),q==="hsl"&&(ae=this.toHslString()),q==="hsv"&&(ae=this.toHsvString()),ae||this.toHexString())},clone:function(){return a(this.toString())},_applyModification:function(q,re){var ae=q.apply(null,[this].concat([].slice.call(re)));return this._r=ae._r,this._g=ae._g,this._b=ae._b,this.setAlpha(ae._a),this},lighten:function(){return this._applyModification(M,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(g,arguments)},saturate:function(){return this._applyModification(x,arguments)},greyscale:function(){return this._applyModification(A,arguments)},spin:function(){return this._applyModification(m,arguments)},_applyCombination:function(q,re){return q.apply(null,[this].concat([].slice.call(re)))},analogous:function(){return this._applyCombination(L,arguments)},complement:function(){return this._applyCombination(u,arguments)},monochromatic:function(){return this._applyCombination(z,arguments)},splitcomplement:function(){return this._applyCombination(R,arguments)},triad:function(){return this._applyCombination(v,arguments)},tetrad:function(){return this._applyCombination(y,arguments)}},a.fromRatio=function(q,re){if(typeof q=="object"){var ae={};for(var fe in q)q.hasOwnProperty(fe)&&(fe==="a"?ae[fe]=q[fe]:ae[fe]=le(q[fe]));q=ae}return a(q,re)};function i(q){var re={r:0,g:0,b:0},ae=1,fe=null,be=null,Me=null,Ie=!1,Le=!1;return typeof q=="string"&&(q=se(q)),typeof q=="object"&&(Z(q.r)&&Z(q.g)&&Z(q.b)?(re=n(q.r,q.g,q.b),Ie=!0,Le=String(q.r).substr(-1)==="%"?"prgb":"rgb"):Z(q.h)&&Z(q.s)&&Z(q.v)?(fe=le(q.s),be=le(q.v),re=p(q.h,fe,be),Ie=!0,Le="hsv"):Z(q.h)&&Z(q.s)&&Z(q.l)&&(fe=le(q.s),Me=le(q.l),re=f(q.h,fe,Me),Ie=!0,Le="hsl"),q.hasOwnProperty("a")&&(ae=q.a)),ae=I(ae),{ok:Ie,format:q.format||Le,r:t(255,r(re.r,0)),g:t(255,r(re.g,0)),b:t(255,r(re.b,0)),a:ae}}function n(q,re,ae){return{r:N(q,255)*255,g:N(re,255)*255,b:N(ae,255)*255}}function s(q,re,ae){q=N(q,255),re=N(re,255),ae=N(ae,255);var fe=r(q,re,ae),be=t(q,re,ae),Me,Ie,Le=(fe+be)/2;if(fe==be)Me=Ie=0;else{var je=fe-be;switch(Ie=Le>.5?je/(2-fe-be):je/(fe+be),fe){case q:Me=(re-ae)/je+(re1&&(Je-=1),Je<1/6?et+(rt-et)*6*Je:Je<1/2?rt:Je<2/3?et+(rt-et)*(2/3-Je)*6:et}if(re===0)fe=be=Me=ae;else{var Le=ae<.5?ae*(1+re):ae+re-ae*re,je=2*ae-Le;fe=Ie(je,Le,q+1/3),be=Ie(je,Le,q),Me=Ie(je,Le,q-1/3)}return{r:fe*255,g:be*255,b:Me*255}}function c(q,re,ae){q=N(q,255),re=N(re,255),ae=N(ae,255);var fe=r(q,re,ae),be=t(q,re,ae),Me,Ie,Le=fe,je=fe-be;if(Ie=fe===0?0:je/fe,fe==be)Me=0;else{switch(fe){case q:Me=(re-ae)/je+(re>1)+720)%360;--re;)fe.h=(fe.h+be)%360,Me.push(a(fe));return Me}function z(q,re){re=re||6;for(var ae=a(q).toHsv(),fe=ae.h,be=ae.s,Me=ae.v,Ie=[],Le=1/re;re--;)Ie.push(a({h:fe,s:be,v:Me})),Me=(Me+Le)%1;return Ie}a.mix=function(q,re,ae){ae=ae===0?0:ae||50;var fe=a(q).toRgb(),be=a(re).toRgb(),Me=ae/100,Ie={r:(be.r-fe.r)*Me+fe.r,g:(be.g-fe.g)*Me+fe.g,b:(be.b-fe.b)*Me+fe.b,a:(be.a-fe.a)*Me+fe.a};return a(Ie)},a.readability=function(q,re){var ae=a(q),fe=a(re);return(h.max(ae.getLuminance(),fe.getLuminance())+.05)/(h.min(ae.getLuminance(),fe.getLuminance())+.05)},a.isReadable=function(q,re,ae){var fe=a.readability(q,re),be,Me;switch(Me=!1,be=Q(ae),be.level+be.size){case"AAsmall":case"AAAlarge":Me=fe>=4.5;break;case"AAlarge":Me=fe>=3;break;case"AAAsmall":Me=fe>=7;break}return Me},a.mostReadable=function(q,re,ae){var fe=null,be=0,Me,Ie,Le,je;ae=ae||{},Ie=ae.includeFallbackColors,Le=ae.level,je=ae.size;for(var et=0;etbe&&(be=Me,fe=a(re[et]));return a.isReadable(q,fe,{level:Le,size:je})||!Ie?fe:(ae.includeFallbackColors=!1,a.mostReadable(q,["#fff","#000"],ae))};var F=a.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},B=a.hexNames=O(F);function O(q){var re={};for(var ae in q)q.hasOwnProperty(ae)&&(re[q[ae]]=ae);return re}function I(q){return q=parseFloat(q),(isNaN(q)||q<0||q>1)&&(q=1),q}function N(q,re){ee(q)&&(q="100%");var ae=ue(q);return q=t(re,r(0,parseFloat(q))),ae&&(q=parseInt(q*re,10)/100),h.abs(q-re)<1e-6?1:q%re/parseFloat(re)}function U(q){return t(1,r(0,q))}function X(q){return parseInt(q,16)}function ee(q){return typeof q=="string"&&q.indexOf(".")!=-1&&parseFloat(q)===1}function ue(q){return typeof q=="string"&&q.indexOf("%")!=-1}function oe(q){return q.length==1?"0"+q:""+q}function le(q){return q<=1&&(q=q*100+"%"),q}function V(q){return h.round(parseFloat(q)*255).toString(16)}function J(q){return X(q)/255}var te=function(){var q="[-\\+]?\\d+%?",re="[-\\+]?\\d*\\.\\d+%?",ae="(?:"+re+")|(?:"+q+")",fe="[\\s|\\(]+("+ae+")[,|\\s]+("+ae+")[,|\\s]+("+ae+")\\s*\\)?",be="[\\s|\\(]+("+ae+")[,|\\s]+("+ae+")[,|\\s]+("+ae+")[,|\\s]+("+ae+")\\s*\\)?";return{CSS_UNIT:new RegExp(ae),rgb:new RegExp("rgb"+fe),rgba:new RegExp("rgba"+be),hsl:new RegExp("hsl"+fe),hsla:new RegExp("hsla"+be),hsv:new RegExp("hsv"+fe),hsva:new RegExp("hsva"+be),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Z(q){return!!te.CSS_UNIT.exec(q)}function se(q){q=q.replace(b,"").replace(S,"").toLowerCase();var re=!1;if(F[q])q=F[q],re=!0;else if(q=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var ae;return(ae=te.rgb.exec(q))?{r:ae[1],g:ae[2],b:ae[3]}:(ae=te.rgba.exec(q))?{r:ae[1],g:ae[2],b:ae[3],a:ae[4]}:(ae=te.hsl.exec(q))?{h:ae[1],s:ae[2],l:ae[3]}:(ae=te.hsla.exec(q))?{h:ae[1],s:ae[2],l:ae[3],a:ae[4]}:(ae=te.hsv.exec(q))?{h:ae[1],s:ae[2],v:ae[3]}:(ae=te.hsva.exec(q))?{h:ae[1],s:ae[2],v:ae[3],a:ae[4]}:(ae=te.hex8.exec(q))?{r:X(ae[1]),g:X(ae[2]),b:X(ae[3]),a:J(ae[4]),format:re?"name":"hex8"}:(ae=te.hex6.exec(q))?{r:X(ae[1]),g:X(ae[2]),b:X(ae[3]),format:re?"name":"hex"}:(ae=te.hex4.exec(q))?{r:X(ae[1]+""+ae[1]),g:X(ae[2]+""+ae[2]),b:X(ae[3]+""+ae[3]),a:J(ae[4]+""+ae[4]),format:re?"name":"hex8"}:(ae=te.hex3.exec(q))?{r:X(ae[1]+""+ae[1]),g:X(ae[2]+""+ae[2]),b:X(ae[3]+""+ae[3]),format:re?"name":"hex"}:!1}function Q(q){var re,ae;return q=q||{level:"AA",size:"small"},re=(q.level||"AA").toUpperCase(),ae=(q.size||"small").toLowerCase(),re!=="AA"&&re!=="AAA"&&(re="AA"),ae!=="small"&&ae!=="large"&&(ae="small"),{level:re,size:ae}}typeof G<"u"&&G.exports?G.exports=a:window.tinycolor=a})(Math)}}),Co=He({"src/lib/extend.js"(Y){var G=Kv(),h=Array.isArray;function b(E,e){var t,r;for(t=0;t=0)))return a;if(c===3)s[c]>1&&(s[c]=1);else if(s[c]>=1)return a}var p=Math.round(s[0]*255)+", "+Math.round(s[1]*255)+", "+Math.round(s[2]*255);return f?"rgba("+p+", "+s[3]+")":"rgb("+p+")"}}}),Id=He({"src/constants/interactions.js"(Y,G){G.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}}}),C0=He({"src/lib/regex.js"(Y){Y.counter=function(G,h,b,S){var E=(h||"")+(b?"":"$"),e=S===!1?"":"^";return G==="xy"?new RegExp(e+"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?"+E):new RegExp(e+G+"([2-9]|[1-9][0-9]+)?"+E)}}}),Z5=He({"src/lib/coerce.js"(Y){var G=Bi(),h=If(),b=Co().extendFlat,S=Pl(),E=xp(),e=Ri(),t=Id().DESELECTDIM,r=Gm(),o=C0().counter,a=E0().modHalf,i=lh().isArrayOrTypedArray,n=lh().isTypedArraySpec,s=lh().decodeTypedArraySpec;Y.valObjectMeta={data_array:{coerceFunction:function(c,p,d){p.set(i(c)?c:n(c)?s(c):d)}},enumerated:{coerceFunction:function(c,p,d,T){T.coerceNumber&&(c=+c),T.values.indexOf(c)===-1?p.set(d):p.set(c)},validateFunction:function(c,p){p.coerceNumber&&(c=+c);for(var d=p.values,T=0;Tg===!0||g===!1;l(c)||T.arrayOk&&Array.isArray(c)&&c.length>0&&c.every(l)?p.set(c):p.set(d)}},number:{coerceFunction:function(c,p,d,T){n(c)&&(c=s(c)),!G(c)||T.min!==void 0&&cT.max?p.set(d):p.set(+c)}},integer:{coerceFunction:function(c,p,d,T){if((T.extras||[]).indexOf(c)!==-1){p.set(c);return}n(c)&&(c=s(c)),c%1||!G(c)||T.min!==void 0&&cT.max?p.set(d):p.set(+c)}},string:{coerceFunction:function(c,p,d,T){if(typeof c!="string"){var l=typeof c=="number";T.strict===!0||!l?p.set(d):p.set(String(c))}else T.noBlank&&!c?p.set(d):p.set(c)}},color:{coerceFunction:function(c,p,d){n(c)&&(c=s(c)),h(c).isValid()?p.set(c):p.set(d)}},colorlist:{coerceFunction:function(c,p,d){function T(l){return h(l).isValid()}!Array.isArray(c)||!c.length?p.set(d):c.every(T)?p.set(c):p.set(d)}},colorscale:{coerceFunction:function(c,p,d){p.set(E.get(c,d))}},angle:{coerceFunction:function(c,p,d){n(c)&&(c=s(c)),c==="auto"?p.set("auto"):G(c)?p.set(a(+c,360)):p.set(d)}},subplotid:{coerceFunction:function(c,p,d,T){var l=T.regex||o(d);const g=x=>typeof x=="string"&&l.test(x);g(c)||T.arrayOk&&i(c)&&c.length>0&&c.every(g)?p.set(c):p.set(d)},validateFunction:function(c,p){var d=p.dflt;return c===d?!0:typeof c!="string"?!1:!!o(d).test(c)}},flaglist:{coerceFunction:function(c,p,d,T){if((T.extras||[]).indexOf(c)!==-1){p.set(c);return}if(typeof c!="string"){p.set(d);return}for(var l=c.split("+"),g=0;g/g),c=0;c1){var e=["LOG:"];for(E=0;E1){var t=[];for(E=0;E"),"long")}},S.warn=function(){var E;if(h.logging>0){var e=["WARN:"];for(E=0;E0){var t=[];for(E=0;E"),"stick")}},S.error=function(){var E;if(h.logging>0){var e=["ERROR:"];for(E=0;E0){var t=[];for(E=0;E"),"stick")}}}}),Xy=He({"src/lib/noop.js"(Y,G){G.exports=function(){}}}),nb=He({"src/lib/push_unique.js"(Y,G){G.exports=function(b,S){if(S instanceof RegExp){for(var E=S.toString(),e=0;esh({valType:"string",dflt:"",editType:E},e!==!1?{arrayOk:!0}:{}),Y.texttemplateAttrs=({editType:E="calc",arrayOk:e}={},t={})=>sh({valType:"string",dflt:"",editType:E},e!==!1?{arrayOk:!0}:{}),Y.shapeTexttemplateAttrs=({editType:E="arraydraw",newshape:e}={},t={})=>({valType:"string",dflt:"",editType:E}),Y.templatefallbackAttrs=({editType:E="none"}={})=>({valType:"any",dflt:"-",editType:E})}}),Yy=He({"src/components/shapes/label_texttemplate.js"(Y,G){function h(g,x){return x?x.d2l(g):g}function b(g,x){return x?x.l2d(g):g}function S(g){return g.x0}function E(g){return g.x1}function e(g){return g.y0}function t(g){return g.y1}function r(g){return g.x0shift||0}function o(g){return g.x1shift||0}function a(g){return g.y0shift||0}function i(g){return g.y1shift||0}function n(g,x){return h(g.x1,x)+o(g)-h(g.x0,x)-r(g)}function s(g,x,A){return h(g.y1,A)+i(g)-h(g.y0,A)-a(g)}function f(g,x){return Math.abs(n(g,x))}function c(g,x,A){return Math.abs(s(g,x,A))}function p(g,x,A){return g.type!=="line"?void 0:Math.sqrt(Math.pow(n(g,x),2)+Math.pow(s(g,x,A),2))}function d(g,x){return b((h(g.x1,x)+o(g)+h(g.x0,x)+r(g))/2,x)}function T(g,x,A){return b((h(g.y1,A)+i(g)+h(g.y0,A)+a(g))/2,A)}function l(g,x,A){return g.type!=="line"?void 0:s(g,x,A)/n(g,x)}G.exports={x0:S,x1:E,y0:e,y1:t,slope:l,dx:n,dy:s,width:f,height:c,length:p,xcenter:d,ycenter:T}}}),TA=He({"src/components/shapes/draw_newshape/attributes.js"(Y,G){var h=Nu().overrideAll,b=Pl(),S=Su(),E=jf().dash,e=Co().extendFlat,{shapeTexttemplateAttrs:t,templatefallbackAttrs:r}=bl(),o=Yy();G.exports=h({newshape:{visible:e({},b.visible,{}),showlegend:{valType:"boolean",dflt:!1},legend:e({},b.legend,{}),legendgroup:e({},b.legendgroup,{}),legendgrouptitle:{text:e({},b.legendgrouptitle.text,{}),font:S({})},legendrank:e({},b.legendrank,{}),legendwidth:e({},b.legendwidth,{}),line:{color:{valType:"color"},width:{valType:"number",min:0,dflt:4},dash:e({},E,{dflt:"solid"})},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd"},opacity:{valType:"number",min:0,max:1,dflt:1},layer:{valType:"enumerated",values:["below","above","between"],dflt:"above"},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal"},name:e({},b.name,{}),label:{text:{valType:"string",dflt:""},texttemplate:t({newshape:!0},{keys:Object.keys(o)}),texttemplatefallback:r({editType:"arraydraw"}),font:S({}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"]},textangle:{valType:"angle",dflt:"auto"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},padding:{valType:"number",dflt:3,min:0}}},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)",description:"Sets the color filling the active shape' interior."},opacity:{valType:"number",min:0,max:1,dflt:.5}}},"none","from-root")}}),AA=He({"src/components/selections/draw_newselection/attributes.js"(Y,G){var h=jf().dash,b=Co().extendFlat;G.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:b({},h,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}}}),Ky=He({"src/plots/pad_attributes.js"(Y,G){G.exports=function(h){var b=h.editType;return{t:{valType:"number",dflt:0,editType:b},r:{valType:"number",dflt:0,editType:b},b:{valType:"number",dflt:0,editType:b},l:{valType:"number",dflt:0,editType:b},editType:b}}}}),L0=He({"src/plots/layout_attributes.js"(Y,G){var h=Su(),b=Xm(),S=hf(),E=TA(),e=AA(),t=Ky(),r=Co().extendFlat,o=h({editType:"calc"});o.family.dflt='"Open Sans", verdana, arial, sans-serif',o.size.dflt=12,o.color.dflt=S.defaultLine,G.exports={font:o,title:{text:{valType:"string",editType:"layoutstyle"},font:h({editType:"layoutstyle"}),subtitle:{text:{valType:"string",editType:"layoutstyle"},font:h({editType:"layoutstyle"}),editType:"layoutstyle"},xref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},yref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},x:{valType:"number",min:0,max:1,dflt:.5,editType:"layoutstyle"},y:{valType:"number",min:0,max:1,dflt:"auto",editType:"layoutstyle"},xanchor:{valType:"enumerated",dflt:"auto",values:["auto","left","center","right"],editType:"layoutstyle"},yanchor:{valType:"enumerated",dflt:"auto",values:["auto","top","middle","bottom"],editType:"layoutstyle"},pad:r(t({editType:"layoutstyle"}),{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},editType:"layoutstyle"},uniformtext:{mode:{valType:"enumerated",values:[!1,"hide","show"],dflt:!1,editType:"plot"},minsize:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"},autosize:{valType:"boolean",dflt:!1,editType:"none"},width:{valType:"number",min:10,dflt:700,editType:"plot"},height:{valType:"number",min:10,dflt:450,editType:"plot"},minreducedwidth:{valType:"number",min:2,dflt:64,editType:"plot"},minreducedheight:{valType:"number",min:2,dflt:64,editType:"plot"},margin:{l:{valType:"number",min:0,dflt:80,editType:"plot"},r:{valType:"number",min:0,dflt:80,editType:"plot"},t:{valType:"number",min:0,dflt:100,editType:"plot"},b:{valType:"number",min:0,dflt:80,editType:"plot"},pad:{valType:"number",min:0,dflt:0,editType:"plot"},autoexpand:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},computed:{valType:"any",editType:"none"},paper_bgcolor:{valType:"color",dflt:S.background,editType:"plot"},plot_bgcolor:{valType:"color",dflt:S.background,editType:"layoutstyle"},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},separators:{valType:"string",editType:"plot"},hidesources:{valType:"boolean",dflt:!1,editType:"plot"},showlegend:{valType:"boolean",editType:"legend"},colorway:{valType:"colorlist",dflt:S.defaults,editType:"calc"},datarevision:{valType:"any",editType:"calc"},uirevision:{valType:"any",editType:"none"},editrevision:{valType:"any",editType:"none"},selectionrevision:{valType:"any",editType:"none"},template:{valType:"any",editType:"calc"},newshape:E.newshape,activeshape:E.activeshape,newselection:e.newselection,activeselection:e.activeselection,meta:{valType:"any",arrayOk:!0,editType:"plot"},transition:r({},b.transition,{editType:"none"})}}}),SA=He({"node_modules/maplibre-gl/dist/maplibre-gl.css"(){(function(){if(!document.getElementById("696e55e75aaafa12d45b3ff634eadc8348f9c3015fc94984dac1ff824773eb97")){var Y=document.createElement("style");Y.id="696e55e75aaafa12d45b3ff634eadc8348f9c3015fc94984dac1ff824773eb97",Y.textContent=`.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}`,document.head.appendChild(Y)}})()}}),Ni=He({"src/registry.js"(Y){var G=Rd(),h=Xy(),b=nb(),S=Kv(),E=Wm().addStyleRule,e=Co(),t=Pl(),r=L0(),o=e.extendFlat,a=e.extendDeepAll;Y.modules={},Y.allCategories={},Y.allTypes=[],Y.subplotsRegistry={},Y.componentsRegistry={},Y.layoutArrayContainers=[],Y.layoutArrayRegexes=[],Y.traceLayoutAttributes={},Y.localeRegistry={},Y.apiMethodRegistry={},Y.collectableSubplotTypes=null,Y.register=function(x){if(Y.collectableSubplotTypes=null,x)x&&!Array.isArray(x)&&(x=[x]);else throw new Error("No argument passed to Plotly.register.");for(var A=0;A=l&&F<=g?F:e}if(typeof F!="string"&&typeof F!="number")return e;F=String(F);var U=d(B),X=F.charAt(0);U&&(X==="G"||X==="g")&&(F=F.slice(1),B="");var ee=U&&B.slice(0,7)==="chinese",ue=F.match(ee?c:f);if(!ue)return e;var oe=ue[1],le=ue[3]||"1",V=Number(ue[5]||1),J=Number(ue[7]||0),te=Number(ue[9]||0),Z=Number(ue[11]||0);if(U){if(oe.length===2)return e;oe=Number(oe);var se;try{var Q=n.getComponentMethod("calendars","getCal")(B);if(ee){var q=le.charAt(le.length-1)==="i";le=parseInt(le,10),se=Q.newDate(oe,Q.toMonthIndex(oe,le,q),V)}else se=Q.newDate(oe,Number(le),V)}catch{return e}return se?(se.toJD()-i)*t+J*r+te*o+Z*a:e}oe.length===2?oe=(Number(oe)+2e3-p)%100+p:oe=Number(oe),le-=1;var re=new Date(Date.UTC(2e3,le,V,J,te));return re.setUTCFullYear(oe),re.getUTCMonth()!==le||re.getUTCDate()!==V?e:re.getTime()+Z*a},l=Y.MIN_MS=Y.dateTime2ms("-9999"),g=Y.MAX_MS=Y.dateTime2ms("9999-12-31 23:59:59.9999"),Y.isDateTime=function(F,B){return Y.dateTime2ms(F,B)!==e};function x(F,B){return String(F+Math.pow(10,B)).slice(1)}var A=90*t,M=3*r,_=5*o;Y.ms2DateTime=function(F,B,O){if(typeof F!="number"||!(F>=l&&F<=g))return e;B||(B=0);var I=Math.floor(S(F+.05,1)*10),N=Math.round(F-I/10),U,X,ee,ue,oe,le;if(d(O)){var V=Math.floor(N/t)+i,J=Math.floor(S(F,t));try{U=n.getComponentMethod("calendars","getCal")(O).fromJD(V).formatDate("yyyy-mm-dd")}catch{U=s("G%Y-%m-%d")(new Date(N))}if(U.charAt(0)==="-")for(;U.length<11;)U="-0"+U.slice(1);else for(;U.length<10;)U="0"+U;X=B=l+t&&F<=g-t))return e;var B=Math.floor(S(F+.05,1)*10),O=new Date(Math.round(F-B/10)),I=G("%Y-%m-%d")(O),N=O.getHours(),U=O.getMinutes(),X=O.getSeconds(),ee=O.getUTCMilliseconds()*10+B;return w(I,N,U,X,ee)};function w(F,B,O,I,N){if((B||O||I||N)&&(F+=" "+x(B,2)+":"+x(O,2),(I||N)&&(F+=":"+x(I,2),N))){for(var U=4;N%10===0;)U-=1,N/=10;F+="."+x(N,U)}return F}Y.cleanDate=function(F,B,O){if(F===e)return B;if(Y.isJSDate(F)||typeof F=="number"&&isFinite(F)){if(d(O))return b.error("JS Dates and milliseconds are incompatible with world calendars",F),B;if(F=Y.ms2DateTimeLocal(+F),!F&&B!==void 0)return B}else if(!Y.isDateTime(F,O))return b.error("unrecognized date",F),B;return F};var m=/%\d?f/g,u=/%h/g,v={1:"1",2:"1",3:"2",4:"2"};function y(F,B,O,I){F=F.replace(m,function(U){var X=Math.min(+U.charAt(1)||6,6),ee=(B/1e3%1+2).toFixed(X).slice(2).replace(/0+$/,"")||"0";return ee});var N=new Date(Math.floor(B+.05));if(F=F.replace(u,function(){return v[O("%q")(N)]}),d(I))try{F=n.getComponentMethod("calendars","worldCalFmt")(F,B,I)}catch{return"Invalid"}return O(F)(N)}var R=[59,59.9,59.99,59.999,59.9999];function L(F,B){var O=S(F+.05,t),I=x(Math.floor(O/r),2)+":"+x(S(Math.floor(O/o),60),2);if(B!=="M"){h(B)||(B=0);var N=Math.min(S(F/a,60),R[B]),U=(100+N).toFixed(B).slice(1);B>0&&(U=U.replace(/0+$/,"").replace(/[\.]$/,"")),I+=":"+U}return I}Y.formatDate=function(F,B,O,I,N,U){if(N=d(N)&&N,!B)if(O==="y")B=U.year;else if(O==="m")B=U.month;else if(O==="d")B=U.dayMonth+` diff --git a/dashboard/static/index.html b/dashboard/static/index.html index 46d8a267..1a0319fd 100644 --- a/dashboard/static/index.html +++ b/dashboard/static/index.html @@ -6,8 +6,8 @@ AlphaTrion - - + + diff --git a/docs/prometheus-integration.md b/docs/prometheus-integration.md index eae3b8cd..d05697b8 100644 --- a/docs/prometheus-integration.md +++ b/docs/prometheus-integration.md @@ -5,9 +5,23 @@ AlphaTrion supports automatic export of OpenTelemetry span metrics to Prometheus ## Overview When enabled, AlphaTrion automatically: -- Extracts metrics from LLM spans (token counts, duration, model usage) -- Pushes metrics to a Prometheus push gateway -- Labels metrics with team_id, experiment_id, run_id, and model +- Enriches spans with cost information from token usage (via `CostEnrichmentProcessor`) +- Extracts metrics from LLM spans (token counts, cost, duration, model usage) +- Pushes metrics to a Prometheus push gateway (via `PrometheusExporter`) +- Labels metrics with team_id, experiment_id, and model + +## Architecture + +``` +Span Creation (OpenTelemetry) + ↓ +CostEnrichmentProcessor (enriches spans with costs) + ↓ +├─ BatchSpanProcessor → ClickHouseExporter +└─ BatchSpanProcessor → PrometheusExporter +``` + +Costs are calculated once by `CostEnrichmentProcessor` and then read by both exporters, ensuring consistency across ClickHouse and Prometheus. ## Setup @@ -66,27 +80,50 @@ async with experiment.CraftExperiment.start(name="my_experiment") as exp: ### LLM Token Metrics -- **`alphatrion_llm_tokens_total`** - Total LLM tokens consumed - - Labels: `team_id`, `experiment_id`, `model`, `token_type` (input/output/total) +- **`llm_tokens_total`** - Total LLM tokens consumed + - Labels: `team_id`, `experiment_id`, `model`, `token_type` (input/output/cache_read_input/cache_creation_input/total) + +- **`llm_input_tokens_total`** - Total input tokens + - Labels: `team_id`, `experiment_id`, `model` + +- **`llm_output_tokens_total`** - Total output tokens + - Labels: `team_id`, `experiment_id`, `model` + +- **`llm_cache_read_input_tokens_total`** - Total cache read input tokens + - Labels: `team_id`, `experiment_id`, `model` + +- **`llm_cache_creation_input_tokens_total`** - Total cache creation input tokens + - Labels: `team_id`, `experiment_id`, `model` + +### LLM Cost Metrics (USD) + +- **`llm_cost_total`** - Total LLM cost in USD + - Labels: `team_id`, `experiment_id`, `model`, `cost_type` (total) + +- **`llm_input_cost_total`** - Total input token cost in USD + - Labels: `team_id`, `experiment_id`, `model` + +- **`llm_output_cost_total`** - Total output token cost in USD + - Labels: `team_id`, `experiment_id`, `model` -- **`alphatrion_llm_input_tokens_total`** - Total input tokens +- **`llm_cache_read_cost_total`** - Total cache read cost in USD - Labels: `team_id`, `experiment_id`, `model` -- **`alphatrion_llm_output_tokens_total`** - Total output tokens +- **`llm_cache_creation_cost_total`** - Total cache creation cost in USD - Labels: `team_id`, `experiment_id`, `model` ### LLM Request Metrics -- **`alphatrion_llm_requests_total`** - Total number of LLM requests +- **`llm_requests_total`** - Total number of LLM requests - Labels: `team_id`, `experiment_id`, `model`, `status` -- **`alphatrion_llm_duration_seconds`** - LLM request duration histogram +- **`llm_request_duration_seconds`** - LLM request duration histogram - Labels: `team_id`, `experiment_id`, `model` - Buckets: 0.1s, 0.5s, 1s, 2s, 5s, 10s, 30s, 60s ### Error Tracking -- **`alphatrion_llm_errors_total`** - Total LLM errors by type +- **`llm_errors_total`** - Total LLM errors by type - Labels: `team_id`, `error_type` - Error types: `timeout`, `rate_limit`, `auth_error`, `invalid_request`, `connection_error`, `server_error`, `unknown` @@ -115,22 +152,43 @@ curl http://localhost:9091/metrics Total tokens by model: ```promql -sum by (model) (alphatrion_llm_tokens_total{token_type="total"}) +sum by (model) (llm_tokens_total{token_type="total"}) +``` + +Total cost by model: +```promql +sum by (model) (llm_cost_total{cost_type="total"}) +``` + +Input vs output cost: +```promql +sum(llm_input_cost_total) +sum(llm_output_cost_total) ``` Request rate per experiment: ```promql -rate(alphatrion_llm_requests_total[5m]) +rate(llm_requests_total[5m]) ``` Average LLM duration by model: ```promql -rate(alphatrion_llm_duration_seconds_sum[5m]) / rate(alphatrion_llm_duration_seconds_count[5m]) +rate(llm_duration_seconds_sum[5m]) / rate(llm_duration_seconds_count[5m]) ``` P95 LLM latency: ```promql -histogram_quantile(0.95, alphatrion_llm_duration_seconds_bucket) +histogram_quantile(0.95, llm_duration_seconds_bucket) +``` + +Cost per experiment: +```promql +sum by (experiment_id) (llm_cost_total{cost_type="total"}) +``` + +Average cost per request: +```promql +sum(llm_cost_total{cost_type="total"}) / sum(llm_requests_total) ``` ## Using Grafana @@ -171,28 +229,46 @@ Create your own panels with queries like: ```promql # Token usage by experiment -sum by (experiment_id) (alphatrion_llm_tokens_total{token_type="total"}) +sum by (experiment_id) (llm_tokens_total{token_type="total"}) + +# Cost by experiment +sum by (experiment_id) (llm_cost_total{cost_type="total"}) # Request rate per team -rate(alphatrion_llm_requests_total{team_id="YOUR_TEAM_ID"}[5m]) +rate(llm_requests_total{team_id="YOUR_TEAM_ID"}[5m]) # Average latency -rate(alphatrion_llm_duration_seconds_sum[5m]) / rate(alphatrion_llm_duration_seconds_count[5m]) +rate(llm_duration_seconds_sum[5m]) / rate(llm_duration_seconds_count[5m]) # Success rate -sum(rate(alphatrion_llm_requests_total{status="OK"}[5m])) / sum(rate(alphatrion_llm_requests_total[5m])) +sum(rate(llm_requests_total{status="OK"}[5m])) / sum(rate(llm_requests_total[5m])) # Top 5 teams by token usage -topk(5, sum by (team_id) (alphatrion_llm_tokens_total{token_type="total"})) +topk(5, sum by (team_id) (llm_tokens_total{token_type="total"})) + +# Top 5 teams by cost +topk(5, sum by (team_id) (llm_cost_total{cost_type="total"})) + +# Cost efficiency (cost per 1k tokens) +sum(llm_cost_total{cost_type="total"}) / (sum(llm_tokens_total{token_type="total"}) / 1000) # Errors by team -sum by (team_id) (alphatrion_llm_errors_total) +sum by (team_id) (llm_errors_total) # Count unique experiments (derived metric) -count(sum by (experiment_id) (alphatrion_llm_requests_total)) +count(sum by (experiment_id) (llm_requests_total)) # Count unique teams (derived metric) -count(sum by (team_id) (alphatrion_llm_requests_total)) +count(sum by (team_id) (llm_requests_total)) + +# Cache cost +sum(llm_cache_read_cost_total) + sum(llm_cache_creation_cost_total) + +# Percentage of cost from cache +( + sum(llm_cache_read_cost_total) + + sum(llm_cache_creation_cost_total) +) / sum(llm_cost_total{cost_type="total"}) * 100 ``` ## Production Considerations @@ -207,16 +283,23 @@ ALPHATRION_PROMETHEUS_PUSHGATEWAY_URL=pushgateway.prod.example.com:9091 ### Grouping Keys -You can customize grouping keys by modifying `PrometheusSpanProcessor` initialization in your code: +You can customize grouping keys by modifying `PrometheusExporter` initialization in your code: ```python -from alphatrion.tracing.prometheus_span_processor import PrometheusSpanProcessor +from alphatrion.tracing.prometheus_exporter import PrometheusExporter +from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry import trace -processor = PrometheusSpanProcessor( +# Create exporter with custom grouping +prometheus_exporter = PrometheusExporter( pushgateway_url="localhost:9091", job_name="my-app", grouping_key={"instance": "app-1", "environment": "production"} ) + +# Add to tracer provider with batching +tracer_provider = trace.get_tracer_provider() +tracer_provider.add_span_processor(BatchSpanProcessor(prometheus_exporter)) ``` ### Label Cardinality @@ -251,7 +334,7 @@ Labels like `run_id`, `span_kind`, and `semantic_kind` are intentionally exclude 4. Check logs for errors: ```bash - # Look for "PrometheusSpanProcessor" in logs + # Look for "PrometheusExporter initialized" or "CostEnrichmentProcessor" in logs ``` ### Push gateway connection errors diff --git a/migrations/versions/0d46a93a8733_init_schema.py b/migrations/versions/3196ef00c0b8_init_schema.py similarity index 95% rename from migrations/versions/0d46a93a8733_init_schema.py rename to migrations/versions/3196ef00c0b8_init_schema.py index 1e32c378..02e948a2 100644 --- a/migrations/versions/0d46a93a8733_init_schema.py +++ b/migrations/versions/3196ef00c0b8_init_schema.py @@ -1,8 +1,8 @@ """init schema -Revision ID: 0d46a93a8733 +Revision ID: 3196ef00c0b8 Revises: -Create Date: 2026-03-31 19:56:38.329974 +Create Date: 2026-04-02 00:22:25.946324 """ from typing import Sequence, Union @@ -12,7 +12,7 @@ # revision identifiers, used by Alembic. -revision: str = '0d46a93a8733' +revision: str = '3196ef00c0b8' down_revision: Union[str, Sequence[str], None] = None branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None @@ -87,8 +87,6 @@ def upgrade() -> None: sa.Column('kind', sa.Integer(), nullable=False, comment='Type of the experiment'), sa.Column('duration', sa.Float(), nullable=True, comment='Duration of the experiment in seconds'), sa.Column('status', sa.Integer(), nullable=False, comment='Status of the experiment, 0: UNKNOWN, 1: PENDING, 2: RUNNING, 9: COMPLETED, 10: CANCELLED, 11: FAILED'), - sa.Column('usage', sa.JSON(), nullable=True, comment='The usage information, e.g. for LLM calls: {total_tokens: int, input_tokens: int, output_tokens: int}'), - sa.Column('cost', sa.JSON(), nullable=True, comment='Cost of the experiment in dollars'), sa.Column('created_at', sa.DateTime(timezone=True), nullable=True), sa.Column('updated_at', sa.DateTime(timezone=True), nullable=True), sa.Column('is_del', sa.Integer(), nullable=True, comment='0 for not deleted, 1 for deleted'), @@ -130,8 +128,6 @@ def upgrade() -> None: sa.Column('meta', sa.JSON(), nullable=True, comment='Additional metadata for the run'), sa.Column('duration', sa.Float(), nullable=True, comment='Duration of the run in seconds'), sa.Column('status', sa.Integer(), nullable=False, comment='Status of the run, 0: UNKNOWN, 1: PENDING, 2: RUNNING, 9: COMPLETED, 10: CANCELLED, 11: FAILED'), - sa.Column('usage', sa.JSON(), nullable=True, comment='The usage information, e.g. for LLM calls: {total_tokens: int, input_tokens: int, output_tokens: int}'), - sa.Column('cost', sa.JSON(), nullable=True, comment='Cost of the run in dollars'), sa.Column('created_at', sa.DateTime(timezone=True), nullable=True), sa.Column('updated_at', sa.DateTime(timezone=True), nullable=True), sa.Column('is_del', sa.Integer(), nullable=True, comment='0 for not deleted, 1 for deleted'), diff --git a/pyproject.toml b/pyproject.toml index af28c616..0bd874d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,6 +73,7 @@ lint.ignore = [ "SIM117", # Use a single `with` statement with multiple contexts instead of nested `with` statements "PLR0915", # Too many statements in function "PLC0415", # `import` should be at the top-level of a file + "PLW0603", # Using the global statement ] exclude = ["venv", "migrations", "__pycache__"] diff --git a/tests/integration/server/test_graphql_query.py b/tests/integration/server/test_graphql_query.py index 95047f55..db4f453e 100644 --- a/tests/integration/server/test_graphql_query.py +++ b/tests/integration/server/test_graphql_query.py @@ -35,7 +35,7 @@ def test_query_single_team(execute_graphql, test_org_id, test_user_id, test_team updatedAt totalExperiments totalRuns - aggregatedTokens {{ + aggregatedUsage {{ totalTokens inputTokens outputTokens @@ -352,7 +352,7 @@ async def test_query_single_run( meta status createdAt - aggregatedTokens {{ + aggregatedUsage {{ totalTokens inputTokens outputTokens @@ -378,9 +378,9 @@ async def test_query_single_run( assert response.data["run"]["status"] == "COMPLETED" assert len(response.data["run"]["spans"]) > 0 # Verify tokens are fetched from ClickHouse via GraphQL fields - assert response.data["run"]["aggregatedTokens"]["totalTokens"] is not None - assert response.data["run"]["aggregatedTokens"]["inputTokens"] is not None - assert response.data["run"]["aggregatedTokens"]["outputTokens"] is not None + assert response.data["run"]["aggregatedUsage"]["totalTokens"] is not None + assert response.data["run"]["aggregatedUsage"]["inputTokens"] is not None + assert response.data["run"]["aggregatedUsage"]["outputTokens"] is not None # Verify tokens are NOT cached in meta anymore metadb = runtime.storage_runtime().metadb @@ -518,10 +518,13 @@ async def test_query_experiment_with_usage( experiment(id: "{exp_id}") {{ id status - aggregatedTokens {{ + aggregatedUsage {{ totalTokens inputTokens outputTokens + cacheCreationInputTokens + cacheReadInputTokens + totalCost }} }} }} @@ -534,23 +537,27 @@ async def test_query_experiment_with_usage( assert response.errors is None assert response.data["experiment"]["status"] == "CANCELLED" - assert response.data["experiment"]["aggregatedTokens"] is not None - assert response.data["experiment"]["aggregatedTokens"]["totalTokens"] is not None - assert response.data["experiment"]["aggregatedTokens"]["inputTokens"] is not None - assert response.data["experiment"]["aggregatedTokens"]["outputTokens"] is not None + assert response.data["experiment"]["aggregatedUsage"] is not None + assert response.data["experiment"]["aggregatedUsage"]["totalTokens"] is not None + assert response.data["experiment"]["aggregatedUsage"]["inputTokens"] is not None + assert response.data["experiment"]["aggregatedUsage"]["outputTokens"] is not None + assert ( + response.data["experiment"]["aggregatedUsage"]["cacheCreationInputTokens"] + is not None + ) + assert ( + response.data["experiment"]["aggregatedUsage"]["cacheReadInputTokens"] + is not None + ) + assert response.data["experiment"]["aggregatedUsage"]["totalCost"] is not None exp_obj = runtime.storage_runtime().metadb.get_experiment(experiment_id=exp.id) assert exp_obj.status == Status.CANCELLED - assert exp_obj.usage is not None - assert "total_tokens" in exp_obj.usage - assert "input_tokens" in exp_obj.usage - assert "output_tokens" in exp_obj.usage # resume the experiment async with CraftExperiment.start(name="integration_test_experiment_resume") as exp: exp_obj = runtime.storage_runtime().metadb.get_experiment(experiment_id=exp.id) assert exp_obj.status == Status.RUNNING - assert exp_obj.usage is None @pytest.mark.asyncio