diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6483b1dd7..8617c9601 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,4 @@ updates: directory: "/" schedule: interval: "weekly" + target-branch: "beta/next" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 94e83a424..0ec3bf8a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## 1.9.0 (2026-08-20) + +### Run page +- Boolean params (e.g. `exploit`, `dump_all`) now render as toggle switches instead of free-text true/false fields. + +### Payload workbench +- New "Payload Workbench" — generate and test payloads (SQLi, XSS, etc.) without leaving the UI. + +### HTTP framework +- `http_spider` now runs on the `commonhuman-core` crawler — threaded discovery, richer form parsing (select/hidden/required-field handling), and correct handling of redirects and off-origin filtering. +- New `http_authenticate` tool — logs the shared session into a target via form login, OAuth2 client-credentials, or Basic/Digest/NTLM, so subsequent `http_request`/`http_spider`/`http_intruder` calls run authenticated. +- New `js_api_discover` tool — extracts REST/JSON API endpoints straight out of a SPA's JavaScript bundles (React/Vue/Angular), catching `fetch`/`axios` calls a plain crawl never sees. +- New `source_map_recover` tool — recovers original pre-minified JS/TS source via `sourceMappingURL`/`.map` files, for real source instead of minified bundles when reviewing DOM-XSS sinks. +- New `ws_discover`/`ws_inject` tools — find WebSocket endpoints referenced in a page's HTML/JS, then send payloads over them and check responses for reflection (chat, real-time features). + +### API scanning +- `api_schema_analyzer` now parses OpenAPI/Swagger specs (JSON or YAML, v2 or v3, `$ref`-resolving) via `commonhuman-core` instead of a bare JSON fetch — every endpoint comes back with a real, scannable URL (path params filled, base URL resolved) ready to hand to breachsql/phaseaccess. +- New `openapi_discover` tool — probes a target's common paths (`/openapi.json`, Swagger UI, ReDoc, ...) to locate its spec automatically. + +### Recon +- New `dork_search` tool — queries DuckDuckGo/Bing/Yahoo for URLs matching a dork query (e.g. `site:target.com inurl:search`), returning only parameter-bearing candidates. No API keys required. + +### Hardening +- Smart-scan now re-scores remaining tool candidates between small batches instead of committing to one fixed list up front, so a failure can down-rank a tool before the next round fires. +- Fixed a shared-driver race in the browser agent — concurrent requests now queue instead of racing on the same Selenium session. +- Harvested credentials are now encrypted at rest. +- Plugin loading now logs before executing third-party code, with an opt-in allowlist mode. + ## 1.8.0 - exploitotter (2026-08-13) ### Workbench diff --git a/README.md b/README.md index 990f811a7..530702156 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ NyxStrike connects LLM agents to real offensive security tools and executes full attack chains — from recon to exploitation. +**200+ tools · 50+ categories · AI decision engine · Tamper-evident evidence chain** + --- ## 🚀 Quick Start (Installation) @@ -81,12 +83,13 @@ Connect NyxStrike to any MCP-compatible AI client — OpenCode, Cursor, Claude D NyxStrike does not just run tools — it orchestrates full attack chains using AI decision-making. -- AI agents that chain tools automatically -- 185+ offensive security tools, all agent-controllable +- AI agents that chain tools automatically, guided by a decision engine that ranks and re-scores tools mid-scan +- 200+ offensive security tools, all agent-controllable - Full attack workflow: recon → enumeration → exploitation → reporting -- Modular tool registry — add or remove tools without touching agent logic +- Local payload & data workbench — 40+ crypto, encoding, and analysis operations, no target required +- Every tool run hash-chained for tamper-evident, verifiable evidence +- Real-time dashboard — live output, network topology maps - MCP-compatible — plug into any AI client you already use -- Real-time session dashboard with live command output and logs > [Full feature breakdown](https://github.com/CommonHuman-Lab/nyxstrike/wiki/Features) · [Session & workbench docs](https://github.com/CommonHuman-Lab/nyxstrike/wiki/Dashboard-and-Sessions) @@ -94,14 +97,15 @@ NyxStrike does not just run tools — it orchestrates full attack chains using A ## 🧰 Tool Arsenal -185+ offensive security tools across 12 categories — all dynamically orchestrated by AI agents in real time. +200+ offensive security tools across 50+ categories — all dynamically orchestrated by AI agents in real time. -- Network reconnaissance -- Web exploitation -- Wireless security +- Network & wireless reconnaissance +- Web & API exploitation - OSINT & intelligence gathering -- Password attacks -- Cloud & API security +- Password & credential attacks +- Binary exploitation & reverse engineering +- Cloud, container & IaC security +- Digital forensics & incident response > [Full tool list by category](https://github.com/CommonHuman-Lab/nyxstrike/wiki/Tool-Arsenal) diff --git a/backend/server_api/__init__.py b/backend/server_api/__init__.py index 3c8a31ccd..d2356fd64 100644 --- a/backend/server_api/__init__.py +++ b/backend/server_api/__init__.py @@ -1,6 +1,5 @@ from backend.server_api._generic.autoload import register_all_toolspec_blueprints from .ai_assist import * -from .ai_payload import * from .tools_catalog import * from .ui_blueprint import * from .settings import * @@ -10,9 +9,9 @@ from .error_handling import * from .ops import * from .vuln_intel import * -from .web_framework import * from .burp_agent import * from .workbench import * +from .payload_workbench import * def register_blueprints(app): """Register all API blueprints with the Flask app.""" @@ -33,7 +32,6 @@ def register_blueprints(app): app.register_blueprint(api_topology_bp) # OPS — General - app.register_blueprint(api_visual_bp) app.register_blueprint(api_process_management_bp) app.register_blueprint(api_process_execute_async_bp) app.register_blueprint(api_process_get_task_result_bp) @@ -47,9 +45,6 @@ def register_blueprints(app): app.register_blueprint(api_process_scale_pool_bp) app.register_blueprint(api_process_health_check_bp) - # Web Framework - app.register_blueprint(api_web_framework_http_framework_bp) - # Vulnerability Intelligence app.register_blueprint(api_vulnerability_intelligence_bp) app.register_blueprint(api_vuln_intel_cve_exploit_chain_bp) @@ -96,3 +91,6 @@ def register_blueprints(app): # Workbench app.register_blueprint(api_workbench_bp) + + # Payload Workbench + app.register_blueprint(api_payload_workbench_bp) diff --git a/backend/server_api/ai_payload/__init__.py b/backend/server_api/ai_payload/__init__.py deleted file mode 100644 index 4e9aba4d4..000000000 --- a/backend/server_api/ai_payload/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .generate_payload import * diff --git a/backend/server_api/ops/__init__.py b/backend/server_api/ops/__init__.py index b5ca725b4..badb8ee59 100644 --- a/backend/server_api/ops/__init__.py +++ b/backend/server_api/ops/__init__.py @@ -1,5 +1,4 @@ from .process_management import * -from .visual import * from .system_monitoring import * from .vulnerability_intelligence import * from .logs import * diff --git a/backend/server_api/ops/system_monitoring.py b/backend/server_api/ops/system_monitoring.py index bd008d524..da41ea210 100644 --- a/backend/server_api/ops/system_monitoring.py +++ b/backend/server_api/ops/system_monitoring.py @@ -9,10 +9,8 @@ import sys import threading import time -import traceback import backend.server_core.config_core as config_core -from backend.server_core.command_executor import execute_command from backend.server_core.modern_visual_engine import ModernVisualEngine from backend.server_core.tool_constants import ( @@ -219,31 +217,6 @@ def ping(): }) -@api_system_monitoring_bp.route("/api/command", methods=["POST"]) -def generic_command(): - """Execute any command provided in the request with enhanced logging""" - try: - params = request.json - command = params.get("command", "") - use_cache = params.get("use_cache", True) - timeout = params.get("timeout") - - if not command: - logger.warning("Command endpoint called without command parameter") - return jsonify({ - "error": "Command parameter is required" - }), 400 - - result = execute_command(command, use_cache=use_cache, timeout=timeout) - return jsonify(result) - except Exception as e: - logger.error(f"Error in command endpoint: {str(e)}") - logger.error(traceback.format_exc()) - return jsonify({ - "error": f"Server error: {str(e)}" - }), 500 - - @api_system_monitoring_bp.route("/api/tools/categories", methods=["GET"]) def get_tool_categories(): """Get the list of tool categories and their tools""" diff --git a/backend/server_api/ops/visual.py b/backend/server_api/ops/visual.py deleted file mode 100644 index ca0335303..000000000 --- a/backend/server_api/ops/visual.py +++ /dev/null @@ -1,32 +0,0 @@ -from flask import Blueprint, jsonify, request -from datetime import datetime -from backend.server_core.intelligence.cve_intelligence_manager import CVEIntelligenceManager - -import logging -logger = logging.getLogger(__name__) - - -api_visual_bp = Blueprint("visual", __name__) - -@api_visual_bp.route("/api/visual/vulnerability-card", methods=["POST"]) -def create_vulnerability_card(): - """Create a beautiful vulnerability card using CVEIntelligenceManager""" - try: - data = request.get_json() - if not data: - return jsonify({"error": "No data provided"}), 400 - - # Create vulnerability card - cve_intelligence = CVEIntelligenceManager() - card = cve_intelligence.render_vulnerability_card(data) - - return jsonify({ - "success": True, - "vulnerability_card": card, - "timestamp": datetime.now().isoformat() - }) - - except Exception as e: - logger.error(f"💥 Error creating vulnerability card: {str(e)}") - return jsonify({"error": f"Server error: {str(e)}"}), 500 - diff --git a/backend/server_api/ops/vulnerability_intelligence.py b/backend/server_api/ops/vulnerability_intelligence.py index 63fc005b7..9dde87de7 100644 --- a/backend/server_api/ops/vulnerability_intelligence.py +++ b/backend/server_api/ops/vulnerability_intelligence.py @@ -3,8 +3,10 @@ from datetime import datetime import json import logging +import math import time import uuid +from typing import Optional from werkzeug.local import LocalProxy from backend.server_core.singletons import decision_engine, wordlist_store, enhanced_process_manager @@ -159,16 +161,29 @@ def execute_tool_via_registered_endpoint(app, tool_name, params): return body -def _run_smart_scan(target: str, objective: str, planner_mode, session_id, max_tools: int) -> dict: - """Select and run optimal tools for a target in parallel, aggregating results. +def _run_smart_scan( + target: str, + objective: str, + planner_mode, + session_id, + max_tools: int, + batch_size: int = 3, + max_rounds: Optional[int] = None, +) -> dict: + """Select and run optimal tools for a target in small concurrent batches, + re-scoring the remaining candidates against updated session/tool-stats + data between batches instead of committing to one fixed list up front. Used by the decision_engine smart_scan/ai_reconnaissance_workflow/ ai_vulnerability_assessment tool handlers. """ profile = decision_engine.analyze_target(target) - selected_tools = decision_engine.select_optimal_tools( - profile, objective, planner_mode=planner_mode, session_id=session_id - )[:max_tools] + + owns_session = not session_id + if owns_session: + session_id = create_session( + target=target, steps=[], source="smart_scan_iterative", objective=objective, + )["session_id"] scan_results = { "target": target, @@ -188,18 +203,16 @@ def _run_smart_scan(target: str, objective: str, planner_mode, session_id, max_t "combined_output": "", } - if not selected_tools: - return scan_results - combined_output_parts = [] app = current_app._get_current_object() if isinstance(current_app, LocalProxy) else current_app - def execute_single_tool(tool_name, target, profile): + def execute_single_tool(tool_name, target, profile, session_id): try: logger.info(f"Executing {tool_name} with optimized parameters") optimized_params = decision_engine.optimize_parameters(tool_name, profile) optimized_params.setdefault("target", target) + optimized_params["session_id"] = session_id result = execute_tool_via_registered_endpoint(app, tool_name, optimized_params) vuln_count = 0 @@ -230,38 +243,60 @@ def execute_single_tool(tool_name, target, profile): "success": False, } - with ThreadPoolExecutor(max_workers=min(len(selected_tools), 5)) as executor: - future_to_tool = { - executor.submit(execute_single_tool, tool, target, profile): tool - for tool in selected_tools - } + executed_tools = set() + remaining = max_tools + rounds_cap = max_rounds or math.ceil(max_tools / batch_size) + round_num = 0 + + while remaining > 0 and round_num < rounds_cap: + round_num += 1 + ranked = decision_engine.select_optimal_tools( + profile, objective, planner_mode=planner_mode, session_id=session_id + ) + candidates = [t for t in ranked if t not in executed_tools] + if not candidates: + break + batch = candidates[: min(batch_size, remaining)] + + with ThreadPoolExecutor(max_workers=len(batch)) as executor: + future_to_tool = { + executor.submit(execute_single_tool, tool, target, profile, session_id): tool + for tool in batch + } - for future in as_completed(future_to_tool): - tool_result = future.result() - scan_results["tools_executed"].append(tool_result) + for future in as_completed(future_to_tool): + tool_result = future.result() + scan_results["tools_executed"].append(tool_result) + executed_tools.add(tool_result["tool"]) - if tool_result.get("vulnerabilities_found"): - scan_results["total_vulnerabilities"] += tool_result["vulnerabilities_found"] + if tool_result.get("vulnerabilities_found"): + scan_results["total_vulnerabilities"] += tool_result["vulnerabilities_found"] - if tool_result.get("stdout"): - combined_output_parts.append(f"\n=== {tool_result['tool'].upper()} OUTPUT ===\n") - combined_output_parts.append(tool_result["stdout"]) - combined_output_parts.append("\n" + "=" * 50 + "\n") + if tool_result.get("stdout"): + combined_output_parts.append(f"\n=== {tool_result['tool'].upper()} OUTPUT ===\n") + combined_output_parts.append(tool_result["stdout"]) + combined_output_parts.append("\n" + "=" * 50 + "\n") + + remaining -= len(batch) scan_results["combined_output"] = "".join(combined_output_parts) - successful_tools = [t for t in scan_results["tools_executed"] if t.get("success")] - failed_tools = [t for t in scan_results["tools_executed"] if not t.get("success")] + executed = scan_results["tools_executed"] + successful_tools = [t for t in executed if t.get("success")] + failed_tools = [t for t in executed if not t.get("success")] scan_results["execution_summary"] = { - "total_tools": len(selected_tools), + "total_tools": len(executed), "successful_tools": len(successful_tools), "failed_tools": len(failed_tools), - "success_rate": len(successful_tools) / len(selected_tools) * 100 if selected_tools else 0, - "total_execution_time": sum(t.get("execution_time", 0) for t in scan_results["tools_executed"]), + "success_rate": len(successful_tools) / len(executed) * 100 if executed else 0, + "total_execution_time": sum(t.get("execution_time", 0) for t in executed), "tools_used": [t["tool"] for t in successful_tools], } + if owns_session: + scan_results["session_id"] = session_id + return scan_results diff --git a/backend/server_api/payload_workbench/__init__.py b/backend/server_api/payload_workbench/__init__.py new file mode 100644 index 000000000..eb4251bbb --- /dev/null +++ b/backend/server_api/payload_workbench/__init__.py @@ -0,0 +1 @@ +from .routes import * diff --git a/backend/server_api/payload_workbench/routes.py b/backend/server_api/payload_workbench/routes.py new file mode 100644 index 000000000..521b89e37 --- /dev/null +++ b/backend/server_api/payload_workbench/routes.py @@ -0,0 +1,148 @@ +from flask import Blueprint, jsonify, request + +from backend.server_core.singletons import db +from backend.server_core.payload_workbench.registry import CATEGORIES, get_operation, list_operations + +api_payload_workbench_bp = Blueprint("api_payload_workbench", __name__) + + +@api_payload_workbench_bp.route("/api/payload-workbench/operations", methods=["GET"]) +def payload_workbench_operations(): + return jsonify( + { + "success": True, + "categories": CATEGORIES, + "operations": [op.to_dict() for op in list_operations()], + } + ) + + +@api_payload_workbench_bp.route("/api/payload-workbench/run/", methods=["POST"]) +def payload_workbench_run(operation_id: str): + op = get_operation(operation_id) + if op is None: + return jsonify({"success": False, "error": f"Unknown operation: {operation_id}"}) + + params = request.get_json(silent=True) or {} + try: + result = op.run(params) + except ValueError as e: + return jsonify({"success": False, "error": str(e)}) + except Exception as e: + return jsonify({"success": False, "error": f"Operation failed: {e}"}) + + return jsonify({"success": True, **result}) + + +@api_payload_workbench_bp.route("/api/payload-workbench/run-recipe", methods=["POST"]) +def payload_workbench_run_recipe(): + body = request.get_json(silent=True) or {} + current = body.get("input", "") + current_mime = None + continue_on_error = bool(body.get("continue_on_error", False)) + stop_after = body.get("stop_after_step_index") + overrides = body.get("step_input_overrides") or {} + step_results = [] + has_errors = False + + steps = body.get("steps") or [] + if stop_after is not None: + steps = steps[: int(stop_after) + 1] + + def record_failure(operation_id, name, step_input, error): + entry = {"operation_id": operation_id, "input": step_input, "error": error} + if name is not None: + entry["name"] = name + step_results.append(entry) + + for i, step in enumerate(steps): + operation_id = step.get("operation_id") + op = get_operation(operation_id) + step_input = overrides.get(str(i), current) + + if op is None: + error = f"Unknown operation: {operation_id}" + record_failure(operation_id, None, step_input, error) + if not continue_on_error: + return jsonify({"success": False, "error": error, "steps": step_results}) + has_errors = True + continue + + params = dict(step.get("params") or {}) + params["input"] = step_input + try: + result = op.run(params) + except ValueError as e: + record_failure(operation_id, op.name, step_input, str(e)) + if not continue_on_error: + return jsonify({"success": False, "error": str(e), "steps": step_results}) + has_errors = True + continue + except Exception as e: + error = f"Operation failed: {e}" + record_failure(operation_id, op.name, step_input, error) + if not continue_on_error: + return jsonify({"success": False, "error": error, "steps": step_results}) + has_errors = True + continue + + current = result.get("output", "") + current_mime = result.get("output_mime") + entry = {"operation_id": operation_id, "name": op.name, "input": step_input, "output": current} + if current_mime: + entry["output_mime"] = current_mime + step_results.append(entry) + + response = {"success": True, "output": current, "steps": step_results, "has_errors": has_errors} + if current_mime: + response["output_mime"] = current_mime + return jsonify(response) + + +@api_payload_workbench_bp.route("/api/payload-workbench/recipes", methods=["GET"]) +def payload_workbench_list_recipes(): + return jsonify({"success": True, "recipes": db.list_payload_workbench_recipes()}) + + +@api_payload_workbench_bp.route("/api/payload-workbench/recipes", methods=["POST"]) +def payload_workbench_create_recipe(): + body = request.get_json(silent=True) or {} + name = (body.get("name") or "").strip() + if not name: + return jsonify({"success": False, "error": "Recipe name must not be empty"}) + steps = body.get("steps") or [] + recipe_id = db.add_payload_workbench_recipe(name, steps) + return jsonify({"success": True, "recipe": db.get_payload_workbench_recipe(recipe_id)}) + + +@api_payload_workbench_bp.route("/api/payload-workbench/recipes/", methods=["GET"]) +def payload_workbench_get_recipe(recipe_id: str): + recipe = db.get_payload_workbench_recipe(recipe_id) + if recipe is None: + return jsonify({"success": False, "error": f"Unknown recipe: {recipe_id}"}) + return jsonify({"success": True, "recipe": recipe}) + + +@api_payload_workbench_bp.route("/api/payload-workbench/recipes/", methods=["PATCH"]) +def payload_workbench_update_recipe(recipe_id: str): + if db.get_payload_workbench_recipe(recipe_id) is None: + return jsonify({"success": False, "error": f"Unknown recipe: {recipe_id}"}) + body = request.get_json(silent=True) or {} + fields = {} + if "name" in body: + name = (body.get("name") or "").strip() + if not name: + return jsonify({"success": False, "error": "Recipe name must not be empty"}) + fields["name"] = name + if "steps" in body: + fields["steps"] = body.get("steps") or [] + db.update_payload_workbench_recipe(recipe_id, **fields) + return jsonify({"success": True, "recipe": db.get_payload_workbench_recipe(recipe_id)}) + + +@api_payload_workbench_bp.route("/api/payload-workbench/recipes/", methods=["DELETE"]) +def payload_workbench_delete_recipe(recipe_id: str): + if db.get_payload_workbench_recipe(recipe_id) is None: + return jsonify({"success": False, "error": f"Unknown recipe: {recipe_id}"}) + db.delete_payload_workbench_recipe(recipe_id) + return jsonify({"success": True}) diff --git a/backend/server_api/web_framework/browser_agent.py b/backend/server_api/web_framework/browser_agent.py index 15391d33a..83c824806 100644 --- a/backend/server_api/web_framework/browser_agent.py +++ b/backend/server_api/web_framework/browser_agent.py @@ -19,7 +19,11 @@ def __init__(self): self.screenshots = [] self.page_sources = [] self.network_logs = [] - self._lock = threading.Lock() + self._lock = threading.RLock() + + @property + def lock(self) -> threading.RLock: + return self._lock def setup_browser(self, headless: bool = True, proxy_port: Optional[int] = None): """Setup Chrome browser with security testing options""" @@ -482,6 +486,28 @@ def close_browser(self): self.driver = None logger.info(f"{ModernVisualEngine.format_tool_status('BrowserAgent', 'SUCCESS', 'Browser Closed')}") + def take_screenshot(self) -> dict: + with self._lock: + if self.driver is None: + return {'success': False, 'error': 'Browser not initialized. Use navigate action first.'} + screenshot_path = f"/tmp/security_screenshot_{int(time.time())}.png" + self.driver.save_screenshot(screenshot_path) + return { + 'success': True, + 'screenshot': screenshot_path, + 'current_url': self.driver.current_url, + 'timestamp': datetime.now().isoformat(), + } + + def get_status(self) -> dict: + with self._lock: + return { + 'success': True, + 'browser_active': self.driver is not None, + 'screenshots_taken': len(self.screenshots), + 'pages_visited': len(self.page_sources), + } + # Global instance browser_agent = BrowserAgent() diff --git a/backend/server_api/web_framework/http_framework.py b/backend/server_api/web_framework/http_framework.py index 9c52344cc..f7413d75c 100644 --- a/backend/server_api/web_framework/http_framework.py +++ b/backend/server_api/web_framework/http_framework.py @@ -1,26 +1,24 @@ -from flask import Blueprint, request, jsonify import logging import re -import requests from datetime import datetime from typing import Any, Dict, Optional -from urllib.parse import urljoin, urlparse -from bs4 import BeautifulSoup +from urllib.parse import urlparse +from commonhuman_core.crawler import crawl +from commonhuman_core.http.client import HttpClient +from commonhuman_core.auth import form_login, bearer_login, http_auth from backend.server_core import ModernVisualEngine logger = logging.getLogger(__name__) -api_web_framework_http_framework_bp = Blueprint("api_web_framework_http_framework", __name__) - class HTTPTestingFramework: """Advanced HTTP testing framework as Burp Suite alternative""" def __init__(self): - self.session = requests.Session() - self.session.headers.update({ + self._client = HttpClient(timeout=30, headers={ 'User-Agent': 'Security-HTTP-Framework/1.0 (Advanced Security Testing)' }) + self.session = self._client._session self.proxy_history = [] self.vulnerabilities = [] self.match_replace_rules = [] # [{'where':'query|headers|body|url','pattern':'regex','replacement':'str'}] @@ -34,6 +32,50 @@ def setup_proxy(self, proxy_port: int = 8080): 'https': f'http://127.0.0.1:{proxy_port}' } + def authenticate(self, auth_type: str, **kwargs) -> Dict[str, Any]: + """Authenticate the shared session via form login, OAuth2 client-credentials, or HTTP auth.""" + try: + auth_type = (auth_type or '').lower() + + if auth_type == 'form': + result = form_login( + login_url=kwargs['login_url'], + username=kwargs['username'], + password=kwargs['password'], + username_field=kwargs.get('username_field') or 'username', + password_field=kwargs.get('password_field') or 'password', + extra_fields=kwargs.get('extra_fields') or None, + client=self._client, + ) + elif auth_type == 'bearer': + result = bearer_login( + token_url=kwargs['token_url'], + client_id=kwargs['client_id'], + client_secret=kwargs['client_secret'], + grant_type=kwargs.get('grant_type') or 'client_credentials', + client=self._client, + ) + elif auth_type in ('basic', 'digest', 'ntlm'): + self.session.auth = http_auth(auth_type, kwargs['auth_cred']) + return {'success': True, 'auth_type': auth_type} + else: + return {'success': False, 'error': f'Unknown auth_type: {auth_type}'} + + if result.headers: + self.session.headers.update(result.headers) + + return { + 'success': not result.is_empty(), + 'auth_type': auth_type, + 'cookies_set': bool(result.cookies), + 'authorization_header_set': 'Authorization' in result.headers, + } + except KeyError as e: + return {'success': False, 'error': f'Missing required parameter: {e}'} + except Exception as e: + logger.error(f"{ModernVisualEngine.format_error_card('ERROR', 'Auth', str(e))}") + return {'success': False, 'error': str(e)} + def intercept_request(self, url: str, method: str = 'GET', data: Any = None, headers: Optional[Dict[str, Any]] = None, cookies: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: """Intercept and analyze HTTP requests""" @@ -49,9 +91,9 @@ def intercept_request(self, url: str, method: str = 'GET', data: Any = None, send_headers.update(headers) if method.upper() == 'GET': - response = self.session.get(url, params=data, headers=send_headers, timeout=30) + response = self._client.get(url, params=data, headers=send_headers) elif method.upper() == 'POST': - response = self.session.post(url, data=data, headers=send_headers, timeout=30) + response = self._client.post(url, data=data, headers=send_headers) elif method.upper() == 'PUT': response = self.session.put(url, data=data, headers=send_headers, timeout=30) elif method.upper() == 'DELETE': @@ -222,9 +264,10 @@ def intruder_sniper(self, url: str, method: str = 'GET', location: str = 'query' def _analyze_response_for_vulns(self, url: str, response): """Analyze HTTP response for common vulnerabilities""" - vulns = [] + self._check_security_headers(url, response.headers) + self._analyze_body_for_vulns(url, response.text) - # Check for missing security headers + def _check_security_headers(self, url: str, headers) -> None: security_headers = { 'X-Frame-Options': 'Clickjacking protection missing', 'X-Content-Type-Options': 'MIME type sniffing protection missing', @@ -233,8 +276,9 @@ def _analyze_response_for_vulns(self, url: str, response): 'Content-Security-Policy': 'Content Security Policy missing' } + vulns = [] for header, description in security_headers.items(): - if header not in response.headers: + if header not in headers: vulns.append({ 'type': 'missing_security_header', 'severity': 'medium', @@ -242,6 +286,10 @@ def _analyze_response_for_vulns(self, url: str, response): 'url': url, 'header': header }) + self.vulnerabilities.extend(vulns) + + def _analyze_body_for_vulns(self, url: str, text: str) -> None: + vulns = [] # Check for sensitive information disclosure sensitive_patterns = [ @@ -252,7 +300,7 @@ def _analyze_response_for_vulns(self, url: str, response): ] for pattern, description in sensitive_patterns: - matches = re.findall(pattern, response.text, re.IGNORECASE) + matches = re.findall(pattern, text, re.IGNORECASE) if matches: vulns.append({ 'type': 'information_disclosure', @@ -272,7 +320,7 @@ def _analyze_response_for_vulns(self, url: str, response): ] for error in sql_errors: - if error.lower() in response.text.lower(): + if error.lower() in text.lower(): vulns.append({ 'type': 'sql_injection_indicator', 'severity': 'high', @@ -287,81 +335,33 @@ def _get_recent_vulns(self, limit: int = 10): return self.vulnerabilities[-limit:] if self.vulnerabilities else [] def spider_website(self, base_url: str, max_depth: int = 3, max_pages: int = 100) -> dict: - """Spider website to discover endpoints and forms""" + """Spider website to discover endpoints and forms via commonhuman_core.crawler""" try: - discovered_urls = set() - forms = [] - to_visit = [(base_url, 0)] - visited = set() - - while to_visit and len(discovered_urls) < max_pages: - current_url, depth = to_visit.pop(0) - - if current_url in visited or depth > max_depth: - continue - - visited.add(current_url) - + result = crawl(base_url, injector=self._client, max_pages=max_pages, max_depth=max_depth) + + forms = [ + { + 'action': form.action, + 'method': form.method, + 'inputs': [{'name': name, 'value': value} for name, value in form.params.items()], + 'base_data': form.base_data, + } + for form in result.form_targets + ] + + for url, html in result.page_sources.items(): try: - response = self.session.get(current_url, timeout=10) - if response.status_code == 200: - discovered_urls.add(current_url) - - # Parse HTML for links and forms - soup = BeautifulSoup(response.text, 'html.parser') - - # Find all links - for link in soup.find_all('a', href=True): - href_attr = link.get('href') - if isinstance(href_attr, list): - href = href_attr[0] if href_attr else "" - elif isinstance(href_attr, str): - href = href_attr - else: - href = "" - if not href: - continue - full_url = urljoin(current_url, href) - - if urlparse(full_url).netloc == urlparse(base_url).netloc: - if full_url not in visited and depth < max_depth: - to_visit.append((full_url, depth + 1)) - - # Find all forms - for form in soup.find_all('form'): - action_attr = form.get('action') - if isinstance(action_attr, list): - action_value = action_attr[0] if action_attr else '' - elif isinstance(action_attr, str): - action_value = action_attr - else: - action_value = '' - - form_data = { - 'url': current_url, - 'action': urljoin(current_url, action_value), - 'method': str(form.get('method') or 'GET').upper(), - 'inputs': [] - } - - for input_tag in form.find_all(['input', 'textarea', 'select']): - form_data['inputs'].append({ - 'name': input_tag.get('name', ''), - 'type': input_tag.get('type', 'text'), - 'value': input_tag.get('value', '') - }) - - forms.append(form_data) - - except Exception as e: - logger.warning(f"Error spidering {current_url}: {str(e)}") - continue + head_resp = self.session.head(url, timeout=10, allow_redirects=True) + self._check_security_headers(url, head_resp.headers) + except Exception: + pass + self._analyze_body_for_vulns(url, html) return { 'success': True, - 'discovered_urls': list(discovered_urls), + 'discovered_urls': result.visited_urls, 'forms': forms, - 'total_pages': len(discovered_urls), + 'total_pages': len(result.visited_urls), 'vulnerabilities': self._get_recent_vulns() } @@ -372,98 +372,3 @@ def spider_website(self, base_url: str, max_depth: int = 3, max_pages: int = 100 # Global instance http_framework = HTTPTestingFramework() - - -@api_web_framework_http_framework_bp.route("/api/tools/http-framework", methods=["POST"]) -def http_framework_endpoint(): - """Enhanced HTTP testing framework (Burp Suite alternative)""" - try: - params = request.json - action = params.get("action", "request") # request, spider, proxy_history, set_rules, set_scope, repeater, intruder - url = params.get("url", "") - method = params.get("method", "GET") - data = params.get("data", {}) - headers = params.get("headers", {}) - cookies = params.get("cookies", {}) - - if action == "request": - if not url: - return jsonify({"error": "URL parameter is required for request action"}), 400 - - request_command = f"{method} {url}" - logger.info(f"{ModernVisualEngine.format_command_execution(request_command, 'STARTING')}") - result = http_framework.intercept_request(url, method, data, headers, cookies) - - if result.get("success"): - logger.info(f"{ModernVisualEngine.format_tool_status('HTTP-Framework', 'SUCCESS', url)}") - else: - logger.error(f"{ModernVisualEngine.format_tool_status('HTTP-Framework', 'FAILED', url)}") - - return jsonify(result) - - elif action == "spider": - if not url: - return jsonify({"error": "URL parameter is required for spider action"}), 400 - - max_depth = params.get("max_depth", 3) - max_pages = params.get("max_pages", 100) - - spider_command = f"Spider {url}" - logger.info(f"{ModernVisualEngine.format_command_execution(spider_command, 'STARTING')}") - result = http_framework.spider_website(url, max_depth, max_pages) - - if result.get("success"): - total_pages = result.get("total_pages", 0) - pages_info = f"{total_pages} pages" - logger.info(f"{ModernVisualEngine.format_tool_status('HTTP-Spider', 'SUCCESS', pages_info)}") - else: - logger.error(f"{ModernVisualEngine.format_tool_status('HTTP-Spider', 'FAILED', url)}") - - return jsonify(result) - - elif action == "proxy_history": - return jsonify({ - "success": True, - "history": http_framework.proxy_history[-100:], # Last 100 requests - "total_requests": len(http_framework.proxy_history), - "vulnerabilities": http_framework.vulnerabilities, - }) - - elif action == "set_rules": - rules = params.get("rules", []) - http_framework.set_match_replace_rules(rules) - return jsonify({"success": True, "rules_set": len(rules)}) - - elif action == "set_scope": - scope_host = params.get("host") - include_sub = params.get("include_subdomains", True) - if not scope_host: - return jsonify({"error": "host parameter required"}), 400 - http_framework.set_scope(scope_host, include_sub) - return jsonify({"success": True, "scope": http_framework.scope}) - - elif action == "repeater": - request_spec = params.get("request") or {} - result = http_framework.send_custom_request(request_spec) - return jsonify(result) - - elif action == "intruder": - if not url: - return jsonify({"error": "URL parameter required"}), 400 - method = params.get("method", "GET") - location = params.get("location", "query") - fuzz_params = params.get("params", []) - payloads = params.get("payloads", []) - base_data = params.get("base_data", {}) - max_requests = params.get("max_requests", 100) - result = http_framework.intruder_sniper( - url, method, location, fuzz_params, payloads, base_data, max_requests - ) - return jsonify(result) - - else: - return jsonify({"error": f"Unknown action: {action}"}), 400 - - except Exception as e: - logger.error(f"{ModernVisualEngine.format_error_card('ERROR', 'HTTP-Framework', str(e))}") - return jsonify({"error": f"Server error: {str(e)}"}), 500 diff --git a/backend/server_api/workbench/routes.py b/backend/server_api/workbench/routes.py index e77860489..259315c95 100644 --- a/backend/server_api/workbench/routes.py +++ b/backend/server_api/workbench/routes.py @@ -1,6 +1,7 @@ from flask import Blueprint, jsonify, request from backend.server_core.singletons import db +from backend.server_core.workbench.decloak import run_decloak from backend.server_core.workbench.registry import CATEGORIES, get_operation, list_operations api_workbench_bp = Blueprint("api_workbench", __name__) @@ -99,6 +100,22 @@ def record_failure(operation_id, name, step_input, error): return jsonify(response) +@api_workbench_bp.route("/api/workbench/decloak", methods=["POST"]) +def workbench_decloak(): + body = request.get_json(silent=True) or {} + input_text = body.get("input", "") + max_depth = body.get("max_depth") + try: + max_depth = int(max_depth) if max_depth is not None else 8 + except (TypeError, ValueError): + max_depth = 8 + try: + result = run_decloak(input_text, max_depth=max_depth) + except Exception as e: + return jsonify({"success": False, "error": f"Decloak failed: {e}"}) + return jsonify({"success": True, **result}) + + @api_workbench_bp.route("/api/workbench/recipes", methods=["GET"]) def workbench_list_recipes(): return jsonify({"success": True, "recipes": db.list_workbench_recipes()}) diff --git a/backend/server_core/__init__.py b/backend/server_core/__init__.py index 3ddff48c7..5a5c07e70 100644 --- a/backend/server_core/__init__.py +++ b/backend/server_core/__init__.py @@ -20,7 +20,7 @@ from .rate_limit_detector import RateLimitDetector from .failure_recovery_system import FailureRecoverySystem from .performance_monitor import PerformanceMonitor -from .ai_exploit_generator import AIExploitGenerator +from .generators.ai_exploit_generator import AIExploitGenerator from .intelligence.cve_intelligence_manager import CVEIntelligenceManager from .intelligence.intelligent_decision_engine import IntelligentDecisionEngine diff --git a/backend/server_core/colored_formatter.py b/backend/server_core/colored_formatter.py index 9690adfc5..c82dd14e6 100644 --- a/backend/server_core/colored_formatter.py +++ b/backend/server_core/colored_formatter.py @@ -1,7 +1,7 @@ import logging import re -# ANSI color codes (inlined to avoid importing from mcp_core) +# ANSI color codes (inlined to avoid importing from mcp_client) _COLORS = { 'DEBUG': '\033[38;5;240m', # gray 'INFO': '\033[38;5;46m', # bright green diff --git a/backend/server_core/credential_crypto.py b/backend/server_core/credential_crypto.py new file mode 100644 index 000000000..9f6e90bcb --- /dev/null +++ b/backend/server_core/credential_crypto.py @@ -0,0 +1,57 @@ +import os +import threading + +from cryptography.fernet import Fernet, InvalidToken + +from backend.server_core import config_core + +_PREFIX = "fernet:v1:" +_lock = threading.Lock() +_fernet: Fernet | None = None + + +def _key_path() -> str: + config_dir = os.path.join(config_core.default_data_dir(), "config") + os.makedirs(config_dir, exist_ok=True) + return os.path.join(config_dir, "cred_key") + + +def _load_or_create_key() -> bytes: + env_key = os.environ.get("NYXSTRIKE_CRED_ENC_KEY", "").strip() + if env_key: + return env_key.encode() + + path = _key_path() + if os.path.exists(path): + with open(path, "rb") as fh: + return fh.read().strip() + + key = Fernet.generate_key() + with open(path, "wb") as fh: + fh.write(key) + os.chmod(path, 0o600) + return key + + +def _get_fernet() -> Fernet: + global _fernet + if _fernet is None: + with _lock: + if _fernet is None: + _fernet = Fernet(_load_or_create_key()) + return _fernet + + +def encrypt_secret(plaintext: str) -> str: + if not plaintext: + return plaintext + return _PREFIX + _get_fernet().encrypt(plaintext.encode()).decode() + + +def decrypt_secret(value: str) -> str: + if not value or not value.startswith(_PREFIX): + return value + try: + return _get_fernet().decrypt(value[len(_PREFIX):].encode()).decode() + except InvalidToken: + return value diff --git a/backend/server_core/db.py b/backend/server_core/db.py index d7793c406..534326377 100644 --- a/backend/server_core/db.py +++ b/backend/server_core/db.py @@ -32,6 +32,7 @@ from typing import Any, Dict, List, Optional import backend.server_core.config_core as config_core +from backend.server_core import credential_crypto logger = logging.getLogger(__name__) @@ -120,6 +121,7 @@ def _ensure_tables(self) -> None: self._migrate_chat_messages_stats() self._migrate_credentials_loot() self._migrate_workbench_recipes() + self._migrate_payload_workbench_recipes() logger.debug("db: tables verified") @@ -204,6 +206,24 @@ def _migrate_workbench_recipes(self) -> None: self._conn.commit() logger.debug("db: workbench_recipes table verified") + def _migrate_payload_workbench_recipes(self) -> None: + """Create the payload_workbench_recipes table if missing (existing DBs).""" + with self._lock: + self._conn.executescript(""" + CREATE TABLE IF NOT EXISTS payload_workbench_recipes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + recipe_id TEXT UNIQUE NOT NULL, + name TEXT NOT NULL, + steps TEXT NOT NULL DEFAULT '[]', + created_at TEXT DEFAULT (datetime('now')), + updated_at TEXT DEFAULT (datetime('now')) + ); + + CREATE INDEX IF NOT EXISTS idx_payload_workbench_recipes_name ON payload_workbench_recipes(name); + """) + self._conn.commit() + logger.debug("db: payload_workbench_recipes table verified") + # ── Internal helpers ───────────────────────────────────────────────────────── def _row_to_dict(self, row: Optional[sqlite3.Row]) -> Optional[Dict[str, Any]]: @@ -443,7 +463,7 @@ def add_credential(self, cred: Dict[str, Any], session_id: Optional[str] = None) cred_id, cred.get("type", "plaintext"), cred.get("username", ""), - cred.get("secret", ""), + credential_crypto.encrypt_secret(cred.get("secret", "")), cred.get("hash_type", ""), cred.get("service", ""), cred.get("host", ""), @@ -468,6 +488,8 @@ def get_credential(self, cred_id: str) -> Optional[Dict[str, Any]]: row["tags"] = json.loads(row["tags"]) except Exception: row["tags"] = [] + if row and "secret" in row: + row["secret"] = credential_crypto.decrypt_secret(row["secret"]) return row def list_credentials( @@ -513,6 +535,8 @@ def list_credentials( row["tags"] = json.loads(row["tags"]) except Exception: row["tags"] = [] + if "secret" in row: + row["secret"] = credential_crypto.decrypt_secret(row["secret"]) return rows def update_credential(self, cred_id: str, **fields: Any) -> None: @@ -526,6 +550,8 @@ def update_credential(self, cred_id: str, **fields: Any) -> None: return if "tags" in updates and isinstance(updates["tags"], list): updates["tags"] = json.dumps(updates["tags"]) + if "secret" in updates: + updates["secret"] = credential_crypto.encrypt_secret(updates["secret"]) updates["updated_at"] = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") set_clause = ", ".join(f"{k} = ?" for k in updates) values = list(updates.values()) + [cred_id] @@ -712,6 +738,69 @@ def delete_workbench_recipe(self, recipe_id: str) -> None: self._conn.execute("DELETE FROM workbench_recipes WHERE recipe_id = ?", (recipe_id,)) self._conn.commit() + # ── Payload Workbench recipes ──────────────────────────────────────────────── + + def add_payload_workbench_recipe(self, name: str, steps: List[Dict[str, Any]]) -> str: + """Insert a saved Payload Workbench recipe and return its recipe_id.""" + import uuid + recipe_id = f"recipe_{uuid.uuid4().hex[:8]}" + with self._lock: + self._conn.execute( + "INSERT INTO payload_workbench_recipes (recipe_id, name, steps) VALUES (?, ?, ?)", + (recipe_id, name, json.dumps(steps)), + ) + self._conn.commit() + return recipe_id + + def get_payload_workbench_recipe(self, recipe_id: str) -> Optional[Dict[str, Any]]: + """Return a single saved recipe or None.""" + with self._lock: + cur = self._conn.execute("SELECT * FROM payload_workbench_recipes WHERE recipe_id = ?", (recipe_id,)) + row = self._row_to_dict(cur.fetchone()) + if row and isinstance(row.get("steps"), str): + try: + row["steps"] = json.loads(row["steps"]) + except Exception: + row["steps"] = [] + return row + + def list_payload_workbench_recipes(self) -> List[Dict[str, Any]]: + """Return all saved recipes, most recently updated first.""" + with self._lock: + cur = self._conn.execute("SELECT * FROM payload_workbench_recipes ORDER BY updated_at DESC") + rows = self._rows_to_list(cur.fetchall()) + for row in rows: + if isinstance(row.get("steps"), str): + try: + row["steps"] = json.loads(row["steps"]) + except Exception: + row["steps"] = [] + return rows + + def update_payload_workbench_recipe(self, recipe_id: str, **fields: Any) -> None: + """Update allowed fields on a saved recipe.""" + allowed = {"name", "steps"} + updates = {k: v for k, v in fields.items() if k in allowed} + if not updates: + return + if "steps" in updates and isinstance(updates["steps"], list): + updates["steps"] = json.dumps(updates["steps"]) + updates["updated_at"] = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") + set_clause = ", ".join(f"{k} = ?" for k in updates) + values = list(updates.values()) + [recipe_id] + with self._lock: + self._conn.execute( + f"UPDATE payload_workbench_recipes SET {set_clause} WHERE recipe_id = ?", + values, + ) + self._conn.commit() + + def delete_payload_workbench_recipe(self, recipe_id: str) -> None: + """Delete a saved recipe.""" + with self._lock: + self._conn.execute("DELETE FROM payload_workbench_recipes WHERE recipe_id = ?", (recipe_id,)) + self._conn.commit() + # ── Lifecycle ───────────────────────────────────────────────────────────────── def close(self) -> None: diff --git a/backend/server_core/error_handling.py b/backend/server_core/error_handling.py index fd3fed1a7..d856aacf9 100644 --- a/backend/server_core/error_handling.py +++ b/backend/server_core/error_handling.py @@ -1064,6 +1064,8 @@ def _reduce_scope(command: str, params: Dict[str, Any]) -> str: result = _re.sub(r"(--timeout\s+)\d+", r"\g<1>30", result) return result + _GOBUSTER_SUBCOMMANDS = {"dir", "dns", "fuzz", "gcs", "s3", "tftp", "vhost"} + @staticmethod def _substitute_tool(command: str, new_tool: str) -> str: """Replace the leading binary name in *command* with *new_tool*.""" @@ -1074,7 +1076,19 @@ def _substitute_tool(command: str, new_tool: str) -> str: parts = command.split() if not parts: return command + old_tool = parts[0] parts[0] = new_tool + + if new_tool == "gobuster": + if old_tool == "ffuf": + parts = [ + part[: -len("FUZZ")] if part.endswith("/FUZZ") else "-s" if part == "-mc" else part + for part in parts + ] + if "-s" in parts: + parts += ["-b", ""] + if len(parts) < 2 or parts[1] not in RecoveryExecutor._GOBUSTER_SUBCOMMANDS: + parts.insert(1, "dir") try: return " ".join(_shlex.quote(p) for p in parts) except Exception: diff --git a/mcp_client/mcp_tools/_generic/__init__.py b/backend/server_core/generators/__init__.py similarity index 100% rename from mcp_client/mcp_tools/_generic/__init__.py rename to backend/server_core/generators/__init__.py diff --git a/backend/server_core/ai_exploit_generator.py b/backend/server_core/generators/ai_exploit_generator.py similarity index 99% rename from backend/server_core/ai_exploit_generator.py rename to backend/server_core/generators/ai_exploit_generator.py index 334d17d00..c9aa2ebe3 100644 --- a/backend/server_core/ai_exploit_generator.py +++ b/backend/server_core/generators/ai_exploit_generator.py @@ -1,5 +1,5 @@ # ============================================================================ -# AI-POWERED EXPLOIT GENERATION SYSTEM (v6.0 ENHANCEMENT) +# AI-POWERED EXPLOIT GENERATION SYSTEM # ============================================================================ # # This section contains advanced AI-powered exploit generation capabilities diff --git a/backend/server_api/ai_payload/generate_payload.py b/backend/server_core/generators/payload_generator.py similarity index 77% rename from backend/server_api/ai_payload/generate_payload.py rename to backend/server_core/generators/payload_generator.py index f8f34d36f..641691697 100644 --- a/backend/server_api/ai_payload/generate_payload.py +++ b/backend/server_core/generators/payload_generator.py @@ -1,53 +1,54 @@ import logging -from typing import Dict, Any +from typing import Dict, Any, List, Tuple + +from commonhuman_payloads.xss import get_basic_payloads as _xss_basic_payloads +from commonhuman_payloads.xss.advanced import ( + POLYGLOT, + DOM_CLOBBERING, + ANGULAR_TEMPLATE, + VUE_TEMPLATE, + WAF_BYPASS_DOUBLE_ENCODE, + WAF_BYPASS_GLOBAL, + SANITIZER_BYPASS, + UNICODE_CASE_BYPASS, +) +from commonhuman_payloads.sqli import ( + get_boolean_pairs, + get_error_payloads, + get_concat_payloads, + get_dios_payloads, + get_time_payloads, +) logger = logging.getLogger(__name__) +XSS_MARKER = "XSS" + + +def _with_marker(payloads: List[str], marker: str = XSS_MARKER) -> List[str]: + return [p.replace("{marker}", marker) for p in payloads] + + +def _flatten_pairs(pairs: List[Tuple[str, str]]) -> List[str]: + return [p for pair in pairs for p in pair] -# ============================================================================ -# AI-POWERED PAYLOAD GENERATION (v5.0 ENHANCEMENT) UNDER DEVELOPMENT -# ============================================================================ class AIPayloadGenerator: - """AI-powered payload generation system with contextual intelligence""" + """Payload generation system backed by the commonhuman-payloads library""" def __init__(self): self.payload_templates = { "xss": { - "basic": ["", "javascript:alert('XSS')", "'>"], - "advanced": [ - "", - "", - "';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//", - "\">`)):e.match(`DOCTYPE`,!0,!0)?(e.eatWhile(/[\w\._\-]/),n(h(1))):null:e.eat(`?`)?(e.eatWhile(/[\w\._\-]/),t.tokenize=m(`meta`,`?>`),`meta`):(l=e.eat(`/`)?`closeTag`:`openTag`,t.tokenize=f,`tag bracket`):r==`&`?(e.eat(`#`)?e.eat(`x`)?e.eatWhile(/[a-fA-F\d]/)&&e.eat(`;`):e.eatWhile(/[\d]/)&&e.eat(`;`):e.eatWhile(/[\w\.\-:]/)&&e.eat(`;`))?`atom`:`error`:(e.eatWhile(/[^&<]/),null)}d.isInText=!0;function f(e,t){var n=e.next();if(n==`>`||n==`/`&&e.eat(`>`))return t.tokenize=d,l=n==`>`?`endTag`:`selfcloseTag`,`tag bracket`;if(n==`=`)return l=`equals`,null;if(n==`<`){t.tokenize=d,t.state=b,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+` tag error`:`tag error`}return/[\'\"]/.test(n)?(t.tokenize=p(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),`word`)}function p(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=f;break}return`string`};return t.isInAttribute=!0,t}function m(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function h(e){return function(t,n){for(var r;(r=t.next())!=null;)if(r==`<`)return n.tokenize=h(e+1),n.tokenize(t,n);else if(r==`>`){if(e==1){n.tokenize=d;break}return n.tokenize=h(e-1),n.tokenize(t,n)}return`meta`}}function g(e){return e&&e.toLowerCase()}function _(e,t,n){this.prev=e.context,this.tagName=t||``,this.indent=e.indented,this.startOfLine=n,(o.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function v(e){e.context&&=e.context.prev}function y(e,t){for(var n;;){if(!e.context||(n=e.context.tagName,!o.contextGrabbers.hasOwnProperty(g(n))||!o.contextGrabbers[g(n)].hasOwnProperty(g(t))))return;v(e)}}function b(e,t,n){return e==`openTag`?(n.tagStart=t.column(),x):e==`closeTag`?S:b}function x(e,t,n){return e==`word`?(n.tagName=t.current(),u=`tag`,T):o.allowMissingTagName&&e==`endTag`?(u=`tag bracket`,T(e,t,n)):(u=`error`,x)}function S(e,t,n){if(e==`word`){var r=t.current();return n.context&&n.context.tagName!=r&&o.implicitlyClosed.hasOwnProperty(g(n.context.tagName))&&v(n),n.context&&n.context.tagName==r||o.matchClosing===!1?(u=`tag`,C):(u=`tag error`,w)}return o.allowMissingTagName&&e==`endTag`?(u=`tag bracket`,C(e,t,n)):(u=`error`,w)}function C(e,t,n){return e==`endTag`?(v(n),b):(u=`error`,C)}function w(e,t,n){return u=`error`,C(e,t,n)}function T(e,t,n){if(e==`word`)return u=`attribute`,E;if(e==`endTag`||e==`selfcloseTag`){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,e==`selfcloseTag`||o.autoSelfClosers.hasOwnProperty(g(r))?y(n,r):(y(n,r),n.context=new _(n,r,i==n.indented)),b}return u=`error`,T}function E(e,t,n){return e==`equals`?D:(o.allowMissing||(u=`error`),T(e,t,n))}function D(e,t,n){return e==`string`?O:e==`word`&&o.allowUnquoted?(u=`string`,T):(u=`error`,T(e,t,n))}function O(e,t,n){return e==`string`?O:T(e,t,n)}return{startState:function(e){var t={tokenize:d,state:b,indented:e||0,tagName:null,tagStart:null,context:null};return e!=null&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;l=null;var n=t.tokenize(e,t);return(n||l)&&n!=`comment`&&(u=null,t.state=t.state(l||n,e,t),u&&(n=u==`error`?n+` error`:u)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+a;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=f&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return o.multilineTagIndentPastTag===!1?t.tagStart+a*(o.multilineTagIndentFactor||1):t.tagStart+t.tagName.length+2;if(o.alignCDATA&&/$/,blockCommentStart:``,configuration:o.htmlMode?`html`:`xml`,helperType:o.htmlMode?`html`:`xml`,skipAttribute:function(e){e.state==D&&(e.state=T)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:e.type==`closeTag`}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}}),e.defineMIME(`text/xml`,`xml`),e.defineMIME(`application/xml`,`xml`),e.mimeModes.hasOwnProperty(`text/html`)||e.defineMIME(`text/html`,{name:`xml`,htmlMode:!0})})})),x=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../lib/codemirror`],n):n(CodeMirror)})(function(e){e.modeInfo=[{name:`APL`,mime:`text/apl`,mode:`apl`,ext:[`dyalog`,`apl`]},{name:`PGP`,mimes:[`application/pgp`,`application/pgp-encrypted`,`application/pgp-keys`,`application/pgp-signature`],mode:`asciiarmor`,ext:[`asc`,`pgp`,`sig`]},{name:`ASN.1`,mime:`text/x-ttcn-asn`,mode:`asn.1`,ext:[`asn`,`asn1`]},{name:`Asterisk`,mime:`text/x-asterisk`,mode:`asterisk`,file:/^extensions\.conf$/i},{name:`Brainfuck`,mime:`text/x-brainfuck`,mode:`brainfuck`,ext:[`b`,`bf`]},{name:`C`,mime:`text/x-csrc`,mode:`clike`,ext:[`c`,`h`,`ino`]},{name:`C++`,mime:`text/x-c++src`,mode:`clike`,ext:[`cpp`,`c++`,`cc`,`cxx`,`hpp`,`h++`,`hh`,`hxx`],alias:[`cpp`]},{name:`Cobol`,mime:`text/x-cobol`,mode:`cobol`,ext:[`cob`,`cpy`,`cbl`]},{name:`C#`,mime:`text/x-csharp`,mode:`clike`,ext:[`cs`],alias:[`csharp`,`cs`]},{name:`Clojure`,mime:`text/x-clojure`,mode:`clojure`,ext:[`clj`,`cljc`,`cljx`]},{name:`ClojureScript`,mime:`text/x-clojurescript`,mode:`clojure`,ext:[`cljs`]},{name:`Closure Stylesheets (GSS)`,mime:`text/x-gss`,mode:`css`,ext:[`gss`]},{name:`CMake`,mime:`text/x-cmake`,mode:`cmake`,ext:[`cmake`,`cmake.in`],file:/^CMakeLists\.txt$/},{name:`CoffeeScript`,mimes:[`application/vnd.coffeescript`,`text/coffeescript`,`text/x-coffeescript`],mode:`coffeescript`,ext:[`coffee`],alias:[`coffee`,`coffee-script`]},{name:`Common Lisp`,mime:`text/x-common-lisp`,mode:`commonlisp`,ext:[`cl`,`lisp`,`el`],alias:[`lisp`]},{name:`Cypher`,mime:`application/x-cypher-query`,mode:`cypher`,ext:[`cyp`,`cypher`]},{name:`Cython`,mime:`text/x-cython`,mode:`python`,ext:[`pyx`,`pxd`,`pxi`]},{name:`Crystal`,mime:`text/x-crystal`,mode:`crystal`,ext:[`cr`]},{name:`CSS`,mime:`text/css`,mode:`css`,ext:[`css`]},{name:`CQL`,mime:`text/x-cassandra`,mode:`sql`,ext:[`cql`]},{name:`D`,mime:`text/x-d`,mode:`d`,ext:[`d`]},{name:`Dart`,mimes:[`application/dart`,`text/x-dart`],mode:`dart`,ext:[`dart`]},{name:`diff`,mime:`text/x-diff`,mode:`diff`,ext:[`diff`,`patch`]},{name:`Django`,mime:`text/x-django`,mode:`django`},{name:`Dockerfile`,mime:`text/x-dockerfile`,mode:`dockerfile`,file:/^Dockerfile$/},{name:`DTD`,mime:`application/xml-dtd`,mode:`dtd`,ext:[`dtd`]},{name:`Dylan`,mime:`text/x-dylan`,mode:`dylan`,ext:[`dylan`,`dyl`,`intr`]},{name:`EBNF`,mime:`text/x-ebnf`,mode:`ebnf`},{name:`ECL`,mime:`text/x-ecl`,mode:`ecl`,ext:[`ecl`]},{name:`edn`,mime:`application/edn`,mode:`clojure`,ext:[`edn`]},{name:`Eiffel`,mime:`text/x-eiffel`,mode:`eiffel`,ext:[`e`]},{name:`Elm`,mime:`text/x-elm`,mode:`elm`,ext:[`elm`]},{name:`Embedded JavaScript`,mime:`application/x-ejs`,mode:`htmlembedded`,ext:[`ejs`]},{name:`Embedded Ruby`,mime:`application/x-erb`,mode:`htmlembedded`,ext:[`erb`]},{name:`Erlang`,mime:`text/x-erlang`,mode:`erlang`,ext:[`erl`]},{name:`Esper`,mime:`text/x-esper`,mode:`sql`},{name:`Factor`,mime:`text/x-factor`,mode:`factor`,ext:[`factor`]},{name:`FCL`,mime:`text/x-fcl`,mode:`fcl`},{name:`Forth`,mime:`text/x-forth`,mode:`forth`,ext:[`forth`,`fth`,`4th`]},{name:`Fortran`,mime:`text/x-fortran`,mode:`fortran`,ext:[`f`,`for`,`f77`,`f90`,`f95`]},{name:`F#`,mime:`text/x-fsharp`,mode:`mllike`,ext:[`fs`],alias:[`fsharp`]},{name:`Gas`,mime:`text/x-gas`,mode:`gas`,ext:[`s`]},{name:`Gherkin`,mime:`text/x-feature`,mode:`gherkin`,ext:[`feature`]},{name:`GitHub Flavored Markdown`,mime:`text/x-gfm`,mode:`gfm`,file:/^(readme|contributing|history)\.md$/i},{name:`Go`,mime:`text/x-go`,mode:`go`,ext:[`go`]},{name:`Groovy`,mime:`text/x-groovy`,mode:`groovy`,ext:[`groovy`,`gradle`],file:/^Jenkinsfile$/},{name:`HAML`,mime:`text/x-haml`,mode:`haml`,ext:[`haml`]},{name:`Haskell`,mime:`text/x-haskell`,mode:`haskell`,ext:[`hs`]},{name:`Haskell (Literate)`,mime:`text/x-literate-haskell`,mode:`haskell-literate`,ext:[`lhs`]},{name:`Haxe`,mime:`text/x-haxe`,mode:`haxe`,ext:[`hx`]},{name:`HXML`,mime:`text/x-hxml`,mode:`haxe`,ext:[`hxml`]},{name:`ASP.NET`,mime:`application/x-aspx`,mode:`htmlembedded`,ext:[`aspx`],alias:[`asp`,`aspx`]},{name:`HTML`,mime:`text/html`,mode:`htmlmixed`,ext:[`html`,`htm`,`handlebars`,`hbs`],alias:[`xhtml`]},{name:`HTTP`,mime:`message/http`,mode:`http`},{name:`IDL`,mime:`text/x-idl`,mode:`idl`,ext:[`pro`]},{name:`Pug`,mime:`text/x-pug`,mode:`pug`,ext:[`jade`,`pug`],alias:[`jade`]},{name:`Java`,mime:`text/x-java`,mode:`clike`,ext:[`java`]},{name:`Java Server Pages`,mime:`application/x-jsp`,mode:`htmlembedded`,ext:[`jsp`],alias:[`jsp`]},{name:`JavaScript`,mimes:[`text/javascript`,`text/ecmascript`,`application/javascript`,`application/x-javascript`,`application/ecmascript`],mode:`javascript`,ext:[`js`],alias:[`ecmascript`,`js`,`node`]},{name:`JSON`,mimes:[`application/json`,`application/x-json`],mode:`javascript`,ext:[`json`,`map`],alias:[`json5`]},{name:`JSON-LD`,mime:`application/ld+json`,mode:`javascript`,ext:[`jsonld`],alias:[`jsonld`]},{name:`JSX`,mime:`text/jsx`,mode:`jsx`,ext:[`jsx`]},{name:`Jinja2`,mime:`text/jinja2`,mode:`jinja2`,ext:[`j2`,`jinja`,`jinja2`]},{name:`Julia`,mime:`text/x-julia`,mode:`julia`,ext:[`jl`],alias:[`jl`]},{name:`Kotlin`,mime:`text/x-kotlin`,mode:`clike`,ext:[`kt`]},{name:`LESS`,mime:`text/x-less`,mode:`css`,ext:[`less`]},{name:`LiveScript`,mime:`text/x-livescript`,mode:`livescript`,ext:[`ls`],alias:[`ls`]},{name:`Lua`,mime:`text/x-lua`,mode:`lua`,ext:[`lua`]},{name:`Markdown`,mime:`text/x-markdown`,mode:`markdown`,ext:[`markdown`,`md`,`mkd`]},{name:`mIRC`,mime:`text/mirc`,mode:`mirc`},{name:`MariaDB SQL`,mime:`text/x-mariadb`,mode:`sql`},{name:`Mathematica`,mime:`text/x-mathematica`,mode:`mathematica`,ext:[`m`,`nb`,`wl`,`wls`]},{name:`Modelica`,mime:`text/x-modelica`,mode:`modelica`,ext:[`mo`]},{name:`MUMPS`,mime:`text/x-mumps`,mode:`mumps`,ext:[`mps`]},{name:`MS SQL`,mime:`text/x-mssql`,mode:`sql`},{name:`mbox`,mime:`application/mbox`,mode:`mbox`,ext:[`mbox`]},{name:`MySQL`,mime:`text/x-mysql`,mode:`sql`},{name:`Nginx`,mime:`text/x-nginx-conf`,mode:`nginx`,file:/nginx.*\.conf$/i},{name:`NSIS`,mime:`text/x-nsis`,mode:`nsis`,ext:[`nsh`,`nsi`]},{name:`NTriples`,mimes:[`application/n-triples`,`application/n-quads`,`text/n-triples`],mode:`ntriples`,ext:[`nt`,`nq`]},{name:`Objective-C`,mime:`text/x-objectivec`,mode:`clike`,ext:[`m`],alias:[`objective-c`,`objc`]},{name:`Objective-C++`,mime:`text/x-objectivec++`,mode:`clike`,ext:[`mm`],alias:[`objective-c++`,`objc++`]},{name:`OCaml`,mime:`text/x-ocaml`,mode:`mllike`,ext:[`ml`,`mli`,`mll`,`mly`]},{name:`Octave`,mime:`text/x-octave`,mode:`octave`,ext:[`m`]},{name:`Oz`,mime:`text/x-oz`,mode:`oz`,ext:[`oz`]},{name:`Pascal`,mime:`text/x-pascal`,mode:`pascal`,ext:[`p`,`pas`]},{name:`PEG.js`,mime:`null`,mode:`pegjs`,ext:[`jsonld`]},{name:`Perl`,mime:`text/x-perl`,mode:`perl`,ext:[`pl`,`pm`]},{name:`PHP`,mimes:[`text/x-php`,`application/x-httpd-php`,`application/x-httpd-php-open`],mode:`php`,ext:[`php`,`php3`,`php4`,`php5`,`php7`,`phtml`]},{name:`Pig`,mime:`text/x-pig`,mode:`pig`,ext:[`pig`]},{name:`Plain Text`,mime:`text/plain`,mode:`null`,ext:[`txt`,`text`,`conf`,`def`,`list`,`log`]},{name:`PLSQL`,mime:`text/x-plsql`,mode:`sql`,ext:[`pls`]},{name:`PostgreSQL`,mime:`text/x-pgsql`,mode:`sql`},{name:`PowerShell`,mime:`application/x-powershell`,mode:`powershell`,ext:[`ps1`,`psd1`,`psm1`]},{name:`Properties files`,mime:`text/x-properties`,mode:`properties`,ext:[`properties`,`ini`,`in`],alias:[`ini`,`properties`]},{name:`ProtoBuf`,mime:`text/x-protobuf`,mode:`protobuf`,ext:[`proto`]},{name:`Python`,mime:`text/x-python`,mode:`python`,ext:[`BUILD`,`bzl`,`py`,`pyw`],file:/^(BUCK|BUILD)$/},{name:`Puppet`,mime:`text/x-puppet`,mode:`puppet`,ext:[`pp`]},{name:`Q`,mime:`text/x-q`,mode:`q`,ext:[`q`]},{name:`R`,mime:`text/x-rsrc`,mode:`r`,ext:[`r`,`R`],alias:[`rscript`]},{name:`reStructuredText`,mime:`text/x-rst`,mode:`rst`,ext:[`rst`],alias:[`rst`]},{name:`RPM Changes`,mime:`text/x-rpm-changes`,mode:`rpm`},{name:`RPM Spec`,mime:`text/x-rpm-spec`,mode:`rpm`,ext:[`spec`]},{name:`Ruby`,mime:`text/x-ruby`,mode:`ruby`,ext:[`rb`],alias:[`jruby`,`macruby`,`rake`,`rb`,`rbx`]},{name:`Rust`,mime:`text/x-rustsrc`,mode:`rust`,ext:[`rs`]},{name:`SAS`,mime:`text/x-sas`,mode:`sas`,ext:[`sas`]},{name:`Sass`,mime:`text/x-sass`,mode:`sass`,ext:[`sass`]},{name:`Scala`,mime:`text/x-scala`,mode:`clike`,ext:[`scala`]},{name:`Scheme`,mime:`text/x-scheme`,mode:`scheme`,ext:[`scm`,`ss`]},{name:`SCSS`,mime:`text/x-scss`,mode:`css`,ext:[`scss`]},{name:`Shell`,mimes:[`text/x-sh`,`application/x-sh`],mode:`shell`,ext:[`sh`,`ksh`,`bash`],alias:[`bash`,`sh`,`zsh`],file:/^PKGBUILD$/},{name:`Sieve`,mime:`application/sieve`,mode:`sieve`,ext:[`siv`,`sieve`]},{name:`Slim`,mimes:[`text/x-slim`,`application/x-slim`],mode:`slim`,ext:[`slim`]},{name:`Smalltalk`,mime:`text/x-stsrc`,mode:`smalltalk`,ext:[`st`]},{name:`Smarty`,mime:`text/x-smarty`,mode:`smarty`,ext:[`tpl`]},{name:`Solr`,mime:`text/x-solr`,mode:`solr`},{name:`SML`,mime:`text/x-sml`,mode:`mllike`,ext:[`sml`,`sig`,`fun`,`smackspec`]},{name:`Soy`,mime:`text/x-soy`,mode:`soy`,ext:[`soy`],alias:[`closure template`]},{name:`SPARQL`,mime:`application/sparql-query`,mode:`sparql`,ext:[`rq`,`sparql`],alias:[`sparul`]},{name:`Spreadsheet`,mime:`text/x-spreadsheet`,mode:`spreadsheet`,alias:[`excel`,`formula`]},{name:`SQL`,mime:`text/x-sql`,mode:`sql`,ext:[`sql`]},{name:`SQLite`,mime:`text/x-sqlite`,mode:`sql`},{name:`Squirrel`,mime:`text/x-squirrel`,mode:`clike`,ext:[`nut`]},{name:`Stylus`,mime:`text/x-styl`,mode:`stylus`,ext:[`styl`]},{name:`Swift`,mime:`text/x-swift`,mode:`swift`,ext:[`swift`]},{name:`sTeX`,mime:`text/x-stex`,mode:`stex`},{name:`LaTeX`,mime:`text/x-latex`,mode:`stex`,ext:[`text`,`ltx`,`tex`],alias:[`tex`]},{name:`SystemVerilog`,mime:`text/x-systemverilog`,mode:`verilog`,ext:[`v`,`sv`,`svh`]},{name:`Tcl`,mime:`text/x-tcl`,mode:`tcl`,ext:[`tcl`]},{name:`Textile`,mime:`text/x-textile`,mode:`textile`,ext:[`textile`]},{name:`TiddlyWiki`,mime:`text/x-tiddlywiki`,mode:`tiddlywiki`},{name:`Tiki wiki`,mime:`text/tiki`,mode:`tiki`},{name:`TOML`,mime:`text/x-toml`,mode:`toml`,ext:[`toml`]},{name:`Tornado`,mime:`text/x-tornado`,mode:`tornado`},{name:`troff`,mime:`text/troff`,mode:`troff`,ext:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`]},{name:`TTCN`,mime:`text/x-ttcn`,mode:`ttcn`,ext:[`ttcn`,`ttcn3`,`ttcnpp`]},{name:`TTCN_CFG`,mime:`text/x-ttcn-cfg`,mode:`ttcn-cfg`,ext:[`cfg`]},{name:`Turtle`,mime:`text/turtle`,mode:`turtle`,ext:[`ttl`]},{name:`TypeScript`,mime:`application/typescript`,mode:`javascript`,ext:[`ts`],alias:[`ts`]},{name:`TypeScript-JSX`,mime:`text/typescript-jsx`,mode:`jsx`,ext:[`tsx`],alias:[`tsx`]},{name:`Twig`,mime:`text/x-twig`,mode:`twig`},{name:`Web IDL`,mime:`text/x-webidl`,mode:`webidl`,ext:[`webidl`]},{name:`VB.NET`,mime:`text/x-vb`,mode:`vb`,ext:[`vb`]},{name:`VBScript`,mime:`text/vbscript`,mode:`vbscript`,ext:[`vbs`]},{name:`Velocity`,mime:`text/velocity`,mode:`velocity`,ext:[`vtl`]},{name:`Verilog`,mime:`text/x-verilog`,mode:`verilog`,ext:[`v`]},{name:`VHDL`,mime:`text/x-vhdl`,mode:`vhdl`,ext:[`vhd`,`vhdl`]},{name:`Vue.js Component`,mimes:[`script/x-vue`,`text/x-vue`],mode:`vue`,ext:[`vue`]},{name:`XML`,mimes:[`application/xml`,`text/xml`],mode:`xml`,ext:[`xml`,`xsl`,`xsd`,`svg`],alias:[`rss`,`wsdl`,`xsd`]},{name:`XQuery`,mime:`application/xquery`,mode:`xquery`,ext:[`xy`,`xquery`]},{name:`Yacas`,mime:`text/x-yacas`,mode:`yacas`,ext:[`ys`]},{name:`YAML`,mimes:[`text/x-yaml`,`text/yaml`],mode:`yaml`,ext:[`yaml`,`yml`],alias:[`yml`]},{name:`Z80`,mime:`text/x-z80`,mode:`z80`,ext:[`z80`]},{name:`mscgen`,mime:`text/x-mscgen`,mode:`mscgen`,ext:[`mscgen`,`mscin`,`msc`]},{name:`xu`,mime:`text/x-xu`,mode:`mscgen`,ext:[`xu`]},{name:`msgenny`,mime:`text/x-msgenny`,mode:`mscgen`,ext:[`msgenny`]},{name:`WebAssembly`,mime:`text/webassembly`,mode:`wast`,ext:[`wat`,`wast`]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(a)return e.findModeByExtension(a)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n{(function(n){typeof e==`object`&&typeof t==`object`?n(g(),b(),x()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`,`../xml/xml`,`../meta`],n):n(CodeMirror)})(function(e){e.defineMode(`markdown`,function(t,n){var r=e.getMode(t,`text/html`),i=r.name==`null`;function a(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return i.name==`null`?null:i}n.highlightFormatting===void 0&&(n.highlightFormatting=!1),n.maxBlockquoteDepth===void 0&&(n.maxBlockquoteDepth=0),n.taskLists===void 0&&(n.taskLists=!1),n.strikethrough===void 0&&(n.strikethrough=!1),n.emoji===void 0&&(n.emoji=!1),n.fencedCodeBlockHighlighting===void 0&&(n.fencedCodeBlockHighlighting=!0),n.fencedCodeBlockDefaultMode===void 0&&(n.fencedCodeBlockDefaultMode=`text/plain`),n.xml===void 0&&(n.xml=!0),n.tokenTypeOverrides===void 0&&(n.tokenTypeOverrides={});var o={header:`header`,code:`comment`,quote:`quote`,list1:`variable-2`,list2:`variable-3`,list3:`keyword`,hr:`hr`,image:`image`,imageAltText:`image-alt-text`,imageMarker:`image-marker`,formatting:`formatting`,linkInline:`link`,linkEmail:`link`,linkText:`link`,linkHref:`string`,em:`em`,strong:`strong`,strikethrough:`strikethrough`,emoji:`builtin`};for(var s in o)o.hasOwnProperty(s)&&n.tokenTypeOverrides[s]&&(o[s]=n.tokenTypeOverrides[s]);var c=/^([*\-_])(?:\s*\1){2,}\s*$/,l=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,u=/^\[(x| )\](?=\s)/i,d=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,f=/^ {0,3}(?:\={1,}|-{2,})\s*$/,p=/^[^#!\[\]*_\\<>` "'(~:]+/,m=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,h=/^\s*\[[^\]]+?\]:.*$/,g=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,_=` `;function v(e,t,n){return t.f=t.inline=n,n(e,t)}function y(e,t,n){return t.f=t.block=n,n(e,t)}function b(e){return!e||!/\S/.test(e.string)}function x(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==C){var n=i;if(!n){var a=e.innerMode(r,t.htmlState);n=a.mode.name==`xml`&&a.state.tagStart===null&&!a.state.context&&a.state.tokenize.isInText}n&&(t.f=D,t.block=S,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function S(t,r){var i=t.column()===r.indentation,s=b(r.prevLine.stream),p=r.indentedCode,g=r.prevLine.hr,_=r.list!==!1,y=(r.listStack[r.listStack.length-1]||0)+3;r.indentedCode=!1;var x=r.indentation;if(r.indentationDiff===null&&(r.indentationDiff=r.indentation,_)){for(r.list=null;x=4&&(p||r.prevLine.fencedCodeEnd||r.prevLine.header||s))return t.skipToEnd(),r.indentedCode=!0,o.code;if(t.eatSpace())return null;if(i&&r.indentation<=y&&(E=t.match(d))&&E[1].length<=6)return r.quote=0,r.header=E[1].length,r.thisLine.header=!0,n.highlightFormatting&&(r.formatting=`header`),r.f=r.inline,T(r);if(r.indentation<=y&&t.eat(`>`))return r.quote=i?1:r.quote+1,n.highlightFormatting&&(r.formatting=`quote`),t.eatSpace(),T(r);if(!C&&!r.setext&&i&&r.indentation<=y&&(E=t.match(l))){var D=E[1]?`ol`:`ul`;return r.indentation=x+t.current().length,r.list=!0,r.quote=0,r.listStack.push(r.indentation),r.em=!1,r.strong=!1,r.code=!1,r.strikethrough=!1,n.taskLists&&t.match(u,!1)&&(r.taskList=!0),r.f=r.inline,n.highlightFormatting&&(r.formatting=[`list`,`list-`+D]),T(r)}return i&&r.indentation<=y&&(E=t.match(m,!0))?(r.quote=0,r.fencedEndRE=RegExp(E[1]+`+ *$`),r.localMode=n.fencedCodeBlockHighlighting&&a(E[2]||n.fencedCodeBlockDefaultMode),r.localMode&&(r.localState=e.startState(r.localMode)),r.f=r.block=w,n.highlightFormatting&&(r.formatting=`code-block`),r.code=-1,T(r)):r.setext||(!S||!_)&&!r.quote&&r.list===!1&&!r.code&&!C&&!h.test(t.string)&&(E=t.lookAhead(1))&&(E=E.match(f))?(r.setext?(r.header=r.setext,r.setext=0,t.skipToEnd(),n.highlightFormatting&&(r.formatting=`header`)):(r.header=E[0].charAt(0)==`=`?1:2,r.setext=r.header),r.thisLine.header=!0,r.f=r.inline,T(r)):C?(t.skipToEnd(),r.hr=!0,r.thisLine.hr=!0,o.hr):t.peek()===`[`?v(t,r,M):v(t,r,r.inline)}function C(t,n){var a=r.token(t,n.htmlState);if(!i){var o=e.innerMode(r,n.htmlState);(o.mode.name==`xml`&&o.state.tagStart===null&&!o.state.context&&o.state.tokenize.isInText||n.md_inside&&t.current().indexOf(`>`)>-1)&&(n.f=D,n.block=S,n.htmlState=null)}return a}function w(e,t){var r=t.listStack[t.listStack.length-1]||0,i=t.indentation=e.quote?t.push(o.formatting+`-`+e.formatting[r]+`-`+e.quote):t.push(`error`))}if(e.taskOpen)return t.push(`meta`),t.length?t.join(` `):null;if(e.taskClosed)return t.push(`property`),t.length?t.join(` `):null;if(e.linkHref?t.push(o.linkHref,`url`):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,`link`),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+`-`+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+`-`+e.quote):t.push(o.quote+`-`+n.maxBlockquoteDepth)),e.list!==!1){var i=(e.listStack.length-1)%3;i?i===1?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push(`trailing-space-new-line`):e.trailingSpace&&t.push(`trailing-space-`+(e.trailingSpace%2?`a`:`b`)),t.length?t.join(` `):null}function E(e,t){if(e.match(p,!0))return T(t)}function D(t,i){var a=i.text(t,i);if(a!==void 0)return a;if(i.list)return i.list=null,T(i);if(i.taskList)return t.match(u,!0)[1]===` `?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting=`task`),i.taskList=!1,T(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting=`header`),T(i);var s=t.next();if(i.linkTitle){i.linkTitle=!1;var c=s;s===`(`&&(c=`)`),c=(c+``).replace(/([.?*+^\[\]\\(){}|-])/g,`\\$1`);var l=`^\\s*(?:[^`+c+`\\\\]+|\\\\\\\\|\\\\.)`+c;if(t.match(new RegExp(l),!0))return o.linkHref}if(s==="`"){var d=i.formatting;n.highlightFormatting&&(i.formatting=`code`),t.eatWhile("`");var f=t.current().length;if(i.code==0&&(!i.quote||f==1))return i.code=f,T(i);if(f==i.code){var p=T(i);return i.code=0,p}return i.formatting=d,T(i)}if(i.code)return T(i);if(s===`\\`&&(t.next(),n.highlightFormatting)){var m=T(i),h=o.formatting+`-escape`;return m?m+` `+h:h}if(s===`!`&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting=`image`),T(i);if(s===`[`&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting=`image`),T(i);if(s===`]`&&i.imageAltText){n.highlightFormatting&&(i.formatting=`image`);var m=T(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=k,m}if(s===`[`&&!i.image)return i.linkText&&t.match(/^.*?\]/)?T(i):(i.linkText=!0,n.highlightFormatting&&(i.formatting=`link`),T(i));if(s===`]`&&i.linkText){n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?k:D,m}if(s===`<`&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){i.f=i.inline=O,n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return m?m+=` `:m=``,m+o.linkInline}if(s===`<`&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){i.f=i.inline=O,n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return m?m+=` `:m=``,m+o.linkEmail}if(n.xml&&s===`<`&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var _=t.string.indexOf(`>`,t.pos);if(_!=-1){var v=t.string.substring(t.start,_);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(v)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),y(t,i,C)}if(n.xml&&s===`<`&&t.match(/^\/\w*?>/))return i.md_inside=!1,`tag`;if(s===`*`||s===`_`){for(var b=1,x=t.pos==1?` `:t.string.charAt(t.pos-2);b<3&&t.eat(s);)b++;var S=t.peek()||` `,w=!/\s/.test(S)&&(!g.test(S)||/\s/.test(x)||g.test(x)),E=!/\s/.test(x)&&(!g.test(x)||/\s/.test(S)||g.test(S)),A=null,j=null;if(b%2&&(!i.em&&w&&(s===`*`||!E||g.test(x))?A=!0:i.em==s&&E&&(s===`*`||!w||g.test(S))&&(A=!1)),b>1&&(!i.strong&&w&&(s===`*`||!E||g.test(x))?j=!0:i.strong==s&&E&&(s===`*`||!w||g.test(S))&&(j=!1)),j!=null||A!=null){n.highlightFormatting&&(i.formatting=A==null?`strong`:j==null?`em`:`strong em`),A===!0&&(i.em=s),j===!0&&(i.strong=s);var p=T(i);return A===!1&&(i.em=!1),j===!1&&(i.strong=!1),p}}else if(s===` `&&(t.eat(`*`)||t.eat(`_`))){if(t.peek()===` `)return T(i);t.backUp(1)}if(n.strikethrough){if(s===`~`&&t.eatWhile(s)){if(i.strikethrough){n.highlightFormatting&&(i.formatting=`strikethrough`);var p=T(i);return i.strikethrough=!1,p}if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting=`strikethrough`),T(i)}else if(s===` `&&t.match(`~~`,!0)){if(t.peek()===` `)return T(i);t.backUp(2)}}if(n.emoji&&s===`:`&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting=`emoji`);var M=T(i);return i.emoji=!1,M}return s===` `&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),T(i)}function O(e,t){if(e.next()===`>`){t.f=t.inline=D,n.highlightFormatting&&(t.formatting=`link`);var r=T(t);return r?r+=` `:r=``,r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function k(e,t){if(e.eatSpace())return null;var r=e.next();return r===`(`||r===`[`?(t.f=t.inline=j(r===`(`?`)`:`]`),n.highlightFormatting&&(t.formatting=`link-string`),t.linkHref=!0,T(t)):`error`}var A={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function j(e){return function(t,r){if(t.next()===e){r.f=r.inline=D,n.highlightFormatting&&(r.formatting=`link-string`);var i=T(r);return r.linkHref=!1,i}return t.match(A[e]),r.linkHref=!0,T(r)}}function M(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=ee,e.next(),n.highlightFormatting&&(t.formatting=`link`),t.linkText=!0,T(t)):v(e,t,D)}function ee(e,t){if(e.match(`]:`,!0)){t.f=t.inline=N,n.highlightFormatting&&(t.formatting=`link`);var r=T(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function N(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),e.peek()===void 0?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=D,o.linkHref+` url`)}var P={startState:function(){return{f:S,prevLine:{stream:null},thisLine:{stream:null},block:S,htmlState:null,indentation:0,inline:D,text:E,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return x(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=C)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g,_).length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==C?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:P}},indent:function(t,n,i){return t.block==C&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:x,getType:T,blockCommentStart:``,closeBrackets:`()[]{}''""\`\``,fold:`markdown`};return P},`xml`),e.defineMIME(`text/markdown`,`markdown`),e.defineMIME(`text/x-markdown`,`markdown`)})})),C=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos){(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`placeholder`,``,function(n,o,s){var c=s&&s!=e.Init;if(o&&!c)n.on(`blur`,i),n.on(`change`,a),n.on(`swapDoc`,a),e.on(n.getInputField(),`compositionupdate`,n.state.placeholderCompose=function(){r(n)}),a(n);else if(!o&&c){n.off(`blur`,i),n.off(`change`,a),n.off(`swapDoc`,a),e.off(n.getInputField(),`compositionupdate`,n.state.placeholderCompose),t(n);var l=n.getWrapperElement();l.className=l.className.replace(` CodeMirror-empty`,``)}o&&!n.hasFocus()&&i(n)});function t(e){e.state.placeholder&&(e.state.placeholder.parentNode.removeChild(e.state.placeholder),e.state.placeholder=null)}function n(e){t(e);var n=e.state.placeholder=document.createElement(`pre`);n.style.cssText=`height: 0; overflow: visible`,n.style.direction=e.getOption(`direction`),n.className=`CodeMirror-placeholder CodeMirror-line-like`;var r=e.getOption(`placeholder`);typeof r==`string`&&(r=document.createTextNode(r)),n.appendChild(r),e.display.lineSpace.insertBefore(n,e.display.lineSpace.firstChild)}function r(e){setTimeout(function(){var r=!1;if(e.lineCount()==1){var i=e.getInputField();r=i.nodeName==`TEXTAREA`?!e.getLine(0).length:!/[^\u200b]/.test(i.querySelector(`.CodeMirror-line`).textContent)}r?n(e):t(e)},20)}function i(e){o(e)&&n(e)}function a(e){var r=e.getWrapperElement(),i=o(e);r.className=r.className.replace(` CodeMirror-empty`,``)+(i?` CodeMirror-empty`:``),i?n(e):t(e)}function o(e){return e.lineCount()===1&&e.getLine(0)===``}})})),T=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`autoRefresh`,!1,function(e,r){e.state.autoRefresh&&(n(e,e.state.autoRefresh),e.state.autoRefresh=null),r&&e.display.wrapper.offsetHeight==0&&t(e,e.state.autoRefresh={delay:r.delay||250})});function t(t,r){function i(){t.display.wrapper.offsetHeight?(n(t,r),t.display.lastWrapHeight!=t.display.wrapper.clientHeight&&t.refresh()):r.timeout=setTimeout(i,r.delay)}r.timeout=setTimeout(i,r.delay),r.hurry=function(){clearTimeout(r.timeout),r.timeout=setTimeout(i,50)},e.on(window,`mouseup`,r.hurry),e.on(window,`keyup`,r.hurry)}function n(t,n){clearTimeout(n.timeout),e.off(window,`mouseup`,n.hurry),e.off(window,`keyup`,n.hurry)}})})),E=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`styleSelectedText`,!1,function(r,i,a){var o=a&&a!=e.Init;i&&!o?(r.state.markedSelection=[],r.state.markedSelectionStyle=typeof i==`string`?i:`CodeMirror-selectedtext`,c(r),r.on(`cursorActivity`,t),r.on(`change`,n)):!i&&o&&(r.off(`cursorActivity`,t),r.off(`change`,n),s(r),r.state.markedSelection=r.state.markedSelectionStyle=null)});function t(e){e.state.markedSelection&&e.operation(function(){l(e)})}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation(function(){s(e)})}var r=8,i=e.Pos,a=e.cmpPos;function o(e,t,n,o){if(a(t,n)!=0)for(var s=e.state.markedSelection,c=e.state.markedSelectionStyle,l=t.line;;){var u=l==t.line?t:i(l,0),d=l+r,f=d>=n.line,p=f?n:i(d,0),m=e.markText(u,p,{className:c});if(o==null?s.push(m):s.splice(o++,0,m),f)break;l=d}}function s(e){for(var t=e.state.markedSelection,n=0;n1)return c(e);var t=e.getCursor(`start`),n=e.getCursor(`end`),i=e.state.markedSelection;if(!i.length)return o(e,t,n);var l=i[0].find(),u=i[i.length-1].find();if(!l||!u||n.line-t.line<=r||a(t,u.to)>=0||a(n,l.from)<=0)return c(e);for(;a(t,l.from)>0;)i.shift().clear(),l=i[0].find();for(a(t,l.from)<0&&(l.to.line-t.line0&&(n.line-u.from.line{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){var t=e.Pos;function n(e){return e.flags??(e.ignoreCase?`i`:``)+(e.global?`g`:``)+(e.multiline?`m`:``)}function r(e,t){for(var r=n(e),i=r,a=0;au);d++){var f=e.getLine(l++);s=s==null?f:s+` +`+f}c*=2,n.lastIndex=o.ch;var p=n.exec(s);if(p){var m=s.slice(0,p.index).split(` +`),h=p[0].split(` +`),g=o.line+m.length-1,_=m[m.length-1].length;return{from:t(g,_),to:t(g+h.length-1,h.length==1?_+h[0].length:h[h.length-1].length),match:p}}}}function s(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var a=t.exec(e);if(!a)break;var o=a.index+a[0].length;if(o>e.length-n)break;(!r||o>r.index+r[0].length)&&(r=a),i=a.index+1}return r}function c(e,n,i){n=r(n,`g`);for(var a=i.line,o=i.ch,c=e.firstLine();a>=c;a--,o=-1){var l=e.getLine(a),u=s(l,n,o<0?0:l.length-o);if(u)return{from:t(a,u.index),to:t(a,u.index+u[0].length),match:u}}}function l(e,n,a){if(!i(n))return c(e,n,a);n=r(n,`gm`);for(var o,l=1,u=e.getLine(a.line).length-a.ch,d=a.line,f=e.firstLine();d>=f;){for(var p=0;p=f;p++){var m=e.getLine(d--);o=o==null?m:m+` +`+o}l*=2;var h=s(o,n,u);if(h){var g=o.slice(0,h.index).split(` +`),_=h[0].split(` +`),v=d+g.length,y=g[g.length-1].length;return{from:t(v,y),to:t(v+_.length-1,_.length==1?y+_[0].length:_[_.length-1].length),match:h}}}}var u,d;String.prototype.normalize?(u=function(e){return e.normalize(`NFD`).toLowerCase()},d=function(e){return e.normalize(`NFD`)}):(u=function(e){return e.toLowerCase()},d=function(e){return e});function f(e,t,n,r){if(e.length==t.length)return n;for(var i=0,a=n+Math.max(0,e.length-t.length);;){if(i==a)return i;var o=i+a>>1,s=r(e.slice(0,o)).length;if(s==n)return o;s>n?a=o:i=o+1}}function p(e,n,r,i){if(!n.length)return null;var a=i?u:d,o=a(n).split(/\r|\n\r?/);search:for(var s=r.line,c=r.ch,l=e.lastLine()+1-o.length;s<=l;s++,c=0){var p=e.getLine(s).slice(c),m=a(p);if(o.length==1){var h=m.indexOf(o[0]);if(h==-1)continue search;var r=f(p,m,h,a)+c;return{from:t(s,f(p,m,h,a)+c),to:t(s,f(p,m,h+o[0].length,a)+c)}}var g=m.length-o[0].length;if(m.slice(g)!=o[0])continue search;for(var _=1;_=l;s--,c=-1){var p=e.getLine(s);c>-1&&(p=p.slice(0,c));var m=a(p);if(o.length==1){var h=m.lastIndexOf(o[0]);if(h==-1)continue search;return{from:t(s,f(p,m,h,a)),to:t(s,f(p,m,h+o[0].length,a))}}var g=o[o.length-1];if(m.slice(0,g.length)!=g)continue search;for(var _=1,r=s-o.length+1;_(this.doc.getLine(r.line)||``).length&&(r.ch=0,r.line++)),e.cmpPos(r,this.doc.clipPos(r))!=0))return this.atOccurrence=!1;var i=this.matches(n,r);if(this.afterEmptyMatch=i&&e.cmpPos(i.from,i.to)==0,i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var a=t(n?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:a,to:a},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(n,r){if(this.atOccurrence){var i=e.splitLines(n);this.doc.replaceRange(i,this.pos.from,this.pos.to,r),this.pos.to=t(this.pos.from.line+i.length-1,i[i.length-1].length+(i.length==1?this.pos.from.ch:0))}}},e.defineExtension(`getSearchCursor`,function(e,t,n){return new h(this.doc,e,t,n)}),e.defineDocExtension(`getSearchCursor`,function(e,t,n){return new h(this,e,t,n)}),e.defineExtension(`selectMatches`,function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor(`from`),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor(`to`))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)})})})),O=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g(),S(),C()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`,`../markdown/markdown`,`../../addon/mode/overlay`],n):n(CodeMirror)})(function(e){var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode(`gfm`,function(n,r){var i=0;function a(e){return e.code=!1,null}var o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if(e.peek()==="`"){e.next();var a=e.pos;e.eatWhile("`");var o=1+e.pos-a;return n.code?o===i&&(n.code=!1):(i=o,n.code=!0),null}return n.code?(e.next(),null):e.eatSpace()?(n.ateSpace=!0,null):(e.sol()||n.ateSpace)&&(n.ateSpace=!1,r.gitHubSpice!==!1)&&(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/)||e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))||e.match(t)&&e.string.slice(e.start-2,e.start)!=`](`&&(e.start==0||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,`link`):(e.next(),null)},blankLine:a},s={taskLists:!0,strikethrough:!0,emoji:!0};for(var c in r)s[c]=r[c];return s.name=`markdown`,e.overlayMode(e.getMode(n,s),o)},`markdown`),e.defineMIME(`text/x-gfm`,`gfm`)})})),k=n(((e,t)=>{t.exports={}})),A=n(((e,n)=>{var r;(function(){r=function(e,t,n,r){r||={},this.dictionary=null,this.rules={},this.dictionaryTable=new Map,this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=r.flags||{},this.memoized={},this.loaded=!1;var i=this,a,o,s,c,l;e&&(i.dictionary=e,t&&n?p():(typeof window<`u`?(a=r.dictionaryPath?r.dictionaryPath:`typo/dictionaries`,window.chrome&&window.chrome.runtime&&window.chrome.runtime.getURL?a=window.chrome.runtime.getURL(a):window.browser&&window.browser.runtime&&window.browser.runtime.getURL&&(a=window.browser.runtime.getURL(a))):a=typeof __dirname<`u`?__dirname+`/dictionaries`:`./dictionaries`,t||u(a+`/`+e+`/`+e+`.aff`,d),n||u(a+`/`+e+`/`+e+`.dic`,f)));function u(e,t){var n=i._readFile(e,null,r?.asyncLoad);r?.asyncLoad?n.then(function(e){t(e)}):t(n)}function d(e){t=e,n&&p()}function f(e){n=e,t&&p()}function p(){for(i.rules=i._parseAFF(t),i.compoundRuleCodes={},o=0,c=i.compoundRules.length;o0&&(x.continuationClasses=y),b!==`.`&&(x.match=RegExp(f===`SFX`?b+`$`:`^`+b)),g!=`0`&&(x.remove=f===`SFX`?RegExp(g+`$`):g),h.push(x)}t[p]={type:f,combineable:m===`Y`,entries:h},o+=i}else if(f===`COMPOUNDRULE`){for(i=parseInt(d[1],10),s=o+1,l=o+1+i;s0&&(n.get(e)===null&&n.set(e,[]),n.get(e).push(t))}for(var i=1,a=t.length;i1){var l=this.parseRuleCodes(s[1]);(!(`NEEDAFFIX`in this.flags)||l.indexOf(this.flags.NEEDAFFIX)===-1)&&r(c,l);for(var u=0,d=l.length;u=this.flags.COMPOUNDMIN){for(n=0,r=this.compoundRules.length;n1&&u[1][1]!==u[1][0]&&(o=u[0]+u[1][1]+u[1][0]+u[1].substring(2),(!t||l.check(o))&&(o in n?n[o]+=1:n[o]=1)),u[1]){var d=u[1].substring(0,1).toUpperCase()===u[1].substring(0,1)?`uppercase`:`lowercase`;for(i=0;ir?1:t[0].localeCompare(e[0])}s.sort(c).reverse();var d=[],f=`lowercase`;e.toUpperCase()===e?f=`uppercase`:e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()===e&&(f=`capitalized`);var p=t;for(o=0;o{var n=A();function r(e){if(e||={},typeof e.codeMirrorInstance!=`function`||typeof e.codeMirrorInstance.defineMode!=`function`){console.log("CodeMirror Spell Checker: You must provide an instance of CodeMirror via the option `codeMirrorInstance`");return}String.prototype.includes||(String.prototype.includes=function(){return String.prototype.indexOf.apply(this,arguments)!==-1}),e.codeMirrorInstance.defineMode(`spell-checker`,function(t){if(!r.aff_loading){r.aff_loading=!0;var i=new XMLHttpRequest;i.open(`GET`,`https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.aff`,!0),i.onload=function(){i.readyState===4&&i.status===200&&(r.aff_data=i.responseText,r.num_loaded++,r.num_loaded==2&&(r.typo=new n(`en_US`,r.aff_data,r.dic_data,{platform:`any`})))},i.send(null)}if(!r.dic_loading){r.dic_loading=!0;var a=new XMLHttpRequest;a.open(`GET`,`https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.dic`,!0),a.onload=function(){a.readyState===4&&a.status===200&&(r.dic_data=a.responseText,r.num_loaded++,r.num_loaded==2&&(r.typo=new n(`en_US`,r.aff_data,r.dic_data,{platform:`any`})))},a.send(null)}var o='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~ ',s={token:function(e){var t=e.peek(),n=``;if(o.includes(t))return e.next(),null;for(;(t=e.peek())!=null&&!o.includes(t);)n+=t,e.next();return r.typo&&!r.typo.check(n)?`spell-error`:null}},c=e.codeMirrorInstance.getMode(t,t.backdrop||`text/plain`);return e.codeMirrorInstance.overlayMode(c,s,!0)})}r.num_loaded=0,r.aff_loading=!1,r.dic_loading=!1,r.aff_data=``,r.dic_data=``,r.typo,t.exports=r})),M=n((e=>{function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function s(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return typeof t==`symbol`?t:String(t)}function l(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:``,highlight:null,hooks:null,langPrefix:`language-`,mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=l();function u(t){e.defaults=t}var d=/[&<>"']/,f=new RegExp(d.source,`g`),p=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,m=new RegExp(p.source,`g`),h={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},g=function(e){return h[e]};function _(e,t){if(t){if(d.test(e))return e.replace(f,g)}else if(p.test(e))return e.replace(m,g);return e}var v=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function y(e){return e.replace(v,function(e,t){return t=t.toLowerCase(),t===`colon`?`:`:t.charAt(0)===`#`?t.charAt(1)===`x`?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):``})}var b=/(^|[^\[])\^/g;function x(e,t){e=typeof e==`string`?e:e.source,t||=``;var n={replace:function(t,r){return r=r.source||r,r=r.replace(b,`$1`),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n}var S=/[^\w:]/g,C=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function w(e,t,n){if(e){var r;try{r=decodeURIComponent(y(n)).replace(S,``).toLowerCase()}catch{return null}if(r.indexOf(`javascript:`)===0||r.indexOf(`vbscript:`)===0||r.indexOf(`data:`)===0)return null}t&&!C.test(n)&&(n=k(t,n));try{n=encodeURI(n).replace(/%25/g,`%`)}catch{return null}return n}var T={},E=/^[^:]+:\/*[^/]*$/,D=/^([^:]+:)[\s\S]*$/,O=/^([^:]+:\/*[^/]*)[\s\S]*$/;function k(e,t){T[` `+e]||(E.test(e)?T[` `+e]=e+`/`:T[` `+e]=M(e,`/`,!0)),e=T[` `+e];var n=e.indexOf(`:`)===-1;return t.substring(0,2)===`//`?n?t:e.replace(D,`$1`)+t:t.charAt(0)===`/`?n?t:e.replace(O,`$1`)+t:e+t}var A={exec:function(){}};function j(e,t){var n=e.replace(/\|/g,function(e,t,n){for(var r=!1,i=t;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),n.length>t)n.splice(t);else for(;n.length1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function te(e,t,n,r){var i=t.href,a=t.title?_(t.title):null,o=e[1].replace(/\\([\[\]])/g,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;var s={type:`link`,raw:n,href:i,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,s}return{type:`image`,raw:n,href:i,title:a,text:_(o)}}function F(e,t){var n=e.match(/^(\s+)(?:```)/);if(n===null)return t;var r=n[1];return t.split(` +`).map(function(e){var t=e.match(/^\s+/);return t===null?e:t[0].length>=r.length?e.slice(r.length):e}).join(` +`)}var ne=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}},n.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?n:M(n,` +`)}}},n.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=F(n,t[3]||``);return{type:`code`,raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,`$1`):t[2],text:r}}},n.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=M(n,`#`);(this.options.pedantic||!r||/ $/.test(r))&&(n=r.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}},n.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:t[0]}},n.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *>[ \t]?/gm,``),r=this.lexer.state.top;this.lexer.state.top=!0;var i=this.lexer.blockTokens(n);return this.lexer.state.top=r,{type:`blockquote`,raw:t[0],tokens:i,text:n}}},n.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,r,i,a,o,s,c,l,u,d,f,p,m=t[1].trim(),h=m.length>1,g={type:`list`,raw:``,ordered:h,start:h?+m.slice(0,-1):``,loose:!1,items:[]};m=h?`\\d{1,9}\\`+m.slice(-1):`\\`+m,this.options.pedantic&&(m=h?m:`[*+-]`);for(var _=RegExp(`^( {0,3}`+m+`)((?:[ ][^\\n]*)?(?:\\n|$))`);e&&(p=!1,!(!(t=_.exec(e))||this.rules.block.hr.test(e)));){if(n=t[0],e=e.substring(n.length),l=t[2].split(` +`,1)[0].replace(/^\t+/,function(e){return` `.repeat(3*e.length)}),u=e.split(` +`,1)[0],this.options.pedantic?(a=2,f=l.trimLeft()):(a=t[2].search(/[^ ]/),a=a>4?1:a,f=l.slice(a),a+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(n+=u+` +`,e=e.substring(u.length+1),p=!0),!p)for(var v=RegExp(`^ {0,`+Math.min(3,a-1)+`}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),y=RegExp(`^ {0,`+Math.min(3,a-1)+`}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),b=RegExp(`^ {0,`+Math.min(3,a-1)+"}(?:```|~~~)"),x=RegExp(`^ {0,`+Math.min(3,a-1)+`}#`);e&&(d=e.split(` +`,1)[0],u=d,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g,` `)),!(b.test(u)||x.test(u)||v.test(u)||y.test(e)));){if(u.search(/[^ ]/)>=a||!u.trim())f+=` +`+u.slice(a);else{if(s||l.search(/[^ ]/)>=4||b.test(l)||x.test(l)||y.test(l))break;f+=` +`+u}!s&&!u.trim()&&(s=!0),n+=d+` +`,e=e.substring(d.length+1),l=u.slice(a)}g.loose||(c?g.loose=!0:/\n *\n *$/.test(n)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(f),r&&(i=r[0]!==`[ ] `,f=f.replace(/^\[[ xX]\] +/,``))),g.items.push({type:`list_item`,raw:n,task:!!r,checked:i,loose:!1,text:f}),g.raw+=n}g.items[g.items.length-1].raw=n.trimRight(),g.items[g.items.length-1].text=f.trimRight(),g.raw=g.raw.trimRight();var S=g.items.length;for(o=0;o0&&C.some(function(e){return/\n.*\n/.test(e.raw)})}if(g.loose)for(o=0;o$/,`$1`).replace(this.rules.inline._escapes,`$1`):``,i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,`$1`):t[3];return{type:`def`,tag:n,raw:t[0],href:r,title:i}}},n.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:`table`,header:j(t[1]).map(function(e){return{text:e}}),align:t[2].replace(/^ *|\| *$/g,``).split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,``).split(` +`):[]};if(n.header.length===n.align.length){n.raw=t[0];var r=n.align.length,i,a,o,s;for(i=0;i/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?`text`:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):_(t[0]):t[0]}},n.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=M(n.slice(0,-1),`\\`);if((n.length-r.length)%2==0)return}else{var i=ee(t[2],`()`);if(i>-1){var a=(t[0].indexOf(`!`)===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,a).trim(),t[3]=``}}var o=t[2],s=``;if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);c&&(o=c[1],s=c[3])}else s=t[3]?t[3].slice(1,-1):``;return o=o.trim(),/^$/.test(n)?o.slice(1):o.slice(1,-1)),te(t,{href:o&&o.replace(this.rules.inline._escapes,`$1`),title:s&&s.replace(this.rules.inline._escapes,`$1`)},t[0],this.lexer)}},n.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g,` `);if(r=t[r.toLowerCase()],!r){var i=n[0].charAt(0);return{type:`text`,raw:i,text:i}}return te(n,r,n[0],this.lexer)}},n.emStrong=function(e,t,n){n===void 0&&(n=``);var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&!(r[3]&&n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var i=r[1]||r[2]||``;if(!i||i&&(n===``||this.rules.inline.punctuation.exec(n))){var a=r[0].length-1,o,s,c=a,l=0,u=r[0][0]===`*`?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+a);(r=u.exec(t))!=null;)if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],o){if(s=o.length,r[3]||r[4]){c+=s;continue}if((r[5]||r[6])&&a%3&&!((a+s)%3)){l+=s;continue}if(c-=s,!(c>0)){s=Math.min(s,s+c+l);var d=e.slice(0,a+r.index+(r[0].length-o.length)+s);if(Math.min(a,s)%2){var f=d.slice(1,-1);return{type:`em`,raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}var p=d.slice(2,-2);return{type:`strong`,raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}}},n.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g,` `),r=/[^ ]/.test(n),i=/^ /.test(n)&&/ $/.test(n);return r&&i&&(n=n.substring(1,n.length-1)),n=_(n,!0),{type:`codespan`,raw:t[0],text:n}}},n.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}},n.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}},n.autolink=function(e,t){var n=this.rules.inline.autolink.exec(e);if(n){var r,i;return n[2]===`@`?(r=_(this.options.mangle?t(n[1]):n[1]),i=`mailto:`+r):(r=_(n[1]),i=r),{type:`link`,raw:n[0],text:r,href:i,tokens:[{type:`text`,raw:r,text:r}]}}},n.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if(n[2]===`@`)r=_(this.options.mangle?t(n[0]):n[0]),i=`mailto:`+r;else{var a;do a=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0];while(a!==n[0]);r=_(n[0]),i=n[1]===`www.`?`http://`+n[0]:n[0]}return{type:`link`,raw:n[0],text:r,href:i,tokens:[{type:`text`,raw:r,text:r}]}}},n.inlineText=function(e,t){var n=this.rules.inline.text.exec(e);if(n){var r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):_(n[0]):n[0]:_(this.options.smartypants?t(n[0]):n[0]);return{type:`text`,raw:n[0],text:r}}},t}(),I={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))`,def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:A,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};I._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,I._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,I.def=x(I.def).replace(`label`,I._label).replace(`title`,I._title).getRegex(),I.bullet=/(?:[*+-]|\d{1,9}[.)])/,I.listItemStart=x(/^( *)(bull) */).replace(`bull`,I.bullet).getRegex(),I.list=x(I.list).replace(/bull/g,I.bullet).replace(`hr`,`\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))`).replace(`def`,`\\n+(?=`+I.def.source+`)`).getRegex(),I._tag=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,I._comment=/|$)/,I.html=x(I.html,`i`).replace(`comment`,I._comment).replace(`tag`,I._tag).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),I.paragraph=x(I._paragraph).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.blockquote=x(I.blockquote).replace(`paragraph`,I.paragraph).getRegex(),I.normal=r({},I),I.gfm=r({},I.normal,{table:`^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`}),I.gfm.table=x(I.gfm.table).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`blockquote`,` {0,3}>`).replace(`code`,` {4}[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.gfm.paragraph=x(I._paragraph).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`|lheading`,``).replace(`table`,I.gfm.table).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.pedantic=r({},I.normal,{html:x(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,I._comment).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:A,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x(I.normal._paragraph).replace(`hr`,I.hr).replace(`heading`,` *#{1,6} *[^ +]`).replace(`lheading`,I.lheading).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).getRegex()});var L={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:A,tag:`^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^`,link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:`reflink|nolink(?!\\()`,emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:A,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]\`^{|}~`,L.punctuation=x(L.punctuation).replace(/punctuation/g,L._punctuation).getRegex(),L.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,L.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,L._comment=x(I._comment).replace(`(?:-->|$)`,`-->`).getRegex(),L.emStrong.lDelim=x(L.emStrong.lDelim).replace(/punct/g,L._punctuation).getRegex(),L.emStrong.rDelimAst=x(L.emStrong.rDelimAst,`g`).replace(/punct/g,L._punctuation).getRegex(),L.emStrong.rDelimUnd=x(L.emStrong.rDelimUnd,`g`).replace(/punct/g,L._punctuation).getRegex(),L._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,L._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,L._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,L.autolink=x(L.autolink).replace(`scheme`,L._scheme).replace(`email`,L._email).getRegex(),L._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,L.tag=x(L.tag).replace(`comment`,L._comment).replace(`attribute`,L._attribute).getRegex(),L._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,L._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,L._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,L.link=x(L.link).replace(`label`,L._label).replace(`href`,L._href).replace(`title`,L._title).getRegex(),L.reflink=x(L.reflink).replace(`label`,L._label).replace(`ref`,I._label).getRegex(),L.nolink=x(L.nolink).replace(`ref`,I._label).getRegex(),L.reflinkSearch=x(L.reflinkSearch,`g`).replace(`reflink`,L.reflink).replace(`nolink`,L.nolink).getRegex(),L.normal=r({},L),L.pedantic=r({},L.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:x(/^!?\[(label)\]\((.*?)\)/).replace(`label`,L._label).getRegex(),reflink:x(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,L._label).getRegex()}),L.gfm=r({},L.normal,{escape:x(L.escape).replace(`])`,`~|])`).getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(r=`x`+r.toString(16)),t+=`&#`+r+`;`;return t}var B=function(){function t(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||e.defaults,this.options.tokenizer=this.options.tokenizer||new ne,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var n={block:I.normal,inline:L.normal};this.options.pedantic?(n.block=I.pedantic,n.inline=L.pedantic):this.options.gfm&&(n.block=I.gfm,n.inline=this.options.breaks?L.breaks:L.gfm),this.tokenizer.rules=n}t.lex=function(e,n){return new t(n).lex(e)},t.lexInline=function(e,n){return new t(n).inlineTokens(e)};var r=t.prototype;return r.lex=function(e){e=e.replace(/\r\n|\r/g,` +`),this.blockTokens(e,this.tokens);for(var t;t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens},r.blockTokens=function(e,t){var n=this;t===void 0&&(t=[]),e=this.options.pedantic?e.replace(/\t/g,` `).replace(/^ +$/gm,``):e.replace(/^( *)(\t+)/gm,function(e,t,n){return t+` `.repeat(n.length)});for(var r,i,a,o;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(i){return(r=i.call({lexer:n},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1}))){if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length),r.raw.length===1&&t.length>0?t[t.length-1].raw+=` +`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&(i.type===`paragraph`||i.type===`text`)?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&(i.type===`paragraph`||i.type===`text`)?(i.raw+=` +`+r.raw,i.text+=` +`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(a=e,this.options.extensions&&this.options.extensions.startBlock&&(function(){var t=1/0,r=e.slice(1),i=void 0;n.options.extensions.startBlock.forEach(function(e){i=e.call({lexer:this},r),typeof i==`number`&&i>=0&&(t=Math.min(t,i))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))})(),this.state.top&&(r=this.tokenizer.paragraph(a))){i=t[t.length-1],o&&i.type===`paragraph`?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r),o=a.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&i.type===`text`?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r);continue}if(e){var s=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(s);break}throw Error(s)}}return this.state.top=!0,t},r.inline=function(e,t){return t===void 0&&(t=[]),this.inlineQueue.push({src:e,tokens:t}),t},r.inlineTokens=function(e,t){var n=this;t===void 0&&(t=[]);var r,i,a,o=e,s,c,l;if(this.tokens.links){var u=Object.keys(this.tokens.links);if(u.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null;)u.includes(s[0].slice(s[0].lastIndexOf(`[`)+1,-1))&&(o=o.slice(0,s.index)+`[`+P(`a`,s[0].length-2)+`]`+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.blockSkip.exec(o))!=null;)o=o.slice(0,s.index)+`[`+P(`a`,s[0].length-2)+`]`+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(s=this.tokenizer.rules.inline.escapedEmSt.exec(o))!=null;)o=o.slice(0,s.index+s[0].length-2)+`++`+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;e;)if(c||(l=``),c=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(i){return(r=i.call({lexer:n},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1}))){if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&r.type===`text`&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length),i=t[t.length-1],i&&r.type===`text`&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,o,l)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e,z)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e,z))){e=e.substring(r.raw.length),t.push(r);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline&&(function(){var t=1/0,r=e.slice(1),i=void 0;n.options.extensions.startInline.forEach(function(e){i=e.call({lexer:this},r),typeof i==`number`&&i>=0&&(t=Math.min(t,i))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))})(),r=this.tokenizer.inlineText(a,R)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(l=r.raw.slice(-1)),c=!0,i=t[t.length-1],i&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(e){var d=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(d);break}throw Error(d)}}return t},n(t,null,[{key:`rules`,get:function(){return{block:I,inline:L}}}]),t}(),re=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.code=function(e,t,n){var r=(t||``).match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);i!=null&&i!==e&&(n=!0,e=i)}return e=e.replace(/\n$/,``)+` +`,r?`
`+(n?e:_(e,!0))+`
+`:`
`+(n?e:_(e,!0))+`
+`},n.blockquote=function(e){return`
+`+e+`
+`},n.html=function(e){return e},n.heading=function(e,t,n,r){if(this.options.headerIds){var i=this.options.headerPrefix+r.slug(n);return``+e+` +`}return``+e+` +`},n.hr=function(){return this.options.xhtml?`
+`:`
+`},n.list=function(e,t,n){var r=t?`ol`:`ul`,i=t&&n!==1?` start="`+n+`"`:``;return`<`+r+i+`> +`+e+` +`},n.listitem=function(e){return`
  • `+e+`
  • +`},n.checkbox=function(e){return` `},n.paragraph=function(e){return`

    `+e+`

    +`},n.table=function(e,t){return t&&=``+t+``,` + +`+e+` +`+t+`
    +`},n.tablerow=function(e){return` +`+e+` +`},n.tablecell=function(e,t){var n=t.header?`th`:`td`;return(t.align?`<`+n+` align="`+t.align+`">`:`<`+n+`>`)+e+(` +`)},n.strong=function(e){return``+e+``},n.em=function(e){return``+e+``},n.codespan=function(e){return``+e+``},n.br=function(){return this.options.xhtml?`
    `:`
    `},n.del=function(e){return``+e+``},n.link=function(e,t,n){if(e=w(this.options.sanitize,this.options.baseUrl,e),e===null)return n;var r=``+n+``,r},n.image=function(e,t,n){if(e=w(this.options.sanitize,this.options.baseUrl,e),e===null)return n;var r=``+n+``:`>`,r},n.text=function(e){return e},t}(),V=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return``+n},t.image=function(e,t,n){return``+n},t.br=function(){return``},e}(),ie=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,``).replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,``).replace(/\s/g,`-`)},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do r++,n=e+`-`+r;while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){t===void 0&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),ae=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new re,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new V,this.slugger=new ie}t.parse=function(e,n){return new t(n).parse(e)},t.parseInline=function(e,n){return new t(n).parseInline(e)};var n=t.prototype;return n.parse=function(e,t){t===void 0&&(t=!0);var n=``,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,b,x,S,C=e.length;for(r=0;r0&&_.tokens[0].type===`paragraph`?(_.tokens[0].text=x+` `+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&_.tokens[0].tokens[0].type===`text`&&(_.tokens[0].tokens[0].text=x+` `+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:`text`,text:x}):g+=x),g+=this.parse(_.tokens,h),d+=this.renderer.listitem(g,b,v);n+=this.renderer.list(d,p,m);continue;case`html`:n+=this.renderer.html(f.text);continue;case`paragraph`:n+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case`text`:for(d=f.tokens?this.parseInline(f.tokens):f.text;r+1An error occurred:

    `+_(r.message+``,!0)+`
    `;if(t)return Promise.resolve(i);if(n){n(null,i);return}return i}if(t)return Promise.reject(r);if(n){n(r);return}throw r}}function ce(e,t){return function(n,i,a){typeof i==`function`&&(a=i,i=null);var o=r({},i);i=r({},H.defaults,o);var s=se(i.silent,i.async,a);if(n==null)return s(Error(`marked(): input parameter is undefined or null`));if(typeof n!=`string`)return s(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(n)+`, string expected`));if(N(i),i.hooks&&(i.hooks.options=i),a){var c=i.highlight,l;try{i.hooks&&(n=i.hooks.preprocess(n)),l=e(n,i)}catch(e){return s(e)}var u=function(e){var n;if(!e)try{i.walkTokens&&H.walkTokens(l,i.walkTokens),n=t(l,i),i.hooks&&(n=i.hooks.postprocess(n))}catch(t){e=t}return i.highlight=c,e?s(e):a(null,n)};if(!c||c.length<3||(delete i.highlight,!l.length))return u();var d=0;H.walkTokens(l,function(e){e.type===`code`&&(d++,setTimeout(function(){c(e.text,e.lang,function(t,n){if(t)return u(t);n!=null&&n!==e.text&&(e.text=n,e.escaped=!0),d--,d===0&&u()})},0))}),d===0&&u();return}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(n):n).then(function(t){return e(t,i)}).then(function(e){return i.walkTokens?Promise.all(H.walkTokens(e,i.walkTokens)).then(function(){return e}):e}).then(function(e){return t(e,i)}).then(function(e){return i.hooks?i.hooks.postprocess(e):e}).catch(s);try{i.hooks&&(n=i.hooks.preprocess(n));var f=e(n,i);i.walkTokens&&H.walkTokens(f,i.walkTokens);var p=t(f,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(e){return s(e)}}}function H(e,t,n){return ce(B.lex,ae.parse)(e,t,n)}H.options=H.setOptions=function(e){return H.defaults=r({},H.defaults,e),u(H.defaults),H},H.getDefaults=l,H.defaults=e.defaults,H.use=function(){var e=H.defaults.extensions||{renderers:{},childTokens:{}};[...arguments].forEach(function(t){var n=r({},t);if(n.async=H.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach(function(t){if(!t.name)throw Error(`extension name required`);if(t.renderer){var n=e.renderers[t.name];n?e.renderers[t.name]=function(){var e=[...arguments],r=t.renderer.apply(this,e);return r===!1&&(r=n.apply(this,e)),r}:e.renderers[t.name]=t.renderer}if(t.tokenizer){if(!t.level||t.level!==`block`&&t.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);e[t.level]?e[t.level].unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&(t.level===`block`?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:t.level===`inline`&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}t.childTokens&&(e.childTokens[t.name]=t.childTokens)}),n.extensions=e),t.renderer&&(function(){var e=H.defaults.renderer||new re,r=function(n){var r=e[n];e[n]=function(){var i=[...arguments],a=t.renderer[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.renderer)r(i);n.renderer=e})(),t.tokenizer&&(function(){var e=H.defaults.tokenizer||new ne,r=function(n){var r=e[n];e[n]=function(){var i=[...arguments],a=t.tokenizer[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.tokenizer)r(i);n.tokenizer=e})(),t.hooks&&(function(){var e=H.defaults.hooks||new oe,r=function(n){var r=e[n];e[n]=oe.passThroughHooks.has(n)?function(i){if(H.defaults.async)return Promise.resolve(t.hooks[n].call(e,i)).then(function(t){return r.call(e,t)});var a=t.hooks[n].call(e,i);return r.call(e,a)}:function(){var i=[...arguments],a=t.hooks[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.hooks)r(i);n.hooks=e})(),t.walkTokens){var i=H.defaults.walkTokens;n.walkTokens=function(e){var n=[];return n.push(t.walkTokens.call(this,e)),i&&(n=n.concat(i.call(this,e))),n}}H.setOptions(n)})},H.walkTokens=function(e,t){for(var n=[],r=function(){var e=a.value;switch(n=n.concat(t.call(H,e)),e.type){case`table`:for(var r=o(e.header),i;!(i=r()).done;){var s=i.value;n=n.concat(H.walkTokens(s.tokens,t))}for(var c=o(e.rows),l;!(l=c()).done;)for(var u=l.value,d=o(u),f;!(f=d()).done;){var p=f.value;n=n.concat(H.walkTokens(p.tokens,t))}break;case`list`:n=n.concat(H.walkTokens(e.items,t));break;default:H.defaults.extensions&&H.defaults.extensions.childTokens&&H.defaults.extensions.childTokens[e.type]?H.defaults.extensions.childTokens[e.type].forEach(function(r){n=n.concat(H.walkTokens(e[r],t))}):e.tokens&&(n=n.concat(H.walkTokens(e.tokens,t)))}},i=o(e),a;!(a=i()).done;)r();return n},H.parseInline=ce(B.lexInline,ae.parseInline),H.Parser=ae,H.parser=ae.parse,H.Renderer=re,H.TextRenderer=V,H.Lexer=B,H.lexer=B.lex,H.Tokenizer=ne,H.Slugger=ie,H.Hooks=oe,H.parse=H;var le=H.options,ue=H.setOptions,U=H.use,de=H.walkTokens,fe=H.parseInline,pe=H,me=ae.parse,he=B.lex;e.Hooks=oe,e.Lexer=B,e.Parser=ae,e.Renderer=re,e.Slugger=ie,e.TextRenderer=V,e.Tokenizer=ne,e.getDefaults=l,e.lexer=he,e.marked=H,e.options=le,e.parse=pe,e.parseInline=fe,e.parser=me,e.setOptions=ue,e.use=U,e.walkTokens=de})),ee=n(((e,t)=>{var n=g();_(),v(),y(),S(),C(),w(),T(),E(),D(),O(),b();var r=j(),i=M().marked,a=/Mac/.test(navigator.platform),o=new RegExp(/()+?/g),s={toggleBold:P,toggleItalic:te,drawLink:le,toggleHeadingSmaller:L,toggleHeadingBigger:R,drawImage:ue,toggleBlockquote:I,toggleOrderedList:se,toggleUnorderedList:oe,toggleCheckList:ce,toggleCodeBlock:ne,togglePreview:ve,toggleStrikethrough:F,toggleHeading1:z,toggleHeading2:B,toggleHeading3:re,toggleHeading4:V,toggleHeading5:ie,toggleHeading6:ae,cleanBlock:H,drawTable:pe,drawHorizontalRule:me,undo:he,redo:ge,toggleSideBySide:_e,toggleFullScreen:N},c={toggleBold:`Cmd-B`,toggleItalic:`Cmd-I`,drawLink:`Cmd-K`,toggleHeadingSmaller:`Cmd-H`,toggleHeadingBigger:`Shift-Cmd-H`,toggleHeading1:`Ctrl+Alt+1`,toggleHeading2:`Ctrl+Alt+2`,toggleHeading3:`Ctrl+Alt+3`,toggleHeading4:`Ctrl+Alt+4`,toggleHeading5:`Ctrl+Alt+5`,toggleHeading6:`Ctrl+Alt+6`,cleanBlock:`Cmd-E`,drawImage:`Cmd-Alt-I`,toggleBlockquote:`Cmd-'`,toggleOrderedList:`Cmd-Alt-L`,toggleUnorderedList:`Cmd-L`,toggleCheckList:`Shift-Cmd-L`,toggleCodeBlock:`Cmd-Alt-C`,togglePreview:`Cmd-P`,toggleSideBySide:`F9`,toggleFullScreen:`F11`},l=function(e){for(var t in s)if(s[t]===e)return t;return null},u=function(){var e=!1;return(function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(t.substr(0,4)))&&(e=!0)})(navigator.userAgent||navigator.vendor||window.opera),e};function d(e){for(var t;(t=o.exec(e))!==null;){var n=t[0];if(n.indexOf(`target=`)===-1){var r=n.replace(/>$/,` target="_blank">`);e=e.replace(n,r)}}return e}function f(e){for(var t=new DOMParser().parseFromString(e,`text/html`),n=t.getElementsByTagName(`li`),r=0;r0){for(var m=document.createElement(`i`),h=0;h=0&&(u=o.getLineHandle(f),!n(u));f--);var _=r(o.getTokenAt({line:f,ch:1})).fencedChars,v,y,b,x;n(o.getLineHandle(s.line))?(v=``,y=s.line):n(o.getLineHandle(s.line-1))?(v=``,y=s.line-1):(v=_+` +`,y=s.line),n(o.getLineHandle(c.line))?(b=``,x=c.line,c.ch===0&&(x+=1)):c.ch!==0&&n(o.getLineHandle(c.line+1))?(b=``,x=c.line+1):(b=_+` +`,x=c.line+1),c.ch===0&&--x,o.operation(function(){o.replaceRange(b,{line:x,ch:0},{line:x+ +!b,ch:0}),o.replaceRange(v,{line:y,ch:0},{line:y+ +!v,ch:0})}),o.setSelection({line:y+ +!!v,ch:0},{line:x+(v?1:-1),ch:0}),o.focus()}else{var S=s.line;if(n(o.getLineHandle(s.line))&&(i(o,s.line+1)===`fenced`?(f=s.line,S=s.line+1):(p=s.line,S=s.line-1)),f===void 0)for(f=S;f>=0&&(u=o.getLineHandle(f),!n(u));f--);if(p===void 0)for(m=o.lineCount(),p=S;p=0;f--)if(u=o.getLineHandle(f),!u.text.match(/^\s*$/)&&i(o,f,u)!==`indented`){f+=1;break}for(m=o.lineCount(),p=s.line;p\s+/,"unordered-list":r,"ordered-list":r,"check-list":/^(\s*)(- \[[ xX]])(\s+)/},l=function(e,t){return{quote:`>`,"unordered-list":n,"ordered-list":`%%i.`,"check-list":`- [ ]`}[e].replace(`%%i`,t)},u=function(e,t){var r={quote:`>`,"unordered-list":`\\`+n,"ordered-list":`\\d+.`,"check-list":`- \\[[ xX]]`},i=new RegExp(r[e]);return t&&i.test(t)},d=function(e,t,n){var a=r.exec(t),o=l(e,f);return a===null?n==0&&(t=o+` `+t):(u(e,a[2])&&(o=``),t=a[1]+o+a[3]+t.replace(i,``).replace(c[e],`$1`)),t},f=1,p=[`unordered-list`,`ordered-list`,`check-list`],m=Object.keys(a)[0];if(!p.includes(m)){var h=e.getLine(o.line);/^\s*- \[[ xX]]\s/.test(h)?m=`check-list`:/^\s*\d+\.\s/.test(h)?m=`ordered-list`:/^\s*[*\-+]\s/.test(h)&&(m=`unordered-list`)}for(var g=o.line;g<=s.line;g++)(function(n){var r=e.getLine(n);a[t]?r=r.replace(c[t],`$1`):p.includes(m)&&p.includes(t)?(r=r.replace(c[m],`$1`),r=d(t,r,!1),f+=1):(r=d(t,r,!1),f+=1),e.replaceRange(r,{line:n,ch:0},{line:n,ch:99999999999999})})(g);e.focus()}}function Se(e,t,n,r){if(!(!e.codemirror||e.isPreviewActive())){var i=e.codemirror,a=A(i)[t];if(!a){ye(i,a,n,r);return}var o=i.getCursor(`start`),s=i.getCursor(`end`),c=i.getLine(o.line),l=c.slice(0,o.ch),u=c.slice(o.ch);t==`link`?l=l.replace(/(.*)[^!]\[/,`$1`):t==`image`&&(l=l.replace(/(.*)!\[$/,`$1`)),u=u.replace(/]\(.*?\)/,``),i.replaceRange(l+u,{line:o.line,ch:0},{line:o.line,ch:99999999999999}),o.ch-=n[0].length,o!==s&&(s.ch-=n[0].length),i.setSelection(o,s),i.focus()}}function Ce(e,t,n,r){if(!(!e.codemirror||e.isPreviewActive())){r=r===void 0?n:r;var i=e.codemirror,a=A(i),o,s=n,c=r,l=i.getCursor(`start`),u=i.getCursor(`end`);a[t]?(o=i.getLine(l.line),s=o.slice(0,l.ch),c=o.slice(l.ch),t==`bold`?(s=s.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,``),c=c.replace(/(\*\*|__)/,``)):t==`italic`?(s=s.replace(/(\*|_)(?![\s\S]*(\*|_))/,``),c=c.replace(/(\*|_)/,``)):t==`strikethrough`&&(s=s.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,``),c=c.replace(/(\*\*|~~)/,``)),i.replaceRange(s+c,{line:l.line,ch:0},{line:l.line,ch:99999999999999}),t==`bold`||t==`strikethrough`?(l.ch-=2,l!==u&&(u.ch-=2)):t==`italic`&&(--l.ch,l!==u&&--u.ch)):(o=i.getSelection(),t==`bold`?(o=o.split(`**`).join(``),o=o.split(`__`).join(``)):t==`italic`?(o=o.split(`*`).join(``),o=o.split(`_`).join(``)):t==`strikethrough`&&(o=o.split(`~~`).join(``)),i.replaceSelection(s+o+c),l.ch+=n.length,u.ch=l.ch+o.length),i.setSelection(l,u),i.focus()}}function we(e){if(!e.getWrapperElement().lastChild.classList.contains(`editor-preview-active`))for(var t=e.getCursor(`start`),n=e.getCursor(`end`),r,i=t.line;i<=n.line;i++)r=e.getLine(i),r=r.replace(/^[ ]*([# ]+|\*|-|[> ]+|[0-9]+(.|\)))[ ]*/,``),e.replaceRange(r,{line:i,ch:0},{line:i,ch:99999999999999})}function Te(e,t){if(Math.abs(e)<1024)return``+e+t[0];var n=0;do e/=1024,++n;while(Math.abs(e)>=1024&&n=19968?n+=t[r].length:n+=1;return n}var W={bold:`fa fa-bold`,italic:`fa fa-italic`,strikethrough:`fa fa-strikethrough`,heading:`fa fa-header fa-heading`,"heading-smaller":`fa fa-header fa-heading header-smaller`,"heading-bigger":`fa fa-header fa-heading header-bigger`,"heading-1":`fa fa-header fa-heading header-1`,"heading-2":`fa fa-header fa-heading header-2`,"heading-3":`fa fa-header fa-heading header-3`,code:`fa fa-code`,quote:`fa fa-quote-left`,"ordered-list":`fa fa-list-ol`,"unordered-list":`fa fa-list-ul`,"check-list":`fa fa-check-square-o`,"clean-block":`fa fa-eraser`,link:`fa fa-link`,image:`fa fa-image`,"upload-image":`fa fa-image`,table:`fa fa-table`,"horizontal-rule":`fa fa-minus`,preview:`fa fa-eye`,"side-by-side":`fa fa-columns`,fullscreen:`fa fa-arrows-alt`,guide:`fa fa-question-circle`,undo:`fa fa-undo`,redo:`fa fa-repeat fa-redo`},ke={bold:{name:`bold`,action:P,className:W.bold,title:`Bold`,default:!0},italic:{name:`italic`,action:te,className:W.italic,title:`Italic`,default:!0},strikethrough:{name:`strikethrough`,action:F,className:W.strikethrough,title:`Strikethrough`},heading:{name:`heading`,action:L,className:W.heading,title:`Heading`,default:!0},"heading-smaller":{name:`heading-smaller`,action:L,className:W[`heading-smaller`],title:`Smaller Heading`},"heading-bigger":{name:`heading-bigger`,action:R,className:W[`heading-bigger`],title:`Bigger Heading`},"heading-1":{name:`heading-1`,action:z,className:W[`heading-1`],title:`Big Heading`},"heading-2":{name:`heading-2`,action:B,className:W[`heading-2`],title:`Medium Heading`},"heading-3":{name:`heading-3`,action:re,className:W[`heading-3`],title:`Small Heading`},"separator-1":{name:`separator-1`},code:{name:`code`,action:ne,className:W.code,title:`Code`},quote:{name:`quote`,action:I,className:W.quote,title:`Quote`,default:!0},"unordered-list":{name:`unordered-list`,action:oe,className:W[`unordered-list`],title:`Generic List`,default:!0},"ordered-list":{name:`ordered-list`,action:se,className:W[`ordered-list`],title:`Numbered List`,default:!0},"check-list":{name:`check-list`,action:ce,className:W[`check-list`],title:`Check List`,default:!0},"clean-block":{name:`clean-block`,action:H,className:W[`clean-block`],title:`Clean block`},"separator-2":{name:`separator-2`},link:{name:`link`,action:le,className:W.link,title:`Create Link`,default:!0},image:{name:`image`,action:ue,className:W.image,title:`Insert Image`,default:!0},"upload-image":{name:`upload-image`,action:de,className:W[`upload-image`],title:`Import an image`},table:{name:`table`,action:pe,className:W.table,title:`Insert Table`},"horizontal-rule":{name:`horizontal-rule`,action:me,className:W[`horizontal-rule`],title:`Insert Horizontal Line`},"separator-3":{name:`separator-3`},preview:{name:`preview`,action:ve,className:W.preview,noDisable:!0,title:`Toggle Preview`,default:!0},"side-by-side":{name:`side-by-side`,action:_e,className:W[`side-by-side`],noDisable:!0,noMobile:!0,title:`Toggle Side by Side`,default:!0},fullscreen:{name:`fullscreen`,action:N,className:W.fullscreen,noDisable:!0,noMobile:!0,title:`Toggle Fullscreen`,default:!0},"separator-4":{name:`separator-4`},guide:{name:`guide`,action:`https://www.markdownguide.org/basic-syntax/`,className:W.guide,noDisable:!0,title:`Markdown Guide`,default:!0},"separator-5":{name:`separator-5`},undo:{name:`undo`,action:he,className:W.undo,noDisable:!0,title:`Undo`},redo:{name:`redo`,action:ge,className:W.redo,noDisable:!0,title:`Redo`}},Ae={link:[`[`,`](#url#)`],image:[`![`,`](#url#)`],uploadedImage:[`![](#url#)`,``],table:[``,` + +| Column 1 | Column 2 | Column 3 | +| -------- | -------- | -------- | +| Text | Text | Text | + +`],horizontalRule:[``,` + +----- + +`]},je={link:`URL for the link:`,image:`URL of the image:`},Me={locale:`en-US`,format:{hour:`2-digit`,minute:`2-digit`}},Ne={bold:`**`,code:"```",italic:`*`},Pe={sbInit:`Attach files by drag and dropping or pasting from clipboard.`,sbOnDragEnter:`Drop image to upload it.`,sbOnDrop:`Uploading image #images_names#...`,sbProgress:`Uploading #file_name#: #progress#%`,sbOnUploaded:`Uploaded #image_name#`,sizeUnits:` B, KB, MB`},Fe={noFileGiven:`You must select a file.`,typeNotAllowed:`This image type is not allowed.`,fileTooLarge:`Image #image_name# is too big (#image_size#). +Maximum file size is #image_max_size#.`,importError:`Something went wrong when uploading the image #image_name#.`};function G(e){e||={},e.parent=this;var t=!0;if(e.autoDownloadFontAwesome===!1&&(t=!1),e.autoDownloadFontAwesome!==!0)for(var n=document.styleSheets,r=0;r-1&&(t=!1);if(t){var i=document.createElement(`link`);i.rel=`stylesheet`,i.href=`https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css`,document.getElementsByTagName(`head`)[0].appendChild(i)}if(e.element)this.element=e.element;else if(e.element===null){console.log(`EasyMDE: Error. No element was found.`);return}if(e.toolbar===void 0)for(var a in e.toolbar=[],ke)Object.prototype.hasOwnProperty.call(ke,a)&&(a.indexOf(`separator-`)!=-1&&e.toolbar.push(`|`),(ke[a].default===!0||e.showIcons&&e.showIcons.constructor===Array&&e.showIcons.indexOf(a)!=-1)&&e.toolbar.push(a));if(Object.prototype.hasOwnProperty.call(e,`previewClass`)||(e.previewClass=`editor-preview`),Object.prototype.hasOwnProperty.call(e,`status`)||(e.status=[`autosave`,`lines`,`words`,`cursor`],e.uploadImage&&e.status.unshift(`upload-image`)),e.previewRender||(e.previewRender=function(e){return this.parent.markdown(e)}),e.parsingConfig=De({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=De({},Ae,e.insertTexts||{}),e.promptTexts=De({},je,e.promptTexts||{}),e.blockStyles=De({},Ne,e.blockStyles||{}),e.autosave!=null&&(e.autosave.timeFormat=De({},Me,e.autosave.timeFormat||{})),e.iconClassMap=De({},W,e.iconClassMap||{}),e.shortcuts=De({},c,e.shortcuts||{}),e.maxHeight=e.maxHeight||void 0,e.direction=e.direction||`ltr`,e.maxHeight===void 0?e.minHeight=e.minHeight||`300px`:e.minHeight=e.maxHeight,e.errorCallback=e.errorCallback||function(e){alert(e)},e.uploadImage=e.uploadImage||!1,e.imageMaxSize=e.imageMaxSize||2097152,e.imageAccept=e.imageAccept||`image/png, image/jpeg, image/gif, image/avif`,e.imageTexts=De({},Pe,e.imageTexts||{}),e.errorMessages=De({},Fe,e.errorMessages||{}),e.imagePathAbsolute=e.imagePathAbsolute||!1,e.imageCSRFName=e.imageCSRFName||`csrfmiddlewaretoken`,e.imageCSRFHeader=e.imageCSRFHeader||!1,e.imageInputName=e.imageInputName||`image`,e.autosave!=null&&e.autosave.unique_id!=null&&e.autosave.unique_id!=``&&(e.autosave.uniqueId=e.autosave.unique_id),e.overlayMode&&e.overlayMode.combine===void 0&&(e.overlayMode.combine=!0),this.options=e,this.render(),e.initialValue&&(!this.options.autosave||this.options.autosave.foundSavedValue!==!0)&&this.value(e.initialValue),e.uploadImage){var o=this;this.codemirror.on(`dragenter`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragend`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragleave`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragover`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`drop`,function(t,n){n.stopPropagation(),n.preventDefault(),e.imageUploadFunction?o.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.dataTransfer.files):o.uploadImages(n.dataTransfer.files)}),this.codemirror.on(`paste`,function(t,n){e.imageUploadFunction?o.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.clipboardData.files):o.uploadImages(n.clipboardData.files)})}}G.prototype.uploadImages=function(e,t,n){if(e.length!==0){for(var r=[],i=0;i=2){var i=r[1];if(t.imagesPreviewHandler){var a=t.imagesPreviewHandler(r[1]);typeof a==`string`&&(i=a)}if(window.EMDEimagesCache[i])v(n,window.EMDEimagesCache[i]);else{window.EMDEimagesCache[i]={};var o=document.createElement(`img`);o.onload=function(){window.EMDEimagesCache[i]={naturalWidth:o.naturalWidth,naturalHeight:o.naturalHeight,url:i},v(n,window.EMDEimagesCache[i])},o.src=i}}}})}this.codemirror.on(`update`,function(){y()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(t.autofocus===!0||e.autofocus)&&this.codemirror.focus();var b=this.codemirror;setTimeout(function(){b.refresh()}.bind(b),0)},G.prototype.cleanup=function(){document.removeEventListener(`keydown`,this.documentOnKeyDown)};function Ie(){if(typeof localStorage==`object`)try{localStorage.setItem(`smde_localStorage`,1),localStorage.removeItem(`smde_localStorage`)}catch{return!1}else return!1;return!0}G.prototype.autosave=function(){if(Ie()){var e=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==``){console.log(`EasyMDE: You must set a uniqueId to use the autosave feature`);return}this.options.autosave.binded!==!0&&(e.element.form!=null&&e.element.form!=null&&e.element.form.addEventListener(`submit`,function(){clearTimeout(e.autosaveTimeoutId),e.autosaveTimeoutId=void 0,localStorage.removeItem(`smde_`+e.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem(`smde_`+this.options.autosave.uniqueId)==`string`&&localStorage.getItem(`smde_`+this.options.autosave.uniqueId)!=``&&(this.codemirror.setValue(localStorage.getItem(`smde_`+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var t=e.value();t===``?localStorage.removeItem(`smde_`+this.options.autosave.uniqueId):localStorage.setItem(`smde_`+this.options.autosave.uniqueId,t);var n=document.getElementById(`autosaved`);if(n!=null&&n!=null&&n!=``){var r=new Date,i=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,`en-US`],this.options.autosave.timeFormat.format).format(r);n.innerHTML=(this.options.autosave.text==null?`Autosaved: `:this.options.autosave.text)+i}}else console.log(`EasyMDE: localStorage not available, cannot autosave`)},G.prototype.clearAutosavedValue=function(){if(Ie()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==``){console.log(`EasyMDE: You must set a uniqueId to clear the autosave value`);return}localStorage.removeItem(`smde_`+this.options.autosave.uniqueId)}else console.log(`EasyMDE: localStorage not available, cannot autosave`)},G.prototype.openBrowseFileWindow=function(e,t){var n=this,r=this.gui.toolbar.getElementsByClassName(`imageInput`)[0];r.click();function i(a){n.options.imageUploadFunction?n.uploadImagesUsingCustomFunction(n.options.imageUploadFunction,a.target.files):n.uploadImages(a.target.files,e,t),r.removeEventListener(`change`,i)}r.addEventListener(`change`,i)},G.prototype.uploadImage=function(e,t,n){var r=this;t||=function(e){fe(r,e)};function i(e){r.updateStatusBar(`upload-image`,e),setTimeout(function(){r.updateStatusBar(`upload-image`,r.options.imageTexts.sbInit)},1e4),n&&typeof n==`function`&&n(e),r.options.errorCallback(e)}function a(t){var n=r.options.imageTexts.sizeUnits.split(`,`);return t.replace(`#image_name#`,e.name).replace(`#image_size#`,Te(e.size,n)).replace(`#image_max_size#`,Te(r.options.imageMaxSize,n))}if(e.size>this.options.imageMaxSize){i(a(this.options.errorMessages.fileTooLarge));return}var o=new FormData;o.append(`image`,e),r.options.imageCSRFToken&&!r.options.imageCSRFHeader&&o.append(r.options.imageCSRFName,r.options.imageCSRFToken);var s=new XMLHttpRequest;s.upload.onprogress=function(t){if(t.lengthComputable){var n=``+Math.round(t.loaded*100/t.total);r.updateStatusBar(`upload-image`,r.options.imageTexts.sbProgress.replace(`#file_name#`,e.name).replace(`#progress#`,n))}},s.open(`POST`,this.options.imageUploadEndpoint),r.options.imageCSRFToken&&r.options.imageCSRFHeader&&s.setRequestHeader(r.options.imageCSRFName,r.options.imageCSRFToken),s.onload=function(){try{var e=JSON.parse(this.responseText)}catch{console.error(`EasyMDE: The server did not return a valid json.`),i(a(r.options.errorMessages.importError));return}this.status===200&&e&&!e.error&&e.data&&e.data.filePath?t((r.options.imagePathAbsolute?``:window.location.origin+`/`)+e.data.filePath):e.error&&e.error in r.options.errorMessages?i(a(r.options.errorMessages[e.error])):e.error?i(a(e.error)):(console.error(`EasyMDE: Received an unexpected response after uploading the image.`+this.status+` (`+this.statusText+`)`),i(a(r.options.errorMessages.importError)))},s.onerror=function(e){console.error(`EasyMDE: An unexpected error occurred when trying to upload the image.`+e.target.status+` (`+e.target.statusText+`)`),i(r.options.errorMessages.importError)},s.send(o)},G.prototype.uploadImageUsingCustomFunction=function(e,t){var n=this;function r(e){fe(n,e)}function i(e){var t=a(e);n.updateStatusBar(`upload-image`,t),setTimeout(function(){n.updateStatusBar(`upload-image`,n.options.imageTexts.sbInit)},1e4),n.options.errorCallback(t)}function a(e){var r=n.options.imageTexts.sizeUnits.split(`,`);return e.replace(`#image_name#`,t.name).replace(`#image_size#`,Te(t.size,r)).replace(`#image_max_size#`,Te(n.options.imageMaxSize,r))}e.apply(this,[t,r,i])},G.prototype.setPreviewMaxHeight=function(){var e=this.codemirror.getWrapperElement(),t=e.nextSibling,n=parseInt(window.getComputedStyle(e).paddingTop),r=parseInt(window.getComputedStyle(e).borderTopWidth),i=(parseInt(this.options.maxHeight)+n*2+r*2).toString()+`px`;t.style.height=i},G.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;if(!n||!n.classList.contains(`editor-preview-side`)){if(n=document.createElement(`div`),n.className=`editor-preview-side`,this.options.previewClass){if(Array.isArray(this.options.previewClass))for(var r=0;r`simplemde-editor-${++te}`,ne=({options:e,id:t,currentValueRef:n,textRef:r})=>{let[i,a]=(0,N.useState)(null),o=(0,N.useCallback)((t,n,r)=>{let i=e?.imageUploadFunction;i&&i(t,e=>{n(e)},r)},[e?.imageUploadFunction]),s=(0,N.useRef)(i);return s.current=i,(0,N.useEffect)(()=>{let t;if(r){let i={element:r,initialValue:n.current},s=e?.imageUploadFunction?o:void 0;t=new P.default(Object.assign({},i,e,{imageUploadFunction:s})),a(t)}return()=>{t?.toTextArea(),t?.cleanup()}},[r,n,t,o,e]),{editor:i,codemirror:(0,N.useMemo)(()=>i?.codemirror,[i?.codemirror])}},I=N.forwardRef((e,t)=>{let{events:n,value:r,options:i,children:a,extraKeys:o,getLineAndCursor:s,getMdeInstance:c,getCodemirrorInstance:l,onChange:u,id:d,placeholder:f,textareaProps:p,...m}=e,h=(0,N.useMemo)(()=>d??F(),[d]),g=(0,N.useRef)(null),_=(0,N.useRef)(!0),v=(0,N.useRef)(r);v.current=r;let[y,b]=(0,N.useState)(null),{editor:x,codemirror:S}=ne({options:i,id:h,currentValueRef:v,textRef:y});(0,N.useEffect)(()=>{_.current&&x?.value(r??``),_.current=!0},[x,r]);let C=(0,N.useCallback)((e,t)=>{x?.value()!==v.current&&(_.current=!1,u?.(x?.value()??``,t))},[x,u]);(0,N.useEffect)(()=>{i?.autofocus&&(S?.focus(),S?.setCursor(S?.lineCount(),0))},[S,i?.autofocus]);let w=(0,N.useCallback)(()=>{S&&s?.(S.getDoc().getCursor())},[S,s]);(0,N.useEffect)(()=>{w()},[w]),(0,N.useEffect)(()=>{x&&c?.(x)},[x,c]),(0,N.useEffect)(()=>{S&&l?.(S)},[S,l,c]),(0,N.useEffect)(()=>{o&&S&&S.setOption(`extraKeys`,Object.assign({},S.getOption(`extraKeys`),o))},[S,o]),(0,N.useEffect)(()=>{let e=g.current?.getElementsByClassName(`editor-toolbarNode`)[0],t=S&&C;return t?(e?.addEventListener(`click`,t),()=>{e?.removeEventListener(`click`,t)}):()=>{}},[S,C]),(0,N.useEffect)(()=>(S?.on(`change`,C),S?.on(`cursorActivity`,w),()=>{S?.off(`change`,C),S?.off(`cursorActivity`,w)}),[S,w,C]);let T=(0,N.useRef)(n);return(0,N.useEffect)(()=>(n!==T.current&&T.current&&Object.entries(T.current).forEach(([e,t])=>{t&&S?.off(e,t)}),n&&Object.entries(n).forEach(([e,t])=>{t&&S?.on(e,t)}),T.current=n,()=>{n&&Object.entries(n).forEach(([e,t])=>{t&&S?.off(e,t)})}),[S,n]),N.createElement(`div`,{id:`${h}-wrapper`,...m,ref:e=>{typeof t==`function`?t(e):t&&(t.current=e),g.current=e}},N.createElement(`textarea`,{...p,id:h,placeholder:f,ref:b,style:{display:`none`}}))});I.displayName=`SimpleMdeReact`;var L=I,R=f();function z({sessionId:e,note:t,isNew:n,initialMode:l,allFolders:f,onClose:g,onSaved:_,onDelete:v,pushToast:y}){let[b,x]=(0,N.useState)(l),[S,C]=(0,N.useState)(``),[w,T]=(0,N.useState)(!n),[E,D]=(0,N.useState)(!1),[O,k]=(0,N.useState)(null),[A,j]=(0,N.useState)(!1),[M,ee]=(0,N.useState)(t.folder??``);(0,N.useEffect)(()=>{if(n)return;let r=!1;return h.sessionNote(e,t.filename,t.folder).then(e=>{r||(C(e.content),T(!1))}).catch(()=>{r||(T(!1),y(`error`,`Failed to load ${t.filename}.md`))}),()=>{r=!0}},[e,t.filename,t.folder,n,y]);async function P(){D(!0),k(null);try{let r=!n&&M!==(t.folder??``);n?(await h.createSessionNote(e,t.filename,S,M),y(`success`,`${t.filename}.md created`)):r?(await h.createSessionNote(e,t.filename,S,M),await h.deleteSessionNote(e,t.filename,t.folder),y(`success`,`${t.filename}.md moved to ${M||`root`}`)):(await h.updateSessionNote(e,t.filename,S,t.folder),y(`success`,`${t.filename}.md saved`)),_(),g()}catch(e){k(String(e))}finally{D(!1)}}let te=M?`${M}/${t.filename}.md`:`${t.filename}.md`,F=t.folder?`/api/sessions/${e}/notes/${t.filename}?folder=${encodeURIComponent(t.folder)}&download=1`:`/api/sessions/${e}/notes/${t.filename}?download=1`;return(0,R.jsxs)(m,{isOpen:!0,onClose:g,disableClose:E,className:`note-modal`,title:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`note-modal-icon`,children:(0,R.jsx)(c,{size:13})}),(0,R.jsx)(`span`,{className:`modal-name note-modal-name`,children:te}),(0,R.jsxs)(`div`,{className:`note-modal-header-actions`,children:[b===`edit`&&f.length>0&&(0,R.jsxs)(`select`,{name:`note-folder`,className:`note-modal-folder-select`,value:M,onChange:e=>ee(e.target.value),disabled:E,title:`Move to folder`,children:[(0,R.jsx)(`option`,{value:``,children:`/ root`}),f.map(e=>(0,R.jsxs)(`option`,{value:e,children:[e,`/`]},e))]}),b===`view`&&(0,R.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{j(!1),x(`edit`)},title:`Edit`,children:[(0,R.jsx)(a,{size:12}),` Edit`]}),b===`edit`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:P,disabled:E,children:[(0,R.jsx)(r,{size:12}),` `,E?`Saving…`:`Save`]}),!n&&(0,R.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{k(null),x(`view`)},disabled:E,title:`Switch to view`,children:[(0,R.jsx)(u,{size:12}),` View`]})]}),!n&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`a`,{className:`session-action-btn`,title:`Download`,href:F,download:`${t.filename}.md`,children:(0,R.jsx)(o,{size:12})}),(0,R.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete`,onClick:()=>{g(),v(t)},disabled:E,children:(0,R.jsx)(s,{size:12})})]})]})]}),children:[O&&(0,R.jsx)(`div`,{className:`session-notes-error`,children:O}),w?(0,R.jsx)(`p`,{className:`section-meta section-meta--padded`,children:`Loading…`}):b===`view`?(0,R.jsx)(`div`,{className:`session-notes-read-body note-modal-read-body`,children:S.trim()?(0,R.jsx)(d,{remarkPlugins:[p],children:S}):(0,R.jsx)(`p`,{className:`notes-empty-text`,children:`This note is empty. Click Edit to start writing.`})}):(0,R.jsxs)(`div`,{className:`note-modal-editor-wrap`,children:[!A&&(0,R.jsx)(`div`,{className:`editor-loading`,"aria-label":`Loading editor…`,children:(0,R.jsx)(i,{size:22,className:`spin`,color:`var(--green)`})}),(0,R.jsx)(`div`,{className:A?`editor-ready`:void 0,style:A?void 0:{position:`absolute`,visibility:`hidden`,pointerEvents:`none`,width:`100%`},children:(0,R.jsx)(L,{value:S,onChange:C,getMdeInstance:()=>j(!0),options:{spellChecker:!1,autofocus:!0,placeholder:`Write your notes in markdown…`,status:[`lines`,`words`],toolbar:[`bold`,`italic`,`heading`,`|`,`quote`,`unordered-list`,`ordered-list`,`|`,`link`,`code`,`table`,`|`,`preview`,`side-by-side`,`fullscreen`,`|`,`guide`]}})})]})]})}export{z as NoteModal}; \ No newline at end of file diff --git a/frontend/dashboard/assets/NoteModal-eFcesyiR.js b/frontend/dashboard/assets/NoteModal-eFcesyiR.js deleted file mode 100644 index 80937e265..000000000 --- a/frontend/dashboard/assets/NoteModal-eFcesyiR.js +++ /dev/null @@ -1,95 +0,0 @@ -import{i as e,r as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{$t as r,A as i,I as a,O as o,bt as s,gt as c,mt as l,u}from"./vendor-lucide-tZ8AzO6l.js";import{n as d,r as f,t as p}from"./vendor-markdown-CZSHC-G5.js";import{t as m}from"./Sheet-CPyVkJ3G.js";import{x as h}from"./index-DoDmaCqd.js";var g=n(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n||=self,n.CodeMirror=r())})(e,(function(){var e=navigator.userAgent,t=navigator.platform,n=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),a=/Edge\/(\d+)/.exec(e),o=r||i||a,s=o&&(r?document.documentMode||6:+(a||i)[1]),c=!a&&/WebKit\//.test(e),l=c&&/Qt\/\d+\.\d+/.test(e),u=!a&&/Chrome\/(\d+)/.exec(e),d=u&&+u[1],f=/Opera\//.test(e),p=/Apple Computer/.test(navigator.vendor),m=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),h=/PhantomJS/.test(e),g=p&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),_=/Android/.test(e),v=g||_||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\bCrOS\b/.test(e),x=/win/i.test(t),S=f&&e.match(/Version\/(\d*\.\d*)/);S&&=Number(S[1]),S&&S>=15&&(f=!1,c=!0);var C=y&&(l||f&&(S==null||S<12.11)),w=n||o&&s>=9;function T(e){return RegExp(`(^|\\s)`+e+`(?:$|\\s)\\s*`)}var E=function(e,t){var n=e.className,r=T(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:``)}};function D(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function O(e,t){return D(e).appendChild(t)}function k(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),typeof t==`string`)i.appendChild(document.createTextNode(t));else if(t)for(var a=0;a=t)return o+(t-a);o+=s-a,o+=n-o%n,a=s+1}}var re=function(){this.id=null,this.f=null,this.time=0,this.handler=R(this.onTimeout,this)};re.prototype.onTimeout=function(e){e.id=0,e.time<=+new Date?e.f():setTimeout(e.handler,e.time-+new Date)},re.prototype.set=function(e,t){this.f=t;var n=+new Date+e;(!this.id||n=t)return r+Math.min(o,t-i);if(i+=a-r,i+=n-i%n,r=a+1,i>=t)return r}}var le=[``];function ue(e){for(;le.length<=e;)le.push(U(le)+` `);return le[e]}function U(e){return e[e.length-1]}function de(e,t){for(var n=[],r=0;r`€`&&(e.toUpperCase()!=e.toLowerCase()||he.test(e))}function _e(e,t){return t?t.source.indexOf(`\\w`)>-1&&ge(e)?!0:t.test(e):ge(e)}function ve(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ye=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function be(e){return e.charCodeAt(0)>=768&&ye.test(e)}function xe(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,a=r<0?Math.ceil(i):Math.floor(i);if(a==t)return e(a)?t:n;e(a)?n=a:t=a+r}}function Ce(e,t,n,r){if(!e)return r(t,n,`ltr`,0);for(var i=!1,a=0;at||t==n&&o.to==t)&&(r(Math.max(o.from,t),Math.min(o.to,n),o.level==1?`rtl`:`ltr`,a),i=!0)}i||r(t,n,`ltr`)}var we=null;function Te(e,t,n){var r;we=null;for(var i=0;it)return i;a.to==t&&(a.from!=a.to&&n==`before`?r=i:we=i),a.from==t&&(a.from!=a.to&&n!=`before`?r=i:we=i)}return r??we}var Ee=(function(){function e(e){return e<=247?`bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN`.charAt(e):1424<=e&&e<=1524?`R`:1536<=e&&e<=1785?`nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111`.charAt(e-1536):1774<=e&&e<=2220?`r`:8192<=e&&e<=8203?`w`:e==8204?`b`:`L`}var t=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,n=/[stwN]/,r=/[LRr]/,i=/[Lb1n]/,a=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(s,c){var l=c==`ltr`?`L`:`R`;if(s.length==0||c==`ltr`&&!t.test(s))return!1;for(var u=s.length,d=[],f=0;f-1&&(r[t]=i.slice(0,a).concat(i.slice(a+1)))}}}function je(e,t){var n=ke(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function Fe(e){e.prototype.on=function(e,t){W(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function G(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ie(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Le(e){return e.defaultPrevented==null?e.returnValue==0:e.defaultPrevented}function Re(e){G(e),Ie(e)}function ze(e){return e.target||e.srcElement}function Be(e){var t=e.which;return t??(e.button&1?t=1:e.button&2?t=3:e.button&4&&(t=2)),y&&e.ctrlKey&&t==1&&(t=3),t}var Ve=function(){if(o&&s<9)return!1;var e=k(`div`);return`draggable`in e||`dragDrop`in e}(),He;function Ue(e){if(He==null){var t=k(`span`,`​`);O(e,k(`span`,[t,document.createTextNode(`x`)])),e.firstChild.offsetHeight!=0&&(He=t.offsetWidth<=1&&t.offsetHeight>2&&!(o&&s<8))}var n=He?k(`span`,`​`):k(`span`,`\xA0`,null,`display: inline-block; width: 1px; margin-right: -1px`);return n.setAttribute(`cm-text`,``),n}var We;function Ge(e){if(We!=null)return We;var t=O(e,document.createTextNode(`AخA`)),n=j(t,0,1).getBoundingClientRect(),r=j(t,1,2).getBoundingClientRect();return D(e),!n||n.left==n.right?!1:We=r.right-n.right<3}var Ke=` - -b`.split(/\n/).length==3?function(e){return e.split(/\r\n?|\n/)}:function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(` -`,t);i==-1&&(i=e.length);var a=e.slice(t,e.charAt(i-1)==`\r`?i-1:i),o=a.indexOf(`\r`);o==-1?(n.push(a),t=i+1):(n.push(a.slice(0,o)),t+=o+1)}return n},qe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch{return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch{}return!t||t.parentElement()!=e?!1:t.compareEndPoints(`StartToEnd`,t)!=0},Je=(function(){var e=k(`div`);return`oncopy`in e?!0:(e.setAttribute(`oncopy`,`return;`),typeof e.oncopy==`function`)})(),Ye=null;function Xe(e){if(Ye!=null)return Ye;var t=O(e,k(`span`,`x`)),n=t.getBoundingClientRect(),r=j(t,0,1).getBoundingClientRect();return Ye=Math.abs(n.left-r.left)>1}var Ze={},Qe={};function $e(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Ze[e]=t}function et(e,t){Qe[e]=t}function tt(e){if(typeof e==`string`&&Qe.hasOwnProperty(e))e=Qe[e];else if(e&&typeof e.name==`string`&&Qe.hasOwnProperty(e.name)){var t=Qe[e.name];typeof t==`string`&&(t={name:t}),e=me(t,e),e.name=t.name}else if(typeof e==`string`&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return tt(`application/xml`);else if(typeof e==`string`&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return tt(`application/json`);return typeof e==`string`?{name:e}:e||{name:`null`}}function nt(e,t){t=tt(t);var n=Ze[t.name];if(!n)return nt(e,`text/plain`);var r=n(e,t);if(rt.hasOwnProperty(t.name)){var i=rt[t.name];for(var a in i)i.hasOwnProperty(a)&&(r.hasOwnProperty(a)&&(r[`_`+a]=r[a]),r[a]=i[a])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var o in t.modeProps)r[o]=t.modeProps[o];return r}var rt={};function it(e,t){z(t,rt.hasOwnProperty(e)?rt[e]:rt[e]={})}function at(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function ot(e,t){for(var n;e.innerMode&&(n=e.innerMode(t),!(!n||n.mode==e));)t=n.state,e=n.mode;return n||{mode:e,state:t}}function st(e,t,n){return!e.startState||e.startState(t,n)}var ct=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};ct.prototype.eol=function(){return this.pos>=this.string.length},ct.prototype.sol=function(){return this.pos==this.lineStart},ct.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ct.prototype.next=function(){if(this.post},ct.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},ct.prototype.skipToEnd=function(){this.pos=this.string.length},ct.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},ct.prototype.backUp=function(e){this.pos-=e},ct.prototype.column=function(){return this.lastColumnPos0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}},ct.prototype.current=function(){return this.string.slice(this.start,this.pos)},ct.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},ct.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},ct.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};function K(e,t){if(t-=e.first,t<0||t>=e.size)throw Error(`There is no line `+(t+e.first)+` in the document.`);for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],a=i.chunkSize();if(t=e.first&&tn?J(n,K(e,n).text.length):bt(t,K(e,t.line).text.length)}function bt(e,t){var n=e.ch;return n==null||n>t?J(e.line,t):n<0?J(e.line,0):e}function xt(e,t){for(var n=[],r=0;rthis.maxLookAhead&&(this.maxLookAhead=e),t},Ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,``),size:this.baseTokens[this.baseTokenPos]-e}},Ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Ct.fromSaved=function(e,t,n){return t instanceof St?new Ct(e,at(e.mode,t.state),n,t.lookAhead):new Ct(e,at(e.mode,t),n)},Ct.prototype.save=function(e){var t=e===!1?this.state:at(this.doc.mode,this.state);return this.maxLookAhead>0?new St(t,this.maxLookAhead):t};function wt(e,t,n,r){var i=[e.state.modeGen],a={};Nt(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},a,r);for(var o=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],c=1,l=0;n.state=!0,Nt(e,t.text,s.mode,n,function(e,t){for(var n=c;le&&i.splice(c,1,e,i[c+1],r),c+=2,l=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,c-n,e,`overlay `+t),c=n+2;else for(;ne.options.maxHighlightLength&&at(e.doc.mode,r.state),a=wt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=a.styles,a.classes?t.styleClasses=a.classes:t.styleClasses&&=null,n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Et(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new Ct(r,!0,t);var a=Pt(e,t,n),o=a>r.first&&K(r,a-1).stateAfter,s=o?Ct.fromSaved(r,o,a):new Ct(r,st(r.mode),a);return r.iter(a,t,function(n){Dt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return a}throw Error(`Mode `+e.name+` failed to advance stream.`)}var At=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function jt(e,t,n,r){var i=e.doc,a=i.mode,o;t=X(i,t);var s=K(i,t.line),c=Et(e,t.line,n),l=new ct(s.text,e.options.tabSize,c),u;for(r&&(u=[]);(r||l.pose.options.maxHighlightLength?(s=!1,o&&Dt(e,t,r,u.pos),u.pos=t.length,d=null):d=Mt(kt(n,u,r.state,f),a),f){var p=f[0].name;p&&(d=`m-`+(d?p+` `+d:p))}if(!s||l!=d){for(;co;--s){if(s<=a.first)return a.first;var c=K(a,s-1),l=c.stateAfter;if(l&&(!n||s+(l instanceof St?l.lookAhead:0)<=a.modeFrontier))return s;var u=B(c.text,null,e.options.tabSize);(i==null||r>u)&&(i=s-1,r=u)}return i}function Ft(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=K(e,r).stateAfter;if(i&&(!(i instanceof St)||r+i.lookAhead=t:a.to>t);(r||=[]).push(new Bt(o,a.from,s?null:a.to))}}return r}function Gt(e,t,n){var r;if(e)for(var i=0;i=t:a.to>t)||a.from==t&&o.type==`bookmark`&&(!n||a.marker.insertLeft)){var s=a.from==null||(o.inclusiveLeft?a.from<=t:a.from0&&s)for(var y=0;y0)){var u=[c,1],d=Y(l.from,s.from),f=Y(l.to,s.to);(d<0||!o.inclusiveLeft&&!d)&&u.push({from:l.from,to:s.from}),(f>0||!o.inclusiveRight&&!f)&&u.push({from:s.to,to:l.to}),i.splice.apply(i,u),c+=u.length-3}}return i}function Yt(e){var t=e.markedSpans;if(t){for(var n=0;nt)&&(!r||$t(r,a.marker)<0)&&(r=a.marker)}return r}function an(e,t,n,r,i){var a=K(e,t),o=Lt&&a.markedSpans;if(o)for(var s=0;s=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(c.marker.inclusiveRight&&i.inclusiveLeft?Y(l.to,n)>=0:Y(l.to,n)>0)||u>=0&&(c.marker.inclusiveRight&&i.inclusiveLeft?Y(l.from,r)<=0:Y(l.from,r)<0)))return!0}}}function on(e){for(var t;t=tn(e);)e=t.find(-1,!0).line;return e}function sn(e){for(var t;t=nn(e);)e=t.find(1,!0).line;return e}function cn(e){for(var t,n;t=nn(e);)e=t.find(1,!0).line,(n||=[]).push(e);return n}function ln(e,t){var n=K(e,t),r=on(n);return n==r?t:q(r)}function un(e,t){if(t>e.lastLine())return t;var n=K(e,t),r;if(!dn(e,n))return t;for(;r=nn(n);)n=r.find(1,!0).line;return q(n)+1}function dn(e,t){var n=Lt&&t.markedSpans;if(n){for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}var gn=function(e,t,n){this.text=e,Xt(this,t),this.height=n?n(this):1};gn.prototype.lineNo=function(){return q(this)},Fe(gn);function _n(e,t,n,r){e.text=t,e.stateAfter&&=null,e.styles&&=null,e.order!=null&&(e.order=null),Yt(e),Xt(e,n);var i=r?r(e):1;i!=e.height&&dt(e,i)}function vn(e){e.parent=null,Yt(e)}var yn={},bn={};function xn(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?bn:yn;return n[e]||(n[e]=e.replace(/\S+/g,`cm-$&`))}function Sn(e,t){var n=A(`span`,null,null,c?`padding-right: .1px`:null),r={pre:A(`pre`,[n],`CodeMirror-line`),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption(`lineWrapping`)};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var a=i?t.rest[i-1]:t.line,o=void 0;r.pos=0,r.addToken=wn,Ge(e.display.measure)&&(o=De(a,e.doc.direction))&&(r.addToken=En(r.addToken,o)),r.map=[],On(a,r,Tt(e,a,t!=e.display.externalMeasured&&q(a))),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=P(a.styleClasses.bgClass,r.bgClass||``)),a.styleClasses.textClass&&(r.textClass=P(a.styleClasses.textClass,r.textClass||``))),r.map.length==0&&r.map.push(0,0,r.content.appendChild(Ue(e.display.measure))),i==0?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(c){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(`.cm-tab`))&&(r.content.className=`cm-tab-wrap-hack`)}return je(e,`renderLine`,e,t.line,r.pre),r.pre.className&&(r.textClass=P(r.pre.className,r.textClass||``)),r}function Cn(e){var t=k(`span`,`•`,`cm-invalidchar`);return t.title=`\\u`+e.charCodeAt(0).toString(16),t.setAttribute(`aria-label`,t.title),t}function wn(e,t,n,r,i,a,c){if(t){var l=e.splitSpaces?Tn(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1,f;if(!u.test(t))e.col+=t.length,f=document.createTextNode(l),e.map.push(e.pos,e.pos+t.length,f),o&&s<9&&(d=!0),e.pos+=t.length;else{f=document.createDocumentFragment();for(var p=0;;){u.lastIndex=p;var m=u.exec(t),h=m?m.index-p:t.length-p;if(h){var g=document.createTextNode(l.slice(p,p+h));o&&s<9?f.appendChild(k(`span`,[g])):f.appendChild(g),e.map.push(e.pos,e.pos+h,g),e.col+=h,e.pos+=h}if(!m)break;p+=h+1;var _=void 0;if(m[0]==` `){var v=e.cm.options.tabSize,y=v-e.col%v;_=f.appendChild(k(`span`,ue(y),`cm-tab`)),_.setAttribute(`role`,`presentation`),_.setAttribute(`cm-text`,` `),e.col+=y}else m[0]==`\r`||m[0]==` -`?(_=f.appendChild(k(`span`,m[0]==`\r`?`␍`:`␤`,`cm-invalidchar`)),_.setAttribute(`cm-text`,m[0]),e.col+=1):(_=e.cm.options.specialCharPlaceholder(m[0]),_.setAttribute(`cm-text`,m[0]),o&&s<9?f.appendChild(k(`span`,[_])):f.appendChild(_),e.col+=1);e.map.push(e.pos,e.pos+1,_),e.pos++}}if(e.trailingSpace=l.charCodeAt(t.length-1)==32,n||r||i||d||a||c){var b=n||``;r&&(b+=r),i&&(b+=i);var x=k(`span`,[f],b,a);if(c)for(var S in c)c.hasOwnProperty(S)&&S!=`style`&&S!=`class`&&x.setAttribute(S,c[S]);return e.content.appendChild(x)}e.content.appendChild(f)}}function Tn(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r=``,i=0;il&&d.from<=l));f++);if(d.to>=u)return e(n,r,i,a,o,s,c);e(n,r.slice(0,d.to-l),i,a,null,s,c),a=null,r=r.slice(d.to-l),l=d.to}}}function Dn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||=e.content.appendChild(document.createElement(`span`)),i.setAttribute(`cm-marker`,n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function On(e,t,n){var r=e.markedSpans,i=e.text,a=0;if(!r){for(var o=1;oc||C.collapsed&&S.to==c&&S.from==c)){if(S.to!=null&&S.to!=c&&p>S.to&&(p=S.to,h=``),C.className&&(m+=` `+C.className),C.css&&(f=(f?f+`;`:``)+C.css),C.startStyle&&S.from==c&&(g+=` `+C.startStyle),C.endStyle&&S.to==p&&(b||=[]).push(C.endStyle,S.to),C.title&&((v||={}).title=C.title),C.attributes)for(var w in C.attributes)(v||={})[w]=C.attributes[w];C.collapsed&&(!_||$t(_.marker,C)<0)&&(_=S)}else S.from>c&&p>S.from&&(p=S.from)}if(b)for(var T=0;T=s)break;for(var D=Math.min(s,p);;){if(u){var O=c+u.length;if(!_){var k=O>D?u.slice(0,D-c):u;t.addToken(t,k,d?d+m:m,g,c+k.length==p?h:``,f,v)}if(O>=D){u=u.slice(D-c),c=D;break}c=O,g=``}u=i.slice(a,a=n[l++]),d=xn(n[l++],t.cm.options)}}}function kn(e,t,n){this.line=t,this.rest=cn(t),this.size=this.rest?q(U(this.rest))-n+1:1,this.node=this.text=null,this.hidden=dn(e,t)}function An(e,t,n){for(var r=[],i,a=t;a2&&a.push((c.bottom+l.top)/2-n.top)}}a.push(n.bottom-n.top)}}function ar(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;rn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function or(e,t){t=on(t);var n=q(t),r=e.display.externalMeasured=new kn(e.doc,t,n);r.lineN=n;var i=r.built=Sn(e,r);return r.text=i.pre,O(e.display.lineMeasure,i.pre),r}function sr(e,t,n,r){return ur(e,lr(e,t),n,r)}function cr(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(a=c-s,i=a-1,t>=c&&(o=`right`)),i!=null){if(r=e[l+2],s==c&&n==(r.insertLeft?`left`:`right`)&&(o=n),n==`left`&&i==0)for(;l&&e[l-2]==e[l-3]&&e[l-1].insertLeft;)r=e[(l-=3)+2],o=`left`;if(n==`right`&&i==c-s)for(;l=0&&(n=e[i]).left==n.right;i--);return n}function mr(e,t,n,r){var i=fr(t.map,n,r),a=i.node,c=i.start,l=i.end,u=i.collapse,d;if(a.nodeType==3){for(var f=0;f<4;f++){for(;c&&be(t.line.text.charAt(i.coverStart+c));)--c;for(;i.coverStart+l0&&(u=r=`right`);var p;d=e.options.lineWrapping&&(p=a.getClientRects()).length>1?p[r==`right`?p.length-1:0]:a.getBoundingClientRect()}if(o&&s<9&&!c&&(!d||!d.left&&!d.right)){var m=a.parentNode.getClientRects()[0];d=m?{left:m.left,right:m.left+Lr(e.display),top:m.top,bottom:m.bottom}:dr}for(var h=d.top-t.rect.top,g=d.bottom-t.rect.top,_=(h+g)/2,v=t.view.measure.heights,y=0;y=r.text.length?(c=r.text.length,l=`before`):c<=0&&(c=0,l=`after`),!s)return o(l==`before`?c-1:c,l==`before`);function u(e,t,n){var r=s[t].level==1;return o(n?e-1:e,r!=n)}var d=Te(s,c,l),f=we,p=u(c,d,l==`before`);return f!=null&&(p.other=u(c,f,l!=`before`)),p}function Er(e,t){var n=0;t=X(e.doc,t),e.options.lineWrapping||(n=Lr(e.display)*t.ch);var r=K(e.doc,t.line),i=pn(r)+Qn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Dr(e,t,n,r,i){var a=J(e,t,n);return a.xRel=i,r&&(a.outside=r),a}function Or(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,n<0)return Dr(r.first,0,null,-1,-1);var i=ft(r,n),a=r.first+r.size-1;if(i>a)return Dr(r.first+r.size-1,K(r,a).text.length,null,1,1);t<0&&(t=0);for(var o=K(r,i);;){var s=Mr(e,o,i,t,n),c=rn(o,s.ch+ +(s.xRel>0||s.outside>0));if(!c)return s;var l=c.find(1);if(l.line==i)return l;o=K(r,i=l.line)}}function kr(e,t,n,r){r-=xr(t);var i=t.text.length,a=Se(function(t){return ur(e,n,t-1).bottom<=r},i,0);return i=Se(function(t){return ur(e,n,t).top>r},a,i),{begin:a,end:i}}function Ar(e,t,n,r){n||=lr(e,t);var i=Sr(e,t,ur(e,n,r),`line`).top;return kr(e,t,n,i)}function jr(e,t,n,r){return e.bottom<=n?!1:e.top>n||(r?e.left:e.right)>t}function Mr(e,t,n,r,i){i-=pn(t);var a=lr(e,t),o=xr(t),s=0,c=t.text.length,l=!0,u=De(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?Pr:Nr)(e,t,n,a,u,r,i);l=d.level!=1,s=l?d.from:d.to-1,c=l?d.to:d.from-1}var f=null,p=null,m=Se(function(t){var n=ur(e,a,t);return n.top+=o,n.bottom+=o,jr(n,r,i,!1)?(n.top<=i&&n.left<=r&&(f=t,p=n),!0):!1},s,c),h,g,_=!1;if(p){var v=r-p.left=b.bottom)}return m=xe(t.text,m,1),Dr(n,m,g,_,r-h)}function Nr(e,t,n,r,i,a,o){var s=Se(function(s){var c=i[s],l=c.level!=1;return jr(Tr(e,J(n,l?c.to:c.from,l?`before`:`after`),`line`,t,r),a,o,!0)},0,i.length-1),c=i[s];if(s>0){var l=c.level!=1,u=Tr(e,J(n,l?c.from:c.to,l?`after`:`before`),`line`,t,r);jr(u,a,o,!0)&&u.top>o&&(c=i[s-1])}return c}function Pr(e,t,n,r,i,a,o){var s=kr(e,t,r,o),c=s.begin,l=s.end;/\s/.test(t.text.charAt(l-1))&&l--;for(var u=null,d=null,f=0;f=l||p.to<=c)){var m=ur(e,r,p.level==1?Math.max(c,p.from):Math.min(l,p.to)-1).right,h=mh)&&(u=p,d=h)}}return u||=i[i.length-1],u.froml&&(u={from:u.from,to:l,level:u.level}),u}var Fr;function Ir(e){if(e.cachedTextHeight!=null)return e.cachedTextHeight;if(Fr==null){Fr=k(`pre`,null,`CodeMirror-line-like`);for(var t=0;t<49;++t)Fr.appendChild(document.createTextNode(`x`)),Fr.appendChild(k(`br`));Fr.appendChild(document.createTextNode(`x`))}O(e.measure,Fr);var n=Fr.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),D(e.measure),n||1}function Lr(e){if(e.cachedCharWidth!=null)return e.cachedCharWidth;var t=k(`span`,`xxxxxxxxxx`),n=k(`pre`,[t],`CodeMirror-line-like`);O(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function Rr(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,a=t.gutters.firstChild,o=0;a;a=a.nextSibling,++o){var s=e.display.gutterSpecs[o].className;n[s]=a.offsetLeft+a.clientLeft+i,r[s]=a.clientWidth}return{fixedPos:zr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function zr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Br(e){var t=Ir(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Lr(e.display)-3);return function(i){if(dn(e.doc,i))return 0;var a=0;if(i.widgets)for(var o=0;o0&&(l=K(e.doc,c.line).text).length==c.ch){var u=B(l,l.length,e.options.tabSize)-l.length;c=J(c.line,Math.max(0,Math.round((a-er(e.display).left)/Lr(e.display))-u))}return c}function Ur(e,t){if(t>=e.display.viewTo||(t-=e.display.viewFrom,t<0))return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Lt&&ln(e.doc,t)i.viewFrom?Kr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Kr(e);else if(t<=i.viewFrom){var a=qr(e,n,n+r,1);a?(i.view=i.view.slice(a.index),i.viewFrom=a.lineN,i.viewTo+=r):Kr(e)}else if(n>=i.viewTo){var o=qr(e,t,t,-1);o?(i.view=i.view.slice(0,o.index),i.viewTo=o.lineN):Kr(e)}else{var s=qr(e,t,t,-1),c=qr(e,n,n+r,1);s&&c?(i.view=i.view.slice(0,s.index).concat(An(e,s.lineN,c.lineN)).concat(i.view.slice(c.index)),i.viewTo+=r):Kr(e)}var l=i.externalMeasured;l&&(n=i.lineN&&t=r.viewTo)){var a=r.view[Ur(e,t)];if(a.node!=null){var o=a.changes||=[];V(o,n)==-1&&o.push(n)}}}function Kr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function qr(e,t,n,r){var i=Ur(e,t),a,o=e.display.view;if(!Lt||n==e.doc.first+e.doc.size)return{index:i,lineN:n};for(var s=e.display.viewFrom,c=0;c0){if(i==o.length-1)return null;a=s+o[i].size-t,i++}else a=s-t;t+=a,n+=a}for(;ln(e.doc,n)!=n;){if(i==(r<0?0:o.length-1))return null;n+=r*o[i-+(r<0)].size,i+=r}return{index:i,lineN:n}}function Jr(e,t,n){var r=e.display;r.view.length==0||t>=r.viewTo||n<=r.viewFrom?(r.view=An(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=An(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Ur(e,n)))),r.viewTo=n}function Yr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||c.to().line0?o:e.defaultCharWidth())+`px`}if(r.other){var s=n.appendChild(k(`div`,`\xA0`,`CodeMirror-cursor CodeMirror-secondarycursor`));s.style.display=``,s.style.left=r.other.left+`px`,s.style.top=r.other.top+`px`,s.style.height=(r.other.bottom-r.other.top)*.85+`px`}}function $r(e,t){return e.top-t.top||e.left-t.left}function ei(e,t,n){var r=e.display,i=e.doc,a=document.createDocumentFragment(),o=er(e.display),s=o.left,c=Math.max(r.sizerWidth,nr(e)-r.sizer.offsetLeft)-o.right,l=i.direction==`ltr`;function u(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),a.appendChild(k(`div`,null,`CodeMirror-selected`,`position: absolute; left: `+e+`px; - top: `+t+`px; width: `+(n??c-e)+`px; - height: `+(r-t)+`px`))}function d(t,n,r){var a=K(i,t),o=a.text.length,d,f;function p(n,r){return wr(e,J(t,n),`div`,a,r)}function m(t,n,r){var i=Ar(e,a,null,t),o=n==`ltr`==(r==`after`)?`left`:`right`;return p(r==`after`?i.begin:i.end-(/\s/.test(a.text.charAt(i.end-1))?2:1),o)[o]}var h=De(a,i.direction);return Ce(h,n||0,r??o,function(e,t,i,a){var g=i==`ltr`,_=p(e,g?`left`:`right`),v=p(t-1,g?`right`:`left`),y=n==null&&e==0,b=r==null&&t==o,x=a==0,S=!h||a==h.length-1;if(v.top-_.top<=3){var C=(l?y:b)&&x,w=(l?b:y)&&S,T=C?s:(g?_:v).left,E=w?c:(g?v:_).right;u(T,_.top,E-T,_.bottom)}else{var D,O,k,A;g?(D=l&&y&&x?s:_.left,O=l?c:m(e,i,`before`),k=l?s:m(t,i,`after`),A=l&&b&&S?c:v.right):(D=l?m(e,i,`before`):s,O=!l&&y&&x?c:_.right,k=!l&&b&&S?s:v.left,A=l?m(t,i,`after`):c),u(D,_.top,O-D,_.bottom),_.bottom0?t.blinker=setInterval(function(){e.hasFocus()||ai(e),t.cursorDiv.style.visibility=(n=!n)?``:`hidden`},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=`hidden`)}}function ni(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||ii(e))}function ri(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&ai(e))},100)}function ii(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),e.options.readOnly!=`nocursor`&&(e.state.focused||(je(e,`focus`,e,t),e.state.focused=!0,N(e.display.wrapper,`CodeMirror-focused`),!e.curOp&&e.display.selForContextMenu!=e.doc.sel&&(e.display.input.reset(),c&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),ti(e))}function ai(e,t){e.state.delayingBlurEvent||(e.state.focused&&(je(e,`blur`,e,t),e.state.focused=!1,E(e.display.wrapper,`CodeMirror-focused`)),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function oi(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,a=0,c=0;c.005||h<-.005)&&(ie.display.sizerWidth){var _=Math.ceil(f/Lr(e.display));_>e.display.maxLineLength&&(e.display.maxLineLength=_,e.display.maxLine=l.line,e.display.maxLineChanged=!0)}}}Math.abs(a)>2&&(t.scroller.scrollTop+=a)}function si(e){if(e.widgets)for(var t=0;t=o&&(a=ft(t,pn(K(t,c))-e.wrapper.clientHeight),o=c)}return{from:a,to:Math.max(o,a+1)}}function li(e,t){if(!Me(e,`scrollCursorIntoView`)){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null,a=n.wrapper.ownerDocument;if(t.top+r.top<0?i=!0:t.bottom+r.top>(a.defaultView.innerHeight||a.documentElement.clientHeight)&&(i=!1),i!=null&&!h){var o=k(`div`,`​`,null,`position: absolute; - top: `+(t.top-n.viewOffset-Qn(e.display))+`px; - height: `+(t.bottom-t.top+tr(e)+n.barHeight)+`px; - left: `+t.left+`px; width: `+Math.max(2,t.right-t.left)+`px;`);e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function ui(e,t,n,r){r??=0;var i;!e.options.lineWrapping&&t==n&&(n=t.sticky==`before`?J(t.line,t.ch+1,`before`):t,t=t.ch?J(t.line,t.sticky==`before`?t.ch-1:t.ch,`after`):t);for(var a=0;a<5;a++){var o=!1,s=Tr(e,t),c=!n||n==t?s:Tr(e,n);i={left:Math.min(s.left,c.left),top:Math.min(s.top,c.top)-r,right:Math.max(s.left,c.left),bottom:Math.max(s.bottom,c.bottom)+r};var l=fi(e,i),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(l.scrollTop!=null&&(yi(e,l.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(o=!0)),l.scrollLeft!=null&&(xi(e,l.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(o=!0)),!o)break}return i}function di(e,t){var n=fi(e,t);n.scrollTop!=null&&yi(e,n.scrollTop),n.scrollLeft!=null&&xi(e,n.scrollLeft)}function fi(e,t){var n=e.display,r=Ir(e.display);t.top<0&&(t.top=0);var i=e.curOp&&e.curOp.scrollTop!=null?e.curOp.scrollTop:n.scroller.scrollTop,a=rr(e),o={};t.bottom-t.top>a&&(t.bottom=t.top+a);var s=e.doc.height+$n(n),c=t.tops-r;if(t.topi+a){var u=Math.min(t.top,(l?s:t.bottom)-a);u!=i&&(o.scrollTop=u)}var d=e.options.fixedGutter?0:n.gutters.offsetWidth,f=e.curOp&&e.curOp.scrollLeft!=null?e.curOp.scrollLeft:n.scroller.scrollLeft-d,p=nr(e)-n.gutters.offsetWidth,m=t.right-t.left>p;return m&&(t.right=t.left+p),t.left<10?o.scrollLeft=0:t.leftp+f-3&&(o.scrollLeft=t.right+(m?0:10)-p),o}function pi(e,t){t!=null&&(_i(e),e.curOp.scrollTop=(e.curOp.scrollTop==null?e.doc.scrollTop:e.curOp.scrollTop)+t)}function mi(e){_i(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function hi(e,t,n){(t!=null||n!=null)&&_i(e),t!=null&&(e.curOp.scrollLeft=t),n!=null&&(e.curOp.scrollTop=n)}function gi(e,t){_i(e),e.curOp.scrollToPos=t}function _i(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,vi(e,Er(e,t.from),Er(e,t.to),t.margin))}function vi(e,t,n,r){var i=fi(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});hi(e,i.scrollLeft,i.scrollTop)}function yi(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||Xi(e,{top:t}),bi(e,t,!0),n&&Xi(e),Hi(e,100))}function bi(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),!(e.display.scroller.scrollTop==t&&!n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function xi(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),!((n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r)&&(e.doc.scrollLeft=t,ea(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Si(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+$n(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+tr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Ci=function(e,t,n){this.cm=n;var r=this.vert=k(`div`,[k(`div`,null,null,`min-width: 1px`)],`CodeMirror-vscrollbar`),i=this.horiz=k(`div`,[k(`div`,null,null,`height: 100%; min-height: 1px`)],`CodeMirror-hscrollbar`);r.tabIndex=i.tabIndex=-1,e(r),e(i),W(r,`scroll`,function(){r.clientHeight&&t(r.scrollTop,`vertical`)}),W(i,`scroll`,function(){i.clientWidth&&t(i.scrollLeft,`horizontal`)}),this.checkedZeroWidth=!1,o&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=`18px`)};Ci.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display=`block`,this.vert.style.bottom=t?r+`px`:`0`;var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+`px`}else this.vert.scrollTop=0,this.vert.style.display=``,this.vert.firstChild.style.height=`0`;if(t){this.horiz.style.display=`block`,this.horiz.style.right=n?r+`px`:`0`,this.horiz.style.left=e.barLeft+`px`;var a=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+a)+`px`}else this.horiz.style.display=``,this.horiz.firstChild.style.width=`0`;return!this.checkedZeroWidth&&e.clientHeight>0&&(r==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Ci.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,`horiz`)},Ci.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,`vert`)},Ci.prototype.zeroWidthHack=function(){var e=y&&!m?`12px`:`18px`;this.horiz.style.height=this.vert.style.width=e,this.horiz.style.visibility=this.vert.style.visibility=`hidden`,this.disableHoriz=new re,this.disableVert=new re},Ci.prototype.enableZeroWidthBar=function(e,t,n){e.style.visibility=``;function r(){var i=e.getBoundingClientRect();(n==`vert`?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))==e?t.set(1e3,r):e.style.visibility=`hidden`}t.set(1e3,r)},Ci.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var wi=function(){};wi.prototype.update=function(){return{bottom:0,right:0}},wi.prototype.setScrollLeft=function(){},wi.prototype.setScrollTop=function(){},wi.prototype.clear=function(){};function Ti(e,t){t||=Si(e);var n=e.display.barWidth,r=e.display.barHeight;Ei(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&oi(e),Ei(e,Si(e)),n=e.display.barWidth,r=e.display.barHeight}function Ei(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+`px`,n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+`px`,n.heightForcer.style.borderBottom=r.bottom+`px solid transparent`,r.right&&r.bottom?(n.scrollbarFiller.style.display=`block`,n.scrollbarFiller.style.height=r.bottom+`px`,n.scrollbarFiller.style.width=r.right+`px`):n.scrollbarFiller.style.display=``,r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display=`block`,n.gutterFiller.style.height=r.bottom+`px`,n.gutterFiller.style.width=t.gutterWidth+`px`):n.gutterFiller.style.display=``}var Di={native:Ci,null:wi};function Oi(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&E(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Di[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),W(t,`mousedown`,function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute(`cm-not-content`,`true`)},function(t,n){n==`horizontal`?xi(e,t):yi(e,t)},e),e.display.scrollbars.addClass&&N(e.display.wrapper,e.display.scrollbars.addClass)}var ki=0;function Ai(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ki,markArrays:null},Mn(e.curOp)}function ji(e){var t=e.curOp;t&&Pn(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Wi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Pi(e){e.updatedDisplay=e.mustUpdate&&Ji(e.cm,e.update)}function Fi(e){var t=e.cm,n=t.display;e.updatedDisplay&&oi(t),e.barMeasure=Si(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=sr(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+tr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-nr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Ii(e){var t=e.cm;e.adjustWidthTo!=null&&(t.display.sizer.style.minWidth=e.adjustWidthTo+`px`,e.maxScrollLeft=e.display.viewTo)){var n=+new Date+e.options.workTime,r=Et(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(a){if(r.line>=e.display.viewFrom){var o=a.styles,s=a.text.length>e.options.maxHighlightLength?at(t.mode,r.state):null,c=wt(e,a,r,!0);s&&(r.state=s),a.styles=c.styles;var l=a.styleClasses,u=c.classes;u?a.styleClasses=u:l&&(a.styleClasses=null);for(var d=!o||o.length!=a.styles.length||l!=u&&(!l||!u||l.bgClass!=u.bgClass||l.textClass!=u.textClass),f=0;!d&&fn)return Hi(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Ri(e,function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&Yr(e)==0)return!1;ta(e)&&(Kr(e),t.dims=Rr(e));var i=r.first+r.size,a=Math.max(t.visible.from-e.options.viewportMargin,r.first),o=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFromo&&n.viewTo-o<20&&(o=Math.min(i,n.viewTo)),Lt&&(a=ln(e.doc,a),o=un(e.doc,o));var s=a!=n.viewFrom||o!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Jr(e,a,o),n.viewOffset=pn(K(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+`px`;var c=Yr(e);if(!s&&c==0&&!t.force&&n.renderedView==n.view&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo))return!1;var l=Ki(e);return c>4&&(n.lineDiv.style.display=`none`),Zi(e,n.updateLineNumbers,t.dims),c>4&&(n.lineDiv.style.display=``),n.renderedView=n.view,qi(l),D(n.cursorDiv),D(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,Hi(e,400)),n.updateLineNumbers=null,!0}function Yi(e,t){for(var n=t.viewport,r=!0;;r=!1){if(!r||!e.options.lineWrapping||t.oldDisplayWidth==nr(e)){if(n&&n.top!=null&&(n={top:Math.min(e.doc.height+$n(e.display)-rr(e),n.top)}),t.visible=ci(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break}else r&&(t.visible=ci(e.display,e.doc,n));if(!Ji(e,t))break;oi(e);var i=Si(e);Xr(e),Ti(e,i),$i(e,i),t.force=!1}t.signal(e,`update`,e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,`viewportChange`,e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Xi(e,t){var n=new Wi(e,t);if(Ji(e,n)){oi(e),Yi(e,n);var r=Si(e);Xr(e),Ti(e,r),$i(e,r),n.finish()}}function Zi(e,t,n){var r=e.display,i=e.options.lineNumbers,a=r.lineDiv,o=a.firstChild;function s(t){var n=t.nextSibling;return c&&y&&e.display.currentWheelTarget==t?t.style.display=`none`:t.parentNode.removeChild(t),n}for(var l=r.view,u=r.viewFrom,d=0;d-1&&(m=!1),Rn(e,f,u,n)),m&&(D(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(mt(e.options,u)))),o=f.node.nextSibling}u+=f.size}for(;o;)o=s(o)}function Qi(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+`px`,In(e,`gutterChanged`,e)}function $i(e,t){e.display.sizer.style.minHeight=t.docHeight+`px`,e.display.heightForcer.style.top=t.docHeight+`px`,e.display.gutters.style.height=t.docHeight+e.display.barHeight+tr(e)+`px`}function ea(e){var t=e.display,n=t.view;if(!(!t.alignWidgets&&(!t.gutters.firstChild||!e.options.fixedGutter))){for(var r=zr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,a=r+`px`,o=0;ol.clientWidth,m=l.scrollHeight>l.clientHeight;if(i&&p||a&&m){if(a&&y&&c){outer:for(var h=t.target,g=s.view;h!=l;h=h.parentNode)for(var _=0;_=0&&Y(e,r.to())<=0)return n}return-1};var Z=function(e,t){this.anchor=e,this.head=t};Z.prototype.from=function(){return vt(this.anchor,this.head)},Z.prototype.to=function(){return _t(this.anchor,this.head)},Z.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function fa(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort(function(e,t){return Y(e.from(),t.from())}),n=V(t,i);for(var a=1;a0:c>=0){var l=vt(s.from(),o.from()),u=_t(s.to(),o.to()),d=s.empty()?o.from()==o.head:s.from()==s.head;a<=n&&--n,t.splice(--a,2,new Z(d?u:l,d?l:u))}}return new da(t,n)}function pa(e,t){return new da([new Z(e,t||e)],0)}function ma(e){return e.text?J(e.from.line+e.text.length-1,U(e.text).length+(e.text.length==1?e.from.ch:0)):e.to}function ha(e,t){if(Y(e,t.from)<0)return e;if(Y(e,t.to)<=0)return ma(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=ma(t).ch-t.to.ch),J(n,r)}function ga(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,m-1),e.insert(s.line+1,_)}In(e,`change`,e,t)}function Ca(e,t,n){function r(e,i,a){if(e.linked)for(var o=0;o1&&!e.done[e.done.length-2].ranges)return e.done.pop(),U(e.done)}function ja(e,t,n,r){var i=e.history;i.undone.length=0;var a=+new Date,o,s;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(t.origin.charAt(0)==`+`&&i.lastModTime>a-(e.cm?e.cm.options.historyEventDelay:500)||t.origin.charAt(0)==`*`))&&(o=Aa(i,i.lastOp==r)))s=U(o.changes),Y(t.from,t.to)==0&&Y(t.from,s.to)==0?s.to=ma(t):o.changes.push(Oa(e,t));else{var c=U(i.done);for((!c||!c.ranges)&&Pa(e.sel,i.done),o={changes:[Oa(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,s||je(e,`historyAdded`)}function Ma(e,t,n,r){var i=t.charAt(0);return i==`*`||i==`+`&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Na(e,t,n,r){var i=e.history,a=r&&r.origin;n==i.lastSelOp||a&&i.lastSelOrigin==a&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==a||Ma(e,a,U(i.done),t))?i.done[i.done.length-1]=t:Pa(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=a,i.lastSelOp=n,r&&r.clearRedo!==!1&&ka(i.undone)}function Pa(e,t){var n=U(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Fa(e,t,n,r){var i=t[`spans_`+e.id],a=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||=t[`spans_`+e.id]={})[a]=n.markedSpans),++a})}function Ia(e){if(!e)return null;for(var t,n=0;n-1&&(U(s)[d]=l[d],delete l[d])}}return r}function Ba(e,t,n,r){if(r){var i=e.anchor;if(n){var a=Y(t,i)<0;a==Y(n,i)<0?a!=Y(t,n)<0&&(t=n):(i=t,t=n)}return new Z(i,t)}else return new Z(n||t,t)}function Va(e,t,n,r,i){i??=e.cm&&(e.cm.display.shift||e.extend),qa(e,new da([Ba(e.sel.primary(),t,n,i)],0),r)}function Ha(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),a=0;a=t.ch:s.to>t.ch))){if(i&&(je(c,`beforeCursorEnter`),c.explicitlyCleared))if(a.markedSpans){--o;continue}else break;if(!c.atomic)continue;if(n){var d=c.find(r<0?1:-1),f=void 0;if((r<0?u:l)&&(d=eo(e,d,-r,d&&d.line==t.line?a:null)),d&&d.line==t.line&&(f=Y(d,n))&&(r<0?f<0:f>0))return Qa(e,d,t,r,i)}var p=c.find(r<0?-1:1);return(r<0?l:u)&&(p=eo(e,p,r,p.line==t.line?a:null)),p?Qa(e,p,t,r,i):null}}return t}function $a(e,t,n,r,i){var a=r||1;return Qa(e,t,n,a,i)||!i&&Qa(e,t,n,a,!0)||Qa(e,t,n,-a,i)||!i&&Qa(e,t,n,-a,!0)||(e.cantEdit=!0,J(e.first,0))}function eo(e,t,n,r){return n<0&&t.ch==0?t.line>e.first?X(e,J(t.line-1)):null:n>0&&t.ch==(r||K(e,t.line)).text.length?t.line=0;--i)io(e,{from:r[i].from,to:r[i].to,text:i?[``]:t.text,origin:t.origin});else io(e,t)}}function io(e,t){if(!(t.text.length==1&&t.text[0]==``&&Y(t.from,t.to)==0)){var n=ga(e,t);ja(e,t,n,e.cm?e.cm.curOp.id:NaN),so(e,t,n,Kt(e,t));var r=[];Ca(e,function(e,n){!n&&V(r,e.history)==-1&&(po(e.history,t),r.push(e.history)),so(e,t,null,Kt(e,t))})}}function ao(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!(r&&!n)){for(var i=e.history,a,o=e.sel,s=t==`undo`?i.done:i.undone,c=t==`undo`?i.undone:i.done,l=0;l=0;--p){var m=f(p);if(m)return m.v}}}}function oo(e,t){if(t!=0&&(e.first+=t,e.sel=new da(de(e.sel.ranges,function(e){return new Z(J(e.anchor.line+t,e.anchor.ch),J(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Wr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.linea&&(t={from:t.from,to:J(a,K(e,a).text.length),text:[t.text[0]],origin:t.origin}),t.removed=lt(e,t.from,t.to),n||=ga(e,t),e.cm?co(e.cm,t,r):Sa(e,t,r),Ja(e,n,oe),e.cantEdit&&$a(e,J(e.firstLine(),0))&&(e.cantEdit=!1)}}function co(e,t,n){var r=e.doc,i=e.display,a=t.from,o=t.to,s=!1,c=a.line;e.options.lineWrapping||(c=q(on(K(r,a.line))),r.iter(c,o.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ne(e),Sa(r,t,n,Br(e)),e.options.lineWrapping||(r.iter(c,a.line+t.text.length,function(e){var t=mn(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),Ft(r,a.line),Hi(e,400);var l=t.text.length-(o.line-a.line)-1;t.full?Wr(e):a.line==o.line&&t.text.length==1&&!xa(e.doc,t)?Gr(e,a.line,`text`):Wr(e,a.line,o.line+1,l);var u=Pe(e,`changes`),d=Pe(e,`change`);if(d||u){var f={from:a,to:o,text:t.text,removed:t.removed,origin:t.origin};d&&In(e,`change`,e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}function lo(e,t,n,r,i){var a;r||=n,Y(r,n)<0&&(a=[r,n],n=a[0],r=a[1]),typeof t==`string`&&(t=e.splitLines(t)),ro(e,{from:n,to:r,text:t,origin:i})}function uo(e,t,n,r){n1||!(this.children[0]instanceof ho))){var s=[];this.collapse(s),this.children=[new ho(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var o=i.lines.length%25+25,s=o;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;re.display.maxLineLength&&(e.display.maxLine=l,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}r!=null&&e&&this.collapsed&&Wr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Xa(e.doc)),e&&In(e,`markerCleared`,e,this,r,i),t&&ji(e),this.parent&&this.parent.clear()}},xo.prototype.find=function(e,t){e==null&&this.type==`bookmark`&&(e=1);for(var n,r,i=0;i0||o==0&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=A(`span`,[a.replacedWith],`CodeMirror-widget`),r.handleMouseEvents||a.widgetNode.setAttribute(`cm-ignore-events`,`true`),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(an(e,t.line,t,n,a)||t.line!=n.line&&an(e,n.line,t,n,a))throw Error(`Inserting collapsed marker partially overlapping an existing one`);zt()}a.addToHistory&&ja(e,{from:t,to:n,origin:`markText`},e.sel,NaN);var s=t.line,c=e.cm,l;if(e.iter(s,n.line+1,function(r){c&&a.collapsed&&!c.options.lineWrapping&&on(r)==c.display.maxLine&&(l=!0),a.collapsed&&s!=t.line&&dt(r,0),Ut(r,new Bt(a,s==t.line?t.ch:null,s==n.line?n.ch:null),e.cm&&e.cm.curOp),++s}),a.collapsed&&e.iter(t.line,n.line+1,function(t){dn(e,t)&&dt(t,0)}),a.clearOnEnter&&W(a,`beforeCursorEnter`,function(){return a.clear()}),a.readOnly&&(Rt(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++bo,a.atomic=!0),c){if(l&&(c.curOp.updateMaxLine=!0),a.collapsed)Wr(c,t.line,n.line+1);else if(a.className||a.startStyle||a.endStyle||a.css||a.attributes||a.title)for(var u=t.line;u<=n.line;u++)Gr(c,u,`text`);a.atomic&&Xa(c.doc),In(c,`markerAdded`,c,a)}return a}var Co=function(e,t){this.markers=e,this.primary=t;for(var n=0;n=0;c--)ro(this,r[c]);s?Ka(this,s):this.cm&&mi(this.cm)}),undo:Vi(function(){ao(this,`undo`)}),redo:Vi(function(){ao(this,`redo`)}),undoSelection:Vi(function(){ao(this,`undo`,!0)}),redoSelection:Vi(function(){ao(this,`redo`,!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=X(this,e),t=X(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(a){var o=a.markedSpans;if(o)for(var s=0;s=c.to||c.from==null&&i!=e.line||c.from!=null&&i==t.line&&c.from>=t.ch)&&(!n||n(c.marker))&&r.push(c.marker.parent||c.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=a,++n}),X(this,J(n,t))},indexFromPos:function(e){e=X(this,e);var t=e.ch;if(e.linet&&(t=e.from),e.to!=null&&e.to-1){t.state.draggingText(e),setTimeout(function(){return t.display.input.focus()},20);return}try{var d=e.dataTransfer.getData(`Text`);if(d){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),Ja(t.doc,pa(n,n)),f)for(var p=0;p=0;t--)lo(e.doc,``,r[t].from,r[t].to,`+delete`);mi(e)})}function $o(e,t,n){var r=xe(e.text,t+n,n);return r<0||r>e.text.length?null:r}function es(e,t,n){var r=$o(e,t.ch,n);return r==null?null:new J(t.line,r,n<0?`after`:`before`)}function ts(e,t,n,r,i){if(e){t.doc.direction==`rtl`&&(i=-i);var a=De(n,t.doc.direction);if(a){var o=i<0?U(a):a[0],s=i<0==(o.level==1)?`after`:`before`,c;if(o.level>0||t.doc.direction==`rtl`){var l=lr(t,n);c=i<0?n.text.length-1:0;var u=ur(t,l,c).top;c=Se(function(e){return ur(t,l,e).top==u},i<0==(o.level==1)?o.from:o.to-1,c),s==`before`&&(c=$o(n,c,1))}else c=i<0?o.to:o.from;return new J(r,c,s)}}return new J(r,i<0?n.text.length:0,i<0?`before`:`after`)}function ns(e,t,n,r){var i=De(t,e.doc.direction);if(!i)return es(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky=`before`):n.ch<=0&&(n.ch=0,n.sticky=`after`);var a=Te(i,n.ch,n.sticky),o=i[a];if(e.doc.direction==`ltr`&&o.level%2==0&&(r>0?o.to>n.ch:o.from=o.from&&f>=u.begin)){var p=d?`before`:`after`;return new J(n.line,f,p)}}var m=function(e,t,r){for(var a=function(e,t){return t?new J(n.line,s(e,1),`before`):new J(n.line,e,`after`)};e>=0&&e0==(o.level!=1),l=c?r.begin:s(r.end,-1);if(o.from<=l&&l0?u.end:s(u.begin,-1);return g!=null&&!(r>0&&g==t.text.length)&&(h=m(r>0?0:i.length-1,r,l(g)),h)?h:null}var rs={selectAll:to,singleSelection:function(e){return e.setSelection(e.getCursor(`anchor`),e.getCursor(`head`),oe)},killLine:function(e){return Qo(e,function(t){if(t.empty()){var n=K(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new J(i.line,i.ch+1),e.replaceRange(a.charAt(i.ch-1)+a.charAt(i.ch-2),J(i.line,i.ch-2),i,`+transpose`);else if(i.line>e.doc.first){var o=K(e.doc,i.line-1).text;o&&(i=new J(i.line,1),e.replaceRange(a.charAt(0)+e.doc.lineSeparator()+o.charAt(o.length-1),J(i.line-1,o.length-1),i,`+transpose`))}}n.push(new Z(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return Ri(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,`+input`);t=e.listSelections();for(var r=0;re&&Y(t,this.pos)==0&&n==this.button};var xs,Ss;function Cs(e,t){var n=+new Date;return Ss&&Ss.compare(n,e,t)?(xs=Ss=null,`triple`):xs&&xs.compare(n,e,t)?(Ss=new bs(n,e,t),xs=null,`double`):(xs=new bs(n,e,t),Ss=null,`single`)}function ws(e){var t=this,n=t.display;if(!(Me(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,Zn(n,e)){c||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100));return}if(!Ns(t,e)){var r=Hr(t,e),i=Be(e),a=r?Cs(r,i):`single`;L(t).focus(),i==1&&t.state.selectingText&&t.state.selectingText(e),!(r&&Ts(t,i,r,a,e))&&(i==1?r?Ds(t,r,a,e):ze(e)==n.scroller&&G(e):i==2?(r&&Va(t.doc,r),setTimeout(function(){return n.input.focus()},20)):i==3&&(w?t.display.input.onContextMenu(e):ri(t)))}}}function Ts(e,t,n,r,i){var a=`Click`;return r==`double`?a=`Double`+a:r==`triple`&&(a=`Triple`+a),a=(t==1?`Left`:t==2?`Middle`:`Right`)+a,us(e,Yo(a,i),i,function(t){if(typeof t==`string`&&(t=rs[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=ae}finally{e.state.suppressEdits=!1}return r})}function Es(e,t,n){var r=e.getOption(`configureMouse`),i=r?r(e,t,n):{};return i.unit??=(b?n.shiftKey&&n.metaKey:n.altKey)?`rectangle`:t==`single`?`char`:t==`double`?`word`:`line`,(i.extend==null||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),i.addNew??=y?n.metaKey:n.ctrlKey,i.moveOnDrag??=!(y?n.altKey:n.ctrlKey),i}function Ds(e,t,n,r){o?setTimeout(R(ni,e),0):e.curOp.focus=ee(ne(e));var i=Es(e,n,r),a=e.doc.sel,s;e.options.dragDrop&&Ve&&!e.isReadOnly()&&n==`single`&&(s=a.contains(t))>-1&&(Y((s=a.ranges[s]).from(),t)<0||t.xRel>0)&&(Y(s.to(),t)>0||t.xRel<0)?Os(e,r,t,i):As(e,r,t,i)}function Os(e,t,n,r){var i=e.display,a=!1,l=zi(e,function(t){c&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:ri(e)),Ae(i.wrapper.ownerDocument,`mouseup`,l),Ae(i.wrapper.ownerDocument,`mousemove`,u),Ae(i.scroller,`dragstart`,d),Ae(i.scroller,`drop`,l),a||(G(t),r.addNew||Va(e.doc,n,null,null,r.extend),c&&!p||o&&s==9?setTimeout(function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()},20):i.input.focus())}),u=function(e){a||=Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},d=function(){return a=!0};c&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!r.moveOnDrag,W(i.wrapper.ownerDocument,`mouseup`,l),W(i.wrapper.ownerDocument,`mousemove`,u),W(i.scroller,`dragstart`,d),W(i.scroller,`drop`,l),e.state.delayingBlurEvent=!0,setTimeout(function(){return i.input.focus()},20),i.scroller.dragDrop&&i.scroller.dragDrop()}function ks(e,t,n){if(n==`char`)return new Z(t,t);if(n==`word`)return e.findWordAt(t);if(n==`line`)return new Z(J(t.line,0),X(e.doc,J(t.line+1,0)));var r=n(e,t);return new Z(r.from,r.to)}function As(e,t,n,r){o&&ri(e);var i=e.display,a=e.doc;G(t);var s,c,l=a.sel,u=l.ranges;if(r.addNew&&!r.extend?(c=a.sel.contains(n),s=c>-1?u[c]:new Z(n,n)):(s=a.sel.primary(),c=a.sel.primIndex),r.unit==`rectangle`)r.addNew||(s=new Z(n,n)),n=Hr(e,t,!0,!0),c=-1;else{var d=ks(e,n,r.unit);s=r.extend?Ba(s,d.anchor,d.head,r.extend):d}r.addNew?c==-1?(c=u.length,qa(a,fa(e,u.concat([s]),c),{scroll:!1,origin:`*mouse`})):u.length>1&&u[c].empty()&&r.unit==`char`&&!r.extend?(qa(a,fa(e,u.slice(0,c).concat(u.slice(c+1)),0),{scroll:!1,origin:`*mouse`}),l=a.sel):Ua(a,c,s,se):(c=0,qa(a,new da([s],0),se),l=a.sel);var f=n;function p(t){if(Y(f,t)!=0)if(f=t,r.unit==`rectangle`){for(var i=[],o=e.options.tabSize,u=B(K(a,n.line).text,n.ch,o),d=B(K(a,t.line).text,t.ch,o),p=Math.min(u,d),m=Math.max(u,d),h=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));h<=g;h++){var _=K(a,h).text,v=H(_,p,o);p==m?i.push(new Z(J(h,v),J(h,v))):_.length>v&&i.push(new Z(J(h,v),J(h,H(_,m,o))))}i.length||i.push(new Z(n,n)),qa(a,fa(e,l.ranges.slice(0,c).concat(i),c),{origin:`*mouse`,scroll:!1}),e.scrollIntoView(t)}else{var y=s,b=ks(e,t,r.unit),x=y.anchor,S;Y(b.anchor,x)>0?(S=b.head,x=vt(y.from(),b.anchor)):(S=b.anchor,x=_t(y.to(),b.head));var C=l.ranges.slice(0);C[c]=js(e,new Z(X(a,x),S)),qa(a,fa(e,C,c),se)}}var m=i.wrapper.getBoundingClientRect(),h=0;function g(t){var n=++h,o=Hr(e,t,!0,r.unit==`rectangle`);if(o)if(Y(o,f)!=0){e.curOp.focus=ee(ne(e)),p(o);var s=ci(i,a);(o.line>=s.to||o.linem.bottom?20:0;c&&setTimeout(zi(e,function(){h==n&&(i.scroller.scrollTop+=c,g(t))}),50)}}function _(t){e.state.selectingText=!1,h=1/0,t&&(G(t),i.input.focus()),Ae(i.wrapper.ownerDocument,`mousemove`,v),Ae(i.wrapper.ownerDocument,`mouseup`,y),a.history.lastSelOrigin=null}var v=zi(e,function(e){e.buttons===0||!Be(e)?_(e):g(e)}),y=zi(e,_);e.state.selectingText=y,W(i.wrapper.ownerDocument,`mousemove`,v),W(i.wrapper.ownerDocument,`mouseup`,y)}function js(e,t){var n=t.anchor,r=t.head,i=K(e.doc,n.line);if(Y(n,r)==0&&n.sticky==r.sticky)return t;var a=De(i);if(!a)return t;var o=Te(a,n.ch,n.sticky),s=a[o];if(s.from!=n.ch&&s.to!=n.ch)return t;var c=o+(s.from==n.ch==(s.level!=1)?0:1);if(c==0||c==a.length)return t;var l;if(r.line!=n.line)l=(r.line-n.line)*(e.doc.direction==`ltr`?1:-1)>0;else{var u=Te(a,r.ch,r.sticky),d=u-o||(r.ch-n.ch)*(s.level==1?-1:1);l=u==c-1||u==c?d<0:d>0}var f=a[c+(l?-1:0)],p=l==(f.level==1),m=p?f.from:f.to,h=p?`after`:`before`;return n.ch==m&&n.sticky==h?t:new Z(new J(n.line,m,h),r)}function Ms(e,t,n,r){var i,a;if(t.touches)i=t.touches[0].clientX,a=t.touches[0].clientY;else try{i=t.clientX,a=t.clientY}catch{return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&G(t);var o=e.display,s=o.lineDiv.getBoundingClientRect();if(a>s.bottom||!Pe(e,n))return Le(t);a-=s.top-o.viewOffset;for(var c=0;c=i){var u=ft(e.doc,a),d=e.display.gutterSpecs[c];return je(e,n,e,u,d.className,t),Le(t)}}}function Ns(e,t){return Ms(e,t,`gutterClick`,!0)}function Ps(e,t){Zn(e.display,t)||Fs(e,t)||Me(e,t,`contextmenu`)||w||e.display.input.onContextMenu(t)}function Fs(e,t){return Pe(e,`gutterContextMenu`)?Ms(e,t,`gutterContextMenu`,!1):!1}function Is(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,``)+e.options.theme.replace(/(^|\s)\s*/g,` cm-s-`),vr(e)}var Ls={toString:function(){return`CodeMirror.Init`}},Rs={},zs={};function Bs(e){var t=e.optionHandlers;function n(n,r,i,a){e.defaults[n]=r,i&&(t[n]=a?function(e,t,n){n!=Ls&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ls,n(`value`,``,function(e,t){return e.setValue(t)},!0),n(`mode`,null,function(e,t){e.doc.modeOption=t,ya(e)},!0),n(`indentUnit`,2,ya,!0),n(`indentWithTabs`,!1),n(`smartIndent`,!0),n(`tabSize`,4,function(e){ba(e),vr(e),Wr(e)},!0),n(`lineSeparator`,null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var a=e.text.indexOf(t,i);if(a==-1)break;i=a+t.length,n.push(J(r,a))}r++});for(var i=n.length-1;i>=0;i--)lo(e.doc,t,n[i],J(n[i].line,n[i].ch+t.length))}}),n(`specialChars`,/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(e,t,n){e.state.specialChars=RegExp(t.source+(t.test(` `)?``:`| `),`g`),n!=Ls&&e.refresh()}),n(`specialCharPlaceholder`,Cn,function(e){return e.refresh()},!0),n(`electricChars`,!0),n(`inputStyle`,v?`contenteditable`:`textarea`,function(){throw Error(`inputStyle can not (yet) be changed in a running editor`)},!0),n(`spellcheck`,!1,function(e,t){return e.getInputField().spellcheck=t},!0),n(`autocorrect`,!1,function(e,t){return e.getInputField().autocorrect=t},!0),n(`autocapitalize`,!1,function(e,t){return e.getInputField().autocapitalize=t},!0),n(`rtlMoveVisually`,!x),n(`wholeLineUpdateBefore`,!0),n(`theme`,`default`,function(e){Is(e),ia(e)},!0),n(`keyMap`,`default`,function(e,t,n){var r=Zo(t),i=n!=Ls&&Zo(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),n(`extraKeys`,null),n(`configureMouse`,null),n(`lineWrapping`,!1,Hs,!0),n(`gutters`,[],function(e,t){e.display.gutterSpecs=na(t,e.options.lineNumbers),ia(e)},!0),n(`fixedGutter`,!0,function(e,t){e.display.gutters.style.left=t?zr(e.display)+`px`:`0`,e.refresh()},!0),n(`coverGutterNextToScrollbar`,!1,function(e){return Ti(e)},!0),n(`scrollbarStyle`,`native`,function(e){Oi(e),Ti(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),n(`lineNumbers`,!1,function(e,t){e.display.gutterSpecs=na(e.options.gutters,t),ia(e)},!0),n(`firstLineNumber`,1,ia,!0),n(`lineNumberFormatter`,function(e){return e},ia,!0),n(`showCursorWhenSelecting`,!1,Xr,!0),n(`resetSelectionOnContextMenu`,!0),n(`lineWiseCopyCut`,!0),n(`pasteLinesPerSelection`,!0),n(`selectionsMayTouch`,!1),n(`readOnly`,!1,function(e,t){t==`nocursor`&&(ai(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),n(`screenReaderLabel`,null,function(e,t){t=t===``?null:t,e.display.input.screenReaderLabelChanged(t)}),n(`disableInput`,!1,function(e,t){t||e.display.input.reset()},!0),n(`dragDrop`,!0,Vs),n(`allowDropFileTypes`,null),n(`cursorBlinkRate`,530),n(`cursorScrollMargin`,0),n(`cursorHeight`,1,Xr,!0),n(`singleCursorHeightPerLine`,!0,Xr,!0),n(`workTime`,100),n(`workDelay`,100),n(`flattenSpans`,!0,ba,!0),n(`addModeClass`,!1,ba,!0),n(`pollInterval`,100),n(`undoDepth`,200,function(e,t){return e.doc.history.undoDepth=t}),n(`historyEventDelay`,1250),n(`viewportMargin`,10,function(e){return e.refresh()},!0),n(`maxHighlightLength`,1e4,ba,!0),n(`moveInputWithCursor`,!0,function(e,t){t||e.display.input.resetPosition()}),n(`tabindex`,null,function(e,t){return e.display.input.getField().tabIndex=t||``}),n(`autofocus`,null),n(`direction`,`ltr`,function(e,t){return e.doc.setDirection(t)},!0),n(`phrases`,null)}function Vs(e,t,n){if(!t!=!(n&&n!=Ls)){var r=e.display.dragFunctions,i=t?W:Ae;i(e.display.scroller,`dragstart`,r.start),i(e.display.scroller,`dragenter`,r.enter),i(e.display.scroller,`dragover`,r.over),i(e.display.scroller,`dragleave`,r.leave),i(e.display.scroller,`drop`,r.drop)}}function Hs(e){e.options.lineWrapping?(N(e.display.wrapper,`CodeMirror-wrap`),e.display.sizer.style.minWidth=``,e.display.sizerWidth=null):(E(e.display.wrapper,`CodeMirror-wrap`),hn(e)),Vr(e),Wr(e),vr(e),setTimeout(function(){return Ti(e)},100)}function Q(e,t){var n=this;if(!(this instanceof Q))return new Q(e,t);this.options=t=t?z(t):{},z(Rs,t,!1);var r=t.value;typeof r==`string`?r=new ko(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Q.inputStyles[t.inputStyle](this),a=this.display=new aa(e,r,i,t);for(var l in a.wrapper.CodeMirror=this,Is(this),t.lineWrapping&&(this.display.wrapper.className+=` CodeMirror-wrap`),Oi(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new re,keySeq:null,specialChars:null},t.autofocus&&!v&&a.input.focus(),o&&s<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Us(this),Lo(),Ai(this),this.curOp.forceUpdate=!0,wa(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout(function(){n.hasFocus()&&!n.state.focused&&ii(n)},20):ai(this),zs)zs.hasOwnProperty(l)&&zs[l](this,t[l],Ls);ta(this),t.finishInit&&t.finishInit(this);for(var u=0;u400}W(t.scroller,`touchstart`,function(i){if(!Me(e,i)&&!a(i)&&!Ns(e,i)){t.input.ensurePolled(),clearTimeout(n);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-r.end<=300?r:null},i.touches.length==1&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}}),W(t.scroller,`touchmove`,function(){t.activeTouch&&(t.activeTouch.moved=!0)}),W(t.scroller,`touchend`,function(n){var r=t.activeTouch;if(r&&!Zn(t,n)&&r.left!=null&&!r.moved&&new Date-r.start<300){var a=e.coordsChar(t.activeTouch,`page`),o=!r.prev||c(r,r.prev)?new Z(a,a):!r.prev.prev||c(r,r.prev.prev)?e.findWordAt(a):new Z(J(a.line,0),X(e.doc,J(a.line+1,0)));e.setSelection(o.anchor,o.head),e.focus(),G(n)}i()}),W(t.scroller,`touchcancel`,i),W(t.scroller,`scroll`,function(){t.scroller.clientHeight&&(yi(e,t.scroller.scrollTop),xi(e,t.scroller.scrollLeft,!0),je(e,`scroll`,e))}),W(t.scroller,`mousewheel`,function(t){return ua(e,t)}),W(t.scroller,`DOMMouseScroll`,function(t){return ua(e,t)}),W(t.wrapper,`scroll`,function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){Me(e,t)||Re(t)},over:function(t){Me(e,t)||(No(e,t),Re(t))},start:function(t){return Mo(e,t)},drop:zi(e,jo),leave:function(t){Me(e,t)||Po(e)}};var l=t.input.getField();W(l,`keyup`,function(t){return _s.call(e,t)}),W(l,`keydown`,zi(e,hs)),W(l,`keypress`,zi(e,vs)),W(l,`focus`,function(t){return ii(e,t)}),W(l,`blur`,function(t){return ai(e,t)})}var Ws=[];Q.defineInitHook=function(e){return Ws.push(e)};function Gs(e,t,n,r){var i=e.doc,a;n??=`add`,n==`smart`&&(i.mode.indent?a=Et(e,t).state:n=`prev`);var o=e.options.tabSize,s=K(i,t),c=B(s.text,null,o);s.stateAfter&&=null;var l=s.text.match(/^\s*/)[0],u;if(!r&&!/\S/.test(s.text))u=0,n=`not`;else if(n==`smart`&&(u=i.mode.indent(a,s.text.slice(l.length),s.text),u==ae||u>150)){if(!r)return;n=`prev`}n==`prev`?u=t>i.first?B(K(i,t-1).text,null,o):0:n==`add`?u=c+e.options.indentUnit:n==`subtract`?u=c-e.options.indentUnit:typeof n==`number`&&(u=c+n),u=Math.max(0,u);var d=``,f=0;if(e.options.indentWithTabs)for(var p=Math.floor(u/o);p;--p)f+=o,d+=` `;if(fo,c=Ke(t),l=null;if(s&&r.ranges.length>1)if(Ks&&Ks.text.join(` -`)==t){if(r.ranges.length%Ks.text.length==0){l=[];for(var u=0;u=0;f--){var p=r.ranges[f],m=p.from(),h=p.to();p.empty()&&(n&&n>0?m=J(m.line,m.ch-n):e.state.overwrite&&!s?h=J(h.line,Math.min(K(a,h.line).text.length,h.ch+U(c).length)):s&&Ks&&Ks.lineWise&&Ks.text.join(` -`)==c.join(` -`)&&(m=h=J(m.line,0)));var g={from:m,to:h,text:l?l[f%l.length]:c,origin:i||(s?`paste`:e.state.cutIncoming>o?`cut`:`+input`)};ro(e.doc,g),In(e,`inputRead`,e,g)}t&&!s&&Xs(e,t),mi(e),e.curOp.updateInput<2&&(e.curOp.updateInput=d),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Ys(e,t){var n=e.clipboardData&&e.clipboardData.getData(`Text`);if(n)return e.preventDefault(),!t.isReadOnly()&&!t.options.disableInput&&t.hasFocus()&&Ri(t,function(){return Js(t,n,0,null,`paste`)}),!0}function Xs(e,t){if(!(!e.options.electricChars||!e.options.smartIndent))for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var a=e.getModeAt(i.head),o=!1;if(a.electricChars){for(var s=0;s-1){o=Gs(e,i.head.line,`smart`);break}}else a.electricInput&&a.electricInput.test(K(e.doc,i.head.line).text.slice(0,i.head.ch))&&(o=Gs(e,i.head.line,`smart`));o&&In(e,`electricInput`,e,i.head.line)}}}function Zs(e){for(var t=[],n=[],r=0;rn&&(Gs(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&mi(this));else{var a=i.from(),o=i.to(),s=Math.max(n,a.line);n=Math.min(this.lastLine(),o.line-+!o.ch)+1;for(var c=s;c0&&Ua(this.doc,r,new Z(a,l[r].to()),oe)}}}),getTokenAt:function(e,t){return jt(this,e,t)},getLineTokens:function(e,t){return jt(this,J(e),t,!0)},getTokenTypeAt:function(e){e=X(this.doc,e);var t=Tt(this,K(this.doc,e.line)),n=0,r=(t.length-1)/2,i=e.ch,a;if(i==0)a=t[2];else for(;;){var o=n+r>>1;if((o?t[o*2-1]:0)>=i)r=o;else if(t[o*2+1]a&&(e=a,r=!0),i=K(this.doc,e)}else i=e;return Sr(this,i,{top:0,left:0},t||`page`,n||r).top+(r?this.doc.height-pn(i):0)},defaultTextHeight:function(){return Ir(this.display)},defaultCharWidth:function(){return Lr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var a=this.display;e=Tr(this,X(this.doc,e));var o=e.bottom,s=e.left;if(t.style.position=`absolute`,t.setAttribute(`cm-ignore-events`,`true`),this.display.input.setUneditable(t),a.sizer.appendChild(t),r==`over`)o=e.top;else if(r==`above`||r==`near`){var c=Math.max(a.wrapper.clientHeight,this.doc.height),l=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);(r==`above`||e.bottom+t.offsetHeight>c)&&e.top>t.offsetHeight?o=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=c&&(o=e.bottom),s+t.offsetWidth>l&&(s=l-t.offsetWidth)}t.style.top=o+`px`,t.style.left=t.style.right=``,i==`right`?(s=a.sizer.clientWidth-t.offsetWidth,t.style.right=`0px`):(i==`left`?s=0:i==`middle`&&(s=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+`px`),n&&di(this,{left:s,top:o,right:s+t.offsetWidth,bottom:o+t.offsetHeight})},triggerOnKeyDown:Bi(hs),triggerOnKeyPress:Bi(vs),triggerOnKeyUp:_s,triggerOnMouseDown:Bi(ws),execCommand:function(e){if(rs.hasOwnProperty(e))return rs[e].call(null,this)},triggerElectric:Bi(function(e){Xs(this,e)}),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var a=X(this.doc,e),o=0;o0&&s(n.charAt(r-1));)--r;for(;i.5||this.options.lineWrapping)&&Vr(this),je(this,`refresh`,this)}),swapDoc:Bi(function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),wa(this,e),vr(this),this.display.input.reset(),hi(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,In(this,`swapDoc`,this,t),t}),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Fe(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,a){e.registerHelper(t,r,a),n[t]._global.push({pred:i,val:a})}}function tc(e,t,n,r,i){var a=t,o=n,s=K(e,t.line),c=i&&e.direction==`rtl`?-n:n;function l(){var n=t.line+c;return n=e.first+e.size?!1:(t=new J(n,t.ch,t.sticky),s=K(e,n))}function u(a){var o;if(r==`codepoint`){var u=s.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(u))o=null;else{var d=n>0?u>=55296&&u<56320:u>=56320&&u<57343;o=new J(t.line,Math.max(0,Math.min(s.text.length,t.ch+n*(d?2:1))),-n)}}else o=i?ns(e.cm,s,t,n):es(s,t,n);if(o==null)if(!a&&l())t=ts(i,e.cm,s,t.line,c);else return!1;else t=o;return!0}if(r==`char`||r==`codepoint`)u();else if(r==`column`)u(!0);else if(r==`word`||r==`group`)for(var d=null,f=r==`group`,p=e.cm&&e.cm.getHelper(t,`wordChars`),m=!0;!(n<0&&!u(!m));m=!1){var h=s.text.charAt(t.ch)||` -`,g=_e(h,p)?`w`:f&&h==` -`?`n`:!f||/\s/.test(h)?null:`p`;if(f&&!m&&!g&&(g=`s`),d&&d!=g){n<0&&(n=1,u(),t.sticky=`after`);break}if(g&&(d=g),n>0&&!u(!m))break}var _=$a(e,t,a,o,!0);return ht(a,_)&&(_.hitSide=!0),_}function nc(e,t,n,r){var i=e.doc,a=t.left,o;if(r==`page`){var s=Math.min(e.display.wrapper.clientHeight,L(e).innerHeight||i(e).documentElement.clientHeight),c=Math.max(s-.5*Ir(e.display),3);o=(n>0?t.bottom:t.top)+n*c}else r==`line`&&(o=n>0?t.bottom+3:t.top-3);for(var l;l=Or(e,a,o),l.outside;){if(n<0?o<=0:o>=i.height){l.hitSide=!0;break}o+=n*5}return l}var $=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new re,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};$.prototype.init=function(e){var t=this,n=this,r=n.cm,i=n.div=e.lineDiv;i.contentEditable=!0,Qs(i,r.options.spellcheck,r.options.autocorrect,r.options.autocapitalize);function a(e){for(var t=e.target;t;t=t.parentNode){if(t==i)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(t.className))break}return!1}W(i,`paste`,function(e){!a(e)||Me(r,e)||Ys(e,r)||s<=11&&setTimeout(zi(r,function(){return t.updateFromDOM()}),20)}),W(i,`compositionstart`,function(e){t.composing={data:e.data,done:!1}}),W(i,`compositionupdate`,function(e){t.composing||={data:e.data,done:!1}}),W(i,`compositionend`,function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),W(i,`touchstart`,function(){return n.forceCompositionEnd()}),W(i,`input`,function(){t.composing||t.readFromDOMSoon()});function o(e){if(!(!a(e)||Me(r,e))){if(r.somethingSelected())qs({lineWise:!1,text:r.getSelections()}),e.type==`cut`&&r.replaceSelection(``,null,`cut`);else if(r.options.lineWiseCopyCut){var t=Zs(r);qs({lineWise:!0,text:t.text}),e.type==`cut`&&r.operation(function(){r.setSelections(t.ranges,0,oe),r.replaceSelection(``,null,`cut`)})}else return;if(e.clipboardData){e.clipboardData.clearData();var o=Ks.text.join(` -`);if(e.clipboardData.setData(`Text`,o),e.clipboardData.getData(`Text`)==o){e.preventDefault();return}}var s=$s(),c=s.firstChild;Qs(c),r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),c.value=Ks.text.join(` -`);var l=ee(I(i));te(c),setTimeout(function(){r.display.lineSpace.removeChild(s),l.focus(),l==i&&n.showPrimarySelection()},50)}}W(i,`copy`,o),W(i,`cut`,o)},$.prototype.screenReaderLabelChanged=function(e){e?this.div.setAttribute(`aria-label`,e):this.div.removeAttribute(`aria-label`)},$.prototype.prepareSelection=function(){var e=Zr(this.cm,!1);return e.focus=ee(I(this.div))==this.div,e},$.prototype.showSelection=function(e,t){!e||!this.cm.display.view.length||((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},$.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},$.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,r=t.doc.sel.primary(),i=r.from(),a=r.to();if(t.display.viewTo==t.display.viewFrom||i.line>=t.display.viewTo||a.line=t.display.viewFrom&&rc(t,i)||{node:c[0].measure.map[2],offset:0},u=a.linee.firstLine()&&(r=J(r.line-1,K(e.doc,r.line-1).length)),i.ch==K(e.doc,i.line).text.length&&i.linet.viewTo-1)return!1;var a,o,s;r.line==t.viewFrom||(a=Ur(e,r.line))==0?(o=q(t.view[0].line),s=t.view[0].node):(o=q(t.view[a].line),s=t.view[a-1].node.nextSibling);var c=Ur(e,i.line),l,u;if(c==t.view.length-1?(l=t.viewTo-1,u=t.lineDiv.lastChild):(l=q(t.view[c+1].line)-1,u=t.view[c+1].node.previousSibling),!s)return!1;for(var d=e.doc.splitLines(oc(e,s,u,o,l)),f=lt(e.doc,J(o,0),J(l,K(e.doc,l).text.length));d.length>1&&f.length>1;)if(U(d)==U(f))d.pop(),f.pop(),l--;else if(d[0]==f[0])d.shift(),f.shift(),o++;else break;for(var p=0,m=0,h=d[0],g=f[0],_=Math.min(h.length,g.length);p<_&&h.charCodeAt(p)==g.charCodeAt(p);)++p;for(var v=U(d),y=U(f),b=Math.min(v.length-(d.length==1?p:0),y.length-(f.length==1?p:0));mr.ch&&v.charCodeAt(v.length-m-1)==y.charCodeAt(y.length-m-1);)p--,m++;d[d.length-1]=v.slice(0,v.length-m).replace(/^\u200b+/,``),d[0]=d[0].slice(p).replace(/\u200b+$/,``);var x=J(o,p),S=J(l,f.length?U(f).length-m:0);if(d.length>1||d[0]||Y(x,S))return lo(e.doc,d,x,S,`+input`),!0},$.prototype.ensurePolled=function(){this.forceCompositionEnd()},$.prototype.reset=function(){this.forceCompositionEnd()},$.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},$.prototype.readFromDOMSoon=function(){var e=this;this.readDOMTimeout??=setTimeout(function(){if(e.readDOMTimeout=null,e.composing)if(e.composing.done)e.composing=null;else return;e.updateFromDOM()},80)},$.prototype.updateFromDOM=function(){var e=this;(this.cm.isReadOnly()||!this.pollContent())&&Ri(this.cm,function(){return Wr(e.cm)})},$.prototype.setUneditable=function(e){e.contentEditable=`false`},$.prototype.onKeyPress=function(e){e.charCode==0||this.composing||(e.preventDefault(),this.cm.isReadOnly()||zi(this.cm,Js)(this.cm,String.fromCharCode(e.charCode==null?e.keyCode:e.charCode),0))},$.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(e!=`nocursor`)},$.prototype.onContextMenu=function(){},$.prototype.resetPosition=function(){},$.prototype.needsContentAttribute=!0;function rc(e,t){var n=cr(e,t.line);if(!n||n.hidden)return null;var r=K(e.doc,t.line),i=ar(n,r,t.line),a=De(r,e.doc.direction),o=`left`;a&&(o=Te(a,t.ch)%2?`right`:`left`);var s=fr(i.map,t.ch,o);return s.offset=s.collapse==`right`?s.end:s.start,s}function ic(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ac(e,t){return t&&(e.bad=!0),e}function oc(e,t,n,r,i){var a=``,o=!1,s=e.doc.lineSeparator(),c=!1;function l(e){return function(t){return t.id==e}}function u(){o&&=(a+=s,c&&(a+=s),c=!1)}function d(e){e&&(u(),a+=e)}function f(t){if(t.nodeType==1){var n=t.getAttribute(`cm-text`);if(n){d(n);return}var a=t.getAttribute(`cm-marker`),p;if(a){var m=e.findMarks(J(r,0),J(i+1,0),l(+a));m.length&&(p=m[0].find(0))&&d(lt(e.doc,p.from,p.to).join(s));return}if(t.getAttribute(`contenteditable`)==`false`)return;var h=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&t.textContent.length==0)return;h&&u();for(var g=0;g=9&&t.hasSelection&&(t.hasSelection=null),n.poll()}),W(i,`paste`,function(e){Me(r,e)||Ys(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())});function a(e){if(!Me(r,e)){if(r.somethingSelected())qs({lineWise:!1,text:r.getSelections()});else if(r.options.lineWiseCopyCut){var t=Zs(r);qs({lineWise:!0,text:t.text}),e.type==`cut`?r.setSelections(t.ranges,null,oe):(n.prevInput=``,i.value=t.text.join(` -`),te(i))}else return;e.type==`cut`&&(r.state.cutIncoming=+new Date)}}W(i,`cut`,a),W(i,`copy`,a),W(e.scroller,`paste`,function(t){if(!(Zn(e,t)||Me(r,t))){if(!i.dispatchEvent){r.state.pasteIncoming=+new Date,n.focus();return}var a=new Event(`paste`);a.clipboardData=t.clipboardData,i.dispatchEvent(a)}}),W(e.lineSpace,`selectstart`,function(t){Zn(e,t)||G(t)}),W(i,`compositionstart`,function(){var e=r.getCursor(`from`);n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor(`to`),{className:`CodeMirror-composing`})}}),W(i,`compositionend`,function(){n.composing&&=(n.poll(),n.composing.range.clear(),null)})},lc.prototype.createField=function(e){this.wrapper=$s(),this.textarea=this.wrapper.firstChild;var t=this.cm.options;Qs(this.textarea,t.spellcheck,t.autocorrect,t.autocapitalize)},lc.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute(`aria-label`,e):this.textarea.removeAttribute(`aria-label`)},lc.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Zr(e);if(e.options.moveInputWithCursor){var i=Tr(e,n.sel.primary().head,`div`),a=t.wrapper.getBoundingClientRect(),o=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+o.top-a.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+o.left-a.left))}return r},lc.prototype.showSelection=function(e){var t=this.cm.display;O(t.cursorDiv,e.cursors),O(t.selectionDiv,e.selection),e.teTop!=null&&(this.wrapper.style.top=e.teTop+`px`,this.wrapper.style.left=e.teLeft+`px`)},lc.prototype.reset=function(e){if(!(this.contextMenuPending||this.composing&&e)){var t=this.cm;if(this.resetting=!0,t.somethingSelected()){this.prevInput=``;var n=t.getSelection();this.textarea.value=n,t.state.focused&&te(this.textarea),o&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value=``,o&&s>=9&&(this.hasSelection=null));this.resetting=!1}},lc.prototype.getField=function(){return this.textarea},lc.prototype.supportsTouch=function(){return!1},lc.prototype.focus=function(){if(this.cm.options.readOnly!=`nocursor`&&(!v||ee(I(this.textarea))!=this.textarea))try{this.textarea.focus()}catch{}},lc.prototype.blur=function(){this.textarea.blur()},lc.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},lc.prototype.receivedFocus=function(){this.slowPoll()},lc.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},lc.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0;function n(){!t.poll()&&!e?(e=!0,t.polling.set(60,n)):(t.pollingFast=!1,t.slowPoll())}t.polling.set(20,n)},lc.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||this.resetting||!t.state.focused||qe(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(o&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var a=i.charCodeAt(0);if(a==8203&&!r&&(r=`​`),a==8666)return this.reset(),this.cm.execCommand(`undo`)}for(var c=0,l=Math.min(r.length,i.length);c1e3||i.indexOf(` -`)>-1?n.value=e.prevInput=``:e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(`to`),{className:`CodeMirror-composing`}))}),!0},lc.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},lc.prototype.onKeyPress=function(){o&&s>=9&&(this.hasSelection=null),this.fastPoll()},lc.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var a=Hr(n,e),l=r.scroller.scrollTop;if(!a||f)return;n.options.resetSelectionOnContextMenu&&n.doc.sel.contains(a)==-1&&zi(n,qa)(n.doc,pa(a),oe);var u=i.style.cssText,d=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText=`position: static`,i.style.cssText=`position: absolute; width: 30px; height: 30px; - top: `+(e.clientY-p.top-5)+`px; left: `+(e.clientX-p.left-5)+`px; - z-index: 1000; background: `+(o?`rgba(255, 255, 255, .05)`:`transparent`)+`; - outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var m;c&&(m=i.ownerDocument.defaultView.scrollY),r.input.focus(),c&&i.ownerDocument.defaultView.scrollTo(null,m),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=` `),t.contextMenuPending=g,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll);function h(){if(i.selectionStart!=null){var e=n.somethingSelected(),a=`​`+(e?i.value:``);i.value=`⇚`,i.value=a,t.prevInput=e?``:`​`,i.selectionStart=1,i.selectionEnd=a.length,r.selForContextMenu=n.doc.sel}}function g(){if(t.contextMenuPending==g&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=u,o&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=l),i.selectionStart!=null)){(!o||o&&s<9)&&h();var e=0,a=function(){r.selForContextMenu==n.doc.sel&&i.selectionStart==0&&i.selectionEnd>0&&t.prevInput==`​`?zi(n,to)(n):e++<10?r.detectingSelectAll=setTimeout(a,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(a,200)}}if(o&&s>=9&&h(),w){Re(e);var _=function(){Ae(window,`mouseup`,_),setTimeout(g,20)};W(window,`mouseup`,_)}else setTimeout(g,50)},lc.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=e==`nocursor`,this.textarea.readOnly=!!e},lc.prototype.setUneditable=function(){},lc.prototype.needsContentAttribute=!1;function uc(e,t){if(t=t?z(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),t.autofocus==null){var n=ee(I(e));t.autofocus=n==e||e.getAttribute(`autofocus`)!=null&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(W(e.form,`submit`,r),!t.leaveSubmitMethodAlone)){var a=e.form;i=a.submit;try{var o=a.submit=function(){r(),a.submit=i,a.submit(),a.submit=o}}catch{}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display=``,e.form&&(Ae(e.form,`submit`,r),!t.leaveSubmitMethodAlone&&typeof e.form.submit==`function`&&(e.form.submit=i))}},e.style.display=`none`;var s=Q(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}function dc(e){e.off=Ae,e.on=W,e.wheelEventPixels=la,e.Doc=ko,e.splitLines=Ke,e.countColumn=B,e.findColumn=H,e.isWordChar=ge,e.Pass=ae,e.signal=je,e.Line=gn,e.changeEnd=ma,e.scrollbarModel=Di,e.Pos=J,e.cmpPos=Y,e.modes=Ze,e.mimeModes=Qe,e.resolveMode=tt,e.getMode=nt,e.modeExtensions=rt,e.extendMode=it,e.copyState=at,e.startState=st,e.innerMode=ot,e.commands=rs,e.keyMap=Wo,e.keyName=Xo,e.isModifierKey=Jo,e.lookupKey=qo,e.normalizeKeyMap=Ko,e.StringStream=ct,e.SharedTextMarker=Co,e.TextMarker=xo,e.LineWidget=_o,e.e_preventDefault=G,e.e_stopPropagation=Ie,e.e_stop=Re,e.addClass=N,e.contains=M,e.rmClass=E,e.keyNames=Bo}Bs(Q),ec(Q);var fc=`iter insert remove copy getEditor constructor`.split(` `);for(var pc in ko.prototype)ko.prototype.hasOwnProperty(pc)&&V(fc,pc)<0&&(Q.prototype[pc]=(function(e){return function(){return e.apply(this.doc,arguments)}})(ko.prototype[pc]));return Fe(ko),Q.inputStyles={textarea:lc,contenteditable:$},Q.defineMode=function(e){!Q.defaults.mode&&e!=`null`&&(Q.defaults.mode=e),$e.apply(this,arguments)},Q.defineMIME=et,Q.defineMode(`null`,function(){return{token:function(e){return e.skipToEnd()}}}),Q.defineMIME(`text/plain`,`null`),Q.defineExtension=function(e,t){Q.prototype[e]=t},Q.defineDocExtension=function(e,t){ko.prototype[e]=t},Q.fromTextArea=uc,dc(Q),Q.version=`5.65.21`,Q}))})),_=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){var t=/^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,n=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,r=/[*+-]\s/;e.commands.newlineAndIndentContinueMarkdownList=function(a){if(a.getOption(`disableInput`))return e.Pass;for(var o=a.listSelections(),s=[],c=0;c\s*$/.test(m),v=!/>\s*$/.test(m);(_||v)&&a.replaceRange(``,{line:l.line,ch:0},{line:l.line,ch:l.ch+1}),s[c]=` -`}else{var y=h[1],b=h[5],x=!(r.test(h[2])||h[2].indexOf(`>`)>=0),S=x?parseInt(h[3],10)+1+h[4]:h[2].replace(`x`,` `);s[c]=` -`+y+S+b,x&&i(a,l)}}a.replaceSelections(s)};function i(e,n){var r=n.line,i=0,a=0,o=t.exec(e.getLine(r)),s=o[1];do{i+=1;var c=r+i,l=e.getLine(c),u=t.exec(l);if(u){var d=u[1],f=parseInt(o[3],10)+i-a,p=parseInt(u[3],10),m=p;if(s===d&&!isNaN(p))f===p&&(m=p+1),f>p&&(m=f+1),e.replaceRange(l.replace(t,d+m+u[4]+u[5]),{line:c,ch:0},{line:c,ch:l.length});else{if(s.length>d.length||s.length{var e=g();e.commands.tabAndIndentMarkdownList=function(e){var t=e.listSelections()[0].head;if(e.getStateAfter(t.line).list!==!1){e.execCommand(`indentMore`);return}if(e.options.indentWithTabs)e.execCommand(`insertTab`);else{var n=Array(e.options.tabSize+1).join(` `);e.replaceSelection(n)}},e.commands.shiftTabAndUnindentMarkdownList=function(e){var t=e.listSelections()[0].head;if(e.getStateAfter(t.line).list!==!1){e.execCommand(`indentLess`);return}if(e.options.indentWithTabs)e.execCommand(`insertTab`);else{var n=Array(e.options.tabSize+1).join(` `);e.replaceSelection(n)}}})),y=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`fullScreen`,!1,function(r,i,a){a==e.Init&&(a=!1),!a!=!i&&(i?t(r):n(r))});function t(e){var t=e.getWrapperElement();e.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:t.style.width,height:t.style.height},t.style.width=``,t.style.height=`auto`,t.className+=` CodeMirror-fullscreen`,document.documentElement.style.overflow=`hidden`,e.refresh()}function n(e){var t=e.getWrapperElement();t.className=t.className.replace(/\s*CodeMirror-fullscreen\b/,``),document.documentElement.style.overflow=``;var n=e.state.fullScreenRestore;t.style.width=n.width,t.style.height=n.height,window.scrollTo(n.scrollLeft,n.scrollTop),e.refresh()}})})),b=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode(`xml`,function(r,i){var a=r.indentUnit,o={},s=i.htmlMode?t:n;for(var c in s)o[c]=s[c];for(var c in i)o[c]=i[c];var l,u;function d(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();return r==`<`?e.eat(`!`)?e.eat(`[`)?e.match(`CDATA[`)?n(m(`atom`,`]]>`)):null:e.match(`--`)?n(m(`comment`,`-->`)):e.match(`DOCTYPE`,!0,!0)?(e.eatWhile(/[\w\._\-]/),n(h(1))):null:e.eat(`?`)?(e.eatWhile(/[\w\._\-]/),t.tokenize=m(`meta`,`?>`),`meta`):(l=e.eat(`/`)?`closeTag`:`openTag`,t.tokenize=f,`tag bracket`):r==`&`?(e.eat(`#`)?e.eat(`x`)?e.eatWhile(/[a-fA-F\d]/)&&e.eat(`;`):e.eatWhile(/[\d]/)&&e.eat(`;`):e.eatWhile(/[\w\.\-:]/)&&e.eat(`;`))?`atom`:`error`:(e.eatWhile(/[^&<]/),null)}d.isInText=!0;function f(e,t){var n=e.next();if(n==`>`||n==`/`&&e.eat(`>`))return t.tokenize=d,l=n==`>`?`endTag`:`selfcloseTag`,`tag bracket`;if(n==`=`)return l=`equals`,null;if(n==`<`){t.tokenize=d,t.state=b,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+` tag error`:`tag error`}else if(/[\'\"]/.test(n))return t.tokenize=p(n),t.stringStartCol=e.column(),t.tokenize(e,t);else return e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),`word`}function p(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=f;break}return`string`};return t.isInAttribute=!0,t}function m(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function h(e){return function(t,n){for(var r;(r=t.next())!=null;)if(r==`<`)return n.tokenize=h(e+1),n.tokenize(t,n);else if(r==`>`)if(e==1){n.tokenize=d;break}else return n.tokenize=h(e-1),n.tokenize(t,n);return`meta`}}function g(e){return e&&e.toLowerCase()}function _(e,t,n){this.prev=e.context,this.tagName=t||``,this.indent=e.indented,this.startOfLine=n,(o.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function v(e){e.context&&=e.context.prev}function y(e,t){for(var n;;){if(!e.context||(n=e.context.tagName,!o.contextGrabbers.hasOwnProperty(g(n))||!o.contextGrabbers[g(n)].hasOwnProperty(g(t))))return;v(e)}}function b(e,t,n){return e==`openTag`?(n.tagStart=t.column(),x):e==`closeTag`?S:b}function x(e,t,n){return e==`word`?(n.tagName=t.current(),u=`tag`,T):o.allowMissingTagName&&e==`endTag`?(u=`tag bracket`,T(e,t,n)):(u=`error`,x)}function S(e,t,n){if(e==`word`){var r=t.current();return n.context&&n.context.tagName!=r&&o.implicitlyClosed.hasOwnProperty(g(n.context.tagName))&&v(n),n.context&&n.context.tagName==r||o.matchClosing===!1?(u=`tag`,C):(u=`tag error`,w)}else if(o.allowMissingTagName&&e==`endTag`)return u=`tag bracket`,C(e,t,n);else return u=`error`,w}function C(e,t,n){return e==`endTag`?(v(n),b):(u=`error`,C)}function w(e,t,n){return u=`error`,C(e,t,n)}function T(e,t,n){if(e==`word`)return u=`attribute`,E;if(e==`endTag`||e==`selfcloseTag`){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,e==`selfcloseTag`||o.autoSelfClosers.hasOwnProperty(g(r))?y(n,r):(y(n,r),n.context=new _(n,r,i==n.indented)),b}return u=`error`,T}function E(e,t,n){return e==`equals`?D:(o.allowMissing||(u=`error`),T(e,t,n))}function D(e,t,n){return e==`string`?O:e==`word`&&o.allowUnquoted?(u=`string`,T):(u=`error`,T(e,t,n))}function O(e,t,n){return e==`string`?O:T(e,t,n)}return{startState:function(e){var t={tokenize:d,state:b,indented:e||0,tagName:null,tagStart:null,context:null};return e!=null&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;l=null;var n=t.tokenize(e,t);return(n||l)&&n!=`comment`&&(u=null,t.state=t.state(l||n,e,t),u&&(n=u==`error`?n+` error`:u)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+a;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=f&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return o.multilineTagIndentPastTag===!1?t.tagStart+a*(o.multilineTagIndentFactor||1):t.tagStart+t.tagName.length+2;if(o.alignCDATA&&/$/,blockCommentStart:``,configuration:o.htmlMode?`html`:`xml`,helperType:o.htmlMode?`html`:`xml`,skipAttribute:function(e){e.state==D&&(e.state=T)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:e.type==`closeTag`}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}}),e.defineMIME(`text/xml`,`xml`),e.defineMIME(`application/xml`,`xml`),e.mimeModes.hasOwnProperty(`text/html`)||e.defineMIME(`text/html`,{name:`xml`,htmlMode:!0})})})),x=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../lib/codemirror`],n):n(CodeMirror)})(function(e){e.modeInfo=[{name:`APL`,mime:`text/apl`,mode:`apl`,ext:[`dyalog`,`apl`]},{name:`PGP`,mimes:[`application/pgp`,`application/pgp-encrypted`,`application/pgp-keys`,`application/pgp-signature`],mode:`asciiarmor`,ext:[`asc`,`pgp`,`sig`]},{name:`ASN.1`,mime:`text/x-ttcn-asn`,mode:`asn.1`,ext:[`asn`,`asn1`]},{name:`Asterisk`,mime:`text/x-asterisk`,mode:`asterisk`,file:/^extensions\.conf$/i},{name:`Brainfuck`,mime:`text/x-brainfuck`,mode:`brainfuck`,ext:[`b`,`bf`]},{name:`C`,mime:`text/x-csrc`,mode:`clike`,ext:[`c`,`h`,`ino`]},{name:`C++`,mime:`text/x-c++src`,mode:`clike`,ext:[`cpp`,`c++`,`cc`,`cxx`,`hpp`,`h++`,`hh`,`hxx`],alias:[`cpp`]},{name:`Cobol`,mime:`text/x-cobol`,mode:`cobol`,ext:[`cob`,`cpy`,`cbl`]},{name:`C#`,mime:`text/x-csharp`,mode:`clike`,ext:[`cs`],alias:[`csharp`,`cs`]},{name:`Clojure`,mime:`text/x-clojure`,mode:`clojure`,ext:[`clj`,`cljc`,`cljx`]},{name:`ClojureScript`,mime:`text/x-clojurescript`,mode:`clojure`,ext:[`cljs`]},{name:`Closure Stylesheets (GSS)`,mime:`text/x-gss`,mode:`css`,ext:[`gss`]},{name:`CMake`,mime:`text/x-cmake`,mode:`cmake`,ext:[`cmake`,`cmake.in`],file:/^CMakeLists\.txt$/},{name:`CoffeeScript`,mimes:[`application/vnd.coffeescript`,`text/coffeescript`,`text/x-coffeescript`],mode:`coffeescript`,ext:[`coffee`],alias:[`coffee`,`coffee-script`]},{name:`Common Lisp`,mime:`text/x-common-lisp`,mode:`commonlisp`,ext:[`cl`,`lisp`,`el`],alias:[`lisp`]},{name:`Cypher`,mime:`application/x-cypher-query`,mode:`cypher`,ext:[`cyp`,`cypher`]},{name:`Cython`,mime:`text/x-cython`,mode:`python`,ext:[`pyx`,`pxd`,`pxi`]},{name:`Crystal`,mime:`text/x-crystal`,mode:`crystal`,ext:[`cr`]},{name:`CSS`,mime:`text/css`,mode:`css`,ext:[`css`]},{name:`CQL`,mime:`text/x-cassandra`,mode:`sql`,ext:[`cql`]},{name:`D`,mime:`text/x-d`,mode:`d`,ext:[`d`]},{name:`Dart`,mimes:[`application/dart`,`text/x-dart`],mode:`dart`,ext:[`dart`]},{name:`diff`,mime:`text/x-diff`,mode:`diff`,ext:[`diff`,`patch`]},{name:`Django`,mime:`text/x-django`,mode:`django`},{name:`Dockerfile`,mime:`text/x-dockerfile`,mode:`dockerfile`,file:/^Dockerfile$/},{name:`DTD`,mime:`application/xml-dtd`,mode:`dtd`,ext:[`dtd`]},{name:`Dylan`,mime:`text/x-dylan`,mode:`dylan`,ext:[`dylan`,`dyl`,`intr`]},{name:`EBNF`,mime:`text/x-ebnf`,mode:`ebnf`},{name:`ECL`,mime:`text/x-ecl`,mode:`ecl`,ext:[`ecl`]},{name:`edn`,mime:`application/edn`,mode:`clojure`,ext:[`edn`]},{name:`Eiffel`,mime:`text/x-eiffel`,mode:`eiffel`,ext:[`e`]},{name:`Elm`,mime:`text/x-elm`,mode:`elm`,ext:[`elm`]},{name:`Embedded JavaScript`,mime:`application/x-ejs`,mode:`htmlembedded`,ext:[`ejs`]},{name:`Embedded Ruby`,mime:`application/x-erb`,mode:`htmlembedded`,ext:[`erb`]},{name:`Erlang`,mime:`text/x-erlang`,mode:`erlang`,ext:[`erl`]},{name:`Esper`,mime:`text/x-esper`,mode:`sql`},{name:`Factor`,mime:`text/x-factor`,mode:`factor`,ext:[`factor`]},{name:`FCL`,mime:`text/x-fcl`,mode:`fcl`},{name:`Forth`,mime:`text/x-forth`,mode:`forth`,ext:[`forth`,`fth`,`4th`]},{name:`Fortran`,mime:`text/x-fortran`,mode:`fortran`,ext:[`f`,`for`,`f77`,`f90`,`f95`]},{name:`F#`,mime:`text/x-fsharp`,mode:`mllike`,ext:[`fs`],alias:[`fsharp`]},{name:`Gas`,mime:`text/x-gas`,mode:`gas`,ext:[`s`]},{name:`Gherkin`,mime:`text/x-feature`,mode:`gherkin`,ext:[`feature`]},{name:`GitHub Flavored Markdown`,mime:`text/x-gfm`,mode:`gfm`,file:/^(readme|contributing|history)\.md$/i},{name:`Go`,mime:`text/x-go`,mode:`go`,ext:[`go`]},{name:`Groovy`,mime:`text/x-groovy`,mode:`groovy`,ext:[`groovy`,`gradle`],file:/^Jenkinsfile$/},{name:`HAML`,mime:`text/x-haml`,mode:`haml`,ext:[`haml`]},{name:`Haskell`,mime:`text/x-haskell`,mode:`haskell`,ext:[`hs`]},{name:`Haskell (Literate)`,mime:`text/x-literate-haskell`,mode:`haskell-literate`,ext:[`lhs`]},{name:`Haxe`,mime:`text/x-haxe`,mode:`haxe`,ext:[`hx`]},{name:`HXML`,mime:`text/x-hxml`,mode:`haxe`,ext:[`hxml`]},{name:`ASP.NET`,mime:`application/x-aspx`,mode:`htmlembedded`,ext:[`aspx`],alias:[`asp`,`aspx`]},{name:`HTML`,mime:`text/html`,mode:`htmlmixed`,ext:[`html`,`htm`,`handlebars`,`hbs`],alias:[`xhtml`]},{name:`HTTP`,mime:`message/http`,mode:`http`},{name:`IDL`,mime:`text/x-idl`,mode:`idl`,ext:[`pro`]},{name:`Pug`,mime:`text/x-pug`,mode:`pug`,ext:[`jade`,`pug`],alias:[`jade`]},{name:`Java`,mime:`text/x-java`,mode:`clike`,ext:[`java`]},{name:`Java Server Pages`,mime:`application/x-jsp`,mode:`htmlembedded`,ext:[`jsp`],alias:[`jsp`]},{name:`JavaScript`,mimes:[`text/javascript`,`text/ecmascript`,`application/javascript`,`application/x-javascript`,`application/ecmascript`],mode:`javascript`,ext:[`js`],alias:[`ecmascript`,`js`,`node`]},{name:`JSON`,mimes:[`application/json`,`application/x-json`],mode:`javascript`,ext:[`json`,`map`],alias:[`json5`]},{name:`JSON-LD`,mime:`application/ld+json`,mode:`javascript`,ext:[`jsonld`],alias:[`jsonld`]},{name:`JSX`,mime:`text/jsx`,mode:`jsx`,ext:[`jsx`]},{name:`Jinja2`,mime:`text/jinja2`,mode:`jinja2`,ext:[`j2`,`jinja`,`jinja2`]},{name:`Julia`,mime:`text/x-julia`,mode:`julia`,ext:[`jl`],alias:[`jl`]},{name:`Kotlin`,mime:`text/x-kotlin`,mode:`clike`,ext:[`kt`]},{name:`LESS`,mime:`text/x-less`,mode:`css`,ext:[`less`]},{name:`LiveScript`,mime:`text/x-livescript`,mode:`livescript`,ext:[`ls`],alias:[`ls`]},{name:`Lua`,mime:`text/x-lua`,mode:`lua`,ext:[`lua`]},{name:`Markdown`,mime:`text/x-markdown`,mode:`markdown`,ext:[`markdown`,`md`,`mkd`]},{name:`mIRC`,mime:`text/mirc`,mode:`mirc`},{name:`MariaDB SQL`,mime:`text/x-mariadb`,mode:`sql`},{name:`Mathematica`,mime:`text/x-mathematica`,mode:`mathematica`,ext:[`m`,`nb`,`wl`,`wls`]},{name:`Modelica`,mime:`text/x-modelica`,mode:`modelica`,ext:[`mo`]},{name:`MUMPS`,mime:`text/x-mumps`,mode:`mumps`,ext:[`mps`]},{name:`MS SQL`,mime:`text/x-mssql`,mode:`sql`},{name:`mbox`,mime:`application/mbox`,mode:`mbox`,ext:[`mbox`]},{name:`MySQL`,mime:`text/x-mysql`,mode:`sql`},{name:`Nginx`,mime:`text/x-nginx-conf`,mode:`nginx`,file:/nginx.*\.conf$/i},{name:`NSIS`,mime:`text/x-nsis`,mode:`nsis`,ext:[`nsh`,`nsi`]},{name:`NTriples`,mimes:[`application/n-triples`,`application/n-quads`,`text/n-triples`],mode:`ntriples`,ext:[`nt`,`nq`]},{name:`Objective-C`,mime:`text/x-objectivec`,mode:`clike`,ext:[`m`],alias:[`objective-c`,`objc`]},{name:`Objective-C++`,mime:`text/x-objectivec++`,mode:`clike`,ext:[`mm`],alias:[`objective-c++`,`objc++`]},{name:`OCaml`,mime:`text/x-ocaml`,mode:`mllike`,ext:[`ml`,`mli`,`mll`,`mly`]},{name:`Octave`,mime:`text/x-octave`,mode:`octave`,ext:[`m`]},{name:`Oz`,mime:`text/x-oz`,mode:`oz`,ext:[`oz`]},{name:`Pascal`,mime:`text/x-pascal`,mode:`pascal`,ext:[`p`,`pas`]},{name:`PEG.js`,mime:`null`,mode:`pegjs`,ext:[`jsonld`]},{name:`Perl`,mime:`text/x-perl`,mode:`perl`,ext:[`pl`,`pm`]},{name:`PHP`,mimes:[`text/x-php`,`application/x-httpd-php`,`application/x-httpd-php-open`],mode:`php`,ext:[`php`,`php3`,`php4`,`php5`,`php7`,`phtml`]},{name:`Pig`,mime:`text/x-pig`,mode:`pig`,ext:[`pig`]},{name:`Plain Text`,mime:`text/plain`,mode:`null`,ext:[`txt`,`text`,`conf`,`def`,`list`,`log`]},{name:`PLSQL`,mime:`text/x-plsql`,mode:`sql`,ext:[`pls`]},{name:`PostgreSQL`,mime:`text/x-pgsql`,mode:`sql`},{name:`PowerShell`,mime:`application/x-powershell`,mode:`powershell`,ext:[`ps1`,`psd1`,`psm1`]},{name:`Properties files`,mime:`text/x-properties`,mode:`properties`,ext:[`properties`,`ini`,`in`],alias:[`ini`,`properties`]},{name:`ProtoBuf`,mime:`text/x-protobuf`,mode:`protobuf`,ext:[`proto`]},{name:`Python`,mime:`text/x-python`,mode:`python`,ext:[`BUILD`,`bzl`,`py`,`pyw`],file:/^(BUCK|BUILD)$/},{name:`Puppet`,mime:`text/x-puppet`,mode:`puppet`,ext:[`pp`]},{name:`Q`,mime:`text/x-q`,mode:`q`,ext:[`q`]},{name:`R`,mime:`text/x-rsrc`,mode:`r`,ext:[`r`,`R`],alias:[`rscript`]},{name:`reStructuredText`,mime:`text/x-rst`,mode:`rst`,ext:[`rst`],alias:[`rst`]},{name:`RPM Changes`,mime:`text/x-rpm-changes`,mode:`rpm`},{name:`RPM Spec`,mime:`text/x-rpm-spec`,mode:`rpm`,ext:[`spec`]},{name:`Ruby`,mime:`text/x-ruby`,mode:`ruby`,ext:[`rb`],alias:[`jruby`,`macruby`,`rake`,`rb`,`rbx`]},{name:`Rust`,mime:`text/x-rustsrc`,mode:`rust`,ext:[`rs`]},{name:`SAS`,mime:`text/x-sas`,mode:`sas`,ext:[`sas`]},{name:`Sass`,mime:`text/x-sass`,mode:`sass`,ext:[`sass`]},{name:`Scala`,mime:`text/x-scala`,mode:`clike`,ext:[`scala`]},{name:`Scheme`,mime:`text/x-scheme`,mode:`scheme`,ext:[`scm`,`ss`]},{name:`SCSS`,mime:`text/x-scss`,mode:`css`,ext:[`scss`]},{name:`Shell`,mimes:[`text/x-sh`,`application/x-sh`],mode:`shell`,ext:[`sh`,`ksh`,`bash`],alias:[`bash`,`sh`,`zsh`],file:/^PKGBUILD$/},{name:`Sieve`,mime:`application/sieve`,mode:`sieve`,ext:[`siv`,`sieve`]},{name:`Slim`,mimes:[`text/x-slim`,`application/x-slim`],mode:`slim`,ext:[`slim`]},{name:`Smalltalk`,mime:`text/x-stsrc`,mode:`smalltalk`,ext:[`st`]},{name:`Smarty`,mime:`text/x-smarty`,mode:`smarty`,ext:[`tpl`]},{name:`Solr`,mime:`text/x-solr`,mode:`solr`},{name:`SML`,mime:`text/x-sml`,mode:`mllike`,ext:[`sml`,`sig`,`fun`,`smackspec`]},{name:`Soy`,mime:`text/x-soy`,mode:`soy`,ext:[`soy`],alias:[`closure template`]},{name:`SPARQL`,mime:`application/sparql-query`,mode:`sparql`,ext:[`rq`,`sparql`],alias:[`sparul`]},{name:`Spreadsheet`,mime:`text/x-spreadsheet`,mode:`spreadsheet`,alias:[`excel`,`formula`]},{name:`SQL`,mime:`text/x-sql`,mode:`sql`,ext:[`sql`]},{name:`SQLite`,mime:`text/x-sqlite`,mode:`sql`},{name:`Squirrel`,mime:`text/x-squirrel`,mode:`clike`,ext:[`nut`]},{name:`Stylus`,mime:`text/x-styl`,mode:`stylus`,ext:[`styl`]},{name:`Swift`,mime:`text/x-swift`,mode:`swift`,ext:[`swift`]},{name:`sTeX`,mime:`text/x-stex`,mode:`stex`},{name:`LaTeX`,mime:`text/x-latex`,mode:`stex`,ext:[`text`,`ltx`,`tex`],alias:[`tex`]},{name:`SystemVerilog`,mime:`text/x-systemverilog`,mode:`verilog`,ext:[`v`,`sv`,`svh`]},{name:`Tcl`,mime:`text/x-tcl`,mode:`tcl`,ext:[`tcl`]},{name:`Textile`,mime:`text/x-textile`,mode:`textile`,ext:[`textile`]},{name:`TiddlyWiki`,mime:`text/x-tiddlywiki`,mode:`tiddlywiki`},{name:`Tiki wiki`,mime:`text/tiki`,mode:`tiki`},{name:`TOML`,mime:`text/x-toml`,mode:`toml`,ext:[`toml`]},{name:`Tornado`,mime:`text/x-tornado`,mode:`tornado`},{name:`troff`,mime:`text/troff`,mode:`troff`,ext:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`]},{name:`TTCN`,mime:`text/x-ttcn`,mode:`ttcn`,ext:[`ttcn`,`ttcn3`,`ttcnpp`]},{name:`TTCN_CFG`,mime:`text/x-ttcn-cfg`,mode:`ttcn-cfg`,ext:[`cfg`]},{name:`Turtle`,mime:`text/turtle`,mode:`turtle`,ext:[`ttl`]},{name:`TypeScript`,mime:`application/typescript`,mode:`javascript`,ext:[`ts`],alias:[`ts`]},{name:`TypeScript-JSX`,mime:`text/typescript-jsx`,mode:`jsx`,ext:[`tsx`],alias:[`tsx`]},{name:`Twig`,mime:`text/x-twig`,mode:`twig`},{name:`Web IDL`,mime:`text/x-webidl`,mode:`webidl`,ext:[`webidl`]},{name:`VB.NET`,mime:`text/x-vb`,mode:`vb`,ext:[`vb`]},{name:`VBScript`,mime:`text/vbscript`,mode:`vbscript`,ext:[`vbs`]},{name:`Velocity`,mime:`text/velocity`,mode:`velocity`,ext:[`vtl`]},{name:`Verilog`,mime:`text/x-verilog`,mode:`verilog`,ext:[`v`]},{name:`VHDL`,mime:`text/x-vhdl`,mode:`vhdl`,ext:[`vhd`,`vhdl`]},{name:`Vue.js Component`,mimes:[`script/x-vue`,`text/x-vue`],mode:`vue`,ext:[`vue`]},{name:`XML`,mimes:[`application/xml`,`text/xml`],mode:`xml`,ext:[`xml`,`xsl`,`xsd`,`svg`],alias:[`rss`,`wsdl`,`xsd`]},{name:`XQuery`,mime:`application/xquery`,mode:`xquery`,ext:[`xy`,`xquery`]},{name:`Yacas`,mime:`text/x-yacas`,mode:`yacas`,ext:[`ys`]},{name:`YAML`,mimes:[`text/x-yaml`,`text/yaml`],mode:`yaml`,ext:[`yaml`,`yml`],alias:[`yml`]},{name:`Z80`,mime:`text/x-z80`,mode:`z80`,ext:[`z80`]},{name:`mscgen`,mime:`text/x-mscgen`,mode:`mscgen`,ext:[`mscgen`,`mscin`,`msc`]},{name:`xu`,mime:`text/x-xu`,mode:`mscgen`,ext:[`xu`]},{name:`msgenny`,mime:`text/x-msgenny`,mode:`mscgen`,ext:[`msgenny`]},{name:`WebAssembly`,mime:`text/webassembly`,mode:`wast`,ext:[`wat`,`wast`]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(a)return e.findModeByExtension(a)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n{(function(n){typeof e==`object`&&typeof t==`object`?n(g(),b(),x()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`,`../xml/xml`,`../meta`],n):n(CodeMirror)})(function(e){e.defineMode(`markdown`,function(t,n){var r=e.getMode(t,`text/html`),i=r.name==`null`;function a(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return i.name==`null`?null:i}n.highlightFormatting===void 0&&(n.highlightFormatting=!1),n.maxBlockquoteDepth===void 0&&(n.maxBlockquoteDepth=0),n.taskLists===void 0&&(n.taskLists=!1),n.strikethrough===void 0&&(n.strikethrough=!1),n.emoji===void 0&&(n.emoji=!1),n.fencedCodeBlockHighlighting===void 0&&(n.fencedCodeBlockHighlighting=!0),n.fencedCodeBlockDefaultMode===void 0&&(n.fencedCodeBlockDefaultMode=`text/plain`),n.xml===void 0&&(n.xml=!0),n.tokenTypeOverrides===void 0&&(n.tokenTypeOverrides={});var o={header:`header`,code:`comment`,quote:`quote`,list1:`variable-2`,list2:`variable-3`,list3:`keyword`,hr:`hr`,image:`image`,imageAltText:`image-alt-text`,imageMarker:`image-marker`,formatting:`formatting`,linkInline:`link`,linkEmail:`link`,linkText:`link`,linkHref:`string`,em:`em`,strong:`strong`,strikethrough:`strikethrough`,emoji:`builtin`};for(var s in o)o.hasOwnProperty(s)&&n.tokenTypeOverrides[s]&&(o[s]=n.tokenTypeOverrides[s]);var c=/^([*\-_])(?:\s*\1){2,}\s*$/,l=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,u=/^\[(x| )\](?=\s)/i,d=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,f=/^ {0,3}(?:\={1,}|-{2,})\s*$/,p=/^[^#!\[\]*_\\<>` "'(~:]+/,m=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,h=/^\s*\[[^\]]+?\]:.*$/,g=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,_=` `;function v(e,t,n){return t.f=t.inline=n,n(e,t)}function y(e,t,n){return t.f=t.block=n,n(e,t)}function b(e){return!e||!/\S/.test(e.string)}function x(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==C){var n=i;if(!n){var a=e.innerMode(r,t.htmlState);n=a.mode.name==`xml`&&a.state.tagStart===null&&!a.state.context&&a.state.tokenize.isInText}n&&(t.f=D,t.block=S,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function S(t,r){var i=t.column()===r.indentation,s=b(r.prevLine.stream),p=r.indentedCode,g=r.prevLine.hr,_=r.list!==!1,y=(r.listStack[r.listStack.length-1]||0)+3;r.indentedCode=!1;var x=r.indentation;if(r.indentationDiff===null&&(r.indentationDiff=r.indentation,_)){for(r.list=null;x=4&&(p||r.prevLine.fencedCodeEnd||r.prevLine.header||s))return t.skipToEnd(),r.indentedCode=!0,o.code;if(t.eatSpace())return null;if(i&&r.indentation<=y&&(E=t.match(d))&&E[1].length<=6)return r.quote=0,r.header=E[1].length,r.thisLine.header=!0,n.highlightFormatting&&(r.formatting=`header`),r.f=r.inline,T(r);if(r.indentation<=y&&t.eat(`>`))return r.quote=i?1:r.quote+1,n.highlightFormatting&&(r.formatting=`quote`),t.eatSpace(),T(r);if(!C&&!r.setext&&i&&r.indentation<=y&&(E=t.match(l))){var D=E[1]?`ol`:`ul`;return r.indentation=x+t.current().length,r.list=!0,r.quote=0,r.listStack.push(r.indentation),r.em=!1,r.strong=!1,r.code=!1,r.strikethrough=!1,n.taskLists&&t.match(u,!1)&&(r.taskList=!0),r.f=r.inline,n.highlightFormatting&&(r.formatting=[`list`,`list-`+D]),T(r)}else if(i&&r.indentation<=y&&(E=t.match(m,!0)))return r.quote=0,r.fencedEndRE=RegExp(E[1]+`+ *$`),r.localMode=n.fencedCodeBlockHighlighting&&a(E[2]||n.fencedCodeBlockDefaultMode),r.localMode&&(r.localState=e.startState(r.localMode)),r.f=r.block=w,n.highlightFormatting&&(r.formatting=`code-block`),r.code=-1,T(r);else if(r.setext||(!S||!_)&&!r.quote&&r.list===!1&&!r.code&&!C&&!h.test(t.string)&&(E=t.lookAhead(1))&&(E=E.match(f)))return r.setext?(r.header=r.setext,r.setext=0,t.skipToEnd(),n.highlightFormatting&&(r.formatting=`header`)):(r.header=E[0].charAt(0)==`=`?1:2,r.setext=r.header),r.thisLine.header=!0,r.f=r.inline,T(r);else if(C)return t.skipToEnd(),r.hr=!0,r.thisLine.hr=!0,o.hr;else if(t.peek()===`[`)return v(t,r,M);return v(t,r,r.inline)}function C(t,n){var a=r.token(t,n.htmlState);if(!i){var o=e.innerMode(r,n.htmlState);(o.mode.name==`xml`&&o.state.tagStart===null&&!o.state.context&&o.state.tokenize.isInText||n.md_inside&&t.current().indexOf(`>`)>-1)&&(n.f=D,n.block=S,n.htmlState=null)}return a}function w(e,t){var r=t.listStack[t.listStack.length-1]||0,i=t.indentation=e.quote?t.push(o.formatting+`-`+e.formatting[r]+`-`+e.quote):t.push(`error`))}if(e.taskOpen)return t.push(`meta`),t.length?t.join(` `):null;if(e.taskClosed)return t.push(`property`),t.length?t.join(` `):null;if(e.linkHref?t.push(o.linkHref,`url`):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,`link`),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+`-`+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+`-`+e.quote):t.push(o.quote+`-`+n.maxBlockquoteDepth)),e.list!==!1){var i=(e.listStack.length-1)%3;i?i===1?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push(`trailing-space-new-line`):e.trailingSpace&&t.push(`trailing-space-`+(e.trailingSpace%2?`a`:`b`)),t.length?t.join(` `):null}function E(e,t){if(e.match(p,!0))return T(t)}function D(t,i){var a=i.text(t,i);if(a!==void 0)return a;if(i.list)return i.list=null,T(i);if(i.taskList)return t.match(u,!0)[1]===` `?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting=`task`),i.taskList=!1,T(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting=`header`),T(i);var s=t.next();if(i.linkTitle){i.linkTitle=!1;var c=s;s===`(`&&(c=`)`),c=(c+``).replace(/([.?*+^\[\]\\(){}|-])/g,`\\$1`);var l=`^\\s*(?:[^`+c+`\\\\]+|\\\\\\\\|\\\\.)`+c;if(t.match(new RegExp(l),!0))return o.linkHref}if(s==="`"){var d=i.formatting;n.highlightFormatting&&(i.formatting=`code`),t.eatWhile("`");var f=t.current().length;if(i.code==0&&(!i.quote||f==1))return i.code=f,T(i);if(f==i.code){var p=T(i);return i.code=0,p}else return i.formatting=d,T(i)}else if(i.code)return T(i);if(s===`\\`&&(t.next(),n.highlightFormatting)){var m=T(i),h=o.formatting+`-escape`;return m?m+` `+h:h}if(s===`!`&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting=`image`),T(i);if(s===`[`&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting=`image`),T(i);if(s===`]`&&i.imageAltText){n.highlightFormatting&&(i.formatting=`image`);var m=T(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=k,m}if(s===`[`&&!i.image)return i.linkText&&t.match(/^.*?\]/)?T(i):(i.linkText=!0,n.highlightFormatting&&(i.formatting=`link`),T(i));if(s===`]`&&i.linkText){n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?k:D,m}if(s===`<`&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){i.f=i.inline=O,n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return m?m+=` `:m=``,m+o.linkInline}if(s===`<`&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){i.f=i.inline=O,n.highlightFormatting&&(i.formatting=`link`);var m=T(i);return m?m+=` `:m=``,m+o.linkEmail}if(n.xml&&s===`<`&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var _=t.string.indexOf(`>`,t.pos);if(_!=-1){var v=t.string.substring(t.start,_);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(v)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),y(t,i,C)}if(n.xml&&s===`<`&&t.match(/^\/\w*?>/))return i.md_inside=!1,`tag`;if(s===`*`||s===`_`){for(var b=1,x=t.pos==1?` `:t.string.charAt(t.pos-2);b<3&&t.eat(s);)b++;var S=t.peek()||` `,w=!/\s/.test(S)&&(!g.test(S)||/\s/.test(x)||g.test(x)),E=!/\s/.test(x)&&(!g.test(x)||/\s/.test(S)||g.test(S)),A=null,j=null;if(b%2&&(!i.em&&w&&(s===`*`||!E||g.test(x))?A=!0:i.em==s&&E&&(s===`*`||!w||g.test(S))&&(A=!1)),b>1&&(!i.strong&&w&&(s===`*`||!E||g.test(x))?j=!0:i.strong==s&&E&&(s===`*`||!w||g.test(S))&&(j=!1)),j!=null||A!=null){n.highlightFormatting&&(i.formatting=A==null?`strong`:j==null?`em`:`strong em`),A===!0&&(i.em=s),j===!0&&(i.strong=s);var p=T(i);return A===!1&&(i.em=!1),j===!1&&(i.strong=!1),p}}else if(s===` `&&(t.eat(`*`)||t.eat(`_`))){if(t.peek()===` `)return T(i);t.backUp(1)}if(n.strikethrough){if(s===`~`&&t.eatWhile(s)){if(i.strikethrough){n.highlightFormatting&&(i.formatting=`strikethrough`);var p=T(i);return i.strikethrough=!1,p}else if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting=`strikethrough`),T(i)}else if(s===` `&&t.match(`~~`,!0)){if(t.peek()===` `)return T(i);t.backUp(2)}}if(n.emoji&&s===`:`&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting=`emoji`);var M=T(i);return i.emoji=!1,M}return s===` `&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),T(i)}function O(e,t){if(e.next()===`>`){t.f=t.inline=D,n.highlightFormatting&&(t.formatting=`link`);var r=T(t);return r?r+=` `:r=``,r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function k(e,t){if(e.eatSpace())return null;var r=e.next();return r===`(`||r===`[`?(t.f=t.inline=j(r===`(`?`)`:`]`),n.highlightFormatting&&(t.formatting=`link-string`),t.linkHref=!0,T(t)):`error`}var A={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function j(e){return function(t,r){if(t.next()===e){r.f=r.inline=D,n.highlightFormatting&&(r.formatting=`link-string`);var i=T(r);return r.linkHref=!1,i}return t.match(A[e]),r.linkHref=!0,T(r)}}function M(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=ee,e.next(),n.highlightFormatting&&(t.formatting=`link`),t.linkText=!0,T(t)):v(e,t,D)}function ee(e,t){if(e.match(`]:`,!0)){t.f=t.inline=N,n.highlightFormatting&&(t.formatting=`link`);var r=T(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function N(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),e.peek()===void 0?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=D,o.linkHref+` url`)}var P={startState:function(){return{f:S,prevLine:{stream:null},thisLine:{stream:null},block:S,htmlState:null,indentation:0,inline:D,text:E,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return x(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=C)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g,_).length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==C?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:P}},indent:function(t,n,i){return t.block==C&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:x,getType:T,blockCommentStart:``,closeBrackets:`()[]{}''""\`\``,fold:`markdown`};return P},`xml`),e.defineMIME(`text/markdown`,`markdown`),e.defineMIME(`text/x-markdown`,`markdown`)})})),C=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos){(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`placeholder`,``,function(n,o,s){var c=s&&s!=e.Init;if(o&&!c)n.on(`blur`,i),n.on(`change`,a),n.on(`swapDoc`,a),e.on(n.getInputField(),`compositionupdate`,n.state.placeholderCompose=function(){r(n)}),a(n);else if(!o&&c){n.off(`blur`,i),n.off(`change`,a),n.off(`swapDoc`,a),e.off(n.getInputField(),`compositionupdate`,n.state.placeholderCompose),t(n);var l=n.getWrapperElement();l.className=l.className.replace(` CodeMirror-empty`,``)}o&&!n.hasFocus()&&i(n)});function t(e){e.state.placeholder&&(e.state.placeholder.parentNode.removeChild(e.state.placeholder),e.state.placeholder=null)}function n(e){t(e);var n=e.state.placeholder=document.createElement(`pre`);n.style.cssText=`height: 0; overflow: visible`,n.style.direction=e.getOption(`direction`),n.className=`CodeMirror-placeholder CodeMirror-line-like`;var r=e.getOption(`placeholder`);typeof r==`string`&&(r=document.createTextNode(r)),n.appendChild(r),e.display.lineSpace.insertBefore(n,e.display.lineSpace.firstChild)}function r(e){setTimeout(function(){var r=!1;if(e.lineCount()==1){var i=e.getInputField();r=i.nodeName==`TEXTAREA`?!e.getLine(0).length:!/[^\u200b]/.test(i.querySelector(`.CodeMirror-line`).textContent)}r?n(e):t(e)},20)}function i(e){o(e)&&n(e)}function a(e){var r=e.getWrapperElement(),i=o(e);r.className=r.className.replace(` CodeMirror-empty`,``)+(i?` CodeMirror-empty`:``),i?n(e):t(e)}function o(e){return e.lineCount()===1&&e.getLine(0)===``}})})),T=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`autoRefresh`,!1,function(e,r){e.state.autoRefresh&&(n(e,e.state.autoRefresh),e.state.autoRefresh=null),r&&e.display.wrapper.offsetHeight==0&&t(e,e.state.autoRefresh={delay:r.delay||250})});function t(t,r){function i(){t.display.wrapper.offsetHeight?(n(t,r),t.display.lastWrapHeight!=t.display.wrapper.clientHeight&&t.refresh()):r.timeout=setTimeout(i,r.delay)}r.timeout=setTimeout(i,r.delay),r.hurry=function(){clearTimeout(r.timeout),r.timeout=setTimeout(i,50)},e.on(window,`mouseup`,r.hurry),e.on(window,`keyup`,r.hurry)}function n(t,n){clearTimeout(n.timeout),e.off(window,`mouseup`,n.hurry),e.off(window,`keyup`,n.hurry)}})})),E=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){e.defineOption(`styleSelectedText`,!1,function(r,i,a){var o=a&&a!=e.Init;i&&!o?(r.state.markedSelection=[],r.state.markedSelectionStyle=typeof i==`string`?i:`CodeMirror-selectedtext`,c(r),r.on(`cursorActivity`,t),r.on(`change`,n)):!i&&o&&(r.off(`cursorActivity`,t),r.off(`change`,n),s(r),r.state.markedSelection=r.state.markedSelectionStyle=null)});function t(e){e.state.markedSelection&&e.operation(function(){l(e)})}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation(function(){s(e)})}var r=8,i=e.Pos,a=e.cmpPos;function o(e,t,n,o){if(a(t,n)!=0)for(var s=e.state.markedSelection,c=e.state.markedSelectionStyle,l=t.line;;){var u=l==t.line?t:i(l,0),d=l+r,f=d>=n.line,p=f?n:i(d,0),m=e.markText(u,p,{className:c});if(o==null?s.push(m):s.splice(o++,0,m),f)break;l=d}}function s(e){for(var t=e.state.markedSelection,n=0;n1)return c(e);var t=e.getCursor(`start`),n=e.getCursor(`end`),i=e.state.markedSelection;if(!i.length)return o(e,t,n);var l=i[0].find(),u=i[i.length-1].find();if(!l||!u||n.line-t.line<=r||a(t,u.to)>=0||a(n,l.from)<=0)return c(e);for(;a(t,l.from)>0;)i.shift().clear(),l=i[0].find();for(a(t,l.from)<0&&(l.to.line-t.line0&&(n.line-u.from.line{(function(n){typeof e==`object`&&typeof t==`object`?n(g()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`],n):n(CodeMirror)})(function(e){var t=e.Pos;function n(e){return e.flags??(e.ignoreCase?`i`:``)+(e.global?`g`:``)+(e.multiline?`m`:``)}function r(e,t){for(var r=n(e),i=r,a=0;au);d++){var f=e.getLine(l++);s=s==null?f:s+` -`+f}c*=2,n.lastIndex=o.ch;var p=n.exec(s);if(p){var m=s.slice(0,p.index).split(` -`),h=p[0].split(` -`),g=o.line+m.length-1,_=m[m.length-1].length;return{from:t(g,_),to:t(g+h.length-1,h.length==1?_+h[0].length:h[h.length-1].length),match:p}}}}function s(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var a=t.exec(e);if(!a)break;var o=a.index+a[0].length;if(o>e.length-n)break;(!r||o>r.index+r[0].length)&&(r=a),i=a.index+1}return r}function c(e,n,i){n=r(n,`g`);for(var a=i.line,o=i.ch,c=e.firstLine();a>=c;a--,o=-1){var l=e.getLine(a),u=s(l,n,o<0?0:l.length-o);if(u)return{from:t(a,u.index),to:t(a,u.index+u[0].length),match:u}}}function l(e,n,a){if(!i(n))return c(e,n,a);n=r(n,`gm`);for(var o,l=1,u=e.getLine(a.line).length-a.ch,d=a.line,f=e.firstLine();d>=f;){for(var p=0;p=f;p++){var m=e.getLine(d--);o=o==null?m:m+` -`+o}l*=2;var h=s(o,n,u);if(h){var g=o.slice(0,h.index).split(` -`),_=h[0].split(` -`),v=d+g.length,y=g[g.length-1].length;return{from:t(v,y),to:t(v+_.length-1,_.length==1?y+_[0].length:_[_.length-1].length),match:h}}}}var u,d;String.prototype.normalize?(u=function(e){return e.normalize(`NFD`).toLowerCase()},d=function(e){return e.normalize(`NFD`)}):(u=function(e){return e.toLowerCase()},d=function(e){return e});function f(e,t,n,r){if(e.length==t.length)return n;for(var i=0,a=n+Math.max(0,e.length-t.length);;){if(i==a)return i;var o=i+a>>1,s=r(e.slice(0,o)).length;if(s==n)return o;s>n?a=o:i=o+1}}function p(e,n,r,i){if(!n.length)return null;var a=i?u:d,o=a(n).split(/\r|\n\r?/);search:for(var s=r.line,c=r.ch,l=e.lastLine()+1-o.length;s<=l;s++,c=0){var p=e.getLine(s).slice(c),m=a(p);if(o.length==1){var h=m.indexOf(o[0]);if(h==-1)continue search;var r=f(p,m,h,a)+c;return{from:t(s,f(p,m,h,a)+c),to:t(s,f(p,m,h+o[0].length,a)+c)}}else{var g=m.length-o[0].length;if(m.slice(g)!=o[0])continue search;for(var _=1;_=l;s--,c=-1){var p=e.getLine(s);c>-1&&(p=p.slice(0,c));var m=a(p);if(o.length==1){var h=m.lastIndexOf(o[0]);if(h==-1)continue search;return{from:t(s,f(p,m,h,a)),to:t(s,f(p,m,h+o[0].length,a))}}else{var g=o[o.length-1];if(m.slice(0,g.length)!=g)continue search;for(var _=1,r=s-o.length+1;_(this.doc.getLine(r.line)||``).length&&(r.ch=0,r.line++)),e.cmpPos(r,this.doc.clipPos(r))!=0))return this.atOccurrence=!1;var i=this.matches(n,r);if(this.afterEmptyMatch=i&&e.cmpPos(i.from,i.to)==0,i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var a=t(n?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:a,to:a},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(n,r){if(this.atOccurrence){var i=e.splitLines(n);this.doc.replaceRange(i,this.pos.from,this.pos.to,r),this.pos.to=t(this.pos.from.line+i.length-1,i[i.length-1].length+(i.length==1?this.pos.from.ch:0))}}},e.defineExtension(`getSearchCursor`,function(e,t,n){return new h(this.doc,e,t,n)}),e.defineDocExtension(`getSearchCursor`,function(e,t,n){return new h(this,e,t,n)}),e.defineExtension(`selectMatches`,function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor(`from`),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor(`to`))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)})})})),O=n(((e,t)=>{(function(n){typeof e==`object`&&typeof t==`object`?n(g(),S(),C()):typeof define==`function`&&define.amd?define([`../../lib/codemirror`,`../markdown/markdown`,`../../addon/mode/overlay`],n):n(CodeMirror)})(function(e){var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode(`gfm`,function(n,r){var i=0;function a(e){return e.code=!1,null}var o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if(e.peek()==="`"){e.next();var a=e.pos;e.eatWhile("`");var o=1+e.pos-a;return n.code?o===i&&(n.code=!1):(i=o,n.code=!0),null}else if(n.code)return e.next(),null;return e.eatSpace()?(n.ateSpace=!0,null):(e.sol()||n.ateSpace)&&(n.ateSpace=!1,r.gitHubSpice!==!1)&&(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/)||e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))||e.match(t)&&e.string.slice(e.start-2,e.start)!=`](`&&(e.start==0||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,`link`):(e.next(),null)},blankLine:a},s={taskLists:!0,strikethrough:!0,emoji:!0};for(var c in r)s[c]=r[c];return s.name=`markdown`,e.overlayMode(e.getMode(n,s),o)},`markdown`),e.defineMIME(`text/x-gfm`,`gfm`)})})),k=n(((e,t)=>{t.exports={}})),A=n(((e,n)=>{var r;(function(){r=function(e,t,n,r){r||={},this.dictionary=null,this.rules={},this.dictionaryTable=new Map,this.compoundRules=[],this.compoundRuleCodes={},this.replacementTable=[],this.flags=r.flags||{},this.memoized={},this.loaded=!1;var i=this,a,o,s,c,l;e&&(i.dictionary=e,t&&n?p():(typeof window<`u`?(a=r.dictionaryPath?r.dictionaryPath:`typo/dictionaries`,window.chrome&&window.chrome.runtime&&window.chrome.runtime.getURL?a=window.chrome.runtime.getURL(a):window.browser&&window.browser.runtime&&window.browser.runtime.getURL&&(a=window.browser.runtime.getURL(a))):a=typeof __dirname<`u`?__dirname+`/dictionaries`:`./dictionaries`,t||u(a+`/`+e+`/`+e+`.aff`,d),n||u(a+`/`+e+`/`+e+`.dic`,f)));function u(e,t){var n=i._readFile(e,null,r?.asyncLoad);r?.asyncLoad?n.then(function(e){t(e)}):t(n)}function d(e){t=e,n&&p()}function f(e){n=e,t&&p()}function p(){for(i.rules=i._parseAFF(t),i.compoundRuleCodes={},o=0,c=i.compoundRules.length;o0&&(x.continuationClasses=y),b!==`.`&&(f===`SFX`?x.match=RegExp(b+`$`):x.match=RegExp(`^`+b)),g!=`0`&&(f===`SFX`?x.remove=RegExp(g+`$`):x.remove=g),h.push(x)}t[p]={type:f,combineable:m===`Y`,entries:h},o+=i}else if(f===`COMPOUNDRULE`){for(i=parseInt(d[1],10),s=o+1,l=o+1+i;s0&&(n.get(e)===null&&n.set(e,[]),n.get(e).push(t))}for(var i=1,a=t.length;i1){var l=this.parseRuleCodes(s[1]);(!(`NEEDAFFIX`in this.flags)||l.indexOf(this.flags.NEEDAFFIX)===-1)&&r(c,l);for(var u=0,d=l.length;u=this.flags.COMPOUNDMIN){for(n=0,r=this.compoundRules.length;n1&&u[1][1]!==u[1][0]&&(o=u[0]+u[1][1]+u[1][0]+u[1].substring(2),(!t||l.check(o))&&(o in n?n[o]+=1:n[o]=1)),u[1]){var d=u[1].substring(0,1).toUpperCase()===u[1].substring(0,1)?`uppercase`:`lowercase`;for(i=0;ir?1:t[0].localeCompare(e[0])}s.sort(c).reverse();var d=[],f=`lowercase`;e.toUpperCase()===e?f=`uppercase`:e.substr(0,1).toUpperCase()+e.substr(1).toLowerCase()===e&&(f=`capitalized`);var p=t;for(o=0;o{var n=A();function r(e){if(e||={},typeof e.codeMirrorInstance!=`function`||typeof e.codeMirrorInstance.defineMode!=`function`){console.log("CodeMirror Spell Checker: You must provide an instance of CodeMirror via the option `codeMirrorInstance`");return}String.prototype.includes||(String.prototype.includes=function(){return String.prototype.indexOf.apply(this,arguments)!==-1}),e.codeMirrorInstance.defineMode(`spell-checker`,function(t){if(!r.aff_loading){r.aff_loading=!0;var i=new XMLHttpRequest;i.open(`GET`,`https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.aff`,!0),i.onload=function(){i.readyState===4&&i.status===200&&(r.aff_data=i.responseText,r.num_loaded++,r.num_loaded==2&&(r.typo=new n(`en_US`,r.aff_data,r.dic_data,{platform:`any`})))},i.send(null)}if(!r.dic_loading){r.dic_loading=!0;var a=new XMLHttpRequest;a.open(`GET`,`https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.dic`,!0),a.onload=function(){a.readyState===4&&a.status===200&&(r.dic_data=a.responseText,r.num_loaded++,r.num_loaded==2&&(r.typo=new n(`en_US`,r.aff_data,r.dic_data,{platform:`any`})))},a.send(null)}var o='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~ ',s={token:function(e){var t=e.peek(),n=``;if(o.includes(t))return e.next(),null;for(;(t=e.peek())!=null&&!o.includes(t);)n+=t,e.next();return r.typo&&!r.typo.check(n)?`spell-error`:null}},c=e.codeMirrorInstance.getMode(t,t.backdrop||`text/plain`);return e.codeMirrorInstance.overlayMode(c,s,!0)})}r.num_loaded=0,r.aff_loading=!1,r.dic_loading=!1,r.aff_data=``,r.dic_data=``,r.typo,t.exports=r})),M=n((e=>{function t(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function s(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return typeof t==`symbol`?t:String(t)}function l(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:``,highlight:null,hooks:null,langPrefix:`language-`,mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=l();function u(t){e.defaults=t}var d=/[&<>"']/,f=new RegExp(d.source,`g`),p=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,m=new RegExp(p.source,`g`),h={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},g=function(e){return h[e]};function _(e,t){if(t){if(d.test(e))return e.replace(f,g)}else if(p.test(e))return e.replace(m,g);return e}var v=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function y(e){return e.replace(v,function(e,t){return t=t.toLowerCase(),t===`colon`?`:`:t.charAt(0)===`#`?t.charAt(1)===`x`?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):``})}var b=/(^|[^\[])\^/g;function x(e,t){e=typeof e==`string`?e:e.source,t||=``;var n={replace:function(t,r){return r=r.source||r,r=r.replace(b,`$1`),e=e.replace(t,r),n},getRegex:function(){return new RegExp(e,t)}};return n}var S=/[^\w:]/g,C=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function w(e,t,n){if(e){var r;try{r=decodeURIComponent(y(n)).replace(S,``).toLowerCase()}catch{return null}if(r.indexOf(`javascript:`)===0||r.indexOf(`vbscript:`)===0||r.indexOf(`data:`)===0)return null}t&&!C.test(n)&&(n=k(t,n));try{n=encodeURI(n).replace(/%25/g,`%`)}catch{return null}return n}var T={},E=/^[^:]+:\/*[^/]*$/,D=/^([^:]+:)[\s\S]*$/,O=/^([^:]+:\/*[^/]*)[\s\S]*$/;function k(e,t){T[` `+e]||(E.test(e)?T[` `+e]=e+`/`:T[` `+e]=M(e,`/`,!0)),e=T[` `+e];var n=e.indexOf(`:`)===-1;return t.substring(0,2)===`//`?n?t:e.replace(D,`$1`)+t:t.charAt(0)===`/`?n?t:e.replace(O,`$1`)+t:e+t}var A={exec:function(){}};function j(e,t){var n=e.replace(/\|/g,function(e,t,n){for(var r=!1,i=t;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),n.length>t)n.splice(t);else for(;n.length1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function te(e,t,n,r){var i=t.href,a=t.title?_(t.title):null,o=e[1].replace(/\\([\[\]])/g,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;var s={type:`link`,raw:n,href:i,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,s}return{type:`image`,raw:n,href:i,title:a,text:_(o)}}function F(e,t){var n=e.match(/^(\s+)(?:```)/);if(n===null)return t;var r=n[1];return t.split(` -`).map(function(e){var t=e.match(/^\s+/);return t===null?e:t[0].length>=r.length?e.slice(r.length):e}).join(` -`)}var ne=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.space=function(e){var t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}},n.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?n:M(n,` -`)}}},n.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=F(n,t[3]||``);return{type:`code`,raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,`$1`):t[2],text:r}}},n.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=M(n,`#`);(this.options.pedantic||!r||/ $/.test(r))&&(n=r.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}},n.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:t[0]}},n.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var n=t[0].replace(/^ *>[ \t]?/gm,``),r=this.lexer.state.top;this.lexer.state.top=!0;var i=this.lexer.blockTokens(n);return this.lexer.state.top=r,{type:`blockquote`,raw:t[0],tokens:i,text:n}}},n.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,r,i,a,o,s,c,l,u,d,f,p,m=t[1].trim(),h=m.length>1,g={type:`list`,raw:``,ordered:h,start:h?+m.slice(0,-1):``,loose:!1,items:[]};m=h?`\\d{1,9}\\`+m.slice(-1):`\\`+m,this.options.pedantic&&(m=h?m:`[*+-]`);for(var _=RegExp(`^( {0,3}`+m+`)((?:[ ][^\\n]*)?(?:\\n|$))`);e&&(p=!1,!(!(t=_.exec(e))||this.rules.block.hr.test(e)));){if(n=t[0],e=e.substring(n.length),l=t[2].split(` -`,1)[0].replace(/^\t+/,function(e){return` `.repeat(3*e.length)}),u=e.split(` -`,1)[0],this.options.pedantic?(a=2,f=l.trimLeft()):(a=t[2].search(/[^ ]/),a=a>4?1:a,f=l.slice(a),a+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(n+=u+` -`,e=e.substring(u.length+1),p=!0),!p)for(var v=RegExp(`^ {0,`+Math.min(3,a-1)+`}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),y=RegExp(`^ {0,`+Math.min(3,a-1)+`}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),b=RegExp(`^ {0,`+Math.min(3,a-1)+"}(?:```|~~~)"),x=RegExp(`^ {0,`+Math.min(3,a-1)+`}#`);e&&(d=e.split(` -`,1)[0],u=d,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g,` `)),!(b.test(u)||x.test(u)||v.test(u)||y.test(e)));){if(u.search(/[^ ]/)>=a||!u.trim())f+=` -`+u.slice(a);else{if(s||l.search(/[^ ]/)>=4||b.test(l)||x.test(l)||y.test(l))break;f+=` -`+u}!s&&!u.trim()&&(s=!0),n+=d+` -`,e=e.substring(d.length+1),l=u.slice(a)}g.loose||(c?g.loose=!0:/\n *\n *$/.test(n)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(f),r&&(i=r[0]!==`[ ] `,f=f.replace(/^\[[ xX]\] +/,``))),g.items.push({type:`list_item`,raw:n,task:!!r,checked:i,loose:!1,text:f}),g.raw+=n}g.items[g.items.length-1].raw=n.trimRight(),g.items[g.items.length-1].text=f.trimRight(),g.raw=g.raw.trimRight();var S=g.items.length;for(o=0;o0&&C.some(function(e){return/\n.*\n/.test(e.raw)})}if(g.loose)for(o=0;o$/,`$1`).replace(this.rules.inline._escapes,`$1`):``,i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,`$1`):t[3];return{type:`def`,tag:n,raw:t[0],href:r,title:i}}},n.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:`table`,header:j(t[1]).map(function(e){return{text:e}}),align:t[2].replace(/^ *|\| *$/g,``).split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,``).split(` -`):[]};if(n.header.length===n.align.length){n.raw=t[0];var r=n.align.length,i,a,o,s;for(i=0;i/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?`text`:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):_(t[0]):t[0]}},n.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=M(n.slice(0,-1),`\\`);if((n.length-r.length)%2==0)return}else{var i=ee(t[2],`()`);if(i>-1){var a=(t[0].indexOf(`!`)===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,a).trim(),t[3]=``}}var o=t[2],s=``;if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);c&&(o=c[1],s=c[3])}else s=t[3]?t[3].slice(1,-1):``;return o=o.trim(),/^$/.test(n)?o.slice(1):o.slice(1,-1)),te(t,{href:o&&o.replace(this.rules.inline._escapes,`$1`),title:s&&s.replace(this.rules.inline._escapes,`$1`)},t[0],this.lexer)}},n.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g,` `);if(r=t[r.toLowerCase()],!r){var i=n[0].charAt(0);return{type:`text`,raw:i,text:i}}return te(n,r,n[0],this.lexer)}},n.emStrong=function(e,t,n){n===void 0&&(n=``);var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&!(r[3]&&n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var i=r[1]||r[2]||``;if(!i||i&&(n===``||this.rules.inline.punctuation.exec(n))){var a=r[0].length-1,o,s,c=a,l=0,u=r[0][0]===`*`?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+a);(r=u.exec(t))!=null;)if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],o){if(s=o.length,r[3]||r[4]){c+=s;continue}else if((r[5]||r[6])&&a%3&&!((a+s)%3)){l+=s;continue}if(c-=s,!(c>0)){s=Math.min(s,s+c+l);var d=e.slice(0,a+r.index+(r[0].length-o.length)+s);if(Math.min(a,s)%2){var f=d.slice(1,-1);return{type:`em`,raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}var p=d.slice(2,-2);return{type:`strong`,raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}}}}},n.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g,` `),r=/[^ ]/.test(n),i=/^ /.test(n)&&/ $/.test(n);return r&&i&&(n=n.substring(1,n.length-1)),n=_(n,!0),{type:`codespan`,raw:t[0],text:n}}},n.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}},n.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}},n.autolink=function(e,t){var n=this.rules.inline.autolink.exec(e);if(n){var r,i;return n[2]===`@`?(r=_(this.options.mangle?t(n[1]):n[1]),i=`mailto:`+r):(r=_(n[1]),i=r),{type:`link`,raw:n[0],text:r,href:i,tokens:[{type:`text`,raw:r,text:r}]}}},n.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,i;if(n[2]===`@`)r=_(this.options.mangle?t(n[0]):n[0]),i=`mailto:`+r;else{var a;do a=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0];while(a!==n[0]);r=_(n[0]),i=n[1]===`www.`?`http://`+n[0]:n[0]}return{type:`link`,raw:n[0],text:r,href:i,tokens:[{type:`text`,raw:r,text:r}]}}},n.inlineText=function(e,t){var n=this.rules.inline.text.exec(e);if(n){var r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):_(n[0]):n[0]:_(this.options.smartypants?t(n[0]):n[0]);return{type:`text`,raw:n[0],text:r}}},t}(),I={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))`,def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:A,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};I._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,I._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,I.def=x(I.def).replace(`label`,I._label).replace(`title`,I._title).getRegex(),I.bullet=/(?:[*+-]|\d{1,9}[.)])/,I.listItemStart=x(/^( *)(bull) */).replace(`bull`,I.bullet).getRegex(),I.list=x(I.list).replace(/bull/g,I.bullet).replace(`hr`,`\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))`).replace(`def`,`\\n+(?=`+I.def.source+`)`).getRegex(),I._tag=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,I._comment=/|$)/,I.html=x(I.html,`i`).replace(`comment`,I._comment).replace(`tag`,I._tag).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),I.paragraph=x(I._paragraph).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.blockquote=x(I.blockquote).replace(`paragraph`,I.paragraph).getRegex(),I.normal=r({},I),I.gfm=r({},I.normal,{table:`^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`}),I.gfm.table=x(I.gfm.table).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`blockquote`,` {0,3}>`).replace(`code`,` {4}[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.gfm.paragraph=x(I._paragraph).replace(`hr`,I.hr).replace(`heading`,` {0,3}#{1,6} `).replace(`|lheading`,``).replace(`table`,I.gfm.table).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,I._tag).getRegex(),I.pedantic=r({},I.normal,{html:x(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,I._comment).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:A,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x(I.normal._paragraph).replace(`hr`,I.hr).replace(`heading`,` *#{1,6} *[^ -]`).replace(`lheading`,I.lheading).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).getRegex()});var L={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:A,tag:`^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^`,link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:`reflink|nolink(?!\\()`,emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:A,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]\`^{|}~`,L.punctuation=x(L.punctuation).replace(/punctuation/g,L._punctuation).getRegex(),L.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,L.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,L._comment=x(I._comment).replace(`(?:-->|$)`,`-->`).getRegex(),L.emStrong.lDelim=x(L.emStrong.lDelim).replace(/punct/g,L._punctuation).getRegex(),L.emStrong.rDelimAst=x(L.emStrong.rDelimAst,`g`).replace(/punct/g,L._punctuation).getRegex(),L.emStrong.rDelimUnd=x(L.emStrong.rDelimUnd,`g`).replace(/punct/g,L._punctuation).getRegex(),L._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,L._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,L._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,L.autolink=x(L.autolink).replace(`scheme`,L._scheme).replace(`email`,L._email).getRegex(),L._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,L.tag=x(L.tag).replace(`comment`,L._comment).replace(`attribute`,L._attribute).getRegex(),L._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,L._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,L._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,L.link=x(L.link).replace(`label`,L._label).replace(`href`,L._href).replace(`title`,L._title).getRegex(),L.reflink=x(L.reflink).replace(`label`,L._label).replace(`ref`,I._label).getRegex(),L.nolink=x(L.nolink).replace(`ref`,I._label).getRegex(),L.reflinkSearch=x(L.reflinkSearch,`g`).replace(`reflink`,L.reflink).replace(`nolink`,L.nolink).getRegex(),L.normal=r({},L),L.pedantic=r({},L.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:x(/^!?\[(label)\]\((.*?)\)/).replace(`label`,L._label).getRegex(),reflink:x(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,L._label).getRegex()}),L.gfm=r({},L.normal,{escape:x(L.escape).replace(`])`,`~|])`).getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(r=`x`+r.toString(16)),t+=`&#`+r+`;`;return t}var B=function(){function t(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||e.defaults,this.options.tokenizer=this.options.tokenizer||new ne,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var n={block:I.normal,inline:L.normal};this.options.pedantic?(n.block=I.pedantic,n.inline=L.pedantic):this.options.gfm&&(n.block=I.gfm,this.options.breaks?n.inline=L.breaks:n.inline=L.gfm),this.tokenizer.rules=n}t.lex=function(e,n){return new t(n).lex(e)},t.lexInline=function(e,n){return new t(n).inlineTokens(e)};var r=t.prototype;return r.lex=function(e){e=e.replace(/\r\n|\r/g,` -`),this.blockTokens(e,this.tokens);for(var t;t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens},r.blockTokens=function(e,t){var n=this;t===void 0&&(t=[]),e=this.options.pedantic?e.replace(/\t/g,` `).replace(/^ +$/gm,``):e.replace(/^( *)(\t+)/gm,function(e,t,n){return t+` `.repeat(n.length)});for(var r,i,a,o;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(i){return(r=i.call({lexer:n},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1}))){if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length),r.raw.length===1&&t.length>0?t[t.length-1].raw+=` -`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&(i.type===`paragraph`||i.type===`text`)?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&(i.type===`paragraph`||i.type===`text`)?(i.raw+=` -`+r.raw,i.text+=` -`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(a=e,this.options.extensions&&this.options.extensions.startBlock&&(function(){var t=1/0,r=e.slice(1),i=void 0;n.options.extensions.startBlock.forEach(function(e){i=e.call({lexer:this},r),typeof i==`number`&&i>=0&&(t=Math.min(t,i))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))})(),this.state.top&&(r=this.tokenizer.paragraph(a))){i=t[t.length-1],o&&i.type===`paragraph`?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r),o=a.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&i.type===`text`?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r);continue}if(e){var s=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw Error(s)}}return this.state.top=!0,t},r.inline=function(e,t){return t===void 0&&(t=[]),this.inlineQueue.push({src:e,tokens:t}),t},r.inlineTokens=function(e,t){var n=this;t===void 0&&(t=[]);var r,i,a,o=e,s,c,l;if(this.tokens.links){var u=Object.keys(this.tokens.links);if(u.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(o))!=null;)u.includes(s[0].slice(s[0].lastIndexOf(`[`)+1,-1))&&(o=o.slice(0,s.index)+`[`+P(`a`,s[0].length-2)+`]`+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.blockSkip.exec(o))!=null;)o=o.slice(0,s.index)+`[`+P(`a`,s[0].length-2)+`]`+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(s=this.tokenizer.rules.inline.escapedEmSt.exec(o))!=null;)o=o.slice(0,s.index+s[0].length-2)+`++`+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;e;)if(c||(l=``),c=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(i){return(r=i.call({lexer:n},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1}))){if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),i=t[t.length-1],i&&r.type===`text`&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length),i=t[t.length-1],i&&r.type===`text`&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,o,l)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e,z)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e,z))){e=e.substring(r.raw.length),t.push(r);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline&&(function(){var t=1/0,r=e.slice(1),i=void 0;n.options.extensions.startInline.forEach(function(e){i=e.call({lexer:this},r),typeof i==`number`&&i>=0&&(t=Math.min(t,i))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))})(),r=this.tokenizer.inlineText(a,R)){e=e.substring(r.raw.length),r.raw.slice(-1)!==`_`&&(l=r.raw.slice(-1)),c=!0,i=t[t.length-1],i&&i.type===`text`?(i.raw+=r.raw,i.text+=r.text):t.push(r);continue}if(e){var d=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(d);break}else throw Error(d)}}return t},n(t,null,[{key:`rules`,get:function(){return{block:I,inline:L}}}]),t}(),re=function(){function t(t){this.options=t||e.defaults}var n=t.prototype;return n.code=function(e,t,n){var r=(t||``).match(/\S*/)[0];if(this.options.highlight){var i=this.options.highlight(e,r);i!=null&&i!==e&&(n=!0,e=i)}return e=e.replace(/\n$/,``)+` -`,r?`
    `+(n?e:_(e,!0))+`
    -`:`
    `+(n?e:_(e,!0))+`
    -`},n.blockquote=function(e){return`
    -`+e+`
    -`},n.html=function(e){return e},n.heading=function(e,t,n,r){if(this.options.headerIds){var i=this.options.headerPrefix+r.slug(n);return``+e+` -`}return``+e+` -`},n.hr=function(){return this.options.xhtml?`
    -`:`
    -`},n.list=function(e,t,n){var r=t?`ol`:`ul`,i=t&&n!==1?` start="`+n+`"`:``;return`<`+r+i+`> -`+e+` -`},n.listitem=function(e){return`
  • `+e+`
  • -`},n.checkbox=function(e){return` `},n.paragraph=function(e){return`

    `+e+`

    -`},n.table=function(e,t){return t&&=``+t+``,` - -`+e+` -`+t+`
    -`},n.tablerow=function(e){return` -`+e+` -`},n.tablecell=function(e,t){var n=t.header?`th`:`td`;return(t.align?`<`+n+` align="`+t.align+`">`:`<`+n+`>`)+e+(` -`)},n.strong=function(e){return``+e+``},n.em=function(e){return``+e+``},n.codespan=function(e){return``+e+``},n.br=function(){return this.options.xhtml?`
    `:`
    `},n.del=function(e){return``+e+``},n.link=function(e,t,n){if(e=w(this.options.sanitize,this.options.baseUrl,e),e===null)return n;var r=``+n+``,r},n.image=function(e,t,n){if(e=w(this.options.sanitize,this.options.baseUrl,e),e===null)return n;var r=``+n+``:`>`,r},n.text=function(e){return e},t}(),V=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return``+n},t.image=function(e,t,n){return``+n},t.br=function(){return``},e}(),ie=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,``).replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,``).replace(/\s/g,`-`)},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do r++,n=e+`-`+r;while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){t===void 0&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),ae=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new re,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new V,this.slugger=new ie}t.parse=function(e,n){return new t(n).parse(e)},t.parseInline=function(e,n){return new t(n).parseInline(e)};var n=t.prototype;return n.parse=function(e,t){t===void 0&&(t=!0);var n=``,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,b,x,S,C=e.length;for(r=0;r0&&_.tokens[0].type===`paragraph`?(_.tokens[0].text=x+` `+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&_.tokens[0].tokens[0].type===`text`&&(_.tokens[0].tokens[0].text=x+` `+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:`text`,text:x}):g+=x),g+=this.parse(_.tokens,h),d+=this.renderer.listitem(g,b,v);n+=this.renderer.list(d,p,m);continue;case`html`:n+=this.renderer.html(f.text);continue;case`paragraph`:n+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case`text`:for(d=f.tokens?this.parseInline(f.tokens):f.text;r+1An error occurred:

    `+_(r.message+``,!0)+`
    `;if(t)return Promise.resolve(i);if(n){n(null,i);return}return i}if(t)return Promise.reject(r);if(n){n(r);return}throw r}}function ce(e,t){return function(n,i,a){typeof i==`function`&&(a=i,i=null);var o=r({},i);i=r({},H.defaults,o);var s=se(i.silent,i.async,a);if(n==null)return s(Error(`marked(): input parameter is undefined or null`));if(typeof n!=`string`)return s(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(n)+`, string expected`));if(N(i),i.hooks&&(i.hooks.options=i),a){var c=i.highlight,l;try{i.hooks&&(n=i.hooks.preprocess(n)),l=e(n,i)}catch(e){return s(e)}var u=function(e){var n;if(!e)try{i.walkTokens&&H.walkTokens(l,i.walkTokens),n=t(l,i),i.hooks&&(n=i.hooks.postprocess(n))}catch(t){e=t}return i.highlight=c,e?s(e):a(null,n)};if(!c||c.length<3||(delete i.highlight,!l.length))return u();var d=0;H.walkTokens(l,function(e){e.type===`code`&&(d++,setTimeout(function(){c(e.text,e.lang,function(t,n){if(t)return u(t);n!=null&&n!==e.text&&(e.text=n,e.escaped=!0),d--,d===0&&u()})},0))}),d===0&&u();return}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(n):n).then(function(t){return e(t,i)}).then(function(e){return i.walkTokens?Promise.all(H.walkTokens(e,i.walkTokens)).then(function(){return e}):e}).then(function(e){return t(e,i)}).then(function(e){return i.hooks?i.hooks.postprocess(e):e}).catch(s);try{i.hooks&&(n=i.hooks.preprocess(n));var f=e(n,i);i.walkTokens&&H.walkTokens(f,i.walkTokens);var p=t(f,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(e){return s(e)}}}function H(e,t,n){return ce(B.lex,ae.parse)(e,t,n)}H.options=H.setOptions=function(e){return H.defaults=r({},H.defaults,e),u(H.defaults),H},H.getDefaults=l,H.defaults=e.defaults,H.use=function(){var e=H.defaults.extensions||{renderers:{},childTokens:{}};[...arguments].forEach(function(t){var n=r({},t);if(n.async=H.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach(function(t){if(!t.name)throw Error(`extension name required`);if(t.renderer){var n=e.renderers[t.name];n?e.renderers[t.name]=function(){var e=[...arguments],r=t.renderer.apply(this,e);return r===!1&&(r=n.apply(this,e)),r}:e.renderers[t.name]=t.renderer}if(t.tokenizer){if(!t.level||t.level!==`block`&&t.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);e[t.level]?e[t.level].unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&(t.level===`block`?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:t.level===`inline`&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}t.childTokens&&(e.childTokens[t.name]=t.childTokens)}),n.extensions=e),t.renderer&&(function(){var e=H.defaults.renderer||new re,r=function(n){var r=e[n];e[n]=function(){var i=[...arguments],a=t.renderer[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.renderer)r(i);n.renderer=e})(),t.tokenizer&&(function(){var e=H.defaults.tokenizer||new ne,r=function(n){var r=e[n];e[n]=function(){var i=[...arguments],a=t.tokenizer[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.tokenizer)r(i);n.tokenizer=e})(),t.hooks&&(function(){var e=H.defaults.hooks||new oe,r=function(n){var r=e[n];oe.passThroughHooks.has(n)?e[n]=function(i){if(H.defaults.async)return Promise.resolve(t.hooks[n].call(e,i)).then(function(t){return r.call(e,t)});var a=t.hooks[n].call(e,i);return r.call(e,a)}:e[n]=function(){var i=[...arguments],a=t.hooks[n].apply(e,i);return a===!1&&(a=r.apply(e,i)),a}};for(var i in t.hooks)r(i);n.hooks=e})(),t.walkTokens){var i=H.defaults.walkTokens;n.walkTokens=function(e){var n=[];return n.push(t.walkTokens.call(this,e)),i&&(n=n.concat(i.call(this,e))),n}}H.setOptions(n)})},H.walkTokens=function(e,t){for(var n=[],r=function(){var e=a.value;switch(n=n.concat(t.call(H,e)),e.type){case`table`:for(var r=o(e.header),i;!(i=r()).done;){var s=i.value;n=n.concat(H.walkTokens(s.tokens,t))}for(var c=o(e.rows),l;!(l=c()).done;)for(var u=l.value,d=o(u),f;!(f=d()).done;){var p=f.value;n=n.concat(H.walkTokens(p.tokens,t))}break;case`list`:n=n.concat(H.walkTokens(e.items,t));break;default:H.defaults.extensions&&H.defaults.extensions.childTokens&&H.defaults.extensions.childTokens[e.type]?H.defaults.extensions.childTokens[e.type].forEach(function(r){n=n.concat(H.walkTokens(e[r],t))}):e.tokens&&(n=n.concat(H.walkTokens(e.tokens,t)))}},i=o(e),a;!(a=i()).done;)r();return n},H.parseInline=ce(B.lexInline,ae.parseInline),H.Parser=ae,H.parser=ae.parse,H.Renderer=re,H.TextRenderer=V,H.Lexer=B,H.lexer=B.lex,H.Tokenizer=ne,H.Slugger=ie,H.Hooks=oe,H.parse=H;var le=H.options,ue=H.setOptions,U=H.use,de=H.walkTokens,fe=H.parseInline,pe=H,me=ae.parse,he=B.lex;e.Hooks=oe,e.Lexer=B,e.Parser=ae,e.Renderer=re,e.Slugger=ie,e.TextRenderer=V,e.Tokenizer=ne,e.getDefaults=l,e.lexer=he,e.marked=H,e.options=le,e.parse=pe,e.parseInline=fe,e.parser=me,e.setOptions=ue,e.use=U,e.walkTokens=de})),ee=n(((e,t)=>{var n=g();_(),v(),y(),S(),C(),w(),T(),E(),D(),O(),b();var r=j(),i=M().marked,a=/Mac/.test(navigator.platform),o=new RegExp(/()+?/g),s={toggleBold:P,toggleItalic:te,drawLink:le,toggleHeadingSmaller:L,toggleHeadingBigger:R,drawImage:ue,toggleBlockquote:I,toggleOrderedList:se,toggleUnorderedList:oe,toggleCheckList:ce,toggleCodeBlock:ne,togglePreview:ve,toggleStrikethrough:F,toggleHeading1:z,toggleHeading2:B,toggleHeading3:re,toggleHeading4:V,toggleHeading5:ie,toggleHeading6:ae,cleanBlock:H,drawTable:pe,drawHorizontalRule:me,undo:he,redo:ge,toggleSideBySide:_e,toggleFullScreen:N},c={toggleBold:`Cmd-B`,toggleItalic:`Cmd-I`,drawLink:`Cmd-K`,toggleHeadingSmaller:`Cmd-H`,toggleHeadingBigger:`Shift-Cmd-H`,toggleHeading1:`Ctrl+Alt+1`,toggleHeading2:`Ctrl+Alt+2`,toggleHeading3:`Ctrl+Alt+3`,toggleHeading4:`Ctrl+Alt+4`,toggleHeading5:`Ctrl+Alt+5`,toggleHeading6:`Ctrl+Alt+6`,cleanBlock:`Cmd-E`,drawImage:`Cmd-Alt-I`,toggleBlockquote:`Cmd-'`,toggleOrderedList:`Cmd-Alt-L`,toggleUnorderedList:`Cmd-L`,toggleCheckList:`Shift-Cmd-L`,toggleCodeBlock:`Cmd-Alt-C`,togglePreview:`Cmd-P`,toggleSideBySide:`F9`,toggleFullScreen:`F11`},l=function(e){for(var t in s)if(s[t]===e)return t;return null},u=function(){var e=!1;return(function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(t.substr(0,4)))&&(e=!0)})(navigator.userAgent||navigator.vendor||window.opera),e};function d(e){for(var t;(t=o.exec(e))!==null;){var n=t[0];if(n.indexOf(`target=`)===-1){var r=n.replace(/>$/,` target="_blank">`);e=e.replace(n,r)}}return e}function f(e){for(var t=new DOMParser().parseFromString(e,`text/html`),n=t.getElementsByTagName(`li`),r=0;r0){for(var m=document.createElement(`i`),h=0;h=0&&(u=o.getLineHandle(f),!n(u));f--);var _=r(o.getTokenAt({line:f,ch:1})).fencedChars,v,y,b,x;n(o.getLineHandle(s.line))?(v=``,y=s.line):n(o.getLineHandle(s.line-1))?(v=``,y=s.line-1):(v=_+` -`,y=s.line),n(o.getLineHandle(c.line))?(b=``,x=c.line,c.ch===0&&(x+=1)):c.ch!==0&&n(o.getLineHandle(c.line+1))?(b=``,x=c.line+1):(b=_+` -`,x=c.line+1),c.ch===0&&--x,o.operation(function(){o.replaceRange(b,{line:x,ch:0},{line:x+ +!b,ch:0}),o.replaceRange(v,{line:y,ch:0},{line:y+ +!v,ch:0})}),o.setSelection({line:y+ +!!v,ch:0},{line:x+(v?1:-1),ch:0}),o.focus()}else{var S=s.line;if(n(o.getLineHandle(s.line))&&(i(o,s.line+1)===`fenced`?(f=s.line,S=s.line+1):(p=s.line,S=s.line-1)),f===void 0)for(f=S;f>=0&&(u=o.getLineHandle(f),!n(u));f--);if(p===void 0)for(m=o.lineCount(),p=S;p=0;f--)if(u=o.getLineHandle(f),!u.text.match(/^\s*$/)&&i(o,f,u)!==`indented`){f+=1;break}for(m=o.lineCount(),p=s.line;p\s+/,"unordered-list":r,"ordered-list":r,"check-list":/^(\s*)(- \[[ xX]])(\s+)/},l=function(e,t){return{quote:`>`,"unordered-list":n,"ordered-list":`%%i.`,"check-list":`- [ ]`}[e].replace(`%%i`,t)},u=function(e,t){var r={quote:`>`,"unordered-list":`\\`+n,"ordered-list":`\\d+.`,"check-list":`- \\[[ xX]]`},i=new RegExp(r[e]);return t&&i.test(t)},d=function(e,t,n){var a=r.exec(t),o=l(e,f);return a===null?n==0&&(t=o+` `+t):(u(e,a[2])&&(o=``),t=a[1]+o+a[3]+t.replace(i,``).replace(c[e],`$1`)),t},f=1,p=[`unordered-list`,`ordered-list`,`check-list`],m=Object.keys(a)[0];if(!p.includes(m)){var h=e.getLine(o.line);/^\s*- \[[ xX]]\s/.test(h)?m=`check-list`:/^\s*\d+\.\s/.test(h)?m=`ordered-list`:/^\s*[*\-+]\s/.test(h)&&(m=`unordered-list`)}for(var g=o.line;g<=s.line;g++)(function(n){var r=e.getLine(n);a[t]?r=r.replace(c[t],`$1`):p.includes(m)&&p.includes(t)?(r=r.replace(c[m],`$1`),r=d(t,r,!1),f+=1):(r=d(t,r,!1),f+=1),e.replaceRange(r,{line:n,ch:0},{line:n,ch:99999999999999})})(g);e.focus()}}function Se(e,t,n,r){if(!(!e.codemirror||e.isPreviewActive())){var i=e.codemirror,a=A(i)[t];if(!a){ye(i,a,n,r);return}var o=i.getCursor(`start`),s=i.getCursor(`end`),c=i.getLine(o.line),l=c.slice(0,o.ch),u=c.slice(o.ch);t==`link`?l=l.replace(/(.*)[^!]\[/,`$1`):t==`image`&&(l=l.replace(/(.*)!\[$/,`$1`)),u=u.replace(/]\(.*?\)/,``),i.replaceRange(l+u,{line:o.line,ch:0},{line:o.line,ch:99999999999999}),o.ch-=n[0].length,o!==s&&(s.ch-=n[0].length),i.setSelection(o,s),i.focus()}}function Ce(e,t,n,r){if(!(!e.codemirror||e.isPreviewActive())){r=r===void 0?n:r;var i=e.codemirror,a=A(i),o,s=n,c=r,l=i.getCursor(`start`),u=i.getCursor(`end`);a[t]?(o=i.getLine(l.line),s=o.slice(0,l.ch),c=o.slice(l.ch),t==`bold`?(s=s.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,``),c=c.replace(/(\*\*|__)/,``)):t==`italic`?(s=s.replace(/(\*|_)(?![\s\S]*(\*|_))/,``),c=c.replace(/(\*|_)/,``)):t==`strikethrough`&&(s=s.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,``),c=c.replace(/(\*\*|~~)/,``)),i.replaceRange(s+c,{line:l.line,ch:0},{line:l.line,ch:99999999999999}),t==`bold`||t==`strikethrough`?(l.ch-=2,l!==u&&(u.ch-=2)):t==`italic`&&(--l.ch,l!==u&&--u.ch)):(o=i.getSelection(),t==`bold`?(o=o.split(`**`).join(``),o=o.split(`__`).join(``)):t==`italic`?(o=o.split(`*`).join(``),o=o.split(`_`).join(``)):t==`strikethrough`&&(o=o.split(`~~`).join(``)),i.replaceSelection(s+o+c),l.ch+=n.length,u.ch=l.ch+o.length),i.setSelection(l,u),i.focus()}}function we(e){if(!e.getWrapperElement().lastChild.classList.contains(`editor-preview-active`))for(var t=e.getCursor(`start`),n=e.getCursor(`end`),r,i=t.line;i<=n.line;i++)r=e.getLine(i),r=r.replace(/^[ ]*([# ]+|\*|-|[> ]+|[0-9]+(.|\)))[ ]*/,``),e.replaceRange(r,{line:i,ch:0},{line:i,ch:99999999999999})}function Te(e,t){if(Math.abs(e)<1024)return``+e+t[0];var n=0;do e/=1024,++n;while(Math.abs(e)>=1024&&n=19968?n+=t[r].length:n+=1;return n}var W={bold:`fa fa-bold`,italic:`fa fa-italic`,strikethrough:`fa fa-strikethrough`,heading:`fa fa-header fa-heading`,"heading-smaller":`fa fa-header fa-heading header-smaller`,"heading-bigger":`fa fa-header fa-heading header-bigger`,"heading-1":`fa fa-header fa-heading header-1`,"heading-2":`fa fa-header fa-heading header-2`,"heading-3":`fa fa-header fa-heading header-3`,code:`fa fa-code`,quote:`fa fa-quote-left`,"ordered-list":`fa fa-list-ol`,"unordered-list":`fa fa-list-ul`,"check-list":`fa fa-check-square-o`,"clean-block":`fa fa-eraser`,link:`fa fa-link`,image:`fa fa-image`,"upload-image":`fa fa-image`,table:`fa fa-table`,"horizontal-rule":`fa fa-minus`,preview:`fa fa-eye`,"side-by-side":`fa fa-columns`,fullscreen:`fa fa-arrows-alt`,guide:`fa fa-question-circle`,undo:`fa fa-undo`,redo:`fa fa-repeat fa-redo`},ke={bold:{name:`bold`,action:P,className:W.bold,title:`Bold`,default:!0},italic:{name:`italic`,action:te,className:W.italic,title:`Italic`,default:!0},strikethrough:{name:`strikethrough`,action:F,className:W.strikethrough,title:`Strikethrough`},heading:{name:`heading`,action:L,className:W.heading,title:`Heading`,default:!0},"heading-smaller":{name:`heading-smaller`,action:L,className:W[`heading-smaller`],title:`Smaller Heading`},"heading-bigger":{name:`heading-bigger`,action:R,className:W[`heading-bigger`],title:`Bigger Heading`},"heading-1":{name:`heading-1`,action:z,className:W[`heading-1`],title:`Big Heading`},"heading-2":{name:`heading-2`,action:B,className:W[`heading-2`],title:`Medium Heading`},"heading-3":{name:`heading-3`,action:re,className:W[`heading-3`],title:`Small Heading`},"separator-1":{name:`separator-1`},code:{name:`code`,action:ne,className:W.code,title:`Code`},quote:{name:`quote`,action:I,className:W.quote,title:`Quote`,default:!0},"unordered-list":{name:`unordered-list`,action:oe,className:W[`unordered-list`],title:`Generic List`,default:!0},"ordered-list":{name:`ordered-list`,action:se,className:W[`ordered-list`],title:`Numbered List`,default:!0},"check-list":{name:`check-list`,action:ce,className:W[`check-list`],title:`Check List`,default:!0},"clean-block":{name:`clean-block`,action:H,className:W[`clean-block`],title:`Clean block`},"separator-2":{name:`separator-2`},link:{name:`link`,action:le,className:W.link,title:`Create Link`,default:!0},image:{name:`image`,action:ue,className:W.image,title:`Insert Image`,default:!0},"upload-image":{name:`upload-image`,action:de,className:W[`upload-image`],title:`Import an image`},table:{name:`table`,action:pe,className:W.table,title:`Insert Table`},"horizontal-rule":{name:`horizontal-rule`,action:me,className:W[`horizontal-rule`],title:`Insert Horizontal Line`},"separator-3":{name:`separator-3`},preview:{name:`preview`,action:ve,className:W.preview,noDisable:!0,title:`Toggle Preview`,default:!0},"side-by-side":{name:`side-by-side`,action:_e,className:W[`side-by-side`],noDisable:!0,noMobile:!0,title:`Toggle Side by Side`,default:!0},fullscreen:{name:`fullscreen`,action:N,className:W.fullscreen,noDisable:!0,noMobile:!0,title:`Toggle Fullscreen`,default:!0},"separator-4":{name:`separator-4`},guide:{name:`guide`,action:`https://www.markdownguide.org/basic-syntax/`,className:W.guide,noDisable:!0,title:`Markdown Guide`,default:!0},"separator-5":{name:`separator-5`},undo:{name:`undo`,action:he,className:W.undo,noDisable:!0,title:`Undo`},redo:{name:`redo`,action:ge,className:W.redo,noDisable:!0,title:`Redo`}},Ae={link:[`[`,`](#url#)`],image:[`![`,`](#url#)`],uploadedImage:[`![](#url#)`,``],table:[``,` - -| Column 1 | Column 2 | Column 3 | -| -------- | -------- | -------- | -| Text | Text | Text | - -`],horizontalRule:[``,` - ------ - -`]},je={link:`URL for the link:`,image:`URL of the image:`},Me={locale:`en-US`,format:{hour:`2-digit`,minute:`2-digit`}},Ne={bold:`**`,code:"```",italic:`*`},Pe={sbInit:`Attach files by drag and dropping or pasting from clipboard.`,sbOnDragEnter:`Drop image to upload it.`,sbOnDrop:`Uploading image #images_names#...`,sbProgress:`Uploading #file_name#: #progress#%`,sbOnUploaded:`Uploaded #image_name#`,sizeUnits:` B, KB, MB`},Fe={noFileGiven:`You must select a file.`,typeNotAllowed:`This image type is not allowed.`,fileTooLarge:`Image #image_name# is too big (#image_size#). -Maximum file size is #image_max_size#.`,importError:`Something went wrong when uploading the image #image_name#.`};function G(e){e||={},e.parent=this;var t=!0;if(e.autoDownloadFontAwesome===!1&&(t=!1),e.autoDownloadFontAwesome!==!0)for(var n=document.styleSheets,r=0;r-1&&(t=!1);if(t){var i=document.createElement(`link`);i.rel=`stylesheet`,i.href=`https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css`,document.getElementsByTagName(`head`)[0].appendChild(i)}if(e.element)this.element=e.element;else if(e.element===null){console.log(`EasyMDE: Error. No element was found.`);return}if(e.toolbar===void 0)for(var a in e.toolbar=[],ke)Object.prototype.hasOwnProperty.call(ke,a)&&(a.indexOf(`separator-`)!=-1&&e.toolbar.push(`|`),(ke[a].default===!0||e.showIcons&&e.showIcons.constructor===Array&&e.showIcons.indexOf(a)!=-1)&&e.toolbar.push(a));if(Object.prototype.hasOwnProperty.call(e,`previewClass`)||(e.previewClass=`editor-preview`),Object.prototype.hasOwnProperty.call(e,`status`)||(e.status=[`autosave`,`lines`,`words`,`cursor`],e.uploadImage&&e.status.unshift(`upload-image`)),e.previewRender||=function(e){return this.parent.markdown(e)},e.parsingConfig=De({highlightFormatting:!0},e.parsingConfig||{}),e.insertTexts=De({},Ae,e.insertTexts||{}),e.promptTexts=De({},je,e.promptTexts||{}),e.blockStyles=De({},Ne,e.blockStyles||{}),e.autosave!=null&&(e.autosave.timeFormat=De({},Me,e.autosave.timeFormat||{})),e.iconClassMap=De({},W,e.iconClassMap||{}),e.shortcuts=De({},c,e.shortcuts||{}),e.maxHeight=e.maxHeight||void 0,e.direction=e.direction||`ltr`,e.maxHeight===void 0?e.minHeight=e.minHeight||`300px`:e.minHeight=e.maxHeight,e.errorCallback=e.errorCallback||function(e){alert(e)},e.uploadImage=e.uploadImage||!1,e.imageMaxSize=e.imageMaxSize||2097152,e.imageAccept=e.imageAccept||`image/png, image/jpeg, image/gif, image/avif`,e.imageTexts=De({},Pe,e.imageTexts||{}),e.errorMessages=De({},Fe,e.errorMessages||{}),e.imagePathAbsolute=e.imagePathAbsolute||!1,e.imageCSRFName=e.imageCSRFName||`csrfmiddlewaretoken`,e.imageCSRFHeader=e.imageCSRFHeader||!1,e.imageInputName=e.imageInputName||`image`,e.autosave!=null&&e.autosave.unique_id!=null&&e.autosave.unique_id!=``&&(e.autosave.uniqueId=e.autosave.unique_id),e.overlayMode&&e.overlayMode.combine===void 0&&(e.overlayMode.combine=!0),this.options=e,this.render(),e.initialValue&&(!this.options.autosave||this.options.autosave.foundSavedValue!==!0)&&this.value(e.initialValue),e.uploadImage){var o=this;this.codemirror.on(`dragenter`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragend`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragleave`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbInit),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`dragover`,function(e,t){o.updateStatusBar(`upload-image`,o.options.imageTexts.sbOnDragEnter),t.stopPropagation(),t.preventDefault()}),this.codemirror.on(`drop`,function(t,n){n.stopPropagation(),n.preventDefault(),e.imageUploadFunction?o.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.dataTransfer.files):o.uploadImages(n.dataTransfer.files)}),this.codemirror.on(`paste`,function(t,n){e.imageUploadFunction?o.uploadImagesUsingCustomFunction(e.imageUploadFunction,n.clipboardData.files):o.uploadImages(n.clipboardData.files)})}}G.prototype.uploadImages=function(e,t,n){if(e.length!==0){for(var r=[],i=0;i=2){var i=r[1];if(t.imagesPreviewHandler){var a=t.imagesPreviewHandler(r[1]);typeof a==`string`&&(i=a)}if(window.EMDEimagesCache[i])v(n,window.EMDEimagesCache[i]);else{window.EMDEimagesCache[i]={};var o=document.createElement(`img`);o.onload=function(){window.EMDEimagesCache[i]={naturalWidth:o.naturalWidth,naturalHeight:o.naturalHeight,url:i},v(n,window.EMDEimagesCache[i])},o.src=i}}}})}this.codemirror.on(`update`,function(){y()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(t.autofocus===!0||e.autofocus)&&this.codemirror.focus();var b=this.codemirror;setTimeout(function(){b.refresh()}.bind(b),0)},G.prototype.cleanup=function(){document.removeEventListener(`keydown`,this.documentOnKeyDown)};function Ie(){if(typeof localStorage==`object`)try{localStorage.setItem(`smde_localStorage`,1),localStorage.removeItem(`smde_localStorage`)}catch{return!1}else return!1;return!0}G.prototype.autosave=function(){if(Ie()){var e=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==``){console.log(`EasyMDE: You must set a uniqueId to use the autosave feature`);return}this.options.autosave.binded!==!0&&(e.element.form!=null&&e.element.form!=null&&e.element.form.addEventListener(`submit`,function(){clearTimeout(e.autosaveTimeoutId),e.autosaveTimeoutId=void 0,localStorage.removeItem(`smde_`+e.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem(`smde_`+this.options.autosave.uniqueId)==`string`&&localStorage.getItem(`smde_`+this.options.autosave.uniqueId)!=``&&(this.codemirror.setValue(localStorage.getItem(`smde_`+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var t=e.value();t===``?localStorage.removeItem(`smde_`+this.options.autosave.uniqueId):localStorage.setItem(`smde_`+this.options.autosave.uniqueId,t);var n=document.getElementById(`autosaved`);if(n!=null&&n!=null&&n!=``){var r=new Date,i=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,`en-US`],this.options.autosave.timeFormat.format).format(r);n.innerHTML=(this.options.autosave.text==null?`Autosaved: `:this.options.autosave.text)+i}}else console.log(`EasyMDE: localStorage not available, cannot autosave`)},G.prototype.clearAutosavedValue=function(){if(Ie()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==``){console.log(`EasyMDE: You must set a uniqueId to clear the autosave value`);return}localStorage.removeItem(`smde_`+this.options.autosave.uniqueId)}else console.log(`EasyMDE: localStorage not available, cannot autosave`)},G.prototype.openBrowseFileWindow=function(e,t){var n=this,r=this.gui.toolbar.getElementsByClassName(`imageInput`)[0];r.click();function i(a){n.options.imageUploadFunction?n.uploadImagesUsingCustomFunction(n.options.imageUploadFunction,a.target.files):n.uploadImages(a.target.files,e,t),r.removeEventListener(`change`,i)}r.addEventListener(`change`,i)},G.prototype.uploadImage=function(e,t,n){var r=this;t||=function(e){fe(r,e)};function i(e){r.updateStatusBar(`upload-image`,e),setTimeout(function(){r.updateStatusBar(`upload-image`,r.options.imageTexts.sbInit)},1e4),n&&typeof n==`function`&&n(e),r.options.errorCallback(e)}function a(t){var n=r.options.imageTexts.sizeUnits.split(`,`);return t.replace(`#image_name#`,e.name).replace(`#image_size#`,Te(e.size,n)).replace(`#image_max_size#`,Te(r.options.imageMaxSize,n))}if(e.size>this.options.imageMaxSize){i(a(this.options.errorMessages.fileTooLarge));return}var o=new FormData;o.append(`image`,e),r.options.imageCSRFToken&&!r.options.imageCSRFHeader&&o.append(r.options.imageCSRFName,r.options.imageCSRFToken);var s=new XMLHttpRequest;s.upload.onprogress=function(t){if(t.lengthComputable){var n=``+Math.round(t.loaded*100/t.total);r.updateStatusBar(`upload-image`,r.options.imageTexts.sbProgress.replace(`#file_name#`,e.name).replace(`#progress#`,n))}},s.open(`POST`,this.options.imageUploadEndpoint),r.options.imageCSRFToken&&r.options.imageCSRFHeader&&s.setRequestHeader(r.options.imageCSRFName,r.options.imageCSRFToken),s.onload=function(){try{var e=JSON.parse(this.responseText)}catch{console.error(`EasyMDE: The server did not return a valid json.`),i(a(r.options.errorMessages.importError));return}this.status===200&&e&&!e.error&&e.data&&e.data.filePath?t((r.options.imagePathAbsolute?``:window.location.origin+`/`)+e.data.filePath):e.error&&e.error in r.options.errorMessages?i(a(r.options.errorMessages[e.error])):e.error?i(a(e.error)):(console.error(`EasyMDE: Received an unexpected response after uploading the image.`+this.status+` (`+this.statusText+`)`),i(a(r.options.errorMessages.importError)))},s.onerror=function(e){console.error(`EasyMDE: An unexpected error occurred when trying to upload the image.`+e.target.status+` (`+e.target.statusText+`)`),i(r.options.errorMessages.importError)},s.send(o)},G.prototype.uploadImageUsingCustomFunction=function(e,t){var n=this;function r(e){fe(n,e)}function i(e){var t=a(e);n.updateStatusBar(`upload-image`,t),setTimeout(function(){n.updateStatusBar(`upload-image`,n.options.imageTexts.sbInit)},1e4),n.options.errorCallback(t)}function a(e){var r=n.options.imageTexts.sizeUnits.split(`,`);return e.replace(`#image_name#`,t.name).replace(`#image_size#`,Te(t.size,r)).replace(`#image_max_size#`,Te(n.options.imageMaxSize,r))}e.apply(this,[t,r,i])},G.prototype.setPreviewMaxHeight=function(){var e=this.codemirror.getWrapperElement(),t=e.nextSibling,n=parseInt(window.getComputedStyle(e).paddingTop),r=parseInt(window.getComputedStyle(e).borderTopWidth),i=(parseInt(this.options.maxHeight)+n*2+r*2).toString()+`px`;t.style.height=i},G.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;if(!n||!n.classList.contains(`editor-preview-side`)){if(n=document.createElement(`div`),n.className=`editor-preview-side`,this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var r=0;r`simplemde-editor-${++te}`,ne=({options:e,id:t,currentValueRef:n,textRef:r})=>{let[i,a]=(0,N.useState)(null),o=(0,N.useCallback)((t,n,r)=>{let i=e?.imageUploadFunction;i&&i(t,e=>{n(e)},r)},[e?.imageUploadFunction]),s=(0,N.useRef)(i);return s.current=i,(0,N.useEffect)(()=>{let t;if(r){let i={element:r,initialValue:n.current},s=e?.imageUploadFunction?o:void 0;t=new P.default(Object.assign({},i,e,{imageUploadFunction:s})),a(t)}return()=>{t?.toTextArea(),t?.cleanup()}},[r,n,t,o,e]),{editor:i,codemirror:(0,N.useMemo)(()=>i?.codemirror,[i?.codemirror])}},I=N.forwardRef((e,t)=>{let{events:n,value:r,options:i,children:a,extraKeys:o,getLineAndCursor:s,getMdeInstance:c,getCodemirrorInstance:l,onChange:u,id:d,placeholder:f,textareaProps:p,...m}=e,h=(0,N.useMemo)(()=>d??F(),[d]),g=(0,N.useRef)(null),_=(0,N.useRef)(!0),v=(0,N.useRef)(r);v.current=r;let[y,b]=(0,N.useState)(null),{editor:x,codemirror:S}=ne({options:i,id:h,currentValueRef:v,textRef:y});(0,N.useEffect)(()=>{_.current&&x?.value(r??``),_.current=!0},[x,r]);let C=(0,N.useCallback)((e,t)=>{x?.value()!==v.current&&(_.current=!1,u?.(x?.value()??``,t))},[x,u]);(0,N.useEffect)(()=>{i?.autofocus&&(S?.focus(),S?.setCursor(S?.lineCount(),0))},[S,i?.autofocus]);let w=(0,N.useCallback)(()=>{S&&s?.(S.getDoc().getCursor())},[S,s]);(0,N.useEffect)(()=>{w()},[w]),(0,N.useEffect)(()=>{x&&c?.(x)},[x,c]),(0,N.useEffect)(()=>{S&&l?.(S)},[S,l,c]),(0,N.useEffect)(()=>{o&&S&&S.setOption(`extraKeys`,Object.assign({},S.getOption(`extraKeys`),o))},[S,o]),(0,N.useEffect)(()=>{let e=g.current?.getElementsByClassName(`editor-toolbarNode`)[0],t=S&&C;return t?(e?.addEventListener(`click`,t),()=>{e?.removeEventListener(`click`,t)}):()=>{}},[S,C]),(0,N.useEffect)(()=>(S?.on(`change`,C),S?.on(`cursorActivity`,w),()=>{S?.off(`change`,C),S?.off(`cursorActivity`,w)}),[S,w,C]);let T=(0,N.useRef)(n);return(0,N.useEffect)(()=>(n!==T.current&&T.current&&Object.entries(T.current).forEach(([e,t])=>{t&&S?.off(e,t)}),n&&Object.entries(n).forEach(([e,t])=>{t&&S?.on(e,t)}),T.current=n,()=>{n&&Object.entries(n).forEach(([e,t])=>{t&&S?.off(e,t)})}),[S,n]),N.createElement(`div`,{id:`${h}-wrapper`,...m,ref:e=>{typeof t==`function`?t(e):t&&(t.current=e),g.current=e}},N.createElement(`textarea`,{...p,id:h,placeholder:f,ref:b,style:{display:`none`}}))});I.displayName=`SimpleMdeReact`;var L=I,R=f();function z({sessionId:e,note:t,isNew:n,initialMode:r,allFolders:f,onClose:g,onSaved:_,onDelete:v,pushToast:y}){let[b,x]=(0,N.useState)(r),[S,C]=(0,N.useState)(``),[w,T]=(0,N.useState)(!n),[E,D]=(0,N.useState)(!1),[O,k]=(0,N.useState)(null),[A,j]=(0,N.useState)(!1),[M,ee]=(0,N.useState)(t.folder??``);(0,N.useEffect)(()=>{if(n)return;let r=!1;return h.sessionNote(e,t.filename,t.folder).then(e=>{r||(C(e.content),T(!1))}).catch(()=>{r||(T(!1),y(`error`,`Failed to load ${t.filename}.md`))}),()=>{r=!0}},[e,t.filename,t.folder,n,y]);async function P(){D(!0),k(null);try{let r=!n&&M!==(t.folder??``);n?(await h.createSessionNote(e,t.filename,S,M),y(`success`,`${t.filename}.md created`)):r?(await h.createSessionNote(e,t.filename,S,M),await h.deleteSessionNote(e,t.filename,t.folder),y(`success`,`${t.filename}.md moved to ${M||`root`}`)):(await h.updateSessionNote(e,t.filename,S,t.folder),y(`success`,`${t.filename}.md saved`)),_(),g()}catch(e){k(String(e))}finally{D(!1)}}let te=M?`${M}/${t.filename}.md`:`${t.filename}.md`,F=t.folder?`/api/sessions/${e}/notes/${t.filename}?folder=${encodeURIComponent(t.folder)}&download=1`:`/api/sessions/${e}/notes/${t.filename}?download=1`;return(0,R.jsxs)(m,{isOpen:!0,onClose:g,disableClose:E,className:`note-modal`,title:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{className:`note-modal-icon`,children:(0,R.jsx)(l,{size:13})}),(0,R.jsx)(`span`,{className:`modal-name note-modal-name`,children:te}),(0,R.jsxs)(`div`,{className:`note-modal-header-actions`,children:[b===`edit`&&f.length>0&&(0,R.jsxs)(`select`,{name:`note-folder`,className:`note-modal-folder-select`,value:M,onChange:e=>ee(e.target.value),disabled:E,title:`Move to folder`,children:[(0,R.jsx)(`option`,{value:``,children:`/ root`}),f.map(e=>(0,R.jsxs)(`option`,{value:e,children:[e,`/`]},e))]}),b===`view`&&(0,R.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{j(!1),x(`edit`)},title:`Edit`,children:[(0,R.jsx)(a,{size:12}),` Edit`]}),b===`edit`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:P,disabled:E,children:[(0,R.jsx)(o,{size:12}),` `,E?`Saving…`:`Save`]}),!n&&(0,R.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{k(null),x(`view`)},disabled:E,title:`Switch to view`,children:[(0,R.jsx)(c,{size:12}),` View`]})]}),!n&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`a`,{className:`session-action-btn`,title:`Download`,href:F,download:`${t.filename}.md`,children:(0,R.jsx)(s,{size:12})}),(0,R.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete`,onClick:()=>{g(),v(t)},disabled:E,children:(0,R.jsx)(u,{size:12})})]})]})]}),children:[O&&(0,R.jsx)(`div`,{className:`session-notes-error`,children:O}),w?(0,R.jsx)(`p`,{className:`section-meta section-meta--padded`,children:`Loading…`}):b===`view`?(0,R.jsx)(`div`,{className:`session-notes-read-body note-modal-read-body`,children:S.trim()?(0,R.jsx)(d,{remarkPlugins:[p],children:S}):(0,R.jsx)(`p`,{className:`notes-empty-text`,children:`This note is empty. Click Edit to start writing.`})}):(0,R.jsxs)(`div`,{className:`note-modal-editor-wrap`,children:[!A&&(0,R.jsx)(`div`,{className:`editor-loading`,"aria-label":`Loading editor…`,children:(0,R.jsx)(i,{size:22,className:`spin`,color:`var(--green)`})}),(0,R.jsx)(`div`,{className:A?`editor-ready`:void 0,style:A?void 0:{position:`absolute`,visibility:`hidden`,pointerEvents:`none`,width:`100%`},children:(0,R.jsx)(L,{value:S,onChange:C,getMdeInstance:()=>j(!0),options:{spellChecker:!1,autofocus:!0,placeholder:`Write your notes in markdown…`,status:[`lines`,`words`],toolbar:[`bold`,`italic`,`heading`,`|`,`quote`,`unordered-list`,`ordered-list`,`|`,`link`,`code`,`table`,`|`,`preview`,`side-by-side`,`fullscreen`,`|`,`guide`]}})})]})]})}export{z as NoteModal}; \ No newline at end of file diff --git a/frontend/dashboard/assets/PayloadWorkbenchPage-BYxEjfeY.css b/frontend/dashboard/assets/PayloadWorkbenchPage-BYxEjfeY.css new file mode 100644 index 000000000..994454790 --- /dev/null +++ b/frontend/dashboard/assets/PayloadWorkbenchPage-BYxEjfeY.css @@ -0,0 +1 @@ +.ui-error-state{background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger);border-radius:var(--radius);align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.ui-error-state-message{flex:1}.ui-error-state-retry{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;transition:background var(--t-fast);background:0 0;flex-shrink:0;padding:4px 10px;font-size:11.5px;font-weight:600}.ui-error-state-retry:hover{background:color-mix(in srgb, var(--danger) 12%, transparent)}.ui-search-wrap{align-items:center;width:100%;max-width:320px;display:flex;position:relative}.ui-search-icon{color:var(--text-dim);pointer-events:none;position:absolute;left:10px}.ui-search-input{width:100%;max-width:none;padding-left:30px;padding-right:30px}.ui-search-clear{color:var(--text-dim);cursor:pointer;transition:color var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ui-search-clear:hover{color:var(--text-h)}.ui-tooltip-wrap{display:inline-flex;position:relative}.ui-tooltip{z-index:400;border-radius:var(--radius-xs);background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);white-space:nowrap;box-shadow:var(--shadow-sm);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--t-fast) var(--ease-out-expressive), transform var(--t-fast) var(--ease-out-expressive), visibility var(--t-fast);padding:4px 8px;font-size:11px;font-weight:500;transition-delay:0s;position:absolute;transform:translateY(2px)}.ui-tooltip-wrap:hover .ui-tooltip,.ui-tooltip-wrap:focus-within .ui-tooltip{opacity:1;visibility:visible;transition-delay:.35s;transform:translateY(0)}.ui-tooltip--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%,2px)}.ui-tooltip-wrap:hover .ui-tooltip--top,.ui-tooltip-wrap:focus-within .ui-tooltip--top{transform:translate(-50%)}.ui-tooltip--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%,-2px)}.ui-tooltip-wrap:hover .ui-tooltip--bottom,.ui-tooltip-wrap:focus-within .ui-tooltip--bottom{transform:translate(-50%)}.ui-tooltip--left{top:50%;right:calc(100% + 6px);transform:translate(2px,-50%)}.ui-tooltip-wrap:hover .ui-tooltip--left,.ui-tooltip-wrap:focus-within .ui-tooltip--left{transform:translateY(-50%)}.ui-tooltip--right{top:50%;left:calc(100% + 6px);transform:translate(-2px,-50%)}.ui-tooltip-wrap:hover .ui-tooltip--right,.ui-tooltip-wrap:focus-within .ui-tooltip--right{transform:translateY(-50%)}.ui-badge{border-radius:var(--radius-xs);white-space:nowrap;transition:background var(--t-fast), border-color var(--t-fast);align-items:center;gap:4px;padding:1px 8px;font-size:11px;font-weight:500;line-height:1.6;display:inline-flex}.ui-badge--neutral{color:var(--text-dim);background:var(--bg-card2);border:1px solid var(--border)}.ui-badge--success{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border:1px solid color-mix(in srgb, var(--success) 30%, transparent)}.ui-badge--danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent)}.ui-badge--warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent)}.ui-badge--info{color:var(--info);background:color-mix(in srgb, var(--info) 12%, transparent);border:1px solid color-mix(in srgb, var(--info) 30%, transparent)}.ui-badge--accent{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.payload-search-wrap{max-width:none;margin:0 10px 8px}.payload-page-state{flex:1;justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.verify-tool-desc{color:var(--text-dim);margin:0 0 10px;font-size:12px}.verify-result-output{background:var(--bg-card2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:240px;margin-top:10px;padding:10px 12px;font-size:12px;overflow:auto}.payload-category-label-static{width:100%;color:var(--text-dim);align-items:center;gap:6px;padding:5px 14px;display:flex}.payload-test-target{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.payload-test-target-toggle{cursor:pointer;width:100%;color:var(--text-h);background:0 0;border:none;align-items:center;gap:6px;padding:2px 0;font-size:12.5px;font-weight:600;display:flex}.payload-test-target-toggle:hover{color:var(--green)} diff --git a/frontend/dashboard/assets/PayloadWorkbenchPage-CA5GTKVr.js b/frontend/dashboard/assets/PayloadWorkbenchPage-CA5GTKVr.js new file mode 100644 index 000000000..93ebbb969 --- /dev/null +++ b/frontend/dashboard/assets/PayloadWorkbenchPage-CA5GTKVr.js @@ -0,0 +1,2 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{$ as t,$t as n,A as r,At as i,Dt as a,I as o,It as s,L as c,M as l,O as u,Q as d,St as f,Tt as p,Ut as m,Vt as h,Wt as g,Zt as _,_ as v,b as y,bt as b,c as x,ct as S,d as C,dt as w,ft as T,i as E,k as D,l as O,m as k,n as A,nn as j,tt as ee}from"./vendor-lucide-DUPkM7me.js";import{r as M}from"./vendor-markdown-BanIOC5U.js";import{t as N}from"./ActionButton-B1Vpk6pw.js";import{b as te,d as ne,n as re,u as ie,x as P}from"./index-DuJ0P36w.js";import{t as ae}from"./BrowserPage-BmNP5Bdw.js";import{t as F}from"./KpiStrip-L-nGhyMV.js";import{t as I}from"./LoadingState-D9XkNPEz.js";import{t as L}from"./EmptyState-Y8WsbUda.js";import{n as oe,t as se}from"./WorkbenchPage-B1nOEo-c.js";var R=e(j(),1),z=M();function B({message:e,onRetry:t}){return(0,z.jsxs)(`div`,{className:`ui-error-state`,children:[(0,z.jsx)(i,{size:15}),(0,z.jsx)(`span`,{className:`ui-error-state-message`,children:e}),t&&(0,z.jsx)(`button`,{type:`button`,className:`ui-error-state-retry press-feedback`,onClick:t,children:`Retry`})]})}function V({value:e,onChange:t,placeholder:n=`Search…`,className:r=``,inputRef:i}){return(0,z.jsxs)(`div`,{className:`ui-search-wrap${r?` ${r}`:``}`,children:[(0,z.jsx)(D,{size:13,className:`ui-search-icon`}),(0,z.jsx)(`input`,{ref:i,type:`text`,className:`input ui-search-input`,placeholder:n,value:e,onChange:e=>t(e.target.value)}),e&&(0,z.jsx)(`button`,{type:`button`,className:`ui-search-clear`,onClick:()=>t(``),"aria-label":`Clear search`,children:(0,z.jsx)(A,{size:13})})]})}function H({content:e,children:t,placement:n=`top`}){let r=(0,R.useId)(),i=(0,R.isValidElement)(t)?(0,R.cloneElement)(t,{"aria-describedby":r}):t;return(0,z.jsxs)(`span`,{className:`ui-tooltip-wrap`,children:[i,(0,z.jsx)(`span`,{id:r,role:`tooltip`,className:`ui-tooltip ui-tooltip--${n}`,children:e})]})}function ce({output:e}){let[t,n]=(0,R.useState)(!1),[r,i]=(0,R.useState)(``),[a,o]=(0,R.useState)(`GET`),[c,u]=(0,R.useState)(!1),[d,f]=(0,R.useState)(null),[g,_]=(0,R.useState)(null),v=(0,R.useMemo)(()=>e.split(` +`).filter(e=>e.trim().length>0),[e]),[y,b]=(0,R.useState)(v[0]??``),[x,S]=(0,R.useState)(e);e!==x&&(S(e),b(v[0]??``));let C=v.length>1?y:v[0]??``;async function w(){if(!(!r.trim()||!C)){u(!0),f(null),_(null);try{let e=await P.testPayloadAgainstTarget(C,r.trim(),a);if(!e.success||!e.ai_analysis){f(e.error??`Test failed.`);return}_({potentialVulnerability:e.ai_analysis.potential_vulnerability,responseSize:e.ai_analysis.response_size,recommendations:e.ai_analysis.recommendations})}catch(e){f(String(e))}finally{u(!1)}}}return(0,z.jsxs)(`div`,{className:`payload-test-target`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`payload-test-target-toggle`,onClick:()=>n(e=>!e),children:[t?(0,z.jsx)(m,{size:12}):(0,z.jsx)(h,{size:12}),(0,z.jsx)(p,{size:12}),`Test against target`]}),t&&(0,z.jsxs)(z.Fragment,{children:[v.length>1&&(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Payload line to test`}),(0,z.jsx)(`select`,{className:`input input-full mono`,value:y,onChange:e=>b(e.target.value),children:v.map((e,t)=>(0,z.jsx)(`option`,{value:e,children:e.length>80?`${e.slice(0,80)}…`:e},t))}),(0,z.jsx)(`span`,{className:`workbench-field-hint`,children:`Output has multiple lines — pick which one to send to the target.`})]}),(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Target URL *`}),(0,z.jsx)(`input`,{className:`input input-full mono`,placeholder:`http://127.0.0.1:PORT/path?param=val`,value:r,onChange:e=>i(e.target.value)}),(0,z.jsx)(`span`,{className:`workbench-field-hint`,children:`A live target you're authorized to test — e.g. an OctoRig lab.`})]}),(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Method`}),(0,z.jsxs)(`select`,{className:`input input-full`,value:a,onChange:e=>o(e.target.value),children:[(0,z.jsx)(`option`,{value:`GET`,children:`GET`}),(0,z.jsx)(`option`,{value:`POST`,children:`POST`})]})]}),(0,z.jsx)(`div`,{className:`workbench-actions`,children:(0,z.jsx)(N,{variant:`primary`,onClick:w,disabled:c||!r.trim(),children:c?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(l,{size:13,className:`spin`}),` Testing…`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(p,{size:13}),` Test`]})})}),d&&(0,z.jsx)(B,{message:d}),g&&(0,z.jsxs)(`div`,{className:`workbench-note`,children:[g.potentialVulnerability?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{size:12,color:`var(--red)`,style:{verticalAlign:-2,marginRight:4}}),`Payload was reflected in the response (response size: `,g.responseSize,` bytes).`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(s,{size:12,color:`var(--green)`,style:{verticalAlign:-2,marginRight:4}}),`No naive reflection detected (response size: `,g.responseSize,` bytes).`]}),g.recommendations.length>0&&(0,z.jsx)(`ul`,{children:g.recommendations.map((e,t)=>(0,z.jsx)(`li`,{children:e},t))})]})]})]})}function le({operation:e,onAddToRecipe:t,initialInput:n}){let[r,i]=(0,R.useState)(()=>Object.fromEntries(e.params.map(e=>[e.name,e.name===`input`&&n?n:String(e.default??``)]))),[s,c]=(0,R.useState)(!1),[p,m]=(0,R.useState)(!1),[h,_]=(0,R.useState)(null),[v,y]=(0,R.useState)(null),[b,x]=(0,R.useState)(void 0),[S,C]=(0,R.useState)(null),[w,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)(!1),{pushToast:O}=te();function k(e,t){i(n=>({...n,[e]:t}))}async function A(){m(!0),_(null),y(null),x(void 0),C(null);try{let t=await P.payloadWorkbenchRun(e.id,r);if(!t.success){_(t.error??`Operation failed.`);return}y(t.output??``),x(t.output_mime),C(t.note??null)}catch(e){_(String(e))}finally{m(!1)}}function j(){if(v){if(!navigator.clipboard){O(`error`,`Clipboard is unavailable in this context.`);return}navigator.clipboard.writeText(v).then(()=>{T(!0),setTimeout(()=>T(!1),2e3)}).catch(()=>O(`error`,`Failed to copy output.`))}}function ee(){let{input:n,...i}=r;t(e,i,n??``),D(!0),setTimeout(()=>D(!1),1500)}let M=!p&&e.params.every(e=>!e.required||r[e.name]?.trim());function ne(e){(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&M&&(e.preventDefault(),A())}return(0,z.jsxs)(`div`,{className:`workbench-op-body`,onKeyDown:ne,children:[(0,z.jsx)(`div`,{className:`section-header`,children:(0,z.jsx)(`h3`,{children:e.name})}),(0,z.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,z.jsx)(`p`,{className:`verify-tool-desc`,children:e.description}),(0,z.jsx)(`div`,{className:`workbench-form`,children:e.params.filter(e=>!e.hidden).map(e=>(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsxs)(`span`,{className:`workbench-field-label`,children:[e.label,e.required?` *`:``]}),e.type===`textarea`&&(0,z.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:r[e.name]??``,onChange:t=>k(e.name,t.target.value),rows:4}),e.type===`select`&&(0,z.jsx)(`select`,{className:`input input-full`,value:r[e.name]??``,onChange:t=>k(e.name,t.target.value),children:(e.choices??[]).map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))}),(e.type===`text`||e.type===`number`)&&(0,z.jsx)(`input`,{className:`input input-full mono`,type:e.type,value:r[e.name]??``,onChange:t=>k(e.name,t.target.value)}),e.help_text&&(0,z.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name))}),(0,z.jsxs)(`div`,{className:`workbench-actions`,children:[(0,z.jsx)(N,{variant:`primary`,onClick:A,disabled:!M,children:p?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(l,{size:13,className:`spin`}),` Running…`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{size:13}),` Run`]})}),(0,z.jsx)(H,{content:`Add this operation (with its current settings) to the recipe`,children:(0,z.jsx)(N,{variant:`secondary`,onClick:ee,children:E?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(g,{size:13,color:`var(--green)`}),` Added`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(d,{size:13}),` Add to Recipe`]})})})]}),h&&(0,z.jsx)(B,{message:h}),v!==null&&(0,z.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,z.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Output`}),(0,z.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,z.jsx)(H,{content:`Copy output`,children:(0,z.jsx)(N,{variant:`icon`,onClick:j,"aria-label":`Copy output`,children:w?(0,z.jsx)(g,{size:12,color:`var(--green)`}):(0,z.jsx)(a,{size:12})})}),(0,z.jsx)(H,{content:`Download output`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>oe(v,b,e.id),"aria-label":`Download output`,children:(0,z.jsx)(f,{size:12})})}),(0,z.jsx)(H,{content:`Send output to Loot`,placement:`left`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>c(!0),"aria-label":`Send output to Loot`,children:(0,z.jsx)(u,{size:12})})})]})]}),(0,z.jsx)(`pre`,{className:`verify-result-output mono`,children:v}),S&&(0,z.jsx)(`div`,{className:`workbench-note`,children:S}),(0,z.jsx)(ce,{output:v})]}),v!==null&&(0,z.jsx)(se,{isOpen:s,onClose:()=>c(!1),defaultTitle:`${e.name} output`,content:v,sourceTool:`payload-workbench`})]})]})}function ue(e){let t=e.map(e=>({operation_id:e.operationId,params:e.params})),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json;charset=utf-8`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`payload-workbench-recipe.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}function de(e,t){let n=JSON.parse(e);if(!Array.isArray(n))throw Error(`Expected a JSON array of recipe steps.`);let r=0;return{steps:n.map(e=>{let n=t.find(t=>t.id===e.operation_id);return n?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:n.name,params:e.params??{}}:(r++,null)}).filter(e=>e!==null),skipped:r}}function fe({tone:e=`neutral`,children:t,className:n=``}){return(0,z.jsx)(`span`,{className:`ui-badge ui-badge--${e}${n?` ${n}`:``}`,children:t})}function pe({recipe:e,setRecipe:i,operations:s,input:d,setInput:p}){let[m,h]=(0,R.useState)(!1),[D,O]=(0,R.useState)(null),[k,j]=(0,R.useState)(null),[ee,M]=(0,R.useState)(void 0),[ae,F]=(0,R.useState)(!1),[I,V]=(0,R.useState)([]),[le,pe]=(0,R.useState)(!1),[me,U]=(0,R.useState)(null),[W,G]=(0,R.useState)({}),[K,he]=ie(`nyxstrike_payload_workbench_continue_on_error`,!1),[ge,_e]=(0,R.useState)(null),[ve,ye]=(0,R.useState)(``),[q,J]=(0,R.useState)({}),[be,xe]=(0,R.useState)([]),[Se,Ce]=(0,R.useState)(!1),[we,Te]=(0,R.useState)(null),[Ee,De]=(0,R.useState)(!1),[Oe,ke]=(0,R.useState)(``),[Ae,je]=(0,R.useState)(null),[Me,Ne]=(0,R.useState)(``),[Y,X]=(0,R.useState)(null),[Pe,Fe]=(0,R.useState)(!1),[Z,Ie]=(0,R.useState)(null),[Le,Re]=(0,R.useState)(!1),[ze,Be]=(0,R.useState)(!1),[Ve,He]=(0,R.useState)(!1),Ue=(0,R.useRef)(null),{pushToast:Q}=te();function $(){Ce(!0),Te(null),P.payloadWorkbenchRecipes().then(e=>{if(!e.success){Te(`Failed to load saved recipes.`);return}xe(e.recipes)}).catch(e=>Te(String(e))).finally(()=>Ce(!1))}(0,R.useEffect)(()=>{$()},[]);function We(e,t){i(n=>{let r=[...n],i=e+t;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)}),J({})}function Ge(e,t){i(n=>{let r=[...n],i=r.findIndex(t=>t.stepId===e),a=r.findIndex(e=>e.stepId===t);if(i===-1||a===-1)return n;let[o]=r.splice(i,1);return r.splice(a,0,o),r}),J({})}let{dragHandlers:Ke,dragClassName:qe}=ne(Ge);function Je(t){i(e=>e.filter((e,n)=>n!==t)),U(n=>e[t]?.stepId===n?null:n),J({})}function Ye(e){i(t=>{let n=t[e];if(!n)return t;let r={...n,stepId:crypto.randomUUID(),params:{...n.params}},i=[...t];return i.splice(e+1,0,r),i}),J({})}function Xe(){i([]),X(null),Be(!1),Q(`info`,`Recipe cleared.`)}function Ze(){navigator.clipboard?.writeText(window.location.href).then(()=>Q(`success`,`Recipe link copied.`)).catch(()=>Q(`error`,`Failed to copy link.`))}function Qe(){ue(e)}function $e(){Ue.current?.click()}function et(e){let t=e.target.files?.[0];if(e.target.value=``,!t)return;let n=new FileReader;n.onload=()=>{try{let{steps:e,skipped:t}=de(String(n.result??``),s);i(e),X(null),Q(`success`,t>0?`Recipe imported — ${t} step(s) skipped (unknown operation).`:`Recipe imported.`)}catch(e){Q(`error`,`Failed to import recipe: ${String(e)}`)}},n.readAsText(t)}function tt(e){U(e.stepId),G({...e.params})}function nt(){U(null)}function rt(e){i(t=>t.map(t=>t.stepId===e?{...t,params:W}:t)),U(null)}async function it(t){h(!0),O(null),j(null),M(void 0),F(!1),V([]);try{let n=await P.payloadWorkbenchRunRecipe(d,e.map(e=>({operation_id:e.operationId,params:e.params})),{continueOnError:K,stopAfterStepIndex:t,stepInputOverrides:q});if(V(n.steps??[]),F(!!n.has_errors),!n.success){O(n.error??`Recipe failed.`);return}j(n.output??``),M(n.output_mime)}catch(e){O(String(e))}finally{h(!1)}}function at(){return it(void 0)}function ot(e){return it(e)}function st(e,t){_e(String(e)),ye(q[e]??t)}function ct(){_e(null)}function lt(e){J(t=>({...t,[e]:ve})),_e(null)}function ut(e){J(t=>{let n={...t};return delete n[e],n})}function dt(){if(k){if(!navigator.clipboard){Q(`error`,`Clipboard is unavailable in this context.`);return}navigator.clipboard.writeText(k).then(()=>{pe(!0),setTimeout(()=>pe(!1),2e3)}).catch(()=>Q(`error`,`Failed to copy output.`))}}function ft(){ke(``),De(!0)}function pt(){De(!1)}async function mt(){let t=Oe.trim();if(!t)return;let n=await P.createPayloadWorkbenchRecipe(t,e.map(e=>({operation_id:e.operationId,params:e.params})));n.success?(De(!1),X(n.recipe?.recipe_id??null),$(),Q(`success`,`Saved as "${t}".`)):Q(`error`,n.error??`Failed to save recipe.`)}async function ht(){if(!Y)return;Fe(!0);let t=await P.updatePayloadWorkbenchRecipe(Y,{steps:e.map(e=>({operation_id:e.operationId,params:e.params}))});Fe(!1),t.success?($(),Q(`success`,`Recipe saved.`)):Q(`error`,t.error??`Failed to save recipe.`)}function gt(e){i(e.steps.map(e=>{let t=s.find(t=>t.id===e.operation_id);return t?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:t.name,params:e.params??{}}:null}).filter(e=>e!==null)),U(null),X(e.recipe_id)}function _t(e){je(e.recipe_id),Ne(e.name)}function vt(){je(null)}async function yt(e){let t=Me.trim();if(!t)return;let n=await P.updatePayloadWorkbenchRecipe(e,{name:t});n.success?(je(null),$()):Q(`error`,n.error??`Failed to rename recipe.`)}async function bt(){if(!Z)return;Re(!0);let e=await P.deletePayloadWorkbenchRecipe(Z.recipe_id);Re(!1),e.success?(Y===Z.recipe_id&&X(null),Ie(null),$()):Q(`error`,e.error??`Failed to delete recipe.`)}return(0,z.jsxs)(`section`,{className:`workbench-recipe${e.length>0?` section`:``}`,children:[e.length>0&&(0,z.jsxs)(`div`,{className:`section-header`,children:[(0,z.jsxs)(`h3`,{children:[(0,z.jsx)(E,{size:14,style:{marginRight:6,verticalAlign:-2}}),`Recipe`]}),(0,z.jsxs)(`span`,{className:`workbench-recipe-toolbar`,children:[(0,z.jsx)(H,{content:`Copy link to this recipe`,children:(0,z.jsx)(N,{variant:`icon`,onClick:Ze,"aria-label":`Copy link to this recipe`,children:(0,z.jsx)(t,{size:12})})}),(0,z.jsx)(H,{content:`Export recipe as a JSON file`,children:(0,z.jsx)(N,{variant:`icon`,onClick:Qe,"aria-label":`Export recipe as a JSON file`,children:(0,z.jsx)(f,{size:12})})}),(0,z.jsx)(H,{content:`Import recipe from a JSON file`,children:(0,z.jsx)(N,{variant:`icon`,onClick:$e,"aria-label":`Import recipe from a JSON file`,children:(0,z.jsx)(x,{size:12})})}),(0,z.jsx)(`input`,{ref:Ue,type:`file`,accept:`application/json`,className:`workbench-hidden-file-input`,onChange:et}),(0,z.jsx)(H,{content:`Clear recipe`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>Be(!0),"aria-label":`Clear recipe`,children:(0,z.jsx)(b,{size:12})})})]})]}),(0,z.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,z.jsxs)(`div`,{className:`workbench-saved-recipes`,children:[(0,z.jsxs)(`div`,{className:`workbench-saved-recipes-header`,children:[(0,z.jsxs)(`span`,{className:`workbench-field-label`,children:[(0,z.jsx)(T,{size:12,style:{marginRight:4,verticalAlign:-2}}),`Saved Recipes`]}),e.length>0&&!Ee&&(0,z.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[Y&&(0,z.jsx)(H,{content:`Save changes to the loaded recipe`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>void ht(),disabled:Pe,"aria-label":`Save changes to the loaded recipe`,children:(0,z.jsx)(r,{size:12})})}),(0,z.jsx)(H,{content:`Save as a new recipe`,children:(0,z.jsx)(N,{variant:`icon`,onClick:ft,"aria-label":`Save as a new recipe`,children:(0,z.jsx)(w,{size:12})})})]})]}),Ee&&(0,z.jsxs)(`div`,{className:`workbench-saved-recipe-row workbench-saved-recipe-row--edit`,children:[(0,z.jsx)(`input`,{className:`input input-full mono`,placeholder:`Recipe name…`,value:Oe,autoFocus:!0,onChange:e=>ke(e.target.value),onKeyDown:e=>{e.key===`Enter`&&mt(),e.key===`Escape`&&pt()}}),(0,z.jsx)(N,{variant:`icon`,onClick:()=>void mt(),"aria-label":`Confirm`,children:(0,z.jsx)(g,{size:12})}),(0,z.jsx)(N,{variant:`icon`,onClick:pt,"aria-label":`Cancel`,children:(0,z.jsx)(A,{size:12})})]}),Se&&(0,z.jsx)(`div`,{className:`workbench-panel-empty-hint`,children:`Loading…`}),we&&(0,z.jsx)(B,{message:we,onRetry:$}),!Se&&be.length===0&&!Ee&&(0,z.jsx)(L,{title:`No saved recipes yet.`}),be.map(e=>(0,z.jsx)(`div`,{className:`workbench-saved-recipe-row`,children:Ae===e.recipe_id?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{className:`input input-full mono`,value:Me,autoFocus:!0,onChange:e=>Ne(e.target.value),onKeyDown:t=>{t.key===`Enter`&&yt(e.recipe_id),t.key===`Escape`&&vt()}}),(0,z.jsx)(N,{variant:`icon`,onClick:()=>void yt(e.recipe_id),"aria-label":`Confirm`,children:(0,z.jsx)(g,{size:12})}),(0,z.jsx)(N,{variant:`icon`,onClick:vt,"aria-label":`Cancel`,children:(0,z.jsx)(A,{size:12})})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`workbench-saved-recipe-name mono`,title:e.name,children:e.name}),(0,z.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[(0,z.jsx)(H,{content:`Load into working recipe`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>gt(e),"aria-label":`Load into working recipe`,children:(0,z.jsx)(T,{size:12})})}),(0,z.jsx)(H,{content:`Rename`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>_t(e),"aria-label":`Rename`,children:(0,z.jsx)(c,{size:12})})}),(0,z.jsx)(H,{content:`Delete`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>Ie(e),"aria-label":`Delete`,children:(0,z.jsx)(C,{size:12})})})]})]})},e.recipe_id))]}),e.length===0?(0,z.jsx)(L,{icon:(0,z.jsx)(E,{size:28}),title:`No recipe yet`,description:`Use "Add to Recipe" on any operation to chain it here — each step's output feeds the next step's input.`}):(0,z.jsx)(`ol`,{className:`workbench-recipe-steps`,children:e.map((t,r)=>{let i=s.find(e=>e.id===t.operationId)?.params.filter(e=>e.name!==`input`)??[],o=me===t.stepId;return(0,z.jsxs)(`li`,{className:qe(t.stepId,`workbench-recipe-step-wrap`),...Ke(t.stepId),children:[(0,z.jsxs)(`div`,{className:`workbench-recipe-step`,children:[(0,z.jsx)(`span`,{className:`workbench-recipe-step-drag`,title:`Drag to reorder`,children:(0,z.jsx)(S,{size:12})}),(0,z.jsx)(`span`,{className:`workbench-recipe-step-index`,children:r+1}),(0,z.jsx)(`span`,{className:`workbench-recipe-step-name`,children:t.operationName}),Object.keys(t.params).length>0&&(0,z.jsx)(`span`,{className:`workbench-recipe-step-params mono`,children:Object.entries(t.params).map(([e,t])=>`${e}=${t}`).join(`, `)}),q[r]!==void 0&&(0,z.jsx)(`span`,{className:`workbench-recipe-step-override-badge`,title:`This step's input is overridden for the next run`,children:`input overridden`}),(0,z.jsxs)(`span`,{className:`workbench-recipe-step-actions`,children:[(0,z.jsx)(H,{content:`Move up`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>We(r,-1),disabled:r===0,"aria-label":`Move up`,children:(0,z.jsx)(_,{size:12})})}),(0,z.jsx)(H,{content:`Move down`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>We(r,1),disabled:r===e.length-1,"aria-label":`Move down`,children:(0,z.jsx)(n,{size:12})})}),i.length>0&&(0,z.jsx)(H,{content:`Edit settings`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>o?nt():tt(t),"aria-label":`Edit settings`,children:(0,z.jsx)(c,{size:12})})}),(0,z.jsx)(H,{content:`Override this step's input for debugging`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>ge===String(r)?ct():st(r,``),"aria-label":`Override this step's input for debugging`,children:(0,z.jsx)(v,{size:12})})}),(0,z.jsx)(H,{content:`Run recipe up to this step`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>void ot(r),disabled:m,"aria-label":`Run recipe up to this step`,children:(0,z.jsx)(y,{size:12})})}),(0,z.jsx)(H,{content:`Duplicate step`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>Ye(r),"aria-label":`Duplicate step`,children:(0,z.jsx)(a,{size:12})})}),(0,z.jsx)(H,{content:`Remove`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>Je(r),"aria-label":`Remove`,children:(0,z.jsx)(A,{size:12})})})]})]}),ge===String(r)&&(0,z.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Override input for this step`}),(0,z.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:ve,onChange:e=>ye(e.target.value),rows:2})]}),(0,z.jsxs)(`div`,{className:`workbench-actions`,children:[(0,z.jsxs)(N,{variant:`secondary`,onClick:()=>lt(r),children:[(0,z.jsx)(g,{size:13}),` Save Override`]}),(0,z.jsxs)(N,{variant:`secondary`,onClick:ct,children:[(0,z.jsx)(A,{size:13}),` Cancel`]}),q[r]!==void 0&&(0,z.jsxs)(N,{variant:`secondary`,onClick:()=>ut(r),children:[(0,z.jsx)(A,{size:13}),` Clear`]})]})]}),o&&(0,z.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[i.map(e=>(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:e.label}),e.type===`select`?(0,z.jsx)(`select`,{className:`input input-full`,value:W[e.name]??``,onChange:t=>G(n=>({...n,[e.name]:t.target.value})),children:(e.choices??[]).map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))}):e.type===`textarea`?(0,z.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:W[e.name]??``,onChange:t=>G(n=>({...n,[e.name]:t.target.value})),rows:2}):(0,z.jsx)(`input`,{className:`input input-full mono`,type:e.type===`number`?`number`:`text`,value:W[e.name]??``,onChange:t=>G(n=>({...n,[e.name]:t.target.value}))}),e.help_text&&(0,z.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name)),(0,z.jsxs)(`div`,{className:`workbench-actions`,children:[(0,z.jsxs)(N,{variant:`secondary`,onClick:()=>rt(t.stepId),children:[(0,z.jsx)(g,{size:13}),` Save`]}),(0,z.jsxs)(N,{variant:`secondary`,onClick:nt,children:[(0,z.jsx)(A,{size:13}),` Cancel`]})]})]})]},t.stepId)})}),e.length>0&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`workbench-field`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Input`}),(0,z.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:d,onChange:e=>p(e.target.value),onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&!m&&(e.preventDefault(),at())},rows:3})]}),(0,z.jsxs)(`label`,{className:`workbench-continue-toggle`,children:[(0,z.jsx)(`input`,{type:`checkbox`,checked:K,onChange:e=>he(e.target.checked)}),`Continue on error`]}),(0,z.jsx)(`div`,{className:`workbench-actions`,children:(0,z.jsx)(N,{variant:`primary`,onClick:at,disabled:m,children:m?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(l,{size:13,className:`spin`}),` Running…`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{size:13}),` Run Recipe`]})})}),D&&(0,z.jsx)(B,{message:D}),ae&&!D&&(0,z.jsx)(`div`,{className:`workbench-note`,children:`Some steps failed and were skipped (continue-on-error was on) — see the trace below.`}),I.length>0&&(0,z.jsx)(`ol`,{className:`workbench-recipe-trace`,children:I.map((e,t)=>{let n=e.error?K?`workbench-recipe-trace-error-continued`:`workbench-recipe-trace-error`:``;return(0,z.jsxs)(`li`,{className:n,children:[(0,z.jsx)(`span`,{className:`workbench-recipe-step-index`,children:t+1}),(0,z.jsx)(`span`,{className:`workbench-field-label`,children:e.name??e.operation_id}),e.input!==void 0&&(0,z.jsxs)(`span`,{className:`workbench-recipe-trace-input mono`,children:[`in: `,e.input.length>120?`${e.input.slice(0,120)}…`:e.input]}),e.error?(0,z.jsxs)(`span`,{className:`mono`,children:[K&&(0,z.jsx)(fe,{tone:`warning`,children:`skipped`}),` `,K?`Skipped (chain continued): `:`Error: `,e.error]}):(0,z.jsx)(`span`,{className:`mono`,children:e.output})]},t)})}),k!==null&&(0,z.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,z.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,z.jsx)(`span`,{className:`workbench-field-label`,children:`Final Output`}),(0,z.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,z.jsx)(H,{content:`Copy output`,children:(0,z.jsx)(N,{variant:`icon`,onClick:dt,"aria-label":`Copy output`,children:le?(0,z.jsx)(g,{size:12,color:`var(--green)`}):(0,z.jsx)(a,{size:12})})}),(0,z.jsx)(H,{content:`Download output`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>oe(k,ee,`payload-recipe`),"aria-label":`Download output`,children:(0,z.jsx)(f,{size:12})})}),(0,z.jsx)(H,{content:`Send output to Loot`,placement:`left`,children:(0,z.jsx)(N,{variant:`icon`,onClick:()=>He(!0),"aria-label":`Send output to Loot`,children:(0,z.jsx)(u,{size:12})})})]})]}),(0,z.jsx)(`pre`,{className:`verify-result-output mono`,children:k}),(0,z.jsx)(ce,{output:k})]})]})]}),(0,z.jsx)(re,{isOpen:!!Z,title:`Delete saved recipe?`,description:`This will permanently delete "${Z?.name}". This can't be undone.`,confirmLabel:`Delete`,isConfirming:Le,onConfirm:bt,onClose:()=>Ie(null)}),(0,z.jsx)(re,{isOpen:ze,title:`Clear recipe?`,description:`This will discard the working recipe and its input. Saved recipes are not affected.`,confirmLabel:`Clear`,onConfirm:Xe,onClose:()=>Be(!1)}),k!==null&&(0,z.jsx)(se,{isOpen:Ve,onClose:()=>He(!1),defaultTitle:`Payload recipe output`,content:k,sourceTool:`payload-workbench`})]})}function me({urlOperationId:e,onOperationSelected:t}){let[n,r]=(0,R.useState)([]),[i,a]=(0,R.useState)([]),[o,s]=(0,R.useState)(!0),[c,l]=(0,R.useState)(null),[u,d]=(0,R.useState)(0),[f,p]=(0,R.useState)(null),[m,h]=(0,R.useState)(``),[g,_]=ie(`nyxstrike_payload_workbench_recipe`,[]),[v,y]=ie(`nyxstrike_payload_workbench_recipe_input`,``),[b,x]=(0,R.useState)(null),S=(0,R.useRef)(null),C=(0,R.useRef)({});(0,R.useEffect)(()=>{let e=!1;return s(!0),l(null),P.payloadWorkbenchOperations().then(t=>{if(!e){if(!t.success){l(`Failed to load operations.`);return}r(t.operations),a(t.categories),p(e=>e??t.operations[0]?.id??null)}}).catch(t=>!e&&l(String(t))).finally(()=>!e&&s(!1)),()=>{e=!0}},[u]),(0,R.useEffect)(()=>{!e||f===e||n.some(t=>t.id===e)&&p(e)},[e,n,f]);let w=(0,R.useMemo)(()=>{let e=m.trim().toLowerCase();return i.map(t=>[t,n.filter(n=>n.category===t&&(!e||n.name.toLowerCase().includes(e)||n.description.toLowerCase().includes(e)))]).filter(([,e])=>e.length>0)},[n,i,m]),T=n.find(e=>e.id===f)??null;(0,R.useEffect)(()=>{f&&C.current[f]?.scrollIntoView({block:`nearest`})},[f]);function E(e){p(e),x(null),t?.(e)}(0,R.useEffect)(()=>{function e(e){let t=e.target;!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable))&&e.key===`/`&&(e.preventDefault(),S.current?.focus())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);function D(e,t,n){let r={stepId:crypto.randomUUID(),operationId:e.id,operationName:e.name,params:t};_(e=>[...e,r]),n.trim()&&y(e=>e.trim()?e:n)}return(0,z.jsxs)(z.Fragment,{children:[o&&(0,z.jsx)(`div`,{className:`payload-page-state`,children:(0,z.jsx)(I,{label:`Loading operations…`})}),!o&&c&&(0,z.jsx)(`div`,{className:`payload-page-state`,children:(0,z.jsx)(B,{message:c,onRetry:()=>d(e=>e+1)})}),!o&&!c&&(0,z.jsx)(ae,{className:`workbench-page`,asideExpanded:g.length>0,top:(0,z.jsx)(F,{items:[{icon:(0,z.jsx)(k,{size:16}),label:`Operations`,value:n.length,accent:`var(--blue)`},{icon:(0,z.jsx)(ee,{size:16}),label:`Recipe Steps`,value:g.length,accent:g.length>0?`var(--green)`:`var(--text-dim)`}]}),nav:(0,z.jsxs)(`nav`,{className:`workbench-sidebar browser-nav`,children:[(0,z.jsx)(`div`,{className:`workbench-sidebar-title browser-nav-title`,children:(0,z.jsxs)(`span`,{className:`workbench-sidebar-title-text`,children:[(0,z.jsx)(k,{size:14}),` Payload Workbench`]})}),(0,z.jsx)(V,{inputRef:S,value:m,onChange:h,placeholder:`Find an operation… (/)`,className:`payload-search-wrap`}),w.map(([e,t])=>(0,z.jsxs)(`div`,{className:`workbench-category`,children:[(0,z.jsx)(`div`,{className:`payload-category-label-static`,children:(0,z.jsx)(`span`,{className:`workbench-category-label`,children:e.replace(/_/g,` `)})}),(0,z.jsx)(`div`,{className:`workbench-category-ops`,children:t.map(e=>(0,z.jsx)(`div`,{className:`workbench-op-row-wrap`,children:(0,z.jsx)(`button`,{ref:t=>{C.current[e.id]=t},className:`workbench-op-btn${e.id===f?` workbench-op-btn--active`:``}`,onClick:()=>E(e.id),children:e.name})},e.id))})]},e)),w.length===0&&(0,z.jsx)(L,{title:m?`No operations match "${m}".`:`No operations available.`})]}),main:(0,z.jsx)(`div`,{className:`workbench-main`,children:(0,z.jsx)(`section`,{className:`workbench-panel`,children:T?(0,z.jsx)(le,{operation:T,onAddToRecipe:D,initialInput:b??void 0},T.id):(0,z.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,z.jsx)(k,{size:28,color:`var(--text-dim)`}),(0,z.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`Select an operation`}),(0,z.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Pick something from the sidebar to get started.`})]})})}),aside:(0,z.jsx)(`aside`,{className:`workbench-recipe-col browser-aside`,children:(0,z.jsx)(pe,{recipe:g,setRecipe:_,operations:n,input:v,setInput:y})})})]})}export{me as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/PluginsPage-HbqISXPY.js b/frontend/dashboard/assets/PluginsPage-DoPWPO3F.js similarity index 78% rename from frontend/dashboard/assets/PluginsPage-HbqISXPY.js rename to frontend/dashboard/assets/PluginsPage-DoPWPO3F.js index fb6b9d8c0..549e3933f 100644 --- a/frontend/dashboard/assets/PluginsPage-HbqISXPY.js +++ b/frontend/dashboard/assets/PluginsPage-DoPWPO3F.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,Dt as r,Pt as i,c as a,j as o,k as s}from"./vendor-lucide-tZ8AzO6l.js";import{r as c}from"./vendor-markdown-CZSHC-G5.js";import{t as l}from"./Sheet-CPyVkJ3G.js";import{b as u,x as d}from"./index-DoDmaCqd.js";import{t as f}from"./BrowserPage-B37UOYE2.js";import{t as p}from"./KpiStrip-Cnf9m6Sg.js";var m=e(t(),1),h=c();function g({plugin:e,onClose:t}){let n=Math.round(e.effectiveness*100),a=n>=90?`var(--green)`:n>=75?`var(--amber)`:`var(--red)`,o=(e.category||e.type||`plugin`).replace(/_/g,` `),s=Array.isArray(e.tags)?e.tags:[];return(0,h.jsxs)(l,{isOpen:!0,onClose:t,title:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:`modal-name mono`,children:e.name}),(0,h.jsx)(`span`,{className:`modal-cat`,children:o}),e.loaded?(0,h.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,h.jsx)(i,{size:11}),` loaded`]}):(0,h.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,h.jsx)(r,{size:11}),` not loaded`]})]}),children:[(0,h.jsx)(`p`,{className:`modal-desc`,children:e.description||`—`}),(0,h.jsxs)(`div`,{className:`modal-eff-row`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Effectiveness`}),(0,h.jsx)(`div`,{className:`modal-eff-bar`,children:(0,h.jsx)(`div`,{className:`modal-eff-fill`,style:{width:`${n}%`,background:a}})}),(0,h.jsxs)(`span`,{className:`modal-eff-pct`,style:{color:a},children:[n,`%`]})]}),(0,h.jsx)(`div`,{className:`modal-section`,children:(0,h.jsxs)(`div`,{className:`modal-meta-grid`,children:[e.version&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Version`}),(0,h.jsx)(`span`,{className:`mono`,children:e.version})]}),e.author&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Author`}),(0,h.jsx)(`span`,{className:`mono`,children:e.author})]}),e.plugin_type&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Plugin Type`}),(0,h.jsx)(`span`,{className:`mono`,children:e.plugin_type})]}),(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Status`}),(0,h.jsx)(`span`,{className:`mono`,children:e.enabled?`enabled`:`disabled`})]})]})}),e.endpoint&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`API Endpoint`}),(0,h.jsx)(`div`,{className:`modal-code mono`,children:e.endpoint})]}),e.mcp_tool_name&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`MCP Tool Name`}),(0,h.jsx)(`div`,{className:`modal-code mono`,children:e.mcp_tool_name})]}),s.length>0&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Tags`}),(0,h.jsx)(`div`,{className:`modal-params`,children:s.map(e=>(0,h.jsx)(`span`,{className:`modal-param mono`,children:e},e))})]})]})}function _({categories:e,activeCategory:t,setActiveCategory:n,counts:r,totalCount:i}){return(0,h.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,h.jsxs)(`button`,{className:`browser-nav-item${t===`all`?` browser-nav-item--active`:``}`,onClick:()=>n(`all`),children:[(0,h.jsx)(`span`,{className:`browser-nav-label`,children:`All Plugins`}),(0,h.jsx)(`span`,{className:`browser-nav-count`,children:i})]}),e.filter(e=>e!==`all`).map(e=>(0,h.jsxs)(`button`,{className:`browser-nav-item${t===e?` browser-nav-item--active`:``}`,onClick:()=>n(t===e?`all`:e),children:[(0,h.jsx)(`span`,{className:`browser-nav-label`,children:e.replace(/_/g,` `)}),(0,h.jsx)(`span`,{className:`browser-nav-count`,children:r[e]??0})]},e))]})}function v(){let{pushToast:e}=u(),[t,c]=(0,m.useState)([]),[l,v]=(0,m.useState)(!0),[y,b]=(0,m.useState)(null),[x,S]=(0,m.useState)(`all`),[C,w]=(0,m.useState)(``),[T,E]=(0,m.useState)(new Set),[D,O]=(0,m.useState)(!1),[k,A]=(0,m.useState)(null),[j,M]=(0,m.useState)(null),N=(0,m.useCallback)(async()=>{v(!0),b(null);try{let e=await d.pluginsManifest();c(e.plugins??[])}catch(e){b(String(e))}finally{v(!1)}},[]);(0,m.useEffect)(()=>{N()},[N]);let P=async t=>{let n=!t.enabled;c(e=>e.map(e=>e.name===t.name?{...e,enabled:n}:e));try{await d.pluginToggle(t.name,n),E(e=>new Set(e).add(t.name))}catch(n){c(e=>e.map(e=>e.name===t.name?{...e,enabled:t.enabled}:e)),e(`error`,`Failed to update '${t.name}': ${n}`)}},F=async()=>{O(!0),A(`Restarting server…`);try{await d.serverRestart(),A(`Server restarting — reconnecting in 5 s…`),E(new Set);let e=0,t=setInterval(async()=>{e++;try{await d.pluginsManifest(),clearInterval(t),O(!1),A(null),N()}catch{e>=30&&(clearInterval(t),O(!1),A(`Server did not come back in time — please refresh manually.`))}},1e3)}catch(e){O(!1),A(`Restart request failed: ${e}`)}},I={};for(let e of t){let t=e.category||e.type||`other`;(I[t]??=[]).push(e)}let L=[`all`,...Object.keys(I).sort()],R={};for(let e of Object.keys(I))R[e]=I[e].length;let z=x===`all`?t:I[x]??[],B=C.trim()?z.filter(e=>e.name.toLowerCase().includes(C.toLowerCase())||e.description.toLowerCase().includes(C.toLowerCase())):z,V=t.filter(e=>e.enabled).length;return(0,h.jsxs)(h.Fragment,{children:[j&&(0,h.jsx)(g,{plugin:j,onClose:()=>M(null)}),(0,h.jsx)(f,{className:`plugins-page`,top:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(p,{items:[{icon:(0,h.jsx)(o,{size:16}),label:`Total Plugins · in manifest`,value:t.length,accent:`var(--purple)`},{icon:(0,h.jsx)(i,{size:16}),label:`Enabled · ${t.length-V} disabled`,value:V,accent:`var(--green)`},{icon:(0,h.jsx)(o,{size:16}),label:`Plugin Categories`,value:Object.keys(I).length,accent:`var(--blue)`}]}),(T.size>0||D||k)&&(0,h.jsxs)(`div`,{className:`plugins-restart-banner`,children:[(0,h.jsx)(a,{size:14}),k||`${T.size} pending change${T.size===1?``:`s`} — restart the server to apply.`,!D&&(0,h.jsxs)(`button`,{onClick:F,disabled:D,children:[(0,h.jsx)(s,{size:12,style:{marginRight:4}}),`Restart now`]}),D&&(0,h.jsx)(n,{size:12,className:`spin`})]})]}),nav:(0,h.jsx)(_,{categories:L,activeCategory:x,setActiveCategory:S,counts:R,totalCount:t.length}),main:(0,h.jsxs)(`div`,{className:`browser-main`,children:[(0,h.jsx)(`div`,{className:`section-header`,children:(0,h.jsxs)(`h3`,{children:[(0,h.jsx)(o,{size:14}),x===`all`?`Plugin Registry`:x.replace(/_/g,` `),` `,(0,h.jsxs)(`span`,{className:`badge`,children:[B.length,` / `,t.length]})]})}),l&&(0,h.jsx)(`div`,{className:`loading-state`,children:(0,h.jsx)(n,{size:20,className:`spin`,color:`var(--green)`})}),y&&(0,h.jsxs)(`div`,{className:`error-banner`,children:[`Failed to load plugins: `,y]}),!l&&!y&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`registry-controls`,children:(0,h.jsx)(`div`,{className:`registry-controls-top`,children:(0,h.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,h.jsx)(`input`,{className:`search-input mono`,placeholder:`Search plugins…`,value:C,onChange:e=>w(e.target.value)}),C.trim().length>0&&(0,h.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>w(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,h.jsx)(r,{size:12})})]})})}),(0,h.jsx)(`div`,{className:`browser-scroll`,children:(0,h.jsxs)(`div`,{className:`registry-grid registry-grid--wide`,children:[B.map(e=>(0,h.jsxs)(`div`,{className:`registry-card registry-card--clickable${e.enabled?``:` plugins-page__card--disabled`}`,onClick:()=>M(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&M(e)},children:[(0,h.jsxs)(`div`,{className:`registry-card-top`,children:[(0,h.jsx)(`span`,{className:`registry-name mono`,children:e.name}),(0,h.jsxs)(`label`,{className:`plugin-toggle`,title:e.enabled?`Disable plugin`:`Enable plugin`,onClick:e=>e.stopPropagation(),children:[(0,h.jsx)(`input`,{type:`checkbox`,checked:e.enabled,onChange:()=>P(e)}),(0,h.jsx)(`span`,{className:`plugin-toggle-track`,children:(0,h.jsx)(`span`,{className:`plugin-toggle-thumb`})}),(0,h.jsx)(`span`,{className:`plugin-toggle-label`,children:e.loaded?e.enabled?`loaded`:`disabled`:e.enabled?`will load`:`disabled`})]})]}),(0,h.jsx)(`p`,{className:`registry-desc`,children:e.description||`—`}),(0,h.jsxs)(`div`,{className:`registry-footer`,children:[(0,h.jsx)(`span`,{className:`registry-cat`,children:(e.category||e.type||`plugin`).replace(/_/g,` `)}),(0,h.jsxs)(`span`,{className:`registry-eff`,title:`Effectiveness`,children:[`█`.repeat(Math.round(e.effectiveness*5)),`░`.repeat(5-Math.round(e.effectiveness*5))]})]}),e.endpoint&&(0,h.jsx)(`div`,{className:`registry-endpoint mono plugins-page__endpoint`,children:e.endpoint})]},e.name)),B.length===0&&(0,h.jsx)(`p`,{className:`empty-state`,children:`No plugins match your filter.`})]})})]})]})})]})}export{v as default}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,Lt as n,M as r,N as i,j as a,l as o,nn as s}from"./vendor-lucide-DUPkM7me.js";import{r as c}from"./vendor-markdown-BanIOC5U.js";import{t as l}from"./Sheet-BAT5hjNH.js";import{b as u,x as d}from"./index-DuJ0P36w.js";import{t as f}from"./BrowserPage-BmNP5Bdw.js";import{t as p}from"./KpiStrip-L-nGhyMV.js";var m=e(s(),1),h=c();function g({plugin:e,onClose:r}){let i=Math.round(e.effectiveness*100),a=i>=90?`var(--green)`:i>=75?`var(--amber)`:`var(--red)`,o=(e.category||e.type||`plugin`).replace(/_/g,` `),s=Array.isArray(e.tags)?e.tags:[];return(0,h.jsxs)(l,{isOpen:!0,onClose:r,title:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:`modal-name mono`,children:e.name}),(0,h.jsx)(`span`,{className:`modal-cat`,children:o}),e.loaded?(0,h.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,h.jsx)(n,{size:11}),` loaded`]}):(0,h.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,h.jsx)(t,{size:11}),` not loaded`]})]}),children:[(0,h.jsx)(`p`,{className:`modal-desc`,children:e.description||`—`}),(0,h.jsxs)(`div`,{className:`modal-eff-row`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Effectiveness`}),(0,h.jsx)(`div`,{className:`modal-eff-bar`,children:(0,h.jsx)(`div`,{className:`modal-eff-fill`,style:{width:`${i}%`,background:a}})}),(0,h.jsxs)(`span`,{className:`modal-eff-pct`,style:{color:a},children:[i,`%`]})]}),(0,h.jsx)(`div`,{className:`modal-section`,children:(0,h.jsxs)(`div`,{className:`modal-meta-grid`,children:[e.version&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Version`}),(0,h.jsx)(`span`,{className:`mono`,children:e.version})]}),e.author&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Author`}),(0,h.jsx)(`span`,{className:`mono`,children:e.author})]}),e.plugin_type&&(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Plugin Type`}),(0,h.jsx)(`span`,{className:`mono`,children:e.plugin_type})]}),(0,h.jsxs)(`div`,{className:`modal-meta-item`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Status`}),(0,h.jsx)(`span`,{className:`mono`,children:e.enabled?`enabled`:`disabled`})]})]})}),e.endpoint&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`API Endpoint`}),(0,h.jsx)(`div`,{className:`modal-code mono`,children:e.endpoint})]}),e.mcp_tool_name&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`MCP Tool Name`}),(0,h.jsx)(`div`,{className:`modal-code mono`,children:e.mcp_tool_name})]}),s.length>0&&(0,h.jsxs)(`div`,{className:`modal-section`,children:[(0,h.jsx)(`span`,{className:`modal-label`,children:`Tags`}),(0,h.jsx)(`div`,{className:`modal-params`,children:s.map(e=>(0,h.jsx)(`span`,{className:`modal-param mono`,children:e},e))})]})]})}function _({categories:e,activeCategory:t,setActiveCategory:n,counts:r,totalCount:i}){return(0,h.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,h.jsxs)(`button`,{className:`browser-nav-item${t===`all`?` browser-nav-item--active`:``}`,onClick:()=>n(`all`),children:[(0,h.jsx)(`span`,{className:`browser-nav-label`,children:`All Plugins`}),(0,h.jsx)(`span`,{className:`browser-nav-count`,children:i})]}),e.filter(e=>e!==`all`).map(e=>(0,h.jsxs)(`button`,{className:`browser-nav-item${t===e?` browser-nav-item--active`:``}`,onClick:()=>n(t===e?`all`:e),children:[(0,h.jsx)(`span`,{className:`browser-nav-label`,children:e.replace(/_/g,` `)}),(0,h.jsx)(`span`,{className:`browser-nav-count`,children:r[e]??0})]},e))]})}function v(){let{pushToast:e}=u(),[s,c]=(0,m.useState)([]),[l,v]=(0,m.useState)(!0),[y,b]=(0,m.useState)(null),[x,S]=(0,m.useState)(`all`),[C,w]=(0,m.useState)(``),[T,E]=(0,m.useState)(new Set),[D,O]=(0,m.useState)(!1),[k,A]=(0,m.useState)(null),[j,M]=(0,m.useState)(null),N=(0,m.useCallback)(async()=>{v(!0),b(null);try{let e=await d.pluginsManifest();c(e.plugins??[])}catch(e){b(String(e))}finally{v(!1)}},[]);(0,m.useEffect)(()=>{N()},[N]);let P=async t=>{let n=!t.enabled;c(e=>e.map(e=>e.name===t.name?{...e,enabled:n}:e));try{await d.pluginToggle(t.name,n),E(e=>new Set(e).add(t.name))}catch(n){c(e=>e.map(e=>e.name===t.name?{...e,enabled:t.enabled}:e)),e(`error`,`Failed to update '${t.name}': ${n}`)}},F=async()=>{O(!0),A(`Restarting server…`);try{await d.serverRestart(),A(`Server restarting — reconnecting in 5 s…`),E(new Set);let e=0,t=setInterval(async()=>{e++;try{await d.pluginsManifest(),clearInterval(t),O(!1),A(null),N()}catch{e>=30&&(clearInterval(t),O(!1),A(`Server did not come back in time — please refresh manually.`))}},1e3)}catch(e){O(!1),A(`Restart request failed: ${e}`)}},I={};for(let e of s){let t=e.category||e.type||`other`;(I[t]??=[]).push(e)}let L=[`all`,...Object.keys(I).sort()],R={};for(let e of Object.keys(I))R[e]=I[e].length;let z=x===`all`?s:I[x]??[],B=C.trim()?z.filter(e=>e.name.toLowerCase().includes(C.toLowerCase())||e.description.toLowerCase().includes(C.toLowerCase())):z,V=s.filter(e=>e.enabled).length;return(0,h.jsxs)(h.Fragment,{children:[j&&(0,h.jsx)(g,{plugin:j,onClose:()=>M(null)}),(0,h.jsx)(f,{className:`plugins-page`,top:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(p,{items:[{icon:(0,h.jsx)(i,{size:16}),label:`Total Plugins · in manifest`,value:s.length,accent:`var(--purple)`},{icon:(0,h.jsx)(n,{size:16}),label:`Enabled · ${s.length-V} disabled`,value:V,accent:`var(--green)`},{icon:(0,h.jsx)(i,{size:16}),label:`Plugin Categories`,value:Object.keys(I).length,accent:`var(--blue)`}]}),(T.size>0||D||k)&&(0,h.jsxs)(`div`,{className:`plugins-restart-banner`,children:[(0,h.jsx)(o,{size:14}),k||`${T.size} pending change${T.size===1?``:`s`} — restart the server to apply.`,!D&&(0,h.jsxs)(`button`,{onClick:F,disabled:D,children:[(0,h.jsx)(a,{size:12,style:{marginRight:4}}),`Restart now`]}),D&&(0,h.jsx)(r,{size:12,className:`spin`})]})]}),nav:(0,h.jsx)(_,{categories:L,activeCategory:x,setActiveCategory:S,counts:R,totalCount:s.length}),main:(0,h.jsxs)(`div`,{className:`browser-main`,children:[(0,h.jsx)(`div`,{className:`section-header`,children:(0,h.jsxs)(`h3`,{children:[(0,h.jsx)(i,{size:14}),x===`all`?`Plugin Registry`:x.replace(/_/g,` `),` `,(0,h.jsxs)(`span`,{className:`badge`,children:[B.length,` / `,s.length]})]})}),l&&(0,h.jsx)(`div`,{className:`loading-state`,children:(0,h.jsx)(r,{size:20,className:`spin`,color:`var(--green)`})}),y&&(0,h.jsxs)(`div`,{className:`error-banner`,children:[`Failed to load plugins: `,y]}),!l&&!y&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`registry-controls`,children:(0,h.jsx)(`div`,{className:`registry-controls-top`,children:(0,h.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,h.jsx)(`input`,{className:`search-input mono`,placeholder:`Search plugins…`,value:C,onChange:e=>w(e.target.value)}),C.trim().length>0&&(0,h.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>w(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,h.jsx)(t,{size:12})})]})})}),(0,h.jsx)(`div`,{className:`browser-scroll`,children:(0,h.jsxs)(`div`,{className:`registry-grid registry-grid--wide`,children:[B.map(e=>(0,h.jsxs)(`div`,{className:`registry-card registry-card--clickable${e.enabled?``:` plugins-page__card--disabled`}`,onClick:()=>M(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&M(e)},children:[(0,h.jsxs)(`div`,{className:`registry-card-top`,children:[(0,h.jsx)(`span`,{className:`registry-name mono`,children:e.name}),(0,h.jsxs)(`label`,{className:`plugin-toggle`,title:e.enabled?`Disable plugin`:`Enable plugin`,onClick:e=>e.stopPropagation(),children:[(0,h.jsx)(`input`,{type:`checkbox`,checked:e.enabled,onChange:()=>P(e)}),(0,h.jsx)(`span`,{className:`plugin-toggle-track`,children:(0,h.jsx)(`span`,{className:`plugin-toggle-thumb`})}),(0,h.jsx)(`span`,{className:`plugin-toggle-label`,children:e.loaded?e.enabled?`loaded`:`disabled`:e.enabled?`will load`:`disabled`})]})]}),(0,h.jsx)(`p`,{className:`registry-desc`,children:e.description||`—`}),(0,h.jsxs)(`div`,{className:`registry-footer`,children:[(0,h.jsx)(`span`,{className:`registry-cat`,children:(e.category||e.type||`plugin`).replace(/_/g,` `)}),(0,h.jsxs)(`span`,{className:`registry-eff`,title:`Effectiveness`,children:[`█`.repeat(Math.round(e.effectiveness*5)),`░`.repeat(5-Math.round(e.effectiveness*5))]})]}),e.endpoint&&(0,h.jsx)(`div`,{className:`registry-endpoint mono plugins-page__endpoint`,children:e.endpoint})]},e.name)),B.length===0&&(0,h.jsx)(`p`,{className:`empty-state`,children:`No plugins match your filter.`})]})})]})]})})]})}export{v as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/ReportsPage--Iq3jyce.js b/frontend/dashboard/assets/ReportsPage-8MB5H1Hc.js similarity index 78% rename from frontend/dashboard/assets/ReportsPage--Iq3jyce.js rename to frontend/dashboard/assets/ReportsPage-8MB5H1Hc.js index 37a778795..7d1036d65 100644 --- a/frontend/dashboard/assets/ReportsPage--Iq3jyce.js +++ b/frontend/dashboard/assets/ReportsPage-8MB5H1Hc.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,Ht as r,Pt as i,Tt as a,Wt as o,l as s,mt as c}from"./vendor-lucide-tZ8AzO6l.js";import{r as l}from"./vendor-markdown-CZSHC-G5.js";import{b as u,l as d,r as f,x as p}from"./index-DoDmaCqd.js";import{t as m}from"./BrowserPage-B37UOYE2.js";import{t as h}from"./KpiStrip-Cnf9m6Sg.js";import{t as g}from"./RunResultModal-Cw0lz4Ij.js";var _=e(t(),1);function v(e){for(let t of[`target`,`url`,`host`,`ip`,`domain`,`file`]){let n=e.params[t];if(n)return String(n)}let t=Object.values(e.params)[0];return t?String(t):`(no target)`}function y(e){let t=new Map;for(let n of e){let e=n.ts.toLocaleDateString(`en-GB`,{day:`2-digit`,month:`short`,year:`numeric`});t.has(e)||t.set(e,{label:e,date:n.ts,entries:[]}),t.get(e).entries.push(n)}return Array.from(t.values()).sort((e,t)=>t.date.getTime()-e.date.getTime()).map(({label:e,entries:t})=>({label:e,entries:t}))}function b(e){let t=e.filter(e=>e.result.success).length,n=e.reduce((e,t)=>e+(t.result.execution_time??0),0)/e.length,r=e.reduce((e,t)=>e.ts>t.ts?e:t);return{total:e.length,ok:t,failed:e.length-t,avgTime:n,last:r}}var x=l();function S({runHistory:e,onOpenEntry:t}){let n=[...e].sort((e,t)=>t.ts.getTime()-e.ts.getTime()).slice(0,60),r=y(n);return(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsx)(`div`,{className:`section-header`,children:(0,x.jsxs)(`h3`,{children:[`Run Timeline `,(0,x.jsxs)(`span`,{className:`section-meta`,children:[`last `,n.length]})]})}),(0,x.jsx)(`div`,{className:`reports-timeline-wrap`,children:r.map(({label:e,entries:n})=>(0,x.jsxs)(`div`,{className:`reports-timeline-group`,children:[(0,x.jsx)(`span`,{className:`reports-timeline-date`,children:e}),(0,x.jsx)(`div`,{className:`reports-timeline-dots`,children:n.map((e,n)=>(0,x.jsx)(`button`,{className:`reports-timeline-dot ${e.result.success?`ok`:`fail`}`,title:`${e.tool} — ${e.ts.toLocaleTimeString(`en-GB`)} — ${e.result.success?`ok`:`failed`} (${d(e.result.execution_time,1)}s)`,onClick:()=>t(e)},n))})]},e))})]})}function C({grouped:e,keys:t,groupBy:n,search:r,setSearch:i,setGroupBy:a,expanded:o,toggleExpanded:s,onOpenEntry:c}){return(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsxs)(`div`,{className:`section-header`,children:[(0,x.jsx)(`h3`,{children:`Breakdown`}),(0,x.jsxs)(`div`,{className:`section-header-controls`,children:[(0,x.jsx)(`input`,{className:`search-input mono`,style:{width:180},placeholder:`Search…`,value:r,onChange:e=>i(e.target.value)}),(0,x.jsx)(`button`,{className:`cat-tab ${n===`tool`?`active`:``}`,onClick:()=>a(`tool`),children:`By Tool`}),(0,x.jsx)(`button`,{className:`cat-tab ${n===`target`?`active`:``}`,onClick:()=>a(`target`),children:`By Target`})]})]}),(0,x.jsxs)(`div`,{className:`reports-table`,children:[(0,x.jsxs)(`div`,{className:`reports-thead table-thead`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{children:n===`tool`?`Tool`:`Target`}),(0,x.jsx)(`span`,{children:`Runs`}),(0,x.jsx)(`span`,{children:`Success`}),(0,x.jsx)(`span`,{children:`Failed`}),(0,x.jsx)(`span`,{children:`Avg Time`}),(0,x.jsx)(`span`,{children:`Last Run`})]}),t.map(t=>{let n=e[t],r=b(n),i=r.ok/r.total*100,a=i>=80?`var(--green)`:i>=50?`var(--amber)`:`var(--red)`,l=o.has(t),u=[...n].sort((e,t)=>t.ts.getTime()-e.ts.getTime());return(0,x.jsxs)(`div`,{className:`reports-group`,children:[(0,x.jsxs)(`button`,{className:`reports-row reports-row--clickable`,onClick:()=>s(t),children:[(0,x.jsx)(`span`,{className:`reports-chevron`,children:(0,x.jsx)(f,{open:l,size:12})}),(0,x.jsx)(`span`,{className:`mono reports-key`,children:t}),(0,x.jsx)(`span`,{className:`mono`,children:r.total}),(0,x.jsx)(`span`,{className:`mono`,style:{color:`var(--green)`},children:r.ok}),(0,x.jsx)(`span`,{className:`mono`,style:{color:r.failed>0?`var(--red)`:`var(--text-dim)`},children:r.failed}),(0,x.jsxs)(`span`,{className:`mono`,children:[d(r.avgTime,1),`s`]}),(0,x.jsxs)(`div`,{className:`reports-last-cell`,children:[(0,x.jsx)(`span`,{className:`progress-bar`,children:(0,x.jsx)(`span`,{className:`progress-bar__fill`,style:{width:`${i}%`,background:a}})}),(0,x.jsxs)(`span`,{className:`mono`,style:{fontSize:11,color:`var(--text-dim)`},children:[r.last.ts.toLocaleDateString(`en-GB`),` `,r.last.ts.toLocaleTimeString(`en-GB`)]})]})]}),l&&(0,x.jsx)(`div`,{className:`reports-runs`,children:u.map((e,t)=>(0,x.jsxs)(`button`,{className:`reports-run-row`,onClick:()=>c(e),children:[(0,x.jsx)(`span`,{className:`reports-run-dot ${e.result.success?`ok`:`fail`}`}),(0,x.jsx)(`span`,{className:`mono reports-run-tool`,children:e.tool}),(0,x.jsxs)(`span`,{className:`mono reports-run-time`,children:[e.ts.toLocaleDateString(`en-GB`),` `,e.ts.toLocaleTimeString(`en-GB`)]}),(0,x.jsxs)(`span`,{className:`mono reports-run-duration`,children:[d(e.result.execution_time,1),`s`]}),Object.entries(e.params).map(([e,t])=>(0,x.jsxs)(`span`,{className:`mono reports-run-param`,children:[e,`=`,(0,x.jsx)(`em`,{children:String(t)})]},e))]},t))})]},t)})]})]})}var w={CRITICAL:`var(--red)`,HIGH:`var(--red)`,MEDIUM:`var(--amber)`,LOW:`var(--green)`,UNKNOWN:`var(--text-dim)`};function T(e){return w[(e??``).toUpperCase()]??`var(--text-dim)`}function E(e){if(!e)return`—`;let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()}function D({session:e}){let{pushToast:t}=u(),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(!1);async function l(){if(!r&&a===null){c(!0);try{let t=await p.llmSessionDetail(e.session_id);o(t.vulnerabilities)}catch(e){o([]),t(`error`,`Failed to load findings: ${e}`)}finally{c(!1)}}i(e=>!e)}let d=T(e.risk_level);return(0,x.jsxs)(`div`,{className:`reports-group`,children:[(0,x.jsxs)(`button`,{className:`ai-report-row`,onClick:l,children:[(0,x.jsx)(`span`,{className:`reports-chevron`,children:(0,x.jsx)(f,{open:r,size:12})}),(0,x.jsx)(`span`,{className:`mono ai-report-target`,children:e.target||`—`}),(0,x.jsx)(`span`,{className:`mono`,style:{color:d,fontWeight:600},children:e.risk_level??`UNKNOWN`}),(0,x.jsx)(`span`,{className:`mono ai-report-session`,children:e.session_id}),(0,x.jsx)(`span`,{className:`mono ai-report-date`,children:E(e.completed_at??e.started_at)}),(0,x.jsx)(`span`,{className:`mono ai-report-model`,title:`${e.provider??``} / ${e.model??``}`,children:e.model??`—`})]}),r&&(0,x.jsxs)(`div`,{className:`ai-report-detail`,children:[e.summary&&(0,x.jsx)(`p`,{className:`ai-report-summary`,children:e.summary}),s&&(0,x.jsxs)(`div`,{className:`ai-report-loading`,children:[(0,x.jsx)(n,{size:12,className:`spin`}),` Loading findings…`]}),a&&a.length===0&&!s&&(0,x.jsx)(`p`,{className:`ai-report-no-vulns`,children:`No findings recorded.`}),a&&a.length>0&&(0,x.jsx)(`div`,{className:`ai-report-vulns`,children:a.map(e=>(0,x.jsxs)(`div`,{className:`ai-report-vuln`,children:[(0,x.jsx)(`span`,{className:`ai-report-vuln-badge`,style:{background:T(e.severity),color:`#000`},children:e.severity||`INFO`}),(0,x.jsx)(`span`,{className:`ai-report-vuln-name`,children:e.vuln_name||`Unnamed finding`}),(e.port||e.service)&&(0,x.jsx)(`span`,{className:`mono ai-report-vuln-port`,children:[e.port,e.service].filter(Boolean).join(` / `)}),e.description&&(0,x.jsx)(`p`,{className:`ai-report-vuln-desc`,children:e.description}),e.fix_text&&(0,x.jsxs)(`p`,{className:`ai-report-vuln-fix`,children:[`Fix: `,e.fix_text]})]},e.id))})]})]})}function O(){let[e,t]=(0,_.useState)(null),[r,i]=(0,_.useState)(!1),[a,s]=(0,_.useState)(null),c=(0,_.useCallback)(async()=>{i(!0),s(null);try{let e=await p.llmSessions(100);t(e.sessions)}catch(e){s(String(e))}finally{i(!1)}},[]);return(0,_.useEffect)(()=>{c()},[c]),(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsxs)(`div`,{className:`section-header`,children:[(0,x.jsxs)(`h3`,{children:[(0,x.jsx)(o,{size:15,style:{verticalAlign:`middle`,marginRight:6}}),`AI Analysis Reports`,e!==null&&(0,x.jsx)(`span`,{className:`badge`,style:{marginLeft:8},children:e.length})]}),(0,x.jsx)(`button`,{className:`icon-btn`,onClick:()=>void c(),title:`Refresh`,children:(0,x.jsx)(n,{size:14,className:r?`spin`:void 0})})]}),r&&e===null&&(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(n,{size:24,className:`spin`,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`Loading AI analysis reports…`})]}),a&&(0,x.jsx)(`div`,{className:`tasks-empty`,children:(0,x.jsx)(`p`,{style:{color:`var(--red)`},children:a})}),e!==null&&e.length===0&&!r&&(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(o,{size:32,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`No AI analysis reports yet. Run the AI Analyze step inside a session.`})]}),e!==null&&e.length>0&&(0,x.jsxs)(`div`,{className:`reports-table`,children:[(0,x.jsxs)(`div`,{className:`ai-report-thead`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{children:`Target`}),(0,x.jsx)(`span`,{children:`Risk`}),(0,x.jsx)(`span`,{children:`Session`}),(0,x.jsx)(`span`,{children:`Date`}),(0,x.jsx)(`span`,{children:`Model`})]}),e.map(e=>(0,x.jsx)(D,{session:e},e.session_id))]})]})}function k({section:e,setSection:t}){return(0,x.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`timeline`?` browser-nav-item--active`:``}`,onClick:()=>t(`timeline`),children:[(0,x.jsx)(a,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`Timeline`})]}),(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`breakdown`?` browser-nav-item--active`:``}`,onClick:()=>t(`breakdown`),children:[(0,x.jsx)(r,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`Breakdown`})]}),(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`ai`?` browser-nav-item--active`:``}`,onClick:()=>t(`ai`),children:[(0,x.jsx)(o,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`AI Analysis`})]})]})}function A({runHistory:e}){let[t,n]=(0,_.useState)(`timeline`),[o,l]=(0,_.useState)(`tool`),[u,f]=(0,_.useState)(``),[p,y]=(0,_.useState)(new Set),[b,w]=(0,_.useState)(null),T=e.reduce((e,t)=>((e[t.tool]=e[t.tool]||[]).push(t),e),{}),E=e.reduce((e,t)=>{let n=v(t);return(e[n]=e[n]||[]).push(t),e},{}),D=o===`tool`?T:E;function A(e){y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let j=u.toLowerCase(),M=Object.keys(D).filter(e=>!j||e.toLowerCase().includes(j)).sort();if(e.length===0)return(0,x.jsx)(`div`,{className:`reports-page-empty`,children:(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(c,{size:32,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`No run history yet. Execute tools from the Run tab to see reports.`})]})});let N=e.filter(e=>e.result.success).length,P=e.length-N;return(0,x.jsxs)(x.Fragment,{children:[b&&(0,x.jsx)(g,{entry:b,onClose:()=>w(null)}),(0,x.jsx)(m,{className:`reports-page`,top:(0,x.jsx)(h,{items:[{icon:(0,x.jsx)(r,{size:16}),label:`Total Runs · all time`,value:e.length,accent:`var(--blue)`},{icon:(0,x.jsx)(i,{size:16}),label:`Success Rate · ${N} ok · ${P} failed`,value:e.length>0?`${(N/e.length*100).toFixed(0)}%`:`—`,accent:`var(--green)`},{icon:(0,x.jsx)(a,{size:16}),label:`Avg Time · per run`,value:`${d(e.length>0?e.reduce((e,t)=>e+(t.result.execution_time??0),0)/e.length:void 0,1)}s`,accent:`var(--purple)`},{icon:(0,x.jsx)(s,{size:16}),label:`Unique Tools · used`,value:Object.keys(T).length,accent:`var(--amber)`}]}),nav:(0,x.jsx)(k,{section:t,setSection:n}),main:(0,x.jsx)(`div`,{className:`browser-main`,children:(0,x.jsxs)(`div`,{className:`browser-scroll`,children:[t===`timeline`&&(0,x.jsx)(S,{runHistory:e,onOpenEntry:w}),t===`breakdown`&&(0,x.jsx)(C,{grouped:D,keys:M,groupBy:o,search:u,setSearch:f,setGroupBy:l,expanded:p,toggleExpanded:A,onOpenEntry:w}),t===`ai`&&(0,x.jsx)(O,{})]})})})]})}export{A as default}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Gt as t,Lt as n,M as r,Ot as i,gt as a,nn as o,qt as s,u as c}from"./vendor-lucide-DUPkM7me.js";import{r as l}from"./vendor-markdown-BanIOC5U.js";import{b as u,l as d,r as f,x as p}from"./index-DuJ0P36w.js";import{t as m}from"./BrowserPage-BmNP5Bdw.js";import{t as h}from"./KpiStrip-L-nGhyMV.js";import{t as g}from"./RunResultModal-BlkDYx_t.js";var _=e(o(),1);function v(e){for(let t of[`target`,`url`,`host`,`ip`,`domain`,`file`]){let n=e.params[t];if(n)return String(n)}let t=Object.values(e.params)[0];return t?String(t):`(no target)`}function y(e){let t=new Map;for(let n of e){let e=n.ts.toLocaleDateString(`en-GB`,{day:`2-digit`,month:`short`,year:`numeric`});t.has(e)||t.set(e,{label:e,date:n.ts,entries:[]}),t.get(e).entries.push(n)}return Array.from(t.values()).sort((e,t)=>t.date.getTime()-e.date.getTime()).map(({label:e,entries:t})=>({label:e,entries:t}))}function b(e){let t=e.filter(e=>e.result.success).length,n=e.reduce((e,t)=>e+(t.result.execution_time??0),0)/e.length,r=e.reduce((e,t)=>e.ts>t.ts?e:t);return{total:e.length,ok:t,failed:e.length-t,avgTime:n,last:r}}var x=l();function S({runHistory:e,onOpenEntry:t}){let n=[...e].sort((e,t)=>t.ts.getTime()-e.ts.getTime()).slice(0,60),r=y(n);return(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsx)(`div`,{className:`section-header`,children:(0,x.jsxs)(`h3`,{children:[`Run Timeline `,(0,x.jsxs)(`span`,{className:`section-meta`,children:[`last `,n.length]})]})}),(0,x.jsx)(`div`,{className:`reports-timeline-wrap`,children:r.map(({label:e,entries:n})=>(0,x.jsxs)(`div`,{className:`reports-timeline-group`,children:[(0,x.jsx)(`span`,{className:`reports-timeline-date`,children:e}),(0,x.jsx)(`div`,{className:`reports-timeline-dots`,children:n.map((e,n)=>(0,x.jsx)(`button`,{className:`reports-timeline-dot ${e.result.success?`ok`:`fail`}`,title:`${e.tool} — ${e.ts.toLocaleTimeString(`en-GB`)} — ${e.result.success?`ok`:`failed`} (${d(e.result.execution_time,1)}s)`,onClick:()=>t(e)},n))})]},e))})]})}function C({grouped:e,keys:t,groupBy:n,search:r,setSearch:i,setGroupBy:a,expanded:o,toggleExpanded:s,onOpenEntry:c}){return(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsxs)(`div`,{className:`section-header`,children:[(0,x.jsx)(`h3`,{children:`Breakdown`}),(0,x.jsxs)(`div`,{className:`section-header-controls`,children:[(0,x.jsx)(`input`,{className:`search-input mono`,style:{width:180},placeholder:`Search…`,value:r,onChange:e=>i(e.target.value)}),(0,x.jsx)(`button`,{className:`cat-tab ${n===`tool`?`active`:``}`,onClick:()=>a(`tool`),children:`By Tool`}),(0,x.jsx)(`button`,{className:`cat-tab ${n===`target`?`active`:``}`,onClick:()=>a(`target`),children:`By Target`})]})]}),(0,x.jsxs)(`div`,{className:`reports-table`,children:[(0,x.jsxs)(`div`,{className:`reports-thead table-thead`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{children:n===`tool`?`Tool`:`Target`}),(0,x.jsx)(`span`,{children:`Runs`}),(0,x.jsx)(`span`,{children:`Success`}),(0,x.jsx)(`span`,{children:`Failed`}),(0,x.jsx)(`span`,{children:`Avg Time`}),(0,x.jsx)(`span`,{children:`Last Run`})]}),t.map(t=>{let n=e[t],r=b(n),i=r.ok/r.total*100,a=i>=80?`var(--green)`:i>=50?`var(--amber)`:`var(--red)`,l=o.has(t),u=[...n].sort((e,t)=>t.ts.getTime()-e.ts.getTime());return(0,x.jsxs)(`div`,{className:`reports-group`,children:[(0,x.jsxs)(`button`,{className:`reports-row reports-row--clickable`,onClick:()=>s(t),children:[(0,x.jsx)(`span`,{className:`reports-chevron`,children:(0,x.jsx)(f,{open:l,size:12})}),(0,x.jsx)(`span`,{className:`mono reports-key`,children:t}),(0,x.jsx)(`span`,{className:`mono`,children:r.total}),(0,x.jsx)(`span`,{className:`mono`,style:{color:`var(--green)`},children:r.ok}),(0,x.jsx)(`span`,{className:`mono`,style:{color:r.failed>0?`var(--red)`:`var(--text-dim)`},children:r.failed}),(0,x.jsxs)(`span`,{className:`mono`,children:[d(r.avgTime,1),`s`]}),(0,x.jsxs)(`div`,{className:`reports-last-cell`,children:[(0,x.jsx)(`span`,{className:`progress-bar`,children:(0,x.jsx)(`span`,{className:`progress-bar__fill`,style:{width:`${i}%`,background:a}})}),(0,x.jsxs)(`span`,{className:`mono`,style:{fontSize:11,color:`var(--text-dim)`},children:[r.last.ts.toLocaleDateString(`en-GB`),` `,r.last.ts.toLocaleTimeString(`en-GB`)]})]})]}),l&&(0,x.jsx)(`div`,{className:`reports-runs`,children:u.map((e,t)=>(0,x.jsxs)(`button`,{className:`reports-run-row`,onClick:()=>c(e),children:[(0,x.jsx)(`span`,{className:`reports-run-dot ${e.result.success?`ok`:`fail`}`}),(0,x.jsx)(`span`,{className:`mono reports-run-tool`,children:e.tool}),(0,x.jsxs)(`span`,{className:`mono reports-run-time`,children:[e.ts.toLocaleDateString(`en-GB`),` `,e.ts.toLocaleTimeString(`en-GB`)]}),(0,x.jsxs)(`span`,{className:`mono reports-run-duration`,children:[d(e.result.execution_time,1),`s`]}),Object.entries(e.params).map(([e,t])=>(0,x.jsxs)(`span`,{className:`mono reports-run-param`,children:[e,`=`,(0,x.jsx)(`em`,{children:String(t)})]},e))]},t))})]},t)})]})]})}var w={CRITICAL:`var(--red)`,HIGH:`var(--red)`,MEDIUM:`var(--amber)`,LOW:`var(--green)`,UNKNOWN:`var(--text-dim)`};function T(e){return w[(e??``).toUpperCase()]??`var(--text-dim)`}function E(e){if(!e)return`—`;let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()}function D({session:e}){let{pushToast:t}=u(),[n,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(!1);async function l(){if(!n&&a===null){c(!0);try{let t=await p.llmSessionDetail(e.session_id);o(t.vulnerabilities)}catch(e){o([]),t(`error`,`Failed to load findings: ${e}`)}finally{c(!1)}}i(e=>!e)}let d=T(e.risk_level);return(0,x.jsxs)(`div`,{className:`reports-group`,children:[(0,x.jsxs)(`button`,{className:`ai-report-row`,onClick:l,children:[(0,x.jsx)(`span`,{className:`reports-chevron`,children:(0,x.jsx)(f,{open:n,size:12})}),(0,x.jsx)(`span`,{className:`mono ai-report-target`,children:e.target||`—`}),(0,x.jsx)(`span`,{className:`mono`,style:{color:d,fontWeight:600},children:e.risk_level??`UNKNOWN`}),(0,x.jsx)(`span`,{className:`mono ai-report-session`,children:e.session_id}),(0,x.jsx)(`span`,{className:`mono ai-report-date`,children:E(e.completed_at??e.started_at)}),(0,x.jsx)(`span`,{className:`mono ai-report-model`,title:`${e.provider??``} / ${e.model??``}`,children:e.model??`—`})]}),n&&(0,x.jsxs)(`div`,{className:`ai-report-detail`,children:[e.summary&&(0,x.jsx)(`p`,{className:`ai-report-summary`,children:e.summary}),s&&(0,x.jsxs)(`div`,{className:`ai-report-loading`,children:[(0,x.jsx)(r,{size:12,className:`spin`}),` Loading findings…`]}),a&&a.length===0&&!s&&(0,x.jsx)(`p`,{className:`ai-report-no-vulns`,children:`No findings recorded.`}),a&&a.length>0&&(0,x.jsx)(`div`,{className:`ai-report-vulns`,children:a.map(e=>(0,x.jsxs)(`div`,{className:`ai-report-vuln`,children:[(0,x.jsx)(`span`,{className:`ai-report-vuln-badge`,style:{background:T(e.severity),color:`#000`},children:e.severity||`INFO`}),(0,x.jsx)(`span`,{className:`ai-report-vuln-name`,children:e.vuln_name||`Unnamed finding`}),(e.port||e.service)&&(0,x.jsx)(`span`,{className:`mono ai-report-vuln-port`,children:[e.port,e.service].filter(Boolean).join(` / `)}),e.description&&(0,x.jsx)(`p`,{className:`ai-report-vuln-desc`,children:e.description}),e.fix_text&&(0,x.jsxs)(`p`,{className:`ai-report-vuln-fix`,children:[`Fix: `,e.fix_text]})]},e.id))})]})]})}function O(){let[e,t]=(0,_.useState)(null),[n,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),c=(0,_.useCallback)(async()=>{i(!0),o(null);try{let e=await p.llmSessions(100);t(e.sessions)}catch(e){o(String(e))}finally{i(!1)}},[]);return(0,_.useEffect)(()=>{c()},[c]),(0,x.jsxs)(`section`,{className:`section`,children:[(0,x.jsxs)(`div`,{className:`section-header`,children:[(0,x.jsxs)(`h3`,{children:[(0,x.jsx)(s,{size:15,style:{verticalAlign:`middle`,marginRight:6}}),`AI Analysis Reports`,e!==null&&(0,x.jsx)(`span`,{className:`badge`,style:{marginLeft:8},children:e.length})]}),(0,x.jsx)(`button`,{className:`icon-btn`,onClick:()=>void c(),title:`Refresh`,children:(0,x.jsx)(r,{size:14,className:n?`spin`:void 0})})]}),n&&e===null&&(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(r,{size:24,className:`spin`,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`Loading AI analysis reports…`})]}),a&&(0,x.jsx)(`div`,{className:`tasks-empty`,children:(0,x.jsx)(`p`,{style:{color:`var(--red)`},children:a})}),e!==null&&e.length===0&&!n&&(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(s,{size:32,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`No AI analysis reports yet. Run the AI Analyze step inside a session.`})]}),e!==null&&e.length>0&&(0,x.jsxs)(`div`,{className:`reports-table`,children:[(0,x.jsxs)(`div`,{className:`ai-report-thead`,children:[(0,x.jsx)(`span`,{}),(0,x.jsx)(`span`,{children:`Target`}),(0,x.jsx)(`span`,{children:`Risk`}),(0,x.jsx)(`span`,{children:`Session`}),(0,x.jsx)(`span`,{children:`Date`}),(0,x.jsx)(`span`,{children:`Model`})]}),e.map(e=>(0,x.jsx)(D,{session:e},e.session_id))]})]})}function k({section:e,setSection:n}){return(0,x.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`timeline`?` browser-nav-item--active`:``}`,onClick:()=>n(`timeline`),children:[(0,x.jsx)(i,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`Timeline`})]}),(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`breakdown`?` browser-nav-item--active`:``}`,onClick:()=>n(`breakdown`),children:[(0,x.jsx)(t,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`Breakdown`})]}),(0,x.jsxs)(`button`,{className:`browser-nav-item${e===`ai`?` browser-nav-item--active`:``}`,onClick:()=>n(`ai`),children:[(0,x.jsx)(s,{size:13}),(0,x.jsx)(`span`,{className:`browser-nav-label`,children:`AI Analysis`})]})]})}function A({runHistory:e}){let[r,o]=(0,_.useState)(`timeline`),[s,l]=(0,_.useState)(`tool`),[u,f]=(0,_.useState)(``),[p,y]=(0,_.useState)(new Set),[b,w]=(0,_.useState)(null),T=e.reduce((e,t)=>((e[t.tool]=e[t.tool]||[]).push(t),e),{}),E=e.reduce((e,t)=>{let n=v(t);return(e[n]=e[n]||[]).push(t),e},{}),D=s===`tool`?T:E;function A(e){y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let j=u.toLowerCase(),M=Object.keys(D).filter(e=>!j||e.toLowerCase().includes(j)).sort();if(e.length===0)return(0,x.jsx)(`div`,{className:`reports-page-empty`,children:(0,x.jsxs)(`div`,{className:`tasks-empty`,children:[(0,x.jsx)(a,{size:32,color:`var(--text-dim)`}),(0,x.jsx)(`p`,{children:`No run history yet. Execute tools from the Run tab to see reports.`})]})});let N=e.filter(e=>e.result.success).length,P=e.length-N;return(0,x.jsxs)(x.Fragment,{children:[b&&(0,x.jsx)(g,{entry:b,onClose:()=>w(null)}),(0,x.jsx)(m,{className:`reports-page`,top:(0,x.jsx)(h,{items:[{icon:(0,x.jsx)(t,{size:16}),label:`Total Runs · all time`,value:e.length,accent:`var(--blue)`},{icon:(0,x.jsx)(n,{size:16}),label:`Success Rate · ${N} ok · ${P} failed`,value:e.length>0?`${(N/e.length*100).toFixed(0)}%`:`—`,accent:`var(--green)`},{icon:(0,x.jsx)(i,{size:16}),label:`Avg Time · per run`,value:`${d(e.length>0?e.reduce((e,t)=>e+(t.result.execution_time??0),0)/e.length:void 0,1)}s`,accent:`var(--purple)`},{icon:(0,x.jsx)(c,{size:16}),label:`Unique Tools · used`,value:Object.keys(T).length,accent:`var(--amber)`}]}),nav:(0,x.jsx)(k,{section:r,setSection:o}),main:(0,x.jsx)(`div`,{className:`browser-main`,children:(0,x.jsxs)(`div`,{className:`browser-scroll`,children:[r===`timeline`&&(0,x.jsx)(S,{runHistory:e,onOpenEntry:w}),r===`breakdown`&&(0,x.jsx)(C,{grouped:D,keys:M,groupBy:s,search:u,setSearch:f,setGroupBy:l,expanded:p,toggleExpanded:A,onOpenEntry:w}),r===`ai`&&(0,x.jsx)(O,{})]})})})]})}export{A as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/ResourceSection-BDk7SrS4.js b/frontend/dashboard/assets/ResourceSection-BDk7SrS4.js deleted file mode 100644 index caa00e74e..000000000 --- a/frontend/dashboard/assets/ResourceSection-BDk7SrS4.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,Ct as n,G as r,Qt as i,at as a,it as o,s}from"./vendor-lucide-tZ8AzO6l.js";import{r as c}from"./vendor-markdown-CZSHC-G5.js";import{c as l,o as u,x as d}from"./index-DoDmaCqd.js";import{c as f,d as p,l as m,m as h,s as g,u as _}from"./vendor-recharts-BvkoFyWX.js";var v=c();function y({label:e,value:t,max:n=100,unit:r=`%`,color:i}){let a=Math.min(100,t/n*100),o=i||(a>80?`var(--red)`:a>60?`var(--amber)`:`var(--green)`);return(0,v.jsxs)(`div`,{className:`gauge-row`,children:[(0,v.jsx)(`div`,{className:`gauge-label`,children:e}),(0,v.jsx)(`div`,{className:`gauge-bar-wrap`,children:(0,v.jsx)(`div`,{className:`gauge-bar-bg`,children:(0,v.jsx)(`div`,{className:`gauge-bar-fill`,style:{width:`${a}%`,background:o}})})}),(0,v.jsxs)(`div`,{className:`gauge-val`,style:{color:o},children:[u(t),r]})]})}var b=e(t(),1),x=20,S=3e4;function C(e,t){let[n,r]=(0,b.useState)(e??null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(t??[]),[c,l]=(0,b.useState)(!1),u=(0,b.useRef)(null),f=(0,b.useRef)(null),p=(0,b.useRef)(null),m=(0,b.useRef)(0),h=(0,b.useRef)(!1);return(0,b.useEffect)(()=>{if(e)return;h.current=!1;function t(e){r(e.resources),a(e.resources_timestamp),s(t=>{let n={t:Date.now(),cpu:e.resources.cpu_percent,mem:e.resources.memory_percent,network_bytes_sent:e.resources.network_bytes_sent,network_bytes_recv:e.resources.network_bytes_recv},r=[...t,n];return r.length<=x?r:r.slice(r.length-x)})}function n(){f.current&&=(clearInterval(f.current),null)}function i(){u.current?.close(),u.current=null}function o(){p.current&&=(clearTimeout(p.current),null)}function c(){n(),l(!1);async function e(){try{let e=await d.dashboard();!h.current&&e.resources&&e.resources_timestamp&&t({resources:e.resources,resources_timestamp:e.resources_timestamp})}catch{}}e(),f.current=setInterval(e,5e3)}function g(){o();let e=++m.current,t=Math.min(S,1e3*2**(e-1));p.current=setTimeout(()=>{h.current||_()},t)}function _(){i();try{let e=d.resourcesStream();u.current=e,e.onopen=()=>{h.current||(m.current=0,o(),n(),l(!0))},e.onmessage=e=>{if(!h.current)try{let n=JSON.parse(e.data);n?.resources&&t(n)}catch{}},e.onerror=()=>{h.current||(l(!1),i(),c(),g())}}catch{if(h.current)return;l(!1),c(),g()}}return _(),()=>{h.current=!0,i(),n(),o()}},[e]),{resources:n,resources_timestamp:i,history:o,connected:c}}function w({data:e}){return(0,v.jsx)(`div`,{className:`chart-wrap`,children:(0,v.jsx)(h,{width:`100%`,height:120,children:(0,v.jsxs)(g,{data:e.map(e=>({...e,time:new Date(e.t).toLocaleTimeString(`en-GB`)})),margin:{top:4,right:4,left:-24,bottom:0},children:[(0,v.jsxs)(`defs`,{children:[(0,v.jsxs)(`linearGradient`,{id:`cpu-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,v.jsx)(`stop`,{offset:`5%`,stopColor:`var(--green)`,stopOpacity:.3}),(0,v.jsx)(`stop`,{offset:`95%`,stopColor:`var(--green)`,stopOpacity:0})]}),(0,v.jsxs)(`linearGradient`,{id:`mem-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,v.jsx)(`stop`,{offset:`5%`,stopColor:`var(--blue)`,stopOpacity:.3}),(0,v.jsx)(`stop`,{offset:`95%`,stopColor:`var(--blue)`,stopOpacity:0})]})]}),(0,v.jsx)(m,{dataKey:`time`,tick:{fill:`var(--text-dim)`,fontSize:10},interval:`preserveStartEnd`}),(0,v.jsx)(f,{domain:[0,100],tick:{fill:`var(--text-dim)`,fontSize:10}}),(0,v.jsx)(p,{contentStyle:{background:`var(--bg-card2)`,border:`1px solid var(--border)`,borderRadius:6,fontSize:12},labelStyle:{color:`var(--text-h)`}}),(0,v.jsx)(_,{type:`monotone`,dataKey:`cpu`,name:`CPU %`,stroke:`var(--green)`,fill:`url(#cpu-grad)`,strokeWidth:1.5,dot:!1}),(0,v.jsx)(_,{type:`monotone`,dataKey:`mem`,name:`Mem %`,stroke:`var(--blue)`,fill:`url(#mem-grad)`,strokeWidth:1.5,dot:!1})]})})})}function T({demoResources:e,demoHistory:t}){let{resources:c,resources_timestamp:d,history:f}=C(e,t),p=(()=>{let e=d;if(!e)return``;let t=e.includes(`T`)?e:e.replace(` `,`T`),n=t.replace(/([+-]\d{2}:\d{2})Z$/,`$1`),r=[n,`${n}Z`,t,e];for(let e of r){let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString(`en-GB`,{hour12:!1})}return e.match(/\b\d{2}:\d{2}:\d{2}\b/)?.[0]??``})();return c?(0,v.jsxs)(`section`,{className:`section`,children:[(0,v.jsxs)(`div`,{className:`section-header`,children:[(0,v.jsx)(`h3`,{children:`System Resources`}),(0,v.jsx)(`span`,{className:`section-meta mono`,children:p})]}),(0,v.jsxs)(`div`,{className:`resources-layout`,children:[(0,v.jsxs)(`div`,{className:`gauges-col`,children:[(0,v.jsx)(y,{label:`CPU`,value:c.cpu_percent,color:`var(--green)`}),(0,v.jsx)(y,{label:`Memory`,value:c.memory_percent,color:`var(--blue)`}),c.disk_percent!==void 0&&(0,v.jsx)(y,{label:`Disk`,value:c.disk_percent,color:`var(--purple)`}),(0,v.jsxs)(`div`,{className:`resource-detail-row`,children:[(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(n,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`CPU Usage`,children:[u(c.cpu_percent),`% CPU`]})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(r,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`Memory Usage`,children:[u(c.memory_used_gb,1),` / `,u(c.memory_total_gb,1),` GB`]})]}),c.disk_used_gb!==void 0&&(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(o,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`Disk Usage`,children:[u(c.disk_used_gb,1),` / `,u(c.disk_total_gb,1),` GB`]})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(s,{size:12,color:`var(--text-dim)`}),(0,v.jsx)(`span`,{title:`Total Sent`,children:l(c.network_bytes_sent)})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(a,{size:12,color:`var(--text-dim)`}),(0,v.jsx)(`span`,{title:`Total Received`,children:l(c.network_bytes_recv)})]}),c.load_avg&&(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(i,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{children:[`load `,c.load_avg.map(e=>u(e,2)).join(` `)]})]})]})]}),(0,v.jsxs)(`div`,{className:`chart-col`,children:[(0,v.jsxs)(`div`,{className:`chart-legend`,children:[(0,v.jsxs)(`span`,{children:[(0,v.jsx)(`span`,{className:`legend-dot`,style:{background:`var(--green)`}}),`CPU`]}),(0,v.jsxs)(`span`,{children:[(0,v.jsx)(`span`,{className:`legend-dot`,style:{background:`var(--blue)`}}),`Memory`]})]}),f.length>1?(0,v.jsx)(w,{data:f}):(0,v.jsx)(`p`,{className:`chart-placeholder`,children:`Collecting data…`})]})]})]}):(0,v.jsxs)(`section`,{className:`section`,children:[(0,v.jsx)(`div`,{className:`section-header`,children:(0,v.jsx)(`h3`,{children:`System Resources`})}),(0,v.jsx)(`p`,{className:`chart-placeholder`,children:`Connecting…`})]})}export{T as ResourceSection}; \ No newline at end of file diff --git a/frontend/dashboard/assets/ResourceSection-Cp2ywmGq.js b/frontend/dashboard/assets/ResourceSection-Cp2ywmGq.js new file mode 100644 index 000000000..1fb291988 --- /dev/null +++ b/frontend/dashboard/assets/ResourceSection-Cp2ywmGq.js @@ -0,0 +1 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Et as t,c as n,nn as r,ot as i,q as a,st as o,tn as s}from"./vendor-lucide-DUPkM7me.js";import{r as c}from"./vendor-markdown-BanIOC5U.js";import{c as l,o as u,x as d}from"./index-DuJ0P36w.js";import{c as f,d as p,l as m,m as h,s as g,u as _}from"./vendor-recharts-Dwgbdraq.js";var v=c();function y({label:e,value:t,max:n=100,unit:r=`%`,color:i}){let a=Math.min(100,t/n*100),o=i||(a>80?`var(--red)`:a>60?`var(--amber)`:`var(--green)`);return(0,v.jsxs)(`div`,{className:`gauge-row`,children:[(0,v.jsx)(`div`,{className:`gauge-label`,children:e}),(0,v.jsx)(`div`,{className:`gauge-bar-wrap`,children:(0,v.jsx)(`div`,{className:`gauge-bar-bg`,children:(0,v.jsx)(`div`,{className:`gauge-bar-fill`,style:{width:`${a}%`,background:o}})})}),(0,v.jsxs)(`div`,{className:`gauge-val`,style:{color:o},children:[u(t),r]})]})}var b=e(r(),1),x=20,S=3e4;function C(e,t){let[n,r]=(0,b.useState)(e??null),[i,a]=(0,b.useState)(``),[o,s]=(0,b.useState)(t??[]),[c,l]=(0,b.useState)(!1),u=(0,b.useRef)(null),f=(0,b.useRef)(null),p=(0,b.useRef)(null),m=(0,b.useRef)(0),h=(0,b.useRef)(!1);return(0,b.useEffect)(()=>{if(e)return;h.current=!1;function t(e){r(e.resources),a(e.resources_timestamp),s(t=>{let n={t:Date.now(),cpu:e.resources.cpu_percent,mem:e.resources.memory_percent,network_bytes_sent:e.resources.network_bytes_sent,network_bytes_recv:e.resources.network_bytes_recv},r=[...t,n];return r.length<=x?r:r.slice(r.length-x)})}function n(){f.current&&=(clearInterval(f.current),null)}function i(){u.current?.close(),u.current=null}function o(){p.current&&=(clearTimeout(p.current),null)}function c(){n(),l(!1);async function e(){try{let e=await d.dashboard();!h.current&&e.resources&&e.resources_timestamp&&t({resources:e.resources,resources_timestamp:e.resources_timestamp})}catch{}}e(),f.current=setInterval(e,5e3)}function g(){o();let e=++m.current,t=Math.min(S,1e3*2**(e-1));p.current=setTimeout(()=>{h.current||_()},t)}function _(){i();try{let e=d.resourcesStream();u.current=e,e.onopen=()=>{h.current||(m.current=0,o(),n(),l(!0))},e.onmessage=e=>{if(!h.current)try{let n=JSON.parse(e.data);n?.resources&&t(n)}catch{}},e.onerror=()=>{h.current||(l(!1),i(),c(),g())}}catch{if(h.current)return;l(!1),c(),g()}}return _(),()=>{h.current=!0,i(),n(),o()}},[e]),{resources:n,resources_timestamp:i,history:o,connected:c}}function w({data:e}){let t=e.map(e=>({...e,time:new Date(e.t).toLocaleTimeString(`en-GB`)}));return(0,v.jsx)(`div`,{className:`chart-wrap`,children:(0,v.jsx)(h,{width:`100%`,height:120,children:(0,v.jsxs)(g,{data:t,margin:{top:4,right:4,left:-24,bottom:0},children:[(0,v.jsxs)(`defs`,{children:[(0,v.jsxs)(`linearGradient`,{id:`cpu-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,v.jsx)(`stop`,{offset:`5%`,stopColor:`var(--green)`,stopOpacity:.3}),(0,v.jsx)(`stop`,{offset:`95%`,stopColor:`var(--green)`,stopOpacity:0})]}),(0,v.jsxs)(`linearGradient`,{id:`mem-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,v.jsx)(`stop`,{offset:`5%`,stopColor:`var(--blue)`,stopOpacity:.3}),(0,v.jsx)(`stop`,{offset:`95%`,stopColor:`var(--blue)`,stopOpacity:0})]})]}),(0,v.jsx)(m,{dataKey:`time`,tick:{fill:`var(--text-dim)`,fontSize:10},interval:`preserveStartEnd`}),(0,v.jsx)(f,{domain:[0,100],tick:{fill:`var(--text-dim)`,fontSize:10}}),(0,v.jsx)(p,{contentStyle:{background:`var(--bg-card2)`,border:`1px solid var(--border)`,borderRadius:6,fontSize:12},labelStyle:{color:`var(--text-h)`}}),(0,v.jsx)(_,{type:`monotone`,dataKey:`cpu`,name:`CPU %`,stroke:`var(--green)`,fill:`url(#cpu-grad)`,strokeWidth:1.5,dot:!1}),(0,v.jsx)(_,{type:`monotone`,dataKey:`mem`,name:`Mem %`,stroke:`var(--blue)`,fill:`url(#mem-grad)`,strokeWidth:1.5,dot:!1})]})})})}function T({demoResources:e,demoHistory:r}){let{resources:c,resources_timestamp:d,history:f}=C(e,r),p=(()=>{let e=d;if(!e)return``;let t=e.includes(`T`)?e:e.replace(` `,`T`),n=t.replace(/([+-]\d{2}:\d{2})Z$/,`$1`),r=[n,`${n}Z`,t,e];for(let e of r){let t=new Date(e);if(!Number.isNaN(t.getTime()))return t.toLocaleTimeString(`en-GB`,{hour12:!1})}return e.match(/\b\d{2}:\d{2}:\d{2}\b/)?.[0]??``})();return c?(0,v.jsxs)(`section`,{className:`section`,children:[(0,v.jsxs)(`div`,{className:`section-header`,children:[(0,v.jsx)(`h3`,{children:`System Resources`}),(0,v.jsx)(`span`,{className:`section-meta mono`,children:p})]}),(0,v.jsxs)(`div`,{className:`resources-layout`,children:[(0,v.jsxs)(`div`,{className:`gauges-col`,children:[(0,v.jsx)(y,{label:`CPU`,value:c.cpu_percent,color:`var(--green)`}),(0,v.jsx)(y,{label:`Memory`,value:c.memory_percent,color:`var(--blue)`}),c.disk_percent!==void 0&&(0,v.jsx)(y,{label:`Disk`,value:c.disk_percent,color:`var(--purple)`}),(0,v.jsxs)(`div`,{className:`resource-detail-row`,children:[(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(t,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`CPU Usage`,children:[u(c.cpu_percent),`% CPU`]})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(a,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`Memory Usage`,children:[u(c.memory_used_gb,1),` / `,u(c.memory_total_gb,1),` GB`]})]}),c.disk_used_gb!==void 0&&(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(i,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{title:`Disk Usage`,children:[u(c.disk_used_gb,1),` / `,u(c.disk_total_gb,1),` GB`]})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(n,{size:12,color:`var(--text-dim)`}),(0,v.jsx)(`span`,{title:`Total Sent`,children:l(c.network_bytes_sent)})]}),(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(o,{size:12,color:`var(--text-dim)`}),(0,v.jsx)(`span`,{title:`Total Received`,children:l(c.network_bytes_recv)})]}),c.load_avg&&(0,v.jsxs)(`div`,{className:`resource-detail`,children:[(0,v.jsx)(s,{size:12,color:`var(--text-dim)`}),(0,v.jsxs)(`span`,{children:[`load `,c.load_avg.map(e=>u(e,2)).join(` `)]})]})]})]}),(0,v.jsxs)(`div`,{className:`chart-col`,children:[(0,v.jsxs)(`div`,{className:`chart-legend`,children:[(0,v.jsxs)(`span`,{children:[(0,v.jsx)(`span`,{className:`legend-dot`,style:{background:`var(--green)`}}),`CPU`]}),(0,v.jsxs)(`span`,{children:[(0,v.jsx)(`span`,{className:`legend-dot`,style:{background:`var(--blue)`}}),`Memory`]})]}),f.length>1?(0,v.jsx)(w,{data:f}):(0,v.jsx)(`p`,{className:`chart-placeholder`,children:`Collecting data…`})]})]})]}):(0,v.jsxs)(`section`,{className:`section`,children:[(0,v.jsx)(`div`,{className:`section-header`,children:(0,v.jsx)(`h3`,{children:`System Resources`})}),(0,v.jsx)(`p`,{className:`chart-placeholder`,children:`Connecting…`})]})}export{T as ResourceSection}; \ No newline at end of file diff --git a/frontend/dashboard/assets/RunPage-44IKOoZ3.js b/frontend/dashboard/assets/RunPage-44IKOoZ3.js new file mode 100644 index 000000000..e6159936a --- /dev/null +++ b/frontend/dashboard/assets/RunPage-44IKOoZ3.js @@ -0,0 +1,7 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,Bt as n,D as r,I as i,Lt as a,M as o,Rt as s,St as c,Ut as l,W as u,h as d,n as f,nn as p,p as m}from"./vendor-lucide-DUPkM7me.js";import{r as h}from"./vendor-markdown-BanIOC5U.js";import{a as g,b as _,f as v,l as y,n as b,r as x,u as S,x as C}from"./index-DuJ0P36w.js";import{t as w}from"./RunResultModal-BlkDYx_t.js";import{r as T,t as E}from"./shared-BFigPD4i.js";import{n as D,t as O}from"./toolUtils-CYt55nd9.js";var k=e(p(),1);function A(e,t){let n=[];n.push(`Comparing ${e.tool}`),n.push(``),n.push(`Current: exit=${e.result.return_code}, success=${e.result.success}, time=${y(e.result.execution_time,2)}s`),n.push(`Previous: exit=${t.result.return_code}, success=${t.result.success}, time=${y(t.result.execution_time,2)}s`),n.push(``);let r=(e.result.stdout||e.result.stderr||``).trim(),i=(t.result.stdout||t.result.stderr||``).trim();if(!r&&!i)return n.push(`No output in either run.`),n.join(` +`);if(r===i)return n.push(`Output is identical.`),n.join(` +`);let a=r.split(` +`),o=new Set(i.split(` +`)),s=a.filter(e=>!o.has(e)).slice(0,40),c=i.split(` +`),l=new Set(a),u=c.filter(e=>!l.has(e)).slice(0,40);if(s.length>0){n.push(`Added lines:`);for(let e of s)n.push(`+ ${e}`);n.push(``)}if(u.length>0){n.push(`Removed lines:`);for(let e of u)n.push(`- ${e}`)}return n.join(` +`)}var j=h();function M({search:e,setSearch:n,activeCat:r,setActiveCat:i,cats:a,favorites:o,filtered:s,selected:c,onSelectTool:l}){return(0,j.jsxs)(`div`,{className:`run-picker`,children:[(0,j.jsxs)(`div`,{className:`run-picker-controls`,children:[(0,j.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,j.jsx)(`input`,{className:`search-input mono`,placeholder:`Search tools…`,value:e,onChange:e=>n(e.target.value)}),e.trim().length>0&&(0,j.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>n(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,j.jsx)(t,{size:12})})]}),(0,j.jsx)(`div`,{className:`cat-tabs run-cat-tabs`,children:a.map(e=>(0,j.jsx)(`button`,{className:`cat-tab ${r===e?`active`:``}`,onClick:()=>i(r===e?`all`:e),children:e.replace(/_/g,` `)},e))})]}),(0,j.jsxs)(`div`,{className:`run-tool-list`,children:[o.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`run-tool-group-label`,children:`Favorites`}),o.map(e=>(0,j.jsxs)(`button`,{className:`run-tool-item run-tool-item--favorite${c?.name===e.name?` active`:``}`,onClick:()=>l(e),children:[(0,j.jsx)(`span`,{className:`run-tool-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`run-tool-cat`,children:e.category.replace(/_/g,` `)})]},e.name)),(0,j.jsx)(`div`,{className:`run-tool-group-label`,children:`All Tools`})]}),s.map(e=>(0,j.jsxs)(`button`,{className:`run-tool-item${c?.name===e.name?` active`:``}`,onClick:()=>l(e),children:[(0,j.jsx)(`span`,{className:`run-tool-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`run-tool-cat`,children:e.category.replace(/_/g,` `)})]},e.name))]})]})}function N({selected:e,toolsStatus:r,fieldValues:f,setFieldValues:p,showOptional:m,setShowOptional:h,running:_,runError:v,liveOutput:b,isFavorite:x,onToggleFavorite:S,onRunTool:C,viewEntry:w,autoTopology:T,setAutoTopology:D,onExportTopology:O}){let A=(0,k.useRef)(null),M=e?Object.keys(e.params):[],N=e?Object.keys(e.optional):[];return(0,k.useEffect)(()=>{if(!e||_)return;let t=window.requestAnimationFrame(()=>{(A.current?.querySelector(`input.run-field-input:not([disabled])`))?.focus()});return()=>window.cancelAnimationFrame(t)},[e?.name,_]),(0,j.jsx)(`div`,{className:`run-main`,children:e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`run-form-header`,children:[(0,j.jsx)(`span`,{className:`run-form-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`modal-cat`,children:e.category.replace(/_/g,` `)}),r[e.name]===!0&&(0,j.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,j.jsx)(a,{size:11}),` installed`]}),r[e.name]===!1&&(0,j.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,j.jsx)(t,{size:11}),` not installed`]}),(0,j.jsxs)(`button`,{className:`run-favorite-toggle${x?` active`:``}`,onClick:S,title:x?`Unstar this tool`:`Star this tool`,children:[(0,j.jsx)(d,{size:12}),x?`Starred`:`Star`]})]}),(0,j.jsx)(`p`,{className:`run-form-desc`,children:e.desc}),(0,j.jsxs)(`div`,{className:`run-form`,ref:A,children:[M.map(e=>(0,j.jsx)(E,{name:e,value:f[e]??``,onChange:t=>p(n=>({...n,[e]:t})),required:!0},e)),N.length>0&&(0,j.jsxs)(`button`,{className:`run-opt-btn`,onClick:()=>h(e=>!e),children:[m?(0,j.jsx)(n,{size:12}):(0,j.jsx)(l,{size:12}),`Optional parameters (`,N.length,`)`]}),m&&N.map(t=>(0,j.jsx)(E,{name:t,value:f[t]??``,onChange:e=>p(n=>({...n,[t]:e})),isBoolean:typeof e.optional[t]==`boolean`},t)),v&&(0,j.jsxs)(`div`,{className:`run-error`,children:[(0,j.jsx)(s,{size:13}),` `,v]}),e.topology_capable&&(0,j.jsxs)(`label`,{className:`run-topology-toggle`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:T,onChange:e=>D(e.target.checked)}),(0,j.jsx)(u,{size:12}),` Add results to topology map`]}),(0,j.jsx)(`button`,{className:`run-submit`,onClick:C,disabled:_,children:_?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(o,{size:13,className:`spin`}),` Running…`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(i,{size:13}),` Run `,e.name]})})]}),(_||w)&&(0,j.jsxs)(`div`,{className:`run-output`,children:[(0,j.jsx)(`div`,{className:`run-output-header`,children:_?(0,j.jsxs)(`span`,{className:`run-output-status running`,children:[(0,j.jsx)(o,{size:12,className:`spin`}),` Running…`]}):w&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`span`,{className:`run-output-status ${w.result.success?`ok`:`fail`}`,children:[w.result.success?(0,j.jsx)(a,{size:12}):(0,j.jsx)(t,{size:12}),w.result.success?`Success`:`Failed`]}),(0,j.jsxs)(`span`,{className:`run-output-meta mono`,children:[`exit `,w.result.return_code]}),(0,j.jsxs)(`span`,{className:`run-output-meta mono`,children:[y(w.result.execution_time,2),`s`]}),w.result.timed_out&&(0,j.jsx)(`span`,{className:`run-output-meta amber`,children:`Timed out`}),w.result.partial_results&&(0,j.jsx)(`span`,{className:`run-output-meta amber`,children:`Partial`}),(0,j.jsxs)(`div`,{className:`run-export-btns`,children:[(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>g(w,`txt`),title:`Export as .txt`,children:[(0,j.jsx)(c,{size:11}),` TXT`]}),(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>g(w,`json`),title:`Export as .json`,children:[(0,j.jsx)(c,{size:11}),` JSON`]}),e.topology_capable&&(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>O(w),title:`Export to topology map`,children:[(0,j.jsx)(u,{size:11}),` Topology`]})]})]})}),_&&b&&(0,j.jsx)(`pre`,{className:`run-output-pre`,children:b}),w&&(0,j.jsx)(`pre`,{className:`run-output-pre`,children:w.result.stdout||w.result.stderr||`(no output)`})]})]}):(0,j.jsxs)(`div`,{className:`run-empty`,children:[(0,j.jsx)(i,{size:36,color:`var(--text-dim)`}),(0,j.jsx)(`p`,{children:`Select a tool from the list`})]})})}function P(e,t){let n=t.toLowerCase();return n?e.filter(e=>e.tool.includes(n)||Object.values(e.params).some(e=>String(e).toLowerCase().includes(n))):e}function F(e){let t={};for(let n of e){let e=(n.ts instanceof Date?n.ts:new Date(n.ts)).toLocaleDateString(`en-GB`,{year:`numeric`,month:`short`,day:`numeric`});t[e]||(t[e]=[]),t[e].push(n)}return Object.keys(t).sort((e,t)=>new Date(t).getTime()-new Date(e).getTime()).map(e=>({dateLabel:e,entries:t[e]}))}function ee({history:e,setHistory:n,onRefresh:i,onClearHistory:a,histSearch:s,setHistSearch:c,viewEntry:l,onOpenModalEntry:u}){let{pushToast:d}=_(),[f,p]=k.useState(!1),[m,h]=k.useState(!1),[g,v]=k.useState({}),y=(0,k.useMemo)(()=>P(e,s),[e,s]),S=(0,k.useMemo)(()=>F(y),[y]);k.useEffect(()=>{v(e=>{let t={};return S.forEach((n,r)=>{Object.prototype.hasOwnProperty.call(e,n.dateLabel)?t[n.dateLabel]=e[n.dateLabel]:t[n.dateLabel]=r!==0}),t})},[S]);async function C(){h(!0);try{a?await a():n([]),d(`success`,`Run history cleared`),c(``),p(!1)}finally{h(!1)}}return(0,j.jsxs)(`div`,{className:`run-history`,children:[(0,j.jsxs)(`div`,{className:`run-history-header`,children:[(0,j.jsx)(`span`,{children:`History`}),(0,j.jsx)(`span`,{className:`badge`,children:e.length}),i&&(0,j.jsx)(`button`,{className:`run-history-refresh`,title:`Fetch server-side runs`,onClick:i,children:(0,j.jsx)(o,{size:12})}),e.length>0&&(0,j.jsx)(`button`,{className:`run-history-clear`,title:`Clear history`,onClick:()=>p(!0),children:(0,j.jsx)(t,{size:12})})]}),(0,j.jsx)(b,{isOpen:f,title:`Clear Run History`,description:`This deletes all recorded runs from the dashboard history. This action is immediate and cannot be undone.`,impactItems:[`Run History will be emptied`,`Reports is based on run history and will lose data`],confirmLabel:`Yes, clear history`,cancelLabel:`Keep history`,confirmVariant:`danger`,isConfirming:m,onConfirm:C,onClose:()=>p(!1)}),e.length>0&&(0,j.jsxs)(`div`,{className:`run-history-search`,children:[(0,j.jsx)(`input`,{className:`run-history-search-input mono`,placeholder:`Filter…`,value:s,onChange:e=>c(e.target.value)}),s&&(0,j.jsx)(`button`,{className:`run-history-search-clear`,onClick:()=>c(``),children:(0,j.jsx)(t,{size:11})})]}),(0,j.jsx)(`div`,{className:`run-history-list`,children:y.length===0?(0,j.jsx)(`p`,{className:`run-history-empty`,children:s?`No matches`:`No runs yet`}):(0,j.jsx)(j.Fragment,{children:S.map(e=>(0,j.jsxs)(k.Fragment,{children:[(0,j.jsxs)(`button`,{className:`run-history-date run-history-date-toggle`,onClick:()=>v(t=>({...t,[e.dateLabel]:!t[e.dateLabel]})),children:[(0,j.jsx)(x,{open:!g[e.dateLabel],size:11}),(0,j.jsx)(`span`,{children:e.dateLabel}),(0,j.jsx)(`span`,{className:`run-history-date-count mono`,children:e.entries.length})]}),!g[e.dateLabel]&&e.entries.map(e=>(0,j.jsxs)(`button`,{className:`run-history-item${l?.id===e.id?` active`:``}`,onClick:()=>u(e),children:[(0,j.jsx)(`span`,{className:`run-hist-dot ${e.result.success?`ok`:`fail`}`}),(0,j.jsx)(`span`,{className:`run-hist-name mono`,children:e.tool}),e.source===`server`&&(0,j.jsx)(`span`,{title:`Recorded server-side`,className:`run-hist-server-icon`,children:(0,j.jsx)(r,{size:10})}),(0,j.jsx)(`span`,{className:`run-hist-time`,children:e.ts.toLocaleTimeString(`en-GB`)})]},e.id))]},e.dateLabel))})})]})}function I({recentTargets:e,onPickTarget:t,onClearRecentTargets:n}){return(0,j.jsx)(`div`,{className:`run-quickbar`,children:(0,j.jsxs)(`div`,{className:`run-quickbar-block`,children:[(0,j.jsxs)(`div`,{className:`run-quickbar-title`,children:[(0,j.jsx)(m,{size:12}),` Recent Targets`,e.length>0&&(0,j.jsx)(`button`,{className:`run-quick-clear`,onClick:n,title:`Clear recent targets`,children:(0,j.jsx)(f,{size:11})})]}),(0,j.jsxs)(`div`,{className:`run-quickbar-items`,children:[e.map(e=>(0,j.jsx)(`button`,{className:`run-quick-chip`,onClick:()=>t(e),children:e},e)),e.length===0&&(0,j.jsx)(`span`,{className:`run-quick-empty`,children:`No recent targets`})]})]})})}var te=`nyxstrike_run_favorites`,ne=`nyxstrike_run_recent_targets`,re=`nyxstrike_run_topology_session`;function ie(e){for(let t of[`target`,`url`,`domain`,`host`,`ip`,`rhost`,`hostname`]){let n=e[t];if(n==null)continue;let r=String(n).trim();if(r.length>0)return r}return null}function L({tools:e,toolsStatus:t,runHistory:n,setRunHistory:r,commandToolRequest:i,onCommandToolHandled:a,urlToolName:o,onToolSelected:s,onRefresh:c,onClearHistory:l,onOpenSession:u}){let{pushToast:d}=_(),[f,p]=(0,k.useState)(``),[m,h]=(0,k.useState)(`all`),[g,y]=(0,k.useState)(null),[b,x]=(0,k.useState)({}),[E,P]=(0,k.useState)(!0),[F,L]=(0,k.useState)(!1),[R,z]=(0,k.useState)(null),[B,V]=(0,k.useState)(null),[ae,oe]=(0,k.useState)(``),[se,H]=(0,k.useState)(null),[ce,U]=(0,k.useState)(null),[W,le]=S(te,[]),[ue,G]=S(ne,[]),[K,de]=(0,k.useState)(!1),[fe,pe]=S(re,null),me=(0,k.useRef)(0),q=(0,k.useRef)(null),J=(0,k.useRef)(null);function Y(){q.current&&=(clearInterval(q.current),null),J.current?.close(),J.current=null}(0,k.useEffect)(()=>Y,[]);let he=D(e),X=O(e,{toolsStatus:t,activeCategory:m,search:f,requireAvailable:!0});function Z(e){y(e),P(!0),H(null),z(null);let t={};for(let n of Object.keys(e.params))t[n]=``;for(let[n,r]of Object.entries(e.optional))t[n]=String(r);x(t),s?.(e.name)}function ge(){if(!g)return;let e=g.name;le(t=>t.includes(e)?t.filter(t=>t!==e):[e,...t].slice(0,30))}function Q(e){let t=[`target`,`url`,`domain`,`host`,`ip`,`rhost`,`hostname`];x(n=>{let r={...n};for(let n of t)if(Object.prototype.hasOwnProperty.call(r,n)){r[n]=e;break}return r})}async function $(e,t){try{let n=await C.exportTopology(e.tool,e.params,e.result,fe??void 0);if(!n.success){d(`error`,n.error||`Topology export failed`);return}if(!n.topology){d(`info`,n.message||`No hosts/ports found in output`);return}n.session_id&&pe(n.session_id),t&&n.session_id?u?.(n.session_id):d(`success`,`Topology map updated (session ${n.session_id})`)}catch(e){d(`error`,`Topology export failed: ${String(e)}`)}}async function _e(){if(!g)return;let{payload:e,missing:t}=T(g,b);if(t.length){H(`Missing required: ${t.join(`, `)}`);return}H(null),L(!0),z(null),U(null);let n=++me.current;Y();try{let{task_id:t}=await C.executeToolAsync(g.name,e),i=C.processesStream();J.current=i,i.onmessage=e=>{try{let n=JSON.parse(e.data),r=Object.values(n.processes??{}).find(e=>e.task_id===t);r&&U(r.last_output||null)}catch{}};let a=await new Promise((e,n)=>{q.current=setInterval(async()=>{try{let r=await C.getTaskResult(t),{status:i}=r.result;i===`completed`?(Y(),e(r.result.result)):(i===`failed`||i===`not_found`)&&(Y(),n(Error(r.result.error||`Tool execution ${i}`)))}catch(e){Y(),n(e)}},1500)}),o={id:n,tool:g.name,params:e,result:a,ts:new Date,source:`browser`};r(e=>[o,...e].slice(0,100)),z(o);let s=ie(e);s&&G(e=>[s,...e.filter(e=>e!==s)].slice(0,10)),K&&g.topology_capable&&$(o,!1)}catch(e){H(String(e))}finally{Y(),U(null),L(!1)}}(0,k.useEffect)(()=>{c?.()},[]),(0,k.useEffect)(()=>{if(!i)return;let t=e.find(e=>e.name===i.toolName);t&&(Z(t),p(``)),a?.()},[i,e,a]),(0,k.useEffect)(()=>{if(!o||g?.name===o)return;let t=e.find(e=>e.name===o);t&&Z(t)},[o,e,g]);let ve=B?(()=>{let e=n.find(e=>e.id!==B.id&&e.tool===B.tool);return e?A(B,e):void 0})():void 0,ye=X.filter(e=>W.includes(e.name)).sort((e,t)=>W.indexOf(e.name)-W.indexOf(t.name)),be=X.filter(e=>!W.includes(e.name));return(0,j.jsxs)(`div`,{className:`run-page`,children:[B&&(0,j.jsx)(w,{entry:B,compareText:ve,onClose:()=>V(null),onRerun:()=>{let t=e.find(e=>e.name===B.tool);t&&(Z(t),x(e=>{let t={...e};for(let[e,n]of Object.entries(B.params))t[e]=String(n);return t})),V(null)},topologyCapable:e.find(e=>e.name===B.tool)?.topology_capable,onExportTopology:e=>void $(e,!0)}),(0,j.jsx)(M,{search:f,setSearch:p,activeCat:m,setActiveCat:h,cats:he,filtered:be,favorites:ye,selected:g,onSelectTool:Z}),(0,j.jsxs)(`div`,{className:`run-main-col`,children:[(0,j.jsx)(N,{selected:g,toolsStatus:t,fieldValues:b,setFieldValues:x,showOptional:E,setShowOptional:P,running:F,runError:se,liveOutput:ce,isFavorite:g?W.includes(g.name):!1,onToggleFavorite:ge,onRunTool:_e,viewEntry:R,autoTopology:K,setAutoTopology:de,onExportTopology:e=>void $(e,!0)}),(0,j.jsx)(v,{})]}),(0,j.jsx)(I,{recentTargets:ue,onPickTarget:Q,onClearRecentTargets:()=>G([])}),(0,j.jsx)(ee,{history:n,setHistory:r,onRefresh:c,onClearHistory:l,histSearch:ae,setHistSearch:oe,viewEntry:R,onOpenModalEntry:V})]})}export{L as RunPage}; \ No newline at end of file diff --git a/frontend/dashboard/assets/RunPage-Cs7A2qDb.js b/frontend/dashboard/assets/RunPage-Cs7A2qDb.js deleted file mode 100644 index e234b9cb1..000000000 --- a/frontend/dashboard/assets/RunPage-Cs7A2qDb.js +++ /dev/null @@ -1,7 +0,0 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,Bt as r,Dt as i,Ft as a,H as o,Lt as s,P as c,Pt as l,T as u,bt as d,f,n as p,p as m}from"./vendor-lucide-tZ8AzO6l.js";import{r as h}from"./vendor-markdown-CZSHC-G5.js";import{a as g,b as _,f as v,l as y,n as b,r as x,u as S,x as C}from"./index-DoDmaCqd.js";import{t as w}from"./RunResultModal-Cw0lz4Ij.js";import{r as T,t as E}from"./shared-CjcIAkCZ.js";import{n as D,t as O}from"./toolUtils-BC7D6IRC.js";var k=e(t(),1);function A(e,t){let n=[];n.push(`Comparing ${e.tool}`),n.push(``),n.push(`Current: exit=${e.result.return_code}, success=${e.result.success}, time=${y(e.result.execution_time,2)}s`),n.push(`Previous: exit=${t.result.return_code}, success=${t.result.success}, time=${y(t.result.execution_time,2)}s`),n.push(``);let r=(e.result.stdout||e.result.stderr||``).trim(),i=(t.result.stdout||t.result.stderr||``).trim();if(!r&&!i)return n.push(`No output in either run.`),n.join(` -`);if(r===i)return n.push(`Output is identical.`),n.join(` -`);let a=r.split(` -`),o=new Set(i.split(` -`)),s=a.filter(e=>!o.has(e)).slice(0,40),c=i.split(` -`),l=new Set(a),u=c.filter(e=>!l.has(e)).slice(0,40);if(s.length>0){n.push(`Added lines:`);for(let e of s)n.push(`+ ${e}`);n.push(``)}if(u.length>0){n.push(`Removed lines:`);for(let e of u)n.push(`- ${e}`)}return n.join(` -`)}var j=h();function M({search:e,setSearch:t,activeCat:n,setActiveCat:r,cats:a,favorites:o,filtered:s,selected:c,onSelectTool:l}){return(0,j.jsxs)(`div`,{className:`run-picker`,children:[(0,j.jsxs)(`div`,{className:`run-picker-controls`,children:[(0,j.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,j.jsx)(`input`,{className:`search-input mono`,placeholder:`Search tools…`,value:e,onChange:e=>t(e.target.value)}),e.trim().length>0&&(0,j.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>t(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,j.jsx)(i,{size:12})})]}),(0,j.jsx)(`div`,{className:`cat-tabs run-cat-tabs`,children:a.map(e=>(0,j.jsx)(`button`,{className:`cat-tab ${n===e?`active`:``}`,onClick:()=>r(n===e?`all`:e),children:e.replace(/_/g,` `)},e))})]}),(0,j.jsxs)(`div`,{className:`run-tool-list`,children:[o.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`run-tool-group-label`,children:`Favorites`}),o.map(e=>(0,j.jsxs)(`button`,{className:`run-tool-item run-tool-item--favorite${c?.name===e.name?` active`:``}`,onClick:()=>l(e),children:[(0,j.jsx)(`span`,{className:`run-tool-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`run-tool-cat`,children:e.category.replace(/_/g,` `)})]},e.name)),(0,j.jsx)(`div`,{className:`run-tool-group-label`,children:`All Tools`})]}),s.map(e=>(0,j.jsxs)(`button`,{className:`run-tool-item${c?.name===e.name?` active`:``}`,onClick:()=>l(e),children:[(0,j.jsx)(`span`,{className:`run-tool-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`run-tool-cat`,children:e.category.replace(/_/g,` `)})]},e.name))]})]})}function N({selected:e,toolsStatus:t,fieldValues:u,setFieldValues:f,showOptional:p,setShowOptional:h,running:_,runError:v,liveOutput:b,isFavorite:x,onToggleFavorite:S,onRunTool:C,viewEntry:w,autoTopology:T,setAutoTopology:D,onExportTopology:O}){let A=(0,k.useRef)(null),M=e?Object.keys(e.params):[],N=e?Object.keys(e.optional):[];return(0,k.useEffect)(()=>{if(!e||_)return;let t=window.requestAnimationFrame(()=>{(A.current?.querySelector(`input.run-field-input:not([disabled])`))?.focus()});return()=>window.cancelAnimationFrame(t)},[e?.name,_]),(0,j.jsx)(`div`,{className:`run-main`,children:e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`run-form-header`,children:[(0,j.jsx)(`span`,{className:`run-form-name mono`,children:e.name}),(0,j.jsx)(`span`,{className:`modal-cat`,children:e.category.replace(/_/g,` `)}),t[e.name]===!0&&(0,j.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,j.jsx)(l,{size:11}),` installed`]}),t[e.name]===!1&&(0,j.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,j.jsx)(i,{size:11}),` not installed`]}),(0,j.jsxs)(`button`,{className:`run-favorite-toggle${x?` active`:``}`,onClick:S,title:x?`Unstar this tool`:`Star this tool`,children:[(0,j.jsx)(m,{size:12}),x?`Starred`:`Star`]})]}),(0,j.jsx)(`p`,{className:`run-form-desc`,children:e.desc}),(0,j.jsxs)(`div`,{className:`run-form`,ref:A,children:[M.map(e=>(0,j.jsx)(E,{name:e,value:u[e]??``,onChange:t=>f(n=>({...n,[e]:t})),required:!0},e)),N.length>0&&(0,j.jsxs)(`button`,{className:`run-opt-btn`,onClick:()=>h(e=>!e),children:[p?(0,j.jsx)(s,{size:12}):(0,j.jsx)(r,{size:12}),`Optional parameters (`,N.length,`)`]}),p&&N.map(e=>(0,j.jsx)(E,{name:e,value:u[e]??``,onChange:t=>f(n=>({...n,[e]:t}))},e)),v&&(0,j.jsxs)(`div`,{className:`run-error`,children:[(0,j.jsx)(a,{size:13}),` `,v]}),e.topology_capable&&(0,j.jsxs)(`label`,{className:`run-topology-toggle`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:T,onChange:e=>D(e.target.checked)}),(0,j.jsx)(o,{size:12}),` Add results to topology map`]}),(0,j.jsx)(`button`,{className:`run-submit`,onClick:C,disabled:_,children:_?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(n,{size:13,className:`spin`}),` Running…`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(c,{size:13}),` Run `,e.name]})})]}),(_||w)&&(0,j.jsxs)(`div`,{className:`run-output`,children:[(0,j.jsx)(`div`,{className:`run-output-header`,children:_?(0,j.jsxs)(`span`,{className:`run-output-status running`,children:[(0,j.jsx)(n,{size:12,className:`spin`}),` Running…`]}):w&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`span`,{className:`run-output-status ${w.result.success?`ok`:`fail`}`,children:[w.result.success?(0,j.jsx)(l,{size:12}):(0,j.jsx)(i,{size:12}),w.result.success?`Success`:`Failed`]}),(0,j.jsxs)(`span`,{className:`run-output-meta mono`,children:[`exit `,w.result.return_code]}),(0,j.jsxs)(`span`,{className:`run-output-meta mono`,children:[y(w.result.execution_time,2),`s`]}),w.result.timed_out&&(0,j.jsx)(`span`,{className:`run-output-meta amber`,children:`Timed out`}),w.result.partial_results&&(0,j.jsx)(`span`,{className:`run-output-meta amber`,children:`Partial`}),(0,j.jsxs)(`div`,{className:`run-export-btns`,children:[(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>g(w,`txt`),title:`Export as .txt`,children:[(0,j.jsx)(d,{size:11}),` TXT`]}),(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>g(w,`json`),title:`Export as .json`,children:[(0,j.jsx)(d,{size:11}),` JSON`]}),e.topology_capable&&(0,j.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>O(w),title:`Export to topology map`,children:[(0,j.jsx)(o,{size:11}),` Topology`]})]})]})}),_&&b&&(0,j.jsx)(`pre`,{className:`run-output-pre`,children:b}),w&&(0,j.jsx)(`pre`,{className:`run-output-pre`,children:w.result.stdout||w.result.stderr||`(no output)`})]})]}):(0,j.jsxs)(`div`,{className:`run-empty`,children:[(0,j.jsx)(c,{size:36,color:`var(--text-dim)`}),(0,j.jsx)(`p`,{children:`Select a tool from the list`})]})})}function P(e,t){let n=t.toLowerCase();return n?e.filter(e=>e.tool.includes(n)||Object.values(e.params).some(e=>String(e).toLowerCase().includes(n))):e}function F(e){let t={};for(let n of e){let e=(n.ts instanceof Date?n.ts:new Date(n.ts)).toLocaleDateString(`en-GB`,{year:`numeric`,month:`short`,day:`numeric`});t[e]||(t[e]=[]),t[e].push(n)}return Object.keys(t).sort((e,t)=>new Date(t).getTime()-new Date(e).getTime()).map(e=>({dateLabel:e,entries:t[e]}))}function ee({history:e,setHistory:t,onRefresh:r,onClearHistory:a,histSearch:o,setHistSearch:s,viewEntry:c,onOpenModalEntry:l}){let{pushToast:d}=_(),[f,p]=k.useState(!1),[m,h]=k.useState(!1),[g,v]=k.useState({}),y=(0,k.useMemo)(()=>P(e,o),[e,o]),S=(0,k.useMemo)(()=>F(y),[y]);k.useEffect(()=>{v(e=>{let t={};return S.forEach((n,r)=>{Object.prototype.hasOwnProperty.call(e,n.dateLabel)?t[n.dateLabel]=e[n.dateLabel]:t[n.dateLabel]=r!==0}),t})},[S]);async function C(){h(!0);try{a?await a():t([]),d(`success`,`Run history cleared`),s(``),p(!1)}finally{h(!1)}}return(0,j.jsxs)(`div`,{className:`run-history`,children:[(0,j.jsxs)(`div`,{className:`run-history-header`,children:[(0,j.jsx)(`span`,{children:`History`}),(0,j.jsx)(`span`,{className:`badge`,children:e.length}),r&&(0,j.jsx)(`button`,{className:`run-history-refresh`,title:`Fetch server-side runs`,onClick:r,children:(0,j.jsx)(n,{size:12})}),e.length>0&&(0,j.jsx)(`button`,{className:`run-history-clear`,title:`Clear history`,onClick:()=>p(!0),children:(0,j.jsx)(i,{size:12})})]}),(0,j.jsx)(b,{isOpen:f,title:`Clear Run History`,description:`This deletes all recorded runs from the dashboard history. This action is immediate and cannot be undone.`,impactItems:[`Run History will be emptied`,`Reports is based on run history and will lose data`],confirmLabel:`Yes, clear history`,cancelLabel:`Keep history`,confirmVariant:`danger`,isConfirming:m,onConfirm:C,onClose:()=>p(!1)}),e.length>0&&(0,j.jsxs)(`div`,{className:`run-history-search`,children:[(0,j.jsx)(`input`,{className:`run-history-search-input mono`,placeholder:`Filter…`,value:o,onChange:e=>s(e.target.value)}),o&&(0,j.jsx)(`button`,{className:`run-history-search-clear`,onClick:()=>s(``),children:(0,j.jsx)(i,{size:11})})]}),(0,j.jsx)(`div`,{className:`run-history-list`,children:y.length===0?(0,j.jsx)(`p`,{className:`run-history-empty`,children:o?`No matches`:`No runs yet`}):(0,j.jsx)(j.Fragment,{children:S.map(e=>(0,j.jsxs)(k.Fragment,{children:[(0,j.jsxs)(`button`,{className:`run-history-date run-history-date-toggle`,onClick:()=>v(t=>({...t,[e.dateLabel]:!t[e.dateLabel]})),children:[(0,j.jsx)(x,{open:!g[e.dateLabel],size:11}),(0,j.jsx)(`span`,{children:e.dateLabel}),(0,j.jsx)(`span`,{className:`run-history-date-count mono`,children:e.entries.length})]}),!g[e.dateLabel]&&e.entries.map(e=>(0,j.jsxs)(`button`,{className:`run-history-item${c?.id===e.id?` active`:``}`,onClick:()=>l(e),children:[(0,j.jsx)(`span`,{className:`run-hist-dot ${e.result.success?`ok`:`fail`}`}),(0,j.jsx)(`span`,{className:`run-hist-name mono`,children:e.tool}),e.source===`server`&&(0,j.jsx)(`span`,{title:`Recorded server-side`,className:`run-hist-server-icon`,children:(0,j.jsx)(u,{size:10})}),(0,j.jsx)(`span`,{className:`run-hist-time`,children:e.ts.toLocaleTimeString(`en-GB`)})]},e.id))]},e.dateLabel))})})]})}function I({recentTargets:e,onPickTarget:t,onClearRecentTargets:n}){return(0,j.jsx)(`div`,{className:`run-quickbar`,children:(0,j.jsxs)(`div`,{className:`run-quickbar-block`,children:[(0,j.jsxs)(`div`,{className:`run-quickbar-title`,children:[(0,j.jsx)(f,{size:12}),` Recent Targets`,e.length>0&&(0,j.jsx)(`button`,{className:`run-quick-clear`,onClick:n,title:`Clear recent targets`,children:(0,j.jsx)(p,{size:11})})]}),(0,j.jsxs)(`div`,{className:`run-quickbar-items`,children:[e.map(e=>(0,j.jsx)(`button`,{className:`run-quick-chip`,onClick:()=>t(e),children:e},e)),e.length===0&&(0,j.jsx)(`span`,{className:`run-quick-empty`,children:`No recent targets`})]})]})})}var te=`nyxstrike_run_favorites`,ne=`nyxstrike_run_recent_targets`,re=`nyxstrike_run_topology_session`;function ie(e){for(let t of[`target`,`url`,`domain`,`host`,`ip`,`rhost`,`hostname`]){let n=e[t];if(n==null)continue;let r=String(n).trim();if(r.length>0)return r}return null}function L({tools:e,toolsStatus:t,runHistory:n,setRunHistory:r,commandToolRequest:i,onCommandToolHandled:a,urlToolName:o,onToolSelected:s,onRefresh:c,onClearHistory:l,onOpenSession:u}){let{pushToast:d}=_(),[f,p]=(0,k.useState)(``),[m,h]=(0,k.useState)(`all`),[g,y]=(0,k.useState)(null),[b,x]=(0,k.useState)({}),[E,P]=(0,k.useState)(!0),[F,L]=(0,k.useState)(!1),[R,z]=(0,k.useState)(null),[B,V]=(0,k.useState)(null),[ae,oe]=(0,k.useState)(``),[se,H]=(0,k.useState)(null),[ce,U]=(0,k.useState)(null),[W,le]=S(te,[]),[ue,G]=S(ne,[]),[K,de]=(0,k.useState)(!1),[fe,pe]=S(re,null),me=(0,k.useRef)(0),q=(0,k.useRef)(null),J=(0,k.useRef)(null);function Y(){q.current&&=(clearInterval(q.current),null),J.current?.close(),J.current=null}(0,k.useEffect)(()=>Y,[]);let he=D(e),X=O(e,{toolsStatus:t,activeCategory:m,search:f,requireAvailable:!0});function Z(e){y(e),P(!0),H(null),z(null);let t={};for(let n of Object.keys(e.params))t[n]=``;for(let[n,r]of Object.entries(e.optional))t[n]=String(r);x(t),s?.(e.name)}function ge(){if(!g)return;let e=g.name;le(t=>t.includes(e)?t.filter(t=>t!==e):[e,...t].slice(0,30))}function Q(e){let t=[`target`,`url`,`domain`,`host`,`ip`,`rhost`,`hostname`];x(n=>{let r={...n};for(let n of t)if(Object.prototype.hasOwnProperty.call(r,n)){r[n]=e;break}return r})}async function $(e,t){try{let n=await C.exportTopology(e.tool,e.params,e.result,fe??void 0);if(!n.success){d(`error`,n.error||`Topology export failed`);return}if(!n.topology){d(`info`,n.message||`No hosts/ports found in output`);return}n.session_id&&pe(n.session_id),t&&n.session_id?u?.(n.session_id):d(`success`,`Topology map updated (session ${n.session_id})`)}catch(e){d(`error`,`Topology export failed: ${String(e)}`)}}async function _e(){if(!g)return;let{payload:e,missing:t}=T(g,b);if(t.length){H(`Missing required: ${t.join(`, `)}`);return}H(null),L(!0),z(null),U(null);let n=++me.current;Y();try{let{task_id:t}=await C.executeToolAsync(g.name,e),i=C.processesStream();J.current=i,i.onmessage=e=>{try{let n=JSON.parse(e.data),r=Object.values(n.processes??{}).find(e=>e.task_id===t);r&&U(r.last_output||null)}catch{}};let a=await new Promise((e,n)=>{q.current=setInterval(async()=>{try{let r=await C.getTaskResult(t),{status:i}=r.result;i===`completed`?(Y(),e(r.result.result)):(i===`failed`||i===`not_found`)&&(Y(),n(Error(r.result.error||`Tool execution ${i}`)))}catch(e){Y(),n(e)}},1500)}),o={id:n,tool:g.name,params:e,result:a,ts:new Date,source:`browser`};r(e=>[o,...e].slice(0,100)),z(o);let s=ie(e);s&&G(e=>[s,...e.filter(e=>e!==s)].slice(0,10)),K&&g.topology_capable&&$(o,!1)}catch(e){H(String(e))}finally{Y(),U(null),L(!1)}}(0,k.useEffect)(()=>{c?.()},[]),(0,k.useEffect)(()=>{if(!i)return;let t=e.find(e=>e.name===i.toolName);t&&(Z(t),p(``)),a?.()},[i,e,a]),(0,k.useEffect)(()=>{if(!o||g?.name===o)return;let t=e.find(e=>e.name===o);t&&Z(t)},[o,e,g]);let ve=B?(()=>{let e=n.find(e=>e.id!==B.id&&e.tool===B.tool);return e?A(B,e):void 0})():void 0,ye=X.filter(e=>W.includes(e.name)).sort((e,t)=>W.indexOf(e.name)-W.indexOf(t.name)),be=X.filter(e=>!W.includes(e.name));return(0,j.jsxs)(`div`,{className:`run-page`,children:[B&&(0,j.jsx)(w,{entry:B,compareText:ve,onClose:()=>V(null),onRerun:()=>{let t=e.find(e=>e.name===B.tool);t&&(Z(t),x(e=>{let t={...e};for(let[e,n]of Object.entries(B.params))t[e]=String(n);return t})),V(null)},topologyCapable:e.find(e=>e.name===B.tool)?.topology_capable,onExportTopology:e=>void $(e,!0)}),(0,j.jsx)(M,{search:f,setSearch:p,activeCat:m,setActiveCat:h,cats:he,filtered:be,favorites:ye,selected:g,onSelectTool:Z}),(0,j.jsxs)(`div`,{className:`run-main-col`,children:[(0,j.jsx)(N,{selected:g,toolsStatus:t,fieldValues:b,setFieldValues:x,showOptional:E,setShowOptional:P,running:F,runError:se,liveOutput:ce,isFavorite:g?W.includes(g.name):!1,onToggleFavorite:ge,onRunTool:_e,viewEntry:R,autoTopology:K,setAutoTopology:de,onExportTopology:e=>void $(e,!0)}),(0,j.jsx)(v,{})]}),(0,j.jsx)(I,{recentTargets:ue,onPickTarget:Q,onClearRecentTargets:()=>G([])}),(0,j.jsx)(ee,{history:n,setHistory:r,onRefresh:c,onClearHistory:l,histSearch:ae,setHistSearch:oe,viewEntry:R,onOpenModalEntry:V})]})}export{L as RunPage}; \ No newline at end of file diff --git a/frontend/dashboard/assets/RunResultModal-Cw0lz4Ij.js b/frontend/dashboard/assets/RunResultModal-BlkDYx_t.js similarity index 77% rename from frontend/dashboard/assets/RunResultModal-Cw0lz4Ij.js rename to frontend/dashboard/assets/RunResultModal-BlkDYx_t.js index 5c4958e67..cf359c6ba 100644 --- a/frontend/dashboard/assets/RunResultModal-Cw0lz4Ij.js +++ b/frontend/dashboard/assets/RunResultModal-BlkDYx_t.js @@ -1 +1 @@ -import{Dt as e,H as t,P as n,Pt as r,bt as i,st as a}from"./vendor-lucide-tZ8AzO6l.js";import{r as o}from"./vendor-markdown-CZSHC-G5.js";import{t as s}from"./Sheet-CPyVkJ3G.js";import{a as c,l}from"./index-DoDmaCqd.js";var u=o();function d({entry:o,onClose:d,onRerun:f,compareText:p,topologyCapable:m,onExportTopology:h}){let g=o.result;return(0,u.jsxs)(s,{isOpen:!0,onClose:d,size:`lg`,title:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`span`,{className:`modal-name mono`,children:o.tool}),(0,u.jsxs)(`span`,{className:`run-output-status ${g.success?`ok`:`fail`}`,style:{fontSize:12},children:[g.success?(0,u.jsx)(r,{size:12}):(0,u.jsx)(e,{size:12}),g.success?`success`:`failed`]})]}),children:[(0,u.jsxs)(`div`,{className:`run-result-modal-meta`,children:[(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[`exit `,g.return_code]}),(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[l(g.execution_time,2),`s`]}),(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[o.ts.toLocaleDateString(`en-GB`),` `,o.ts.toLocaleTimeString(`en-GB`)]}),g.timed_out&&(0,u.jsx)(`span`,{className:`run-output-meta amber`,children:`timed out`}),g.partial_results&&(0,u.jsx)(`span`,{className:`run-output-meta amber`,children:`partial results`}),(0,u.jsxs)(`div`,{className:`run-export-btns`,children:[f&&(0,u.jsxs)(`button`,{className:`run-export-btn run-rerun-btn`,onClick:f,title:`Re-run with same params`,children:[(0,u.jsx)(n,{size:11}),` Re-run`]}),p&&(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>navigator.clipboard?.writeText(p).catch(()=>{}),title:`Copy comparison with previous run`,children:[(0,u.jsx)(a,{size:11}),` Compare`]}),(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>c(o,`txt`),title:`Export as .txt`,children:[(0,u.jsx)(i,{size:11}),` TXT`]}),(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>c(o,`json`),title:`Export as .json`,children:[(0,u.jsx)(i,{size:11}),` JSON`]}),m&&h&&(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>h(o),title:`Export to topology map`,children:[(0,u.jsx)(t,{size:11}),` Topology`]})]})]}),Object.keys(o.params).length>0&&(0,u.jsx)(`div`,{className:`run-result-modal-params`,children:Object.entries(o.params).map(([e,t])=>(0,u.jsxs)(`span`,{className:`run-result-param mono`,children:[e,`=`,(0,u.jsx)(`em`,{children:String(t)})]},e))}),(0,u.jsx)(`pre`,{className:`run-result-modal-output mono`,children:g.stdout||g.stderr||`(no output)`}),p&&(0,u.jsx)(`pre`,{className:`run-result-modal-compare mono`,children:p})]})}export{d as t}; \ No newline at end of file +import{At as e,I as t,Lt as n,St as r,W as i,lt as a}from"./vendor-lucide-DUPkM7me.js";import{r as o}from"./vendor-markdown-BanIOC5U.js";import{t as s}from"./Sheet-BAT5hjNH.js";import{a as c,l}from"./index-DuJ0P36w.js";var u=o();function d({entry:o,onClose:d,onRerun:f,compareText:p,topologyCapable:m,onExportTopology:h}){let g=o.result;return(0,u.jsxs)(s,{isOpen:!0,onClose:d,size:`lg`,title:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`span`,{className:`modal-name mono`,children:o.tool}),(0,u.jsxs)(`span`,{className:`run-output-status ${g.success?`ok`:`fail`}`,style:{fontSize:12},children:[g.success?(0,u.jsx)(n,{size:12}):(0,u.jsx)(e,{size:12}),g.success?`success`:`failed`]})]}),children:[(0,u.jsxs)(`div`,{className:`run-result-modal-meta`,children:[(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[`exit `,g.return_code]}),(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[l(g.execution_time,2),`s`]}),(0,u.jsxs)(`span`,{className:`run-output-meta mono`,children:[o.ts.toLocaleDateString(`en-GB`),` `,o.ts.toLocaleTimeString(`en-GB`)]}),g.timed_out&&(0,u.jsx)(`span`,{className:`run-output-meta amber`,children:`timed out`}),g.partial_results&&(0,u.jsx)(`span`,{className:`run-output-meta amber`,children:`partial results`}),(0,u.jsxs)(`div`,{className:`run-export-btns`,children:[f&&(0,u.jsxs)(`button`,{className:`run-export-btn run-rerun-btn`,onClick:f,title:`Re-run with same params`,children:[(0,u.jsx)(t,{size:11}),` Re-run`]}),p&&(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>navigator.clipboard?.writeText(p).catch(()=>{}),title:`Copy comparison with previous run`,children:[(0,u.jsx)(a,{size:11}),` Compare`]}),(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>c(o,`txt`),title:`Export as .txt`,children:[(0,u.jsx)(r,{size:11}),` TXT`]}),(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>c(o,`json`),title:`Export as .json`,children:[(0,u.jsx)(r,{size:11}),` JSON`]}),m&&h&&(0,u.jsxs)(`button`,{className:`run-export-btn`,onClick:()=>h(o),title:`Export to topology map`,children:[(0,u.jsx)(i,{size:11}),` Topology`]})]})]}),Object.keys(o.params).length>0&&(0,u.jsx)(`div`,{className:`run-result-modal-params`,children:Object.entries(o.params).map(([e,t])=>(0,u.jsxs)(`span`,{className:`run-result-param mono`,children:[e,`=`,(0,u.jsx)(`em`,{children:String(t)})]},e))}),(0,u.jsx)(`pre`,{className:`run-result-modal-output mono`,children:g.stdout||g.stderr||`(no output)`}),p&&(0,u.jsx)(`pre`,{className:`run-result-modal-compare mono`,children:p})]})}export{d as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/SessionDetailPage-1TboVloD.js b/frontend/dashboard/assets/SessionDetailPage-1TboVloD.js new file mode 100644 index 000000000..5d8f2b819 --- /dev/null +++ b/frontend/dashboard/assets/SessionDetailPage-1TboVloD.js @@ -0,0 +1,12 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NoteModal-D4A7gZlA.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/vendor-lucide-DUPkM7me.js","assets/vendor-markdown-BanIOC5U.js","assets/Sheet-BAT5hjNH.js","assets/vendor-react-CXyOqTrO.js","assets/index-DuJ0P36w.js","assets/ActionButton-B1Vpk6pw.js","assets/ActionButton-iD1NIpoY.css","assets/index--Sk6J_Xj.css","assets/NoteModal-u1uPtOLD.css"])))=>i.map(i=>d[i]); +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Bt as t,Ct as n,F as r,Ft as i,I as a,L as o,M as s,O as c,Ot as l,P as u,Qt as d,R as f,St as p,T as m,Ut as h,W as g,Wt as _,X as v,Yt as y,_t as b,c as x,d as S,dt as C,en as w,f as T,ft as E,g as D,gt as O,k,l as A,n as j,nn as M,p as N,qt as P,tn as F,ut as I,x as L}from"./vendor-lucide-DUPkM7me.js";import{n as R}from"./vendor-react-CXyOqTrO.js";import{r as z}from"./vendor-markdown-BanIOC5U.js";import{t as B}from"./ActionButton-B1Vpk6pw.js";import{t as V}from"./Sheet-BAT5hjNH.js";import{S as H,a as ee,b as te,c as U,g as W,h as ne,l as re,m as ie,n as ae,p as oe,r as se,s as ce,v as le,x as G}from"./index-DuJ0P36w.js";import{a as ue,f as de,h as fe,i as pe,n as me,o as he,p as ge,r as _e,t as ve}from"./vendor-recharts-Dwgbdraq.js";import{t as ye}from"./LoadingState-D9XkNPEz.js";import{i as be,n as xe,r as Se,t as Ce}from"./shared-BFigPD4i.js";/* empty css */var K=e(M(),1);function we(e){return Array.isArray(e.workflow_steps)&&e.workflow_steps.length>0?e.workflow_steps:e.tools_executed.map(e=>({tool:e,parameters:{}}))}function Te(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}function Ee(e,t){let n=e.trim();if(!n)return null;let r=t.find(e=>e.name===n);if(r)return r;let i=t.find(e=>e.endpoint===n);if(i)return i;let a=t.find(e=>e.parent_tool===n);if(a)return a;let o=Te(n),s=null;for(let e of t){let t=Te(e.name),n=Te(e.parent_tool??``),r=Te(e.endpoint),i=0;t===o&&(i=Math.max(i,80)),n===o&&(i=Math.max(i,75)),r===o&&(i=Math.max(i,70)),t.includes(o)&&(i=Math.max(i,62)),r.includes(o)&&(i=Math.max(i,58)),n&&n.includes(o)&&(i=Math.max(i,56)),o.includes(t)&&(i=Math.max(i,52)),i!==0&&(!s||i>s.score)&&(s={tool:e,score:i})}return s?.tool??null}function De(e,t=`stdout`){if(!e||typeof e!=`object`)return``;let n=e,r=t===`stdout`?[`stdout`,`output`,`message`]:[`stderr`,`error`];for(let e of r){let t=n[e];if(typeof t==`string`&&t.trim())return t}return``}function Oe(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`):e&&typeof e==`object`?[e]:[]}var ke=/https?:\/\/[^\s"'<>]+/gi,Ae=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,je=/\b(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}\b/gi,Me=/\b(?:[a-z0-9.-]+|(?:\d{1,3}\.){3}\d{1,3}):(\d{1,5})\b/gi,Ne=/\b(\d{1,5})\/(?:tcp|udp)\b/gi,Pe=/Nmap\s+scan\s+report\s+for\s+(.+)$/gim,Fe=new Set([`nmap.org`,`github.com`,`raw.githubusercontent.com`,`localhost`,`localdomain`]),Ie=new Set([`toml`,`json`,`yaml`,`yml`,`ini`,`conf`,`cfg`,`txt`,`log`,`md`,`xml`,`csv`]),Le=new Set([`additional_args`,`args`,`flags`,`flag`,`password`,`pass`,`passwd`,`pwd`,`token`,`api_key`,`apikey`,`secret`,`auth`,`authorization`,`cookie`,`headers`,`header`,`body`,`data`]);function Re(){return{urls:[],domains:[],subdomains:[],ips:[],live_hosts:[],endpoints:[],open_ports:[]}}function q(e,t){let n=t.trim();n&&(e.includes(n)||e.push(n))}function ze(e){let t=e.split(`.`);return t.length===4&&t.every(e=>{if(!/^\d+$/.test(e))return!1;let t=Number(e);return t>=0&&t<=255})}function Be(e){let t=e.trim();if(!/^\d{1,5}$/.test(t)||t.length>1&&t.startsWith(`0`))return null;let n=Number(t);return!Number.isInteger(n)||n<1||n>65535?null:String(n)}function Ve(e){let t=e.trim().toLowerCase();if(!t||Fe.has(t)||t.endsWith(`.localdomain`))return!0;let n=t.split(`.`).filter(Boolean);if(n.length>=2){let e=n[n.length-1];if(Ie.has(e))return!0}return!1}function He(e){let t=e.trim().toLowerCase();return!t||t.includes(` `)||t.includes(`[`)||t.includes(`]`)||t.includes(`(`)||t.includes(`)`)?!1:ze(t)?!0:!(!/^[a-z0-9.-]+$/.test(t)||!t.includes(`.`))}function Ue(e){return e.trim().toLowerCase().replace(/^['"\[\(]+/,``).replace(/[\]'"\),;:]+$/,``)}function We(e){try{return new URL(e).hostname.toLowerCase()}catch{return null}}function Ge(e){let t=e.toLowerCase().split(`.`).filter(Boolean);if(t.length<=2)return e.toLowerCase();let n=t.slice(-3).join(`.`);return n.endsWith(`.co.uk`)||n.endsWith(`.com.au`)?t.slice(-3).join(`.`):t.slice(-2).join(`.`)}function Ke(e,t,n=0){if(!(n>4)){if(typeof e==`string`){t.push(e);return}if(Array.isArray(e)){for(let r of e.slice(0,400))Ke(r,t,n+1);return}if(e&&typeof e==`object`)for(let r of Object.values(e))Ke(r,t,n+1)}}function qe(e){let t=e.trim();if(!t)return null;if(t.startsWith(`http://`)||t.startsWith(`https://`))try{return new URL(t).hostname.toLowerCase()}catch{return null}return t.replace(/^\.+/,``).toLowerCase()}function Je(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim()}}function Ye(e){let t=e.trim();return t.startsWith(`http://`)||t.startsWith(`https://`)?t:`https://${t}`}function Xe(e){let t=e.toLowerCase();return t.includes(`password`)||t.includes(`passwd`)||t.includes(`token`)||t.includes(`secret`)||t.includes(`apikey`)||t.includes(`api_key`)||t.includes(`auth`)||t===`username`||t===`user`}function Ze(e){let t=e.toLowerCase();return t===`port`||t===`ports`||t.endsWith(`_port`)||t.endsWith(`_ports`)}function Qe(e){let t=e.toLowerCase();return t===`domain`||t===`dns_name`||t===`root_domain`}function $e(e){let t=e.toLowerCase();return t===`url`||t===`endpoint`||t.endsWith(`_url`)||t.endsWith(`_endpoint`)}function et(e){let t=e.toLowerCase();return t===`target`||t===`host`||t===`hostname`||t===`query`||t===`rhost`||t===`lhost`}function J(e){let t=e.toLowerCase();return Le.has(t)||Xe(t)?!1:Qe(t)||$e(t)||et(t)||Ze(t)||t===`list_file`}function tt(e,t){let n=e.toLowerCase(),r=t.trim();return r?et(n)||Qe(n)?r.toLowerCase():$e(n)?r.replace(/\/+$/,``).toLowerCase():Ze(n)?r.replace(/\s+/g,``):r:``}function nt(e,t,n){return tt(e,t)===tt(e,n)}function rt({step:e,result:t,target:n}){let r=Re(),i=e.parameters??{},a=t.stdout??``,o=[];try{Ke(JSON.parse(a),o)}catch{}let s=[a,...o].join(` +`);for(let e of s.match(ke)??[]){q(r.urls,e);let t=We(e);if(t){if(Ve(t))continue;q(r.domains,t),q(r.live_hosts,t),q(r.endpoints,e)}}for(let e of s.match(je)??[]){let t=Ue(e);!He(t)||Ve(t)||ze(t)||(q(r.domains,t),q(r.live_hosts,t))}for(let e of s.match(Ae)??[])ze(e)&&(q(r.ips,e),q(r.live_hosts,e));for(let e of s.match(Pe)??[]){let t=e.replace(/^Nmap\s+scan\s+report\s+for\s+/i,``).trim(),n=t.match(/\((\d{1,3}(?:\.\d{1,3}){3})\)/);n?.[1]&&ze(n[1])&&(q(r.ips,n[1]),q(r.live_hosts,n[1]));let i=t.match(/^([^\s\[(]+)/)?.[1]?.trim().toLowerCase()??``;if(ze(i)){q(r.ips,i),q(r.live_hosts,i);continue}He(i)&&!Ve(i)&&(q(r.domains,i),q(r.live_hosts,i))}let c=qe(n),l=c?Ge(c):null;if(l)for(let e of r.domains)e.endsWith(`.${l}`)&&e!==l&&q(r.subdomains,e);let u=Je(i,[`domain`]);u&&q(r.domains,u.toLowerCase());let d=Je(i,[`url`,`endpoint`]);d&&q(r.urls,d);let f=Je(i,[`target`,`host`,`query`]);f&&(ze(f)?q(r.ips,f):q(r.domains,f.toLowerCase()));for(let e of s.match(Me)??[]){let t=e.split(`:`);if(t.length<2)continue;let n=t.slice(0,-1).join(`:`).trim(),i=t[t.length-1]?.trim()??``;if(/^\d+$/.test(n))continue;let a=Be(i);a&&q(r.open_ports,a)}for(let e of s.match(Ne)??[]){let t=e.split(`/`)[0],n=Be(t);n&&q(r.open_ports,n)}return r}function it(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return r===`list_file`?[`subdomains`,`domains`,`live_hosts`,`ips`,`urls`]:Ze(r)?[`open_ports`,`params`]:[`domain`,`dns_name`].includes(r)?[`subdomains`,`domains`,`params`]:[`url`,`endpoint`].includes(r)?[`endpoints`,`urls`,`domains`,`params`]:[`target`,`host`,`query`,`hostname`,`rhost`,`lhost`].includes(r)&&(n.includes(`nmap`)||n.includes(`enum4linux`)||n.includes(`netexec`)||n.includes(`smb`)||n.includes(`rpc`))?[`ips`,`live_hosts`,`domains`,`params`]:[`target`,`host`,`query`,`hostname`].includes(r)?[`live_hosts`,`domains`,`ips`,`urls`,`params`]:n.includes(`httpx`)||n.includes(`gospider`)||n.includes(`hakrawler`)?[`live_hosts`,`urls`,`domains`,`params`]:n.includes(`shuffledns`)||n.includes(`dns`)?[`subdomains`,`domains`,`params`]:[`params`]}function at(e,t,n,r){let i=n.toLowerCase();if(!J(i))return null;if(e===`params`){if(Ze(i)){let e=Je(t.params,[i,`ports`,`port`]);if(!e)return null;let n=e.split(`,`).map(e=>Be(e)).filter(e=>!!e);return n.length===0?null:i===`port`?n[0]:n.slice(0,10).join(`,`)}if(Qe(i)){let e=Je(t.params,[`domain`,`dns_name`,`target`,`host`]);return!e||ze(e)?null:Ge(e)}if($e(i)){let e=Je(t.params,[`url`,`endpoint`,`target`]);return e?e.startsWith(`http://`)||e.startsWith(`https://`)?e:ze(e)?null:Ye(e):null}return et(i)&&Je(t.params,[i,`target`,`host`,`domain`])||null}let a=t.artifacts[e];if(!a||a.length===0)return null;if(Ze(i)){let e=a.map(e=>Be(e)).filter(e=>!!e);return e.length===0?null:i===`port`?e[0]:e.slice(0,10).join(`,`)}if(Qe(i)){let e=a.find(e=>!ze(e))??a[0];return!e||ze(e)||!He(Ue(e))?null:Ge(e)}if($e(i)){let e=a.find(e=>e.startsWith(`http://`)||e.startsWith(`https://`))??a.find(e=>!ze(e))??a[0];return!e||ze(e)?null:e.startsWith(`http://`)||e.startsWith(`https://`)?e:Ye(e)}return et(i)&&(a[0]??r)||null}function ot({source:e,age:t,tool:n,param:r}){let i=.45;e===`params`&&(i+=.08),[`subdomains`,`endpoints`,`live_hosts`].includes(e)&&(i+=.2),t<=1?i+=.2:t<=3&&(i+=.1);let a=n.toLowerCase(),o=r.toLowerCase();return(a.includes(`shuffledns`)||a.includes(`dns`))&&o===`domain`&&(i+=.08),(a.includes(`httpx`)||a.includes(`gospider`))&&(o===`url`||o===`target`)&&(i+=.08),Math.max(.1,Math.min(.99,i))}function st({steps:e,selectedStepIndex:t,selectedTool:n,sessionId:r,target:i,stepResults:a,stepArtifacts:o,currentValues:s,baselineValues:c,preferences:l}){let u=[...Object.keys(n.params),...Object.keys(n.optional)],d=c??{},f=u.filter(e=>{let t=s[e]?.trim()??``;if(!t)return!0;let n=d[e]?.trim()??``;return!!n&&t===n}).filter(e=>J(e));if(f.length===0)return null;let p=[];for(let n=t-1;n>=0;--n){let t=e[n],s=`${r}:${n}`,c=a[s]?.result;if(!c?.success)continue;let l=o[s]??rt({step:t,result:c,target:i});p.push({index:n,step:t,artifacts:l,params:t.parameters??{}})}if(p.length===0)return null;let m=[],h=l??[];for(let e of f){let r=it(n.name,e),a=null;for(let o of r)for(let r of p){let s=at(o,r,e,i);if(!s)continue;let c=ot({source:o,age:t-r.index,tool:n.name,param:e});h.find(t=>t.targetTool===n.name&&t.param===e&&t.sourceArtifact===o&&(!t.sourceTool||t.sourceTool===r.step.tool))&&(c=Math.min(.99,c+.22));let l={param:e,value:s,sourceArtifact:o,sourceTool:r.step.tool,confidence:c,reason:`From ${r.step.tool} (${o})`};(!a||l.confidence>a.confidence)&&(a=l)}if(a){let t=s[e]?.trim()??``;if(t&&nt(e,t,a.value))continue;m.push(a)}}if(m.length===0)return null;let g=m.reduce((e,t)=>t.confidence>e.confidence?t:e,m[0]),_=new Set(m.map(e=>e.sourceTool)),v=m.reduce((e,t)=>e+t.confidence,0)/m.length;return{sourceTool:g.sourceTool,summary:_.size>1?`Prepared ${m.length} mapped value${m.length===1?``:`s`} from ${_.size} prior tools.`:`Prepared ${m.length} mapped value${m.length===1?``:`s`} from ${g.sourceTool} output.`,confidence:v,fields:m}}var Y=z(),ct={command:``,busy:!1,transcript:[],prompt:`$`,awaitingSensitiveInput:!1};function lt(e,t,n,r){let i={id:Date.now(),tool:t,params:n,result:r,ts:new Date(r.timestamp),source:`browser`};ee(i,e)}function ut(e,t,n){let r=new Date(n.timestamp).toISOString(),i=[`# ${e}`,``,`**Date:** ${r}`,`**Status:** ${n.success?`Success`:`Failed`} | exit ${n.return_code} | ${n.execution_time.toFixed(2)}s`,``];if(Object.keys(t).length>0){i.push(`## Parameters`,``);for(let[e,n]of Object.entries(t))i.push(`- **${e}:** \`${n}\``);i.push(``)}return n.stdout&&i.push(`## Output`,``,"```",n.stdout,"```",``),n.stderr&&i.push(`## Stderr`,``,"```",n.stderr,"```",``),i.join(` +`)}function dt({endpoint:e,baseParams:t,label:n,terminalId:r,terminalState:i,updateTerminalState:a}){let{command:o,busy:l,transcript:d,prompt:f,awaitingSensitiveInput:p}=i,m=(0,K.useRef)(null),h=(0,K.useRef)(null);function g(e,t){a(e,e=>({...e,...t}))}function _(e,t){a(e,e=>({...e,transcript:[...e.transcript,...t]}))}(0,K.useEffect)(()=>{m.current?.scrollTo({top:m.current.scrollHeight}),l||h.current?.focus()},[d]),(0,K.useEffect)(()=>{l||h.current?.focus()},[l]);async function v(){let n=o;if(l)return;let i=r,s=f,c=p;g(i,{busy:!0,command:``}),_(i,[c?`[input hidden]`:`${s} ${n}`]);try{let r=await G.runTool(e,{...t,command:n,interactive:!0,terminal_disconnect:!1,terminal_mode:`raw`}),o=r.prompt,s=r.awaiting_sensitive_input,c=[De(r,`stdout`),De(r,`stderr`)].filter(Boolean).join(` +`).trim();a(i,e=>({...e,prompt:typeof o==`string`&&o.trim()?`${o.trim()}$`:e.prompt,awaitingSensitiveInput:s===!0,transcript:c?[...e.transcript,c]:e.transcript}))}catch(e){_(i,[`error: ${String(e)}`])}finally{g(i,{busy:!1})}}async function y(){if(l)return;let n=r;g(n,{busy:!0});try{let r=await G.runTool(e,{...t,command:``,terminal_disconnect:!0});a(n,e=>({...e,prompt:`$`,awaitingSensitiveInput:!1,transcript:[...e.transcript,De(r,`stdout`)||De(r,`stderr`)||`Disconnected`]}))}catch(e){_(n,[`error: ${String(e)}`])}finally{g(n,{busy:!1})}}return(0,Y.jsxs)(`div`,{className:`session-ssh-terminal`,children:[(0,Y.jsxs)(`div`,{className:`session-ssh-terminal-head`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(T,{size:12}),` `,n,` terminal`]}),(0,Y.jsx)(`button`,{onClick:y,disabled:l,title:`Disconnect ${n} session`,children:(0,Y.jsx)(u,{size:12})})]}),(0,Y.jsx)(`pre`,{ref:m,className:`session-ssh-terminal-body`,children:[...d,`${f} `].join(` +`)}),(0,Y.jsxs)(`div`,{className:`session-ssh-terminal-input`,children:[(0,Y.jsx)(`input`,{ref:h,value:o,onChange:e=>g(r,{command:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&v()},disabled:l,autoComplete:`off`,type:p?`password`:`text`,spellCheck:!1}),(0,Y.jsx)(`button`,{onClick:()=>void v(),disabled:l,title:`Run command`,children:l?(0,Y.jsx)(s,{size:12,className:`spin`}):(0,Y.jsx)(c,{size:12})})]})]})}function ft({isCompleted:e,sessionId:n,steps:r,selectedStep:i,selectedStepIndex:o,setSelectedStepIndex:c,selectedStepKey:l,selectedTool:u,stepState:d,runningStepKey:f,targetValue:m,setTargetValue:_,stepFieldValues:v,setStepFieldValues:y,showOptionalByStep:b,setShowOptionalByStep:x,selectedResult:C,chainSuggestion:w,selectedChainFields:T,onSetChainFieldSelected:E,onPinChainField:k,onApplyChainSuggestion:A,onRunStep:j,onStopRunningStep:M,onApplyAttackChainFromResult:N,onRemoveTool:P,showAddTool:F,setShowAddTool:I,addToolSearch:L,setAddToolSearch:R,addCandidates:z,onAddTool:V,onExportTopology:H}){let{pushToast:ee}=te(),U=l?f===l:!1,W=C?.result,ne=De(W,`stdout`),ie=De(W,`stderr`),ae=i?.tool?.toLowerCase()??``,oe=ae===`ssh`||u?.endpoint===`/api/plugins/ssh`||u?.name===`ssh`||u?.endpoint===`/api/tools/ssh`?{endpoint:`/api/plugins/ssh`,label:`SSH`}:ae===`telnet`||u?.endpoint===`/api/plugins/telnet`||u?.name===`telnet`||u?.endpoint===`/api/tools/telnet`?{endpoint:`/api/plugins/telnet`,label:`Telnet`}:null,se=!!oe&&!!l&&!e,ce=w?w.fields.filter(e=>T[e.param]!==!1).length:0,le=(0,K.useRef)(null),[ue,de]=(0,K.useState)({}),[fe,pe]=(0,K.useState)({});function me(e,t){pe(n=>({...n,[e]:t(n[e]??ct)}))}(0,K.useEffect)(()=>{de({})},[l]),(0,K.useEffect)(()=>{if(!F)return;let e=window.requestAnimationFrame(()=>le.current?.focus());return()=>window.cancelAnimationFrame(e)},[F]);async function he(e,t,r){let i=new Date(r.timestamp).toISOString().slice(0,10).replace(/-/g,``),a=`${e.replace(/[^a-zA-Z0-9_]/g,`_`).slice(0,40)}_${i}`,o=ut(e,t,r);try{await G.createSessionNote(n,a,o,`outputs`),ee(`success`,`Exported to notes/outputs/${a}.md`)}catch{ee(`error`,`Failed to export to notes`)}}return(0,Y.jsxs)(`section`,{className:`section`,children:[(0,Y.jsx)(`div`,{className:`section-header`,children:(0,Y.jsxs)(`h3`,{children:[`Manual Tool Execution `,(0,Y.jsx)(`span`,{className:`badge`,children:r.length})]})}),(0,Y.jsxs)(`div`,{className:`session-workbench`,children:[(0,Y.jsxs)(`aside`,{className:`session-workbench-tools`,children:[!e&&(0,Y.jsxs)(`div`,{className:`session-tool-manage`,children:[(0,Y.jsx)(`button`,{className:`session-add-tool-btn`,onClick:()=>I(e=>!e),children:`+ Add tool`}),F&&(0,Y.jsxs)(`div`,{className:`session-add-tool-panel`,children:[(0,Y.jsx)(`input`,{ref:le,className:`search-input mono`,placeholder:`Search tool...`,value:L,onChange:e=>R(e.target.value)}),(0,Y.jsx)(`div`,{className:`session-add-tool-list`,children:z.map(e=>(0,Y.jsxs)(`button`,{className:`session-add-tool-item`,onClick:()=>V(e),children:[(0,Y.jsx)(`span`,{className:`mono`,children:e.name}),(0,Y.jsx)(`span`,{children:e.category})]},e.name))})]})]}),r.map((t,r)=>{let i=`${n}:${r}`,a=f===i;return(0,Y.jsxs)(`button`,{className:`session-workbench-tool session-workbench-tool--${d[i]??`idle`} ${a?`session-workbench-tool--running`:``} ${o===r?`active`:``}`,onClick:()=>c(r),children:[(0,Y.jsx)(`span`,{className:`session-workbench-tool-name mono`,children:t.tool}),(0,Y.jsxs)(`span`,{className:`session-workbench-tool-actions`,children:[a&&(0,Y.jsxs)(`span`,{className:`session-running-indicator mono`,title:`Tool is running`,children:[(0,Y.jsx)(s,{size:11,className:`spin`}),` Running`]}),!e&&(0,Y.jsx)(`button`,{type:`button`,className:`session-remove-tool`,onClick:e=>{e.stopPropagation(),P(r)},title:`Remove tool`,children:(0,Y.jsx)(S,{size:12})})]})]},i)})]}),(0,Y.jsx)(`div`,{className:`session-workbench-center`,children:!i||!l||!u?(0,Y.jsx)(`p`,{className:`empty-state`,children:`No tools in this session.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`session-target-override`,children:[(0,Y.jsx)(`label`,{className:`mono`,children:`Target`}),(0,Y.jsx)(`input`,{name:`session-target`,className:`search-input mono`,value:m,onChange:e=>_(e.target.value),placeholder:`Target to run this session against`,disabled:e})]}),(0,Y.jsxs)(`div`,{className:`session-step-row`,children:[(0,Y.jsxs)(`div`,{className:`session-step-head`,children:[(0,Y.jsx)(`span`,{className:`session-tool-chip mono session-tool-chip--${d[l]??`idle`}`,children:i.tool}),(0,Y.jsxs)(B,{variant:U?`running`:`default`,disabled:e||!1,onClick:U||e?void 0:()=>j(i,o),children:[U?(0,Y.jsx)(s,{size:12,className:`spin`}):(0,Y.jsx)(a,{size:12}),e?`Completed`:U?`Running…`:`Run ${i.tool}`]}),U&&!e&&(0,Y.jsxs)(B,{variant:`danger`,onClick:()=>{M()},children:[(0,Y.jsx)(D,{size:12}),` Stop`]})]}),u.desc&&(0,Y.jsx)(`p`,{className:`session-tool-description`,children:u.desc}),w&&(0,Y.jsxs)(`div`,{className:`session-chain-suggestion`,children:[(0,Y.jsxs)(`div`,{className:`session-chain-suggestion__text`,children:[(0,Y.jsxs)(`strong`,{className:`mono`,children:[`Chain hint from `,w.sourceTool]}),(0,Y.jsxs)(`span`,{children:[w.summary,` Confidence `,re((w.confidence??0)*100,0),`%`]}),(0,Y.jsx)(`div`,{className:`session-chain-fields`,children:w.fields.map(t=>{let n=T[t.param]!==!1;return(0,Y.jsxs)(`label`,{className:`session-chain-field-row ${n?``:`is-disabled`}`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>E(t.param,e.target.checked)}),(0,Y.jsx)(`span`,{className:`mono`,children:t.param}),(0,Y.jsx)(`span`,{className:`mono`,children:t.value}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[Math.round(t.confidence*100),`% `,t.reason]}),(0,Y.jsx)(`button`,{type:`button`,className:`session-chain-pin-btn`,onClick:()=>k(t.param),disabled:e||U,children:`Pin`})]},t.param)})})]}),(0,Y.jsxs)(B,{variant:`success`,disabled:e||U||ce===0,onClick:A,children:[`Use Prior Output (`,ce,`)`]})]}),(0,Y.jsxs)(`div`,{className:`session-param-grid`,children:[Object.keys(u.params).map(t=>(0,Y.jsx)(Ce,{name:t,value:v[l]?.[t]??``,onChange:e=>y(n=>({...n,[l]:{...n[l]??{},[t]:e}})),required:!0,disabled:e},t)),Object.keys(u.optional).length>0&&(0,Y.jsxs)(`button`,{className:`run-opt-btn`,onClick:()=>x(e=>({...e,[l]:!e[l]})),children:[b[l]?(0,Y.jsx)(t,{size:12}):(0,Y.jsx)(h,{size:12}),`Optional parameters (`,Object.keys(u.optional).length,`)`]}),b[l]&&Object.keys(u.optional).map(t=>(0,Y.jsx)(Ce,{name:t,value:v[l]?.[t]??``,onChange:e=>y(n=>({...n,[l]:{...n[l]??{},[t]:e}})),disabled:e},t))]})]}),(0,Y.jsxs)(`div`,{className:`session-result-panel`,children:[(0,Y.jsx)(`h4`,{children:`Result`}),e&&(0,Y.jsx)(`p`,{className:`section-meta`,children:`Completed session: results are read-only.`}),C?.error&&(0,Y.jsx)(`div`,{className:`run-error`,children:C.error}),W?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`session-result-head`,children:[(0,Y.jsxs)(`div`,{className:`session-step-result mono`,children:[W.success?`OK`:`FAIL`,` | exit `,W.return_code,` | `,re(W.execution_time,2),`s`]}),l&&W&&(0,Y.jsxs)(`div`,{className:`session-result-actions`,children:[(0,Y.jsxs)(B,{variant:`default`,onClick:()=>lt(`txt`,i.tool,v[l]??{},W),children:[(0,Y.jsx)(p,{size:11}),` Export`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>lt(`json`,i.tool,v[l]??{},W),children:[(0,Y.jsx)(p,{size:11}),` JSON`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>void he(i.tool,v[l]??{},W),children:[(0,Y.jsx)(O,{size:11}),` Notes`]}),u.topology_capable&&(0,Y.jsxs)(B,{variant:`default`,onClick:()=>H(i.tool,v[l]??{},W),children:[(0,Y.jsx)(g,{size:11}),` Topology`]}),i.tool===`create-attack-chain`&&W.success&&(0,Y.jsx)(B,{disabled:e,variant:`success`,onClick:()=>{N()},children:`Use Chain`})]})]}),(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:ne||`(no stdout)`}),ie&&(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:ie})]}):(0,Y.jsx)(`p`,{className:`section-meta`,children:`No result yet for this tool.`}),se&&oe&&l&&(0,Y.jsx)(dt,{endpoint:oe.endpoint,baseParams:v[l]??{},label:oe.label,terminalId:`${l}:${oe.endpoint}`,terminalState:fe[`${l}:${oe.endpoint}`]??ct,updateTerminalState:me},`${l}:${oe.endpoint}`),C?.priorResults&&C.priorResults.length>0&&(0,Y.jsxs)(`div`,{className:`session-prior-runs`,children:[(0,Y.jsxs)(`p`,{className:`session-prior-runs-label`,children:[`Prior runs (`,C.priorResults.length,`)`]}),C.priorResults.map((e,n)=>(0,Y.jsxs)(`div`,{className:`session-prior-run`,children:[(0,Y.jsxs)(`button`,{className:`session-prior-run-toggle`,onClick:()=>de(e=>({...e,[n]:!e[n]})),children:[(0,Y.jsxs)(`span`,{className:`mono`,children:[e.success?`OK`:`FAIL`,` | exit `,e.return_code,` | `,re(e.execution_time,2),`s | `,new Date(e.timestamp).toLocaleTimeString()]}),ue[n]?(0,Y.jsx)(t,{size:11}):(0,Y.jsx)(h,{size:11})]}),ue[n]&&l&&(0,Y.jsxs)(`div`,{className:`session-prior-run-body`,children:[(0,Y.jsxs)(`div`,{className:`session-result-actions`,children:[(0,Y.jsxs)(B,{variant:`default`,onClick:()=>lt(`txt`,i.tool,v[l]??{},e),children:[(0,Y.jsx)(p,{size:11}),` Export`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>lt(`json`,i.tool,v[l]??{},e),children:[(0,Y.jsx)(p,{size:11}),` JSON`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>void he(i.tool,v[l]??{},e),children:[(0,Y.jsx)(O,{size:11}),` Notes`]}),u.topology_capable&&(0,Y.jsxs)(B,{variant:`default`,onClick:()=>H(i.tool,v[l]??{},e),children:[(0,Y.jsx)(g,{size:11}),` Topology`]})]}),(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:De(e,`stdout`)||`(no stdout)`}),De(e,`stderr`)&&(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:De(e,`stderr`)})]})]},n))]})]})]})})]})]})}function pt(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function mt({sessionId:e,allFolders:t,onClose:n,onUploaded:r,pushToast:i}){let[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(null),_=(0,K.useRef)(null),v=(0,K.useRef)(null);function y(e){o(e);let t=e.name.replace(/\.md$/i,``);c(pt(t)||`uploaded-note`),m(!1),g(null)}function b(e){let t=e.target.files?.[0];t&&y(t),e.target.value=``}function S(e){e.preventDefault();let t=e.dataTransfer.files?.[0];t&&y(t)}async function C(t){if(!a)return;let o=pt(s)||`uploaded-note`;f(!0),g(null);try{let s=await G.uploadSessionNote(e,o,a,t,l);if(`conflict`in s&&s.conflict){m(!0),f(!1);return}i(`success`,`${o}.md uploaded`),r(),n()}catch{g(`Upload failed. Please try again.`)}finally{f(!1)}}let w=(pt(s)||`uploaded-note`)+`.md`;return(0,Y.jsx)(V,{isOpen:!0,onClose:n,disableClose:d,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`note-modal-icon`,children:(0,Y.jsx)(x,{size:13})}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Upload note`})]}),footer:(0,Y.jsxs)(`div`,{className:`upload-note-modal-footer`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:n,disabled:d,children:`Cancel`}),p?(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,onClick:()=>void C(!0),disabled:d,children:d?`Uploading…`:`Overwrite`}):(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>void C(!1),disabled:!a||d,children:d?`Uploading…`:`Upload`})]}),children:(0,Y.jsxs)(`div`,{className:`upload-note-modal-body`,children:[(0,Y.jsxs)(`div`,{ref:v,className:`upload-note-dropzone${a?` upload-note-dropzone--has-file`:``}`,onClick:()=>_.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:S,children:[(0,Y.jsx)(`input`,{ref:_,type:`file`,accept:`.md,text/markdown,text/plain`,style:{display:`none`},onChange:b}),a?(0,Y.jsxs)(`div`,{className:`upload-note-file-chosen`,children:[(0,Y.jsx)(O,{size:20}),(0,Y.jsx)(`span`,{className:`upload-note-file-name`,children:a.name}),(0,Y.jsx)(`span`,{className:`upload-note-file-size`,children:U(a.size)})]}):(0,Y.jsxs)(`div`,{className:`upload-note-dropzone-prompt`,children:[(0,Y.jsx)(x,{size:24,style:{opacity:.45}}),(0,Y.jsxs)(`span`,{children:[`Drop a `,(0,Y.jsx)(`code`,{children:`.md`}),` file here, or click to browse`]})]})]}),a&&(0,Y.jsxs)(`div`,{className:`upload-note-fields`,children:[(0,Y.jsxs)(`label`,{className:`upload-note-field-label`,children:[`Note name`,(0,Y.jsxs)(`div`,{className:`upload-note-name-row`,children:[(0,Y.jsx)(`input`,{className:`upload-note-name-input`,name:`note-name`,type:`text`,value:s,onChange:e=>{c(e.target.value),m(!1),g(null)},disabled:d,placeholder:`note-name`}),(0,Y.jsx)(`span`,{className:`upload-note-name-ext`,children:`.md`})]}),(0,Y.jsxs)(`span`,{className:`upload-note-field-hint`,children:[`Will be saved as `,(0,Y.jsx)(`strong`,{children:w})]})]}),t.length>0&&(0,Y.jsxs)(`label`,{className:`upload-note-field-label`,children:[`Folder`,(0,Y.jsxs)(`select`,{className:`note-modal-folder-select upload-note-folder-select`,name:`note-folder`,value:l,onChange:e=>{u(e.target.value),m(!1)},disabled:d,children:[(0,Y.jsx)(`option`,{value:``,children:`/ root`}),t.map(e=>(0,Y.jsxs)(`option`,{value:e,children:[e,`/`]},e))]})]}),p&&(0,Y.jsxs)(`div`,{className:`upload-note-conflict`,children:[(0,Y.jsx)(A,{size:13}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:w}),` already exists`,l?` in ${l}/`:``,`. Overwrite?`]})]}),h&&(0,Y.jsx)(`div`,{className:`upload-note-error`,children:h})]})]})})}function ht(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function gt(e,t,n){let{pushToast:r}=te(),[i,a]=(0,K.useState)(new Set);function o(e){a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)(!1),h=(0,K.useCallback)(async t=>{let i=ht(t);if(!i){f(`Folder name is empty or contains only invalid characters`);return}m(!0),f(null);try{await G.createSessionNoteFolder(e,i),r(`success`,`Folder "${i}" created`),c(!1),u(``),await n(),a(e=>new Set([...e,i]))}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`409`)||t.toLowerCase().includes(`already exists`)?f(`Folder "${i}" already exists`):f(`Failed to create folder`)}finally{m(!1)}},[e,n,r]),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(``),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(!1);function w(e){_(e),y(e),x(null)}function T(){_(null),y(``),x(null)}let E=(0,K.useCallback)(async()=>{if(!g)return;let i=ht(v);if(!i){x(`Name is empty or contains only invalid characters`);return}if(i===g){T();return}if(t.includes(i)){x(`Folder "${i}" already exists`);return}C(!0),x(null);try{await G.renameSessionNoteFolder(e,g,i),r(`success`,`Folder renamed to "${i}"`),a(e=>{let t=new Set(e);return t.has(g)&&(t.delete(g),t.add(i)),t}),T(),await n()}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`409`)||t.toLowerCase().includes(`already exists`)?x(`Folder "${i}" already exists`):x(`Failed to rename folder`)}finally{C(!1)}},[g,v,t,e,n,r]),[D,O]=(0,K.useState)(null),[k,A]=(0,K.useState)(!1);return{showNewFolderInput:s,newFolderName:l,newFolderError:d,creatingFolder:p,setShowNewFolderInput:c,setNewFolderName:u,createFolder:h,renamingFolder:g,renameDraft:v,renameError:b,renameSaving:S,startRenameFolder:w,cancelRenameFolder:T,confirmRenameFolder:E,setRenameDraft:y,deleteFolderTarget:D,deletingFolder:k,setDeleteFolderTarget:O,confirmDeleteFolder:(0,K.useCallback)(async()=>{if(D){A(!0);try{await G.deleteSessionNoteFolder(e,D.folder),r(`success`,`Folder "${D.folder}" deleted`),a(e=>{let t=new Set(e);return t.delete(D.folder),t}),O(null),await n()}catch{r(`error`,`Failed to delete folder "${D.folder}"`)}finally{A(!1)}}},[D,e,n,r]),expandedFolders:i,toggleFolder:o,setExpandedFolders:a}}var _t=(0,K.lazy)(()=>H(()=>import(`./NoteModal-D4A7gZlA.js`).then(e=>({default:e.NoteModal})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])));function vt(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function yt({text:e,query:t}){let n=t.trim();if(!n)return(0,Y.jsx)(Y.Fragment,{children:e});let r=e.toLowerCase().indexOf(n.toLowerCase());return r===-1?(0,Y.jsx)(Y.Fragment,{children:e}):(0,Y.jsxs)(Y.Fragment,{children:[e.slice(0,r),(0,Y.jsx)(`mark`,{className:`note-snippet-highlight`,children:e.slice(r,r+n.length)}),e.slice(r+n.length)]})}function bt({sessionId:e,initialOpenPath:t,onInitialOpenConsumed:n}){let{pushToast:i}=te(),[a,s]=(0,K.useState)([]),[c,l]=(0,K.useState)([]),[u,d]=(0,K.useState)(!0),[m,h]=(0,K.useState)(``),[g,v]=(0,K.useState)(``),[y,b]=(0,K.useState)(null),[w,T]=(0,K.useState)(!1),D=(0,K.useRef)(null),[A,M]=(0,K.useState)(null),[N,P]=(0,K.useState)(!1),[F,L]=(0,K.useState)(``),[R,z]=(0,K.useState)(null),B=(0,K.useRef)(null),[V,H]=(0,K.useState)(null),[ee,W]=(0,K.useState)(!1),[ne,re]=(0,K.useState)(!1),ie=(0,K.useCallback)(async()=>{try{let[t,n]=await Promise.all([G.sessionNotes(e),G.sessionNoteFolders(e)]);s(t.notes),l(n.folders??[])}catch{i(`error`,`Failed to load notes`)}finally{d(!1)}},[e,i]);(0,K.useEffect)(()=>{ie()},[ie]);let oe=(0,K.useMemo)(()=>{let e=new Set(c);for(let t of a)t.folder&&e.add(t.folder);return Array.from(e).sort()},[a,c]),le=(0,K.useMemo)(()=>a.filter(e=>!e.folder),[a]),ue=(0,K.useMemo)(()=>{let e={};for(let t of a)t.folder&&(e[t.folder]||(e[t.folder]=[]),e[t.folder].push(t));return e},[a]),de=(0,K.useMemo)(()=>a.length,[a]),{showNewFolderInput:fe,setShowNewFolderInput:pe,newFolderName:me,setNewFolderName:he,newFolderError:ge,creatingFolder:_e,createFolder:ve,renamingFolder:be,renameDraft:xe,setRenameDraft:Se,renameError:Ce,renameSaving:we,startRenameFolder:Te,cancelRenameFolder:Ee,confirmRenameFolder:De,deleteFolderTarget:Oe,setDeleteFolderTarget:ke,deletingFolder:Ae,confirmDeleteFolder:je,expandedFolders:Me,setExpandedFolders:Ne,toggleFolder:Pe}=gt(e,oe,ie),Fe=(0,K.useRef)(null),Ie=(0,K.useRef)(null);(0,K.useEffect)(()=>{N&&setTimeout(()=>B.current?.focus(),50)},[N]),(0,K.useEffect)(()=>{fe&&setTimeout(()=>Fe.current?.focus(),50)},[fe]),(0,K.useEffect)(()=>{be&&setTimeout(()=>Ie.current?.focus(),50)},[be]),(0,K.useEffect)(()=>{if(!t||u||a.length===0)return;let e=t.indexOf(`/`),r=e===-1?``:t.slice(0,e),i=e===-1?t:t.slice(e+1),o=a.find(e=>e.filename===i&&(e.folder??``)===r);o&&(M({note:o,isNew:!1,mode:`view`}),r&&Ne(e=>new Set([...e,r])),n?.())},[t,u,a,n,Ne]),(0,K.useEffect)(()=>{let t=g.trim();if(D.current&&clearTimeout(D.current),t.length<2){b(null),T(!1);return}return T(!0),D.current=setTimeout(async()=>{try{let n=await G.searchSessionNotes(e,t);b(n.results)}catch{b([])}finally{T(!1)}},350),()=>{D.current&&clearTimeout(D.current)}},[g,e]);function Le(e){let t=vt(e);if(!t){z(`Note name is empty or contains only invalid characters`);return}M({note:{filename:t,folder:m,size:0,updated_at:0},isNew:!0,mode:`edit`}),P(!1),L(``),z(null)}function Re(e){M({note:e,isNew:!1,mode:`view`})}function q(e){M({note:e,isNew:!1,mode:`edit`})}async function ze(){if(V){W(!0);try{await G.deleteSessionNote(e,V.filename,V.folder),i(`success`,`${V.filename}.md deleted`),H(null),await ie()}catch{i(`error`,`Failed to delete ${V.filename}.md`)}finally{W(!1)}}}let Be=g.trim().length>=2;function Ve(t,n=!1){let r=`${t.folder}/${t.filename}`,i=t.folder?`/api/sessions/${e}/notes/${t.filename}?folder=${encodeURIComponent(t.folder)}&download=1`:`/api/sessions/${e}/notes/${t.filename}?download=1`,a=`snippet`in t?t.snippet:``;return(0,Y.jsxs)(`div`,{className:`session-note-card${n?` session-note-card--indented`:``}`,onClick:()=>Re(t),children:[(0,Y.jsxs)(`div`,{className:`session-note-card-info`,children:[(0,Y.jsxs)(`span`,{className:`session-note-card-name`,children:[(0,Y.jsx)(O,{size:12}),Be&&t.folder?(0,Y.jsxs)(`span`,{className:`note-folder-prefix`,children:[t.folder,`/`]}):null,t.filename,`.md`]}),a&&(0,Y.jsx)(`span`,{className:`session-note-card-snippet`,children:(0,Y.jsx)(yt,{text:a,query:g})}),(0,Y.jsxs)(`span`,{className:`session-note-card-meta`,children:[U(t.size),` · `,ce(t.updated_at)]})]}),(0,Y.jsxs)(`div`,{className:`session-note-card-actions`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Edit`,onClick:()=>q(t),children:(0,Y.jsx)(f,{size:12})}),(0,Y.jsx)(`a`,{className:`session-action-btn`,title:`Download`,href:i,download:`${t.filename}.md`,children:(0,Y.jsx)(p,{size:12})}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete`,onClick:()=>H(t),children:(0,Y.jsx)(S,{size:12})})]})]},r)}return(0,Y.jsxs)(`div`,{className:`session-notes`,children:[A&&(0,Y.jsx)(K.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`sheet-backdrop`,children:(0,Y.jsx)(`div`,{className:`sheet sheet--md`,children:(0,Y.jsx)(ye,{label:`Loading note…`})})}),children:(0,Y.jsx)(_t,{sessionId:e,note:A.note,isNew:A.isNew,initialMode:A.mode,allFolders:oe,onClose:()=>M(null),onSaved:ie,onDelete:e=>{M(null),H(e)},pushToast:i})}),ne&&(0,Y.jsx)(mt,{sessionId:e,allFolders:oe,onClose:()=>re(!1),onUploaded:ie,pushToast:i}),(0,Y.jsx)(ae,{isOpen:!!V,title:`Delete note`,description:`Are you sure you want to delete ${V?.filename}.md? This cannot be undone.`,confirmLabel:`Delete`,confirmVariant:`danger`,isConfirming:ee,onConfirm:ze,onClose:()=>H(null)}),(0,Y.jsx)(ae,{isOpen:!!Oe,title:`Delete folder`,description:Oe?Oe.noteCount>0?`Delete folder "${Oe.folder}" and all ${Oe.noteCount} note${Oe.noteCount===1?``:`s`} inside it? This cannot be undone.`:`Delete folder "${Oe.folder}"? This cannot be undone.`:``,confirmLabel:`Delete`,confirmVariant:`danger`,isConfirming:Ae,onConfirm:je,onClose:()=>ke(null)}),(0,Y.jsxs)(`div`,{className:`session-notes-header`,children:[(0,Y.jsxs)(`span`,{className:`session-notes-count`,children:[de,` note`,de===1?``:`s`]}),(0,Y.jsxs)(`div`,{className:`session-notes-header-actions`,children:[(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{pe(!1),he(``),P(e=>!e),z(null),L(``),h(``)},children:[(0,Y.jsx)(r,{size:12}),` New Note`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{P(!1),z(null),L(``),pe(e=>!e),he(``)},children:[(0,Y.jsx)(C,{size:12}),` New Folder`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>re(!0),children:[(0,Y.jsx)(x,{size:12}),` Upload .md`]})]})]}),(0,Y.jsxs)(`div`,{className:`session-notes-search-row`,children:[(0,Y.jsx)(k,{size:12,className:`session-notes-search-icon`}),(0,Y.jsx)(`input`,{className:`session-notes-search-input`,type:`text`,placeholder:`Search notes…`,value:g,onChange:e=>v(e.target.value)}),g&&(0,Y.jsx)(`button`,{className:`session-notes-search-clear`,onClick:()=>v(``),title:`Clear search`,children:(0,Y.jsx)(j,{size:12})})]}),N&&(0,Y.jsxs)(`div`,{className:`session-notes-new-row`,children:[oe.length>0&&(0,Y.jsxs)(`select`,{className:`session-notes-folder-select`,name:`new-note-folder`,value:m,onChange:e=>h(e.target.value),title:`Create note in folder`,children:[(0,Y.jsx)(`option`,{value:``,children:`/ root`}),oe.map(e=>(0,Y.jsxs)(`option`,{value:e,children:[e,`/`]},e))]}),(0,Y.jsx)(`input`,{ref:B,className:`session-notes-name-input`,name:`new-note-name`,type:`text`,placeholder:`Note title (letters, digits, hyphens, underscores)`,value:F,onChange:e=>L(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Le(F),e.key===`Escape`&&(P(!1),L(``))}}),(0,Y.jsx)(`span`,{className:`session-notes-name-ext`,children:`.md`}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>Le(F),children:`Create`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>{P(!1),L(``)},children:(0,Y.jsx)(j,{size:12})}),R&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:R})]}),fe&&(0,Y.jsxs)(`div`,{className:`session-notes-new-row`,children:[(0,Y.jsx)(I,{size:12,className:`session-new-folder-icon`}),(0,Y.jsx)(`input`,{ref:Fe,className:`session-notes-name-input`,name:`new-folder-name`,type:`text`,placeholder:`Folder name (letters, digits, hyphens, underscores)`,value:me,onChange:e=>he(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ve(me),e.key===`Escape`&&(pe(!1),he(``))},disabled:_e}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>void ve(me),disabled:_e,children:_e?`Creating…`:`Create`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>{pe(!1),he(``)},disabled:_e,children:(0,Y.jsx)(j,{size:12})}),ge&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:ge})]}),u&&(0,Y.jsx)(`p`,{className:`section-meta`,children:`Loading notes…`}),!u&&(0,Y.jsxs)(`div`,{className:`session-notes-list`,children:[Be&&(0,Y.jsx)(Y.Fragment,{children:w?(0,Y.jsx)(`p`,{className:`section-meta section-meta--padded`,children:`Searching…`}):y===null||y.length===0?(0,Y.jsxs)(`div`,{className:`session-notes-empty`,children:[(0,Y.jsx)(O,{size:28,color:`var(--text-dim)`}),(0,Y.jsxs)(`p`,{children:[`No notes match "`,g,`".`]})]}):y.map(e=>Ve(e,!1))}),!Be&&(0,Y.jsxs)(Y.Fragment,{children:[le.map(e=>Ve(e,!1)),oe.map(e=>{let t=ue[e]??[],n=Me.has(e);return(0,Y.jsxs)(`div`,{className:`session-notes-folder-group`,children:[(0,Y.jsxs)(`div`,{className:`session-note-folder-row`,onClick:()=>be!==e&&Pe(e),children:[(0,Y.jsx)(`span`,{className:`session-note-folder-chevron`,children:(0,Y.jsx)(se,{open:n,size:12})}),(0,Y.jsx)(`span`,{className:`session-note-folder-icon`,children:n?(0,Y.jsx)(E,{size:13}):(0,Y.jsx)(I,{size:13})}),be===e?(0,Y.jsxs)(`div`,{className:`session-note-folder-rename-wrap`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`input`,{ref:Ie,className:`session-note-folder-rename-input`,name:`folder-rename`,value:xe,onChange:e=>{Se(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&De(),e.key===`Escape`&&Ee()},disabled:we}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,title:`Confirm rename`,onClick:()=>void De(),disabled:we,children:(0,Y.jsx)(_,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Cancel rename`,onClick:Ee,disabled:we,children:(0,Y.jsx)(j,{size:11})}),Ce&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:Ce})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`session-note-folder-name`,children:e}),t.length>0&&(0,Y.jsx)(`span`,{className:`session-note-folder-count`,title:`${t.length} note${t.length===1?``:`s`}`,children:t.length}),(0,Y.jsxs)(`div`,{className:`session-note-folder-actions`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Rename ${e}`,onClick:()=>Te(e),children:(0,Y.jsx)(o,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`New note in ${e}`,onClick:()=>{h(e),pe(!1),he(``),P(!0),z(null),L(``),Ne(t=>new Set([...t,e]))},children:(0,Y.jsx)(r,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete folder`,onClick:()=>ke({folder:e,noteCount:t.length}),children:(0,Y.jsx)(S,{size:11})})]})]})]}),n&&(0,Y.jsx)(`div`,{className:`session-notes-folder-contents`,children:t.length===0?(0,Y.jsx)(`p`,{className:`session-notes-folder-empty`,children:`No notes yet.`}):t.map(e=>Ve(e,!0))})]},`folder:${e}`)}),le.length===0&&oe.length===0&&!N&&!fe&&(0,Y.jsxs)(`div`,{className:`session-notes-empty`,children:[(0,Y.jsx)(O,{size:28,color:`var(--text-dim)`}),(0,Y.jsx)(`p`,{children:`No notes yet. Create one or upload a .md file.`})]})]})]})]})}var xt=[`critical`,`high`,`medium`,`low`,`info`],St={critical:`Critical`,high:`High`,medium:`Medium`,low:`Low`,info:`Info`},Ct=[`open`,`confirmed`,`false_positive`,`resolved`],wt=()=>({title:``,severity:`info`,description:``,tool:``,evidence:``,recommendation:``,cve:``,tags:[]});function Tt({title:e,severity:t,status:n,description:r,tool:i,cve:a,evidence:o,recommendation:s,tagsInput:c,saving:l,error:u,showStatus:d=!1,onChange:f,onTagsChange:p,onSave:m,onCancel:h}){return(0,Y.jsxs)(`div`,{className:`finding-modal-body`,children:[(0,Y.jsxs)(`div`,{className:`findings-form-row`,children:[(0,Y.jsx)(`input`,{name:`finding-title`,className:`findings-form-input`,placeholder:`Title *`,value:e,onChange:e=>f(`title`,e.target.value),autoFocus:!0}),(0,Y.jsx)(`select`,{name:`finding-severity`,className:`findings-form-select`,value:t,onChange:e=>f(`severity`,e.target.value),children:xt.map(e=>(0,Y.jsx)(`option`,{value:e,children:St[e]},e))}),d&&(0,Y.jsx)(`select`,{name:`finding-status`,className:`findings-form-select`,value:n??`open`,onChange:e=>f(`status`,e.target.value),children:Ct.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))})]}),(0,Y.jsx)(`textarea`,{name:`finding-description`,className:`findings-form-textarea`,placeholder:`Description`,rows:3,value:r,onChange:e=>f(`description`,e.target.value)}),(0,Y.jsxs)(`div`,{className:`findings-form-row`,children:[(0,Y.jsx)(`input`,{name:`finding-tool`,className:`findings-form-input`,placeholder:`Tool (e.g. nmap)`,value:i,onChange:e=>f(`tool`,e.target.value)}),(0,Y.jsx)(`input`,{name:`finding-cve`,className:`findings-form-input`,placeholder:`CVE (e.g. CVE-2021-44228)`,value:a,onChange:e=>f(`cve`,e.target.value)})]}),(0,Y.jsx)(`textarea`,{name:`finding-evidence`,className:`findings-form-textarea`,placeholder:`Evidence / PoC`,rows:3,value:o,onChange:e=>f(`evidence`,e.target.value)}),(0,Y.jsx)(`textarea`,{name:`finding-recommendation`,className:`findings-form-textarea`,placeholder:`Recommendation`,rows:2,value:s,onChange:e=>f(`recommendation`,e.target.value)}),(0,Y.jsx)(`input`,{name:`finding-tags`,className:`findings-form-input`,placeholder:`Tags (comma separated)`,value:c,onChange:e=>p(e.target.value)}),u&&(0,Y.jsx)(`div`,{className:`findings-error`,children:u}),(0,Y.jsxs)(`div`,{className:`findings-form-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:m,disabled:l,children:l?`Saving…`:`Save Finding`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:h,disabled:l,children:`Cancel`})]})]})}function Et({finding:e,saving:t,error:n,onSave:r,onClose:i}){let[a,o]=(0,K.useState)({title:e.title,severity:e.severity,description:e.description??``,tool:e.tool??``,evidence:e.evidence??``,recommendation:e.recommendation??``,cve:e.cve??``,tags:e.tags??[],status:e.status??`open`}),[s,c]=(0,K.useState)((e.tags??[]).join(`, `));function l(e,t){o(n=>({...n,[e]:t}))}function u(){let t={...a,tags:s?s.split(`,`).map(e=>e.trim()).filter(Boolean):[]};r(e.finding_id,t)}return(0,Y.jsx)(V,{isOpen:!0,onClose:i,disableClose:t,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(L,{size:13}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Edit Finding`})]}),children:(0,Y.jsx)(Tt,{title:a.title??``,severity:a.severity??`info`,status:a.status??`open`,description:a.description??``,tool:a.tool??``,cve:a.cve??``,evidence:a.evidence??``,recommendation:a.recommendation??``,tagsInput:s,saving:t,error:n,showStatus:!0,onChange:l,onTagsChange:c,onSave:u,onCancel:i})})}function Dt({session:e,onUpdate:t}){let n=e.findings??[],[i,a]=(0,K.useState)(`all`),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(wt()),[p,m]=(0,K.useState)(``),[h,g]=(0,K.useState)(!1),[_,v]=(0,K.useState)(null),[y,b]=(0,K.useState)(null),[x,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(null),E=(0,K.useMemo)(()=>{let e=o.trim().toLowerCase(),t=i===`all`?n:n.filter(e=>e.severity===i);return e&&(t=t.filter(t=>t.title.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.tool??``).toLowerCase().includes(e)||(t.cve??``).toLowerCase().includes(e)||(t.tags??[]).some(t=>t.toLowerCase().includes(e)))),t},[n,i,o]),D=xt.reduce((e,t)=>(e[t]=E.filter(e=>e.severity===t),e),{});function O(e,t){d(n=>({...n,[e]:t}))}async function A(){if(!u.title.trim()){v(`Title is required`);return}g(!0),v(null);try{let n={...u,tags:p?p.split(`,`).map(e=>e.trim()).filter(Boolean):[]};await G.addSessionFinding(e.session_id,n),d(wt()),m(``),l(!1),t?.()}catch(e){v(String(e))}finally{g(!1)}}async function M(n,r){g(!0),C(null);try{await G.updateSessionFinding(e.session_id,n,r),b(null),t?.()}catch(e){C(String(e))}finally{g(!1)}}async function N(n){T(n);try{await G.deleteSessionFinding(e.session_id,n),t?.()}catch(e){v(String(e))}finally{T(null)}}return(0,Y.jsxs)(`div`,{className:`session-findings`,children:[y&&(0,Y.jsx)(Et,{finding:y,saving:h,error:x,onSave:M,onClose:()=>{b(null),C(null)}}),(0,Y.jsxs)(`div`,{className:`session-findings-header`,children:[(0,Y.jsxs)(`div`,{className:`session-findings-filters`,children:[(0,Y.jsxs)(`button`,{className:`findings-filter-btn${i===`all`?` findings-filter-btn--active`:``}`,onClick:()=>a(`all`),children:[`All (`,n.length,`)`]}),xt.map(e=>{let t=n.filter(t=>t.severity===e).length;return t===0?null:(0,Y.jsxs)(`button`,{className:`findings-filter-btn findings-filter-btn--${e}${i===e?` findings-filter-btn--active`:``}`,onClick:()=>a(e),children:[St[e],` (`,t,`)`]},e)})]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{l(!0),v(null)},children:[(0,Y.jsx)(r,{size:12}),` Add Finding`]})]}),(0,Y.jsxs)(`div`,{className:`findings-search-row`,children:[(0,Y.jsx)(k,{size:12,className:`findings-search-icon`}),(0,Y.jsx)(`input`,{className:`findings-search-input`,type:`text`,placeholder:`Search findings…`,value:o,onChange:e=>s(e.target.value)}),o&&(0,Y.jsx)(`button`,{className:`findings-search-clear`,onClick:()=>s(``),title:`Clear search`,children:(0,Y.jsx)(j,{size:12})})]}),c&&(0,Y.jsx)(V,{isOpen:!0,onClose:()=>{l(!1),v(null)},disableClose:h,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(L,{size:13}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Add Finding`})]}),children:(0,Y.jsx)(Tt,{title:u.title,severity:u.severity,description:u.description??``,tool:u.tool??``,cve:u.cve??``,evidence:u.evidence??``,recommendation:u.recommendation??``,tagsInput:p,saving:h,error:_,onChange:O,onTagsChange:m,onSave:A,onCancel:()=>{l(!1),v(null)}})}),E.length===0&&(0,Y.jsx)(`div`,{className:`findings-empty`,children:(0,Y.jsx)(`p`,{className:`section-meta`,children:`No findings recorded yet.`})}),xt.map(e=>{let t=D[e];return t.length?(0,Y.jsxs)(`div`,{className:`findings-group findings-group--${e}`,children:[(0,Y.jsxs)(`div`,{className:`findings-group-header`,children:[(0,Y.jsx)(`span`,{className:`findings-severity-badge findings-severity-badge--${e}`,children:St[e]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[t.length,` finding`,t.length===1?``:`s`]})]}),t.map(e=>(0,Y.jsxs)(`div`,{className:`finding-card`,children:[(0,Y.jsxs)(`div`,{className:`finding-card-header`,children:[(0,Y.jsx)(`span`,{className:`finding-title`,children:e.title}),(0,Y.jsx)(`span`,{className:`finding-status finding-status--${e.status??`open`}`,children:e.status??`open`}),(0,Y.jsxs)(`div`,{className:`finding-card-actions`,children:[(0,Y.jsx)(`button`,{className:`finding-icon-btn`,title:`Edit`,onClick:()=>{b(e),C(null)},children:(0,Y.jsx)(f,{size:12})}),(0,Y.jsx)(`button`,{className:`finding-icon-btn finding-icon-btn--danger`,title:`Delete`,disabled:w===e.finding_id,onClick:()=>N(e.finding_id),children:(0,Y.jsx)(S,{size:12})})]})]}),e.description&&(0,Y.jsx)(`p`,{className:`finding-description`,children:e.description}),(0,Y.jsxs)(`div`,{className:`finding-meta`,children:[e.tool&&(0,Y.jsxs)(`span`,{className:`mono finding-meta-item`,children:[`tool: `,e.tool]}),e.cve&&(0,Y.jsx)(`span`,{className:`finding-meta-item finding-cve`,children:e.cve}),e.tags&&e.tags.length>0&&e.tags.map(e=>(0,Y.jsx)(`span`,{className:`finding-tag-badge`,children:e},e))]}),e.evidence&&(0,Y.jsxs)(`details`,{className:`finding-evidence-details`,children:[(0,Y.jsx)(`summary`,{className:`finding-evidence-summary`,children:`Evidence`}),(0,Y.jsx)(`pre`,{className:`finding-evidence-pre`,children:e.evidence})]}),e.recommendation&&(0,Y.jsxs)(`div`,{className:`finding-recommendation`,children:[(0,Y.jsx)(`strong`,{children:`Recommendation:`}),` `,e.recommendation]})]},e.finding_id))]},e):null})]})}var Ot={session_created:i,status_changed:s,handover:y,finding_added:k,report_generated:O,ai_report_generated:P,note_added:b,tool_run:m};function kt(e){if(!e)return`—`;try{return new Date(e*1e3).toLocaleString()}catch{return String(e)}}function At({evt:e}){let t=Ot[e.type]??n,r=e.type.replace(/_/g,` `);return(0,Y.jsxs)(`div`,{className:`timeline-event`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-icon`,children:(0,Y.jsx)(t,{size:14})}),(0,Y.jsxs)(`div`,{className:`timeline-event-body`,children:[(0,Y.jsxs)(`div`,{className:`timeline-event-header`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-type`,children:r}),(0,Y.jsx)(`span`,{className:`timeline-event-ts section-meta`,children:kt(e.timestamp)})]}),e.message&&(0,Y.jsx)(`p`,{className:`timeline-event-message`,children:e.message})]})]})}function jt({session:e}){let t=e.event_log??[],n=e.handover_history??[],r=[];for(let e of t)r.push({ts:e.timestamp??0,el:(0,Y.jsx)(At,{evt:e},`evt-${e.timestamp}-${e.type}`)});for(let e of n){let t=e.timestamp?new Date(e.timestamp).getTime()/1e3:0;r.push({ts:t,el:(0,Y.jsxs)(`div`,{className:`timeline-event`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-icon`,children:(0,Y.jsx)(y,{size:14})}),(0,Y.jsxs)(`div`,{className:`timeline-event-body`,children:[(0,Y.jsxs)(`div`,{className:`timeline-event-header`,children:[(0,Y.jsxs)(`span`,{className:`timeline-event-type`,children:[`handover — `,e.category]}),(0,Y.jsx)(`span`,{className:`timeline-event-ts section-meta`,children:e.timestamp?new Date(e.timestamp).toLocaleString():`—`})]}),(0,Y.jsxs)(`p`,{className:`timeline-event-message`,children:[`Confidence: `,Math.round((e.confidence??0)*100),`%`,e.note?` — ${e.note}`:``]})]})]},`handover-${e.timestamp}`)})}return r.sort((e,t)=>t.ts-e.ts),r.length===0?(0,Y.jsx)(`div`,{className:`session-timeline`,children:(0,Y.jsx)(`p`,{className:`section-meta`,children:`No timeline events recorded yet.`})}):(0,Y.jsx)(`div`,{className:`session-timeline`,children:(0,Y.jsx)(`div`,{className:`timeline-list`,children:r.map((e,t)=>(0,Y.jsx)(`div`,{children:e.el},t))})})}function Mt(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Pt=[[-1/0,-1/0],[1/0,1/0]],Ft=[`Enter`,` `,`Escape`],It={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Lt;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Lt||={});var Rt;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Rt||={});var zt;(function(e){e.Partial=`partial`,e.Full=`full`})(zt||={});var Bt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Vt;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Vt||={});var Ht;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Ht||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Ut={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function Wt(e){return e===null?null:e?`valid`:`invalid`}var Gt=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Kt=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),qt=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Jt=(e,t=[0,0])=>{let{width:n,height:r}=kn(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Yt=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):qt(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,ln(e,pn(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?dn(r):{x:0,y:0,width:0,height:0}},Xt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=ln(n,pn(e)),r=!0)}),r?dn(n):{x:0,y:0,width:0,height:0}},Zt=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=hn(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Qt=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function $t(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=kn(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function en({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=En(Xt($t(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function tn({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,Nt.error005());else{let{width:e,height:t}=kn(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&On(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=On(d)?an(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Nt.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function nn({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Qt(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var rn=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),an=(e={x:0,y:0},t,n)=>({x:rn(e.x,t[0][0],t[1][0]-(n?.width??0)),y:rn(e.y,t[0][1],t[1][1]-(n?.height??0))});function on(e,t,n){let{width:r,height:i}=kn(n),{x:a,y:o}=n.internals.positionAbsolute;return an(e,[[a,o],[a+r,o+i]],t)}var sn=(e,t,n)=>en?-rn(Math.abs(e-n),1,t)/t:0,cn=(e,t,n=15,r=40)=>[sn(e.x,r,t.width-r)*n,sn(e.y,r,t.height-r)*n],ln=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),un=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),dn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),fn=(e,t=[0,0])=>{let{x:n,y:r}=qt(e)?e.internals.positionAbsolute:Jt(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},pn=(e,t=[0,0])=>{let{x:n,y:r}=qt(e)?e.internals.positionAbsolute:Jt(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},mn=(e,t)=>dn(ln(un(e),un(t))),hn=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},gn=(e,t)=>hn(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),_n=e=>vn(e.width)&&vn(e.height)&&vn(e.x)&&vn(e.y),vn=e=>!isNaN(e)&&isFinite(e),yn=(e,t)=>(e,t)=>{},bn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),xn=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?bn(s,o):s},Sn=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Cn(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function wn(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Cn(e,n),i=Cn(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Cn(e.top??e.y??0,n),i=Cn(e.bottom??e.y??0,n),a=Cn(e.left??e.x??0,t),o=Cn(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Tn(e,t,n,r,i,a){let{x:o,y:s}=Sn(e,[t,n,r]),{x:c,y:l}=Sn({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var En=(e,t,n,r,i,a)=>{let o=wn(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=rn(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Tn(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},Dn=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function On(e){return e!=null&&e!==`parent`}function kn(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function An(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function jn(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Mn(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Nn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Pn(e){return{...It,...e||{}}}function Fn(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Vn(e),s=xn({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?bn(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var In=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ln=e=>e?.getRootNode?.()||window?.document,Rn=[`INPUT`,`SELECT`,`TEXTAREA`];function zn(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Rn.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Bn=e=>`clientX`in e,Vn=(e,t)=>{let n=Bn(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Hn=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...In(t)}})};function Un({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Wn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Gn({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Wn(t-r,a),n];case X.Right:return[t+Wn(r-t,a),n];case X.Top:return[t,n-Wn(n-i,a)];case X.Bottom:return[t,n+Wn(i-n,a)]}}function Kn({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=Gn({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Gn({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Un({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function qn({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var Xn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Zn=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Qn=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Nt.error006()),t;let r=n.getEdgeId||Xn,i;return i=Gt(e)?{...e}:{...e,id:r(e)},Zn(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function $n({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=qn({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var er={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},tr=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function rr({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=er[t],c=er[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=tr({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=qn({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function ir(e,t,n,r){let i=Math.min(nr(e,t)/2,nr(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function dr(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function fr(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=dr(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var pr=1e3,mr=10,hr={nodeOrigin:[0,0],nodeExtent:Pt,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},gr={...hr,checkEquality:!0};function _r(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function vr(e,t,n){let r=_r(hr,n);for(let n of e.values())if(n.parentId)Cr(n,e,t,r);else{let e=an(Jt(n,r.nodeOrigin),On(n.extent)?n.extent:r.nodeExtent,kn(n));n.internals.positionAbsolute=e}}function yr(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function br(e){return e===`manual`}function xr(e,t,n,r={}){let i=_r(gr,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!br(i.zIndexMode)?pr:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=an(Jt(u,i.nodeOrigin),On(u.extent)?u.extent:i.nodeExtent,kn(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:yr(u,e),z:wr(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Cr(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function Sr(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Cr(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=_r(hr,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Sr(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*mr),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Tr(e,u,o,s,a&&!br(c)?pr:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function wr(e,t,n){let r=vn(e.zIndex)?e.zIndex:0;return br(n)?r:r+(e.selected?t:0)}function Tr(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=kn(e),l=Jt(e,n),u=On(e.extent)?an(l,e.extent,c):l,d=an({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=on(d,c,t));let f=wr(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Er(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=mn(a.get(n.parentId)?.expandedRect??fn(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=kn(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=Er(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Or({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function kr(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Ar(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;kr(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),kr(`target`,s,c,e,i,o),t.set(r.id,r)}}function jr(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:jr(n,t):!1}function Mr(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Nr(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!jr(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Pr({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Fr({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=bn(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ir({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=he(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?un(Xt(s)):null,x=v&&l?Fr({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:bn(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=tn({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Pr({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=cn(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Fn(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Nr(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Pr({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=pe().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Fn(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Vn(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Fn(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Vn(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Vn(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Pr({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Mr(t,`.${g}`,v))&&(!_||Mr(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Lr(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())gn(i,fn(e))>0&&r.push(e);return r}var Rr=250;function zr(e,t,n,r){let i=[],a=1/0,o=Lr(e,n,t+Rr);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=lr(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Br(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...lr(o,c,c.position,!0)}:c}function Vr(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Hr(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ur=()=>!0;function Wr(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ur,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Ln(e.target),E=0,D,{x:O,y:k}=Vn(e),A=Vr(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Br(i,A,r,c,t);if(!N)return;let P=Vn(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=cn(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:lr(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:Ut[B.position],toNode:null,pointer:P};function ee(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&ee();function te(e){if(!M){let{x:t,y:n}=Vn(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;ee()}if(!x()||!B){U(e);return}let a=b();P=Vn(e,j),D=zr(xn(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Gr(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Hr(!!D,s.isValid);let u=c.get(i),f=u?lr(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?Sn({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Ut[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function U(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,U),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,U)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,U),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,U)}function Gr(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ur,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Vn(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Vr(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Lt.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Br(t,e,a,u,n,!0)}return _}var Kr={onPointerDown:Wr,isValid:Gr};function qr({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=he(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&Dn()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=ve().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:ue}}var Jr=e=>({x:e.x,y:e.y,zoom:e.k}),Yr=({x:e,y:t,zoom:n})=>me.translate(e,t).scale(n),Xr=(e,t)=>e.target.closest(`.${t}`),Zr=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Qr=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,$r=(e,t=0,n=Qr,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},ei=e=>{let t=e.ctrlKey&&Dn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ti({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Xr(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=ue(u),t=d*2**ei(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Rt.Vertical?0:u.deltaX*f,m=i===Rt.Horizontal?0:u.deltaY*f;!Dn()&&u.shiftKey&&i!==Rt.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Jr(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function ni({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Xr(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ri({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Jr(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function ii({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Zr(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Jr(a.transform))}}function ai({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Zr(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Jr(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function oi({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(Xr(f,`${u}-flow__node`)||Xr(f,`${u}-flow__edge`)||Xr(f,`${u}-flow__selection`)||Xr(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||Xr(f,c)&&h||Xr(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function si({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=ve().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=he(e).call(f);y({x:i.x,y:i.y,zoom:rn(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(ei);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).transform($r(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!vn(D)||D<0?0:D);let A=k?ti({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ni({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=ri({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=ii({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=ai({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=oi({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Yr(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Yr(e);return await g(n,t),n}function x(e){if(p){let t=Yr(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?_e(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).scaleTo($r(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).scaleBy($r(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!vn(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var ci;(function(e){e.Line=`line`,e.Handle=`handle`})(ci||={});function li({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function ui(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function di(e,t){return Math.max(0,t-e)}function fi(e,t){return Math.max(0,e-t)}function pi(e,t,n){return Math.max(0,t-e,e-n)}function mi(e,t){return e?!t:t}function hi(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=pi(E,h,g),j=pi(D,_,v);if(o){let e=0,t=0;c&&w<0?e=di(y+w+O,o[0][0]):!c&&w>0&&(e=fi(y+E+O,o[1][0])),l&&T<0?t=di(b+T+k,o[0][1]):!l&&T>0&&(t=fi(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=fi(y+w,s[0][0]):!c&&w<0&&(e=di(y+E,s[1][0])),l&&T>0?t=fi(b+T,s[0][1]):!l&&T<0&&(t=di(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=pi(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?fi(b+k+E/C,o[1][1])*C:di(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?di(b+E/C,s[1][1])*C:fi(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=pi(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?fi(y+D*C+O,o[1][0])/C:di(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?di(y+D*C,s[1][0])/C:fi(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(mi(c,l)?-w:w)/C:w=(mi(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var gi={width:0,height:0,x:0,y:0},_i={...gi,pointerX:0,pointerY:0,aspectRatio:1};function vi(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function yi({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=he(e),o={controlDirection:ui(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...gi},h={..._i};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:ui(e)};let g,_=null,v=[],y,b,x,S=!1,C=pe().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Fn(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=On(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=vi(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=Fn(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=hi(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var bi=e(fe(),1),xi=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Si=e=>e?xi(e):xi,{useDebugValue:Ci}=K.default,{useSyncExternalStoreWithSelector:wi}=bi.default,Ti=e=>e;function Ei(e,t=Ti,n){let r=wi(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Ci(r),r}var Di=(e,t)=>{let n=Si(e),r=(e,r=t)=>Ei(n,e,r);return Object.assign(r,n),r},Oi=(e,t)=>e?Di(e,t):Di;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}R();var ki=(0,K.createContext)(null),Ai=ki.Provider,ji=Nt.error001(`react`);function Q(e,t){let n=(0,K.useContext)(ki);if(n===null)throw Error(ji);return Ei(n,e,t)}function $(){let e=(0,K.useContext)(ki);if(e===null)throw Error(ji);return(0,K.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Mi={display:`none`},Ni={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Pi=`react-flow__node-desc`,Fi=`react-flow__edge-desc`,Ii=`react-flow__aria-live`,Li=e=>e.ariaLiveMessage,Ri=e=>e.ariaLabelConfig;function zi({rfId:e}){let t=Q(Li);return(0,Y.jsx)(`div`,{id:`${Ii}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Ni,children:t})}function Bi({rfId:e,disableKeyboardA11y:t}){let n=Q(Ri);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{id:`${Pi}-${e}`,style:Mi,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,Y.jsx)(`div`,{id:`${Fi}-${e}`,style:Mi,children:n[`edge.a11yDescription.default`]}),!t&&(0,Y.jsx)(zi,{rfId:e})]})}var Vi=(0,K.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,Y.jsx)(`div`,{className:Mt([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Vi.displayName=`Panel`;var Hi=`https://reactflow.dev?utm_source=attribution`;function Ui({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,Y.jsx)(Vi,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Hi}`,children:(0,Y.jsx)(`a`,{href:Hi,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Wi=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Gi=e=>e.id;function Ki(e,t){return Z(e.selectedNodes.map(Gi),t.selectedNodes.map(Gi))&&Z(e.selectedEdges.map(Gi),t.selectedEdges.map(Gi))}function qi({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(Wi,Ki);return(0,K.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Ji=e=>!!e.onSelectionChangeHandlers;function Yi({onSelectionChange:e}){let t=Q(Ji);return e||t?(0,Y.jsx)(qi,{onSelectionChange:e}):null}var Xi=[0,0],Zi={x:0,y:0,zoom:1},Qi=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],$i=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),ea={translateExtent:Pt,nodeOrigin:Xi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ta(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q($i,Z),l=$();(0,K.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=ea,s()}),[]);let u=(0,K.useRef)(ea);return(0,K.useEffect)(()=>{for(let s of Qi){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Pn(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Qi.map(t=>e[t])),null}function na(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function ra(e){let[t,n]=(0,K.useState)(e===`system`?null:e);return(0,K.useEffect)(()=>{if(e!==`system`){n(e);return}let t=na(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?na()?.matches?`dark`:`light`:t}var ia=typeof document<`u`?document:null;function aa(e=null,t={target:ia,actInsideInputWithModifier:!0}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(!1),a=(0,K.useRef)(new Set([])),[o,s]=(0,K.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,` +`).replace(` + +`,` ++`).split(` +`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,K.useEffect)(()=>{let n=t?.target??ia,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&zn(e))return!1;let n=sa(e.code,s);if(a.current.add(e[n]),oa(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=sa(e.code,s);oa(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function oa(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function sa(e,t){return t.includes(e)?`code`:`key`}var ca=()=>{let e=$();return(0,K.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=En(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return xn(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=Sn(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function la(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)ua(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function ua(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function da(e,t){return la(e,t)}function fa(e,t){return la(e,t)}function pa(e,t){return{id:e,type:`select`,selected:t}}function ma(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(pa(a.id,e)))}return r}function ha({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function ga(e){return{id:e.id,type:`remove`}}var _a=yn(`React Flow`,`https://reactflow.dev/`);function va(e,t,n={}){return Qn(e,t,{...n,onError:n.onError??_a})}var ya=e=>Kt(e),ba=e=>Gt(e);function xa(e){return(0,K.forwardRef)(e)}var Sa=typeof window<`u`?K.useLayoutEffect:K.useEffect;function Ca(e){let[t,n]=(0,K.useState)(BigInt(0)),[r]=(0,K.useState)(()=>wa(()=>n(e=>e+BigInt(1))));return Sa(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function wa(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Ta=(0,K.createContext)(null);function Ea({children:e}){let t=$(),n=Ca((0,K.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=ha({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Ca((0,K.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(ha({items:s,lookup:o}))},[])),i=(0,K.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,Y.jsx)(Ta.Provider,{value:i,children:e})}function Da(){let e=(0,K.useContext)(Ta);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Oa=e=>!!e.panZoom;function ka(){let e=ca(),t=$(),n=Da(),r=Q(Oa),i=(0,K.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=ya(e)?e:n.get(e.id),a=i.parentId?jn(i.position,i.measured,i.parentId,n,r):i.position;return fn({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&ya(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&ba(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await nn({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(ga);o?.(f),c(e)}if(m){let e=d.map(ga);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=_n(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=fn(s?r:a),l=gn(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=_n(e)?e:a(e);if(!r)return!1;let i=gn(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Yt(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Nn();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,K.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Aa=e=>e.selected,ja=typeof window<`u`?window:void 0;function Ma({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=$(),{deleteElements:r}=ka(),i=aa(e,{actInsideInputWithModifier:!1}),a=aa(t,{target:ja});(0,K.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Aa),edges:e.filter(Aa)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,K.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Na(e){let t=$();(0,K.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=In(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Nt.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Pa={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Fa=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Ia({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=Rt.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:y,paneClickDistance:b,selectionOnDrag:x}){let S=$(),C=(0,K.useRef)(null),{userSelectionActive:w,lib:T,connectionInProgress:E}=Q(Fa,Z),D=aa(p),O=(0,K.useRef)();Na(C);let k=(0,K.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),y||S.setState({transform:e})},[v,y]);return(0,K.useEffect)(()=>{if(C.current){O.current=si({domNode:C.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>S.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=S.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=S.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=S.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return S.setState({panZoom:O.current,transform:[e,t,n],domNode:C.current.closest(`.react-flow`)}),()=>{O.current?.destroy()}}},[]),(0,K.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:D,preventScrolling:m,noPanClassName:_,userSelectionActive:w,noWheelClassName:g,lib:T,onTransformChange:k,connectionInProgress:E,selectionOnDrag:x,paneClickDistance:b})},[e,t,n,r,i,a,o,s,c,D,m,_,w,g,T,k,E,x,b]),(0,Y.jsx)(`div`,{className:`react-flow__renderer`,ref:C,style:Pa,children:h})}var La=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ra(){let{userSelectionActive:e,userSelectionRect:t}=Q(La,Z);return e&&t?(0,Y.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var za=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ba=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Va({isSelecting:e,selectionKeyPressed:t,selectionMode:n=zt.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,K.useRef)(0),_=$(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=Q(Ba,Z),C=y&&(e||v),w=(0,K.useRef)(null),T=(0,K.useRef)(),E=(0,K.useRef)(new Set),D=(0,K.useRef)(new Set),O=(0,K.useRef)(!1),k=(0,K.useRef)(!1),A=(0,K.useRef)({x:0,y:0}),j=(0,K.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},N=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},P=d?e=>d(e):void 0,F=e=>{k.current&&=(e.stopPropagation(),!1)},I=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(T.current=i?.getBoundingClientRect(),!T.current)return;let s=n.target===w.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:c,y:l}=Vn(n.nativeEvent,T.current),u=xn({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function L(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=Sn(d,i),m={startX:d.x,startY:d.y,x:ee.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}Mn(h,E.current)||c(ma(a,E.current,!0)),Mn(g,D.current)||l(ma(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!T.current)return;let[e,t]=cn(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=A.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};(0,K.useEffect)(()=>()=>z(),[]);let B=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=Vn(e.nativeEvent,T.current);A.current={x:o,y:c};let l=Sn({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(R(),!0),L(o,c)},V=e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),z())},H=e=>{e.target?.releasePointerCapture?.(e.pointerId),z()},ee=r===!0||Array.isArray(r)&&r.includes(0);return(0,Y.jsxs)(`div`,{className:Mt([`react-flow__pane`,{draggable:ee,dragging:b,selection:e}]),onClick:C?void 0:za(M,w),onContextMenu:za(N,w),onWheel:za(P,w),onPointerEnter:C?void 0:f,onPointerMove:C?B:p,onPointerUp:V,onPointerCancel:C?H:void 0,onPointerDownCapture:C?I:void 0,onClickCapture:C?F:void 0,onPointerLeave:m,ref:w,style:Pa,children:[h,(0,Y.jsx)(Ra,{})]})}function Ha({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Nt.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ua({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=$(),[c,l]=(0,K.useState)(!1),u=(0,K.useRef)();return(0,K.useEffect)(()=>{if(!t)return u.current=Ir({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Ha({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,K.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var Wa=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Ga(){let e=$();return(0,K.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Wa(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=bn(t,i));let{position:a,positionAbsolute:s}=tn({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Ka=(0,K.createContext)(null),qa=Ka.Provider;Ka.Consumer;var Ja=()=>(0,K.useContext)(Ka),Ya=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Xa=(0,K.createContext)(null);function Za({children:e}){let t=Q(Ya,Z);return(0,Y.jsx)(Xa.Provider,{value:t,children:e})}function Qa(){let e=(0,K.useContext)(Xa);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var $a={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},eo=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return $a;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Lt.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function to({type:e=`source`,position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=$(),_=Ja(),{connectOnClick:v,noPanClassName:y,rfId:b}=Qa(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=Q(eo(_,m,e),Z);_||g.getState().onError?.(`010`,Nt.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(va(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=Bn(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Kr.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,Y.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Mt([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Ln(t.target),h=n||c,{connection:v,isValid:y}=Kr.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var no=(0,K.memo)(xa(to));function ro({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return(0,Y.jsxs)(Y.Fragment,{children:[e?.label,(0,Y.jsx)(no,{type:`source`,position:n,isConnectable:t})]})}function io({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(no,{type:`target`,position:n,isConnectable:t}),e?.label,(0,Y.jsx)(no,{type:`source`,position:r,isConnectable:t})]})}function ao(){return null}function oo({data:e,isConnectable:t,targetPosition:n=X.Top}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(no,{type:`target`,position:n,isConnectable:t}),e?.label]})}var so={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},co={input:ro,default:io,output:oo,group:ao};function lo(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var uo=e=>{let{width:t,height:n,x:r,y:i}=Xt(e.nodeLookup,{filter:e=>!!e.selected});return{width:vn(t)?t:null,height:vn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function fo({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=$(),{width:i,height:a,transformString:o,userSelectionActive:s}=Q(uo,Z),c=Ga(),l=(0,K.useRef)(null);(0,K.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ua({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,Y.jsx)(`div`,{className:Mt([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,Y.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(so,e.key)&&(e.preventDefault(),c({direction:so[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var po=typeof window<`u`?window:void 0,mo=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ho({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=Q(mo,Z),z=aa(l,{target:po}),B=aa(h,{target:po}),V=B||w,H=B||b,ee=u&&V!==!0,te=z||R||ee;return Ma({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,Y.jsx)(Ia,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:H,panActivationKeyPressed:B,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&V,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:ee,children:(0,Y.jsxs)(Va,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:T,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:ee,children:[e,L&&(0,Y.jsx)(fo,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}ho.displayName=`FlowRenderer`;var go=(0,K.memo)(ho),_o=e=>t=>e?Zt(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function vo(e){return Q((0,K.useCallback)(_o(e),[e]),Z)}var yo=e=>e.updateNodeInternals;function bo(){let e=Q(yo),[t]=(0,K.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,K.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function xo({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=$(),a=(0,K.useRef)(null),o=(0,K.useRef)(null),s=(0,K.useRef)(e.sourcePosition),c=(0,K.useRef)(e.targetPosition),l=(0,K.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,K.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,K.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,K.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function So({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Z),S=y.type||`default`,C=g?.[S]||co[S];C===void 0&&(v?.(`003`,Nt.error003(S)),S=`default`,C=g?.default||co.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=$(),k=An(y),A=xo({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Ua({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=Ga();if(y.hidden)return null;let N=kn(y),P=lo(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Ha({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(zn(t.nativeEvent)||m)){if(Ft.includes(t.key)&&T){let n=t.key===`Escape`;Ha({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(so,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:so[t.key],factor:t.shiftKey?4:1})}}},ee=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(Zt(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,Y.jsx)(`div`,{className:Mt([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:V,onDoubleClick:B,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?ee:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Pi}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,Y.jsx)(qa,{value:e,children:(0,Y.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var Co=(0,K.memo)(So),wo=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function To(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Q(wo,Z),a=vo(e.onlyRenderVisibleElements),o=bo();return(0,Y.jsx)(`div`,{className:`react-flow__nodes`,style:Pa,children:a.map(a=>(0,Y.jsx)(Co,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}To.displayName=`NodeRenderer`;var Eo=(0,K.memo)(To);function Do(e){return Q((0,K.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Yn({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Z)}var Oo=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,Y.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},ko=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,Y.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},Ao={[Ht.Arrow]:Oo,[Ht.ArrowClosed]:ko};function jo(e){let t=$();return(0,K.useMemo)(()=>Object.prototype.hasOwnProperty.call(Ao,e)?Ao[e]:(t.getState().onError?.(`009`,Nt.error009(e)),null),[e])}var Mo=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=jo(t);return c?(0,Y.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,Y.jsx)(c,{color:n,strokeWidth:o})}):null},No=({defaultColor:e,rfId:t})=>{let n=Q(e=>e.edges),r=Q(e=>e.defaultEdgeOptions),i=(0,K.useMemo)(()=>fr(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,Y.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,Y.jsx)(`defs`,{children:i.map(e=>(0,Y.jsx)(Mo,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};No.displayName=`MarkerDefinitions`;var Po=(0,K.memo)(No);function Fo({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,K.useState)({x:1,y:0,width:0,height:0}),p=Mt([`react-flow__edge-textwrapper`,l]),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,Y.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,Y.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,Y.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Fo.displayName=`EdgeText`;var Io=(0,K.memo)(Fo);function Lo({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`path`,{...u,d:e,fill:`none`,className:Mt([`react-flow__edge-path`,u.className])}),l?(0,Y.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&vn(t)&&vn(n)?(0,Y.jsx)(Io,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Ro({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function zo({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top}){let[o,s]=Ro({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Ro({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Un({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Bo(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=zo({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,Y.jsx)(Lo,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Vo=Bo({isInternal:!1}),Ho=Bo({isInternal:!0});Vo.displayName=`SimpleBezierEdge`,Ho.displayName=`SimpleBezierEdgeInternal`;function Uo(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=X.Bottom,targetPosition:m=X.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=ar({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,Y.jsx)(Lo,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Wo=Uo({isInternal:!1}),Go=Uo({isInternal:!0});Wo.displayName=`SmoothStepEdge`,Go.displayName=`SmoothStepEdgeInternal`;function Ko(e){return(0,K.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,Y.jsx)(Wo,{...n,id:r,pathOptions:(0,K.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var qo=Ko({isInternal:!1}),Jo=Ko({isInternal:!0});qo.displayName=`StepEdge`,Jo.displayName=`StepEdgeInternal`;function Yo(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=$n({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,Y.jsx)(Lo,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Xo=Yo({isInternal:!1}),Zo=Yo({isInternal:!0});Xo.displayName=`StraightEdge`,Zo.displayName=`StraightEdgeInternal`;function Qo(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=X.Bottom,targetPosition:s=X.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Kn({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,Y.jsx)(Lo,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var $o=Qo({isInternal:!1}),es=Qo({isInternal:!0});$o.displayName=`BezierEdge`,es.displayName=`BezierEdgeInternal`;var ts={default:es,straight:Zo,step:Jo,smoothstep:Go,simplebezier:Ho},ns={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},rs=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,is=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,as=`react-flow__edgeupdater`;function os({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,Y.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Mt([as,`${as}-${s}`]),cx:rs(t,r,e),cy:is(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function ss({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=$(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Kr.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,Y.jsxs)(Y.Fragment,{children:[(e===!0||e===`source`)&&(0,Y.jsx)(os,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,Y.jsx)(os,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function cs({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=Q(t=>t.edgeLookup.get(e)),b=Q(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||ts[x];S===void 0&&(_?.(`011`,Nt.error011(x)),x=`default`,S=h?.default||ts.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,K.useRef)(null),[D,O]=(0,K.useState)(!1),[k,A]=(0,K.useState)(!1),j=$(),{zIndex:M=y.zIndex,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R}=Q((0,K.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return ns;let i=sr({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=Jn({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||ns,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex,_]),Z),z=(0,K.useMemo)(()=>y.markerStart?`url('#${dr(y.markerStart,m)}')`:void 0,[y.markerStart,m]),B=(0,K.useMemo)(()=>y.markerEnd?`url('#${dr(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||N===null||P===null||F===null||I===null)return null;let V=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},H=a?e=>{a(e,{...y})}:void 0,ee=o?e=>{o(e,{...y})}:void 0,te=s?e=>{s(e,{...y})}:void 0,U=c?e=>{c(e,{...y})}:void 0,W=l?e=>{l(e,{...y})}:void 0;return(0,Y.jsx)(`svg`,{style:{zIndex:M},children:(0,Y.jsxs)(`g`,{className:Mt([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:V,onDoubleClick:H,onContextMenu:ee,onMouseEnter:te,onMouseMove:U,onMouseLeave:W,onKeyDown:C?t=>{if(!v&&Ft.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${Fi}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,Y.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:z,markerEnd:B,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,Y.jsx)(ss,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,setUpdateHover:O,setReconnecting:A})]})})}var ls=(0,K.memo)(cs),us=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ds({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Q(us,Z),b=Do(t);return(0,Y.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,Y.jsx)(Po,{defaultColor:e,rfId:n}),b.map(e=>(0,Y.jsx)(ls,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}ds.displayName=`EdgeRenderer`;var fs=(0,K.memo)(ds),ps=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function ms({children:e}){let t=$(),n=(0,K.useRef)(null),[r]=(0,K.useState)(()=>t.getState().transform);return Sa(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=ps(r)))};return r(),t.subscribe(r)},[t]),(0,Y.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:ps(r)},children:e})}function hs(e){let t=ka(),n=(0,K.useRef)(!1);(0,K.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var gs=e=>e.panZoom?.syncViewport;function _s(e){let t=Q(gs),n=$();return(0,K.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function vs(e){return e.connection.inProgress?{...e.connection,to:xn(e.connection.to,e.transform)}:{...e.connection}}function ys(e){return e?t=>e(vs(t)):vs}function bs(e){return Q(ys(e),Z)}var xs=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Ss({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Q(xs,Z);return a&&i&&c?(0,Y.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,Y.jsx)(`g`,{className:Mt([`react-flow__connection`,Wt(s)]),children:(0,Y.jsx)(Cs,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var Cs=({style:e,type:t=Vt.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=bs();if(!i)return;if(n)return(0,Y.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Wt(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Vt.Bezier:[m]=Kn(h);break;case Vt.SimpleBezier:[m]=zo(h);break;case Vt.Step:[m]=ar({...h,borderRadius:0});break;case Vt.SmoothStep:[m]=ar(h);break;default:[m]=$n(h)}return(0,Y.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};Cs.displayName=`ConnectionLine`;var ws={};function Ts(e=ws){(0,K.useRef)(e),$(),(0,K.useEffect)(()=>{},[e])}function Es(){$(),(0,K.useRef)(!1),(0,K.useEffect)(()=>{},[])}function Ds({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneScroll:U,onPaneContextMenu:W,paneClickDistance:ne,nodeClickDistance:re,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,onReconnect:le,onReconnectStart:G,onReconnectEnd:ue,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,viewport:_e,onViewportChange:ve,nodesDraggable:ye}){return Ts(e),Ts(t),Es(),hs(n),_s(_e),(0,Y.jsx)(go,{onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneContextMenu:W,onPaneScroll:U,paneClickDistance:ne,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,onViewportChange:ve,isControlledViewport:!!_e,children:(0,Y.jsxs)(ms,{children:[(0,Y.jsx)(fs,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:le,onReconnectStart:G,onReconnectEnd:ue,onlyRenderVisibleElements:T,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,defaultMarkerColor:M,noPanClassName:pe,disableKeyboardA11y:me,rfId:ge}),(0,Y.jsx)(Ss,{style:h,type:m,component:g,containerStyle:_}),(0,Y.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,Y.jsx)(Eo,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:re,onlyRenderVisibleElements:T,noPanClassName:pe,noDragClassName:de,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,nodesDraggable:ye}),(0,Y.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}Ds.displayName=`GraphView`;var Os=(0,K.memo)(Ds),ks=yn(`React Flow`,`https://reactflow.dev/`),As=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Pt;Ar(h,g,_);let{nodesInitialized:x}=xr(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=En(Xt(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Pt,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Lt.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Bt},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ks,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:It,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},js=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Oi((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await en({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...As({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=xr(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Ar(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=Dr(e,n,r,i,a,o,l);d&&(vr(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=lr(e,o.fromHandle,X.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Er(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(da(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(fa(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>pa(e,!0)));return}i(ma(r,new Set([...e]),!0)),a(ma(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>pa(e,!0)));return}a(ma(n,new Set([...e]))),i(ma(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(pa(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(pa(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,pa(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,pa(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(xr(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Or({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Bt}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...As()})}},Object.is);function Ms({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,K.useState)(()=>js({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,Y.jsx)(Ai,{value:m,children:(0,Y.jsx)(Ea,{children:(0,Y.jsx)(Za,{children:p})})})}function Ns({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,K.useContext)(ki)?(0,Y.jsx)(Y.Fragment,{children:e}):(0,Y.jsx)(Ms,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Ps={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Fs({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onBeforeDelete:I,connectionMode:L,connectionLineType:R=Vt.Bezier,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,deleteKeyCode:H=`Backspace`,selectionKeyCode:ee=`Shift`,selectionOnDrag:te=!1,selectionMode:U=zt.Full,panActivationKeyCode:W=`Space`,multiSelectionKeyCode:ne=Dn()?`Meta`:`Control`,zoomActivationKeyCode:re=Dn()?`Meta`:`Control`,snapToGrid:ie,snapGrid:ae,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:se,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:G,nodesFocusable:ue,nodeOrigin:de=Xi,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me=!0,defaultViewport:he=Zi,minZoom:ge=.5,maxZoom:_e=2,translateExtent:ve=Pt,preventScrolling:ye=!0,nodeExtent:be,defaultMarkerColor:xe=`#b1b1b7`,zoomOnScroll:Se=!0,zoomOnPinch:Ce=!0,panOnScroll:we=!1,panOnScrollSpeed:Te=.5,panOnScrollMode:Ee=Rt.Free,zoomOnDoubleClick:De=!0,panOnDrag:Oe=!0,onPaneClick:ke,onPaneMouseEnter:Ae,onPaneMouseMove:je,onPaneMouseLeave:Me,onPaneScroll:Ne,onPaneContextMenu:Pe,paneClickDistance:Fe=1,nodeClickDistance:Ie=0,children:Le,onReconnect:Re,onReconnectStart:q,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge=10,onNodesChange:Ke,onEdgesChange:qe,noDragClassName:Je=`nodrag`,noWheelClassName:Ye=`nowheel`,noPanClassName:Xe=`nopan`,fitView:Ze,fitViewOptions:Qe,connectOnClick:$e,attributionPosition:et,proOptions:J,defaultEdgeOptions:tt,elevateNodesOnSelect:nt=!0,elevateEdgesOnSelect:rt=!1,disableKeyboardA11y:it=!1,autoPanOnConnect:at,autoPanOnNodeDrag:ot,autoPanOnSelection:st=!0,autoPanSpeed:ct,connectionRadius:lt,isValidConnection:ut,onError:dt,style:ft,id:pt,nodeDragThreshold:mt,connectionDragThreshold:ht,viewport:gt,onViewportChange:_t,width:vt,height:yt,colorMode:bt=`light`,debug:xt,onScroll:St,ariaLabelConfig:Ct,zIndexMode:wt=`basic`,...Tt},Et){let Dt=pt||`1`,Ot=ra(bt),kt=(0,K.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),St?.(e)},[St]);return(0,Y.jsx)(`div`,{"data-testid":`rf__wrapper`,...Tt,onScroll:kt,style:{...ft,...Ps},ref:Et,className:Mt([`react-flow`,i,Ot]),id:pt,role:`application`,children:(0,Y.jsxs)(Ns,{nodes:e,edges:t,width:vt,height:yt,fitView:Ze,fitViewOptions:Qe,minZoom:ge,maxZoom:_e,nodeOrigin:de,nodeExtent:be,zIndexMode:wt,children:[(0,Y.jsx)(ta,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:G,nodesFocusable:ue,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me,elevateNodesOnSelect:nt,elevateEdgesOnSelect:rt,minZoom:ge,maxZoom:_e,nodeExtent:be,onNodesChange:Ke,onEdgesChange:qe,snapToGrid:ie,snapGrid:ae,connectionMode:L,translateExtent:ve,connectOnClick:$e,defaultEdgeOptions:tt,fitView:Ze,fitViewOptions:Qe,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:Xe,nodeOrigin:de,rfId:Dt,autoPanOnConnect:at,autoPanOnNodeDrag:ot,autoPanSpeed:ct,onError:dt,connectionRadius:lt,isValidConnection:ut,selectNodesOnDrag:se,nodeDragThreshold:mt,connectionDragThreshold:ht,onBeforeDelete:I,debug:xt,ariaLabelConfig:Ct,zIndexMode:wt}),(0,Y.jsx)(Os,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,selectionKeyCode:ee,selectionOnDrag:te,selectionMode:U,deleteKeyCode:H,multiSelectionKeyCode:ne,panActivationKeyCode:W,zoomActivationKeyCode:re,onlyRenderVisibleElements:oe,defaultViewport:he,translateExtent:ve,minZoom:ge,maxZoom:_e,preventScrolling:ye,zoomOnScroll:Se,zoomOnPinch:Ce,zoomOnDoubleClick:De,panOnScroll:we,panOnScrollSpeed:Te,panOnScrollMode:Ee,panOnDrag:Oe,autoPanOnSelection:st,onPaneClick:ke,onPaneMouseEnter:Ae,onPaneMouseMove:je,onPaneMouseLeave:Me,onPaneScroll:Ne,onPaneContextMenu:Pe,paneClickDistance:Fe,nodeClickDistance:Ie,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onReconnect:Re,onReconnectStart:q,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge,defaultMarkerColor:xe,noDragClassName:Je,noWheelClassName:Ye,noPanClassName:Xe,rfId:Dt,disableKeyboardA11y:it,nodeExtent:be,viewport:gt,onViewportChange:_t,nodesDraggable:ce}),(0,Y.jsx)(Yi,{onSelectionChange:k}),Le,(0,Y.jsx)(Ui,{proOptions:J,position:et}),(0,Y.jsx)(Bi,{rfId:Dt,disableKeyboardA11y:it})]})})}var Is=xa(Fs);Nt.error014();function Ls({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,Y.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Mt([`react-flow__background-pattern`,n,r])})}function Rs({radius:e,className:t}){return(0,Y.jsx)(`circle`,{cx:e,cy:e,r:e,className:Mt([`react-flow__background-pattern`,`dots`,t])})}var zs;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(zs||={});var Bs={[zs.Dots]:1,[zs.Lines]:1,[zs.Cross]:6},Vs=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Hs({id:e,variant:t=zs.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,K.useRef)(null),{transform:f,patternId:p}=Q(Vs,Z),m=r||Bs[t],h=t===zs.Dots,g=t===zs.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]+x[0]/2,b[1]*f[2]+x[1]/2],C=`${p}${e||``}`;return(0,Y.jsxs)(`svg`,{className:Mt([`react-flow__background`,l]),style:{...c,...Pa,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,Y.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,Y.jsx)(Rs,{radius:y/2,className:u}):(0,Y.jsx)(Ls,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,Y.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}Hs.displayName=`Background`;var Us=(0,K.memo)(Hs);function Ws(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,Y.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Gs(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,Y.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Ks(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,Y.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function qs(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,Y.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Js(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,Y.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Ys({children:e,className:t,...n}){return(0,Y.jsx)(`button`,{type:`button`,className:Mt([`react-flow__controls-button`,t]),...n,children:e})}var Xs=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Zs({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=$(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Q(Xs,Z),{zoomIn:y,zoomOut:b,fitView:x}=ka();return(0,Y.jsxs)(Vi,{className:Mt([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ys,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,Y.jsx)(Ws,{})}),(0,Y.jsx)(Ys,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,Y.jsx)(Gs,{})})]}),n&&(0,Y.jsx)(Ys,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,Y.jsx)(Ks,{})}),r&&(0,Y.jsx)(Ys,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,Y.jsx)(Js,{}):(0,Y.jsx)(qs,{})}),u]})}Zs.displayName=`Controls`;var Qs=(0,K.memo)(Zs);function $s({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,Y.jsx)(`rect`,{className:Mt([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var ec=(0,K.memo)($s),tc=e=>e.nodes.map(e=>e.id),nc=e=>e instanceof Function?e:()=>e;function rc({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=ec,onClick:o}){let s=Q(tc,Z),c=nc(t),l=nc(e),u=nc(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,Y.jsx)(Y.Fragment,{children:s.map(e=>(0,Y.jsx)(ac,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function ic({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=kn(r);return{node:r,x:i,y:a,width:o,height:s}},Z);return!l||l.hidden||!An(l)?null:(0,Y.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var ac=(0,K.memo)(ic),oc=(0,K.memo)(rc),sc=200,cc=150,lc=e=>!e.hidden,uc=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?mn(Xt(e.nodeLookup,{filter:lc}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},dc=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,fc=(e,t)=>dc(e.viewBB,t.viewBB)&&dc(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,pc=`react-flow__minimap-desc`;function mc({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=$(),S=(0,K.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=Q(uc,fc),j=e?.width??sc,M=e?.height??cc,N=C.width/j,P=C.height/M,F=Math.max(N,P),I=F*j,L=F*M,R=b*F,z=C.x-(I-C.width)/2-R,B=C.y-(L-C.height)/2-R,V=I+R*2,H=L+R*2,ee=`${pc}-${T}`,te=(0,K.useRef)(0),U=(0,K.useRef)();te.current=F,(0,K.useEffect)(()=>{if(S.current&&E)return U.current=qr({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>te.current}),()=>{U.current?.destroy()}},[E]),(0,K.useEffect)(()=>{U.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let W=p?e=>{let[t,n]=U.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ne=m?(0,K.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,re=_??A[`minimap.ariaLabel`];return(0,Y.jsx)(Vi,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*F:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Mt([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,Y.jsxs)(`svg`,{width:j,height:M,viewBox:`${z} ${B} ${V} ${H}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ee,ref:S,onClick:W,children:[re&&(0,Y.jsx)(`title`,{id:ee,children:re}),(0,Y.jsx)(oc,{onClick:ne,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,Y.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${B-R}h${V+R*2}v${H+R*2}h${-V-R*2}z + M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}mc.displayName=`MiniMap`;var hc=(0,K.memo)(mc),gc=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,_c={[ci.Line]:`right`,[ci.Handle]:`bottom-right`};function vc({nodeId:e,position:t,variant:n=ci.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=Ja(),y=typeof e==`string`?e:v,b=$(),x=(0,K.useRef)(null),S=n===ci.Handle,C=Q((0,K.useCallback)(gc(S&&p),[S,p]),Z),w=(0,K.useRef)(null),T=t??_c[n];(0,K.useEffect)(()=>{if(!(!x.current||!y))return w.current||=yi({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Er([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...jn({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]);let E=T.split(`-`);return(0,Y.jsx)(`div`,{className:Mt([`react-flow__resize-control`,`nodrag`,...E,n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,K.memo)(vc);var yc=40,bc=340,xc=56,Sc={open:`var(--success, #2ecc71)`,filtered:`var(--warning, #f0b429)`,closed:`var(--text-dim, #4a5568)`};function Cc(e){return Sc[e.toLowerCase()]??`var(--border, #252836)`}function wc({host:e}){return(0,Y.jsxs)(`div`,{className:`topology-node-label`,children:[(0,Y.jsx)(`strong`,{className:`mono`,children:e.ip}),e.hostname&&(0,Y.jsx)(`span`,{className:`section-meta`,children:e.hostname}),e.mac&&(0,Y.jsxs)(`span`,{className:`section-meta mono`,children:[e.mac,e.vendor?` (${e.vendor})`:``]})]})}function Tc({port:e}){return(0,Y.jsxs)(`div`,{className:`topology-node-label`,children:[(0,Y.jsxs)(`strong`,{className:`mono`,children:[e.port,`/`,e.protocol]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[e.service??`unknown`,` · `,e.state]}),e.version&&(0,Y.jsx)(`span`,{className:`section-meta`,children:e.version})]})}function Ec(e,t){let n=[],r=[],i=40;for(let a of e){let e=`host:${a.ip}`;n.push({id:e,position:{x:yc,y:i},data:{label:(0,Y.jsx)(wc,{host:a})},style:{background:`var(--bg-card2)`,border:`1px solid var(--accent)`,borderRadius:8,padding:4,width:260}});let o=t.filter(e=>e.host===a.ip).sort((e,t)=>e.port-t.port),s=i;for(let t of o){let i=`port:${a.ip}:${t.port}:${t.protocol}`;n.push({id:i,position:{x:bc,y:s},data:{label:(0,Y.jsx)(Tc,{port:t})},style:{background:`var(--bg-card)`,border:`2px solid ${Cc(t.state)}`,borderRadius:8,padding:4,width:220}}),r.push({id:`${e}->${i}`,source:e,target:i,style:{stroke:`var(--border)`}}),s+=xc}i+=Math.max(o.length,1)*xc+40}return{nodes:n,edges:r}}function Dc({session:e}){let t=e.topology,{nodes:n,edges:r}=(0,K.useMemo)(()=>Ec(t?.hosts??[],t?.ports??[]),[t]);return!t||t.hosts.length===0?(0,Y.jsx)(`div`,{className:`session-topology`,children:(0,Y.jsx)(`p`,{className:`empty-state`,children:`No topology data yet — run nmap from the Run page (or a step in this session) and export the result to the topology map.`})}):(0,Y.jsxs)(`div`,{className:`session-topology`,children:[(0,Y.jsxs)(`div`,{className:`session-topology-meta section-meta`,children:[t.hosts.length,` host`,t.hosts.length===1?``:`s`,` · `,t.ports.length,` port`,t.ports.length===1?``:`s`,t.updated_at?` · updated ${new Date(t.updated_at*1e3).toLocaleString()}`:``]}),(0,Y.jsx)(`div`,{className:`session-topology-canvas`,children:(0,Y.jsxs)(Is,{nodes:n,edges:r,fitView:!0,proOptions:{hideAttribution:!0},children:[(0,Y.jsx)(Us,{}),(0,Y.jsx)(Qs,{showInteractive:!1}),(0,Y.jsx)(hc,{pannable:!0,zoomable:!0,bgColor:`var(--bg-card2)`,maskColor:`color-mix(in srgb, var(--bg) 65%, transparent)`,nodeColor:`var(--bg-card)`,nodeStrokeColor:`var(--border)`})]})})]})}function Oc(){return new Date().toISOString().slice(0,10)}function kc({isOpen:e,session:t,onClose:n,llmAvailable:r=!1}){let[i,a]=(0,K.useState)(`structured`),[o,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(!0),[d,f]=(0,K.useState)(``),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(null);if(!e)return null;function b(e,t){let n=new Blob([e],{type:`text/markdown`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t,i.click(),URL.revokeObjectURL(r)}async function x(){h(!0),_(null),y(null);try{let e=await G.generateSessionReport(t.session_id,{include_notes:o,include_event_log:l,download:!1});if(!e.success||!e.report){_(e.error??`Report generation failed.`);return}y(e.report)}catch(e){_(String(e))}finally{h(!1)}}async function S(){h(!0),_(null);try{let e=await G.generateSessionReport(t.session_id,{include_notes:o,include_event_log:l,download:!1});if(!e.success||!e.report){_(e.error??`Report generation failed.`);return}b(e.report,`report-structured-${Oc()}.md`)}catch(e){_(String(e))}finally{h(!1)}}function C(){let e=i===`ai`,r=e?`AI report — ${t.target}`:`Report — ${t.target}`;n(),W(r),(async()=>{try{let n;if(e){let e=await G.generateSessionAiReport(t.session_id,{include_notes:o,include_event_log:l,focus:d.trim()||void 0,download:!1,save_to_notes:!0});if(!e.success){ne(r,e.error??`AI report generation failed.`);return}n=e.saved_path}else{let e=await G.generateSessionReport(t.session_id,{include_notes:o,include_event_log:l,download:!1,save_to_notes:!0});if(!e.success){ne(r,e.error??`Report generation failed.`);return}n=e.saved_path}ie(r,n??`notes/reports/`)}catch(e){ne(r,String(e))}})()}function T(){let e=G.exportSessionNotesUrl(t.session_id);window.open(e,`_blank`)}function E(){let e=G.exportSessionHtmlReportUrl(t.session_id);window.open(e,`_blank`)}return(0,Y.jsxs)(V,{isOpen:!0,onClose:n,size:`lg`,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(O,{size:14}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Generate Report`}),(0,Y.jsx)(`span`,{className:`section-meta mono`,children:t.target})]}),children:[(0,Y.jsxs)(`div`,{className:`report-modal-tabs`,children:[(0,Y.jsxs)(`button`,{className:`report-modal-tab${i===`structured`?` report-modal-tab--active`:``}`,onClick:()=>{a(`structured`),y(null),_(null)},children:[(0,Y.jsx)(O,{size:12}),` Structured`]}),(0,Y.jsxs)(`button`,{className:`report-modal-tab${i===`ai`?` report-modal-tab--active`:``}`,onClick:()=>{a(`ai`),y(null),_(null)},disabled:!r,title:r?void 0:`No LLM configured. Start the server with --ai or --ai-small to enable AI-assisted reports.`,children:[(0,Y.jsx)(P,{size:12}),` AI-Assisted`]})]}),(0,Y.jsxs)(`div`,{className:`report-modal-body`,children:[i===`ai`&&(0,Y.jsxs)(`div`,{className:`report-modal-note section-meta`,children:[`Generates a structured report with an AI executive summary. Saved automatically to `,(0,Y.jsx)(`span`,{className:`mono`,children:`notes/reports/`}),` when done. Requires a configured LLM provider.`]}),(0,Y.jsxs)(`div`,{className:`report-modal-options`,children:[(0,Y.jsxs)(`label`,{className:`report-option-row`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>c(e.target.checked)}),(0,Y.jsx)(`span`,{children:`Include session notes`})]}),(0,Y.jsxs)(`label`,{className:`report-option-row`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,Y.jsx)(`span`,{children:`Include activity timeline`})]}),i===`ai`&&(0,Y.jsxs)(`div`,{className:`report-option-focus`,children:[(0,Y.jsx)(`label`,{className:`section-meta`,children:`Focus / context (optional)`}),(0,Y.jsx)(`input`,{name:`report-focus`,className:`findings-form-input`,placeholder:`e.g. focus on RCE and privilege escalation findings`,value:d,onChange:e=>f(e.target.value)})]})]}),g&&(0,Y.jsx)(`div`,{className:`report-modal-error`,children:g}),(0,Y.jsxs)(`div`,{className:`report-modal-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:C,children:i===`ai`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(P,{size:12}),` Generate & Save`]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(O,{size:12}),` Generate & Save`]})}),i===`structured`&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:x,disabled:m,children:m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(s,{size:12,className:`spin`}),` Generating…`]}):`Preview`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:S,disabled:m,children:[(0,Y.jsx)(p,{size:12}),` Download .md`]})]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:E,title:`Download a standalone HTML report for this session`,children:[(0,Y.jsx)(p,{size:12}),` Download HTML Report`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:T,title:`Download all session notes as a ZIP archive`,children:[(0,Y.jsx)(w,{size:12}),` Export Notes (.zip)`]})]}),v&&(0,Y.jsx)(`div`,{className:`report-preview`,children:(0,Y.jsx)(`pre`,{className:`report-preview-content`,children:v})})]})]})}function Ac({show:e,templateName:t,templateError:n,setTemplateName:r,onClose:i,onSave:a}){return(0,Y.jsx)(V,{isOpen:e,onClose:i,title:(0,Y.jsx)(`span`,{className:`modal-name`,children:`Create Template`}),children:(0,Y.jsxs)(`div`,{className:`session-start-form`,children:[(0,Y.jsx)(`label`,{className:`mono`,children:`Template Name *`}),(0,Y.jsx)(`input`,{className:`search-input mono`,name:`template-name`,placeholder:`e.g. SMB Enumeration Pack`,value:t,onChange:e=>r(e.target.value)}),n&&(0,Y.jsx)(`div`,{className:`run-error`,children:n}),(0,Y.jsxs)(`div`,{className:`session-start-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:i,children:`Cancel`}),(0,Y.jsx)(`button`,{className:`session-run-btn`,onClick:a,children:`Save Template`})]})]})})}function jc({sessionId:e,tools:t,onBack:n,onToolRun:r,llmAvailable:i=!1}){let{pushToast:a}=te(),[o,c]=(0,K.useState)(null),[u,f]=(0,K.useState)(!0),[m,h]=(0,K.useState)(null),[_,y]=(0,K.useState)(``),[b,x]=(0,K.useState)({}),[S,C]=(0,K.useState)({}),[w,T]=(0,K.useState)(null),[E,D]=(0,K.useState)({}),[k,A]=(0,K.useState)({}),[j,M]=(0,K.useState)({}),[I,R]=(0,K.useState)(0),[z,B]=(0,K.useState)(!1),[V,H]=(0,K.useState)(``),[ee,U]=(0,K.useState)(null),[re,se]=(0,K.useState)(!1),[ue,de]=(0,K.useState)(``),[fe,pe]=(0,K.useState)(!1),[me,he]=(0,K.useState)(!1),[ge,_e]=(0,K.useState)(!1),[ve,ye]=(0,K.useState)(!1),[Ce,Te]=(0,K.useState)(!1),[ke,Ae]=(0,K.useState)(!1),[je,Me]=(0,K.useState)({}),[Ne,Pe]=(0,K.useState)([]),[Fe,Ie]=(0,K.useState)(!1),[Le,Re]=(0,K.useState)(`workflow`),[q,ze]=(0,K.useState)(!1),[Be,Ve]=(0,K.useState)(void 0),He=(0,K.useMemo)(()=>Object.fromEntries(t.map(e=>[e.name,e])),[t]),Ue=(0,K.useRef)(!1),We=o?we(o):[],Ge=`nyxstrike:chain-prefs:${e}`,Ke=(0,K.useCallback)(e=>{let t=(e.startsWith(`notes/`)?e.slice(6):e).replace(/\.md$/i,``),n=t.indexOf(`/`),r=n===-1?``:t.slice(0,n),i=n===-1?t:t.slice(n+1);Ve(`${r}/${i}`),Re(`notes`)},[]);(0,K.useEffect)(()=>oe(Ke),[Ke]),(0,K.useEffect)(()=>{try{let e=localStorage.getItem(Ge);if(!e){Pe([]);return}let t=JSON.parse(e);Pe(Array.isArray(t)?t.filter(e=>!!e&&typeof e==`object`):[])}catch{Pe([])}},[Ge]),(0,K.useEffect)(()=>{try{localStorage.setItem(Ge,JSON.stringify(Ne))}catch{}},[Ne,Ge]);async function qe(){f(!0);try{let t=await G.session(e);c(t.session),y(t.session.target);let n=t.session.metadata??{},r=n.tool_status??{},i=n.step_results??{},a=n.step_artifacts??{},o=typeof n.running_step_key==`string`?n.running_step_key:null,s={},l={};for(let[e,t]of Object.entries(r))(t===`success`||t===`failed`)&&(s[e]=t);for(let[e,t]of Object.entries(i)){let n=Oe(t);if(n.length===0)continue;let r=e=>({success:!!e.success,return_code:Number(e.return_code??0),execution_time:Number(e.execution_time??0),timed_out:!1,partial_results:!1,stdout:De(e,`stdout`),stderr:De(e,`stderr`),timestamp:String(e.timestamp??new Date().toISOString())});l[e]={result:r(n[0]),priorResults:n.slice(1).map(r)}}M(s),D(l),A(a);try{let t=await G.processList(),n=Object.values(t.active_processes??{});o&&n.some(t=>t.session_id===e)&&o?(s[o]=`running`,T(o),M({...s})):T(null)}catch{}h(null)}catch(e){h(String(e))}finally{f(!1)}}(0,K.useEffect)(()=>{qe()},[e]),(0,K.useEffect)(()=>{if(!w)return;let t=e=>{T(null),M(t=>{if(t[e]!==`running`)return t;let n={...t};return delete n[e],n})},n=n=>{Ue.current||Object.values(n).some(t=>t.session_id===e)||t(w)},r=null;try{r=G.processesStream(),r.onmessage=e=>{try{let t=JSON.parse(e.data);t.processes&&typeof t.processes==`object`&&n(t.processes)}catch{}},r.onerror=()=>{r?.close(),r=null}}catch{}return()=>{r?.close()}},[w,e]);function Je(){if(!o)return;let e=`AI Analysis — ${o.target}`;Te(!0),W(e),(async()=>{try{let t=await G.analyzeSession(o.session_id);if(!t.success){ne(e,t.error??`Analysis failed.`);return}ie(e,t.saved_path??`notes/analysis/`),await qe()}catch(t){ne(e,String(t))}finally{Te(!1)}})()}function Ye(){if(!o)return;let e=`AI Follow-up — ${o.target}`;Ae(!0),W(e),(async()=>{try{let t=await G.followUpSession(o.session_id);if(!t.success){ne(e,t.error??`Follow-up failed.`);return}ie(e,t.saved_path??`notes/follow-up/`)}catch(t){ne(e,String(t))}finally{Ae(!1)}})()}async function Xe(){if(o){_e(!0);try{await G.updateSession(o.session_id,{status:`completed`}),n()}catch(e){a(`error`,`Complete failed: ${String(e)}`)}finally{_e(!1),pe(!1)}}}async function Ze(){if(o){ye(!0);try{await G.deleteSession(o.session_id),n()}catch(e){a(`error`,`Delete failed: ${String(e)}`)}finally{ye(!1),he(!1)}}}function Qe(){if(o)try{let e=o.metadata??{},t=e.tool_status&&typeof e.tool_status==`object`?e.tool_status:{},n=e.step_results&&typeof e.step_results==`object`?e.step_results:{},r=We.map((e,r)=>{let i=`${o.session_id}:${r}`,a=E[i]?.result,s=E[i]?.priorResults??[],c=Oe(n[i]),l=c[0]??null,u=e=>({success:e.success,return_code:e.return_code,execution_time:e.execution_time,timestamp:e.timestamp,stdout:De(e,`stdout`),stderr:De(e,`stderr`),timed_out:e.timed_out,partial_results:e.partial_results}),d=e=>({success:e.success,return_code:e.return_code,execution_time:e.execution_time,timestamp:e.timestamp??``,stdout:De(e,`stdout`),stderr:De(e,`stderr`),timed_out:!1,partial_results:!1}),f=a?u(a):l?d(l):null,p=s.length>0?s.map(u):c.slice(1).map(d);return{step_index:r,step_key:i,tool:e.tool,parameters:e.parameters??{},status:j[i]??t[i]??`idle`,result:f,prior_results:p}}),i={session_id:o.session_id,target:o.target,status:o.status??`active`,exported_at:new Date().toISOString(),logs:r},s=JSON.stringify(i,null,2),c=new Blob([s],{type:`application/json`}),l=URL.createObjectURL(c),u=document.createElement(`a`);u.href=l,u.download=`${o.session_id}_tool_logs.json`,u.click(),URL.revokeObjectURL(l),a(`success`,`Tool logs exported`)}catch(e){a(`error`,`Export failed: ${String(e)}`)}}async function $e(){if(!o)return;let e=V.trim();if(!e){U(`Template name is required`);return}try{let t=we(o);if(t.length===0){U(`Session has no tools to save as template`);return}try{await G.createSessionTemplate({name:e,workflow_steps:t,source_session_id:o.session_id})}catch{await G.createSessionTemplateCompat({name:e,workflow_steps:t,source_session_id:o.session_id})}U(null),H(``),B(!1),a(`success`,`Template created: ${e}`)}catch(e){U(String(e))}}let et=We[I]??null,J=et&&o?`${o.session_id}:${I}`:null,tt=J?E[J]:void 0,nt=et?He[et.tool]:null,it=!!(J&&b[J]),at=(0,K.useMemo)(()=>!o||!et||!nt?{}:xe(nt,et,_.trim()||o.target),[o,et,nt,_]),ot=J?b[J]??{}:{},ct=!o||!nt||!J||!et||!it?null:st({steps:We,selectedStepIndex:I,selectedTool:nt,sessionId:o.session_id,target:_.trim()||o.target,stepResults:E,stepArtifacts:k,currentValues:ot,baselineValues:at,preferences:Ne});(0,K.useEffect)(()=>{if(!ct||!J){Me({});return}Me(e=>{let t={};for(let n of ct.fields)t[n.param]=e[n.param]??!0;return t})},[ct,J]);function lt(){if(!J||!ct)return;let e=ct.fields.filter(e=>je[e.param]!==!1);if(e.length===0){a(`info`,`No chain fields selected`);return}let t=Object.fromEntries(e.map(e=>[e.param,e.value]));x(e=>({...e,[J]:{...e[J]??{},...t}})),a(`success`,`Applied ${e.length} chained field${e.length===1?``:`s`} from ${ct.sourceTool}`)}function ut(e,t){Me(n=>({...n,[e]:t}))}function dt(e){if(!nt||!ct)return;let t=ct.fields.find(t=>t.param===e);if(!t)return;let n={targetTool:nt.name,param:e,sourceTool:t.sourceTool,sourceArtifact:t.sourceArtifact};Pe(e=>{let t=e.filter(e=>e.targetTool!==n.targetTool||e.param!==n.param);return t.push(n),t}),a(`success`,`Pinned mapping ${nt.name}.${e} -> ${t.sourceTool}/${t.sourceArtifact}`)}function pt(e){Pe(t=>t.filter((t,n)=>n!==e)),a(`success`,`Pinned mapping removed`)}function mt(){Pe([]),a(`success`,`Cleared all pinned mappings`)}function ht(n){y(n),o&&x(r=>{let i=!1,a={...r};for(let s=0;s{!o||!et||!J||!nt||(x(t=>t[J]?t:{...t,[J]:xe(nt,et,_.trim()||o.target,e)}),C(e=>({...e,[J]:e[J]??!1})))},[o,et,J,nt,_]);async function gt(n,i){if(!o)return;let a=o,s=`${a.session_id}:${i}`,c=Ee(n.tool,t);if(!c){D(e=>({...e,[s]:{error:`Tool ${n.tool} could not be mapped to registry`}})),M(e=>({...e,[s]:`failed`}));return}let l=_.trim(),u=b[s]??xe(c,n,l||a.target,e),{payload:d,missing:f}=Se(c,u);if(f.length>0){D(e=>({...e,[s]:{error:`Missing required: ${f.join(`, `)}`}})),M(e=>({...e,[s]:`failed`}));return}let p=We.map((e,t)=>t===i?{...e,parameters:d}:e);try{await G.updateSession(a.session_id,{target:l,workflow_steps:p})}catch{}let m=a.metadata??{};try{await G.updateSession(a.session_id,{metadata:{...m,running_step_key:s,running_tool:n.tool,running_started_at:new Date().toISOString()}})}catch{}T(s),M(e=>({...e,[s]:`running`})),D(e=>{let t=e[s],n=t?.result,r=t?.priorResults??[],i=n?[n,...r]:r;return{...e,[s]:{priorResults:i}}}),Ue.current=!0;try{let e=await G.runTool(c.endpoint,d),t={...e,stdout:De(e,`stdout`),stderr:De(e,`stderr`)};D(e=>({...e,[s]:{result:t,priorResults:e[s]?.priorResults??[]}})),M(e=>({...e,[s]:t.success?`success`:`failed`})),r&&r(n.tool,d,t);let i=a.metadata??{},o=i.tool_status&&typeof i.tool_status==`object`?i.tool_status:{},u=i.step_results&&typeof i.step_results==`object`?i.step_results:{},f=i.step_artifacts&&typeof i.step_artifacts==`object`?i.step_artifacts:{},p=t.success?rt({step:{...n,parameters:d},result:t,target:l||a.target}):void 0,m=Oe(u[s]),h={success:t.success,return_code:t.return_code,execution_time:t.execution_time,timestamp:t.timestamp,stdout:t.stdout,stderr:t.stderr};await G.updateSession(a.session_id,{metadata:{...i,tool_status:{...o,[n.tool]:t.success?`success`:`failed`,[s]:t.success?`success`:`failed`},step_results:{...u,[s]:[h,...m]},step_artifacts:p?{...f,[s]:p}:f,last_run:{step_key:s,tool:n.tool,success:t.success,return_code:t.return_code,execution_time:t.execution_time,timestamp:t.timestamp},running_step_key:null,running_tool:null,running_started_at:null}}),p&&A(e=>({...e,[s]:p})),await qe()}catch(e){D(t=>({...t,[s]:{error:String(e),priorResults:t[s]?.priorResults??[]}})),M(e=>({...e,[s]:`failed`}));try{let e=a.metadata??{};await G.updateSession(a.session_id,{metadata:{...e,running_step_key:null,running_tool:null,running_started_at:null}})}catch{}}finally{Ue.current=!1,T(null)}}async function _t(){let e=w;if(e)try{let t=(await G.processList()).active_processes??{},n=Object.values(t).filter(e=>e&&typeof e.command==`string`&&e.command.trim()!==``).map(e=>e.pid).filter(e=>typeof e==`number`);if(n.length===0){a(`error`,`No active process found to terminate`),T(null);return}let r=Math.max(...n);if(await G.terminateProcess(r),a(`success`,`Stopped running process ${r}`),T(null),M(t=>({...t,[e]:`failed`})),D(t=>({...t,[e]:{...t[e]??{},error:`Process ${r} terminated by user`}})),o)try{let e=o.metadata??{};await G.updateSession(o.session_id,{metadata:{...e,running_step_key:null,running_tool:null,running_started_at:null}})}catch{}}catch(e){a(`error`,`Stop failed: ${String(e)}`)}}async function vt(e){if(!o)return;let t=[...We,{tool:e.name,parameters:{}}];try{await G.updateSession(o.session_id,{workflow_steps:t}),se(!1),de(``),await qe(),R(Math.max(0,t.length-1))}catch(e){a(`error`,`Add tool failed: ${String(e)}`)}}async function yt(){if(!o||!J||!tt?.result)return;let e=tt.result,t=null;try{t=e.stdout?JSON.parse(e.stdout):null}catch{t=null}let n=(t&&typeof t==`object`?t:null)?.attack_chain,r=n&&typeof n==`object`?n.steps:null,i=Array.isArray(r)?r.filter(e=>!!e&&typeof e==`object`&&typeof e.tool==`string`):[];if(i.length===0){a(`error`,`No attack-chain steps found in result output`);return}let s=new Set(We.map(e=>`${e.tool}::${JSON.stringify(e.parameters??{})}`)),c=i.filter(e=>{let t=`${e.tool}::${JSON.stringify(e.parameters??{})}`;return!s.has(t)&&(s.add(t),!0)});if(c.length===0){a(`error`,`All attack-chain tools are already present in manual execution`);return}let l=[...We,...c];try{await G.updateSession(o.session_id,{workflow_steps:l}),await qe(),R(Math.max(0,l.length-c.length)),a(`success`,`Added ${c.length} tool(s) from attack chain`)}catch(e){a(`error`,`Apply attack chain failed: ${String(e)}`)}}async function xt(e){if(!o)return;let t=We.filter((t,n)=>n!==e);try{await G.updateSession(o.session_id,{workflow_steps:t}),await qe(),R(n=>t.length===0?0:n>e?n-1:Math.min(n,t.length-1))}catch(e){a(`error`,`Remove tool failed: ${String(e)}`)}}async function St(e,t,n){if(o)try{let r=await G.exportTopology(e,t,n,o.session_id);if(!r.success){a(`error`,r.error||`Topology export failed`);return}if(!r.topology){a(`info`,r.message||`No hosts/ports found in output`);return}a(`success`,`Topology map updated`),await qe()}catch(e){a(`error`,`Topology export failed: ${String(e)}`)}}if(u)return(0,Y.jsxs)(`div`,{className:`loading-state`,children:[(0,Y.jsx)(s,{size:20,className:`spin`,color:`var(--green)`}),(0,Y.jsx)(`p`,{children:`Loading session…`})]});if(m||!o)return(0,Y.jsx)(`div`,{className:`error-banner`,children:m??`Session not found`});let Ct=(o.status??`active`)===`completed`,wt=t.filter(e=>{if(!ue.trim())return!0;let t=ue.toLowerCase();return e.name.toLowerCase().includes(t)||e.desc.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)}).slice(0,12);return(0,Y.jsxs)(`div`,{className:`page-content`,children:[(0,Y.jsxs)(`section`,{className:`section`,children:[(0,Y.jsxs)(`div`,{className:`section-header`,children:[(0,Y.jsx)(`h3`,{children:`Session Detail`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:n,children:[(0,Y.jsx)(d,{size:12}),` Back`]})]}),(0,Y.jsxs)(`div`,{className:`session-detail-meta-row`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(N,{size:12}),` `,(0,Y.jsx)(`span`,{className:`mono`,children:o.target})]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(F,{size:12}),` `,o.total_findings,` findings`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(s,{size:12}),` `,o.iterations,` iterations`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(l,{size:12}),` `,ce(o.updated_at)]}),(0,Y.jsx)(`span`,{className:`session-status session-status--${o.status??`active`}`,children:o.status??`active`}),o.risk_level&&o.risk_level!==`unknown`&&(0,Y.jsx)(`span`,{className:`session-risk session-risk--${o.risk_level.toLowerCase()}`,title:`Risk level: ${o.risk_level.toLowerCase()}`,children:o.risk_level.toLowerCase()})]}),(0,Y.jsxs)(`div`,{className:`session-detail-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>ze(!0),children:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(O,{size:12}),` Generate Report`]})}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Je,disabled:Ce||!i,title:i?void 0:`No LLM configured — start server with -ai or -ai-small`,children:[(0,Y.jsx)(P,{size:12}),` `,Ce?`Analysing…`:`Analyze Session`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Ye,disabled:ke||!i,title:i?void 0:`No LLM configured — start server with -ai or -ai-small`,children:[(0,Y.jsx)(P,{size:12}),` `,ke?`Planning…`:`AI Follow-up`]}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>B(!0),children:`Create Template`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Qe,children:[(0,Y.jsx)(p,{size:12}),` Export Tool Logs`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>Ie(!0),children:[`Manage Chain Pins (`,Ne.length,`)`]}),o.status!==`completed`&&(0,Y.jsx)(`button`,{className:`session-complete-btn`,onClick:()=>pe(!0),children:`Complete Session`}),(0,Y.jsx)(`button`,{className:`session-delete-btn`,onClick:()=>he(!0),children:`Delete Session`})]}),(0,Y.jsx)(Ac,{show:z,templateName:V,templateError:ee,setTemplateName:H,onClose:()=>B(!1),onSave:$e}),(0,Y.jsx)(ae,{isOpen:fe,title:`Complete Session`,description:`Mark this session as completed? It will move to Completed Sessions.`,impactItems:[`Session ID: ${o.session_id}`,`Session will become read-only`],confirmLabel:`Yes, complete session`,cancelLabel:`Keep active`,confirmVariant:`danger`,isConfirming:ge,onConfirm:Xe,onClose:()=>pe(!1)}),(0,Y.jsx)(ae,{isOpen:me,title:`Delete Session`,description:`Delete this session permanently? This action cannot be undone.`,impactItems:[`Session ID: ${o.session_id}`,`All workflow state and run metadata will be removed`],confirmLabel:`Yes, delete session`,cancelLabel:`Keep session`,confirmVariant:`danger`,isConfirming:ve,onConfirm:Ze,onClose:()=>he(!1)}),(0,Y.jsx)(le,{isOpen:Fe,title:`Pinned Chain Mappings`,description:`Review, remove, or clear your pinned chain mappings for this session.`,primaryLabel:`Clear All`,secondaryLabel:`Close`,primaryVariant:`danger`,onPrimary:Ne.length>0?mt:void 0,onSecondary:()=>Ie(!1),onClose:()=>Ie(!1),children:Ne.length===0?(0,Y.jsx)(`p`,{className:`section-meta`,children:`No pinned mappings yet.`}):(0,Y.jsx)(`div`,{className:`session-chain-pref-list`,children:Ne.map((e,t)=>(0,Y.jsxs)(`div`,{className:`session-chain-pref-row`,children:[(0,Y.jsxs)(`div`,{className:`session-chain-pref-text`,children:[(0,Y.jsxs)(`span`,{className:`mono`,children:[e.targetTool,`.`,e.param]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[e.sourceTool??`any tool`,` / `,e.sourceArtifact]})]}),(0,Y.jsx)(`button`,{className:`session-chain-pin-btn`,onClick:()=>pt(t),children:`Unpin`})]},`${e.targetTool}:${e.param}:${e.sourceArtifact}:${t}`))})})]}),(0,Y.jsxs)(`div`,{className:`session-detail-tabs`,children:[(0,Y.jsx)(`button`,{className:`session-tab-btn${Le===`workflow`?` session-tab-btn--active`:``}`,onClick:()=>Re(`workflow`),children:`Workflow`}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`findings`?` session-tab-btn--active`:``}`,onClick:()=>Re(`findings`),children:[(0,Y.jsx)(L,{size:12}),` Findings (`,o.findings?.length??o.total_findings,`)`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`notes`?` session-tab-btn--active`:``}`,onClick:()=>Re(`notes`),children:[(0,Y.jsx)(O,{size:12}),` Notes`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`timeline`?` session-tab-btn--active`:``}`,onClick:()=>Re(`timeline`),children:[(0,Y.jsx)(v,{size:12}),` Timeline`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`topology`?` session-tab-btn--active`:``}`,onClick:()=>Re(`topology`),children:[(0,Y.jsx)(g,{size:12}),` Topology`]})]}),Le===`notes`&&(0,Y.jsx)(bt,{sessionId:o.session_id,initialOpenPath:Be,onInitialOpenConsumed:()=>Ve(void 0)}),Le===`findings`&&(0,Y.jsx)(Dt,{session:o,onUpdate:qe}),Le===`timeline`&&(0,Y.jsx)(jt,{session:o}),Le===`topology`&&(0,Y.jsx)(Dc,{session:o}),(0,Y.jsx)(kc,{isOpen:q,session:o,onClose:()=>ze(!1),llmAvailable:i}),Le===`workflow`&&(0,Y.jsx)(ft,{isCompleted:Ct,sessionId:o.session_id,steps:We,selectedStep:et,selectedStepIndex:I,setSelectedStepIndex:R,selectedStepKey:J,selectedTool:nt,stepState:j,runningStepKey:w,targetValue:_,setTargetValue:ht,stepFieldValues:b,setStepFieldValues:x,showOptionalByStep:S,setShowOptionalByStep:C,selectedResult:tt,chainSuggestion:ct,selectedChainFields:je,onSetChainFieldSelected:ut,onPinChainField:dt,onApplyChainSuggestion:lt,onRunStep:gt,onStopRunningStep:_t,onApplyAttackChainFromResult:yt,onRemoveTool:xt,showAddTool:re,setShowAddTool:se,addToolSearch:ue,setAddToolSearch:de,addCandidates:wt,onAddTool:vt,onExportTopology:St})]})}export{jc as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/SessionDetailPage-C26J1d9a.css b/frontend/dashboard/assets/SessionDetailPage-C26J1d9a.css new file mode 100644 index 000000000..e7fef88b0 --- /dev/null +++ b/frontend/dashboard/assets/SessionDetailPage-C26J1d9a.css @@ -0,0 +1 @@ +.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.session-topology{flex-direction:column;gap:8px;display:flex}.session-topology-canvas{border:1px solid var(--border);background:var(--bg-main,var(--bg-card));border-radius:8px;height:600px;overflow:hidden}.session-topology-canvas .react-flow__minimap{border:1px solid var(--border);border-radius:6px;overflow:hidden}.topology-node-label{flex-direction:column;gap:2px;padding:2px 4px;display:flex}.topology-node-label strong{color:var(--text-h);font-size:13px} diff --git a/frontend/dashboard/assets/SessionDetailPage-G5ld7-y8.js b/frontend/dashboard/assets/SessionDetailPage-G5ld7-y8.js deleted file mode 100644 index 6e5758428..000000000 --- a/frontend/dashboard/assets/SessionDetailPage-G5ld7-y8.js +++ /dev/null @@ -1,12 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NoteModal-eFcesyiR.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-lucide-tZ8AzO6l.js","assets/vendor-markdown-CZSHC-G5.js","assets/Sheet-CPyVkJ3G.js","assets/vendor-react-DL0_5iWL.js","assets/index-DoDmaCqd.js","assets/ActionButton-CxNWgwlw.js","assets/ActionButton-DbNYq1OK.css","assets/index-DdBasGVR.css","assets/NoteModal-u1uPtOLD.css"])))=>i.map(i=>d[i]); -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,Bt as r,C as i,D as a,E as o,F as s,H as c,I as l,J as u,Kt as d,Lt as f,M as p,Mt as m,N as h,P as g,Qt as _,Tt as v,Vt as y,Wt as b,Yt as x,Zt as S,bt as C,c as w,ct as T,d as E,f as D,ht as O,lt as k,m as A,mt as j,n as M,s as N,u as P,ut as F,xt as I,y as L}from"./vendor-lucide-tZ8AzO6l.js";import{n as R}from"./vendor-react-DL0_5iWL.js";import{r as z}from"./vendor-markdown-CZSHC-G5.js";import{t as B}from"./ActionButton-CxNWgwlw.js";import{t as V}from"./Sheet-CPyVkJ3G.js";import{S as H,a as ee,b as te,c as U,g as W,h as ne,l as re,m as ie,n as ae,p as oe,r as se,s as ce,v as le,x as G}from"./index-DoDmaCqd.js";import{a as ue,f as de,h as fe,i as pe,n as me,o as he,p as ge,r as _e,t as ve}from"./vendor-recharts-BvkoFyWX.js";import{i as ye,n as be,r as xe,t as Se}from"./shared-CjcIAkCZ.js";/* empty css */var K=e(t(),1);function Ce(e){return Array.isArray(e.workflow_steps)&&e.workflow_steps.length>0?e.workflow_steps:e.tools_executed.map(e=>({tool:e,parameters:{}}))}function we(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}function Te(e,t){let n=e.trim();if(!n)return null;let r=t.find(e=>e.name===n);if(r)return r;let i=t.find(e=>e.endpoint===n);if(i)return i;let a=t.find(e=>e.parent_tool===n);if(a)return a;let o=we(n),s=null;for(let e of t){let t=we(e.name),n=we(e.parent_tool??``),r=we(e.endpoint),i=0;t===o&&(i=Math.max(i,80)),n===o&&(i=Math.max(i,75)),r===o&&(i=Math.max(i,70)),t.includes(o)&&(i=Math.max(i,62)),r.includes(o)&&(i=Math.max(i,58)),n&&n.includes(o)&&(i=Math.max(i,56)),o.includes(t)&&(i=Math.max(i,52)),i!==0&&(!s||i>s.score)&&(s={tool:e,score:i})}return s?.tool??null}function Ee(e,t=`stdout`){if(!e||typeof e!=`object`)return``;let n=e,r=t===`stdout`?[`stdout`,`output`,`message`]:[`stderr`,`error`];for(let e of r){let t=n[e];if(typeof t==`string`&&t.trim())return t}return``}function De(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`):e&&typeof e==`object`?[e]:[]}var Oe=/https?:\/\/[^\s"'<>]+/gi,ke=/\b(?:\d{1,3}\.){3}\d{1,3}\b/g,Ae=/\b(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}\b/gi,je=/\b(?:[a-z0-9.-]+|(?:\d{1,3}\.){3}\d{1,3}):(\d{1,5})\b/gi,Me=/\b(\d{1,5})\/(?:tcp|udp)\b/gi,Ne=/Nmap\s+scan\s+report\s+for\s+(.+)$/gim,Pe=new Set([`nmap.org`,`github.com`,`raw.githubusercontent.com`,`localhost`,`localdomain`]),Fe=new Set([`toml`,`json`,`yaml`,`yml`,`ini`,`conf`,`cfg`,`txt`,`log`,`md`,`xml`,`csv`]),Ie=new Set([`additional_args`,`args`,`flags`,`flag`,`password`,`pass`,`passwd`,`pwd`,`token`,`api_key`,`apikey`,`secret`,`auth`,`authorization`,`cookie`,`headers`,`header`,`body`,`data`]);function Le(){return{urls:[],domains:[],subdomains:[],ips:[],live_hosts:[],endpoints:[],open_ports:[]}}function q(e,t){let n=t.trim();n&&(e.includes(n)||e.push(n))}function Re(e){let t=e.split(`.`);return t.length===4&&t.every(e=>{if(!/^\d+$/.test(e))return!1;let t=Number(e);return t>=0&&t<=255})}function ze(e){let t=e.trim();if(!/^\d{1,5}$/.test(t)||t.length>1&&t.startsWith(`0`))return null;let n=Number(t);return!Number.isInteger(n)||n<1||n>65535?null:String(n)}function Be(e){let t=e.trim().toLowerCase();if(!t||Pe.has(t)||t.endsWith(`.localdomain`))return!0;let n=t.split(`.`).filter(Boolean);if(n.length>=2){let e=n[n.length-1];if(Fe.has(e))return!0}return!1}function Ve(e){let t=e.trim().toLowerCase();return!t||t.includes(` `)||t.includes(`[`)||t.includes(`]`)||t.includes(`(`)||t.includes(`)`)?!1:Re(t)?!0:!(!/^[a-z0-9.-]+$/.test(t)||!t.includes(`.`))}function He(e){return e.trim().toLowerCase().replace(/^['"\[\(]+/,``).replace(/[\]'"\),;:]+$/,``)}function Ue(e){try{return new URL(e).hostname.toLowerCase()}catch{return null}}function We(e){let t=e.toLowerCase().split(`.`).filter(Boolean);if(t.length<=2)return e.toLowerCase();let n=t.slice(-3).join(`.`);return n.endsWith(`.co.uk`)||n.endsWith(`.com.au`)?t.slice(-3).join(`.`):t.slice(-2).join(`.`)}function Ge(e,t,n=0){if(!(n>4)){if(typeof e==`string`){t.push(e);return}if(Array.isArray(e)){for(let r of e.slice(0,400))Ge(r,t,n+1);return}if(e&&typeof e==`object`)for(let r of Object.values(e))Ge(r,t,n+1)}}function Ke(e){let t=e.trim();if(!t)return null;if(t.startsWith(`http://`)||t.startsWith(`https://`))try{return new URL(t).hostname.toLowerCase()}catch{return null}return t.replace(/^\.+/,``).toLowerCase()}function qe(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim()}}function Je(e){let t=e.trim();return t.startsWith(`http://`)||t.startsWith(`https://`)?t:`https://${t}`}function Ye(e){let t=e.toLowerCase();return t.includes(`password`)||t.includes(`passwd`)||t.includes(`token`)||t.includes(`secret`)||t.includes(`apikey`)||t.includes(`api_key`)||t.includes(`auth`)||t===`username`||t===`user`}function Xe(e){let t=e.toLowerCase();return t===`port`||t===`ports`||t.endsWith(`_port`)||t.endsWith(`_ports`)}function Ze(e){let t=e.toLowerCase();return t===`domain`||t===`dns_name`||t===`root_domain`}function Qe(e){let t=e.toLowerCase();return t===`url`||t===`endpoint`||t.endsWith(`_url`)||t.endsWith(`_endpoint`)}function $e(e){let t=e.toLowerCase();return t===`target`||t===`host`||t===`hostname`||t===`query`||t===`rhost`||t===`lhost`}function et(e){let t=e.toLowerCase();return Ie.has(t)||Ye(t)?!1:Ze(t)||Qe(t)||$e(t)||Xe(t)||t===`list_file`}function J(e,t){let n=e.toLowerCase(),r=t.trim();return r?$e(n)||Ze(n)?r.toLowerCase():Qe(n)?r.replace(/\/+$/,``).toLowerCase():Xe(n)?r.replace(/\s+/g,``):r:``}function tt(e,t,n){return J(e,t)===J(e,n)}function nt({step:e,result:t,target:n}){let r=Le(),i=e.parameters??{},a=t.stdout??``,o=[];try{Ge(JSON.parse(a),o)}catch{}let s=[a,...o].join(` -`);for(let e of s.match(Oe)??[]){q(r.urls,e);let t=Ue(e);if(t){if(Be(t))continue;q(r.domains,t),q(r.live_hosts,t),q(r.endpoints,e)}}for(let e of s.match(Ae)??[]){let t=He(e);!Ve(t)||Be(t)||Re(t)||(q(r.domains,t),q(r.live_hosts,t))}for(let e of s.match(ke)??[])Re(e)&&(q(r.ips,e),q(r.live_hosts,e));for(let e of s.match(Ne)??[]){let t=e.replace(/^Nmap\s+scan\s+report\s+for\s+/i,``).trim(),n=t.match(/\((\d{1,3}(?:\.\d{1,3}){3})\)/);n?.[1]&&Re(n[1])&&(q(r.ips,n[1]),q(r.live_hosts,n[1]));let i=t.match(/^([^\s\[(]+)/)?.[1]?.trim().toLowerCase()??``;if(Re(i)){q(r.ips,i),q(r.live_hosts,i);continue}Ve(i)&&!Be(i)&&(q(r.domains,i),q(r.live_hosts,i))}let c=Ke(n),l=c?We(c):null;if(l)for(let e of r.domains)e.endsWith(`.${l}`)&&e!==l&&q(r.subdomains,e);let u=qe(i,[`domain`]);u&&q(r.domains,u.toLowerCase());let d=qe(i,[`url`,`endpoint`]);d&&q(r.urls,d);let f=qe(i,[`target`,`host`,`query`]);f&&(Re(f)?q(r.ips,f):q(r.domains,f.toLowerCase()));for(let e of s.match(je)??[]){let t=e.split(`:`);if(t.length<2)continue;let n=t.slice(0,-1).join(`:`).trim(),i=t[t.length-1]?.trim()??``;if(/^\d+$/.test(n))continue;let a=ze(i);a&&q(r.open_ports,a)}for(let e of s.match(Me)??[]){let t=e.split(`/`)[0],n=ze(t);n&&q(r.open_ports,n)}return r}function rt(e,t){let n=e.toLowerCase(),r=t.toLowerCase();return r===`list_file`?[`subdomains`,`domains`,`live_hosts`,`ips`,`urls`]:Xe(r)?[`open_ports`,`params`]:[`domain`,`dns_name`].includes(r)?[`subdomains`,`domains`,`params`]:[`url`,`endpoint`].includes(r)?[`endpoints`,`urls`,`domains`,`params`]:[`target`,`host`,`query`,`hostname`,`rhost`,`lhost`].includes(r)&&(n.includes(`nmap`)||n.includes(`enum4linux`)||n.includes(`netexec`)||n.includes(`smb`)||n.includes(`rpc`))?[`ips`,`live_hosts`,`domains`,`params`]:[`target`,`host`,`query`,`hostname`].includes(r)?[`live_hosts`,`domains`,`ips`,`urls`,`params`]:n.includes(`httpx`)||n.includes(`gospider`)||n.includes(`hakrawler`)?[`live_hosts`,`urls`,`domains`,`params`]:n.includes(`shuffledns`)||n.includes(`dns`)?[`subdomains`,`domains`,`params`]:[`params`]}function it(e,t,n,r){let i=n.toLowerCase();if(!et(i))return null;if(e===`params`){if(Xe(i)){let e=qe(t.params,[i,`ports`,`port`]);if(!e)return null;let n=e.split(`,`).map(e=>ze(e)).filter(e=>!!e);return n.length===0?null:i===`port`?n[0]:n.slice(0,10).join(`,`)}if(Ze(i)){let e=qe(t.params,[`domain`,`dns_name`,`target`,`host`]);return!e||Re(e)?null:We(e)}if(Qe(i)){let e=qe(t.params,[`url`,`endpoint`,`target`]);return e?e.startsWith(`http://`)||e.startsWith(`https://`)?e:Re(e)?null:Je(e):null}return $e(i)&&qe(t.params,[i,`target`,`host`,`domain`])||null}let a=t.artifacts[e];if(!a||a.length===0)return null;if(Xe(i)){let e=a.map(e=>ze(e)).filter(e=>!!e);return e.length===0?null:i===`port`?e[0]:e.slice(0,10).join(`,`)}if(Ze(i)){let e=a.find(e=>!Re(e))??a[0];return!e||Re(e)||!Ve(He(e))?null:We(e)}if(Qe(i)){let e=a.find(e=>e.startsWith(`http://`)||e.startsWith(`https://`))??a.find(e=>!Re(e))??a[0];return!e||Re(e)?null:e.startsWith(`http://`)||e.startsWith(`https://`)?e:Je(e)}return $e(i)&&(a[0]??r)||null}function at({source:e,age:t,tool:n,param:r}){let i=.45;e===`params`&&(i+=.08),[`subdomains`,`endpoints`,`live_hosts`].includes(e)&&(i+=.2),t<=1?i+=.2:t<=3&&(i+=.1);let a=n.toLowerCase(),o=r.toLowerCase();return(a.includes(`shuffledns`)||a.includes(`dns`))&&o===`domain`&&(i+=.08),(a.includes(`httpx`)||a.includes(`gospider`))&&(o===`url`||o===`target`)&&(i+=.08),Math.max(.1,Math.min(.99,i))}function ot({steps:e,selectedStepIndex:t,selectedTool:n,sessionId:r,target:i,stepResults:a,stepArtifacts:o,currentValues:s,baselineValues:c,preferences:l}){let u=[...Object.keys(n.params),...Object.keys(n.optional)],d=c??{},f=u.filter(e=>{let t=s[e]?.trim()??``;if(!t)return!0;let n=d[e]?.trim()??``;return!!n&&t===n}).filter(e=>et(e));if(f.length===0)return null;let p=[];for(let n=t-1;n>=0;--n){let t=e[n],s=`${r}:${n}`,c=a[s]?.result;if(!c?.success)continue;let l=o[s]??nt({step:t,result:c,target:i});p.push({index:n,step:t,artifacts:l,params:t.parameters??{}})}if(p.length===0)return null;let m=[],h=l??[];for(let e of f){let r=rt(n.name,e),a=null;for(let o of r)for(let r of p){let s=it(o,r,e,i);if(!s)continue;let c=at({source:o,age:t-r.index,tool:n.name,param:e});h.find(t=>t.targetTool===n.name&&t.param===e&&t.sourceArtifact===o&&(!t.sourceTool||t.sourceTool===r.step.tool))&&(c=Math.min(.99,c+.22));let l={param:e,value:s,sourceArtifact:o,sourceTool:r.step.tool,confidence:c,reason:`From ${r.step.tool} (${o})`};(!a||l.confidence>a.confidence)&&(a=l)}if(a){let t=s[e]?.trim()??``;if(t&&tt(e,t,a.value))continue;m.push(a)}}if(m.length===0)return null;let g=m.reduce((e,t)=>t.confidence>e.confidence?t:e,m[0]),_=new Set(m.map(e=>e.sourceTool)),v=m.reduce((e,t)=>e+t.confidence,0)/m.length;return{sourceTool:g.sourceTool,summary:_.size>1?`Prepared ${m.length} mapped value${m.length===1?``:`s`} from ${_.size} prior tools.`:`Prepared ${m.length} mapped value${m.length===1?``:`s`} from ${g.sourceTool} output.`,confidence:v,fields:m}}var Y=z(),st={command:``,busy:!1,transcript:[],prompt:`$`,awaitingSensitiveInput:!1};function ct(e,t,n,r){ee({id:Date.now(),tool:t,params:n,result:r,ts:new Date(r.timestamp),source:`browser`},e)}function lt(e,t,n){let r=new Date(n.timestamp).toISOString(),i=[`# ${e}`,``,`**Date:** ${r}`,`**Status:** ${n.success?`Success`:`Failed`} | exit ${n.return_code} | ${n.execution_time.toFixed(2)}s`,``];if(Object.keys(t).length>0){i.push(`## Parameters`,``);for(let[e,n]of Object.entries(t))i.push(`- **${e}:** \`${n}\``);i.push(``)}return n.stdout&&i.push(`## Output`,``,"```",n.stdout,"```",``),n.stderr&&i.push(`## Stderr`,``,"```",n.stderr,"```",``),i.join(` -`)}function ut({endpoint:e,baseParams:t,label:r,terminalId:i,terminalState:a,updateTerminalState:s}){let{command:c,busy:l,transcript:u,prompt:d,awaitingSensitiveInput:f}=a,m=(0,K.useRef)(null),h=(0,K.useRef)(null);function g(e,t){s(e,e=>({...e,...t}))}function _(e,t){s(e,e=>({...e,transcript:[...e.transcript,...t]}))}(0,K.useEffect)(()=>{m.current?.scrollTo({top:m.current.scrollHeight}),l||h.current?.focus()},[u]),(0,K.useEffect)(()=>{l||h.current?.focus()},[l]);async function v(){let n=c;if(l)return;let r=i,a=d,o=f;g(r,{busy:!0,command:``}),_(r,[o?`[input hidden]`:`${a} ${n}`]);try{let i=await G.runTool(e,{...t,command:n,interactive:!0,terminal_disconnect:!1,terminal_mode:`raw`}),a=i.prompt,o=i.awaiting_sensitive_input,c=[Ee(i,`stdout`),Ee(i,`stderr`)].filter(Boolean).join(` -`).trim();s(r,e=>({...e,prompt:typeof a==`string`&&a.trim()?`${a.trim()}$`:e.prompt,awaitingSensitiveInput:o===!0,transcript:c?[...e.transcript,c]:e.transcript}))}catch(e){_(r,[`error: ${String(e)}`])}finally{g(r,{busy:!1})}}async function y(){if(l)return;let n=i;g(n,{busy:!0});try{let r=await G.runTool(e,{...t,command:``,terminal_disconnect:!0});s(n,e=>({...e,prompt:`$`,awaitingSensitiveInput:!1,transcript:[...e.transcript,Ee(r,`stdout`)||Ee(r,`stderr`)||`Disconnected`]}))}catch(e){_(n,[`error: ${String(e)}`])}finally{g(n,{busy:!1})}}return(0,Y.jsxs)(`div`,{className:`session-ssh-terminal`,children:[(0,Y.jsxs)(`div`,{className:`session-ssh-terminal-head`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(E,{size:12}),` `,r,` terminal`]}),(0,Y.jsx)(`button`,{onClick:y,disabled:l,title:`Disconnect ${r} session`,children:(0,Y.jsx)(p,{size:12})})]}),(0,Y.jsx)(`pre`,{ref:m,className:`session-ssh-terminal-body`,children:[...u,`${d} `].join(` -`)}),(0,Y.jsxs)(`div`,{className:`session-ssh-terminal-input`,children:[(0,Y.jsx)(`input`,{ref:h,value:c,onChange:e=>g(i,{command:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&v()},disabled:l,autoComplete:`off`,type:f?`password`:`text`,spellCheck:!1}),(0,Y.jsx)(`button`,{onClick:()=>void v(),disabled:l,title:`Run command`,children:l?(0,Y.jsx)(n,{size:12,className:`spin`}):(0,Y.jsx)(o,{size:12})})]})]})}function dt({isCompleted:e,sessionId:t,steps:i,selectedStep:a,selectedStepIndex:o,setSelectedStepIndex:s,selectedStepKey:l,selectedTool:u,stepState:d,runningStepKey:p,targetValue:m,setTargetValue:h,stepFieldValues:_,setStepFieldValues:v,showOptionalByStep:y,setShowOptionalByStep:b,selectedResult:x,chainSuggestion:S,selectedChainFields:w,onSetChainFieldSelected:T,onPinChainField:E,onApplyChainSuggestion:D,onRunStep:O,onStopRunningStep:k,onApplyAttackChainFromResult:M,onRemoveTool:N,showAddTool:F,setShowAddTool:I,addToolSearch:L,setAddToolSearch:R,addCandidates:z,onAddTool:V,onExportTopology:H}){let{pushToast:ee}=te(),U=l?p===l:!1,W=x?.result,ne=Ee(W,`stdout`),ie=Ee(W,`stderr`),ae=a?.tool?.toLowerCase()??``,oe=ae===`ssh`||u?.endpoint===`/api/plugins/ssh`||u?.name===`ssh`||u?.endpoint===`/api/tools/ssh`?{endpoint:`/api/plugins/ssh`,label:`SSH`}:ae===`telnet`||u?.endpoint===`/api/plugins/telnet`||u?.name===`telnet`||u?.endpoint===`/api/tools/telnet`?{endpoint:`/api/plugins/telnet`,label:`Telnet`}:null,se=!!oe&&!!l&&!e,ce=S?S.fields.filter(e=>w[e.param]!==!1).length:0,le=(0,K.useRef)(null),[ue,de]=(0,K.useState)({}),[fe,pe]=(0,K.useState)({});function me(e,t){pe(n=>({...n,[e]:t(n[e]??st)}))}(0,K.useEffect)(()=>{de({})},[l]),(0,K.useEffect)(()=>{if(!F)return;let e=window.requestAnimationFrame(()=>le.current?.focus());return()=>window.cancelAnimationFrame(e)},[F]);async function he(e,n,r){let i=new Date(r.timestamp).toISOString().slice(0,10).replace(/-/g,``),a=`${e.replace(/[^a-zA-Z0-9_]/g,`_`).slice(0,40)}_${i}`,o=lt(e,n,r);try{await G.createSessionNote(t,a,o,`outputs`),ee(`success`,`Exported to notes/outputs/${a}.md`)}catch{ee(`error`,`Failed to export to notes`)}}return(0,Y.jsxs)(`section`,{className:`section`,children:[(0,Y.jsx)(`div`,{className:`section-header`,children:(0,Y.jsxs)(`h3`,{children:[`Manual Tool Execution `,(0,Y.jsx)(`span`,{className:`badge`,children:i.length})]})}),(0,Y.jsxs)(`div`,{className:`session-workbench`,children:[(0,Y.jsxs)(`aside`,{className:`session-workbench-tools`,children:[!e&&(0,Y.jsxs)(`div`,{className:`session-tool-manage`,children:[(0,Y.jsx)(`button`,{className:`session-add-tool-btn`,onClick:()=>I(e=>!e),children:`+ Add tool`}),F&&(0,Y.jsxs)(`div`,{className:`session-add-tool-panel`,children:[(0,Y.jsx)(`input`,{ref:le,className:`search-input mono`,placeholder:`Search tool...`,value:L,onChange:e=>R(e.target.value)}),(0,Y.jsx)(`div`,{className:`session-add-tool-list`,children:z.map(e=>(0,Y.jsxs)(`button`,{className:`session-add-tool-item`,onClick:()=>V(e),children:[(0,Y.jsx)(`span`,{className:`mono`,children:e.name}),(0,Y.jsx)(`span`,{children:e.category})]},e.name))})]})]}),i.map((r,i)=>{let a=`${t}:${i}`,c=p===a;return(0,Y.jsxs)(`button`,{className:`session-workbench-tool session-workbench-tool--${d[a]??`idle`} ${c?`session-workbench-tool--running`:``} ${o===i?`active`:``}`,onClick:()=>s(i),children:[(0,Y.jsx)(`span`,{className:`session-workbench-tool-name mono`,children:r.tool}),(0,Y.jsxs)(`span`,{className:`session-workbench-tool-actions`,children:[c&&(0,Y.jsxs)(`span`,{className:`session-running-indicator mono`,title:`Tool is running`,children:[(0,Y.jsx)(n,{size:11,className:`spin`}),` Running`]}),!e&&(0,Y.jsx)(`button`,{type:`button`,className:`session-remove-tool`,onClick:e=>{e.stopPropagation(),N(i)},title:`Remove tool`,children:(0,Y.jsx)(P,{size:12})})]})]},a)})]}),(0,Y.jsx)(`div`,{className:`session-workbench-center`,children:!a||!l||!u?(0,Y.jsx)(`p`,{className:`empty-state`,children:`No tools in this session.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`session-target-override`,children:[(0,Y.jsx)(`label`,{className:`mono`,children:`Target`}),(0,Y.jsx)(`input`,{name:`session-target`,className:`search-input mono`,value:m,onChange:e=>h(e.target.value),placeholder:`Target to run this session against`,disabled:e})]}),(0,Y.jsxs)(`div`,{className:`session-step-row`,children:[(0,Y.jsxs)(`div`,{className:`session-step-head`,children:[(0,Y.jsx)(`span`,{className:`session-tool-chip mono session-tool-chip--${d[l]??`idle`}`,children:a.tool}),(0,Y.jsxs)(B,{variant:U?`running`:`default`,disabled:e||!1,onClick:U||e?void 0:()=>O(a,o),children:[U?(0,Y.jsx)(n,{size:12,className:`spin`}):(0,Y.jsx)(g,{size:12}),e?`Completed`:U?`Running…`:`Run ${a.tool}`]}),U&&!e&&(0,Y.jsxs)(B,{variant:`danger`,onClick:()=>{k()},children:[(0,Y.jsx)(A,{size:12}),` Stop`]})]}),u.desc&&(0,Y.jsx)(`p`,{className:`session-tool-description`,children:u.desc}),S&&(0,Y.jsxs)(`div`,{className:`session-chain-suggestion`,children:[(0,Y.jsxs)(`div`,{className:`session-chain-suggestion__text`,children:[(0,Y.jsxs)(`strong`,{className:`mono`,children:[`Chain hint from `,S.sourceTool]}),(0,Y.jsxs)(`span`,{children:[S.summary,` Confidence `,re((S.confidence??0)*100,0),`%`]}),(0,Y.jsx)(`div`,{className:`session-chain-fields`,children:S.fields.map(t=>{let n=w[t.param]!==!1;return(0,Y.jsxs)(`label`,{className:`session-chain-field-row ${n?``:`is-disabled`}`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>T(t.param,e.target.checked)}),(0,Y.jsx)(`span`,{className:`mono`,children:t.param}),(0,Y.jsx)(`span`,{className:`mono`,children:t.value}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[Math.round(t.confidence*100),`% `,t.reason]}),(0,Y.jsx)(`button`,{type:`button`,className:`session-chain-pin-btn`,onClick:()=>E(t.param),disabled:e||U,children:`Pin`})]},t.param)})})]}),(0,Y.jsxs)(B,{variant:`success`,disabled:e||U||ce===0,onClick:D,children:[`Use Prior Output (`,ce,`)`]})]}),(0,Y.jsxs)(`div`,{className:`session-param-grid`,children:[Object.keys(u.params).map(t=>(0,Y.jsx)(Se,{name:t,value:_[l]?.[t]??``,onChange:e=>v(n=>({...n,[l]:{...n[l]??{},[t]:e}})),required:!0,disabled:e},t)),Object.keys(u.optional).length>0&&(0,Y.jsxs)(`button`,{className:`run-opt-btn`,onClick:()=>b(e=>({...e,[l]:!e[l]})),children:[y[l]?(0,Y.jsx)(f,{size:12}):(0,Y.jsx)(r,{size:12}),`Optional parameters (`,Object.keys(u.optional).length,`)`]}),y[l]&&Object.keys(u.optional).map(t=>(0,Y.jsx)(Se,{name:t,value:_[l]?.[t]??``,onChange:e=>v(n=>({...n,[l]:{...n[l]??{},[t]:e}})),disabled:e},t))]})]}),(0,Y.jsxs)(`div`,{className:`session-result-panel`,children:[(0,Y.jsx)(`h4`,{children:`Result`}),e&&(0,Y.jsx)(`p`,{className:`section-meta`,children:`Completed session: results are read-only.`}),x?.error&&(0,Y.jsx)(`div`,{className:`run-error`,children:x.error}),W?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`session-result-head`,children:[(0,Y.jsxs)(`div`,{className:`session-step-result mono`,children:[W.success?`OK`:`FAIL`,` | exit `,W.return_code,` | `,re(W.execution_time,2),`s`]}),l&&W&&(0,Y.jsxs)(`div`,{className:`session-result-actions`,children:[(0,Y.jsxs)(B,{variant:`default`,onClick:()=>ct(`txt`,a.tool,_[l]??{},W),children:[(0,Y.jsx)(C,{size:11}),` Export`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>ct(`json`,a.tool,_[l]??{},W),children:[(0,Y.jsx)(C,{size:11}),` JSON`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>void he(a.tool,_[l]??{},W),children:[(0,Y.jsx)(j,{size:11}),` Notes`]}),u.topology_capable&&(0,Y.jsxs)(B,{variant:`default`,onClick:()=>H(a.tool,_[l]??{},W),children:[(0,Y.jsx)(c,{size:11}),` Topology`]}),a.tool===`create-attack-chain`&&W.success&&(0,Y.jsx)(B,{disabled:e,variant:`success`,onClick:()=>{M()},children:`Use Chain`})]})]}),(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:ne||`(no stdout)`}),ie&&(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:ie})]}):(0,Y.jsx)(`p`,{className:`section-meta`,children:`No result yet for this tool.`}),se&&oe&&l&&(0,Y.jsx)(ut,{endpoint:oe.endpoint,baseParams:_[l]??{},label:oe.label,terminalId:`${l}:${oe.endpoint}`,terminalState:fe[`${l}:${oe.endpoint}`]??st,updateTerminalState:me},`${l}:${oe.endpoint}`),x?.priorResults&&x.priorResults.length>0&&(0,Y.jsxs)(`div`,{className:`session-prior-runs`,children:[(0,Y.jsxs)(`p`,{className:`session-prior-runs-label`,children:[`Prior runs (`,x.priorResults.length,`)`]}),x.priorResults.map((e,t)=>(0,Y.jsxs)(`div`,{className:`session-prior-run`,children:[(0,Y.jsxs)(`button`,{className:`session-prior-run-toggle`,onClick:()=>de(e=>({...e,[t]:!e[t]})),children:[(0,Y.jsxs)(`span`,{className:`mono`,children:[e.success?`OK`:`FAIL`,` | exit `,e.return_code,` | `,re(e.execution_time,2),`s | `,new Date(e.timestamp).toLocaleTimeString()]}),ue[t]?(0,Y.jsx)(f,{size:11}):(0,Y.jsx)(r,{size:11})]}),ue[t]&&l&&(0,Y.jsxs)(`div`,{className:`session-prior-run-body`,children:[(0,Y.jsxs)(`div`,{className:`session-result-actions`,children:[(0,Y.jsxs)(B,{variant:`default`,onClick:()=>ct(`txt`,a.tool,_[l]??{},e),children:[(0,Y.jsx)(C,{size:11}),` Export`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>ct(`json`,a.tool,_[l]??{},e),children:[(0,Y.jsx)(C,{size:11}),` JSON`]}),(0,Y.jsxs)(B,{variant:`default`,onClick:()=>void he(a.tool,_[l]??{},e),children:[(0,Y.jsx)(j,{size:11}),` Notes`]}),u.topology_capable&&(0,Y.jsxs)(B,{variant:`default`,onClick:()=>H(a.tool,_[l]??{},e),children:[(0,Y.jsx)(c,{size:11}),` Topology`]})]}),(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:Ee(e,`stdout`)||`(no stdout)`}),Ee(e,`stderr`)&&(0,Y.jsx)(`pre`,{className:`session-result-pre mono`,children:Ee(e,`stderr`)})]})]},t))]})]})]})})]})]})}var ft={sm:13,md:16,lg:22};function pt({size:e=`md`,color:t=`var(--green)`,className:r=``}){return(0,Y.jsx)(n,{size:ft[e],color:t,className:`spin${r?` ${r}`:``}`})}function mt({label:e=`Loading…`,size:t=`md`}){return(0,Y.jsxs)(`div`,{className:`ui-loading-state`,children:[(0,Y.jsx)(pt,{size:t}),(0,Y.jsx)(`p`,{children:e})]})}function ht(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function gt({sessionId:e,allFolders:t,onClose:n,onUploaded:r,pushToast:i}){let[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(null),_=(0,K.useRef)(null),v=(0,K.useRef)(null);function y(e){o(e);let t=e.name.replace(/\.md$/i,``);c(ht(t)||`uploaded-note`),m(!1),g(null)}function b(e){let t=e.target.files?.[0];t&&y(t),e.target.value=``}function x(e){e.preventDefault();let t=e.dataTransfer.files?.[0];t&&y(t)}async function S(t){if(!a)return;let o=ht(s)||`uploaded-note`;f(!0),g(null);try{let s=await G.uploadSessionNote(e,o,a,t,l);if(`conflict`in s&&s.conflict){m(!0),f(!1);return}i(`success`,`${o}.md uploaded`),r(),n()}catch{g(`Upload failed. Please try again.`)}finally{f(!1)}}let C=(ht(s)||`uploaded-note`)+`.md`;return(0,Y.jsx)(V,{isOpen:!0,onClose:n,disableClose:d,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`note-modal-icon`,children:(0,Y.jsx)(N,{size:13})}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Upload note`})]}),footer:(0,Y.jsxs)(`div`,{className:`upload-note-modal-footer`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:n,disabled:d,children:`Cancel`}),p?(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,onClick:()=>void S(!0),disabled:d,children:d?`Uploading…`:`Overwrite`}):(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>void S(!1),disabled:!a||d,children:d?`Uploading…`:`Upload`})]}),children:(0,Y.jsxs)(`div`,{className:`upload-note-modal-body`,children:[(0,Y.jsxs)(`div`,{ref:v,className:`upload-note-dropzone${a?` upload-note-dropzone--has-file`:``}`,onClick:()=>_.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:x,children:[(0,Y.jsx)(`input`,{ref:_,type:`file`,accept:`.md,text/markdown,text/plain`,style:{display:`none`},onChange:b}),a?(0,Y.jsxs)(`div`,{className:`upload-note-file-chosen`,children:[(0,Y.jsx)(j,{size:20}),(0,Y.jsx)(`span`,{className:`upload-note-file-name`,children:a.name}),(0,Y.jsx)(`span`,{className:`upload-note-file-size`,children:U(a.size)})]}):(0,Y.jsxs)(`div`,{className:`upload-note-dropzone-prompt`,children:[(0,Y.jsx)(N,{size:24,style:{opacity:.45}}),(0,Y.jsxs)(`span`,{children:[`Drop a `,(0,Y.jsx)(`code`,{children:`.md`}),` file here, or click to browse`]})]})]}),a&&(0,Y.jsxs)(`div`,{className:`upload-note-fields`,children:[(0,Y.jsxs)(`label`,{className:`upload-note-field-label`,children:[`Note name`,(0,Y.jsxs)(`div`,{className:`upload-note-name-row`,children:[(0,Y.jsx)(`input`,{className:`upload-note-name-input`,name:`note-name`,type:`text`,value:s,onChange:e=>{c(e.target.value),m(!1),g(null)},disabled:d,placeholder:`note-name`}),(0,Y.jsx)(`span`,{className:`upload-note-name-ext`,children:`.md`})]}),(0,Y.jsxs)(`span`,{className:`upload-note-field-hint`,children:[`Will be saved as `,(0,Y.jsx)(`strong`,{children:C})]})]}),t.length>0&&(0,Y.jsxs)(`label`,{className:`upload-note-field-label`,children:[`Folder`,(0,Y.jsxs)(`select`,{className:`note-modal-folder-select upload-note-folder-select`,name:`note-folder`,value:l,onChange:e=>{u(e.target.value),m(!1)},disabled:d,children:[(0,Y.jsx)(`option`,{value:``,children:`/ root`}),t.map(e=>(0,Y.jsxs)(`option`,{value:e,children:[e,`/`]},e))]})]}),p&&(0,Y.jsxs)(`div`,{className:`upload-note-conflict`,children:[(0,Y.jsx)(w,{size:13}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:C}),` already exists`,l?` in ${l}/`:``,`. Overwrite?`]})]}),h&&(0,Y.jsx)(`div`,{className:`upload-note-error`,children:h})]})]})})}function _t(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function vt(e,t,n){let{pushToast:r}=te(),[i,a]=(0,K.useState)(new Set);function o(e){a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)(!1),h=(0,K.useCallback)(async t=>{let i=_t(t);if(!i){f(`Folder name is empty or contains only invalid characters`);return}m(!0),f(null);try{await G.createSessionNoteFolder(e,i),r(`success`,`Folder "${i}" created`),c(!1),u(``),await n(),a(e=>new Set([...e,i]))}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`409`)||t.toLowerCase().includes(`already exists`)?f(`Folder "${i}" already exists`):f(`Failed to create folder`)}finally{m(!1)}},[e,n,r]),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(``),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(!1);function w(e){_(e),y(e),x(null)}function T(){_(null),y(``),x(null)}let E=(0,K.useCallback)(async()=>{if(!g)return;let i=_t(v);if(!i){x(`Name is empty or contains only invalid characters`);return}if(i===g){T();return}if(t.includes(i)){x(`Folder "${i}" already exists`);return}C(!0),x(null);try{await G.renameSessionNoteFolder(e,g,i),r(`success`,`Folder renamed to "${i}"`),a(e=>{let t=new Set(e);return t.has(g)&&(t.delete(g),t.add(i)),t}),T(),await n()}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`409`)||t.toLowerCase().includes(`already exists`)?x(`Folder "${i}" already exists`):x(`Failed to rename folder`)}finally{C(!1)}},[g,v,t,e,n,r]),[D,O]=(0,K.useState)(null),[k,A]=(0,K.useState)(!1);return{showNewFolderInput:s,newFolderName:l,newFolderError:d,creatingFolder:p,setShowNewFolderInput:c,setNewFolderName:u,createFolder:h,renamingFolder:g,renameDraft:v,renameError:b,renameSaving:S,startRenameFolder:w,cancelRenameFolder:T,confirmRenameFolder:E,setRenameDraft:y,deleteFolderTarget:D,deletingFolder:k,setDeleteFolderTarget:O,confirmDeleteFolder:(0,K.useCallback)(async()=>{if(D){A(!0);try{await G.deleteSessionNoteFolder(e,D.folder),r(`success`,`Folder "${D.folder}" deleted`),a(e=>{let t=new Set(e);return t.delete(D.folder),t}),O(null),await n()}catch{r(`error`,`Failed to delete folder "${D.folder}"`)}finally{A(!1)}}},[D,e,n,r]),expandedFolders:i,toggleFolder:o,setExpandedFolders:a}}var yt=(0,K.lazy)(()=>H(()=>import(`./NoteModal-eFcesyiR.js`).then(e=>({default:e.NoteModal})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])));function bt(e){return e.trim().replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9_\-]/g,``).slice(0,120)}function xt({text:e,query:t}){let n=t.trim();if(!n)return(0,Y.jsx)(Y.Fragment,{children:e});let r=e.toLowerCase().indexOf(n.toLowerCase());return r===-1?(0,Y.jsx)(Y.Fragment,{children:e}):(0,Y.jsxs)(Y.Fragment,{children:[e.slice(0,r),(0,Y.jsx)(`mark`,{className:`note-snippet-highlight`,children:e.slice(r,r+n.length)}),e.slice(r+n.length)]})}function St({sessionId:e,initialOpenPath:t,onInitialOpenConsumed:n}){let{pushToast:r}=te(),[i,o]=(0,K.useState)([]),[c,u]=(0,K.useState)([]),[d,f]=(0,K.useState)(!0),[p,m]=(0,K.useState)(``),[g,_]=(0,K.useState)(``),[v,b]=(0,K.useState)(null),[x,S]=(0,K.useState)(!1),w=(0,K.useRef)(null),[E,D]=(0,K.useState)(null),[O,A]=(0,K.useState)(!1),[I,L]=(0,K.useState)(``),[R,z]=(0,K.useState)(null),B=(0,K.useRef)(null),[V,H]=(0,K.useState)(null),[ee,W]=(0,K.useState)(!1),[ne,re]=(0,K.useState)(!1),ie=(0,K.useCallback)(async()=>{try{let[t,n]=await Promise.all([G.sessionNotes(e),G.sessionNoteFolders(e)]);o(t.notes),u(n.folders??[])}catch{r(`error`,`Failed to load notes`)}finally{f(!1)}},[e,r]);(0,K.useEffect)(()=>{ie()},[ie]);let oe=(0,K.useMemo)(()=>{let e=new Set(c);for(let t of i)t.folder&&e.add(t.folder);return Array.from(e).sort()},[i,c]),le=(0,K.useMemo)(()=>i.filter(e=>!e.folder),[i]),ue=(0,K.useMemo)(()=>{let e={};for(let t of i)t.folder&&(e[t.folder]||(e[t.folder]=[]),e[t.folder].push(t));return e},[i]),de=(0,K.useMemo)(()=>i.length,[i]),{showNewFolderInput:fe,setShowNewFolderInput:pe,newFolderName:me,setNewFolderName:he,newFolderError:ge,creatingFolder:_e,createFolder:ve,renamingFolder:ye,renameDraft:be,setRenameDraft:xe,renameError:Se,renameSaving:Ce,startRenameFolder:we,cancelRenameFolder:Te,confirmRenameFolder:Ee,deleteFolderTarget:De,setDeleteFolderTarget:Oe,deletingFolder:ke,confirmDeleteFolder:Ae,expandedFolders:je,setExpandedFolders:Me,toggleFolder:Ne}=vt(e,oe,ie),Pe=(0,K.useRef)(null),Fe=(0,K.useRef)(null);(0,K.useEffect)(()=>{O&&setTimeout(()=>B.current?.focus(),50)},[O]),(0,K.useEffect)(()=>{fe&&setTimeout(()=>Pe.current?.focus(),50)},[fe]),(0,K.useEffect)(()=>{ye&&setTimeout(()=>Fe.current?.focus(),50)},[ye]),(0,K.useEffect)(()=>{if(!t||d||i.length===0)return;let e=t.indexOf(`/`),r=e===-1?``:t.slice(0,e),a=e===-1?t:t.slice(e+1),o=i.find(e=>e.filename===a&&(e.folder??``)===r);o&&(D({note:o,isNew:!1,mode:`view`}),r&&Me(e=>new Set([...e,r])),n?.())},[t,d,i,n,Me]),(0,K.useEffect)(()=>{let t=g.trim();if(w.current&&clearTimeout(w.current),t.length<2){b(null),S(!1);return}return S(!0),w.current=setTimeout(async()=>{try{let n=await G.searchSessionNotes(e,t);b(n.results)}catch{b([])}finally{S(!1)}},350),()=>{w.current&&clearTimeout(w.current)}},[g,e]);function Ie(e){let t=bt(e);if(!t){z(`Note name is empty or contains only invalid characters`);return}D({note:{filename:t,folder:p,size:0,updated_at:0},isNew:!0,mode:`edit`}),A(!1),L(``),z(null)}function Le(e){D({note:e,isNew:!1,mode:`view`})}function q(e){D({note:e,isNew:!1,mode:`edit`})}async function Re(){if(V){W(!0);try{await G.deleteSessionNote(e,V.filename,V.folder),r(`success`,`${V.filename}.md deleted`),H(null),await ie()}catch{r(`error`,`Failed to delete ${V.filename}.md`)}finally{W(!1)}}}let ze=g.trim().length>=2;function Be(t,n=!1){let r=`${t.folder}/${t.filename}`,i=t.folder?`/api/sessions/${e}/notes/${t.filename}?folder=${encodeURIComponent(t.folder)}&download=1`:`/api/sessions/${e}/notes/${t.filename}?download=1`,a=`snippet`in t?t.snippet:``;return(0,Y.jsxs)(`div`,{className:`session-note-card${n?` session-note-card--indented`:``}`,onClick:()=>Le(t),children:[(0,Y.jsxs)(`div`,{className:`session-note-card-info`,children:[(0,Y.jsxs)(`span`,{className:`session-note-card-name`,children:[(0,Y.jsx)(j,{size:12}),ze&&t.folder?(0,Y.jsxs)(`span`,{className:`note-folder-prefix`,children:[t.folder,`/`]}):null,t.filename,`.md`]}),a&&(0,Y.jsx)(`span`,{className:`session-note-card-snippet`,children:(0,Y.jsx)(xt,{text:a,query:g})}),(0,Y.jsxs)(`span`,{className:`session-note-card-meta`,children:[U(t.size),` · `,ce(t.updated_at)]})]}),(0,Y.jsxs)(`div`,{className:`session-note-card-actions`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Edit`,onClick:()=>q(t),children:(0,Y.jsx)(l,{size:12})}),(0,Y.jsx)(`a`,{className:`session-action-btn`,title:`Download`,href:i,download:`${t.filename}.md`,children:(0,Y.jsx)(C,{size:12})}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete`,onClick:()=>H(t),children:(0,Y.jsx)(P,{size:12})})]})]},r)}return(0,Y.jsxs)(`div`,{className:`session-notes`,children:[E&&(0,Y.jsx)(K.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`sheet-backdrop`,children:(0,Y.jsx)(`div`,{className:`sheet sheet--md`,children:(0,Y.jsx)(mt,{label:`Loading note…`})})}),children:(0,Y.jsx)(yt,{sessionId:e,note:E.note,isNew:E.isNew,initialMode:E.mode,allFolders:oe,onClose:()=>D(null),onSaved:ie,onDelete:e=>{D(null),H(e)},pushToast:r})}),ne&&(0,Y.jsx)(gt,{sessionId:e,allFolders:oe,onClose:()=>re(!1),onUploaded:ie,pushToast:r}),(0,Y.jsx)(ae,{isOpen:!!V,title:`Delete note`,description:`Are you sure you want to delete ${V?.filename}.md? This cannot be undone.`,confirmLabel:`Delete`,confirmVariant:`danger`,isConfirming:ee,onConfirm:Re,onClose:()=>H(null)}),(0,Y.jsx)(ae,{isOpen:!!De,title:`Delete folder`,description:De?De.noteCount>0?`Delete folder "${De.folder}" and all ${De.noteCount} note${De.noteCount===1?``:`s`} inside it? This cannot be undone.`:`Delete folder "${De.folder}"? This cannot be undone.`:``,confirmLabel:`Delete`,confirmVariant:`danger`,isConfirming:ke,onConfirm:Ae,onClose:()=>Oe(null)}),(0,Y.jsxs)(`div`,{className:`session-notes-header`,children:[(0,Y.jsxs)(`span`,{className:`session-notes-count`,children:[de,` note`,de===1?``:`s`]}),(0,Y.jsxs)(`div`,{className:`session-notes-header-actions`,children:[(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{pe(!1),he(``),A(e=>!e),z(null),L(``),m(``)},children:[(0,Y.jsx)(h,{size:12}),` New Note`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{A(!1),z(null),L(``),pe(e=>!e),he(``)},children:[(0,Y.jsx)(k,{size:12}),` New Folder`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>re(!0),children:[(0,Y.jsx)(N,{size:12}),` Upload .md`]})]})]}),(0,Y.jsxs)(`div`,{className:`session-notes-search-row`,children:[(0,Y.jsx)(a,{size:12,className:`session-notes-search-icon`}),(0,Y.jsx)(`input`,{className:`session-notes-search-input`,type:`text`,placeholder:`Search notes…`,value:g,onChange:e=>_(e.target.value)}),g&&(0,Y.jsx)(`button`,{className:`session-notes-search-clear`,onClick:()=>_(``),title:`Clear search`,children:(0,Y.jsx)(M,{size:12})})]}),O&&(0,Y.jsxs)(`div`,{className:`session-notes-new-row`,children:[oe.length>0&&(0,Y.jsxs)(`select`,{className:`session-notes-folder-select`,name:`new-note-folder`,value:p,onChange:e=>m(e.target.value),title:`Create note in folder`,children:[(0,Y.jsx)(`option`,{value:``,children:`/ root`}),oe.map(e=>(0,Y.jsxs)(`option`,{value:e,children:[e,`/`]},e))]}),(0,Y.jsx)(`input`,{ref:B,className:`session-notes-name-input`,name:`new-note-name`,type:`text`,placeholder:`Note title (letters, digits, hyphens, underscores)`,value:I,onChange:e=>L(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Ie(I),e.key===`Escape`&&(A(!1),L(``))}}),(0,Y.jsx)(`span`,{className:`session-notes-name-ext`,children:`.md`}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>Ie(I),children:`Create`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>{A(!1),L(``)},children:(0,Y.jsx)(M,{size:12})}),R&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:R})]}),fe&&(0,Y.jsxs)(`div`,{className:`session-notes-new-row`,children:[(0,Y.jsx)(T,{size:12,className:`session-new-folder-icon`}),(0,Y.jsx)(`input`,{ref:Pe,className:`session-notes-name-input`,name:`new-folder-name`,type:`text`,placeholder:`Folder name (letters, digits, hyphens, underscores)`,value:me,onChange:e=>he(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ve(me),e.key===`Escape`&&(pe(!1),he(``))},disabled:_e}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:()=>void ve(me),disabled:_e,children:_e?`Creating…`:`Create`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>{pe(!1),he(``)},disabled:_e,children:(0,Y.jsx)(M,{size:12})}),ge&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:ge})]}),d&&(0,Y.jsx)(`p`,{className:`section-meta`,children:`Loading notes…`}),!d&&(0,Y.jsxs)(`div`,{className:`session-notes-list`,children:[ze&&(0,Y.jsx)(Y.Fragment,{children:x?(0,Y.jsx)(`p`,{className:`section-meta section-meta--padded`,children:`Searching…`}):v===null||v.length===0?(0,Y.jsxs)(`div`,{className:`session-notes-empty`,children:[(0,Y.jsx)(j,{size:28,color:`var(--text-dim)`}),(0,Y.jsxs)(`p`,{children:[`No notes match "`,g,`".`]})]}):v.map(e=>Be(e,!1))}),!ze&&(0,Y.jsxs)(Y.Fragment,{children:[le.map(e=>Be(e,!1)),oe.map(e=>{let t=ue[e]??[],n=je.has(e);return(0,Y.jsxs)(`div`,{className:`session-notes-folder-group`,children:[(0,Y.jsxs)(`div`,{className:`session-note-folder-row`,onClick:()=>ye!==e&&Ne(e),children:[(0,Y.jsx)(`span`,{className:`session-note-folder-chevron`,children:(0,Y.jsx)(se,{open:n,size:12})}),(0,Y.jsx)(`span`,{className:`session-note-folder-icon`,children:n?(0,Y.jsx)(F,{size:13}):(0,Y.jsx)(T,{size:13})}),ye===e?(0,Y.jsxs)(`div`,{className:`session-note-folder-rename-wrap`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`input`,{ref:Fe,className:`session-note-folder-rename-input`,name:`folder-rename`,value:be,onChange:e=>{xe(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&Ee(),e.key===`Escape`&&Te()},disabled:Ce}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,title:`Confirm rename`,onClick:()=>void Ee(),disabled:Ce,children:(0,Y.jsx)(y,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Cancel rename`,onClick:Te,disabled:Ce,children:(0,Y.jsx)(M,{size:11})}),Se&&(0,Y.jsx)(`span`,{className:`session-notes-error-inline`,children:Se})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`session-note-folder-name`,children:e}),t.length>0&&(0,Y.jsx)(`span`,{className:`session-note-folder-count`,title:`${t.length} note${t.length===1?``:`s`}`,children:t.length}),(0,Y.jsxs)(`div`,{className:`session-note-folder-actions`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`Rename ${e}`,onClick:()=>we(e),children:(0,Y.jsx)(s,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn`,title:`New note in ${e}`,onClick:()=>{m(e),pe(!1),he(``),A(!0),z(null),L(``),Me(t=>new Set([...t,e]))},children:(0,Y.jsx)(h,{size:11})}),(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--danger`,title:`Delete folder`,onClick:()=>Oe({folder:e,noteCount:t.length}),children:(0,Y.jsx)(P,{size:11})})]})]})]}),n&&(0,Y.jsx)(`div`,{className:`session-notes-folder-contents`,children:t.length===0?(0,Y.jsx)(`p`,{className:`session-notes-folder-empty`,children:`No notes yet.`}):t.map(e=>Be(e,!0))})]},`folder:${e}`)}),le.length===0&&oe.length===0&&!O&&!fe&&(0,Y.jsxs)(`div`,{className:`session-notes-empty`,children:[(0,Y.jsx)(j,{size:28,color:`var(--text-dim)`}),(0,Y.jsx)(`p`,{children:`No notes yet. Create one or upload a .md file.`})]})]})]})]})}var Ct=[`critical`,`high`,`medium`,`low`,`info`],wt={critical:`Critical`,high:`High`,medium:`Medium`,low:`Low`,info:`Info`},Tt=[`open`,`confirmed`,`false_positive`,`resolved`],Et=()=>({title:``,severity:`info`,description:``,tool:``,evidence:``,recommendation:``,cve:``,tags:[]});function Dt({title:e,severity:t,status:n,description:r,tool:i,cve:a,evidence:o,recommendation:s,tagsInput:c,saving:l,error:u,showStatus:d=!1,onChange:f,onTagsChange:p,onSave:m,onCancel:h}){return(0,Y.jsxs)(`div`,{className:`finding-modal-body`,children:[(0,Y.jsxs)(`div`,{className:`findings-form-row`,children:[(0,Y.jsx)(`input`,{name:`finding-title`,className:`findings-form-input`,placeholder:`Title *`,value:e,onChange:e=>f(`title`,e.target.value),autoFocus:!0}),(0,Y.jsx)(`select`,{name:`finding-severity`,className:`findings-form-select`,value:t,onChange:e=>f(`severity`,e.target.value),children:Ct.map(e=>(0,Y.jsx)(`option`,{value:e,children:wt[e]},e))}),d&&(0,Y.jsx)(`select`,{name:`finding-status`,className:`findings-form-select`,value:n??`open`,onChange:e=>f(`status`,e.target.value),children:Tt.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))})]}),(0,Y.jsx)(`textarea`,{name:`finding-description`,className:`findings-form-textarea`,placeholder:`Description`,rows:3,value:r,onChange:e=>f(`description`,e.target.value)}),(0,Y.jsxs)(`div`,{className:`findings-form-row`,children:[(0,Y.jsx)(`input`,{name:`finding-tool`,className:`findings-form-input`,placeholder:`Tool (e.g. nmap)`,value:i,onChange:e=>f(`tool`,e.target.value)}),(0,Y.jsx)(`input`,{name:`finding-cve`,className:`findings-form-input`,placeholder:`CVE (e.g. CVE-2021-44228)`,value:a,onChange:e=>f(`cve`,e.target.value)})]}),(0,Y.jsx)(`textarea`,{name:`finding-evidence`,className:`findings-form-textarea`,placeholder:`Evidence / PoC`,rows:3,value:o,onChange:e=>f(`evidence`,e.target.value)}),(0,Y.jsx)(`textarea`,{name:`finding-recommendation`,className:`findings-form-textarea`,placeholder:`Recommendation`,rows:2,value:s,onChange:e=>f(`recommendation`,e.target.value)}),(0,Y.jsx)(`input`,{name:`finding-tags`,className:`findings-form-input`,placeholder:`Tags (comma separated)`,value:c,onChange:e=>p(e.target.value)}),u&&(0,Y.jsx)(`div`,{className:`findings-error`,children:u}),(0,Y.jsxs)(`div`,{className:`findings-form-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:m,disabled:l,children:l?`Saving…`:`Save Finding`}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:h,disabled:l,children:`Cancel`})]})]})}function Ot({finding:e,saving:t,error:n,onSave:r,onClose:i}){let[a,o]=(0,K.useState)({title:e.title,severity:e.severity,description:e.description??``,tool:e.tool??``,evidence:e.evidence??``,recommendation:e.recommendation??``,cve:e.cve??``,tags:e.tags??[],status:e.status??`open`}),[s,c]=(0,K.useState)((e.tags??[]).join(`, `));function l(e,t){o(n=>({...n,[e]:t}))}function u(){let t={...a,tags:s?s.split(`,`).map(e=>e.trim()).filter(Boolean):[]};r(e.finding_id,t)}return(0,Y.jsx)(V,{isOpen:!0,onClose:i,disableClose:t,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(L,{size:13}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Edit Finding`})]}),children:(0,Y.jsx)(Dt,{title:a.title??``,severity:a.severity??`info`,status:a.status??`open`,description:a.description??``,tool:a.tool??``,cve:a.cve??``,evidence:a.evidence??``,recommendation:a.recommendation??``,tagsInput:s,saving:t,error:n,showStatus:!0,onChange:l,onTagsChange:c,onSave:u,onCancel:i})})}function kt({session:e,onUpdate:t}){let n=e.findings??[],[r,i]=(0,K.useState)(`all`),[o,s]=(0,K.useState)(``),[c,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(Et()),[p,m]=(0,K.useState)(``),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(null),E=(0,K.useMemo)(()=>{let e=o.trim().toLowerCase(),t=r===`all`?n:n.filter(e=>e.severity===r);return e&&(t=t.filter(t=>t.title.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||(t.tool??``).toLowerCase().includes(e)||(t.cve??``).toLowerCase().includes(e)||(t.tags??[]).some(t=>t.toLowerCase().includes(e)))),t},[n,r,o]),D=Ct.reduce((e,t)=>(e[t]=E.filter(e=>e.severity===t),e),{});function O(e,t){f(n=>({...n,[e]:t}))}async function k(){if(!d.title.trim()){y(`Title is required`);return}_(!0),y(null);try{let n={...d,tags:p?p.split(`,`).map(e=>e.trim()).filter(Boolean):[]};await G.addSessionFinding(e.session_id,n),f(Et()),m(``),u(!1),t?.()}catch(e){y(String(e))}finally{_(!1)}}async function A(n,r){_(!0),C(null);try{await G.updateSessionFinding(e.session_id,n,r),x(null),t?.()}catch(e){C(String(e))}finally{_(!1)}}async function j(n){T(n);try{await G.deleteSessionFinding(e.session_id,n),t?.()}catch(e){y(String(e))}finally{T(null)}}return(0,Y.jsxs)(`div`,{className:`session-findings`,children:[b&&(0,Y.jsx)(Ot,{finding:b,saving:g,error:S,onSave:A,onClose:()=>{x(null),C(null)}}),(0,Y.jsxs)(`div`,{className:`session-findings-header`,children:[(0,Y.jsxs)(`div`,{className:`session-findings-filters`,children:[(0,Y.jsxs)(`button`,{className:`findings-filter-btn${r===`all`?` findings-filter-btn--active`:``}`,onClick:()=>i(`all`),children:[`All (`,n.length,`)`]}),Ct.map(e=>{let t=n.filter(t=>t.severity===e).length;return t===0?null:(0,Y.jsxs)(`button`,{className:`findings-filter-btn findings-filter-btn--${e}${r===e?` findings-filter-btn--active`:``}`,onClick:()=>i(e),children:[wt[e],` (`,t,`)`]},e)})]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>{u(!0),y(null)},children:[(0,Y.jsx)(h,{size:12}),` Add Finding`]})]}),(0,Y.jsxs)(`div`,{className:`findings-search-row`,children:[(0,Y.jsx)(a,{size:12,className:`findings-search-icon`}),(0,Y.jsx)(`input`,{className:`findings-search-input`,type:`text`,placeholder:`Search findings…`,value:o,onChange:e=>s(e.target.value)}),o&&(0,Y.jsx)(`button`,{className:`findings-search-clear`,onClick:()=>s(``),title:`Clear search`,children:(0,Y.jsx)(M,{size:12})})]}),c&&(0,Y.jsx)(V,{isOpen:!0,onClose:()=>{u(!1),y(null)},disableClose:g,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(L,{size:13}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Add Finding`})]}),children:(0,Y.jsx)(Dt,{title:d.title,severity:d.severity,description:d.description??``,tool:d.tool??``,cve:d.cve??``,evidence:d.evidence??``,recommendation:d.recommendation??``,tagsInput:p,saving:g,error:v,onChange:O,onTagsChange:m,onSave:k,onCancel:()=>{u(!1),y(null)}})}),E.length===0&&(0,Y.jsx)(`div`,{className:`findings-empty`,children:(0,Y.jsx)(`p`,{className:`section-meta`,children:`No findings recorded yet.`})}),Ct.map(e=>{let t=D[e];return t.length?(0,Y.jsxs)(`div`,{className:`findings-group findings-group--${e}`,children:[(0,Y.jsxs)(`div`,{className:`findings-group-header`,children:[(0,Y.jsx)(`span`,{className:`findings-severity-badge findings-severity-badge--${e}`,children:wt[e]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[t.length,` finding`,t.length===1?``:`s`]})]}),t.map(e=>(0,Y.jsxs)(`div`,{className:`finding-card`,children:[(0,Y.jsxs)(`div`,{className:`finding-card-header`,children:[(0,Y.jsx)(`span`,{className:`finding-title`,children:e.title}),(0,Y.jsx)(`span`,{className:`finding-status finding-status--${e.status??`open`}`,children:e.status??`open`}),(0,Y.jsxs)(`div`,{className:`finding-card-actions`,children:[(0,Y.jsx)(`button`,{className:`finding-icon-btn`,title:`Edit`,onClick:()=>{x(e),C(null)},children:(0,Y.jsx)(l,{size:12})}),(0,Y.jsx)(`button`,{className:`finding-icon-btn finding-icon-btn--danger`,title:`Delete`,disabled:w===e.finding_id,onClick:()=>j(e.finding_id),children:(0,Y.jsx)(P,{size:12})})]})]}),e.description&&(0,Y.jsx)(`p`,{className:`finding-description`,children:e.description}),(0,Y.jsxs)(`div`,{className:`finding-meta`,children:[e.tool&&(0,Y.jsxs)(`span`,{className:`mono finding-meta-item`,children:[`tool: `,e.tool]}),e.cve&&(0,Y.jsx)(`span`,{className:`finding-meta-item finding-cve`,children:e.cve}),e.tags&&e.tags.length>0&&e.tags.map(e=>(0,Y.jsx)(`span`,{className:`finding-tag-badge`,children:e},e))]}),e.evidence&&(0,Y.jsxs)(`details`,{className:`finding-evidence-details`,children:[(0,Y.jsx)(`summary`,{className:`finding-evidence-summary`,children:`Evidence`}),(0,Y.jsx)(`pre`,{className:`finding-evidence-pre`,children:e.evidence})]}),e.recommendation&&(0,Y.jsxs)(`div`,{className:`finding-recommendation`,children:[(0,Y.jsx)(`strong`,{children:`Recommendation:`}),` `,e.recommendation]})]},e.finding_id))]},e):null})]})}var At={session_created:m,status_changed:n,handover:d,finding_added:a,report_generated:j,ai_report_generated:b,note_added:O,tool_run:i};function jt(e){if(!e)return`—`;try{return new Date(e*1e3).toLocaleString()}catch{return String(e)}}function Mt({evt:e}){let t=At[e.type]??I,n=e.type.replace(/_/g,` `);return(0,Y.jsxs)(`div`,{className:`timeline-event`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-icon`,children:(0,Y.jsx)(t,{size:14})}),(0,Y.jsxs)(`div`,{className:`timeline-event-body`,children:[(0,Y.jsxs)(`div`,{className:`timeline-event-header`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-type`,children:n}),(0,Y.jsx)(`span`,{className:`timeline-event-ts section-meta`,children:jt(e.timestamp)})]}),e.message&&(0,Y.jsx)(`p`,{className:`timeline-event-message`,children:e.message})]})]})}function Nt({session:e}){let t=e.event_log??[],n=e.handover_history??[],r=[];for(let e of t)r.push({ts:e.timestamp??0,el:(0,Y.jsx)(Mt,{evt:e},`evt-${e.timestamp}-${e.type}`)});for(let e of n){let t=e.timestamp?new Date(e.timestamp).getTime()/1e3:0;r.push({ts:t,el:(0,Y.jsxs)(`div`,{className:`timeline-event`,children:[(0,Y.jsx)(`span`,{className:`timeline-event-icon`,children:(0,Y.jsx)(d,{size:14})}),(0,Y.jsxs)(`div`,{className:`timeline-event-body`,children:[(0,Y.jsxs)(`div`,{className:`timeline-event-header`,children:[(0,Y.jsxs)(`span`,{className:`timeline-event-type`,children:[`handover — `,e.category]}),(0,Y.jsx)(`span`,{className:`timeline-event-ts section-meta`,children:e.timestamp?new Date(e.timestamp).toLocaleString():`—`})]}),(0,Y.jsxs)(`p`,{className:`timeline-event-message`,children:[`Confidence: `,Math.round((e.confidence??0)*100),`%`,e.note?` — ${e.note}`:``]})]})]},`handover-${e.timestamp}`)})}return r.sort((e,t)=>t.ts-e.ts),r.length===0?(0,Y.jsx)(`div`,{className:`session-timeline`,children:(0,Y.jsx)(`p`,{className:`section-meta`,children:`No timeline events recorded yet.`})}):(0,Y.jsx)(`div`,{className:`session-timeline`,children:(0,Y.jsx)(`div`,{className:`timeline-list`,children:r.map((e,t)=>(0,Y.jsx)(`div`,{children:e.el},t))})})}function Pt(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},It=[[-1/0,-1/0],[1/0,1/0]],Lt=[`Enter`,` `,`Escape`],Rt={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},zt;(function(e){e.Strict=`strict`,e.Loose=`loose`})(zt||={});var Bt;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Bt||={});var Vt;(function(e){e.Partial=`partial`,e.Full=`full`})(Vt||={});var Ht={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ut;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ut||={});var Wt;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Wt||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Gt={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function Kt(e){return e===null?null:e?`valid`:`invalid`}var qt=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Jt=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Yt=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Xt=(e,t=[0,0])=>{let{width:n,height:r}=jn(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Zt=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:pn(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):Yt(n)?n:t.nodeLookup.get(n.id)),dn(e,i?hn(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Qt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=dn(n,hn(e)),r=!0)}),r?pn(n):{x:0,y:0,width:0,height:0}},$t=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=_n(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},en=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function tn(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=jn(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function nn({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=On(Qt(tn(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function rn({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ft.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&An(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=An(d)?sn(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ft.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function an({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=en(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var on=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),sn=(e={x:0,y:0},t,n)=>({x:on(e.x,t[0][0],t[1][0]-(n?.width??0)),y:on(e.y,t[0][1],t[1][1]-(n?.height??0))});function cn(e,t,n){let{width:r,height:i}=jn(n),{x:a,y:o}=n.internals.positionAbsolute;return sn(e,[[a,o],[a+r,o+i]],t)}var ln=(e,t,n)=>en?-on(Math.abs(e-n),1,t)/t:0,un=(e,t,n=15,r=40)=>[ln(e.x,r,t.width-r)*n,ln(e.y,r,t.height-r)*n],dn=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),fn=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),mn=(e,t=[0,0])=>{let{x:n,y:r}=Yt(e)?e.internals.positionAbsolute:Xt(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},hn=(e,t=[0,0])=>{let{x:n,y:r}=Yt(e)?e.internals.positionAbsolute:Xt(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},gn=(e,t)=>pn(dn(fn(e),fn(t))),_n=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},vn=(e,t)=>_n(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),yn=e=>bn(e.width)&&bn(e.height)&&bn(e.x)&&bn(e.y),bn=e=>!isNaN(e)&&isFinite(e),xn=(e,t)=>(e,t)=>{},Sn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Cn=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?Sn(s,o):s},wn=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Tn(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function En(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Tn(e,n),i=Tn(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Tn(e.top??e.y??0,n),i=Tn(e.bottom??e.y??0,n),a=Tn(e.left??e.x??0,t),o=Tn(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Dn(e,t,n,r,i,a){let{x:o,y:s}=wn(e,[t,n,r]),{x:c,y:l}=wn({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var On=(e,t,n,r,i,a)=>{let o=En(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=on(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Dn(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},kn=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function An(e){return e!=null&&e!==`parent`}function jn(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Mn(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Nn(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Pn(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Fn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function In(e){return{...Rt,...e||{}}}function Ln(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Un(e),s=Cn({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?Sn(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Rn=e=>({width:e.offsetWidth,height:e.offsetHeight}),zn=e=>e?.getRootNode?.()||window?.document,Bn=[`INPUT`,`SELECT`,`TEXTAREA`];function Vn(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Bn.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Hn=e=>`clientX`in e,Un=(e,t)=>{let n=Hn(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Wn=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Rn(t)}})};function Gn({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Kn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qn({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Kn(t-r,a),n];case X.Right:return[t+Kn(r-t,a),n];case X.Top:return[t,n-Kn(n-i,a)];case X.Bottom:return[t,n+Kn(i-n,a)]}}function Jn({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=qn({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=qn({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Gn({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Yn({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var Qn=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,$n=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),er=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ft.error006()),t;let r=n.getEdgeId||Qn,i;return i=qt(e)?{...e}:{...e,id:r(e)},$n(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function tr({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Yn({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var nr={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},rr=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function ar({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=nr[t],c=nr[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=rr({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Yn({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function or(e,t,n,r){let i=Math.min(ir(e,t)/2,ir(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function pr(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function mr(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=pr(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var hr=1e3,gr=10,_r={nodeOrigin:[0,0],nodeExtent:It,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},vr={..._r,checkEquality:!0};function yr(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function br(e,t,n){let r=yr(_r,n);for(let n of e.values())if(n.parentId)Tr(n,e,t,r);else{let e=sn(Xt(n,r.nodeOrigin),An(n.extent)?n.extent:r.nodeExtent,jn(n));n.internals.positionAbsolute=e}}function xr(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Sr(e){return e===`manual`}function Cr(e,t,n,r={}){let i=yr(vr,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Sr(i.zIndexMode)?hr:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=sn(Xt(u,i.nodeOrigin),An(u.extent)?u.extent:i.nodeExtent,jn(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:xr(u,e),z:Er(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Tr(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function wr(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Tr(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=yr(_r,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}wr(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*gr),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Dr(e,u,o,s,a&&!Sr(c)?hr:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Er(e,t,n){let r=bn(e.zIndex)?e.zIndex:0;return Sr(n)?r:r+(e.selected?t:0)}function Dr(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=jn(e),l=Xt(e,n),u=An(e.extent)?sn(l,e.extent,c):l,d=sn({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=cn(d,c,t));let f=Er(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Or(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=gn(a.get(n.parentId)?.expandedRect??mn(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=jn(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=Or(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Ar({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function jr(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Mr(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;jr(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),jr(`target`,s,c,e,i,o),t.set(r.id,r)}}function Nr(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Nr(n,t):!1}function Pr(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Fr(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Nr(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Ir({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Lr({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=Sn(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Rr({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=he(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?fn(Qt(s)):null,x=v&&l?Lr({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:Sn(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=rn({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Ir({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=un(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Ln(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Fr(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Ir({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=pe().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Ln(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Un(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Ln(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Un(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Un(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Ir({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Pr(t,`.${g}`,v))&&(!_||Pr(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function zr(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())vn(i,mn(e))>0&&r.push(e);return r}var Br=250;function Vr(e,t,n,r){let i=[],a=1/0,o=zr(e,n,t+Br);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=dr(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Hr(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...dr(o,c,c.position,!0)}:c}function Ur(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Wr(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Gr=()=>!0;function Kr(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Gr,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=zn(e.target),E=0,D,{x:O,y:k}=Un(e),A=Ur(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Hr(i,A,r,c,t);if(!N)return;let P=Un(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=un(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:dr(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:Gt[B.position],toNode:null,pointer:P};function ee(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&ee();function te(e){if(!M){let{x:t,y:n}=Un(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;ee()}if(!x()||!B){U(e);return}let a=b();P=Un(e,j),D=Vr(Cn(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=qr(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Wr(!!D,s.isValid);let u=c.get(i),f=u?dr(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?wn({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Gt[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function U(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,U),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,U)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,U),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,U)}function qr(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Gr,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Un(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Ur(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===zt.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Hr(t,e,a,u,n,!0)}return _}var Jr={onPointerDown:Kr,isValid:qr};function Yr({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=he(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&kn()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=ve().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:ue}}var Xr=e=>({x:e.x,y:e.y,zoom:e.k}),Zr=({x:e,y:t,zoom:n})=>me.translate(e,t).scale(n),Qr=(e,t)=>e.target.closest(`.${t}`),$r=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ei=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ti=(e,t=0,n=ei,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},ni=e=>{let t=e.ctrlKey&&kn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ri({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Qr(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=ue(u),t=d*2**ni(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Bt.Vertical?0:u.deltaX*f,m=i===Bt.Horizontal?0:u.deltaY*f;!kn()&&u.shiftKey&&i!==Bt.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Xr(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function ii({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Qr(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ai({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Xr(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function oi({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&$r(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Xr(a.transform))}}function si({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&$r(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Xr(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ci({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(Qr(d,`${l}-flow__node`)||Qr(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Qr(d,s)&&m||Qr(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function li({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=ve().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=he(e).call(f);y({x:i.x,y:i.y,zoom:on(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(ni);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).transform(ti(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!bn(E)||E<0?0:E);let k=O?ri({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ii({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=ai({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=oi({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=si({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let N=ci({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(N),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Zr(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Zr(e);return await g(n,t),n}function x(e){if(p){let t=Zr(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?_e(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).scaleTo(ti(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ge:de).scaleBy(ti(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!bn(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var ui;(function(e){e.Line=`line`,e.Handle=`handle`})(ui||={});function di({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function fi(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function pi(e,t){return Math.max(0,t-e)}function mi(e,t){return Math.max(0,e-t)}function hi(e,t,n){return Math.max(0,t-e,e-n)}function gi(e,t){return e?!t:t}function _i(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=hi(E,h,g),j=hi(D,_,v);if(o){let e=0,t=0;c&&w<0?e=pi(y+w+O,o[0][0]):!c&&w>0&&(e=mi(y+E+O,o[1][0])),l&&T<0?t=pi(b+T+k,o[0][1]):!l&&T>0&&(t=mi(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=mi(y+w,s[0][0]):!c&&w<0&&(e=pi(y+E,s[1][0])),l&&T>0?t=mi(b+T,s[0][1]):!l&&T<0&&(t=pi(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=hi(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?mi(b+k+E/C,o[1][1])*C:pi(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?pi(b+E/C,s[1][1])*C:mi(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=hi(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?mi(y+D*C+O,o[1][0])/C:pi(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?pi(y+D*C,s[1][0])/C:mi(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(gi(c,l)?-w:w)/C:w=(gi(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var vi={width:0,height:0,x:0,y:0},yi={...vi,pointerX:0,pointerY:0,aspectRatio:1};function bi(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function xi({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=he(e),o={controlDirection:fi(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...vi},h={...yi};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:fi(e)};let g,_=null,v=[],y,b,x,S=!1,C=pe().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Ln(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=An(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=bi(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=Ln(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=_i(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Si=e(fe(),1),Ci=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},wi=e=>e?Ci(e):Ci,{useDebugValue:Ti}=K.default,{useSyncExternalStoreWithSelector:Ei}=Si.default,Di=e=>e;function Oi(e,t=Di,n){let r=Ei(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Ti(r),r}var ki=(e,t)=>{let n=wi(e),r=(e,r=t)=>Oi(n,e,r);return Object.assign(r,n),r},Ai=(e,t)=>e?ki(e,t):ki;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}R();var ji=(0,K.createContext)(null),Mi=ji.Provider,Ni=Ft.error001(`react`);function Q(e,t){let n=(0,K.useContext)(ji);if(n===null)throw Error(Ni);return Oi(n,e,t)}function $(){let e=(0,K.useContext)(ji);if(e===null)throw Error(Ni);return(0,K.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Pi={display:`none`},Fi={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Ii=`react-flow__node-desc`,Li=`react-flow__edge-desc`,Ri=`react-flow__aria-live`,zi=e=>e.ariaLiveMessage,Bi=e=>e.ariaLabelConfig;function Vi({rfId:e}){let t=Q(zi);return(0,Y.jsx)(`div`,{id:`${Ri}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Fi,children:t})}function Hi({rfId:e,disableKeyboardA11y:t}){let n=Q(Bi);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{id:`${Ii}-${e}`,style:Pi,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,Y.jsx)(`div`,{id:`${Li}-${e}`,style:Pi,children:n[`edge.a11yDescription.default`]}),!t&&(0,Y.jsx)(Vi,{rfId:e})]})}var Ui=(0,K.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,Y.jsx)(`div`,{className:Pt([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Ui.displayName=`Panel`;var Wi=`https://reactflow.dev?utm_source=attribution`;function Gi({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,Y.jsx)(Ui,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Wi}`,children:(0,Y.jsx)(`a`,{href:Wi,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Ki=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},qi=e=>e.id;function Ji(e,t){return Z(e.selectedNodes.map(qi),t.selectedNodes.map(qi))&&Z(e.selectedEdges.map(qi),t.selectedEdges.map(qi))}function Yi({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(Ki,Ji);return(0,K.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Xi=e=>!!e.onSelectionChangeHandlers;function Zi({onSelectionChange:e}){let t=Q(Xi);return e||t?(0,Y.jsx)(Yi,{onSelectionChange:e}):null}var Qi=[0,0],$i={x:0,y:0,zoom:1},ea=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],ta=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),na={translateExtent:It,nodeOrigin:Qi,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function ra(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(ta,Z),l=$();(0,K.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=na,s()}),[]);let u=(0,K.useRef)(na);return(0,K.useEffect)(()=>{for(let s of ea){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:In(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},ea.map(t=>e[t])),null}function ia(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function aa(e){let[t,n]=(0,K.useState)(e===`system`?null:e);return(0,K.useEffect)(()=>{if(e!==`system`){n(e);return}let t=ia(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?ia()?.matches?`dark`:`light`:t}var oa=typeof document<`u`?document:null;function sa(e=null,t={target:oa,actInsideInputWithModifier:!0}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(!1),a=(0,K.useRef)(new Set([])),[o,s]=(0,K.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,` -`).replace(` - -`,` -+`).split(` -`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,K.useEffect)(()=>{let n=t?.target??oa,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Vn(e))return!1;let n=la(e.code,s);if(a.current.add(e[n]),ca(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=la(e.code,s);ca(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function ca(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function la(e,t){return t.includes(e)?`code`:`key`}var ua=()=>{let e=$();return(0,K.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=On(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return Cn(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=wn(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function da(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)fa(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function fa(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function pa(e,t){return da(e,t)}function ma(e,t){return da(e,t)}function ha(e,t){return{id:e,type:`select`,selected:t}}function ga(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(ha(a.id,e)))}return r}function _a({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function va(e){return{id:e.id,type:`remove`}}var ya=xn(`React Flow`,`https://reactflow.dev/`);function ba(e,t,n={}){return er(e,t,{...n,onError:n.onError??ya})}var xa=e=>Jt(e),Sa=e=>qt(e);function Ca(e){return(0,K.forwardRef)(e)}var wa=typeof window<`u`?K.useLayoutEffect:K.useEffect;function Ta(e){let[t,n]=(0,K.useState)(BigInt(0)),[r]=(0,K.useState)(()=>Ea(()=>n(e=>e+BigInt(1))));return wa(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Ea(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Da=(0,K.createContext)(null);function Oa({children:e}){let t=$(),n=Ta((0,K.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=_a({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Ta((0,K.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(_a({items:s,lookup:o}))},[])),i=(0,K.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,Y.jsx)(Da.Provider,{value:i,children:e})}function ka(){let e=(0,K.useContext)(Da);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Aa=e=>!!e.panZoom;function ja(){let e=ua(),t=$(),n=ka(),r=Q(Aa),i=(0,K.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=xa(e)?e:n.get(e.id),a=i.parentId?Nn(i.position,i.measured,i.parentId,n,r):i.position;return mn({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&xa(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Sa(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await an({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(va);o?.(f),c(e)}if(m){let e=d.map(va);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=yn(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=mn(s?r:a),l=vn(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=yn(e)?e:a(e);if(!r)return!1;let i=vn(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Zt(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Fn();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,K.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Ma=e=>e.selected,Na=typeof window<`u`?window:void 0;function Pa({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=$(),{deleteElements:r}=ja(),i=sa(e,{actInsideInputWithModifier:!1}),a=sa(t,{target:Na});(0,K.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Ma),edges:e.filter(Ma)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,K.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Fa(e){let t=$();(0,K.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=Rn(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Ft.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Ia={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},La=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Ra({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Bt.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=$(),S=(0,K.useRef)(null),{userSelectionActive:C,lib:w,connectionInProgress:T}=Q(La,Z),E=sa(f),D=(0,K.useRef)();Fa(S);let O=(0,K.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,K.useEffect)(()=>{if(S.current){D.current=li({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=D.current.getViewport();return x.setState({panZoom:D.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{D.current?.destroy()}}},[]),(0,K.useEffect)(()=>{D.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:E,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:w,onTransformChange:O,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,E,p,g,C,h,w,O,T,b,y]),(0,Y.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:Ia,children:m})}var za=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ba(){let{userSelectionActive:e,userSelectionRect:t}=Q(za,Z);return e&&t?(0,Y.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Va=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ha=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Ua({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Vt.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,K.useRef)(0),_=$(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=Q(Ha,Z),C=y&&(e||v),w=(0,K.useRef)(null),T=(0,K.useRef)(),E=(0,K.useRef)(new Set),D=(0,K.useRef)(new Set),O=(0,K.useRef)(!1),k=(0,K.useRef)(!1),A=(0,K.useRef)({x:0,y:0}),j=(0,K.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},N=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},P=d?e=>d(e):void 0,F=e=>{k.current&&=(e.stopPropagation(),!1)},I=n=>{let{domNode:r,transform:i}=_.getState();if(T.current=r?.getBoundingClientRect(),!T.current)return;let a=n.target===w.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:s,y:c}=Un(n.nativeEvent,T.current),l=Cn({x:s,y:c},i);_.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function L(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=wn(d,i),m={startX:d.x,startY:d.y,x:ee.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}Pn(h,E.current)||c(ga(a,E.current,!0)),Pn(g,D.current)||l(ga(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!T.current)return;let[e,t]=un(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=A.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};return(0,K.useEffect)(()=>()=>z(),[]),(0,Y.jsxs)(`div`,{className:Pt([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:b,selection:e}]),onClick:C?void 0:Va(M,w),onContextMenu:Va(N,w),onWheel:Va(P,w),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=Un(e.nativeEvent,T.current);A.current={x:o,y:c};let l=wn({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(R(),!0),L(o,c)}:p,onPointerUp:e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),z())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),z()}:void 0,onPointerDownCapture:C?I:void 0,onClickCapture:C?F:void 0,onPointerLeave:m,ref:w,style:Ia,children:[h,(0,Y.jsx)(Ba,{})]})}function Wa({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Ft.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ga({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=$(),[c,l]=(0,K.useState)(!1),u=(0,K.useRef)();return(0,K.useEffect)(()=>{if(!t)return u.current=Rr({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Wa({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,K.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var Ka=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function qa(){let e=$();return(0,K.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Ka(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=Sn(t,i));let{position:a,positionAbsolute:s}=rn({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Ja=(0,K.createContext)(null),Ya=Ja.Provider;Ja.Consumer;var Xa=()=>(0,K.useContext)(Ja),Za=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Qa=(0,K.createContext)(null);function $a({children:e}){let t=Q(Za,Z);return(0,Y.jsx)(Qa.Provider,{value:t,children:e})}function eo(){let e=(0,K.useContext)(Qa);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var to={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},no=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return to;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===zt.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function ro({type:e=`source`,position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=$(),_=Xa(),{connectOnClick:v,noPanClassName:y,rfId:b}=eo(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=Q(no(_,m,e),Z);_||g.getState().onError?.(`010`,Ft.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(ba(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=Hn(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Jr.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,Y.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Pt([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=zn(t.target),h=n||c,{connection:v,isValid:y}=Jr.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var io=(0,K.memo)(Ca(ro));function ao({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return(0,Y.jsxs)(Y.Fragment,{children:[e?.label,(0,Y.jsx)(io,{type:`source`,position:n,isConnectable:t})]})}function oo({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(io,{type:`target`,position:n,isConnectable:t}),e?.label,(0,Y.jsx)(io,{type:`source`,position:r,isConnectable:t})]})}function so(){return null}function co({data:e,isConnectable:t,targetPosition:n=X.Top}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(io,{type:`target`,position:n,isConnectable:t}),e?.label]})}var lo={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},uo={input:ao,default:oo,output:co,group:so};function fo(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var po=e=>{let{width:t,height:n,x:r,y:i}=Qt(e.nodeLookup,{filter:e=>!!e.selected});return{width:bn(t)?t:null,height:bn(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function mo({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=$(),{width:i,height:a,transformString:o,userSelectionActive:s}=Q(po,Z),c=qa(),l=(0,K.useRef)(null);(0,K.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ga({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,Y.jsx)(`div`,{className:Pt([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,Y.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(lo,e.key)&&(e.preventDefault(),c({direction:lo[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var ho=typeof window<`u`?window:void 0,go=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function _o({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=Q(go,Z),z=sa(l,{target:ho}),B=sa(h,{target:ho}),V=B||w,H=B||b,ee=u&&V!==!0,te=z||R||ee;return Pa({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,Y.jsx)(Ra,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:H,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&V,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:ee,children:(0,Y.jsxs)(Ua,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:T,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:ee,children:[e,L&&(0,Y.jsx)(mo,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}_o.displayName=`FlowRenderer`;var vo=(0,K.memo)(_o),yo=e=>t=>e?$t(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function bo(e){return Q((0,K.useCallback)(yo(e),[e]),Z)}var xo=e=>e.updateNodeInternals;function So(){let e=Q(xo),[t]=(0,K.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,K.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function Co({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=$(),a=(0,K.useRef)(null),o=(0,K.useRef)(null),s=(0,K.useRef)(e.sourcePosition),c=(0,K.useRef)(e.targetPosition),l=(0,K.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,K.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,K.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,K.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function wo({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Z),S=y.type||`default`,C=g?.[S]||uo[S];C===void 0&&(v?.(`003`,Ft.error003(S)),S=`default`,C=g?.default||uo.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=$(),k=Mn(y),A=Co({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Ga({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=qa();if(y.hidden)return null;let N=jn(y),P=fo(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Wa({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(Vn(t.nativeEvent)||m)){if(Lt.includes(t.key)&&T){let n=t.key===`Escape`;Wa({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(lo,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:lo[t.key],factor:t.shiftKey?4:1})}}},ee=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&($t(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,Y.jsx)(`div`,{className:Pt([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:V,onDoubleClick:B,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?ee:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Ii}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,Y.jsx)(Ya,{value:e,children:(0,Y.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var To=(0,K.memo)(wo),Eo=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Do(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Q(Eo,Z),a=bo(e.onlyRenderVisibleElements),o=So();return(0,Y.jsx)(`div`,{className:`react-flow__nodes`,style:Ia,children:a.map(a=>(0,Y.jsx)(To,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Do.displayName=`NodeRenderer`;var Oo=(0,K.memo)(Do);function ko(e){return Q((0,K.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Zn({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Z)}var Ao=({color:e=`none`,strokeWidth:t=1})=>(0,Y.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),jo=({color:e=`none`,strokeWidth:t=1})=>(0,Y.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),Mo={[Wt.Arrow]:Ao,[Wt.ArrowClosed]:jo};function No(e){let t=$();return(0,K.useMemo)(()=>Object.prototype.hasOwnProperty.call(Mo,e)?Mo[e]:(t.getState().onError?.(`009`,Ft.error009(e)),null),[e])}var Po=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=No(t);return c?(0,Y.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,Y.jsx)(c,{color:n,strokeWidth:o})}):null},Fo=({defaultColor:e,rfId:t})=>{let n=Q(e=>e.edges),r=Q(e=>e.defaultEdgeOptions),i=(0,K.useMemo)(()=>mr(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,Y.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,Y.jsx)(`defs`,{children:i.map(e=>(0,Y.jsx)(Po,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Fo.displayName=`MarkerDefinitions`;var Io=(0,K.memo)(Fo);function Lo({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,K.useState)({x:1,y:0,width:0,height:0}),p=Pt([`react-flow__edge-textwrapper`,l]),m=(0,K.useRef)(null);return(0,K.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,Y.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,Y.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,Y.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Lo.displayName=`EdgeText`;var Ro=(0,K.memo)(Lo);function zo({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`path`,{...u,d:e,fill:`none`,className:Pt([`react-flow__edge-path`,u.className])}),l?(0,Y.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&bn(t)&&bn(n)?(0,Y.jsx)(Ro,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Bo({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Vo({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top}){let[o,s]=Bo({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Bo({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Gn({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Ho(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Vo({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,Y.jsx)(zo,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Uo=Ho({isInternal:!1}),Wo=Ho({isInternal:!0});Uo.displayName=`SimpleBezierEdge`,Wo.displayName=`SimpleBezierEdgeInternal`;function Go(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=X.Bottom,targetPosition:m=X.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=sr({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,Y.jsx)(zo,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Ko=Go({isInternal:!1}),qo=Go({isInternal:!0});Ko.displayName=`SmoothStepEdge`,qo.displayName=`SmoothStepEdgeInternal`;function Jo(e){return(0,K.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,Y.jsx)(Ko,{...n,id:r,pathOptions:(0,K.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Yo=Jo({isInternal:!1}),Xo=Jo({isInternal:!0});Yo.displayName=`StepEdge`,Xo.displayName=`StepEdgeInternal`;function Zo(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=tr({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,Y.jsx)(zo,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Qo=Zo({isInternal:!1}),$o=Zo({isInternal:!0});Qo.displayName=`StraightEdge`,$o.displayName=`StraightEdgeInternal`;function es(e){return(0,K.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=X.Bottom,targetPosition:s=X.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Jn({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,Y.jsx)(zo,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var ts=es({isInternal:!1}),ns=es({isInternal:!0});ts.displayName=`BezierEdge`,ns.displayName=`BezierEdgeInternal`;var rs={default:ns,straight:$o,step:Xo,smoothstep:qo,simplebezier:Wo},is={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},as=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,os=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,ss=`react-flow__edgeupdater`;function cs({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,Y.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Pt([ss,`${ss}-${s}`]),cx:as(t,r,e),cy:os(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function ls({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=$(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Jr.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,Y.jsxs)(Y.Fragment,{children:[(e===!0||e===`source`)&&(0,Y.jsx)(cs,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,Y.jsx)(cs,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function us({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=Q(t=>t.edgeLookup.get(e)),b=Q(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||rs[x];S===void 0&&(_?.(`011`,Ft.error011(x)),x=`default`,S=h?.default||rs.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,K.useRef)(null),[D,O]=(0,K.useState)(!1),[k,A]=(0,K.useState)(!1),j=$(),{zIndex:M=y.zIndex,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R}=Q((0,K.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return is;let i=lr({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=Xn({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||is,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Z),z=(0,K.useMemo)(()=>y.markerStart?`url('#${pr(y.markerStart,m)}')`:void 0,[y.markerStart,m]),B=(0,K.useMemo)(()=>y.markerEnd?`url('#${pr(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||N===null||P===null||F===null||I===null)return null;let V=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},H=a?e=>{a(e,{...y})}:void 0,ee=o?e=>{o(e,{...y})}:void 0,te=s?e=>{s(e,{...y})}:void 0,U=c?e=>{c(e,{...y})}:void 0,W=l?e=>{l(e,{...y})}:void 0;return(0,Y.jsx)(`svg`,{style:{zIndex:M},children:(0,Y.jsxs)(`g`,{className:Pt([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:V,onDoubleClick:H,onContextMenu:ee,onMouseEnter:te,onMouseMove:U,onMouseLeave:W,onKeyDown:C?t=>{if(!v&&Lt.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${Li}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,Y.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:z,markerEnd:B,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,Y.jsx)(ls,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:N,sourceY:P,targetX:F,targetY:I,sourcePosition:L,targetPosition:R,setUpdateHover:O,setReconnecting:A})]})})}var ds=(0,K.memo)(us),fs=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ps({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Q(fs,Z),b=ko(t);return(0,Y.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,Y.jsx)(Io,{defaultColor:e,rfId:n}),b.map(e=>(0,Y.jsx)(ds,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}ps.displayName=`EdgeRenderer`;var ms=(0,K.memo)(ps),hs=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function gs({children:e}){let t=$(),n=(0,K.useRef)(null),[r]=(0,K.useState)(()=>t.getState().transform);return wa(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=hs(r)))};return r(),t.subscribe(r)},[t]),(0,Y.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:hs(r)},children:e})}function _s(e){let t=ja(),n=(0,K.useRef)(!1);(0,K.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var vs=e=>e.panZoom?.syncViewport;function ys(e){let t=Q(vs),n=$();return(0,K.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function bs(e){return e.connection.inProgress?{...e.connection,to:Cn(e.connection.to,e.transform)}:{...e.connection}}function xs(e){return e?t=>e(bs(t)):bs}function Ss(e){return Q(xs(e),Z)}var Cs=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ws({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Q(Cs,Z);return a&&i&&c?(0,Y.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,Y.jsx)(`g`,{className:Pt([`react-flow__connection`,Kt(s)]),children:(0,Y.jsx)(Ts,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var Ts=({style:e,type:t=Ut.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=Ss();if(!i)return;if(n)return(0,Y.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Kt(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Ut.Bezier:[m]=Jn(h);break;case Ut.SimpleBezier:[m]=Vo(h);break;case Ut.Step:[m]=sr({...h,borderRadius:0});break;case Ut.SmoothStep:[m]=sr(h);break;default:[m]=tr(h)}return(0,Y.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};Ts.displayName=`ConnectionLine`;var Es={};function Ds(e=Es){(0,K.useRef)(e),$(),(0,K.useEffect)(()=>{},[e])}function Os(){$(),(0,K.useRef)(!1),(0,K.useEffect)(()=>{},[])}function ks({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneScroll:U,onPaneContextMenu:W,paneClickDistance:ne,nodeClickDistance:re,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,onReconnect:le,onReconnectStart:G,onReconnectEnd:ue,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,viewport:_e,onViewportChange:ve,nodesDraggable:ye}){return Ds(e),Ds(t),Os(),_s(n),ys(_e),(0,Y.jsx)(vo,{onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneContextMenu:W,onPaneScroll:U,paneClickDistance:ne,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:de,noWheelClassName:fe,noPanClassName:pe,disableKeyboardA11y:me,onViewportChange:ve,isControlledViewport:!!_e,children:(0,Y.jsxs)(gs,{children:[(0,Y.jsx)(ms,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:le,onReconnectStart:G,onReconnectEnd:ue,onlyRenderVisibleElements:T,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,defaultMarkerColor:M,noPanClassName:pe,disableKeyboardA11y:me,rfId:ge}),(0,Y.jsx)(ws,{style:h,type:m,component:g,containerStyle:_}),(0,Y.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,Y.jsx)(Oo,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:re,onlyRenderVisibleElements:T,noPanClassName:pe,noDragClassName:de,disableKeyboardA11y:me,nodeExtent:he,rfId:ge,nodesDraggable:ye}),(0,Y.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}ks.displayName=`GraphView`;var As=(0,K.memo)(ks),js=xn(`React Flow`,`https://reactflow.dev/`),Ms=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??It;Mr(h,g,_);let{nodesInitialized:x}=Cr(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=On(Qt(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:It,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:zt.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Ht},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:js,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Rt,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Ns=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Ai((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await nn({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...Ms({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=Cr(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Mr(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=kr(e,n,r,i,a,o,l);d&&(br(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=dr(e,o.fromHandle,X.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Or(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(pa(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(ma(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>ha(e,!0)));return}i(ga(r,new Set([...e]),!0)),a(ga(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>ha(e,!0)));return}a(ga(n,new Set([...e]))),i(ga(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(ha(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(ha(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,ha(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,ha(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(Cr(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Ar({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Ht}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...Ms()})}},Object.is);function Ps({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,K.useState)(()=>Ns({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,Y.jsx)(Mi,{value:m,children:(0,Y.jsx)(Oa,{children:(0,Y.jsx)($a,{children:p})})})}function Fs({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,K.useContext)(ji)?(0,Y.jsx)(Y.Fragment,{children:e}):(0,Y.jsx)(Ps,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Is={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Ls({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onBeforeDelete:I,connectionMode:L,connectionLineType:R=Ut.Bezier,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,deleteKeyCode:H=`Backspace`,selectionKeyCode:ee=`Shift`,selectionOnDrag:te=!1,selectionMode:U=Vt.Full,panActivationKeyCode:W=`Space`,multiSelectionKeyCode:ne=kn()?`Meta`:`Control`,zoomActivationKeyCode:re=kn()?`Meta`:`Control`,snapToGrid:ie,snapGrid:ae,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:se,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:G,nodesFocusable:ue,nodeOrigin:de=Qi,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me=!0,defaultViewport:he=$i,minZoom:ge=.5,maxZoom:_e=2,translateExtent:ve=It,preventScrolling:ye=!0,nodeExtent:be,defaultMarkerColor:xe=`#b1b1b7`,zoomOnScroll:Se=!0,zoomOnPinch:Ce=!0,panOnScroll:we=!1,panOnScrollSpeed:Te=.5,panOnScrollMode:Ee=Bt.Free,zoomOnDoubleClick:De=!0,panOnDrag:Oe=!0,onPaneClick:ke,onPaneMouseEnter:Ae,onPaneMouseMove:je,onPaneMouseLeave:Me,onPaneScroll:Ne,onPaneContextMenu:Pe,paneClickDistance:Fe=1,nodeClickDistance:Ie=0,children:Le,onReconnect:q,onReconnectStart:Re,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge=10,onNodesChange:Ke,onEdgesChange:qe,noDragClassName:Je=`nodrag`,noWheelClassName:Ye=`nowheel`,noPanClassName:Xe=`nopan`,fitView:Ze,fitViewOptions:Qe,connectOnClick:$e,attributionPosition:et,proOptions:J,defaultEdgeOptions:tt,elevateNodesOnSelect:nt=!0,elevateEdgesOnSelect:rt=!1,disableKeyboardA11y:it=!1,autoPanOnConnect:at,autoPanOnNodeDrag:ot,autoPanOnSelection:st=!0,autoPanSpeed:ct,connectionRadius:lt,isValidConnection:ut,onError:dt,style:ft,id:pt,nodeDragThreshold:mt,connectionDragThreshold:ht,viewport:gt,onViewportChange:_t,width:vt,height:yt,colorMode:bt=`light`,debug:xt,onScroll:St,ariaLabelConfig:Ct,zIndexMode:wt=`basic`,...Tt},Et){let Dt=pt||`1`,Ot=aa(bt),kt=(0,K.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),St?.(e)},[St]);return(0,Y.jsx)(`div`,{"data-testid":`rf__wrapper`,...Tt,onScroll:kt,style:{...ft,...Is},ref:Et,className:Pt([`react-flow`,i,Ot]),id:pt,role:`application`,children:(0,Y.jsxs)(Fs,{nodes:e,edges:t,width:vt,height:yt,fitView:Ze,fitViewOptions:Qe,minZoom:ge,maxZoom:_e,nodeOrigin:de,nodeExtent:be,zIndexMode:wt,children:[(0,Y.jsx)(ra,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ce,autoPanOnNodeFocus:le,nodesConnectable:G,nodesFocusable:ue,edgesFocusable:fe,edgesReconnectable:pe,elementsSelectable:me,elevateNodesOnSelect:nt,elevateEdgesOnSelect:rt,minZoom:ge,maxZoom:_e,nodeExtent:be,onNodesChange:Ke,onEdgesChange:qe,snapToGrid:ie,snapGrid:ae,connectionMode:L,translateExtent:ve,connectOnClick:$e,defaultEdgeOptions:tt,fitView:Ze,fitViewOptions:Qe,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:Xe,nodeOrigin:de,rfId:Dt,autoPanOnConnect:at,autoPanOnNodeDrag:ot,autoPanSpeed:ct,onError:dt,connectionRadius:lt,isValidConnection:ut,selectNodesOnDrag:se,nodeDragThreshold:mt,connectionDragThreshold:ht,onBeforeDelete:I,debug:xt,ariaLabelConfig:Ct,zIndexMode:wt}),(0,Y.jsx)(As,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:V,selectionKeyCode:ee,selectionOnDrag:te,selectionMode:U,deleteKeyCode:H,multiSelectionKeyCode:ne,panActivationKeyCode:W,zoomActivationKeyCode:re,onlyRenderVisibleElements:oe,defaultViewport:he,translateExtent:ve,minZoom:ge,maxZoom:_e,preventScrolling:ye,zoomOnScroll:Se,zoomOnPinch:Ce,zoomOnDoubleClick:De,panOnScroll:we,panOnScrollSpeed:Te,panOnScrollMode:Ee,panOnDrag:Oe,autoPanOnSelection:st,onPaneClick:ke,onPaneMouseEnter:Ae,onPaneMouseMove:je,onPaneMouseLeave:Me,onPaneScroll:Ne,onPaneContextMenu:Pe,paneClickDistance:Fe,nodeClickDistance:Ie,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:F,onReconnect:q,onReconnectStart:Re,onReconnectEnd:ze,onEdgeContextMenu:Be,onEdgeDoubleClick:Ve,onEdgeMouseEnter:He,onEdgeMouseMove:Ue,onEdgeMouseLeave:We,reconnectRadius:Ge,defaultMarkerColor:xe,noDragClassName:Je,noWheelClassName:Ye,noPanClassName:Xe,rfId:Dt,disableKeyboardA11y:it,nodeExtent:be,viewport:gt,onViewportChange:_t,nodesDraggable:ce}),(0,Y.jsx)(Zi,{onSelectionChange:k}),Le,(0,Y.jsx)(Gi,{proOptions:J,position:et}),(0,Y.jsx)(Hi,{rfId:Dt,disableKeyboardA11y:it})]})})}var Rs=Ca(Ls);Ft.error014();function zs({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,Y.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Pt([`react-flow__background-pattern`,n,r])})}function Bs({radius:e,className:t}){return(0,Y.jsx)(`circle`,{cx:e,cy:e,r:e,className:Pt([`react-flow__background-pattern`,`dots`,t])})}var Vs;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Vs||={});var Hs={[Vs.Dots]:1,[Vs.Lines]:1,[Vs.Cross]:6},Us=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Ws({id:e,variant:t=Vs.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,K.useRef)(null),{transform:f,patternId:p}=Q(Us,Z),m=r||Hs[t],h=t===Vs.Dots,g=t===Vs.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,Y.jsxs)(`svg`,{className:Pt([`react-flow__background`,l]),style:{...c,...Ia,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,Y.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,Y.jsx)(Bs,{radius:y/2,className:u}):(0,Y.jsx)(zs,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,Y.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}Ws.displayName=`Background`;var Gs=(0,K.memo)(Ws);function Ks(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,Y.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function qs(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,Y.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Js(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,Y.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Ys(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,Y.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Xs(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,Y.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Zs({children:e,className:t,...n}){return(0,Y.jsx)(`button`,{type:`button`,className:Pt([`react-flow__controls-button`,t]),...n,children:e})}var Qs=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function $s({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=$(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Q(Qs,Z),{zoomIn:y,zoomOut:b,fitView:x}=ja();return(0,Y.jsxs)(Ui,{className:Pt([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Zs,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,Y.jsx)(Ks,{})}),(0,Y.jsx)(Zs,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,Y.jsx)(qs,{})})]}),n&&(0,Y.jsx)(Zs,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,Y.jsx)(Js,{})}),r&&(0,Y.jsx)(Zs,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,Y.jsx)(Xs,{}):(0,Y.jsx)(Ys,{})}),u]})}$s.displayName=`Controls`;var ec=(0,K.memo)($s);function tc({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,Y.jsx)(`rect`,{className:Pt([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var nc=(0,K.memo)(tc),rc=e=>e.nodes.map(e=>e.id),ic=e=>e instanceof Function?e:()=>e;function ac({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=nc,onClick:o}){let s=Q(rc,Z),c=ic(t),l=ic(e),u=ic(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,Y.jsx)(Y.Fragment,{children:s.map(e=>(0,Y.jsx)(sc,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function oc({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=jn(r);return{node:r,x:i,y:a,width:o,height:s}},Z);return!l||l.hidden||!Mn(l)?null:(0,Y.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var sc=(0,K.memo)(oc),cc=(0,K.memo)(ac),lc=200,uc=150,dc=e=>!e.hidden,fc=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?gn(Qt(e.nodeLookup,{filter:dc}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},pc=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,mc=(e,t)=>pc(e.viewBB,t.viewBB)&&pc(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,hc=`react-flow__minimap-desc`;function gc({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=$(),S=(0,K.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=Q(fc,mc),j=e?.width??lc,M=e?.height??uc,N=C.width/j,P=C.height/M,F=Math.max(N,P),I=F*j,L=F*M,R=b*F,z=C.x-(I-C.width)/2-R,B=C.y-(L-C.height)/2-R,V=I+R*2,H=L+R*2,ee=`${hc}-${T}`,te=(0,K.useRef)(0),U=(0,K.useRef)();te.current=F,(0,K.useEffect)(()=>{if(S.current&&E)return U.current=Yr({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>te.current}),()=>{U.current?.destroy()}},[E]),(0,K.useEffect)(()=>{U.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let W=p?e=>{let[t,n]=U.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ne=m?(0,K.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,re=_??A[`minimap.ariaLabel`];return(0,Y.jsx)(Ui,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*F:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Pt([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,Y.jsxs)(`svg`,{width:j,height:M,viewBox:`${z} ${B} ${V} ${H}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ee,ref:S,onClick:W,children:[re&&(0,Y.jsx)(`title`,{id:ee,children:re}),(0,Y.jsx)(cc,{onClick:ne,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,Y.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${B-R}h${V+R*2}v${H+R*2}h${-V-R*2}z - M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}gc.displayName=`MiniMap`;var _c=(0,K.memo)(gc),vc=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,yc={[ui.Line]:`right`,[ui.Handle]:`bottom-right`};function bc({nodeId:e,position:t,variant:n=ui.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=Xa(),y=typeof e==`string`?e:v,b=$(),x=(0,K.useRef)(null),S=n===ui.Handle,C=Q((0,K.useCallback)(vc(S&&p),[S,p]),Z),w=(0,K.useRef)(null),T=t??yc[n];return(0,K.useEffect)(()=>{if(!(!x.current||!y))return w.current||=xi({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Or([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Nn({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,Y.jsx)(`div`,{className:Pt([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,K.memo)(bc);var xc=40,Sc=340,Cc=56,wc={open:`var(--success, #2ecc71)`,filtered:`var(--warning, #f0b429)`,closed:`var(--text-dim, #4a5568)`};function Tc(e){return wc[e.toLowerCase()]??`var(--border, #252836)`}function Ec({host:e}){return(0,Y.jsxs)(`div`,{className:`topology-node-label`,children:[(0,Y.jsx)(`strong`,{className:`mono`,children:e.ip}),e.hostname&&(0,Y.jsx)(`span`,{className:`section-meta`,children:e.hostname}),e.mac&&(0,Y.jsxs)(`span`,{className:`section-meta mono`,children:[e.mac,e.vendor?` (${e.vendor})`:``]})]})}function Dc({port:e}){return(0,Y.jsxs)(`div`,{className:`topology-node-label`,children:[(0,Y.jsxs)(`strong`,{className:`mono`,children:[e.port,`/`,e.protocol]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[e.service??`unknown`,` · `,e.state]}),e.version&&(0,Y.jsx)(`span`,{className:`section-meta`,children:e.version})]})}function Oc(e,t){let n=[],r=[],i=40;for(let a of e){let e=`host:${a.ip}`;n.push({id:e,position:{x:xc,y:i},data:{label:(0,Y.jsx)(Ec,{host:a})},style:{background:`var(--bg-card2)`,border:`1px solid var(--accent)`,borderRadius:8,padding:4,width:260}});let o=t.filter(e=>e.host===a.ip).sort((e,t)=>e.port-t.port),s=i;for(let t of o){let i=`port:${a.ip}:${t.port}:${t.protocol}`;n.push({id:i,position:{x:Sc,y:s},data:{label:(0,Y.jsx)(Dc,{port:t})},style:{background:`var(--bg-card)`,border:`2px solid ${Tc(t.state)}`,borderRadius:8,padding:4,width:220}}),r.push({id:`${e}->${i}`,source:e,target:i,style:{stroke:`var(--border)`}}),s+=Cc}i+=Math.max(o.length,1)*Cc+40}return{nodes:n,edges:r}}function kc({session:e}){let t=e.topology,{nodes:n,edges:r}=(0,K.useMemo)(()=>Oc(t?.hosts??[],t?.ports??[]),[t]);return!t||t.hosts.length===0?(0,Y.jsx)(`div`,{className:`session-topology`,children:(0,Y.jsx)(`p`,{className:`empty-state`,children:`No topology data yet — run nmap from the Run page (or a step in this session) and export the result to the topology map.`})}):(0,Y.jsxs)(`div`,{className:`session-topology`,children:[(0,Y.jsxs)(`div`,{className:`session-topology-meta section-meta`,children:[t.hosts.length,` host`,t.hosts.length===1?``:`s`,` · `,t.ports.length,` port`,t.ports.length===1?``:`s`,t.updated_at?` · updated ${new Date(t.updated_at*1e3).toLocaleString()}`:``]}),(0,Y.jsx)(`div`,{className:`session-topology-canvas`,children:(0,Y.jsxs)(Rs,{nodes:n,edges:r,fitView:!0,proOptions:{hideAttribution:!0},children:[(0,Y.jsx)(Gs,{}),(0,Y.jsx)(ec,{showInteractive:!1}),(0,Y.jsx)(_c,{pannable:!0,zoomable:!0,bgColor:`var(--bg-card2)`,maskColor:`color-mix(in srgb, var(--bg) 65%, transparent)`,nodeColor:`var(--bg-card)`,nodeStrokeColor:`var(--border)`})]})})]})}function Ac(){return new Date().toISOString().slice(0,10)}function jc({isOpen:e,session:t,onClose:r,llmAvailable:i=!1}){let[a,o]=(0,K.useState)(`structured`),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(!0),[d,f]=(0,K.useState)(``),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null);if(!e)return null;function y(e,t){let n=new Blob([e],{type:`text/markdown`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t,i.click(),URL.revokeObjectURL(r)}async function x(){m(!0),g(null),v(null);try{let e=await G.generateSessionReport(t.session_id,{include_notes:s,include_event_log:l,download:!1});if(!e.success||!e.report){g(e.error??`Report generation failed.`);return}v(e.report)}catch(e){g(String(e))}finally{m(!1)}}async function w(){m(!0),g(null);try{let e=await G.generateSessionReport(t.session_id,{include_notes:s,include_event_log:l,download:!1});if(!e.success||!e.report){g(e.error??`Report generation failed.`);return}y(e.report,`report-structured-${Ac()}.md`)}catch(e){g(String(e))}finally{m(!1)}}function T(){let e=a===`ai`,n=e?`AI report — ${t.target}`:`Report — ${t.target}`;r(),W(n),(async()=>{try{let r;if(e){let e=await G.generateSessionAiReport(t.session_id,{include_notes:s,include_event_log:l,focus:d.trim()||void 0,download:!1,save_to_notes:!0});if(!e.success){ne(n,e.error??`AI report generation failed.`);return}r=e.saved_path}else{let e=await G.generateSessionReport(t.session_id,{include_notes:s,include_event_log:l,download:!1,save_to_notes:!0});if(!e.success){ne(n,e.error??`Report generation failed.`);return}r=e.saved_path}ie(n,r??`notes/reports/`)}catch(e){ne(n,String(e))}})()}function E(){let e=G.exportSessionNotesUrl(t.session_id);window.open(e,`_blank`)}function D(){let e=G.exportSessionHtmlReportUrl(t.session_id);window.open(e,`_blank`)}return(0,Y.jsxs)(V,{isOpen:!0,onClose:r,size:`lg`,title:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(j,{size:14}),(0,Y.jsx)(`span`,{className:`modal-name`,children:`Generate Report`}),(0,Y.jsx)(`span`,{className:`section-meta mono`,children:t.target})]}),children:[(0,Y.jsxs)(`div`,{className:`report-modal-tabs`,children:[(0,Y.jsxs)(`button`,{className:`report-modal-tab${a===`structured`?` report-modal-tab--active`:``}`,onClick:()=>{o(`structured`),v(null),g(null)},children:[(0,Y.jsx)(j,{size:12}),` Structured`]}),(0,Y.jsxs)(`button`,{className:`report-modal-tab${a===`ai`?` report-modal-tab--active`:``}`,onClick:()=>{o(`ai`),v(null),g(null)},disabled:!i,title:i?void 0:`No LLM configured. Start the server with --ai or --ai-small to enable AI-assisted reports.`,children:[(0,Y.jsx)(b,{size:12}),` AI-Assisted`]})]}),(0,Y.jsxs)(`div`,{className:`report-modal-body`,children:[a===`ai`&&(0,Y.jsxs)(`div`,{className:`report-modal-note section-meta`,children:[`Generates a structured report with an AI executive summary. Saved automatically to `,(0,Y.jsx)(`span`,{className:`mono`,children:`notes/reports/`}),` when done. Requires a configured LLM provider.`]}),(0,Y.jsxs)(`div`,{className:`report-modal-options`,children:[(0,Y.jsxs)(`label`,{className:`report-option-row`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked)}),(0,Y.jsx)(`span`,{children:`Include session notes`})]}),(0,Y.jsxs)(`label`,{className:`report-option-row`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,Y.jsx)(`span`,{children:`Include activity timeline`})]}),a===`ai`&&(0,Y.jsxs)(`div`,{className:`report-option-focus`,children:[(0,Y.jsx)(`label`,{className:`section-meta`,children:`Focus / context (optional)`}),(0,Y.jsx)(`input`,{name:`report-focus`,className:`findings-form-input`,placeholder:`e.g. focus on RCE and privilege escalation findings`,value:d,onChange:e=>f(e.target.value)})]})]}),h&&(0,Y.jsx)(`div`,{className:`report-modal-error`,children:h}),(0,Y.jsxs)(`div`,{className:`report-modal-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn session-action-btn--primary`,onClick:T,children:a===`ai`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(b,{size:12}),` Generate & Save`]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(j,{size:12}),` Generate & Save`]})}),a===`structured`&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:x,disabled:p,children:p?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(n,{size:12,className:`spin`}),` Generating…`]}):`Preview`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:w,disabled:p,children:[(0,Y.jsx)(C,{size:12}),` Download .md`]})]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:D,title:`Download a standalone HTML report for this session`,children:[(0,Y.jsx)(C,{size:12}),` Download HTML Report`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:E,title:`Download all session notes as a ZIP archive`,children:[(0,Y.jsx)(S,{size:12}),` Export Notes (.zip)`]})]}),_&&(0,Y.jsx)(`div`,{className:`report-preview`,children:(0,Y.jsx)(`pre`,{className:`report-preview-content`,children:_})})]})]})}function Mc({show:e,templateName:t,templateError:n,setTemplateName:r,onClose:i,onSave:a}){return(0,Y.jsx)(V,{isOpen:e,onClose:i,title:(0,Y.jsx)(`span`,{className:`modal-name`,children:`Create Template`}),children:(0,Y.jsxs)(`div`,{className:`session-start-form`,children:[(0,Y.jsx)(`label`,{className:`mono`,children:`Template Name *`}),(0,Y.jsx)(`input`,{className:`search-input mono`,name:`template-name`,placeholder:`e.g. SMB Enumeration Pack`,value:t,onChange:e=>r(e.target.value)}),n&&(0,Y.jsx)(`div`,{className:`run-error`,children:n}),(0,Y.jsxs)(`div`,{className:`session-start-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:i,children:`Cancel`}),(0,Y.jsx)(`button`,{className:`session-run-btn`,onClick:a,children:`Save Template`})]})]})})}function Nc({sessionId:e,tools:t,onBack:r,onToolRun:i,llmAvailable:a=!1}){let{pushToast:o}=te(),[s,l]=(0,K.useState)(null),[d,f]=(0,K.useState)(!0),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(``),[y,S]=(0,K.useState)({}),[w,T]=(0,K.useState)({}),[E,O]=(0,K.useState)(null),[k,A]=(0,K.useState)({}),[M,N]=(0,K.useState)({}),[P,F]=(0,K.useState)({}),[I,R]=(0,K.useState)(0),[z,B]=(0,K.useState)(!1),[V,H]=(0,K.useState)(``),[ee,U]=(0,K.useState)(null),[re,se]=(0,K.useState)(!1),[ue,de]=(0,K.useState)(``),[fe,pe]=(0,K.useState)(!1),[me,he]=(0,K.useState)(!1),[ge,_e]=(0,K.useState)(!1),[ve,Se]=(0,K.useState)(!1),[we,Oe]=(0,K.useState)(!1),[ke,Ae]=(0,K.useState)(!1),[je,Me]=(0,K.useState)({}),[Ne,Pe]=(0,K.useState)([]),[Fe,Ie]=(0,K.useState)(!1),[Le,q]=(0,K.useState)(`workflow`),[Re,ze]=(0,K.useState)(!1),[Be,Ve]=(0,K.useState)(void 0),He=(0,K.useMemo)(()=>Object.fromEntries(t.map(e=>[e.name,e])),[t]),Ue=(0,K.useRef)(!1),We=s?Ce(s):[],Ge=`nyxstrike:chain-prefs:${e}`,Ke=(0,K.useCallback)(e=>{let t=(e.startsWith(`notes/`)?e.slice(6):e).replace(/\.md$/i,``),n=t.indexOf(`/`),r=n===-1?``:t.slice(0,n),i=n===-1?t:t.slice(n+1);Ve(`${r}/${i}`),q(`notes`)},[]);(0,K.useEffect)(()=>oe(Ke),[Ke]),(0,K.useEffect)(()=>{try{let e=localStorage.getItem(Ge);if(!e){Pe([]);return}let t=JSON.parse(e);Pe(Array.isArray(t)?t.filter(e=>!!e&&typeof e==`object`):[])}catch{Pe([])}},[Ge]),(0,K.useEffect)(()=>{try{localStorage.setItem(Ge,JSON.stringify(Ne))}catch{}},[Ne,Ge]);async function qe(){f(!0);try{let t=await G.session(e);l(t.session),g(t.session.target);let n=t.session.metadata??{},r=n.tool_status??{},i=n.step_results??{},a=n.step_artifacts??{},o=typeof n.running_step_key==`string`?n.running_step_key:null,s={},c={};for(let[e,t]of Object.entries(r))(t===`success`||t===`failed`)&&(s[e]=t);for(let[e,t]of Object.entries(i)){let n=De(t);if(n.length===0)continue;let r=e=>({success:!!e.success,return_code:Number(e.return_code??0),execution_time:Number(e.execution_time??0),timed_out:!1,partial_results:!1,stdout:Ee(e,`stdout`),stderr:Ee(e,`stderr`),timestamp:String(e.timestamp??new Date().toISOString())});c[e]={result:r(n[0]),priorResults:n.slice(1).map(r)}}F(s),A(c),N(a);try{let t=await G.processList(),n=Object.values(t.active_processes??{});o&&n.some(t=>t.session_id===e)&&o?(s[o]=`running`,O(o),F({...s})):O(null)}catch{}m(null)}catch(e){m(String(e))}finally{f(!1)}}(0,K.useEffect)(()=>{qe()},[e]),(0,K.useEffect)(()=>{if(!E)return;let t=e=>{O(null),F(t=>{if(t[e]!==`running`)return t;let n={...t};return delete n[e],n})},n=n=>{Ue.current||Object.values(n).some(t=>t.session_id===e)||t(E)},r=null;try{r=G.processesStream(),r.onmessage=e=>{try{let t=JSON.parse(e.data);t.processes&&typeof t.processes==`object`&&n(t.processes)}catch{}},r.onerror=()=>{r?.close(),r=null}}catch{}return()=>{r?.close()}},[E,e]);function Je(){if(!s)return;let e=`AI Analysis — ${s.target}`;Oe(!0),W(e),(async()=>{try{let t=await G.analyzeSession(s.session_id);if(!t.success){ne(e,t.error??`Analysis failed.`);return}ie(e,t.saved_path??`notes/analysis/`),await qe()}catch(t){ne(e,String(t))}finally{Oe(!1)}})()}function Ye(){if(!s)return;let e=`AI Follow-up — ${s.target}`;Ae(!0),W(e),(async()=>{try{let t=await G.followUpSession(s.session_id);if(!t.success){ne(e,t.error??`Follow-up failed.`);return}ie(e,t.saved_path??`notes/follow-up/`)}catch(t){ne(e,String(t))}finally{Ae(!1)}})()}async function Xe(){if(s){_e(!0);try{await G.updateSession(s.session_id,{status:`completed`}),r()}catch(e){o(`error`,`Complete failed: ${String(e)}`)}finally{_e(!1),pe(!1)}}}async function Ze(){if(s){Se(!0);try{await G.deleteSession(s.session_id),r()}catch(e){o(`error`,`Delete failed: ${String(e)}`)}finally{Se(!1),he(!1)}}}function Qe(){if(s)try{let e=s.metadata??{},t=e.tool_status&&typeof e.tool_status==`object`?e.tool_status:{},n=e.step_results&&typeof e.step_results==`object`?e.step_results:{},r=We.map((e,r)=>{let i=`${s.session_id}:${r}`,a=k[i]?.result,o=k[i]?.priorResults??[],c=De(n[i]),l=c[0]??null,u=e=>({success:e.success,return_code:e.return_code,execution_time:e.execution_time,timestamp:e.timestamp,stdout:Ee(e,`stdout`),stderr:Ee(e,`stderr`),timed_out:e.timed_out,partial_results:e.partial_results}),d=e=>({success:e.success,return_code:e.return_code,execution_time:e.execution_time,timestamp:e.timestamp??``,stdout:Ee(e,`stdout`),stderr:Ee(e,`stderr`),timed_out:!1,partial_results:!1}),f=a?u(a):l?d(l):null,p=o.length>0?o.map(u):c.slice(1).map(d);return{step_index:r,step_key:i,tool:e.tool,parameters:e.parameters??{},status:P[i]??t[i]??`idle`,result:f,prior_results:p}}),i={session_id:s.session_id,target:s.target,status:s.status??`active`,exported_at:new Date().toISOString(),logs:r},a=JSON.stringify(i,null,2),c=new Blob([a],{type:`application/json`}),l=URL.createObjectURL(c),u=document.createElement(`a`);u.href=l,u.download=`${s.session_id}_tool_logs.json`,u.click(),URL.revokeObjectURL(l),o(`success`,`Tool logs exported`)}catch(e){o(`error`,`Export failed: ${String(e)}`)}}async function $e(){if(!s)return;let e=V.trim();if(!e){U(`Template name is required`);return}try{let t=Ce(s);if(t.length===0){U(`Session has no tools to save as template`);return}try{await G.createSessionTemplate({name:e,workflow_steps:t,source_session_id:s.session_id})}catch{await G.createSessionTemplateCompat({name:e,workflow_steps:t,source_session_id:s.session_id})}U(null),H(``),B(!1),o(`success`,`Template created: ${e}`)}catch(e){U(String(e))}}let et=We[I]??null,J=et&&s?`${s.session_id}:${I}`:null,tt=J?k[J]:void 0,rt=et?He[et.tool]:null,it=!!(J&&y[J]),at=(0,K.useMemo)(()=>!s||!et||!rt?{}:be(rt,et,h.trim()||s.target),[s,et,rt,h]),st=J?y[J]??{}:{},ct=!s||!rt||!J||!et||!it?null:ot({steps:We,selectedStepIndex:I,selectedTool:rt,sessionId:s.session_id,target:h.trim()||s.target,stepResults:k,stepArtifacts:M,currentValues:st,baselineValues:at,preferences:Ne});(0,K.useEffect)(()=>{if(!ct||!J){Me({});return}Me(e=>{let t={};for(let n of ct.fields)t[n.param]=e[n.param]??!0;return t})},[ct,J]);function lt(){if(!J||!ct)return;let e=ct.fields.filter(e=>je[e.param]!==!1);if(e.length===0){o(`info`,`No chain fields selected`);return}let t=Object.fromEntries(e.map(e=>[e.param,e.value]));S(e=>({...e,[J]:{...e[J]??{},...t}})),o(`success`,`Applied ${e.length} chained field${e.length===1?``:`s`} from ${ct.sourceTool}`)}function ut(e,t){Me(n=>({...n,[e]:t}))}function ft(e){if(!rt||!ct)return;let t=ct.fields.find(t=>t.param===e);if(!t)return;let n={targetTool:rt.name,param:e,sourceTool:t.sourceTool,sourceArtifact:t.sourceArtifact};Pe(e=>{let t=e.filter(e=>!(e.targetTool===n.targetTool&&e.param===n.param));return t.push(n),t}),o(`success`,`Pinned mapping ${rt.name}.${e} -> ${t.sourceTool}/${t.sourceArtifact}`)}function pt(e){Pe(t=>t.filter((t,n)=>n!==e)),o(`success`,`Pinned mapping removed`)}function mt(){Pe([]),o(`success`,`Cleared all pinned mappings`)}function ht(n){g(n),s&&S(r=>{let i=!1,a={...r};for(let o=0;o{!s||!et||!J||!rt||(S(t=>t[J]?t:{...t,[J]:be(rt,et,h.trim()||s.target,e)}),T(e=>({...e,[J]:e[J]??!1})))},[s,et,J,rt,h]);async function gt(n,r){if(!s)return;let a=s,o=`${a.session_id}:${r}`,c=Te(n.tool,t);if(!c){A(e=>({...e,[o]:{error:`Tool ${n.tool} could not be mapped to registry`}})),F(e=>({...e,[o]:`failed`}));return}let l=h.trim(),{payload:u,missing:d}=xe(c,y[o]??be(c,n,l||a.target,e));if(d.length>0){A(e=>({...e,[o]:{error:`Missing required: ${d.join(`, `)}`}})),F(e=>({...e,[o]:`failed`}));return}let f=We.map((e,t)=>t===r?{...e,parameters:u}:e);try{await G.updateSession(a.session_id,{target:l,workflow_steps:f})}catch{}let p=a.metadata??{};try{await G.updateSession(a.session_id,{metadata:{...p,running_step_key:o,running_tool:n.tool,running_started_at:new Date().toISOString()}})}catch{}O(o),F(e=>({...e,[o]:`running`})),A(e=>{let t=e[o],n=t?.result,r=t?.priorResults??[],i=n?[n,...r]:r;return{...e,[o]:{priorResults:i}}}),Ue.current=!0;try{let e=await G.runTool(c.endpoint,u),t={...e,stdout:Ee(e,`stdout`),stderr:Ee(e,`stderr`)};A(e=>({...e,[o]:{result:t,priorResults:e[o]?.priorResults??[]}})),F(e=>({...e,[o]:t.success?`success`:`failed`})),i&&i(n.tool,u,t);let r=a.metadata??{},s=r.tool_status&&typeof r.tool_status==`object`?r.tool_status:{},d=r.step_results&&typeof r.step_results==`object`?r.step_results:{},f=r.step_artifacts&&typeof r.step_artifacts==`object`?r.step_artifacts:{},p=t.success?nt({step:{...n,parameters:u},result:t,target:l||a.target}):void 0,m=De(d[o]),h={success:t.success,return_code:t.return_code,execution_time:t.execution_time,timestamp:t.timestamp,stdout:t.stdout,stderr:t.stderr};await G.updateSession(a.session_id,{metadata:{...r,tool_status:{...s,[n.tool]:t.success?`success`:`failed`,[o]:t.success?`success`:`failed`},step_results:{...d,[o]:[h,...m]},step_artifacts:p?{...f,[o]:p}:f,last_run:{step_key:o,tool:n.tool,success:t.success,return_code:t.return_code,execution_time:t.execution_time,timestamp:t.timestamp},running_step_key:null,running_tool:null,running_started_at:null}}),p&&N(e=>({...e,[o]:p})),await qe()}catch(e){A(t=>({...t,[o]:{error:String(e),priorResults:t[o]?.priorResults??[]}})),F(e=>({...e,[o]:`failed`}));try{let e=a.metadata??{};await G.updateSession(a.session_id,{metadata:{...e,running_step_key:null,running_tool:null,running_started_at:null}})}catch{}}finally{Ue.current=!1,O(null)}}async function _t(){let e=E;if(e)try{let t=(await G.processList()).active_processes??{},n=Object.values(t).filter(e=>e&&typeof e.command==`string`&&e.command.trim()!==``).map(e=>e.pid).filter(e=>typeof e==`number`);if(n.length===0){o(`error`,`No active process found to terminate`),O(null);return}let r=Math.max(...n);if(await G.terminateProcess(r),o(`success`,`Stopped running process ${r}`),O(null),F(t=>({...t,[e]:`failed`})),A(t=>({...t,[e]:{...t[e]??{},error:`Process ${r} terminated by user`}})),s)try{let e=s.metadata??{};await G.updateSession(s.session_id,{metadata:{...e,running_step_key:null,running_tool:null,running_started_at:null}})}catch{}}catch(e){o(`error`,`Stop failed: ${String(e)}`)}}async function vt(e){if(!s)return;let t=[...We,{tool:e.name,parameters:{}}];try{await G.updateSession(s.session_id,{workflow_steps:t}),se(!1),de(``),await qe(),R(Math.max(0,t.length-1))}catch(e){o(`error`,`Add tool failed: ${String(e)}`)}}async function yt(){if(!s||!J||!tt?.result)return;let e=tt.result,t=null;try{t=e.stdout?JSON.parse(e.stdout):null}catch{t=null}let n=(t&&typeof t==`object`?t:null)?.attack_chain,r=n&&typeof n==`object`?n.steps:null,i=Array.isArray(r)?r.filter(e=>!!e&&typeof e==`object`&&typeof e.tool==`string`):[];if(i.length===0){o(`error`,`No attack-chain steps found in result output`);return}let a=new Set(We.map(e=>`${e.tool}::${JSON.stringify(e.parameters??{})}`)),c=i.filter(e=>{let t=`${e.tool}::${JSON.stringify(e.parameters??{})}`;return a.has(t)?!1:(a.add(t),!0)});if(c.length===0){o(`error`,`All attack-chain tools are already present in manual execution`);return}let l=[...We,...c];try{await G.updateSession(s.session_id,{workflow_steps:l}),await qe(),R(Math.max(0,l.length-c.length)),o(`success`,`Added ${c.length} tool(s) from attack chain`)}catch(e){o(`error`,`Apply attack chain failed: ${String(e)}`)}}async function bt(e){if(!s)return;let t=We.filter((t,n)=>n!==e);try{await G.updateSession(s.session_id,{workflow_steps:t}),await qe(),R(n=>t.length===0?0:n>e?n-1:Math.min(n,t.length-1))}catch(e){o(`error`,`Remove tool failed: ${String(e)}`)}}async function xt(e,t,n){if(s)try{let r=await G.exportTopology(e,t,n,s.session_id);if(!r.success){o(`error`,r.error||`Topology export failed`);return}if(!r.topology){o(`info`,r.message||`No hosts/ports found in output`);return}o(`success`,`Topology map updated`),await qe()}catch(e){o(`error`,`Topology export failed: ${String(e)}`)}}if(d)return(0,Y.jsxs)(`div`,{className:`loading-state`,children:[(0,Y.jsx)(n,{size:20,className:`spin`,color:`var(--green)`}),(0,Y.jsx)(`p`,{children:`Loading session…`})]});if(p||!s)return(0,Y.jsx)(`div`,{className:`error-banner`,children:p??`Session not found`});let Ct=(s.status??`active`)===`completed`,wt=t.filter(e=>{if(!ue.trim())return!0;let t=ue.toLowerCase();return e.name.toLowerCase().includes(t)||e.desc.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)}).slice(0,12);return(0,Y.jsxs)(`div`,{className:`page-content`,children:[(0,Y.jsxs)(`section`,{className:`section`,children:[(0,Y.jsxs)(`div`,{className:`section-header`,children:[(0,Y.jsx)(`h3`,{children:`Session Detail`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:r,children:[(0,Y.jsx)(x,{size:12}),` Back`]})]}),(0,Y.jsxs)(`div`,{className:`session-detail-meta-row`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(D,{size:12}),` `,(0,Y.jsx)(`span`,{className:`mono`,children:s.target})]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(_,{size:12}),` `,s.total_findings,` findings`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(n,{size:12}),` `,s.iterations,` iterations`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(v,{size:12}),` `,ce(s.updated_at)]}),(0,Y.jsx)(`span`,{className:`session-status session-status--${s.status??`active`}`,children:s.status??`active`}),s.risk_level&&s.risk_level!==`unknown`&&(0,Y.jsx)(`span`,{className:`session-risk session-risk--${s.risk_level.toLowerCase()}`,title:`Risk level: ${s.risk_level.toLowerCase()}`,children:s.risk_level.toLowerCase()})]}),(0,Y.jsxs)(`div`,{className:`session-detail-actions`,children:[(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>ze(!0),children:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(j,{size:12}),` Generate Report`]})}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Je,disabled:we||!a,title:a?void 0:`No LLM configured — start server with -ai or -ai-small`,children:[(0,Y.jsx)(b,{size:12}),` `,we?`Analysing…`:`Analyze Session`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Ye,disabled:ke||!a,title:a?void 0:`No LLM configured — start server with -ai or -ai-small`,children:[(0,Y.jsx)(b,{size:12}),` `,ke?`Planning…`:`AI Follow-up`]}),(0,Y.jsx)(`button`,{className:`session-action-btn`,onClick:()=>B(!0),children:`Create Template`}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:Qe,children:[(0,Y.jsx)(C,{size:12}),` Export Tool Logs`]}),(0,Y.jsxs)(`button`,{className:`session-action-btn`,onClick:()=>Ie(!0),children:[`Manage Chain Pins (`,Ne.length,`)`]}),s.status!==`completed`&&(0,Y.jsx)(`button`,{className:`session-complete-btn`,onClick:()=>pe(!0),children:`Complete Session`}),(0,Y.jsx)(`button`,{className:`session-delete-btn`,onClick:()=>he(!0),children:`Delete Session`})]}),(0,Y.jsx)(Mc,{show:z,templateName:V,templateError:ee,setTemplateName:H,onClose:()=>B(!1),onSave:$e}),(0,Y.jsx)(ae,{isOpen:fe,title:`Complete Session`,description:`Mark this session as completed? It will move to Completed Sessions.`,impactItems:[`Session ID: ${s.session_id}`,`Session will become read-only`],confirmLabel:`Yes, complete session`,cancelLabel:`Keep active`,confirmVariant:`danger`,isConfirming:ge,onConfirm:Xe,onClose:()=>pe(!1)}),(0,Y.jsx)(ae,{isOpen:me,title:`Delete Session`,description:`Delete this session permanently? This action cannot be undone.`,impactItems:[`Session ID: ${s.session_id}`,`All workflow state and run metadata will be removed`],confirmLabel:`Yes, delete session`,cancelLabel:`Keep session`,confirmVariant:`danger`,isConfirming:ve,onConfirm:Ze,onClose:()=>he(!1)}),(0,Y.jsx)(le,{isOpen:Fe,title:`Pinned Chain Mappings`,description:`Review, remove, or clear your pinned chain mappings for this session.`,primaryLabel:`Clear All`,secondaryLabel:`Close`,primaryVariant:`danger`,onPrimary:Ne.length>0?mt:void 0,onSecondary:()=>Ie(!1),onClose:()=>Ie(!1),children:Ne.length===0?(0,Y.jsx)(`p`,{className:`section-meta`,children:`No pinned mappings yet.`}):(0,Y.jsx)(`div`,{className:`session-chain-pref-list`,children:Ne.map((e,t)=>(0,Y.jsxs)(`div`,{className:`session-chain-pref-row`,children:[(0,Y.jsxs)(`div`,{className:`session-chain-pref-text`,children:[(0,Y.jsxs)(`span`,{className:`mono`,children:[e.targetTool,`.`,e.param]}),(0,Y.jsxs)(`span`,{className:`section-meta`,children:[e.sourceTool??`any tool`,` / `,e.sourceArtifact]})]}),(0,Y.jsx)(`button`,{className:`session-chain-pin-btn`,onClick:()=>pt(t),children:`Unpin`})]},`${e.targetTool}:${e.param}:${e.sourceArtifact}:${t}`))})})]}),(0,Y.jsxs)(`div`,{className:`session-detail-tabs`,children:[(0,Y.jsx)(`button`,{className:`session-tab-btn${Le===`workflow`?` session-tab-btn--active`:``}`,onClick:()=>q(`workflow`),children:`Workflow`}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`findings`?` session-tab-btn--active`:``}`,onClick:()=>q(`findings`),children:[(0,Y.jsx)(L,{size:12}),` Findings (`,s.findings?.length??s.total_findings,`)`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`notes`?` session-tab-btn--active`:``}`,onClick:()=>q(`notes`),children:[(0,Y.jsx)(j,{size:12}),` Notes`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`timeline`?` session-tab-btn--active`:``}`,onClick:()=>q(`timeline`),children:[(0,Y.jsx)(u,{size:12}),` Timeline`]}),(0,Y.jsxs)(`button`,{className:`session-tab-btn${Le===`topology`?` session-tab-btn--active`:``}`,onClick:()=>q(`topology`),children:[(0,Y.jsx)(c,{size:12}),` Topology`]})]}),Le===`notes`&&(0,Y.jsx)(St,{sessionId:s.session_id,initialOpenPath:Be,onInitialOpenConsumed:()=>Ve(void 0)}),Le===`findings`&&(0,Y.jsx)(kt,{session:s,onUpdate:qe}),Le===`timeline`&&(0,Y.jsx)(Nt,{session:s}),Le===`topology`&&(0,Y.jsx)(kc,{session:s}),(0,Y.jsx)(jc,{isOpen:Re,session:s,onClose:()=>ze(!1),llmAvailable:a}),Le===`workflow`&&(0,Y.jsx)(dt,{isCompleted:Ct,sessionId:s.session_id,steps:We,selectedStep:et,selectedStepIndex:I,setSelectedStepIndex:R,selectedStepKey:J,selectedTool:rt,stepState:P,runningStepKey:E,targetValue:h,setTargetValue:ht,stepFieldValues:y,setStepFieldValues:S,showOptionalByStep:w,setShowOptionalByStep:T,selectedResult:tt,chainSuggestion:ct,selectedChainFields:je,onSetChainFieldSelected:ut,onPinChainField:ft,onApplyChainSuggestion:lt,onRunStep:gt,onStopRunningStep:_t,onApplyAttackChainFromResult:yt,onRemoveTool:bt,showAddTool:re,setShowAddTool:se,addToolSearch:ue,setAddToolSearch:de,addCandidates:wt,onAddTool:vt,onExportTopology:xt})]})}export{Nc as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/SessionDetailPage-uRk5Wvzd.css b/frontend/dashboard/assets/SessionDetailPage-uRk5Wvzd.css deleted file mode 100644 index 38cc3d2dd..000000000 --- a/frontend/dashboard/assets/SessionDetailPage-uRk5Wvzd.css +++ /dev/null @@ -1 +0,0 @@ -.ui-loading-state{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:80px 0;font-size:13px;display:flex}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.session-topology{flex-direction:column;gap:8px;display:flex}.session-topology-canvas{border:1px solid var(--border);background:var(--bg-main,var(--bg-card));border-radius:8px;height:600px;overflow:hidden}.session-topology-canvas .react-flow__minimap{border:1px solid var(--border);border-radius:6px;overflow:hidden}.topology-node-label{flex-direction:column;gap:2px;padding:2px 4px;display:flex}.topology-node-label strong{color:var(--text-h);font-size:13px} diff --git a/frontend/dashboard/assets/SessionsPage-CkAlaXnC.js b/frontend/dashboard/assets/SessionsPage-CkAlaXnC.js deleted file mode 100644 index f35fb460c..000000000 --- a/frontend/dashboard/assets/SessionsPage-CkAlaXnC.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,$t as n,A as r,Dt as i,F as a,P as o,Pt as s,Qt as c,Tt as l,f as u,nt as d,u as f}from"./vendor-lucide-tZ8AzO6l.js";import{r as p}from"./vendor-markdown-CZSHC-G5.js";import{t as m}from"./Sheet-CPyVkJ3G.js";import{b as h,n as g,s as _,v,x as y}from"./index-DoDmaCqd.js";import{t as b}from"./BrowserPage-B37UOYE2.js";import{t as x}from"./KpiStrip-Cnf9m6Sg.js";/* empty css */var S=e(n(),1);function ee({enabled:e,initialStatus:t=`streaming`,onData:n,onError:r,onLoadingDone:i}){let[a,o]=(0,S.useState)(t),s=(0,S.useRef)(null),c=(0,S.useRef)(null),l=(0,S.useRef)(null),u=(0,S.useRef)(0);return(0,S.useEffect)(()=>{if(!e)return;let t=!1;function a(){s.current&&s.current.close(),s.current=null}function d(){c.current&&=(clearInterval(c.current),null)}function f(){l.current&&=(clearTimeout(l.current),null)}function p(){y.sessions().then(e=>{n(e)}).catch(e=>r(String(e)))}function m(){d(),o(`polling`),p(),c.current=setInterval(p,5e3)}function h(e){f();let n=u.current+1;u.current=n;let r=Math.min(3e4,1e3*2**Math.max(0,n-1));l.current=setTimeout(()=>{t||e()},r)}function g(){a();try{let e=y.sessionsStream();s.current=e,e.onopen=()=>{u.current=0,f(),d(),o(`streaming`)},e.onmessage=e=>{try{let t=JSON.parse(e.data);t?.success&&(n(t),i())}catch{r(`Session stream parse error`)}},e.onerror=()=>{t||(o(`error`),a(),m(),h(g))}}catch{if(t)return;o(`error`),m(),h(g)}}return g(),()=>{t=!0,a(),d(),f()}},[e]),{streamStatus:a}}var te=[{key:`intelligence`,title:`Intelligent Attack-Chain`,description:`Automated target profiling and attack chain generation.`,details:`Best for quick, AI-driven assessments.`,modalDescription:`Leverages AI to analyze the target and generate a customized attack chain.`,tools:[],placeholder:`Domain or org target (target.tld)`},{key:`manual`,title:`Manual Session`,description:`Start an empty session and add tools yourself.`,details:`Best when you want full manual control.`,modalDescription:`Creates a clean session with only target context. No predefined workflow is added, so you can build your own tool chain step-by-step from the session detail page.`,tools:[],placeholder:`Target URL/domain/IP (example.com)`},{key:`from_template`,title:`From Template`,description:`Start from a saved tool template.`,details:`Reuse your recurring workflows.`,modalDescription:`Creates a session from an existing template. You only set target and choose the saved template; all template tools are copied into the new session.`,tools:[],placeholder:`Target URL/domain/IP (example.com)`},{key:`ai_recon`,title:`AI Recon`,description:`Recon session pre-loaded with the recon pipeline, ready to run.`,details:`Builds a session with nmap, whois, dig, http-headers, and whatweb.`,modalDescription:`Pre-loaded with the recon pipeline: nmap, whois, dig, http-headers, and whatweb — configured for your target.`,tools:[`nmap`,`whois`,`dig`,`http-headers`,`whatweb`],placeholder:`Domain or IP (example.com / 10.0.0.1)`},{key:`ai_profiling`,title:`AI Profiling`,description:`Target-aware profiling pipeline that adapts tools to the target type.`,details:`Adds subfinder and theharvester for domains; skips DNS tools for bare IPs.`,modalDescription:`Classifies your target (IP, URL, or domain) and builds an adaptive pipeline: nmap, whois, whatweb, http-headers, dig, subfinder, theharvester, gobuster, nikto, and AI analysis.`,tools:[`nmap`,`whois`,`whatweb`,`http-headers`,`dig`,`subfinder`,`theharvester`,`gobuster`,`nikto`],placeholder:`Domain, URL, or IP (example.com / 10.0.0.1)`},{key:`ai_vuln`,title:`AI Vuln Scan`,description:`Vulnerability scanning pipeline: nuclei, sqlmap, dalfox, and nikto.`,details:`Checks for CVEs, SQL injection, XSS, and common web misconfigurations.`,modalDescription:`Runs a focused vulnerability scan: nuclei (CVE templates), sqlmap (SQLi), dalfox (XSS), and nikto (misconfiguration) — followed by AI analysis of all findings.`,tools:[`nuclei`,`sqlmap`,`dalfox`,`nikto`],placeholder:`Target URL or domain (https://example.com)`},{key:`ai_osint`,title:`AI OSINT`,description:`Passive OSINT pipeline: subfinder, theharvester, gau, and waybackurls.`,details:`Domain targets only — no active scanning, no bare IPs.`,modalDescription:`Purely passive intelligence gathering: subfinder (subdomains), theharvester (emails & hosts), gau (archived URLs), and waybackurls — followed by AI attack-surface analysis.`,tools:[`subfinder`,`theharvester`,`gau`,`waybackurls`],placeholder:`Domain only (example.com)`}],C=p();function ne({startMode:e,templates:t,selectedTemplateId:n,setSelectedTemplateId:i,intelligencePrecision:a,setIntelligencePrecision:o,modalTarget:s,setModalTarget:c,modalNote:l,setModalNote:d,modalError:f,creatingSession:p,submitLabel:h,onClose:g,onSubmit:_}){let v=(0,S.useRef)(null),y=(0,S.useRef)(null),b=(0,S.useMemo)(()=>t.find(e=>e.template_id===n),[t,n]),x=(0,S.useMemo)(()=>{if(e.key!==`from_template`||!b)return e.tools;let t=Array.isArray(b.workflow_steps)?b.workflow_steps:[],n=[];for(let e of t){let t=e?.tool;!t||n.includes(t)||n.push(t)}return n},[e,b]);return(0,S.useEffect)(()=>{let t=window.requestAnimationFrame(()=>{if(e.key===`from_template`){v.current?.focus();return}y.current?.focus()});return()=>window.cancelAnimationFrame(t)},[e.key]),(0,C.jsxs)(m,{isOpen:!0,onClose:g,title:(0,C.jsxs)(`span`,{className:`modal-name`,children:[`Start `,e.title]}),children:[(0,C.jsx)(`p`,{className:`modal-desc`,children:e.modalDescription}),(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Typical Tooling`}),(0,C.jsxs)(`div`,{className:`modal-params`,children:[x.length===0&&(0,C.jsx)(`span`,{className:`modal-param mono`,children:`none preloaded`}),x.map(e=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:e},e))]})]}),e.key===`from_template`&&(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,children:`Template *`}),(0,C.jsxs)(`select`,{ref:v,name:`session-template`,className:`session-objective-select`,value:n,onChange:e=>i(e.target.value),children:[(0,C.jsx)(`option`,{value:``,children:`Select template`}),t.map(e=>(0,C.jsx)(`option`,{value:e.template_id,children:e.name},e.template_id))]})]}),e.key===`intelligence`&&(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,children:`Precision`}),(0,C.jsxs)(`select`,{name:`session-intelligence-precision`,className:`session-objective-select`,value:a,onChange:e=>o(e.target.value),children:[(0,C.jsx)(`option`,{value:`quick`,children:`Quick (fewest tools)`}),(0,C.jsx)(`option`,{value:`comprehensive`,children:`Comprehensive (safer coverage)`}),(0,C.jsx)(`option`,{value:`stealth`,children:`Stealth (low-noise)`})]})]}),(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,htmlFor:`session-target-input`,children:`Target *`}),(0,C.jsx)(`input`,{id:`session-target-input`,ref:y,className:`search-input mono`,value:s,onChange:e=>c(e.target.value),placeholder:e.placeholder}),(0,C.jsx)(`label`,{className:`mono`,htmlFor:`session-note-input`,children:`Note (optional)`}),(0,C.jsx)(`textarea`,{id:`session-note-input`,className:`session-step-params mono`,rows:3,value:l,onChange:e=>d(e.target.value),placeholder:`Context for this run`}),f&&(0,C.jsx)(`div`,{className:`run-error`,children:f}),(0,C.jsxs)(`div`,{className:`session-start-actions`,children:[(0,C.jsx)(`button`,{className:`session-action-btn`,onClick:g,children:`Cancel`}),(0,C.jsxs)(`button`,{className:`session-run-btn`,onClick:_,disabled:p,children:[p?(0,C.jsx)(r,{size:13,className:`spin`}):(0,C.jsx)(u,{size:13}),p?`Starting…`:h||`Start Session`]})]})]})]})}function re({startModes:e,templates:n,onOpenStartMode:r,onUseTemplate:i,onEditTemplate:s,onDeleteTemplate:c,templateActionBusyId:l}){return(0,C.jsxs)(`nav`,{className:`browser-nav`,children:[(0,C.jsxs)(`div`,{className:`browser-nav-title`,children:[(0,C.jsx)(o,{size:14}),` Session Setup`]}),e.map(e=>(0,C.jsxs)(`button`,{className:`browser-nav-item browser-nav-item--column`,onClick:()=>r(e),children:[(0,C.jsx)(`span`,{className:`browser-nav-label`,children:e.title}),(0,C.jsx)(`span`,{className:`browser-nav-desc`,children:e.description})]},e.key)),n.length>0&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:`browser-nav-title`,children:[(0,C.jsx)(t,{size:14}),` Custom Templates `,(0,C.jsx)(`span`,{className:`badge`,children:n.length})]}),n.map(e=>(0,C.jsxs)(`div`,{className:`sessions-setup-template-row`,children:[(0,C.jsxs)(`button`,{className:`browser-nav-item browser-nav-item--column sessions-setup-template-btn`,onClick:()=>i(e.template_id),title:`${e.workflow_steps.length} tools`,children:[(0,C.jsx)(`span`,{className:`browser-nav-label`,children:e.name}),(0,C.jsxs)(`span`,{className:`browser-nav-desc`,children:[e.workflow_steps.length,` tools`]})]}),(0,C.jsxs)(`div`,{className:`sessions-setup-template-actions`,children:[(0,C.jsx)(`button`,{onClick:()=>s(e),title:`Edit template`,children:(0,C.jsx)(a,{size:12})}),(0,C.jsx)(`button`,{onClick:()=>c(e),disabled:l===e.template_id,title:`Delete template`,children:(0,C.jsx)(f,{size:12})})]})]},e.template_id))]})]})}function ie(e){let t=e.metadata??{},n=t.session_name;if(typeof n==`string`&&n.trim()){let e=n.trim();return e.charAt(0).toUpperCase()+e.slice(1)}let r=typeof e.objective==`string`&&e.objective||(typeof t.mode==`string`?t.mode:``);if(r){let e=r.replace(/_/g,` `).trim();return e.charAt(0).toUpperCase()+e.slice(1)}return`Session`}function w({session:e,onOpen:t}){let n=e.metadata?.tool_status??{},i=e.metadata?.last_run??null;return(0,C.jsxs)(`div`,{className:`session-card session-card--compact registry-card--clickable`,onClick:()=>t(e.session_id),children:[(0,C.jsxs)(`div`,{className:`session-card-header`,children:[(0,C.jsxs)(`div`,{className:`session-target`,children:[(0,C.jsx)(u,{size:13,color:`var(--blue)`}),(0,C.jsx)(`span`,{className:`mono`,children:e.target})]}),(0,C.jsxs)(`div`,{className:`session-card-header-badges`,children:[e.risk_level&&e.risk_level!==`unknown`&&(0,C.jsx)(`span`,{className:`session-risk session-risk--${e.risk_level.toLowerCase()}`,title:`Risk level: ${e.risk_level.toLowerCase()}`,children:e.risk_level.toLowerCase()}),e.status&&(0,C.jsx)(`span`,{className:`session-status session-status--${e.status}`,children:e.status})]})]}),(0,C.jsxs)(`div`,{className:`session-card-meta`,children:[(0,C.jsxs)(`span`,{children:[(0,C.jsx)(c,{size:11}),` `,e.total_findings,` findings`]}),(0,C.jsxs)(`span`,{children:[(0,C.jsx)(r,{size:11}),` `,e.iterations,` iterations`]}),(0,C.jsxs)(`span`,{children:[(0,C.jsx)(l,{size:11}),` `,_(e.updated_at)]})]}),(0,C.jsxs)(`div`,{className:`session-tools`,children:[e.tools_executed.slice(0,7).map(e=>(0,C.jsx)(`span`,{className:`session-tool-chip mono session-tool-chip--${n[e]===`success`?`success`:n[e]===`failed`?`failed`:`idle`}`,children:e},e)),e.tools_executed.length>7&&(0,C.jsxs)(`span`,{className:`session-tool-chip session-tool-chip--more`,children:[`+`,e.tools_executed.length-7]})]}),(0,C.jsxs)(`div`,{className:`session-card-footer`,children:[(0,C.jsx)(`span`,{className:`session-id mono`,children:e.session_id}),(0,C.jsx)(`span`,{className:`session-tool-chip mono`,children:ie(e)})]}),i?.tool&&(0,C.jsxs)(`div`,{className:`session-last-run mono`,children:[`last: `,i.tool,` | `,i.success?`OK`:`FAIL`,` | exit `,i.return_code??0,` | `,(i.execution_time??0).toFixed(2),`s`]})]})}function ae({active:e,completed:n,view:r,setView:i,streamStatus:a,onOpenSession:o}){let s=r===`active`?e:n;return(0,C.jsxs)(`div`,{className:`browser-main`,children:[(0,C.jsxs)(`div`,{className:`section-header`,children:[(0,C.jsxs)(`h3`,{children:[`Sessions `,(0,C.jsx)(`span`,{className:`badge`,children:s.length})]}),(0,C.jsx)(`div`,{className:`sessions-header-actions`,children:(0,C.jsx)(`span`,{className:`sessions-stream-status sessions-stream-status--${a}`,children:a===`streaming`?`Live`:a===`polling`?`Polling`:`Offline`})})]}),(0,C.jsx)(`div`,{className:`registry-controls`,children:(0,C.jsx)(`div`,{className:`registry-controls-top`,children:(0,C.jsxs)(`div`,{className:`cat-tabs sessions-view-tabs`,children:[(0,C.jsxs)(`button`,{className:`cat-tab${r===`active`?` active`:``}`,onClick:()=>i(`active`),children:[`Active `,(0,C.jsx)(`span`,{className:`badge`,children:e.length})]}),n.length>0&&(0,C.jsxs)(`button`,{className:`cat-tab${r===`completed`?` active`:``}`,onClick:()=>i(`completed`),children:[`Completed `,(0,C.jsx)(`span`,{className:`badge`,children:n.length})]})]})})}),(0,C.jsxs)(`div`,{className:`browser-scroll`,children:[s.length===0?(0,C.jsxs)(`div`,{className:`tasks-empty`,children:[(0,C.jsx)(t,{size:28,color:`var(--text-dim)`}),(0,C.jsx)(`p`,{children:r===`active`?`No active sessions. Start one from Session Setup.`:`No completed sessions yet.`})]}):(0,C.jsx)(`div`,{className:`sessions-grid`,children:s.map(e=>(0,C.jsx)(w,{session:e,onOpen:o},e.session_id))}),r===`active`&&e.length>0&&(0,C.jsxs)(`div`,{className:`section-meta session-list-footer-tip`,children:[(0,C.jsx)(d,{size:12}),`Call MCP tool `,(0,C.jsx)(`span`,{className:`mono`,children:`handover_session("", "optional note")`}),` to continue the session with AI.`]})]})]})}var oe=!1,T=null,se=[],E=[],ce=null;function D({demoData:e,onOpenSession:n}){let{pushToast:o}=h(),[l,d]=(0,S.useState)(e?.sessions??T),[f,p]=(0,S.useState)(!1),[_,ie]=(0,S.useState)(se),[w,D]=(0,S.useState)(E),[O,le]=(0,S.useState)(null),[k,A]=(0,S.useState)(null),[j,ue]=(0,S.useState)(null),[de,fe]=(0,S.useState)(``),[pe,me]=(0,S.useState)(``),[M,N]=(0,S.useState)(``),[P,he]=(0,S.useState)(`comprehensive`),[ge,F]=(0,S.useState)(null),[I,L]=(0,S.useState)(null),[R,_e]=(0,S.useState)(!1),[z,ve]=(0,S.useState)(``),[ye,B]=(0,S.useState)(``),[V,H]=(0,S.useState)([]),[U,be]=(0,S.useState)(``),[xe,W]=(0,S.useState)(null),[G,Se]=(0,S.useState)(!1),[Ce,K]=(0,S.useState)(!e&&!oe),[we,q]=(0,S.useState)(null),[J,Te]=(0,S.useState)(ce??`active`),{streamStatus:Ee}=ee({enabled:!e,initialStatus:e?`polling`:`streaming`,onData:e=>{d(e),T=e,q(null)},onError:e=>q(e),onLoadingDone:()=>K(!1)});(0,S.useEffect)(()=>{ce=J},[J]),(0,S.useEffect)(()=>{e||Promise.all([y.sessions(),y.tools(),y.sessionTemplates()]).then(([e,t,n])=>{d(e),ie(t.tools??[]),D(n.templates??[]),T=e,se=t.tools??[],E=n.templates??[],oe=!0,q(null)}).catch(e=>q(String(e))).finally(()=>K(!1))},[e]);let Y=(0,S.useMemo)(()=>(l?.active??[]).filter(e=>(e.status??`active`)!==`completed`).sort((e,t)=>(t.created_at??0)-(e.created_at??0)),[l]),X=(0,S.useMemo)(()=>{let e=l?.active??[];return[...l?.completed??[],...e.filter(e=>(e.status??`active`)===`completed`)].filter((e,t,n)=>n.findIndex(t=>t.session_id===e.session_id)===t).sort((e,t)=>(t.created_at??0)-(e.created_at??0))},[l]);(0,S.useEffect)(()=>{J===`completed`&&X.length===0&&Te(`active`)},[J,X.length]);async function De(){if(e)return;let t=(await y.sessionTemplates()).templates??[];D(t),E=t}function Oe(t=!1){e||(t||K(!0),y.sessions().then(e=>{d(e),T=e,q(null)}).catch(e=>q(String(e))).finally(()=>{t||K(!1)}))}function ke(t=!1){e||Oe(t)}function Ae(e,t=``){ue(e),fe(``),me(``),N(t),e.key===`intelligence`&&he(`comprehensive`),F(null)}function Z(){ue(null),F(null),L(null)}function je(e){ve(e.template_id),B(e.name),H(e.workflow_steps??[]),be(``),W(null)}function Q(){ve(``),B(``),H([]),be(``),W(null)}function Me(e){let t=te.find(e=>e.key===`from_template`);t&&Ae(t,e)}async function Ne(t){if(!e){le(t);try{await y.deleteSessionTemplate(t),D(e=>e.filter(e=>e.template_id!==t)),M===t&&N(``),o(`success`,`Template deleted`)}catch(e){o(`error`,`Delete failed: ${String(e)}`)}finally{le(null),A(null)}}}function Pe(e){H(t=>[...t,{tool:e,parameters:{}}])}function Fe(e){H(t=>t.filter((t,n)=>n!==e))}async function Ie(){if(!z)return;let e=ye.trim();if(!e){W(`Template name is required`),o(`error`,`Template name is required`);return}if(V.length===0){W(`Template must include at least one tool`),o(`error`,`Template must include at least one tool`);return}Se(!0),W(null);try{await y.updateSessionTemplate(z,{name:e,workflow_steps:V}),await De(),o(`success`,`Template updated`),Q()}catch(e){let t=String(e);W(t),o(`error`,`Save failed: ${t}`)}finally{Se(!1)}}async function Le(e,t,n){if(!t.trim()){F(`Target is required`),o(`error`,`Target is required`);return}F(null),p(!0);try{let r=t.trim(),i;if(e.key===`manual`)i=await y.createSession({target:r,workflow_steps:[],source:`web`,objective:e.key,metadata:{origin:`ui/sessions/create`,mode:e.key,note:n,session_name:`Manual session`}});else if(e.key===`from_template`){let e=w.find(e=>e.template_id===M);if(!e){F(`Template is required`),o(`error`,`Template is required`);return}i=await y.createSessionFromTemplate({target:r,template_id:e.template_id,source:`web`,objective:`from_template`,metadata:{origin:`ui/sessions/create`,mode:`from_template`,note:n,template_id:e.template_id,session_name:`Template: ${e.name}`}})}else if(e.key===`ai_recon`){let e=await y.aiReconSession(r);if(!e.success)throw Error(e.error??`AI Recon session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_recon`,metadata:{origin:`ui/sessions/create`,mode:`ai_recon`,note:n,session_name:e.session_name}})}else if(e.key===`ai_profiling`){let e=await y.aiProfilingSession(r);if(!e.success)throw Error(e.error??`AI Profiling session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_profiling`,metadata:{origin:`ui/sessions/create`,mode:`ai_profiling`,note:n,session_name:e.session_name,target_type:e.target_type}})}else if(e.key===`ai_vuln`){let e=await y.aiVulnSession(r);if(!e.success)throw Error(e.error??`AI Vuln Scan session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_vuln`,metadata:{origin:`ui/sessions/create`,mode:`ai_vuln`,note:n,session_name:e.session_name}})}else if(e.key===`ai_osint`){let e=await y.aiOsintSession(r);if(!e.success)throw Error(e.error??`AI OSINT session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_osint`,metadata:{origin:`ui/sessions/create`,mode:`ai_osint`,note:n,session_name:e.session_name}})}else{if(e.key===`intelligence`){let t=await y.previewAttackChain(r,P);L({mode:e,target:r,note:n,precision:P,preview:t});return}let t=await y.createAttackChain(r,e.key);i=await y.createSession({target:r,workflow_steps:t.attack_chain.steps,source:`web`,objective:e.key,session_id:t.session_id,metadata:{origin:`ui/sessions/create`,mode:e.key,note:n}})}let a=i.session.session_id;o(`success`,`Session created: ${a}`),Z(),ke()}catch(e){let t=String(e);F(t),o(`error`,`Session start failed: ${t}`)}finally{p(!1)}}async function Re(){if(I){_e(!0),F(null);try{let{mode:e,target:t,note:n,precision:r,preview:i}=I,a=e.key===`intelligence`?r:e.key,s=await y.createAttackChain(t,a),c=(await y.createSession({target:t,workflow_steps:i.attack_chain.steps,source:`web`,objective:a,session_id:s.session_id,metadata:{origin:`ui/sessions/create`,mode:e.key,precision:a,note:n,preview_confirmed:!0,preview_step_count:i.attack_chain.steps.length}})).session.session_id;o(`success`,`Session created: ${c}`),L(null),Z(),ke()}catch(e){let t=String(e);F(t),o(`error`,`Session start failed: ${t}`)}finally{_e(!1)}}}if(Ce)return(0,C.jsxs)(`div`,{className:`loading-state`,children:[(0,C.jsx)(r,{size:20,className:`spin`,color:`var(--green)`}),(0,C.jsx)(`p`,{children:`Loading sessions…`})]});if(we)return(0,C.jsxs)(`div`,{className:`error-banner`,children:[(0,C.jsx)(i,{size:16}),` `,we]});let ze=[...Y,...X].reduce((e,t)=>e+t.total_findings,0),Be=new Set([...Y,...X].map(e=>e.target)).size,Ve=z?w.find(e=>e.template_id===z)??null:null,He=_.filter(e=>{if(!U.trim())return!0;let t=U.toLowerCase();return e.name.toLowerCase().includes(t)||e.desc.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)}).slice(0,16),$=I?.preview.attack_chain.steps??[],Ue=I?.preview.attack_chain.risk_level??`unknown`,We=I?.preview.attack_chain.estimated_time??0,Ge=Array.from(new Set($.map(e=>e.tool).filter(Boolean))),Ke=$.map(e=>({tool:e.tool,reason:e.selection_reason})).filter(e=>!!e.reason),qe=e=>typeof e==`number`?`${Math.round(e*100)}%`:`n/a`,Je=e=>typeof e==`number`?e.toFixed(2):`n/a`;return(0,C.jsxs)(C.Fragment,{children:[j&&!I&&(0,C.jsx)(ne,{startMode:j,templates:w,selectedTemplateId:M,setSelectedTemplateId:N,intelligencePrecision:P,setIntelligencePrecision:he,modalTarget:de,setModalTarget:fe,modalNote:pe,setModalNote:me,modalError:ge,creatingSession:f||R,submitLabel:j.key===`intelligence`?`Preview Attack Chain`:void 0,onClose:Z,onSubmit:()=>Le(j,de,pe)}),(0,C.jsxs)(v,{isOpen:!!I,title:`Review Intelligence Preview`,description:I?`This preview generated a session workflow for ${I.target}. Confirm to persist the session.`:``,className:`modal--wide intelligence-preview-modal`,primaryLabel:`Create Session from Preview`,secondaryLabel:`Back`,isPrimaryBusy:R,onPrimary:Re,onSecondary:()=>L(null),onClose:()=>{R||L(null)},children:[(0,C.jsxs)(`div`,{className:`intelligence-preview-summary`,children:[(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Objective:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:I?.precision??`n/a`})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Steps:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:$.length})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Unique tools:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:Ge.length})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Risk:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:Ue})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Estimated time:`}),` `,(0,C.jsxs)(`span`,{className:`mono`,children:[We,`s`]})]})]}),(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Tools to be added`}),(0,C.jsx)(`div`,{className:`modal-params`,children:Ge.map(e=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:e},e))})]}),Ke.length>0&&(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Why selected`}),(0,C.jsx)(`div`,{className:`intelligence-preview-reasons`,children:Ke.map((e,t)=>(0,C.jsxs)(`details`,{className:`intelligence-reason-item`,children:[(0,C.jsxs)(`summary`,{className:`intelligence-reason-summary`,children:[(0,C.jsx)(`span`,{className:`intelligence-reason-tool mono`,children:e.tool}),(0,C.jsxs)(`span`,{className:`intelligence-reason-meta mono`,children:[qe(e.reason?.effective_score),` match`]}),(0,C.jsx)(`span`,{className:`intelligence-reason-toggle`,children:`Details`})]}),(0,C.jsxs)(`div`,{className:`intelligence-reason-body`,children:[(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Reason:`}),e.reason?.summary??`Selected by precision planner.`]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Score:`}),(0,C.jsx)(`span`,{className:`mono`,children:qe(e.reason?.effective_score)})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Noise:`}),(0,C.jsx)(`span`,{className:`mono`,children:Je(e.reason?.noise_score)})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Objective match:`}),(0,C.jsx)(`span`,{className:`mono`,children:e.reason?.objective_match?`yes`:`no`})]}),(e.reason?.new_capabilities_added?.length??0)>0&&(0,C.jsxs)(`div`,{className:`intelligence-reason-tags`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`New coverage:`}),(e.reason?.new_capabilities_added??[]).map(t=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:t},`${e.tool}:${t}:new`))]}),(e.reason?.covers_required?.length??0)>0&&(0,C.jsxs)(`div`,{className:`intelligence-reason-tags`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Required capability fit:`}),(e.reason?.covers_required??[]).map(t=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:t},`${e.tool}:${t}:req`))]})]})]},`${e.tool}:${t}`))})]})]}),(0,C.jsx)(b,{className:`sessions-page`,top:(0,C.jsx)(x,{items:[{icon:(0,C.jsx)(t,{size:16}),label:`Active Sessions`,value:Y.length,accent:Y.length>0?`var(--green)`:`var(--text-dim)`},{icon:(0,C.jsx)(s,{size:16}),label:`Completed`,value:X.length,accent:`var(--blue)`},{icon:(0,C.jsx)(c,{size:16}),label:`Total Findings`,value:ze,accent:`var(--amber)`},{icon:(0,C.jsx)(u,{size:16}),label:`Unique Targets`,value:Be,accent:`var(--purple)`}]}),nav:(0,C.jsx)(re,{startModes:te,templates:w,onOpenStartMode:Ae,onUseTemplate:Me,onEditTemplate:je,onDeleteTemplate:A,templateActionBusyId:O}),main:(0,C.jsx)(ae,{active:Y,completed:X,view:J,setView:Te,streamStatus:Ee,onOpenSession:n})}),Ve&&(0,C.jsxs)(m,{isOpen:!0,onClose:Q,title:(0,C.jsx)(`span`,{className:`modal-name`,children:`Edit Template`}),size:`lg`,children:[(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,htmlFor:`template-name-input`,children:`Template name *`}),(0,C.jsx)(`input`,{id:`template-name-input`,className:`search-input mono`,value:ye,onChange:e=>B(e.target.value),placeholder:`Template name`})]}),(0,C.jsxs)(`div`,{className:`template-editor-grid`,children:[(0,C.jsxs)(`div`,{className:`template-editor-col`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Tools in template`}),V.length===0?(0,C.jsx)(`div`,{className:`tasks-empty tasks-empty--compact`,children:(0,C.jsx)(`p`,{children:`No tools selected yet.`})}):(0,C.jsx)(`div`,{className:`template-step-list`,children:V.map((e,t)=>(0,C.jsxs)(`div`,{className:`template-step-row`,children:[(0,C.jsx)(`span`,{className:`mono`,children:e.tool}),(0,C.jsx)(`button`,{className:`session-remove-tool`,onClick:()=>Fe(t),children:`x`})]},`${e.tool}:${t}`))})]}),(0,C.jsxs)(`div`,{className:`template-editor-col`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Add tools`}),(0,C.jsx)(`input`,{className:`search-input mono`,value:U,onChange:e=>be(e.target.value),placeholder:`Search tools`}),(0,C.jsx)(`div`,{className:`session-add-tool-list`,children:He.map(e=>(0,C.jsxs)(`button`,{className:`session-add-tool-item`,onClick:()=>Pe(e.name),children:[(0,C.jsx)(`span`,{className:`mono`,children:e.name}),(0,C.jsx)(`span`,{children:e.category})]},`edit-template-tool:${e.name}`))})]})]}),xe&&(0,C.jsx)(`div`,{className:`run-error`,children:xe}),(0,C.jsxs)(`div`,{className:`session-start-actions`,children:[(0,C.jsx)(`button`,{className:`session-action-btn`,onClick:Q,children:`Cancel`}),(0,C.jsxs)(`button`,{className:`session-run-btn`,onClick:Ie,disabled:G,children:[G?(0,C.jsx)(r,{size:13,className:`spin`}):(0,C.jsx)(a,{size:13}),G?`Saving…`:`Save Template`]})]})]}),(0,C.jsx)(g,{isOpen:!!k,title:`Delete Template`,description:k?`Delete template "${k.name}"? This action cannot be undone.`:`Delete template?`,impactItems:k?[`Template ID: ${k.template_id}`,`Tools in template: ${k.workflow_steps.length}`,`Future sessions can no longer use this template`]:[],confirmLabel:`Yes, delete template`,cancelLabel:`Keep template`,confirmVariant:`danger`,isConfirming:!!k&&O===k.template_id,onConfirm:async()=>{k&&await Ne(k.template_id)},onClose:()=>{O||A(null)}})]})}export{D as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/SessionsPage-t6LVt-1M.js b/frontend/dashboard/assets/SessionsPage-t6LVt-1M.js new file mode 100644 index 000000000..d85b8fce3 --- /dev/null +++ b/frontend/dashboard/assets/SessionsPage-t6LVt-1M.js @@ -0,0 +1 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,I as n,L as r,Lt as i,M as a,Ot as o,d as s,it as c,nn as l,p as u,tn as d,tt as f}from"./vendor-lucide-DUPkM7me.js";import{r as p}from"./vendor-markdown-BanIOC5U.js";import{t as m}from"./Sheet-BAT5hjNH.js";import{b as h,n as g,s as _,v,x as y}from"./index-DuJ0P36w.js";import{t as b}from"./BrowserPage-BmNP5Bdw.js";import{t as x}from"./KpiStrip-L-nGhyMV.js";/* empty css */var S=e(l(),1);function ee({enabled:e,initialStatus:t=`streaming`,onData:n,onError:r,onLoadingDone:i}){let[a,o]=(0,S.useState)(t),s=(0,S.useRef)(null),c=(0,S.useRef)(null),l=(0,S.useRef)(null),u=(0,S.useRef)(0);return(0,S.useEffect)(()=>{if(!e)return;let t=!1;function a(){s.current&&s.current.close(),s.current=null}function d(){c.current&&=(clearInterval(c.current),null)}function f(){l.current&&=(clearTimeout(l.current),null)}function p(){y.sessions().then(e=>{n(e)}).catch(e=>r(String(e)))}function m(){d(),o(`polling`),p(),c.current=setInterval(p,5e3)}function h(e){f();let n=u.current+1;u.current=n;let r=Math.min(3e4,1e3*2**Math.max(0,n-1));l.current=setTimeout(()=>{t||e()},r)}function g(){a();try{let e=y.sessionsStream();s.current=e,e.onopen=()=>{u.current=0,f(),d(),o(`streaming`)},e.onmessage=e=>{try{let t=JSON.parse(e.data);t?.success&&(n(t),i())}catch{r(`Session stream parse error`)}},e.onerror=()=>{t||(o(`error`),a(),m(),h(g))}}catch{if(t)return;o(`error`),m(),h(g)}}return g(),()=>{t=!0,a(),d(),f()}},[e]),{streamStatus:a}}var te=[{key:`intelligence`,title:`Intelligent Attack-Chain`,description:`Automated target profiling and attack chain generation.`,details:`Best for quick, AI-driven assessments.`,modalDescription:`Leverages AI to analyze the target and generate a customized attack chain.`,tools:[],placeholder:`Domain or org target (target.tld)`},{key:`manual`,title:`Manual Session`,description:`Start an empty session and add tools yourself.`,details:`Best when you want full manual control.`,modalDescription:`Creates a clean session with only target context. No predefined workflow is added, so you can build your own tool chain step-by-step from the session detail page.`,tools:[],placeholder:`Target URL/domain/IP (example.com)`},{key:`from_template`,title:`From Template`,description:`Start from a saved tool template.`,details:`Reuse your recurring workflows.`,modalDescription:`Creates a session from an existing template. You only set target and choose the saved template; all template tools are copied into the new session.`,tools:[],placeholder:`Target URL/domain/IP (example.com)`},{key:`ai_recon`,title:`AI Recon`,description:`Recon session pre-loaded with the recon pipeline, ready to run.`,details:`Builds a session with nmap, whois, dig, http-headers, and whatweb.`,modalDescription:`Pre-loaded with the recon pipeline: nmap, whois, dig, http-headers, and whatweb — configured for your target.`,tools:[`nmap`,`whois`,`dig`,`http-headers`,`whatweb`],placeholder:`Domain or IP (example.com / 10.0.0.1)`},{key:`ai_profiling`,title:`AI Profiling`,description:`Target-aware profiling pipeline that adapts tools to the target type.`,details:`Adds subfinder and theharvester for domains; skips DNS tools for bare IPs.`,modalDescription:`Classifies your target (IP, URL, or domain) and builds an adaptive pipeline: nmap, whois, whatweb, http-headers, dig, subfinder, theharvester, gobuster, nikto, and AI analysis.`,tools:[`nmap`,`whois`,`whatweb`,`http-headers`,`dig`,`subfinder`,`theharvester`,`gobuster`,`nikto`],placeholder:`Domain, URL, or IP (example.com / 10.0.0.1)`},{key:`ai_vuln`,title:`AI Vuln Scan`,description:`Vulnerability scanning pipeline: nuclei, sqlmap, dalfox, and nikto.`,details:`Checks for CVEs, SQL injection, XSS, and common web misconfigurations.`,modalDescription:`Runs a focused vulnerability scan: nuclei (CVE templates), sqlmap (SQLi), dalfox (XSS), and nikto (misconfiguration) — followed by AI analysis of all findings.`,tools:[`nuclei`,`sqlmap`,`dalfox`,`nikto`],placeholder:`Target URL or domain (https://example.com)`},{key:`ai_osint`,title:`AI OSINT`,description:`Passive OSINT pipeline: subfinder, theharvester, gau, and waybackurls.`,details:`Domain targets only — no active scanning, no bare IPs.`,modalDescription:`Purely passive intelligence gathering: subfinder (subdomains), theharvester (emails & hosts), gau (archived URLs), and waybackurls — followed by AI attack-surface analysis.`,tools:[`subfinder`,`theharvester`,`gau`,`waybackurls`],placeholder:`Domain only (example.com)`}],C=p();function ne({startMode:e,templates:t,selectedTemplateId:n,setSelectedTemplateId:r,intelligencePrecision:i,setIntelligencePrecision:o,modalTarget:s,setModalTarget:c,modalNote:l,setModalNote:d,modalError:f,creatingSession:p,submitLabel:h,onClose:g,onSubmit:_}){let v=(0,S.useRef)(null),y=(0,S.useRef)(null),b=(0,S.useMemo)(()=>t.find(e=>e.template_id===n),[t,n]),x=(0,S.useMemo)(()=>{if(e.key!==`from_template`||!b)return e.tools;let t=Array.isArray(b.workflow_steps)?b.workflow_steps:[],n=[];for(let e of t){let t=e?.tool;!t||n.includes(t)||n.push(t)}return n},[e,b]);return(0,S.useEffect)(()=>{let t=window.requestAnimationFrame(()=>{if(e.key===`from_template`){v.current?.focus();return}y.current?.focus()});return()=>window.cancelAnimationFrame(t)},[e.key]),(0,C.jsxs)(m,{isOpen:!0,onClose:g,title:(0,C.jsxs)(`span`,{className:`modal-name`,children:[`Start `,e.title]}),children:[(0,C.jsx)(`p`,{className:`modal-desc`,children:e.modalDescription}),(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Typical Tooling`}),(0,C.jsxs)(`div`,{className:`modal-params`,children:[x.length===0&&(0,C.jsx)(`span`,{className:`modal-param mono`,children:`none preloaded`}),x.map(e=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:e},e))]})]}),e.key===`from_template`&&(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,children:`Template *`}),(0,C.jsxs)(`select`,{ref:v,name:`session-template`,className:`session-objective-select`,value:n,onChange:e=>r(e.target.value),children:[(0,C.jsx)(`option`,{value:``,children:`Select template`}),t.map(e=>(0,C.jsx)(`option`,{value:e.template_id,children:e.name},e.template_id))]})]}),e.key===`intelligence`&&(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,children:`Precision`}),(0,C.jsxs)(`select`,{name:`session-intelligence-precision`,className:`session-objective-select`,value:i,onChange:e=>o(e.target.value),children:[(0,C.jsx)(`option`,{value:`quick`,children:`Quick (fewest tools)`}),(0,C.jsx)(`option`,{value:`comprehensive`,children:`Comprehensive (safer coverage)`}),(0,C.jsx)(`option`,{value:`stealth`,children:`Stealth (low-noise)`})]})]}),(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,htmlFor:`session-target-input`,children:`Target *`}),(0,C.jsx)(`input`,{id:`session-target-input`,ref:y,className:`search-input mono`,value:s,onChange:e=>c(e.target.value),placeholder:e.placeholder}),(0,C.jsx)(`label`,{className:`mono`,htmlFor:`session-note-input`,children:`Note (optional)`}),(0,C.jsx)(`textarea`,{id:`session-note-input`,className:`session-step-params mono`,rows:3,value:l,onChange:e=>d(e.target.value),placeholder:`Context for this run`}),f&&(0,C.jsx)(`div`,{className:`run-error`,children:f}),(0,C.jsxs)(`div`,{className:`session-start-actions`,children:[(0,C.jsx)(`button`,{className:`session-action-btn`,onClick:g,children:`Cancel`}),(0,C.jsxs)(`button`,{className:`session-run-btn`,onClick:_,disabled:p,children:[p?(0,C.jsx)(a,{size:13,className:`spin`}):(0,C.jsx)(u,{size:13}),p?`Starting…`:h||`Start Session`]})]})]})]})}function re({startModes:e,templates:t,onOpenStartMode:i,onUseTemplate:a,onEditTemplate:o,onDeleteTemplate:c,templateActionBusyId:l}){return(0,C.jsxs)(`nav`,{className:`browser-nav`,children:[(0,C.jsxs)(`div`,{className:`browser-nav-title`,children:[(0,C.jsx)(n,{size:14}),` Session Setup`]}),e.map(e=>(0,C.jsxs)(`button`,{className:`browser-nav-item browser-nav-item--column`,onClick:()=>i(e),children:[(0,C.jsx)(`span`,{className:`browser-nav-label`,children:e.title}),(0,C.jsx)(`span`,{className:`browser-nav-desc`,children:e.description})]},e.key)),t.length>0&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:`browser-nav-title`,children:[(0,C.jsx)(f,{size:14}),` Custom Templates `,(0,C.jsx)(`span`,{className:`badge`,children:t.length})]}),t.map(e=>(0,C.jsxs)(`div`,{className:`sessions-setup-template-row`,children:[(0,C.jsxs)(`button`,{className:`browser-nav-item browser-nav-item--column sessions-setup-template-btn`,onClick:()=>a(e.template_id),title:`${e.workflow_steps.length} tools`,children:[(0,C.jsx)(`span`,{className:`browser-nav-label`,children:e.name}),(0,C.jsxs)(`span`,{className:`browser-nav-desc`,children:[e.workflow_steps.length,` tools`]})]}),(0,C.jsxs)(`div`,{className:`sessions-setup-template-actions`,children:[(0,C.jsx)(`button`,{onClick:()=>o(e),title:`Edit template`,children:(0,C.jsx)(r,{size:12})}),(0,C.jsx)(`button`,{onClick:()=>c(e),disabled:l===e.template_id,title:`Delete template`,children:(0,C.jsx)(s,{size:12})})]})]},e.template_id))]})]})}function ie(e){let t=e.metadata??{},n=t.session_name;if(typeof n==`string`&&n.trim()){let e=n.trim();return e.charAt(0).toUpperCase()+e.slice(1)}let r=typeof e.objective==`string`&&e.objective||(typeof t.mode==`string`?t.mode:``);if(r){let e=r.replace(/_/g,` `).trim();return e.charAt(0).toUpperCase()+e.slice(1)}return`Session`}function w({session:e,onOpen:t}){let n=e.metadata?.tool_status??{},r=e.metadata?.last_run??null;return(0,C.jsxs)(`div`,{className:`session-card session-card--compact registry-card--clickable`,onClick:()=>t(e.session_id),children:[(0,C.jsxs)(`div`,{className:`session-card-header`,children:[(0,C.jsxs)(`div`,{className:`session-target`,children:[(0,C.jsx)(u,{size:13,color:`var(--blue)`}),(0,C.jsx)(`span`,{className:`mono`,children:e.target})]}),(0,C.jsxs)(`div`,{className:`session-card-header-badges`,children:[e.risk_level&&e.risk_level!==`unknown`&&(0,C.jsx)(`span`,{className:`session-risk session-risk--${e.risk_level.toLowerCase()}`,title:`Risk level: ${e.risk_level.toLowerCase()}`,children:e.risk_level.toLowerCase()}),e.status&&(0,C.jsx)(`span`,{className:`session-status session-status--${e.status}`,children:e.status})]})]}),(0,C.jsxs)(`div`,{className:`session-card-meta`,children:[(0,C.jsxs)(`span`,{children:[(0,C.jsx)(d,{size:11}),` `,e.total_findings,` findings`]}),(0,C.jsxs)(`span`,{children:[(0,C.jsx)(a,{size:11}),` `,e.iterations,` iterations`]}),(0,C.jsxs)(`span`,{children:[(0,C.jsx)(o,{size:11}),` `,_(e.updated_at)]})]}),(0,C.jsxs)(`div`,{className:`session-tools`,children:[e.tools_executed.slice(0,7).map(e=>(0,C.jsx)(`span`,{className:`session-tool-chip mono session-tool-chip--${n[e]===`success`?`success`:n[e]===`failed`?`failed`:`idle`}`,children:e},e)),e.tools_executed.length>7&&(0,C.jsxs)(`span`,{className:`session-tool-chip session-tool-chip--more`,children:[`+`,e.tools_executed.length-7]})]}),(0,C.jsxs)(`div`,{className:`session-card-footer`,children:[(0,C.jsx)(`span`,{className:`session-id mono`,children:e.session_id}),(0,C.jsx)(`span`,{className:`session-tool-chip mono`,children:ie(e)})]}),r?.tool&&(0,C.jsxs)(`div`,{className:`session-last-run mono`,children:[`last: `,r.tool,` | `,r.success?`OK`:`FAIL`,` | exit `,r.return_code??0,` | `,(r.execution_time??0).toFixed(2),`s`]})]})}function ae({active:e,completed:t,view:n,setView:r,streamStatus:i,onOpenSession:a}){let o=n===`active`?e:t;return(0,C.jsxs)(`div`,{className:`browser-main`,children:[(0,C.jsxs)(`div`,{className:`section-header`,children:[(0,C.jsxs)(`h3`,{children:[`Sessions `,(0,C.jsx)(`span`,{className:`badge`,children:o.length})]}),(0,C.jsx)(`div`,{className:`sessions-header-actions`,children:(0,C.jsx)(`span`,{className:`sessions-stream-status sessions-stream-status--${i}`,children:i===`streaming`?`Live`:i===`polling`?`Polling`:`Offline`})})]}),(0,C.jsx)(`div`,{className:`registry-controls`,children:(0,C.jsx)(`div`,{className:`registry-controls-top`,children:(0,C.jsxs)(`div`,{className:`cat-tabs sessions-view-tabs`,children:[(0,C.jsxs)(`button`,{className:`cat-tab${n===`active`?` active`:``}`,onClick:()=>r(`active`),children:[`Active `,(0,C.jsx)(`span`,{className:`badge`,children:e.length})]}),t.length>0&&(0,C.jsxs)(`button`,{className:`cat-tab${n===`completed`?` active`:``}`,onClick:()=>r(`completed`),children:[`Completed `,(0,C.jsx)(`span`,{className:`badge`,children:t.length})]})]})})}),(0,C.jsxs)(`div`,{className:`browser-scroll`,children:[o.length===0?(0,C.jsxs)(`div`,{className:`tasks-empty`,children:[(0,C.jsx)(f,{size:28,color:`var(--text-dim)`}),(0,C.jsx)(`p`,{children:n===`active`?`No active sessions. Start one from Session Setup.`:`No completed sessions yet.`})]}):(0,C.jsx)(`div`,{className:`sessions-grid`,children:o.map(e=>(0,C.jsx)(w,{session:e,onOpen:a},e.session_id))}),n===`active`&&e.length>0&&(0,C.jsxs)(`div`,{className:`section-meta session-list-footer-tip`,children:[(0,C.jsx)(c,{size:12}),`Call MCP tool `,(0,C.jsx)(`span`,{className:`mono`,children:`handover_session("", "optional note")`}),` to continue the session with AI.`]})]})]})}var oe=!1,T=null,se=[],E=[],ce=null;function D({demoData:e,onOpenSession:n}){let{pushToast:o}=h(),[s,c]=(0,S.useState)(e?.sessions??T),[l,p]=(0,S.useState)(!1),[_,ie]=(0,S.useState)(se),[w,D]=(0,S.useState)(E),[O,le]=(0,S.useState)(null),[k,A]=(0,S.useState)(null),[j,ue]=(0,S.useState)(null),[de,fe]=(0,S.useState)(``),[pe,me]=(0,S.useState)(``),[M,N]=(0,S.useState)(``),[P,he]=(0,S.useState)(`comprehensive`),[ge,F]=(0,S.useState)(null),[I,L]=(0,S.useState)(null),[R,_e]=(0,S.useState)(!1),[z,ve]=(0,S.useState)(``),[ye,B]=(0,S.useState)(``),[V,H]=(0,S.useState)([]),[U,be]=(0,S.useState)(``),[xe,W]=(0,S.useState)(null),[G,Se]=(0,S.useState)(!1),[Ce,K]=(0,S.useState)(!e&&!oe),[we,q]=(0,S.useState)(null),[J,Te]=(0,S.useState)(ce??`active`),{streamStatus:Ee}=ee({enabled:!e,initialStatus:e?`polling`:`streaming`,onData:e=>{c(e),T=e,q(null)},onError:e=>q(e),onLoadingDone:()=>K(!1)});(0,S.useEffect)(()=>{ce=J},[J]),(0,S.useEffect)(()=>{e||Promise.all([y.sessions(),y.tools(),y.sessionTemplates()]).then(([e,t,n])=>{c(e),ie(t.tools??[]),D(n.templates??[]),T=e,se=t.tools??[],E=n.templates??[],oe=!0,q(null)}).catch(e=>q(String(e))).finally(()=>K(!1))},[e]);let Y=(0,S.useMemo)(()=>(s?.active??[]).filter(e=>(e.status??`active`)!==`completed`).sort((e,t)=>(t.created_at??0)-(e.created_at??0)),[s]),X=(0,S.useMemo)(()=>{let e=s?.active??[];return[...s?.completed??[],...e.filter(e=>(e.status??`active`)===`completed`)].filter((e,t,n)=>n.findIndex(t=>t.session_id===e.session_id)===t).sort((e,t)=>(t.created_at??0)-(e.created_at??0))},[s]);(0,S.useEffect)(()=>{J===`completed`&&X.length===0&&Te(`active`)},[J,X.length]);async function De(){if(e)return;let t=(await y.sessionTemplates()).templates??[];D(t),E=t}function Oe(t=!1){e||(t||K(!0),y.sessions().then(e=>{c(e),T=e,q(null)}).catch(e=>q(String(e))).finally(()=>{t||K(!1)}))}function ke(t=!1){e||Oe(t)}function Ae(e,t=``){ue(e),fe(``),me(``),N(t),e.key===`intelligence`&&he(`comprehensive`),F(null)}function Z(){ue(null),F(null),L(null)}function je(e){ve(e.template_id),B(e.name),H(e.workflow_steps??[]),be(``),W(null)}function Q(){ve(``),B(``),H([]),be(``),W(null)}function Me(e){let t=te.find(e=>e.key===`from_template`);t&&Ae(t,e)}async function Ne(t){if(!e){le(t);try{await y.deleteSessionTemplate(t),D(e=>e.filter(e=>e.template_id!==t)),M===t&&N(``),o(`success`,`Template deleted`)}catch(e){o(`error`,`Delete failed: ${String(e)}`)}finally{le(null),A(null)}}}function Pe(e){H(t=>[...t,{tool:e,parameters:{}}])}function Fe(e){H(t=>t.filter((t,n)=>n!==e))}async function Ie(){if(!z)return;let e=ye.trim();if(!e){W(`Template name is required`),o(`error`,`Template name is required`);return}if(V.length===0){W(`Template must include at least one tool`),o(`error`,`Template must include at least one tool`);return}Se(!0),W(null);try{await y.updateSessionTemplate(z,{name:e,workflow_steps:V}),await De(),o(`success`,`Template updated`),Q()}catch(e){let t=String(e);W(t),o(`error`,`Save failed: ${t}`)}finally{Se(!1)}}async function Le(e,t,n){if(!t.trim()){F(`Target is required`),o(`error`,`Target is required`);return}F(null),p(!0);try{let r=t.trim(),i;if(e.key===`manual`)i=await y.createSession({target:r,workflow_steps:[],source:`web`,objective:e.key,metadata:{origin:`ui/sessions/create`,mode:e.key,note:n,session_name:`Manual session`}});else if(e.key===`from_template`){let e=w.find(e=>e.template_id===M);if(!e){F(`Template is required`),o(`error`,`Template is required`);return}i=await y.createSessionFromTemplate({target:r,template_id:e.template_id,source:`web`,objective:`from_template`,metadata:{origin:`ui/sessions/create`,mode:`from_template`,note:n,template_id:e.template_id,session_name:`Template: ${e.name}`}})}else if(e.key===`ai_recon`){let e=await y.aiReconSession(r);if(!e.success)throw Error(e.error??`AI Recon session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_recon`,metadata:{origin:`ui/sessions/create`,mode:`ai_recon`,note:n,session_name:e.session_name}})}else if(e.key===`ai_profiling`){let e=await y.aiProfilingSession(r);if(!e.success)throw Error(e.error??`AI Profiling session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_profiling`,metadata:{origin:`ui/sessions/create`,mode:`ai_profiling`,note:n,session_name:e.session_name,target_type:e.target_type}})}else if(e.key===`ai_vuln`){let e=await y.aiVulnSession(r);if(!e.success)throw Error(e.error??`AI Vuln Scan session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_vuln`,metadata:{origin:`ui/sessions/create`,mode:`ai_vuln`,note:n,session_name:e.session_name}})}else if(e.key===`ai_osint`){let e=await y.aiOsintSession(r);if(!e.success)throw Error(e.error??`AI OSINT session creation failed`);i=await y.createSession({target:r,workflow_steps:e.steps,source:`web`,objective:`ai_osint`,metadata:{origin:`ui/sessions/create`,mode:`ai_osint`,note:n,session_name:e.session_name}})}else{if(e.key===`intelligence`){let t=await y.previewAttackChain(r,P);L({mode:e,target:r,note:n,precision:P,preview:t});return}let t=await y.createAttackChain(r,e.key);i=await y.createSession({target:r,workflow_steps:t.attack_chain.steps,source:`web`,objective:e.key,session_id:t.session_id,metadata:{origin:`ui/sessions/create`,mode:e.key,note:n}})}let a=i.session.session_id;o(`success`,`Session created: ${a}`),Z(),ke()}catch(e){let t=String(e);F(t),o(`error`,`Session start failed: ${t}`)}finally{p(!1)}}async function Re(){if(I){_e(!0),F(null);try{let{mode:e,target:t,note:n,precision:r,preview:i}=I,a=e.key===`intelligence`?r:e.key,s=await y.createAttackChain(t,a),c=(await y.createSession({target:t,workflow_steps:i.attack_chain.steps,source:`web`,objective:a,session_id:s.session_id,metadata:{origin:`ui/sessions/create`,mode:e.key,precision:a,note:n,preview_confirmed:!0,preview_step_count:i.attack_chain.steps.length}})).session.session_id;o(`success`,`Session created: ${c}`),L(null),Z(),ke()}catch(e){let t=String(e);F(t),o(`error`,`Session start failed: ${t}`)}finally{_e(!1)}}}if(Ce)return(0,C.jsxs)(`div`,{className:`loading-state`,children:[(0,C.jsx)(a,{size:20,className:`spin`,color:`var(--green)`}),(0,C.jsx)(`p`,{children:`Loading sessions…`})]});if(we)return(0,C.jsxs)(`div`,{className:`error-banner`,children:[(0,C.jsx)(t,{size:16}),` `,we]});let ze=[...Y,...X].reduce((e,t)=>e+t.total_findings,0),Be=new Set([...Y,...X].map(e=>e.target)).size,Ve=z?w.find(e=>e.template_id===z)??null:null,He=_.filter(e=>{if(!U.trim())return!0;let t=U.toLowerCase();return e.name.toLowerCase().includes(t)||e.desc.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)}).slice(0,16),$=I?.preview.attack_chain.steps??[],Ue=I?.preview.attack_chain.risk_level??`unknown`,We=I?.preview.attack_chain.estimated_time??0,Ge=Array.from(new Set($.map(e=>e.tool).filter(Boolean))),Ke=$.map(e=>({tool:e.tool,reason:e.selection_reason})).filter(e=>!!e.reason),qe=e=>typeof e==`number`?`${Math.round(e*100)}%`:`n/a`,Je=e=>typeof e==`number`?e.toFixed(2):`n/a`;return(0,C.jsxs)(C.Fragment,{children:[j&&!I&&(0,C.jsx)(ne,{startMode:j,templates:w,selectedTemplateId:M,setSelectedTemplateId:N,intelligencePrecision:P,setIntelligencePrecision:he,modalTarget:de,setModalTarget:fe,modalNote:pe,setModalNote:me,modalError:ge,creatingSession:l||R,submitLabel:j.key===`intelligence`?`Preview Attack Chain`:void 0,onClose:Z,onSubmit:()=>Le(j,de,pe)}),(0,C.jsxs)(v,{isOpen:!!I,title:`Review Intelligence Preview`,description:I?`This preview generated a session workflow for ${I.target}. Confirm to persist the session.`:``,className:`modal--wide intelligence-preview-modal`,primaryLabel:`Create Session from Preview`,secondaryLabel:`Back`,isPrimaryBusy:R,onPrimary:Re,onSecondary:()=>L(null),onClose:()=>{R||L(null)},children:[(0,C.jsxs)(`div`,{className:`intelligence-preview-summary`,children:[(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Objective:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:I?.precision??`n/a`})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Steps:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:$.length})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Unique tools:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:Ge.length})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Risk:`}),` `,(0,C.jsx)(`span`,{className:`mono`,children:Ue})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Estimated time:`}),` `,(0,C.jsxs)(`span`,{className:`mono`,children:[We,`s`]})]})]}),(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Tools to be added`}),(0,C.jsx)(`div`,{className:`modal-params`,children:Ge.map(e=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:e},e))})]}),Ke.length>0&&(0,C.jsxs)(`div`,{className:`modal-section`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Why selected`}),(0,C.jsx)(`div`,{className:`intelligence-preview-reasons`,children:Ke.map((e,t)=>(0,C.jsxs)(`details`,{className:`intelligence-reason-item`,children:[(0,C.jsxs)(`summary`,{className:`intelligence-reason-summary`,children:[(0,C.jsx)(`span`,{className:`intelligence-reason-tool mono`,children:e.tool}),(0,C.jsxs)(`span`,{className:`intelligence-reason-meta mono`,children:[qe(e.reason?.effective_score),` match`]}),(0,C.jsx)(`span`,{className:`intelligence-reason-toggle`,children:`Details`})]}),(0,C.jsxs)(`div`,{className:`intelligence-reason-body`,children:[(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Reason:`}),e.reason?.summary??`Selected by precision planner.`]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Score:`}),(0,C.jsx)(`span`,{className:`mono`,children:qe(e.reason?.effective_score)})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Noise:`}),(0,C.jsx)(`span`,{className:`mono`,children:Je(e.reason?.noise_score)})]}),(0,C.jsxs)(`p`,{className:`intelligence-preview-line`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Objective match:`}),(0,C.jsx)(`span`,{className:`mono`,children:e.reason?.objective_match?`yes`:`no`})]}),(e.reason?.new_capabilities_added?.length??0)>0&&(0,C.jsxs)(`div`,{className:`intelligence-reason-tags`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`New coverage:`}),(e.reason?.new_capabilities_added??[]).map(t=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:t},`${e.tool}:${t}:new`))]}),(e.reason?.covers_required?.length??0)>0&&(0,C.jsxs)(`div`,{className:`intelligence-reason-tags`,children:[(0,C.jsx)(`span`,{className:`intelligence-preview-label`,children:`Required capability fit:`}),(e.reason?.covers_required??[]).map(t=>(0,C.jsx)(`span`,{className:`modal-param mono`,children:t},`${e.tool}:${t}:req`))]})]})]},`${e.tool}:${t}`))})]})]}),(0,C.jsx)(b,{className:`sessions-page`,top:(0,C.jsx)(x,{items:[{icon:(0,C.jsx)(f,{size:16}),label:`Active Sessions`,value:Y.length,accent:Y.length>0?`var(--green)`:`var(--text-dim)`},{icon:(0,C.jsx)(i,{size:16}),label:`Completed`,value:X.length,accent:`var(--blue)`},{icon:(0,C.jsx)(d,{size:16}),label:`Total Findings`,value:ze,accent:`var(--amber)`},{icon:(0,C.jsx)(u,{size:16}),label:`Unique Targets`,value:Be,accent:`var(--purple)`}]}),nav:(0,C.jsx)(re,{startModes:te,templates:w,onOpenStartMode:Ae,onUseTemplate:Me,onEditTemplate:je,onDeleteTemplate:A,templateActionBusyId:O}),main:(0,C.jsx)(ae,{active:Y,completed:X,view:J,setView:Te,streamStatus:Ee,onOpenSession:n})}),Ve&&(0,C.jsxs)(m,{isOpen:!0,onClose:Q,title:(0,C.jsx)(`span`,{className:`modal-name`,children:`Edit Template`}),size:`lg`,children:[(0,C.jsxs)(`div`,{className:`session-start-form`,children:[(0,C.jsx)(`label`,{className:`mono`,htmlFor:`template-name-input`,children:`Template name *`}),(0,C.jsx)(`input`,{id:`template-name-input`,className:`search-input mono`,value:ye,onChange:e=>B(e.target.value),placeholder:`Template name`})]}),(0,C.jsxs)(`div`,{className:`template-editor-grid`,children:[(0,C.jsxs)(`div`,{className:`template-editor-col`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Tools in template`}),V.length===0?(0,C.jsx)(`div`,{className:`tasks-empty tasks-empty--compact`,children:(0,C.jsx)(`p`,{children:`No tools selected yet.`})}):(0,C.jsx)(`div`,{className:`template-step-list`,children:V.map((e,t)=>(0,C.jsxs)(`div`,{className:`template-step-row`,children:[(0,C.jsx)(`span`,{className:`mono`,children:e.tool}),(0,C.jsx)(`button`,{className:`session-remove-tool`,onClick:()=>Fe(t),children:`x`})]},`${e.tool}:${t}`))})]}),(0,C.jsxs)(`div`,{className:`template-editor-col`,children:[(0,C.jsx)(`span`,{className:`modal-label`,children:`Add tools`}),(0,C.jsx)(`input`,{className:`search-input mono`,value:U,onChange:e=>be(e.target.value),placeholder:`Search tools`}),(0,C.jsx)(`div`,{className:`session-add-tool-list`,children:He.map(e=>(0,C.jsxs)(`button`,{className:`session-add-tool-item`,onClick:()=>Pe(e.name),children:[(0,C.jsx)(`span`,{className:`mono`,children:e.name}),(0,C.jsx)(`span`,{children:e.category})]},`edit-template-tool:${e.name}`))})]})]}),xe&&(0,C.jsx)(`div`,{className:`run-error`,children:xe}),(0,C.jsxs)(`div`,{className:`session-start-actions`,children:[(0,C.jsx)(`button`,{className:`session-action-btn`,onClick:Q,children:`Cancel`}),(0,C.jsxs)(`button`,{className:`session-run-btn`,onClick:Ie,disabled:G,children:[G?(0,C.jsx)(a,{size:13,className:`spin`}):(0,C.jsx)(r,{size:13}),G?`Saving…`:`Save Template`]})]})]}),(0,C.jsx)(g,{isOpen:!!k,title:`Delete Template`,description:k?`Delete template "${k.name}"? This action cannot be undone.`:`Delete template?`,impactItems:k?[`Template ID: ${k.template_id}`,`Tools in template: ${k.workflow_steps.length}`,`Future sessions can no longer use this template`]:[],confirmLabel:`Yes, delete template`,cancelLabel:`Keep template`,confirmVariant:`danger`,isConfirming:!!k&&O===k.template_id,onConfirm:async()=>{k&&await Ne(k.template_id)},onClose:()=>{O||A(null)}})]})}export{D as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/SettingsPage-C110GkpJ.js b/frontend/dashboard/assets/SettingsPage-BS4_std9.js similarity index 80% rename from frontend/dashboard/assets/SettingsPage-C110GkpJ.js rename to frontend/dashboard/assets/SettingsPage-BS4_std9.js index acb1d65b0..8c3a7c6fd 100644 --- a/frontend/dashboard/assets/SettingsPage-C110GkpJ.js +++ b/frontend/dashboard/assets/SettingsPage-BS4_std9.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,B as r,Dt as i,N as a,O as o,Pt as s,T as c,U as l,Y as u,_ as d,_t as f,gt as p,ot as m,q as h,u as g}from"./vendor-lucide-tZ8AzO6l.js";import{r as _}from"./vendor-markdown-CZSHC-G5.js";import{t as v}from"./ActionButton-CxNWgwlw.js";import{_ as y,b,d as x,x as S,y as C}from"./index-DoDmaCqd.js";import{t as w}from"./CollapsibleSection-BMB1wyVz.js";import{t as T}from"./BrowserPage-B37UOYE2.js";var E=e(t(),1),D=[`password`,`directory`,`params`,`subdomain`,`username`,`general`],O=[`fast`,`medium`,`slow`],k=[`focused`,`broad`,`comprehensive`],A=null;function j(e,t){return t?e.includes(t)?e:[t,...e]:e}function M(){let{pushToast:e}=b(),t=A!==null,[n,r]=(0,E.useState)(A?.settings??null),[i,a]=(0,E.useState)(!t),[o,s]=(0,E.useState)(null),[c,l]=(0,E.useState)(!1),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)(!1),[m,h]=(0,E.useState)(A?.timeout??``),[g,_]=(0,E.useState)(A?.requestTimeout??``),[v,y]=(0,E.useState)(A?.inactivityTimeout??``),[x,C]=(0,E.useState)(A?.maxRuntime??``),[w,T]=(0,E.useState)(A?.cacheSize??``),[M,N]=(0,E.useState)(A?.cacheTtl??``),[P,F]=(0,E.useState)(A?.toolTtl??``),[I,L]=(0,E.useState)(A?.wordlistsDraft??[]),[R,z]=(0,E.useState)(A?.binaryPathOverrides??[]),[B,V]=(0,E.useState)(A?.chatPersonality??`nyxstrike`),[H,U]=(0,E.useState)(A?.customPrompt??``),[W,G]=(0,E.useState)(A?.personalityPresets??[]),[K,q]=(0,E.useState)(A?.summarizationThreshold??``),[J,Y]=(0,E.useState)(A?.contextInjectionChars??``),[X,Z]=(0,E.useState)(A?.llmThink??!1);function Q(e){let t=e.runtime.binary_path_overrides??{},n={settings:e,timeout:String(e.runtime.command_timeout),requestTimeout:String(e.runtime.request_timeout),inactivityTimeout:String(e.runtime.command_inactivity_timeout),maxRuntime:String(e.runtime.command_max_runtime),cacheSize:String(e.runtime.cache_size),cacheTtl:String(e.runtime.cache_ttl),toolTtl:String(e.runtime.tool_availability_ttl),wordlistsDraft:e.wordlists.map(e=>({...e})),binaryPathOverrides:Object.entries(t).map(([e,t])=>({tool:e,path:t})),chatPersonality:e.chat?.personality??`nyxstrike`,customPrompt:e.chat?.custom_prompt??``,personalityPresets:e.chat?.personality_presets??[],summarizationThreshold:String(e.chat?.summarization_threshold??20),contextInjectionChars:String(e.chat?.context_injection_chars??4e3),llmThink:!!(e.chat?.llm_think??!1)};A=n,r(n.settings),h(n.timeout),_(n.requestTimeout),y(n.inactivityTimeout),C(n.maxRuntime),T(n.cacheSize),N(n.cacheTtl),F(n.toolTtl),L(n.wordlistsDraft),z(n.binaryPathOverrides),V(n.chatPersonality),U(n.customPrompt),G(n.personalityPresets),q(n.summarizationThreshold),Y(n.contextInjectionChars),Z(n.llmThink)}(0,E.useEffect)(()=>{S.getSettings().then(e=>{Q(e.settings),a(!1)}).catch(e=>{A||s(String(e)),a(!1)})},[]);function ee(e,t,n){L(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}function te(){L(e=>[...e,{name:``,path:``,type:`directory`,speed:`medium`,coverage:`broad`}])}function ne(e){L(t=>t.filter((t,n)=>n!==e))}function re(){z(e=>[...e,{tool:``,path:``}])}function ie(e){z(t=>t.filter((t,n)=>n!==e))}function ae(e,t,n){z(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}async function oe(e,t){return S.testBinaryPathOverride(e,t)}async function $(){l(!0);try{let t={};for(let e of R){let n=e.tool.trim();n&&(t[n]=e.path)}let n=await S.patchSettings({command_timeout:Number(m),request_timeout:Number(g),command_inactivity_timeout:Number(v),command_max_runtime:Number(x),cache_size:Number(w),cache_ttl:Number(M),tool_availability_ttl:Number(P),binary_path_overrides:t});if(!n.success){e(`error`,`Failed to save runtime settings`);return}n.settings&&Q(n.settings),e(`success`,`Runtime settings saved`)}catch{e(`error`,`Failed to save runtime settings`)}finally{l(!1)}}async function se(){d(!0);try{if(!(await S.patchWordlists(I)).success){e(`error`,`Failed to save wordlists`);return}Q((await S.getSettings()).settings),e(`success`,`Wordlists saved`)}catch{e(`error`,`Failed to save wordlists`)}finally{d(!1)}}async function ce(){l(!0);try{let t=B===`custom`?H:W.find(e=>e.id===B)?.prompt??H,n=await S.patchSettings({},{personality:B,system_prompt:t,custom_prompt:H,summarization_threshold:Number(K),context_injection_chars:Number(J),llm_think:X});if(!n.success){e(`error`,`Failed to save chat settings`);return}n.settings&&Q(n.settings),e(`success`,`Chat settings saved`)}catch{e(`error`,`Failed to save chat settings`)}finally{l(!1)}}async function le(){p(!0);try{(await S.clearCache()).success?e(`success`,`Cache cleared`):e(`error`,`Failed to clear cache`)}catch{e(`error`,`Failed to clear cache`)}finally{p(!1)}}return{settings:n,loading:i,error:o,saving:c,wordlistsSaving:u,clearingCache:f,timeout:m,requestTimeout:g,inactivityTimeout:v,maxRuntime:x,cacheSize:w,cacheTtl:M,toolTtl:P,wordlistsDraft:I,binaryPathOverrides:R,chatPersonality:B,customPrompt:H,personalityPresets:W,summarizationThreshold:K,contextInjectionChars:J,llmThink:X,setTimeout_:h,setRequestTimeout:_,setInactivityTimeout:y,setMaxRuntime:C,setCacheSize:T,setCacheTtl:N,setToolTtl:F,setChatPersonality:V,setCustomPrompt:U,setSummarizationThreshold:q,setContextInjectionChars:Y,setLlmThink:Z,addWordlist:te,removeWordlist:ne,updateWordlist:ee,addBinaryOverride:re,removeBinaryOverride:ie,updateBinaryOverride:ae,testBinaryOverride:oe,saveRuntime:$,saveWordlists:se,saveChatSettings:ce,clearCache:le,withCurrentTypeOption:e=>j(D,e),withCurrentSpeedOption:e=>j(O,e),withCurrentCoverageOption:e=>j(k,e)}}var N=_();function P({label:e,value:t,mono:n,accent:r}){return(0,N.jsxs)(`div`,{className:`settings-row`,children:[(0,N.jsx)(`span`,{className:`settings-label`,children:e}),(0,N.jsx)(`span`,{className:`settings-value ${n?`mono`:``}`,style:r?{color:r}:{},children:t})]})}function F({label:e,unit:t,hint:n,value:r,onChange:i}){return(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:e}),(0,N.jsxs)(`div`,{className:`settings-input-row`,children:[(0,N.jsx)(`input`,{className:`settings-input mono`,name:`settings-number`,type:`number`,min:0,value:r,onChange:e=>i(e.target.value)}),(0,N.jsx)(`span`,{className:`settings-unit`,children:t})]}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:n})]})}function I({label:e,hint:t,value:n,onChange:r,rows:i=4}){return(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:e}),(0,N.jsx)(`textarea`,{className:`settings-input settings-textarea mono`,name:`settings-textarea`,rows:i,value:n,onChange:e=>r(e.target.value)}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:t})]})}function L({settings:e}){return(0,N.jsxs)(w,{title:`Server Environment`,badge:(0,N.jsx)(`span`,{className:`badge`,children:`read-only`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsx)(P,{label:`Host`,value:e.server.host,mono:!0}),(0,N.jsx)(P,{label:`Port`,value:String(e.server.port),mono:!0}),(0,N.jsx)(P,{label:`Auth Enabled`,value:e.server.auth_enabled?`Yes (NYXSTRIKE_API_TOKEN set)`:`No`,accent:e.server.auth_enabled?`var(--green)`:`var(--amber)`}),(0,N.jsx)(P,{label:`Debug Mode`,value:e.server.debug_mode?`On`:`Off`,accent:e.server.debug_mode?`var(--amber)`:`var(--text-dim)`}),(0,N.jsx)(P,{label:`Data Directory`,value:e.server.data_dir,mono:!0})]}),(0,N.jsxs)(`p`,{className:`settings-hint`,children:[`Change these by setting environment variables before starting the server:`,(0,N.jsx)(`code`,{children:` NYXSTRIKE_HOST`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_PORT`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_API_TOKEN`}),`,`,(0,N.jsx)(`code`,{children:` DEBUG_MODE`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_DATA_DIR`}),`.`]})]})}function R({status:e,title:t}){return e===`testing`?(0,N.jsx)(h,{size:14,className:`spin`,style:{color:`var(--text-dim)`}}):e===`ok`?(0,N.jsx)(`span`,{title:t,children:(0,N.jsx)(s,{size:14,style:{color:`var(--green)`}})}):e===`fail`?(0,N.jsx)(`span`,{title:t,children:(0,N.jsx)(i,{size:14,style:{color:`var(--red, #e05)`}})}):(0,N.jsx)(`span`,{style:{display:`inline-block`,width:14}})}function z({timeout:e,requestTimeout:t,inactivityTimeout:n,maxRuntime:r,cacheSize:i,cacheTtl:s,toolTtl:c,setTimeout_:l,setRequestTimeout:u,setInactivityTimeout:d,setMaxRuntime:f,setCacheSize:p,setCacheTtl:m,setToolTtl:h,binaryPathOverrides:_,onAddBinaryOverride:y,onRemoveBinaryOverride:b,onUpdateBinaryOverride:x,onTestBinaryOverride:S,saving:C,onSave:T}){let[D,O]=(0,E.useState)({}),[k,A]=(0,E.useState)({});function j(e){O(t=>{let n={...t};return delete n[e],n}),A(t=>{let n={...t};return delete n[e],n})}async function M(e,t,n){if(!(!t.trim()||!n.trim())){O(t=>({...t,[e]:`testing`}));try{let r=await S(t,n),i=r.success&&r.ok;if(O(t=>({...t,[e]:i?`ok`:`fail`})),r.resolved_path){let t=i?`${r.resolved_path} — exists and executable`:r.exists?`${r.resolved_path} — not executable`:`${r.resolved_path} — file not found`;A(n=>({...n,[e]:t}))}}catch{O(t=>({...t,[e]:`fail`})),A(t=>({...t,[e]:`Request failed`}))}}}return(0,N.jsxs)(w,{title:`Runtime Config`,badge:(0,N.jsx)(`span`,{className:`section-meta`,children:`changes apply immediately`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsx)(F,{label:`Command Timeout`,unit:`seconds`,hint:`Per-run hard timeout. Use 0 only in API when you need no hard timeout.`,value:e,onChange:l}),(0,N.jsx)(F,{label:`Request Timeout`,unit:`seconds`,hint:`How long clients wait for API responses (0 means no client-side request timeout).`,value:t,onChange:u}),(0,N.jsx)(F,{label:`Inactivity Timeout`,unit:`seconds`,hint:`Stops commands that produce no output for too long.`,value:n,onChange:d}),(0,N.jsx)(F,{label:`Max Runtime`,unit:`seconds`,hint:`Safety cap for any single tool execution.`,value:r,onChange:f}),(0,N.jsx)(F,{label:`Cache Size`,unit:`entries`,hint:`Maximum number of cached tool results.`,value:i,onChange:p}),(0,N.jsx)(F,{label:`Cache TTL`,unit:`seconds`,hint:`How long a cache entry lives before expiry.`,value:s,onChange:m}),(0,N.jsx)(F,{label:`Tool Availability TTL`,unit:`seconds`,hint:`How long the tool availability check is cached.`,value:c,onChange:h})]}),(0,N.jsxs)(`div`,{style:{marginTop:`1.25rem`},children:[(0,N.jsxs)(`div`,{className:`settings-actions`,style:{justifyContent:`space-between`,marginBottom:`8px`},children:[(0,N.jsx)(`span`,{className:`settings-label`,style:{margin:0,alignSelf:`center`},children:`Tool Binary Path Overrides`}),(0,N.jsxs)(v,{variant:`default`,onClick:y,disabled:C,children:[(0,N.jsx)(a,{size:14}),` Add Override`]})]}),_.length>0&&(0,N.jsxs)(`div`,{className:`wordlist-table`,children:[(0,N.jsxs)(`div`,{className:`wordlist-head`,style:{gridTemplateColumns:`1fr 2fr auto auto auto`},children:[(0,N.jsx)(`span`,{children:`Tool Name`}),(0,N.jsx)(`span`,{children:`Binary Path`}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{children:`Test`}),(0,N.jsx)(`span`,{children:`Remove`})]}),_.map((e,t)=>(0,N.jsxs)(`div`,{className:`wordlist-row editable`,style:{gridTemplateColumns:`1fr 2fr auto auto auto`},children:[(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`binary-override-tool`,value:e.tool,placeholder:`tool-name`,onChange:e=>{x(t,`tool`,e.target.value),j(t)}}),(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`binary-override-path`,value:e.path,placeholder:`/absolute/path/to/binary or {HOME}/go/bin/tool`,onChange:e=>{x(t,`path`,e.target.value),j(t)}}),(0,N.jsx)(`span`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,width:20},children:(0,N.jsx)(R,{status:D[t]??`idle`,title:k[t]})}),(0,N.jsx)(v,{variant:`default`,disabled:C||D[t]===`testing`||!e.tool.trim()||!e.path.trim(),onClick:()=>M(t,e.tool,e.path),title:`Check that the binary exists and is executable on the server`,children:D[t]===`testing`?`Testing…`:`Test`}),(0,N.jsx)(v,{variant:`danger`,onClick:()=>b(t),disabled:C,title:`Remove override — tool reverts to system PATH resolution`,children:(0,N.jsx)(g,{size:14})})]},`binary-override-${t}`))]}),(0,N.jsxs)(`p`,{className:`settings-hint`,style:{marginTop:`6px`},children:[`Overrides the executable used for each named tool. Supports `,(0,N.jsx)(`code`,{children:`{HOME}`}),` substitution. Delete a row to revert that tool to system PATH resolution.`]})]}),(0,N.jsx)(`div`,{className:`settings-actions`,children:(0,N.jsxs)(v,{variant:`success`,onClick:T,disabled:C,children:[(0,N.jsx)(o,{size:14}),` `,C?`Saving…`:`Save Runtime`]})})]})}function B({wordlistsDraft:e,wordlistsSaving:t,onAddWordlist:n,onSaveWordlists:r,onUpdateWordlist:i,onRemoveWordlist:s,withCurrentTypeOption:c,withCurrentSpeedOption:l,withCurrentCoverageOption:u}){return(0,N.jsxs)(w,{title:`Wordlists`,badge:(0,N.jsx)(`span`,{className:`badge`,children:e.length}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-actions`,style:{justifyContent:`flex-end`,marginBottom:`10px`},children:[(0,N.jsxs)(v,{variant:`default`,onClick:n,disabled:t,children:[(0,N.jsx)(a,{size:14}),` Add Wordlist`]}),(0,N.jsxs)(v,{variant:`default`,onClick:r,disabled:t,children:[(0,N.jsx)(o,{size:14}),` `,t?`Saving…`:`Save Wordlists`]})]}),(0,N.jsxs)(`div`,{className:`wordlist-table`,children:[(0,N.jsxs)(`div`,{className:`wordlist-head`,children:[(0,N.jsx)(`span`,{children:`Name`}),(0,N.jsx)(`span`,{children:`Type`}),(0,N.jsx)(`span`,{children:`Speed`}),(0,N.jsx)(`span`,{children:`Coverage`}),(0,N.jsx)(`span`,{children:`Path`}),(0,N.jsx)(`span`,{children:`Actions`})]}),e.map((e,n)=>(0,N.jsxs)(`div`,{className:`wordlist-row editable`,children:[(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`wordlist-name`,value:e.name,onChange:e=>i(n,`name`,e.target.value),placeholder:`rockyou`,disabled:!!e.is_default}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-type`,value:e.type,onChange:e=>i(n,`type`,e.target.value),children:c(e.type).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-speed`,value:e.speed,onChange:e=>i(n,`speed`,e.target.value),children:l(e.speed).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-coverage`,value:e.coverage,onChange:e=>i(n,`coverage`,e.target.value),children:u(e.coverage).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`wordlist-path`,value:e.path,onChange:e=>i(n,`path`,e.target.value),placeholder:`/usr/share/wordlists/rockyou.txt`}),(0,N.jsx)(v,{variant:e.is_default?`default`:`danger`,onClick:()=>s(n),disabled:t||!!e.is_default,title:e.is_default?`Default wordlists cannot be deleted`:`Remove row`,children:(0,N.jsx)(g,{size:14})})]},`wordlist-row-${n}`))]}),(0,N.jsxs)(`p`,{className:`settings-hint`,children:[`Changes are stored in `,(0,N.jsx)(`code`,{children:`wordlists.json`}),`. Entries here override defaults from `,(0,N.jsx)(`code`,{children:`config.py`}),`.`]})]})}function V({chatPersonality:e,setChatPersonality:t,customPrompt:n,setCustomPrompt:r,personalityPresets:i,summarizationThreshold:a,setSummarizationThreshold:s,contextInjectionChars:c,setContextInjectionChars:l,llmThink:u,setLlmThink:d,saving:f,onSave:p}){let m=[...i.map(e=>({id:e.id,label:e.label})),{id:`custom`,label:`Custom`}];return(0,N.jsxs)(w,{title:`Chat Widget`,badge:(0,N.jsx)(`span`,{className:`section-meta`,children:`changes apply immediately`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:`Personality`}),(0,N.jsx)(`select`,{className:`settings-input settings-select-full`,name:`chat-personality`,value:e,onChange:e=>t(e.target.value),children:m.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:`The system persona sent to the LLM at the start of every chat.`})]}),e===`custom`&&(0,N.jsx)(I,{label:`Custom Prompt`,hint:`Your custom system prompt. Saved independently and preserved when switching presets.`,value:n,onChange:r,rows:5}),(0,N.jsx)(F,{label:`Summarization Threshold`,unit:`messages`,hint:`When non-summarized message count exceeds this, the oldest half are summarized.`,value:a,onChange:s}),(0,N.jsx)(F,{label:`Context Injection Chars`,unit:`chars`,hint:`Max characters of session context injected into the chat prompt.`,value:c,onChange:l}),(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:`LLM Think Mode`}),(0,N.jsxs)(`label`,{className:`theme-picker-toggle-row`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),(0,N.jsx)(`span`,{className:`theme-picker-toggle-text`,children:`Enable thinking / reasoning`})]}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:`Activates chain-of-thought reasoning for models that support it (Ollama only).`})]})]}),(0,N.jsx)(`div`,{className:`settings-actions`,children:(0,N.jsxs)(v,{variant:`success`,onClick:p,disabled:f,children:[(0,N.jsx)(o,{size:14}),` `,f?`Saving…`:`Save Chat Settings`]})})]})}function H({isPageEnabled:e,togglePage:t,orderedPageConfigs:n,reorderPage:r}){let{dragHandlers:i,dragClassName:a}=x(r);return(0,N.jsxs)(w,{title:`Navigation Pages`,defaultOpen:!0,children:[(0,N.jsx)(`p`,{className:`settings-hint-inline`,style:{margin:`1rem 0`,textAlign:`center`},children:`Hide pages you don't use from the navigation bar, and drag tiles to reorder them. Your preferences are saved in this browser only.`}),(0,N.jsx)(`div`,{className:`settings-page-visibility-grid`,children:n.map(({page:n,label:r,description:o})=>{let s=e(n);return(0,N.jsxs)(`button`,{type:`button`,className:a(n,`settings-page-tile${s?` settings-page-tile--on`:` settings-page-tile--off`}`),onClick:()=>t(n),title:s?`Hide ${r}`:`Show ${r}`,...i(n),children:[(0,N.jsx)(`span`,{className:`settings-page-tile-drag`,title:`Drag to reorder`,children:(0,N.jsx)(m,{size:12})}),(0,N.jsx)(`span`,{className:`settings-page-tile-icon`,children:s?(0,N.jsx)(p,{size:14}):(0,N.jsx)(f,{size:14})}),(0,N.jsx)(`span`,{className:`settings-page-tile-label`,children:r}),(0,N.jsx)(`span`,{className:`settings-page-tile-desc`,children:o}),(0,N.jsx)(`span`,{className:`settings-page-tile-badge${s?` on`:` off`}`,children:s?`Visible`:`Hidden`})]},n)})})]})}var U=[{id:`server`,label:`Server Environment`,icon:(0,N.jsx)(c,{size:13})},{id:`pages`,label:`Navigation Pages`,icon:(0,N.jsx)(p,{size:13})},{id:`runtime`,label:`Runtime Config`,icon:(0,N.jsx)(d,{size:13})},{id:`wordlists`,label:`Wordlists`,icon:(0,N.jsx)(u,{size:13})},{id:`chat`,label:`Chat Widget`,icon:(0,N.jsx)(l,{size:13})}];function W({section:e,setSection:t}){return(0,N.jsx)(`nav`,{className:`browser-nav browser-nav-narrow`,children:U.map(n=>(0,N.jsxs)(`button`,{className:`browser-nav-item${e===n.id?` browser-nav-item--active`:``}`,onClick:()=>t(n.id),children:[n.icon,(0,N.jsx)(`span`,{className:`browser-nav-label`,children:n.label})]},n.id))})}function G({themeId:e,setThemeId:t,reduceTextureEffects:a,setReduceTextureEffects:o,isPageEnabled:s,togglePage:c,orderedPageConfigs:l,reorderPage:u}){let[d,f]=(0,E.useState)(!1),[p,m]=(0,E.useState)(`server`),{settings:h,loading:_,error:v,saving:b,wordlistsSaving:x,clearingCache:S,timeout:w,requestTimeout:D,inactivityTimeout:O,maxRuntime:k,cacheSize:A,cacheTtl:j,toolTtl:P,wordlistsDraft:F,binaryPathOverrides:I,setTimeout_:R,setRequestTimeout:U,setInactivityTimeout:G,setMaxRuntime:K,setCacheSize:q,setCacheTtl:J,setToolTtl:Y,addWordlist:X,removeWordlist:Z,updateWordlist:Q,addBinaryOverride:ee,removeBinaryOverride:te,updateBinaryOverride:ne,testBinaryOverride:re,saveRuntime:ie,saveWordlists:ae,saveChatSettings:oe,clearCache:$,withCurrentTypeOption:se,withCurrentSpeedOption:ce,withCurrentCoverageOption:le,chatPersonality:ue,customPrompt:de,personalityPresets:fe,summarizationThreshold:pe,contextInjectionChars:me,llmThink:he,setChatPersonality:ge,setCustomPrompt:_e,setSummarizationThreshold:ve,setContextInjectionChars:ye,setLlmThink:be}=M();return _?(0,N.jsxs)(`div`,{className:`loading-state`,children:[(0,N.jsx)(n,{size:20,className:`spin`,color:`var(--green)`}),(0,N.jsx)(`p`,{children:`Loading settings…`})]}):v?(0,N.jsxs)(`div`,{className:`error-banner`,children:[(0,N.jsx)(i,{size:16}),` `,v]}):h?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(y,{isOpen:d,themeId:e,setThemeId:t,reduceTextureEffects:a,setReduceTextureEffects:o,onClose:()=>f(!1)}),(0,N.jsx)(T,{className:`settings-page`,top:(0,N.jsxs)(`div`,{className:`kpi-row settings-appearance-row`,children:[(0,N.jsxs)(`div`,{className:`stat-card settings-appearance-card settings-appearance-card--action settings-appearance-card--clickable`,role:`button`,tabIndex:0,onClick:()=>f(!0),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f(!0))},title:`Open theme picker`,children:[(0,N.jsx)(`div`,{className:`stat-icon`,style:{color:`var(--accent)`},children:(0,N.jsx)(r,{size:20})}),(0,N.jsxs)(`div`,{className:`stat-body settings-appearance-body`,children:[(0,N.jsx)(`div`,{className:`stat-label`,children:`Appearance`}),(0,N.jsx)(`div`,{className:`stat-value settings-appearance-value`,children:C.find(t=>t.id===e)?.label??e}),(0,N.jsx)(`div`,{className:`stat-sub`,children:`Preview and apply a theme instantly`}),(0,N.jsx)(`div`,{className:`settings-appearance-tap-hint mono`,children:`Click card to open picker`})]})]}),(0,N.jsxs)(`div`,{className:`stat-card settings-appearance-card settings-maintenance-card settings-appearance-card--clickable${S?` settings-appearance-card--disabled`:``}`,role:`button`,tabIndex:0,onClick:()=>{S||$()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&!S&&(e.preventDefault(),$())},title:`Clear all cached tool results`,children:[(0,N.jsx)(`div`,{className:`stat-icon`,style:{color:`var(--warning)`},children:S?(0,N.jsx)(n,{size:20,className:`spin`}):(0,N.jsx)(g,{size:20})}),(0,N.jsxs)(`div`,{className:`stat-body settings-appearance-body`,children:[(0,N.jsx)(`div`,{className:`stat-label`,children:`Maintenance`}),(0,N.jsx)(`div`,{className:`stat-value settings-appearance-value`,children:`Cache`}),(0,N.jsx)(`div`,{className:`stat-sub`,children:`Clear cached tool results and force fresh data`}),(0,N.jsx)(`div`,{className:`settings-appearance-tap-hint mono`,children:S?`Clearing…`:`Click card to clear cache`})]})]})]}),nav:(0,N.jsx)(W,{section:p,setSection:m}),main:(0,N.jsx)(`div`,{className:`browser-main`,children:(0,N.jsxs)(`div`,{className:`browser-scroll`,children:[p===`server`&&(0,N.jsx)(L,{settings:h}),p===`pages`&&(0,N.jsx)(H,{isPageEnabled:s,togglePage:c,orderedPageConfigs:l,reorderPage:u}),p===`runtime`&&(0,N.jsx)(z,{timeout:w,requestTimeout:D,inactivityTimeout:O,maxRuntime:k,cacheSize:A,cacheTtl:j,toolTtl:P,setTimeout_:R,setRequestTimeout:U,setInactivityTimeout:G,setMaxRuntime:K,setCacheSize:q,setCacheTtl:J,setToolTtl:Y,binaryPathOverrides:I,onAddBinaryOverride:ee,onRemoveBinaryOverride:te,onUpdateBinaryOverride:ne,onTestBinaryOverride:re,saving:b,onSave:ie}),p===`wordlists`&&(0,N.jsx)(B,{wordlistsDraft:F,wordlistsSaving:x,onAddWordlist:X,onSaveWordlists:ae,onUpdateWordlist:Q,onRemoveWordlist:Z,withCurrentTypeOption:se,withCurrentSpeedOption:ce,withCurrentCoverageOption:le}),p===`chat`&&(0,N.jsx)(V,{chatPersonality:ue,setChatPersonality:ge,customPrompt:de,setCustomPrompt:_e,personalityPresets:fe,summarizationThreshold:pe,setSummarizationThreshold:ve,contextInjectionChars:me,setContextInjectionChars:ye,llmThink:he,setLlmThink:be,saving:b,onSave:oe})]})})})]}):null}export{G as default}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{A as t,At as n,D as r,F as i,G as a,H as o,Lt as s,M as c,Y as l,Z as u,ct as d,d as f,nn as p,vt as m,y as h,yt as g}from"./vendor-lucide-DUPkM7me.js";import{r as _}from"./vendor-markdown-BanIOC5U.js";import{t as v}from"./ActionButton-B1Vpk6pw.js";import{_ as y,b,d as x,x as S,y as C}from"./index-DuJ0P36w.js";import{t as w}from"./CollapsibleSection-B_h9eS-x.js";import{t as T}from"./BrowserPage-BmNP5Bdw.js";var E=e(p(),1),D=[`password`,`directory`,`params`,`subdomain`,`username`,`general`],O=[`fast`,`medium`,`slow`],k=[`focused`,`broad`,`comprehensive`],A=null;function j(e,t){return t?e.includes(t)?e:[t,...e]:e}function M(){let{pushToast:e}=b(),t=A!==null,[n,r]=(0,E.useState)(A?.settings??null),[i,a]=(0,E.useState)(!t),[o,s]=(0,E.useState)(null),[c,l]=(0,E.useState)(!1),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)(!1),[m,h]=(0,E.useState)(A?.timeout??``),[g,_]=(0,E.useState)(A?.requestTimeout??``),[v,y]=(0,E.useState)(A?.inactivityTimeout??``),[x,C]=(0,E.useState)(A?.maxRuntime??``),[w,T]=(0,E.useState)(A?.cacheSize??``),[M,N]=(0,E.useState)(A?.cacheTtl??``),[P,F]=(0,E.useState)(A?.toolTtl??``),[I,L]=(0,E.useState)(A?.wordlistsDraft??[]),[R,z]=(0,E.useState)(A?.binaryPathOverrides??[]),[B,V]=(0,E.useState)(A?.chatPersonality??`nyxstrike`),[H,U]=(0,E.useState)(A?.customPrompt??``),[W,G]=(0,E.useState)(A?.personalityPresets??[]),[K,q]=(0,E.useState)(A?.summarizationThreshold??``),[J,Y]=(0,E.useState)(A?.contextInjectionChars??``),[X,Z]=(0,E.useState)(A?.llmThink??!1);function Q(e){let t=e.runtime.binary_path_overrides??{},n={settings:e,timeout:String(e.runtime.command_timeout),requestTimeout:String(e.runtime.request_timeout),inactivityTimeout:String(e.runtime.command_inactivity_timeout),maxRuntime:String(e.runtime.command_max_runtime),cacheSize:String(e.runtime.cache_size),cacheTtl:String(e.runtime.cache_ttl),toolTtl:String(e.runtime.tool_availability_ttl),wordlistsDraft:e.wordlists.map(e=>({...e})),binaryPathOverrides:Object.entries(t).map(([e,t])=>({tool:e,path:t})),chatPersonality:e.chat?.personality??`nyxstrike`,customPrompt:e.chat?.custom_prompt??``,personalityPresets:e.chat?.personality_presets??[],summarizationThreshold:String(e.chat?.summarization_threshold??20),contextInjectionChars:String(e.chat?.context_injection_chars??4e3),llmThink:!!(e.chat?.llm_think??!1)};A=n,r(n.settings),h(n.timeout),_(n.requestTimeout),y(n.inactivityTimeout),C(n.maxRuntime),T(n.cacheSize),N(n.cacheTtl),F(n.toolTtl),L(n.wordlistsDraft),z(n.binaryPathOverrides),V(n.chatPersonality),U(n.customPrompt),G(n.personalityPresets),q(n.summarizationThreshold),Y(n.contextInjectionChars),Z(n.llmThink)}(0,E.useEffect)(()=>{S.getSettings().then(e=>{Q(e.settings),a(!1)}).catch(e=>{A||s(String(e)),a(!1)})},[]);function ee(e,t,n){L(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}function te(){L(e=>[...e,{name:``,path:``,type:`directory`,speed:`medium`,coverage:`broad`}])}function ne(e){L(t=>t.filter((t,n)=>n!==e))}function re(){z(e=>[...e,{tool:``,path:``}])}function ie(e){z(t=>t.filter((t,n)=>n!==e))}function ae(e,t,n){z(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}async function oe(e,t){return S.testBinaryPathOverride(e,t)}async function $(){l(!0);try{let t={};for(let e of R){let n=e.tool.trim();n&&(t[n]=e.path)}let n=await S.patchSettings({command_timeout:Number(m),request_timeout:Number(g),command_inactivity_timeout:Number(v),command_max_runtime:Number(x),cache_size:Number(w),cache_ttl:Number(M),tool_availability_ttl:Number(P),binary_path_overrides:t});if(!n.success){e(`error`,`Failed to save runtime settings`);return}n.settings&&Q(n.settings),e(`success`,`Runtime settings saved`)}catch{e(`error`,`Failed to save runtime settings`)}finally{l(!1)}}async function se(){d(!0);try{if(!(await S.patchWordlists(I)).success){e(`error`,`Failed to save wordlists`);return}Q((await S.getSettings()).settings),e(`success`,`Wordlists saved`)}catch{e(`error`,`Failed to save wordlists`)}finally{d(!1)}}async function ce(){l(!0);try{let t=B===`custom`?H:W.find(e=>e.id===B)?.prompt??H,n=await S.patchSettings({},{personality:B,system_prompt:t,custom_prompt:H,summarization_threshold:Number(K),context_injection_chars:Number(J),llm_think:X});if(!n.success){e(`error`,`Failed to save chat settings`);return}n.settings&&Q(n.settings),e(`success`,`Chat settings saved`)}catch{e(`error`,`Failed to save chat settings`)}finally{l(!1)}}async function le(){p(!0);try{(await S.clearCache()).success?e(`success`,`Cache cleared`):e(`error`,`Failed to clear cache`)}catch{e(`error`,`Failed to clear cache`)}finally{p(!1)}}return{settings:n,loading:i,error:o,saving:c,wordlistsSaving:u,clearingCache:f,timeout:m,requestTimeout:g,inactivityTimeout:v,maxRuntime:x,cacheSize:w,cacheTtl:M,toolTtl:P,wordlistsDraft:I,binaryPathOverrides:R,chatPersonality:B,customPrompt:H,personalityPresets:W,summarizationThreshold:K,contextInjectionChars:J,llmThink:X,setTimeout_:h,setRequestTimeout:_,setInactivityTimeout:y,setMaxRuntime:C,setCacheSize:T,setCacheTtl:N,setToolTtl:F,setChatPersonality:V,setCustomPrompt:U,setSummarizationThreshold:q,setContextInjectionChars:Y,setLlmThink:Z,addWordlist:te,removeWordlist:ne,updateWordlist:ee,addBinaryOverride:re,removeBinaryOverride:ie,updateBinaryOverride:ae,testBinaryOverride:oe,saveRuntime:$,saveWordlists:se,saveChatSettings:ce,clearCache:le,withCurrentTypeOption:e=>j(D,e),withCurrentSpeedOption:e=>j(O,e),withCurrentCoverageOption:e=>j(k,e)}}var N=_();function P({label:e,value:t,mono:n,accent:r}){return(0,N.jsxs)(`div`,{className:`settings-row`,children:[(0,N.jsx)(`span`,{className:`settings-label`,children:e}),(0,N.jsx)(`span`,{className:`settings-value ${n?`mono`:``}`,style:r?{color:r}:{},children:t})]})}function F({label:e,unit:t,hint:n,value:r,onChange:i}){return(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:e}),(0,N.jsxs)(`div`,{className:`settings-input-row`,children:[(0,N.jsx)(`input`,{className:`settings-input mono`,name:`settings-number`,type:`number`,min:0,value:r,onChange:e=>i(e.target.value)}),(0,N.jsx)(`span`,{className:`settings-unit`,children:t})]}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:n})]})}function I({label:e,hint:t,value:n,onChange:r,rows:i=4}){return(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:e}),(0,N.jsx)(`textarea`,{className:`settings-input settings-textarea mono`,name:`settings-textarea`,rows:i,value:n,onChange:e=>r(e.target.value)}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:t})]})}function L({settings:e}){return(0,N.jsxs)(w,{title:`Server Environment`,badge:(0,N.jsx)(`span`,{className:`badge`,children:`read-only`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsx)(P,{label:`Host`,value:e.server.host,mono:!0}),(0,N.jsx)(P,{label:`Port`,value:String(e.server.port),mono:!0}),(0,N.jsx)(P,{label:`Auth Enabled`,value:e.server.auth_enabled?`Yes (NYXSTRIKE_API_TOKEN set)`:`No`,accent:e.server.auth_enabled?`var(--green)`:`var(--amber)`}),(0,N.jsx)(P,{label:`Debug Mode`,value:e.server.debug_mode?`On`:`Off`,accent:e.server.debug_mode?`var(--amber)`:`var(--text-dim)`}),(0,N.jsx)(P,{label:`Data Directory`,value:e.server.data_dir,mono:!0})]}),(0,N.jsxs)(`p`,{className:`settings-hint`,children:[`Change these by setting environment variables before starting the server:`,(0,N.jsx)(`code`,{children:` NYXSTRIKE_HOST`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_PORT`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_API_TOKEN`}),`,`,(0,N.jsx)(`code`,{children:` DEBUG_MODE`}),`, `,(0,N.jsx)(`code`,{children:`NYXSTRIKE_DATA_DIR`}),`.`]})]})}function R({status:e,title:t}){return e===`testing`?(0,N.jsx)(l,{size:14,className:`spin`,style:{color:`var(--text-dim)`}}):e===`ok`?(0,N.jsx)(`span`,{title:t,children:(0,N.jsx)(s,{size:14,style:{color:`var(--green)`}})}):e===`fail`?(0,N.jsx)(`span`,{title:t,children:(0,N.jsx)(n,{size:14,style:{color:`var(--red, #e05)`}})}):(0,N.jsx)(`span`,{style:{display:`inline-block`,width:14}})}function z({timeout:e,requestTimeout:n,inactivityTimeout:r,maxRuntime:a,cacheSize:o,cacheTtl:s,toolTtl:c,setTimeout_:l,setRequestTimeout:u,setInactivityTimeout:d,setMaxRuntime:p,setCacheSize:m,setCacheTtl:h,setToolTtl:g,binaryPathOverrides:_,onAddBinaryOverride:y,onRemoveBinaryOverride:b,onUpdateBinaryOverride:x,onTestBinaryOverride:S,saving:C,onSave:T}){let[D,O]=(0,E.useState)({}),[k,A]=(0,E.useState)({});function j(e){O(t=>{let n={...t};return delete n[e],n}),A(t=>{let n={...t};return delete n[e],n})}async function M(e,t,n){if(!(!t.trim()||!n.trim())){O(t=>({...t,[e]:`testing`}));try{let r=await S(t,n),i=r.success&&r.ok;if(O(t=>({...t,[e]:i?`ok`:`fail`})),r.resolved_path){let t=i?`${r.resolved_path} — exists and executable`:r.exists?`${r.resolved_path} — not executable`:`${r.resolved_path} — file not found`;A(n=>({...n,[e]:t}))}}catch{O(t=>({...t,[e]:`fail`})),A(t=>({...t,[e]:`Request failed`}))}}}return(0,N.jsxs)(w,{title:`Runtime Config`,badge:(0,N.jsx)(`span`,{className:`section-meta`,children:`changes apply immediately`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsx)(F,{label:`Command Timeout`,unit:`seconds`,hint:`Per-run hard timeout. Use 0 only in API when you need no hard timeout.`,value:e,onChange:l}),(0,N.jsx)(F,{label:`Request Timeout`,unit:`seconds`,hint:`How long clients wait for API responses (0 means no client-side request timeout).`,value:n,onChange:u}),(0,N.jsx)(F,{label:`Inactivity Timeout`,unit:`seconds`,hint:`Stops commands that produce no output for too long.`,value:r,onChange:d}),(0,N.jsx)(F,{label:`Max Runtime`,unit:`seconds`,hint:`Safety cap for any single tool execution.`,value:a,onChange:p}),(0,N.jsx)(F,{label:`Cache Size`,unit:`entries`,hint:`Maximum number of cached tool results.`,value:o,onChange:m}),(0,N.jsx)(F,{label:`Cache TTL`,unit:`seconds`,hint:`How long a cache entry lives before expiry.`,value:s,onChange:h}),(0,N.jsx)(F,{label:`Tool Availability TTL`,unit:`seconds`,hint:`How long the tool availability check is cached.`,value:c,onChange:g})]}),(0,N.jsxs)(`div`,{style:{marginTop:`1.25rem`},children:[(0,N.jsxs)(`div`,{className:`settings-actions`,style:{justifyContent:`space-between`,marginBottom:`8px`},children:[(0,N.jsx)(`span`,{className:`settings-label`,style:{margin:0,alignSelf:`center`},children:`Tool Binary Path Overrides`}),(0,N.jsxs)(v,{variant:`default`,onClick:y,disabled:C,children:[(0,N.jsx)(i,{size:14}),` Add Override`]})]}),_.length>0&&(0,N.jsxs)(`div`,{className:`wordlist-table`,children:[(0,N.jsxs)(`div`,{className:`wordlist-head`,style:{gridTemplateColumns:`1fr 2fr auto auto auto`},children:[(0,N.jsx)(`span`,{children:`Tool Name`}),(0,N.jsx)(`span`,{children:`Binary Path`}),(0,N.jsx)(`span`,{}),(0,N.jsx)(`span`,{children:`Test`}),(0,N.jsx)(`span`,{children:`Remove`})]}),_.map((e,t)=>(0,N.jsxs)(`div`,{className:`wordlist-row editable`,style:{gridTemplateColumns:`1fr 2fr auto auto auto`},children:[(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`binary-override-tool`,value:e.tool,placeholder:`tool-name`,onChange:e=>{x(t,`tool`,e.target.value),j(t)}}),(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`binary-override-path`,value:e.path,placeholder:`/absolute/path/to/binary or {HOME}/go/bin/tool`,onChange:e=>{x(t,`path`,e.target.value),j(t)}}),(0,N.jsx)(`span`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,width:20},children:(0,N.jsx)(R,{status:D[t]??`idle`,title:k[t]})}),(0,N.jsx)(v,{variant:`default`,disabled:C||D[t]===`testing`||!e.tool.trim()||!e.path.trim(),onClick:()=>M(t,e.tool,e.path),title:`Check that the binary exists and is executable on the server`,children:D[t]===`testing`?`Testing…`:`Test`}),(0,N.jsx)(v,{variant:`danger`,onClick:()=>b(t),disabled:C,title:`Remove override — tool reverts to system PATH resolution`,children:(0,N.jsx)(f,{size:14})})]},`binary-override-${t}`))]}),(0,N.jsxs)(`p`,{className:`settings-hint`,style:{marginTop:`6px`},children:[`Overrides the executable used for each named tool. Supports `,(0,N.jsx)(`code`,{children:`{HOME}`}),` substitution. Delete a row to revert that tool to system PATH resolution.`]})]}),(0,N.jsx)(`div`,{className:`settings-actions`,children:(0,N.jsxs)(v,{variant:`success`,onClick:T,disabled:C,children:[(0,N.jsx)(t,{size:14}),` `,C?`Saving…`:`Save Runtime`]})})]})}function B({wordlistsDraft:e,wordlistsSaving:n,onAddWordlist:r,onSaveWordlists:a,onUpdateWordlist:o,onRemoveWordlist:s,withCurrentTypeOption:c,withCurrentSpeedOption:l,withCurrentCoverageOption:u}){return(0,N.jsxs)(w,{title:`Wordlists`,badge:(0,N.jsx)(`span`,{className:`badge`,children:e.length}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-actions`,style:{justifyContent:`flex-end`,marginBottom:`10px`},children:[(0,N.jsxs)(v,{variant:`default`,onClick:r,disabled:n,children:[(0,N.jsx)(i,{size:14}),` Add Wordlist`]}),(0,N.jsxs)(v,{variant:`default`,onClick:a,disabled:n,children:[(0,N.jsx)(t,{size:14}),` `,n?`Saving…`:`Save Wordlists`]})]}),(0,N.jsxs)(`div`,{className:`wordlist-table`,children:[(0,N.jsxs)(`div`,{className:`wordlist-head`,children:[(0,N.jsx)(`span`,{children:`Name`}),(0,N.jsx)(`span`,{children:`Type`}),(0,N.jsx)(`span`,{children:`Speed`}),(0,N.jsx)(`span`,{children:`Coverage`}),(0,N.jsx)(`span`,{children:`Path`}),(0,N.jsx)(`span`,{children:`Actions`})]}),e.map((e,t)=>(0,N.jsxs)(`div`,{className:`wordlist-row editable`,children:[(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`wordlist-name`,value:e.name,onChange:e=>o(t,`name`,e.target.value),placeholder:`rockyou`,disabled:!!e.is_default}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-type`,value:e.type,onChange:e=>o(t,`type`,e.target.value),children:c(e.type).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-speed`,value:e.speed,onChange:e=>o(t,`speed`,e.target.value),children:l(e.speed).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`select`,{className:`settings-input wordlist-input`,name:`wordlist-coverage`,value:e.coverage,onChange:e=>o(t,`coverage`,e.target.value),children:u(e.coverage).map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))}),(0,N.jsx)(`input`,{className:`settings-input mono wordlist-input`,name:`wordlist-path`,value:e.path,onChange:e=>o(t,`path`,e.target.value),placeholder:`/usr/share/wordlists/rockyou.txt`}),(0,N.jsx)(v,{variant:e.is_default?`default`:`danger`,onClick:()=>s(t),disabled:n||!!e.is_default,title:e.is_default?`Default wordlists cannot be deleted`:`Remove row`,children:(0,N.jsx)(f,{size:14})})]},`wordlist-row-${t}`))]}),(0,N.jsxs)(`p`,{className:`settings-hint`,children:[`Changes are stored in `,(0,N.jsx)(`code`,{children:`wordlists.json`}),`. Entries here override defaults from `,(0,N.jsx)(`code`,{children:`config.py`}),`.`]})]})}function V({chatPersonality:e,setChatPersonality:n,customPrompt:r,setCustomPrompt:i,personalityPresets:a,summarizationThreshold:o,setSummarizationThreshold:s,contextInjectionChars:c,setContextInjectionChars:l,llmThink:u,setLlmThink:d,saving:f,onSave:p}){let m=[...a.map(e=>({id:e.id,label:e.label})),{id:`custom`,label:`Custom`}];return(0,N.jsxs)(w,{title:`Chat Widget`,badge:(0,N.jsx)(`span`,{className:`section-meta`,children:`changes apply immediately`}),defaultOpen:!0,children:[(0,N.jsxs)(`div`,{className:`settings-grid`,children:[(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:`Personality`}),(0,N.jsx)(`select`,{className:`settings-input settings-select-full`,name:`chat-personality`,value:e,onChange:e=>n(e.target.value),children:m.map(e=>(0,N.jsx)(`option`,{value:e.id,children:e.label},e.id))}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:`The system persona sent to the LLM at the start of every chat.`})]}),e===`custom`&&(0,N.jsx)(I,{label:`Custom Prompt`,hint:`Your custom system prompt. Saved independently and preserved when switching presets.`,value:r,onChange:i,rows:5}),(0,N.jsx)(F,{label:`Summarization Threshold`,unit:`messages`,hint:`When non-summarized message count exceeds this, the oldest half are summarized.`,value:o,onChange:s}),(0,N.jsx)(F,{label:`Context Injection Chars`,unit:`chars`,hint:`Max characters of session context injected into the chat prompt.`,value:c,onChange:l}),(0,N.jsxs)(`div`,{className:`settings-field`,children:[(0,N.jsx)(`label`,{className:`settings-label`,children:`LLM Think Mode`}),(0,N.jsxs)(`label`,{className:`theme-picker-toggle-row`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),(0,N.jsx)(`span`,{className:`theme-picker-toggle-text`,children:`Enable thinking / reasoning`})]}),(0,N.jsx)(`span`,{className:`settings-hint-inline`,children:`Activates chain-of-thought reasoning for models that support it (Ollama only).`})]})]}),(0,N.jsx)(`div`,{className:`settings-actions`,children:(0,N.jsxs)(v,{variant:`success`,onClick:p,disabled:f,children:[(0,N.jsx)(t,{size:14}),` `,f?`Saving…`:`Save Chat Settings`]})})]})}function H({isPageEnabled:e,togglePage:t,orderedPageConfigs:n,reorderPage:r}){let{dragHandlers:i,dragClassName:a}=x(r);return(0,N.jsxs)(w,{title:`Navigation Pages`,defaultOpen:!0,children:[(0,N.jsx)(`p`,{className:`settings-hint-inline`,style:{margin:`1rem 0`,textAlign:`center`},children:`Hide pages you don't use from the navigation bar, and drag tiles to reorder them. Your preferences are saved in this browser only.`}),(0,N.jsx)(`div`,{className:`settings-page-visibility-grid`,children:n.map(({page:n,label:r,description:o})=>{let s=e(n);return(0,N.jsxs)(`button`,{type:`button`,className:a(n,`settings-page-tile${s?` settings-page-tile--on`:` settings-page-tile--off`}`),onClick:()=>t(n),title:s?`Hide ${r}`:`Show ${r}`,...i(n),children:[(0,N.jsx)(`span`,{className:`settings-page-tile-drag`,title:`Drag to reorder`,children:(0,N.jsx)(d,{size:12})}),(0,N.jsx)(`span`,{className:`settings-page-tile-icon`,children:s?(0,N.jsx)(m,{size:14}):(0,N.jsx)(g,{size:14})}),(0,N.jsx)(`span`,{className:`settings-page-tile-label`,children:r}),(0,N.jsx)(`span`,{className:`settings-page-tile-desc`,children:o}),(0,N.jsx)(`span`,{className:`settings-page-tile-badge${s?` on`:` off`}`,children:s?`Visible`:`Hidden`})]},n)})})]})}var U=[{id:`server`,label:`Server Environment`,icon:(0,N.jsx)(r,{size:13})},{id:`pages`,label:`Navigation Pages`,icon:(0,N.jsx)(m,{size:13})},{id:`runtime`,label:`Runtime Config`,icon:(0,N.jsx)(h,{size:13})},{id:`wordlists`,label:`Wordlists`,icon:(0,N.jsx)(u,{size:13})},{id:`chat`,label:`Chat Widget`,icon:(0,N.jsx)(a,{size:13})}];function W({section:e,setSection:t}){return(0,N.jsx)(`nav`,{className:`browser-nav browser-nav-narrow`,children:U.map(n=>(0,N.jsxs)(`button`,{className:`browser-nav-item${e===n.id?` browser-nav-item--active`:``}`,onClick:()=>t(n.id),children:[n.icon,(0,N.jsx)(`span`,{className:`browser-nav-label`,children:n.label})]},n.id))})}function G({themeId:e,setThemeId:t,reduceTextureEffects:r,setReduceTextureEffects:i,isPageEnabled:a,togglePage:s,orderedPageConfigs:l,reorderPage:u}){let[d,p]=(0,E.useState)(!1),[m,h]=(0,E.useState)(`server`),{settings:g,loading:_,error:v,saving:b,wordlistsSaving:x,clearingCache:S,timeout:w,requestTimeout:D,inactivityTimeout:O,maxRuntime:k,cacheSize:A,cacheTtl:j,toolTtl:P,wordlistsDraft:F,binaryPathOverrides:I,setTimeout_:R,setRequestTimeout:U,setInactivityTimeout:G,setMaxRuntime:K,setCacheSize:q,setCacheTtl:J,setToolTtl:Y,addWordlist:X,removeWordlist:Z,updateWordlist:Q,addBinaryOverride:ee,removeBinaryOverride:te,updateBinaryOverride:ne,testBinaryOverride:re,saveRuntime:ie,saveWordlists:ae,saveChatSettings:oe,clearCache:$,withCurrentTypeOption:se,withCurrentSpeedOption:ce,withCurrentCoverageOption:le,chatPersonality:ue,customPrompt:de,personalityPresets:fe,summarizationThreshold:pe,contextInjectionChars:me,llmThink:he,setChatPersonality:ge,setCustomPrompt:_e,setSummarizationThreshold:ve,setContextInjectionChars:ye,setLlmThink:be}=M();return _?(0,N.jsxs)(`div`,{className:`loading-state`,children:[(0,N.jsx)(c,{size:20,className:`spin`,color:`var(--green)`}),(0,N.jsx)(`p`,{children:`Loading settings…`})]}):v?(0,N.jsxs)(`div`,{className:`error-banner`,children:[(0,N.jsx)(n,{size:16}),` `,v]}):g?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(y,{isOpen:d,themeId:e,setThemeId:t,reduceTextureEffects:r,setReduceTextureEffects:i,onClose:()=>p(!1)}),(0,N.jsx)(T,{className:`settings-page`,top:(0,N.jsxs)(`div`,{className:`kpi-row settings-appearance-row`,children:[(0,N.jsxs)(`div`,{className:`stat-card settings-appearance-card settings-appearance-card--action settings-appearance-card--clickable`,role:`button`,tabIndex:0,onClick:()=>p(!0),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),p(!0))},title:`Open theme picker`,children:[(0,N.jsx)(`div`,{className:`stat-icon`,style:{color:`var(--accent)`},children:(0,N.jsx)(o,{size:20})}),(0,N.jsxs)(`div`,{className:`stat-body settings-appearance-body`,children:[(0,N.jsx)(`div`,{className:`stat-label`,children:`Appearance`}),(0,N.jsx)(`div`,{className:`stat-value settings-appearance-value`,children:C.find(t=>t.id===e)?.label??e}),(0,N.jsx)(`div`,{className:`stat-sub`,children:`Preview and apply a theme instantly`}),(0,N.jsx)(`div`,{className:`settings-appearance-tap-hint mono`,children:`Click card to open picker`})]})]}),(0,N.jsxs)(`div`,{className:`stat-card settings-appearance-card settings-maintenance-card settings-appearance-card--clickable${S?` settings-appearance-card--disabled`:``}`,role:`button`,tabIndex:0,onClick:()=>{S||$()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&!S&&(e.preventDefault(),$())},title:`Clear all cached tool results`,children:[(0,N.jsx)(`div`,{className:`stat-icon`,style:{color:`var(--warning)`},children:S?(0,N.jsx)(c,{size:20,className:`spin`}):(0,N.jsx)(f,{size:20})}),(0,N.jsxs)(`div`,{className:`stat-body settings-appearance-body`,children:[(0,N.jsx)(`div`,{className:`stat-label`,children:`Maintenance`}),(0,N.jsx)(`div`,{className:`stat-value settings-appearance-value`,children:`Cache`}),(0,N.jsx)(`div`,{className:`stat-sub`,children:`Clear cached tool results and force fresh data`}),(0,N.jsx)(`div`,{className:`settings-appearance-tap-hint mono`,children:S?`Clearing…`:`Click card to clear cache`})]})]})]}),nav:(0,N.jsx)(W,{section:m,setSection:h}),main:(0,N.jsx)(`div`,{className:`browser-main`,children:(0,N.jsxs)(`div`,{className:`browser-scroll`,children:[m===`server`&&(0,N.jsx)(L,{settings:g}),m===`pages`&&(0,N.jsx)(H,{isPageEnabled:a,togglePage:s,orderedPageConfigs:l,reorderPage:u}),m===`runtime`&&(0,N.jsx)(z,{timeout:w,requestTimeout:D,inactivityTimeout:O,maxRuntime:k,cacheSize:A,cacheTtl:j,toolTtl:P,setTimeout_:R,setRequestTimeout:U,setInactivityTimeout:G,setMaxRuntime:K,setCacheSize:q,setCacheTtl:J,setToolTtl:Y,binaryPathOverrides:I,onAddBinaryOverride:ee,onRemoveBinaryOverride:te,onUpdateBinaryOverride:ne,onTestBinaryOverride:re,saving:b,onSave:ie}),m===`wordlists`&&(0,N.jsx)(B,{wordlistsDraft:F,wordlistsSaving:x,onAddWordlist:X,onSaveWordlists:ae,onUpdateWordlist:Q,onRemoveWordlist:Z,withCurrentTypeOption:se,withCurrentSpeedOption:ce,withCurrentCoverageOption:le}),m===`chat`&&(0,N.jsx)(V,{chatPersonality:ue,setChatPersonality:ge,customPrompt:de,setCustomPrompt:_e,personalityPresets:fe,summarizationThreshold:pe,setSummarizationThreshold:ve,contextInjectionChars:me,setContextInjectionChars:ye,llmThink:he,setLlmThink:be,saving:b,onSave:oe})]})})})]}):null}export{G as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/Sheet-CPyVkJ3G.js b/frontend/dashboard/assets/Sheet-BAT5hjNH.js similarity index 78% rename from frontend/dashboard/assets/Sheet-CPyVkJ3G.js rename to frontend/dashboard/assets/Sheet-BAT5hjNH.js index 5883516a1..8ba9084a7 100644 --- a/frontend/dashboard/assets/Sheet-CPyVkJ3G.js +++ b/frontend/dashboard/assets/Sheet-BAT5hjNH.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,Dt as n}from"./vendor-lucide-tZ8AzO6l.js";import{n as r}from"./vendor-react-DL0_5iWL.js";import{r as i}from"./vendor-markdown-CZSHC-G5.js";var a=r(),o=e(t(),1);function s(e,t){(0,o.useEffect)(()=>{if(!e)return;function n(e){e.key===`Escape`&&(e.preventDefault(),t())}return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t])}var c=`a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])`;function l(e,t){(0,o.useEffect)(()=>{if(!t)return;let n=document.activeElement,r=e.current;r&&!r.contains(document.activeElement)&&r.querySelector(c)?.focus();function i(t){if(t.key!==`Tab`)return;let n=e.current;if(!n)return;let r=Array.from(n.querySelectorAll(c));if(r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(t.preventDefault(),a.focus()):!t.shiftKey&&document.activeElement===a&&(t.preventDefault(),i.focus())}return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),n?.focus()}},[t,e])}var u=i();function d({isOpen:e,title:t,onClose:r,footer:i,children:c,size:d=`md`,disableClose:f=!1,className:p=``,variant:m=`panel`,ariaLabel:h}){let g=(0,o.useRef)(null),_=!f;return s(e&&_,r),l(g,e),e?(0,a.createPortal)((0,u.jsx)(`div`,{className:`sheet-backdrop${m===`centered`?` sheet-backdrop--centered`:``}`,onClick:e=>{e.target===e.currentTarget&&_&&r()},children:(0,u.jsxs)(`div`,{ref:g,className:`sheet sheet--${d}${m===`centered`?` sheet--centered`:``}${p?` ${p}`:``}`,role:`dialog`,"aria-modal":`true`,"aria-label":h,children:[(0,u.jsxs)(`div`,{className:`sheet-header`,children:[(0,u.jsx)(`div`,{className:`sheet-title-row`,children:t}),(0,u.jsx)(`button`,{className:`sheet-close`,onClick:r,disabled:!_,"aria-label":`Close`,children:(0,u.jsx)(n,{size:18})})]}),(0,u.jsx)(`div`,{className:`sheet-body`,children:c}),i&&(0,u.jsx)(`div`,{className:`sheet-footer`,children:i})]})}),document.body):null}export{l as n,s as r,d as t}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,nn as n}from"./vendor-lucide-DUPkM7me.js";import{n as r}from"./vendor-react-CXyOqTrO.js";import{r as i}from"./vendor-markdown-BanIOC5U.js";var a=r(),o=e(n(),1);function s(e,t){(0,o.useEffect)(()=>{if(!e)return;function n(e){e.key===`Escape`&&(e.preventDefault(),t())}return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t])}var c=`a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])`;function l(e,t){(0,o.useEffect)(()=>{if(!t)return;let n=document.activeElement,r=e.current;r&&!r.contains(document.activeElement)&&r.querySelector(c)?.focus();function i(t){if(t.key!==`Tab`)return;let n=e.current;if(!n)return;let r=Array.from(n.querySelectorAll(c));if(r.length===0)return;let i=r[0],a=r[r.length-1];t.shiftKey&&document.activeElement===i?(t.preventDefault(),a.focus()):!t.shiftKey&&document.activeElement===a&&(t.preventDefault(),i.focus())}return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),n?.focus()}},[t,e])}var u=i();function d({isOpen:e,title:n,onClose:r,footer:i,children:c,size:d=`md`,disableClose:f=!1,className:p=``,variant:m=`panel`,ariaLabel:h}){let g=(0,o.useRef)(null),_=!f;return s(e&&_,r),l(g,e),e?(0,a.createPortal)((0,u.jsx)(`div`,{className:`sheet-backdrop${m===`centered`?` sheet-backdrop--centered`:``}`,onClick:e=>{e.target===e.currentTarget&&_&&r()},children:(0,u.jsxs)(`div`,{ref:g,className:`sheet sheet--${d}${m===`centered`?` sheet--centered`:``}${p?` ${p}`:``}`,role:`dialog`,"aria-modal":`true`,"aria-label":h,children:[(0,u.jsxs)(`div`,{className:`sheet-header`,children:[(0,u.jsx)(`div`,{className:`sheet-title-row`,children:n}),(0,u.jsx)(`button`,{className:`sheet-close`,onClick:r,disabled:!_,"aria-label":`Close`,children:(0,u.jsx)(t,{size:18})})]}),(0,u.jsx)(`div`,{className:`sheet-body`,children:c}),i&&(0,u.jsx)(`div`,{className:`sheet-footer`,children:i})]})}),document.body):null}export{l as n,s as r,d as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/TasksPage-Cj7_M9HF.js b/frontend/dashboard/assets/TasksPage-Cj7_M9HF.js new file mode 100644 index 000000000..b7346479e --- /dev/null +++ b/frontend/dashboard/assets/TasksPage-Cj7_M9HF.js @@ -0,0 +1 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,Et as n,M as r,Nt as i,Pt as a,Z as o,a as s,jt as c,nn as l,q as u,tn as d}from"./vendor-lucide-DUPkM7me.js";import{r as f}from"./vendor-markdown-BanIOC5U.js";import"./Sheet-BAT5hjNH.js";import{b as p,x as m}from"./index-DuJ0P36w.js";import{t as h}from"./BrowserPage-BmNP5Bdw.js";import{t as g}from"./KpiStrip-L-nGhyMV.js";import"./EmptyState-Y8WsbUda.js";var _=e(l(),1);function v(e){let t=Object.values(e.processes).map(e=>{let t=e;return{pid:e.pid,task_id:e.task_id??null,ai_task:e.ai_task??!1,command:e.command,status:e.status,runtime:t.runtime_formatted??`—`,progress_percent:`${((e.progress??0)*100).toFixed(1)}%`,progress_bar:``,eta:t.eta_formatted??`—`,bytes_processed:e.bytes_processed,last_output:e.last_output}});return{timestamp:e.timestamp,total_processes:e.total_count,visual_dashboard:``,processes:t,system_load:e.system_load}}function y(e){let[t,n]=(0,_.useState)(e?.processes??null),[r,i]=(0,_.useState)(e?{workers:4,queued:2,completed:38}:null),[a,o]=(0,_.useState)(!e),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(e?`polling`:`streaming`),{pushToast:d}=p(),f=(0,_.useRef)(null),h=(0,_.useRef)(null),g=(0,_.useRef)(null),y=(0,_.useRef)(0),b=(0,_.useRef)(!1),x=(0,_.useCallback)(async()=>{if(!e)try{let[e,t]=await Promise.all([m.processDashboard(),m.processPoolStats()]);n(e),i(t),c(null)}catch(e){c(String(e))}finally{o(!1)}},[e]);(0,_.useEffect)(()=>{if(e)return;b.current=!1;function t(){h.current?.close(),h.current=null}function r(){f.current&&=(clearInterval(f.current),null)}function a(){g.current&&=(clearTimeout(g.current),null)}function s(){r(),u(`polling`),x(),f.current=setInterval(x,3e3)}function l(){a();let e=y.current+1;y.current=e;let t=Math.min(3e4,1e3*2**Math.max(0,e-1));g.current=setTimeout(()=>{b.current||d()},t)}function d(){t();try{let e=m.processesStream();h.current=e,e.onopen=()=>{b.current||(y.current=0,a(),r(),u(`streaming`))},e.onmessage=e=>{if(!b.current)try{let t=JSON.parse(e.data);t?.success&&(n(v(t)),i(t.pool_stats??null),c(null),o(!1))}catch{c(`Stream parse error`)}},e.onerror=()=>{b.current||(u(`error`),t(),s(),l())}}catch{if(b.current)return;u(`error`),s(),l()}}return d(),()=>{b.current=!0,t(),r(),a()}},[e,x]);let S=(0,_.useCallback)(async(e,t)=>{try{let n=await e();d(n.success?`success`:`error`,n.success?n.message??`${t} OK`:n.error??`${t} failed`)}catch(e){d(`error`,String(e))}await x(),t===`Terminated`&&n(e=>e&&{...e,processes:e.processes.filter(e=>e.status!==`terminated`)})},[x,d]);return{data:t,poolStats:r,loading:a,error:s,streamStatus:l,fetchData:x,pauseProcess:e=>S(()=>m.pauseProcess(e),`Paused`),resumeProcess:e=>S(()=>m.resumeProcess(e),`Resumed`),terminateProcess:e=>S(()=>m.terminateProcess(e),`Terminated`),cancelAiTask:e=>S(()=>m.cancelAiTask(e),`Cancelled`)}}var b=f();function x({data:e,streamStatus:t}){let r=e?.system_load,i=t===`streaming`?`Live`:t===`polling`?`Polling`:`Offline`,a=t===`streaming`?`var(--green)`:t===`polling`?`var(--blue)`:`var(--red)`,o=e?.timestamp?.slice(11,19)??`n/a`;return(0,b.jsx)(g,{items:[{icon:(0,b.jsx)(d,{size:16}),label:`Worker Pool · updated ${o}`,value:i,accent:a},{icon:(0,b.jsx)(n,{size:16}),label:`CPU · system load`,value:r?`${r.cpu_percent.toFixed(1)}%`:`n/a`,accent:`var(--green)`},{icon:(0,b.jsx)(u,{size:16}),label:`Memory · system memory`,value:r?`${r.memory_percent.toFixed(1)}%`:`n/a`,accent:`var(--blue)`},{icon:(0,b.jsx)(s,{size:16}),label:`Connections · active sockets`,value:r?r.active_connections:`n/a`,accent:`var(--amber)`}]})}function S({processes:e,streamStatus:t,onRefresh:n,onPause:s,onResume:l,onTerminate:u,onCancelAiTask:d}){return(0,b.jsxs)(`section`,{className:`section`,children:[(0,b.jsxs)(`div`,{className:`section-header`,children:[(0,b.jsxs)(`h3`,{children:[`Active Processes `,(0,b.jsx)(`span`,{className:`badge`,children:e.length})]}),(0,b.jsx)(`div`,{className:`section-header-controls`,children:t!==`streaming`&&(0,b.jsx)(`button`,{className:`icon-btn`,onClick:n,title:`Refresh`,children:(0,b.jsx)(r,{size:14})})})]}),e.length===0?(0,b.jsxs)(`div`,{className:`tasks-empty`,children:[(0,b.jsx)(o,{size:32,color:`var(--text-dim)`}),(0,b.jsx)(`p`,{children:`No active processes`})]}):(0,b.jsxs)(`div`,{className:`tasks-table`,children:[(0,b.jsxs)(`div`,{className:`tasks-thead table-thead`,children:[(0,b.jsx)(`span`,{children:`PID`}),(0,b.jsx)(`span`,{children:`Command`}),(0,b.jsx)(`span`,{children:`Status`}),(0,b.jsx)(`span`,{children:`Progress`}),(0,b.jsx)(`span`,{children:`Runtime`}),(0,b.jsx)(`span`,{children:`ETA`}),(0,b.jsx)(`span`,{children:`Actions`})]}),e.map(e=>{let t=!!e.ai_task,n=t?e.task_id??e.command:String(e.pid),r=parseFloat(e.progress_percent)||0,o=e.status===`running`?`var(--green)`:e.status===`paused`?`var(--amber)`:`var(--text-dim)`;return(0,b.jsxs)(_.Fragment,{children:[(0,b.jsxs)(`div`,{className:`tasks-row`,children:[(0,b.jsx)(`span`,{className:`mono tasks-pid`,title:t?e.task_id??``:``,children:t?`AI`:e.pid}),(0,b.jsx)(`span`,{className:`mono tasks-cmd`,title:e.command,children:e.command}),(0,b.jsx)(`span`,{className:`tasks-status tasks-status--${e.status}`,children:e.status}),(0,b.jsxs)(`div`,{className:`tasks-progress`,children:[(0,b.jsx)(`div`,{className:`tasks-progress-bar-bg`,children:(0,b.jsx)(`div`,{className:`tasks-progress-bar-fill`,style:{width:`${Math.min(100,r)}%`,background:o}})}),(0,b.jsx)(`span`,{className:`tasks-pct mono`,children:e.progress_percent})]}),(0,b.jsx)(`span`,{className:`mono`,children:e.runtime}),(0,b.jsx)(`span`,{className:`mono`,children:e.eta}),(0,b.jsxs)(`div`,{className:`tasks-actions`,children:[!t&&e.status!==`paused`&&(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--pause`,title:`Pause`,onClick:()=>s(e.pid),children:(0,b.jsx)(a,{size:14})}),!t&&e.status===`paused`&&(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--resume`,title:`Resume`,onClick:()=>l(e.pid),children:(0,b.jsx)(i,{size:14})}),t?(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--stop`,title:`Cancel AI task`,onClick:()=>d(e.task_id??``),children:(0,b.jsx)(c,{size:14})}):(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--stop`,title:`Terminate`,onClick:()=>u(e.pid),children:(0,b.jsx)(c,{size:14})})]})]}),!t&&e.status===`running`&&e.last_output&&(0,b.jsx)(`div`,{className:`tasks-row-output mono`,children:e.last_output})]},n)})]})]})}function C({demoData:e}){let{data:n,poolStats:i,loading:a,error:o,streamStatus:s,fetchData:c,pauseProcess:l,resumeProcess:u,terminateProcess:d,cancelAiTask:f}=y(e);if(a&&!n)return(0,b.jsxs)(`div`,{className:`loading-state`,children:[(0,b.jsx)(r,{size:20,className:`spin`,color:`var(--green)`}),(0,b.jsx)(`p`,{children:`Loading tasks…`})]});if(o&&!n)return(0,b.jsxs)(`div`,{className:`error-banner`,children:[(0,b.jsx)(t,{size:16}),` `,o]});let p=(n?.processes??[]).slice(-100);return(0,b.jsx)(h,{className:`tasks-page`,top:i?(0,b.jsx)(x,{data:n,streamStatus:s}):void 0,main:(0,b.jsx)(`div`,{className:`browser-main`,children:(0,b.jsx)(`div`,{className:`browser-scroll`,children:(0,b.jsx)(S,{processes:p,streamStatus:s,onRefresh:c,onPause:l,onResume:u,onTerminate:d,onCancelAiTask:f})})})})}export{C as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/TasksPage-DX3euw-I.js b/frontend/dashboard/assets/TasksPage-DX3euw-I.js deleted file mode 100644 index 4c64ac0c5..000000000 --- a/frontend/dashboard/assets/TasksPage-DX3euw-I.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,At as r,Ct as i,Dt as a,G as o,Ot as s,Qt as c,Y as l,a as u,jt as d}from"./vendor-lucide-tZ8AzO6l.js";import{r as f}from"./vendor-markdown-CZSHC-G5.js";import"./Sheet-CPyVkJ3G.js";import{b as p,x as m}from"./index-DoDmaCqd.js";import{t as h}from"./BrowserPage-B37UOYE2.js";import{t as g}from"./KpiStrip-Cnf9m6Sg.js";var _=e(t(),1);function v(e){let t=Object.values(e.processes).map(e=>{let t=e;return{pid:e.pid,task_id:e.task_id??null,ai_task:e.ai_task??!1,command:e.command,status:e.status,runtime:t.runtime_formatted??`—`,progress_percent:`${((e.progress??0)*100).toFixed(1)}%`,progress_bar:``,eta:t.eta_formatted??`—`,bytes_processed:e.bytes_processed,last_output:e.last_output}});return{timestamp:e.timestamp,total_processes:e.total_count,visual_dashboard:``,processes:t,system_load:e.system_load}}function y(e){let[t,n]=(0,_.useState)(e?.processes??null),[r,i]=(0,_.useState)(e?{workers:4,queued:2,completed:38}:null),[a,o]=(0,_.useState)(!e),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(e?`polling`:`streaming`),{pushToast:d}=p(),f=(0,_.useRef)(null),h=(0,_.useRef)(null),g=(0,_.useRef)(null),y=(0,_.useRef)(0),b=(0,_.useRef)(!1),x=(0,_.useCallback)(async()=>{if(!e)try{let[e,t]=await Promise.all([m.processDashboard(),m.processPoolStats()]);n(e),i(t),c(null)}catch(e){c(String(e))}finally{o(!1)}},[e]);(0,_.useEffect)(()=>{if(e)return;b.current=!1;function t(){h.current?.close(),h.current=null}function r(){f.current&&=(clearInterval(f.current),null)}function a(){g.current&&=(clearTimeout(g.current),null)}function s(){r(),u(`polling`),x(),f.current=setInterval(x,3e3)}function l(){a();let e=y.current+1;y.current=e;let t=Math.min(3e4,1e3*2**Math.max(0,e-1));g.current=setTimeout(()=>{b.current||d()},t)}function d(){t();try{let e=m.processesStream();h.current=e,e.onopen=()=>{b.current||(y.current=0,a(),r(),u(`streaming`))},e.onmessage=e=>{if(!b.current)try{let t=JSON.parse(e.data);t?.success&&(n(v(t)),i(t.pool_stats??null),c(null),o(!1))}catch{c(`Stream parse error`)}},e.onerror=()=>{b.current||(u(`error`),t(),s(),l())}}catch{if(b.current)return;u(`error`),s(),l()}}return d(),()=>{b.current=!0,t(),r(),a()}},[e,x]);let S=(0,_.useCallback)(async(e,t)=>{try{let n=await e();d(n.success?`success`:`error`,n.success?n.message??`${t} OK`:n.error??`${t} failed`)}catch(e){d(`error`,String(e))}await x(),t===`Terminated`&&n(e=>e&&{...e,processes:e.processes.filter(e=>e.status!==`terminated`)})},[x,d]);return{data:t,poolStats:r,loading:a,error:s,streamStatus:l,fetchData:x,pauseProcess:e=>S(()=>m.pauseProcess(e),`Paused`),resumeProcess:e=>S(()=>m.resumeProcess(e),`Resumed`),terminateProcess:e=>S(()=>m.terminateProcess(e),`Terminated`),cancelAiTask:e=>S(()=>m.cancelAiTask(e),`Cancelled`)}}var b=f();function x({data:e,streamStatus:t}){let n=e?.system_load,r=t===`streaming`?`Live`:t===`polling`?`Polling`:`Offline`,a=t===`streaming`?`var(--green)`:t===`polling`?`var(--blue)`:`var(--red)`,s=e?.timestamp?.slice(11,19)??`n/a`;return(0,b.jsx)(g,{items:[{icon:(0,b.jsx)(c,{size:16}),label:`Worker Pool · updated ${s}`,value:r,accent:a},{icon:(0,b.jsx)(i,{size:16}),label:`CPU · system load`,value:n?`${n.cpu_percent.toFixed(1)}%`:`n/a`,accent:`var(--green)`},{icon:(0,b.jsx)(o,{size:16}),label:`Memory · system memory`,value:n?`${n.memory_percent.toFixed(1)}%`:`n/a`,accent:`var(--blue)`},{icon:(0,b.jsx)(u,{size:16}),label:`Connections · active sockets`,value:n?n.active_connections:`n/a`,accent:`var(--amber)`}]})}function S({processes:e,streamStatus:t,onRefresh:i,onPause:a,onResume:o,onTerminate:c,onCancelAiTask:u}){return(0,b.jsxs)(`section`,{className:`section`,children:[(0,b.jsxs)(`div`,{className:`section-header`,children:[(0,b.jsxs)(`h3`,{children:[`Active Processes `,(0,b.jsx)(`span`,{className:`badge`,children:e.length})]}),(0,b.jsx)(`div`,{className:`section-header-controls`,children:t!==`streaming`&&(0,b.jsx)(`button`,{className:`icon-btn`,onClick:i,title:`Refresh`,children:(0,b.jsx)(n,{size:14})})})]}),e.length===0?(0,b.jsxs)(`div`,{className:`tasks-empty`,children:[(0,b.jsx)(l,{size:32,color:`var(--text-dim)`}),(0,b.jsx)(`p`,{children:`No active processes`})]}):(0,b.jsxs)(`div`,{className:`tasks-table`,children:[(0,b.jsxs)(`div`,{className:`tasks-thead table-thead`,children:[(0,b.jsx)(`span`,{children:`PID`}),(0,b.jsx)(`span`,{children:`Command`}),(0,b.jsx)(`span`,{children:`Status`}),(0,b.jsx)(`span`,{children:`Progress`}),(0,b.jsx)(`span`,{children:`Runtime`}),(0,b.jsx)(`span`,{children:`ETA`}),(0,b.jsx)(`span`,{children:`Actions`})]}),e.map(e=>{let t=!!e.ai_task,n=t?e.task_id??e.command:String(e.pid),i=parseFloat(e.progress_percent)||0,l=e.status===`running`?`var(--green)`:e.status===`paused`?`var(--amber)`:`var(--text-dim)`;return(0,b.jsxs)(_.Fragment,{children:[(0,b.jsxs)(`div`,{className:`tasks-row`,children:[(0,b.jsx)(`span`,{className:`mono tasks-pid`,title:t?e.task_id??``:``,children:t?`AI`:e.pid}),(0,b.jsx)(`span`,{className:`mono tasks-cmd`,title:e.command,children:e.command}),(0,b.jsx)(`span`,{className:`tasks-status tasks-status--${e.status}`,children:e.status}),(0,b.jsxs)(`div`,{className:`tasks-progress`,children:[(0,b.jsx)(`div`,{className:`tasks-progress-bar-bg`,children:(0,b.jsx)(`div`,{className:`tasks-progress-bar-fill`,style:{width:`${Math.min(100,i)}%`,background:l}})}),(0,b.jsx)(`span`,{className:`tasks-pct mono`,children:e.progress_percent})]}),(0,b.jsx)(`span`,{className:`mono`,children:e.runtime}),(0,b.jsx)(`span`,{className:`mono`,children:e.eta}),(0,b.jsxs)(`div`,{className:`tasks-actions`,children:[!t&&e.status!==`paused`&&(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--pause`,title:`Pause`,onClick:()=>a(e.pid),children:(0,b.jsx)(d,{size:14})}),!t&&e.status===`paused`&&(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--resume`,title:`Resume`,onClick:()=>o(e.pid),children:(0,b.jsx)(r,{size:14})}),t?(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--stop`,title:`Cancel AI task`,onClick:()=>u(e.task_id??``),children:(0,b.jsx)(s,{size:14})}):(0,b.jsx)(`button`,{className:`tasks-btn tasks-btn--stop`,title:`Terminate`,onClick:()=>c(e.pid),children:(0,b.jsx)(s,{size:14})})]})]}),!t&&e.status===`running`&&e.last_output&&(0,b.jsx)(`div`,{className:`tasks-row-output mono`,children:e.last_output})]},n)})]})]})}function C({demoData:e}){let{data:t,poolStats:r,loading:i,error:o,streamStatus:s,fetchData:c,pauseProcess:l,resumeProcess:u,terminateProcess:d,cancelAiTask:f}=y(e);if(i&&!t)return(0,b.jsxs)(`div`,{className:`loading-state`,children:[(0,b.jsx)(n,{size:20,className:`spin`,color:`var(--green)`}),(0,b.jsx)(`p`,{children:`Loading tasks…`})]});if(o&&!t)return(0,b.jsxs)(`div`,{className:`error-banner`,children:[(0,b.jsx)(a,{size:16}),` `,o]});let p=(t?.processes??[]).slice(-100);return(0,b.jsx)(h,{className:`tasks-page`,top:r?(0,b.jsx)(x,{data:t,streamStatus:s}):void 0,main:(0,b.jsx)(`div`,{className:`browser-main`,children:(0,b.jsx)(`div`,{className:`browser-scroll`,children:(0,b.jsx)(S,{processes:p,streamStatus:s,onRefresh:c,onPause:l,onResume:u,onTerminate:d,onCancelAiTask:f})})})})}export{C as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/TasksPage-DihLoG0t.css b/frontend/dashboard/assets/TasksPage-DihLoG0t.css deleted file mode 100644 index d8122bdfa..000000000 --- a/frontend/dashboard/assets/TasksPage-DihLoG0t.css +++ /dev/null @@ -1 +0,0 @@ -.ui-empty-state{text-align:center;color:var(--text-dim);animation:empty-state-in var(--t-slow) var(--ease-out-expressive) both;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;display:flex}.ui-empty-state-icon{color:var(--text-dim);margin-bottom:6px;animation:3s ease-in-out infinite empty-state-float}.ui-empty-state-title{color:var(--text-h);font-size:13.5px;font-weight:600}.ui-empty-state-description{max-width:360px;font-size:12.5px}.ui-empty-state-action{margin-top:8px}.tasks-page .section{background:0 0;border:none;border-radius:0;overflow:visible}.tasks-pool-row{flex-wrap:wrap;gap:12px;padding:12px 0 4px;display:flex}.tasks-kpi-row{padding:10px 0 2px}.tasks-kpi-row>span{border:1px solid var(--border);background:var(--bg-card);border-radius:999px;padding:5px 10px}.tasks-stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.tasks-stats-item{border:1px solid var(--border);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex}.tasks-stats-key{color:var(--text-dim);text-transform:uppercase;letter-spacing:.35px;font-size:11px}.tasks-stats-val{color:var(--text-h);word-break:break-word;font-size:13px}.tasks-stats-sub{color:var(--text-dim);font-size:10px}.tasks-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:10px 0 2px;display:grid}.tasks-kpi-card{border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-card2) 75%, var(--bg-card)) 0%, var(--bg-card) 100%);border-radius:8px;flex-direction:column;gap:6px;min-height:62px;padding:10px;display:flex}.tasks-kpi-card--cpu{border-color:color-mix(in srgb, var(--green) 32%, var(--border))}.tasks-kpi-card--mem{border-color:color-mix(in srgb, var(--blue) 32%, var(--border))}.tasks-kpi-card--net{border-color:color-mix(in srgb, var(--amber) 28%, var(--border))}.tasks-kpi-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.tasks-kpi-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.35px;font-size:11px}.tasks-kpi-value{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.tasks-pool-stat{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.tasks-pool-label{color:var(--text-dim);text-transform:capitalize}.tasks-pool-val{color:var(--text-h);font-weight:600}.tasks-table{border:1px solid var(--border);border-radius:6px;font-size:12px;overflow:hidden}.tasks-thead,.tasks-row{grid-template-columns:60px 1fr 90px 160px 80px 80px 90px;align-items:center;gap:0;padding:8px 12px;display:grid}.tasks-row{border-bottom:1px solid var(--border);color:var(--text)}.tasks-row:last-child{border-bottom:none}.tasks-row:hover{background:var(--bg-card2)}.tasks-row-output{border-bottom:1px solid var(--border);border-top:1px dashed var(--border);background:var(--bg-card2);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;max-height:110px;padding:6px 12px 8px 84px;font-size:11px;overflow-y:auto}.tasks-row-output:last-child{border-bottom:none}.tasks-pid{color:var(--text-dim)}.tasks-cmd{white-space:nowrap;text-overflow:ellipsis;color:var(--text-h);overflow:hidden}.tasks-status{text-transform:capitalize;border-radius:4px;width:fit-content;padding:2px 8px;font-size:11px;font-weight:600}.tasks-status--running{background:var(--green)22;color:var(--green)}.tasks-status--paused{background:var(--amber)22;color:var(--amber)}.tasks-status--stopped{background:var(--red)22;color:var(--red)}.tasks-progress{align-items:center;gap:8px;display:flex}.tasks-progress-bar-bg{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.tasks-progress-bar-fill{border-radius:3px;height:100%;transition:width .4s}.tasks-pct{color:var(--text-dim);width:36px;font-size:10px}.tasks-actions{gap:4px;display:flex}.tasks-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-dim);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:color .12s,border-color .12s;display:flex}.tasks-btn:hover{color:var(--text-h);border-color:var(--text)}.tasks-btn--pause:hover{color:var(--amber);border-color:var(--amber)}.tasks-btn--resume:hover{color:var(--green);border-color:var(--green)}.tasks-btn--stop:hover{color:var(--red);border-color:var(--red)} diff --git a/frontend/dashboard/assets/TasksPage-mM7xLKrh.css b/frontend/dashboard/assets/TasksPage-mM7xLKrh.css new file mode 100644 index 000000000..f23a75072 --- /dev/null +++ b/frontend/dashboard/assets/TasksPage-mM7xLKrh.css @@ -0,0 +1 @@ +.tasks-page .section{background:0 0;border:none;border-radius:0;overflow:visible}.tasks-pool-row{flex-wrap:wrap;gap:12px;padding:12px 0 4px;display:flex}.tasks-kpi-row{padding:10px 0 2px}.tasks-kpi-row>span{border:1px solid var(--border);background:var(--bg-card);border-radius:999px;padding:5px 10px}.tasks-stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.tasks-stats-item{border:1px solid var(--border);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex}.tasks-stats-key{color:var(--text-dim);text-transform:uppercase;letter-spacing:.35px;font-size:11px}.tasks-stats-val{color:var(--text-h);word-break:break-word;font-size:13px}.tasks-stats-sub{color:var(--text-dim);font-size:10px}.tasks-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:10px 0 2px;display:grid}.tasks-kpi-card{border:1px solid var(--border);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-card2) 75%, var(--bg-card)) 0%, var(--bg-card) 100%);border-radius:8px;flex-direction:column;gap:6px;min-height:62px;padding:10px;display:flex}.tasks-kpi-card--cpu{border-color:color-mix(in srgb, var(--green) 32%, var(--border))}.tasks-kpi-card--mem{border-color:color-mix(in srgb, var(--blue) 32%, var(--border))}.tasks-kpi-card--net{border-color:color-mix(in srgb, var(--amber) 28%, var(--border))}.tasks-kpi-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.tasks-kpi-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.35px;font-size:11px}.tasks-kpi-value{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.tasks-pool-stat{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.tasks-pool-label{color:var(--text-dim);text-transform:capitalize}.tasks-pool-val{color:var(--text-h);font-weight:600}.tasks-table{border:1px solid var(--border);border-radius:6px;font-size:12px;overflow:hidden}.tasks-thead,.tasks-row{grid-template-columns:60px 1fr 90px 160px 80px 80px 90px;align-items:center;gap:0;padding:8px 12px;display:grid}.tasks-row{border-bottom:1px solid var(--border);color:var(--text)}.tasks-row:last-child{border-bottom:none}.tasks-row:hover{background:var(--bg-card2)}.tasks-row-output{border-bottom:1px solid var(--border);border-top:1px dashed var(--border);background:var(--bg-card2);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;max-height:110px;padding:6px 12px 8px 84px;font-size:11px;overflow-y:auto}.tasks-row-output:last-child{border-bottom:none}.tasks-pid{color:var(--text-dim)}.tasks-cmd{white-space:nowrap;text-overflow:ellipsis;color:var(--text-h);overflow:hidden}.tasks-status{text-transform:capitalize;border-radius:4px;width:fit-content;padding:2px 8px;font-size:11px;font-weight:600}.tasks-status--running{background:var(--green)22;color:var(--green)}.tasks-status--paused{background:var(--amber)22;color:var(--amber)}.tasks-status--stopped{background:var(--red)22;color:var(--red)}.tasks-progress{align-items:center;gap:8px;display:flex}.tasks-progress-bar-bg{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.tasks-progress-bar-fill{border-radius:3px;height:100%;transition:width .4s}.tasks-pct{color:var(--text-dim);width:36px;font-size:10px}.tasks-actions{gap:4px;display:flex}.tasks-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-dim);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:color .12s,border-color .12s;display:flex}.tasks-btn:hover{color:var(--text-h);border-color:var(--text)}.tasks-btn--pause:hover{color:var(--amber);border-color:var(--amber)}.tasks-btn--resume:hover{color:var(--green);border-color:var(--green)}.tasks-btn--stop:hover{color:var(--red);border-color:var(--red)} diff --git a/frontend/dashboard/assets/ToolsPage-Dlctbi3O.js b/frontend/dashboard/assets/ToolsPage-Cx0qoR6m.js similarity index 71% rename from frontend/dashboard/assets/ToolsPage-Dlctbi3O.js rename to frontend/dashboard/assets/ToolsPage-Cx0qoR6m.js index d4fb5be32..14926cb45 100644 --- a/frontend/dashboard/assets/ToolsPage-Dlctbi3O.js +++ b/frontend/dashboard/assets/ToolsPage-Cx0qoR6m.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,Dt as r,Pt as i,St as a,r as o,y as s}from"./vendor-lucide-tZ8AzO6l.js";import{r as c}from"./vendor-markdown-CZSHC-G5.js";import{b as l,i as u,x as d}from"./index-DoDmaCqd.js";import{t as f}from"./BrowserPage-B37UOYE2.js";import{t as p}from"./KpiStrip-Cnf9m6Sg.js";import{n as m,t as h}from"./toolUtils-BC7D6IRC.js";var g=e(t(),1),_=c();function v({categories:e,activeCat:t,setActiveCat:n,counts:r,totalCount:i}){return(0,_.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,_.jsxs)(`button`,{className:`browser-nav-item${t===`all`?` browser-nav-item--active`:``}`,onClick:()=>n(`all`),children:[(0,_.jsx)(`span`,{className:`browser-nav-label`,children:`All Tools`}),(0,_.jsx)(`span`,{className:`browser-nav-count`,children:i})]}),e.filter(e=>e!==`all`).map(e=>(0,_.jsxs)(`button`,{className:`browser-nav-item${t===e?` browser-nav-item--active`:``}`,onClick:()=>n(t===e?`all`:e),children:[(0,_.jsx)(`span`,{className:`browser-nav-label`,children:e.replace(/_/g,` `)}),(0,_.jsx)(`span`,{className:`browser-nav-count`,children:r[e]??0})]},e))]})}function y({tools:e,filtered:t,activeCat:a,search:o,setSearch:s,missingOnly:c,setMissingOnly:l,missingCount:u,toolsStatus:d,onSelectTool:f,onRefreshAvailability:p,refreshingAvailability:m=!1}){return(0,_.jsxs)(`div`,{className:`browser-main`,children:[(0,_.jsxs)(`div`,{className:`section-header`,children:[(0,_.jsxs)(`h3`,{children:[a===`all`?`Tool Registry`:a.replace(/_/g,` `),` `,(0,_.jsxs)(`span`,{className:`badge`,children:[t.length,` / `,e.length]})]}),p&&(0,_.jsxs)(`button`,{className:`registry-missing-toggle`,onClick:()=>void p(),disabled:m,title:`Force immediate tool availability re-check`,children:[(0,_.jsx)(n,{size:12,className:m?`spin`:void 0}),`Refresh`]})]}),(0,_.jsx)(`div`,{className:`registry-controls`,children:(0,_.jsxs)(`div`,{className:`registry-controls-top`,children:[(0,_.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,_.jsx)(`input`,{className:`search-input mono`,placeholder:`Search tools…`,value:o,onChange:e=>s(e.target.value)}),o.trim().length>0&&(0,_.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>s(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,_.jsx)(r,{size:12})})]}),(0,_.jsxs)(`button`,{className:`registry-missing-toggle${c?` active`:``}`,onClick:()=>l(e=>!e),title:`Show only tools not installed`,children:[(0,_.jsx)(r,{size:12}),`Not installed`,u>0&&(0,_.jsx)(`span`,{className:`badge`,children:u})]})]})}),(0,_.jsxs)(`div`,{className:`browser-scroll`,children:[(0,_.jsx)(`div`,{className:`registry-grid registry-grid--wide`,children:t.map(e=>(0,_.jsxs)(`div`,{className:`registry-card registry-card--clickable`,onClick:()=>f(e),title:`Click for details on ${e.name}`,children:[(0,_.jsxs)(`div`,{className:`registry-card-top`,children:[(0,_.jsx)(`span`,{className:`registry-name mono`,title:e.name,children:e.name}),(0,_.jsxs)(`div`,{className:`registry-meta`,children:[e.parent_tool&&(0,_.jsx)(`span`,{className:`registry-cat`,title:`Based on ${e.parent_tool}`,children:e.parent_tool}),d[e.name]===!0&&(0,_.jsx)(`span`,{className:`registry-installed`,title:`Installed`,children:(0,_.jsx)(i,{size:11,color:`var(--green)`})}),d[e.name]===!1&&(0,_.jsx)(`span`,{className:`registry-installed`,title:`Not installed`,children:(0,_.jsx)(r,{size:11,color:`var(--red)`})})]})]}),(0,_.jsx)(`p`,{className:`registry-desc`,children:e.desc}),(0,_.jsxs)(`div`,{className:`registry-footer`,children:[(0,_.jsx)(`span`,{className:`registry-cat`,children:e.category.replace(/_/g,` `)}),(0,_.jsxs)(`span`,{className:`registry-eff`,title:`Effectiveness`,children:[`█`.repeat(Math.round(e.effectiveness*5)),`░`.repeat(5-Math.round(e.effectiveness*5))]})]})]},e.name))}),t.length===0&&(0,_.jsx)(`p`,{className:`empty-state`,children:`No tools match your filter.`})]})]})}function b({health:e,tools:t,toolsStatus:n}){let{pushToast:i}=l(),[c,b]=(0,g.useState)(``),[x,S]=(0,g.useState)(`all`),[C,w]=(0,g.useState)(null),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(!1),[k,A]=(0,g.useState)(n),[j,M]=(0,g.useState)({available:e.total_tools_available,total:e.total_tools_count}),N=k;(0,g.useEffect)(()=>{D||(A(n),M({available:e.total_tools_available,total:e.total_tools_count}))},[n,e.total_tools_available,e.total_tools_count,D]);let P=m(t),F=h(t,{toolsStatus:N,activeCategory:`all`,search:c,missingOnly:T,includeParentToolSearch:!0}),I=x===`all`?F:F.filter(e=>e.category===x),L={};for(let e of F)L[e.category]=(L[e.category]??0)+1;let R=j.total-j.available;async function z(){O(!0);try{let e=await d.refreshToolAvailability();if(!e.success){i(`error`,e.error||`Failed to refresh availability`);return}A(e.tools_status),M({available:e.total_tools_available,total:e.total_tools_count}),i(`success`,`Tool availability refreshed`)}catch(e){i(`error`,`Refresh failed: ${String(e)}`)}finally{O(!1)}}return(0,_.jsxs)(_.Fragment,{children:[C&&(0,_.jsx)(u,{tool:C,onClose:()=>w(null),installed:N[C.name]}),(0,_.jsx)(f,{className:`tools-page`,top:(0,_.jsx)(p,{items:[{icon:(0,_.jsx)(o,{size:16}),label:`Total Server Tools`,value:t.length,accent:`var(--blue)`},{icon:(0,_.jsx)(s,{size:16}),label:`Kali Tools Installed · ${(j.available/Math.max(j.total,1)*100).toFixed(0)}% coverage`,value:`${j.available} / ${j.total}`,accent:`var(--green)`},{icon:(0,_.jsx)(r,{size:16}),label:`Missing / not installed`,value:R,accent:R>0?`var(--amber)`:`var(--text-dim)`},{icon:(0,_.jsx)(a,{size:16}),label:`Tool Categories`,value:P.length-1,accent:`var(--purple)`}]}),nav:(0,_.jsx)(v,{categories:P,activeCat:x,setActiveCat:S,counts:L,totalCount:F.length}),main:(0,_.jsx)(y,{tools:t,filtered:I,activeCat:x,search:c,setSearch:b,missingOnly:T,setMissingOnly:E,missingCount:R,toolsStatus:N,onSelectTool:w,onRefreshAvailability:z,refreshingAvailability:D})})]})}export{b as default}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{At as t,Lt as n,M as r,nn as i,r as a,wt as o,x as s}from"./vendor-lucide-DUPkM7me.js";import{r as c}from"./vendor-markdown-BanIOC5U.js";import{b as l,i as u,x as d}from"./index-DuJ0P36w.js";import{t as f}from"./BrowserPage-BmNP5Bdw.js";import{t as p}from"./KpiStrip-L-nGhyMV.js";import{n as m,t as h}from"./toolUtils-CYt55nd9.js";var g=e(i(),1),_=c();function v({categories:e,activeCat:t,setActiveCat:n,counts:r,totalCount:i}){return(0,_.jsxs)(`nav`,{className:`browser-nav browser-nav-narrow`,children:[(0,_.jsxs)(`button`,{className:`browser-nav-item${t===`all`?` browser-nav-item--active`:``}`,onClick:()=>n(`all`),children:[(0,_.jsx)(`span`,{className:`browser-nav-label`,children:`All Tools`}),(0,_.jsx)(`span`,{className:`browser-nav-count`,children:i})]}),e.filter(e=>e!==`all`).map(e=>(0,_.jsxs)(`button`,{className:`browser-nav-item${t===e?` browser-nav-item--active`:``}`,onClick:()=>n(t===e?`all`:e),children:[(0,_.jsx)(`span`,{className:`browser-nav-label`,children:e.replace(/_/g,` `)}),(0,_.jsx)(`span`,{className:`browser-nav-count`,children:r[e]??0})]},e))]})}function y({tools:e,filtered:i,activeCat:a,search:o,setSearch:s,missingOnly:c,setMissingOnly:l,missingCount:u,toolsStatus:d,onSelectTool:f,onRefreshAvailability:p,refreshingAvailability:m=!1}){return(0,_.jsxs)(`div`,{className:`browser-main`,children:[(0,_.jsxs)(`div`,{className:`section-header`,children:[(0,_.jsxs)(`h3`,{children:[a===`all`?`Tool Registry`:a.replace(/_/g,` `),` `,(0,_.jsxs)(`span`,{className:`badge`,children:[i.length,` / `,e.length]})]}),p&&(0,_.jsxs)(`button`,{className:`registry-missing-toggle`,onClick:()=>void p(),disabled:m,title:`Force immediate tool availability re-check`,children:[(0,_.jsx)(r,{size:12,className:m?`spin`:void 0}),`Refresh`]})]}),(0,_.jsx)(`div`,{className:`registry-controls`,children:(0,_.jsxs)(`div`,{className:`registry-controls-top`,children:[(0,_.jsxs)(`div`,{className:`search-input-wrap`,children:[(0,_.jsx)(`input`,{className:`search-input mono`,placeholder:`Search tools…`,value:o,onChange:e=>s(e.target.value)}),o.trim().length>0&&(0,_.jsx)(`button`,{className:`search-clear-btn`,onClick:()=>s(``),title:`Clear search`,"aria-label":`Clear search`,children:(0,_.jsx)(t,{size:12})})]}),(0,_.jsxs)(`button`,{className:`registry-missing-toggle${c?` active`:``}`,onClick:()=>l(e=>!e),title:`Show only tools not installed`,children:[(0,_.jsx)(t,{size:12}),`Not installed`,u>0&&(0,_.jsx)(`span`,{className:`badge`,children:u})]})]})}),(0,_.jsxs)(`div`,{className:`browser-scroll`,children:[(0,_.jsx)(`div`,{className:`registry-grid registry-grid--wide`,children:i.map(e=>(0,_.jsxs)(`div`,{className:`registry-card registry-card--clickable`,onClick:()=>f(e),title:`Click for details on ${e.name}`,children:[(0,_.jsxs)(`div`,{className:`registry-card-top`,children:[(0,_.jsx)(`span`,{className:`registry-name mono`,title:e.name,children:e.name}),(0,_.jsxs)(`div`,{className:`registry-meta`,children:[e.parent_tool&&(0,_.jsx)(`span`,{className:`registry-cat`,title:`Based on ${e.parent_tool}`,children:e.parent_tool}),d[e.name]===!0&&(0,_.jsx)(`span`,{className:`registry-installed`,title:`Installed`,children:(0,_.jsx)(n,{size:11,color:`var(--green)`})}),d[e.name]===!1&&(0,_.jsx)(`span`,{className:`registry-installed`,title:`Not installed`,children:(0,_.jsx)(t,{size:11,color:`var(--red)`})})]})]}),(0,_.jsx)(`p`,{className:`registry-desc`,children:e.desc}),(0,_.jsxs)(`div`,{className:`registry-footer`,children:[(0,_.jsx)(`span`,{className:`registry-cat`,children:e.category.replace(/_/g,` `)}),(0,_.jsxs)(`span`,{className:`registry-eff`,title:`Effectiveness`,children:[`█`.repeat(Math.round(e.effectiveness*5)),`░`.repeat(5-Math.round(e.effectiveness*5))]})]})]},e.name))}),i.length===0&&(0,_.jsx)(`p`,{className:`empty-state`,children:`No tools match your filter.`})]})]})}function b({health:e,tools:n,toolsStatus:r}){let{pushToast:i}=l(),[c,b]=(0,g.useState)(``),[x,S]=(0,g.useState)(`all`),[C,w]=(0,g.useState)(null),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(!1),[k,A]=(0,g.useState)(r),[j,M]=(0,g.useState)({available:e.total_tools_available,total:e.total_tools_count}),N=k;(0,g.useEffect)(()=>{D||(A(r),M({available:e.total_tools_available,total:e.total_tools_count}))},[r,e.total_tools_available,e.total_tools_count,D]);let P=m(n),F=h(n,{toolsStatus:N,activeCategory:`all`,search:c,missingOnly:T,includeParentToolSearch:!0}),I=x===`all`?F:F.filter(e=>e.category===x),L={};for(let e of F)L[e.category]=(L[e.category]??0)+1;let R=j.total-j.available;async function z(){O(!0);try{let e=await d.refreshToolAvailability();if(!e.success){i(`error`,e.error||`Failed to refresh availability`);return}A(e.tools_status),M({available:e.total_tools_available,total:e.total_tools_count}),i(`success`,`Tool availability refreshed`)}catch(e){i(`error`,`Refresh failed: ${String(e)}`)}finally{O(!1)}}return(0,_.jsxs)(_.Fragment,{children:[C&&(0,_.jsx)(u,{tool:C,onClose:()=>w(null),installed:N[C.name]}),(0,_.jsx)(f,{className:`tools-page`,top:(0,_.jsx)(p,{items:[{icon:(0,_.jsx)(a,{size:16}),label:`Total Server Tools`,value:n.length,accent:`var(--blue)`},{icon:(0,_.jsx)(s,{size:16}),label:`Kali Tools Installed · ${(j.available/Math.max(j.total,1)*100).toFixed(0)}% coverage`,value:`${j.available} / ${j.total}`,accent:`var(--green)`},{icon:(0,_.jsx)(t,{size:16}),label:`Missing / not installed`,value:R,accent:R>0?`var(--amber)`:`var(--text-dim)`},{icon:(0,_.jsx)(o,{size:16}),label:`Tool Categories`,value:P.length-1,accent:`var(--purple)`}]}),nav:(0,_.jsx)(v,{categories:P,activeCat:x,setActiveCat:S,counts:L,totalCount:F.length}),main:(0,_.jsx)(y,{tools:n,filtered:I,activeCat:x,search:c,setSearch:b,missingOnly:T,setMissingOnly:E,missingCount:R,toolsStatus:N,onSelectTool:w,onRefreshAvailability:z,refreshingAvailability:D})})]})}export{b as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/VerifyPage-DHf9c-Jk.js b/frontend/dashboard/assets/VerifyPage-BQU-rOEN.js similarity index 69% rename from frontend/dashboard/assets/VerifyPage-DHf9c-Jk.js rename to frontend/dashboard/assets/VerifyPage-BQU-rOEN.js index 58afb6d65..958c692f6 100644 --- a/frontend/dashboard/assets/VerifyPage-DHf9c-Jk.js +++ b/frontend/dashboard/assets/VerifyPage-BQU-rOEN.js @@ -1 +1 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,A as n,D as r,S as i,Vt as a,b as o,wt as s,x as c}from"./vendor-lucide-tZ8AzO6l.js";import{r as l}from"./vendor-markdown-CZSHC-G5.js";import{x as u}from"./index-DoDmaCqd.js";import{t as d}from"./BrowserPage-B37UOYE2.js";var f=e(t(),1),p=l();function m({value:e}){let[t,n]=(0,f.useState)(!1);if(!e)return null;function r(){navigator.clipboard?.writeText(e).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)}).catch(()=>{})}return(0,p.jsxs)(`span`,{className:`verify-hash-value mono`,style:{wordBreak:`break-all`},children:[e,(0,p.jsx)(`button`,{className:`icon-btn verify-copy-btn`,onClick:r,title:`Copy hash`,children:t?(0,p.jsx)(a,{size:12,color:`var(--green)`}):(0,p.jsx)(s,{size:12})})]})}function h(e){if(!e)return`—`;let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()}function g(){let[e,t]=(0,f.useState)(``),[i,a]=(0,f.useState)(!1),[o,s]=(0,f.useState)(null),[c,l]=(0,f.useState)(null);async function d(){let t=e.trim();if(t){a(!0),s(null),l(null);try{let e=await u.lookupRun(t);if(!e.success){s(e.error??`Lookup failed.`);return}l(e)}catch(e){s(String(e))}finally{a(!1)}}}function g(e){e.key===`Enter`&&d()}return(0,p.jsxs)(`section`,{className:`section`,children:[(0,p.jsx)(`div`,{className:`section-header`,children:(0,p.jsx)(`h3`,{children:`Run Lookup`})}),(0,p.jsxs)(`div`,{className:`verify-tool-body`,children:[(0,p.jsx)(`p`,{className:`verify-tool-desc`,children:`Paste an evidence-chain hash from a report to find exactly which run produced it — works for runs inside a session and one-off runs made outside any session.`}),(0,p.jsxs)(`div`,{className:`verify-tool-row`,children:[(0,p.jsx)(`input`,{className:`verify-input mono`,placeholder:`64-character hash, e.g. from a session's Evidence Integrity section`,value:e,onChange:e=>t(e.target.value),onKeyDown:g}),(0,p.jsx)(`button`,{className:`verify-submit-btn`,onClick:d,disabled:i||!e.trim(),children:i?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(n,{size:12,className:`spin`}),` Looking up…`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(r,{size:12}),` Look Up`]})})]}),o&&(0,p.jsx)(`div`,{className:`verify-error`,children:o}),c&&!c.found&&(0,p.jsx)(`div`,{className:`verify-empty`,children:`No run found for that hash.`}),c&&c.found&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`table`,{className:`verify-result-table`,children:(0,p.jsxs)(`tbody`,{children:[(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Session`}),(0,p.jsx)(`td`,{className:`mono`,children:c.session_id?(0,p.jsx)(`a`,{className:`verify-session-link`,href:`#/sessions/${c.session_id}`,children:c.session_id}):`none — ad-hoc run (no session)`})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Tool`}),(0,p.jsx)(`td`,{className:`mono`,children:c.tool})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Endpoint`}),(0,p.jsx)(`td`,{className:`mono`,children:c.endpoint})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Timestamp`}),(0,p.jsx)(`td`,{children:h(c.timestamp)})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Return Code`}),(0,p.jsx)(`td`,{className:`mono`,children:c.return_code})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Hash`}),(0,p.jsx)(`td`,{children:(0,p.jsx)(m,{value:c.hash})})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Prev Hash`}),(0,p.jsx)(`td`,{children:(0,p.jsx)(m,{value:c.prev_hash})})]})]})}),(c.stdout||c.stderr)&&(0,p.jsxs)(`pre`,{className:`verify-result-output`,children:[c.stdout,c.stderr?`\n--- stderr ---\n${c.stderr}`:``]})]})]})]})}function _(){let[e,t]=(0,f.useState)(``),[r,a]=(0,f.useState)(!1),[s,l]=(0,f.useState)(null);async function d(){let t=e.trim();if(t){a(!0),l(null);try{let e=await u.verifySessionIntegrity(t);l(e)}catch(e){l({success:!1,error:String(e)})}finally{a(!1)}}}function h(e){e.key===`Enter`&&d()}return(0,p.jsxs)(`section`,{className:`section`,children:[(0,p.jsx)(`div`,{className:`section-header`,children:(0,p.jsx)(`h3`,{children:`Session Integrity Check`})}),(0,p.jsxs)(`div`,{className:`verify-tool-body`,children:[(0,p.jsx)(`p`,{className:`verify-tool-desc`,children:`Check any session's evidence chain by ID — confirms none of its recorded tool runs were edited after the fact.`}),(0,p.jsxs)(`div`,{className:`verify-tool-row`,children:[(0,p.jsx)(`input`,{className:`verify-input mono`,placeholder:`session id, e.g. sess_a1b2c3d4e5`,value:e,onChange:e=>t(e.target.value),onKeyDown:h}),(0,p.jsx)(`button`,{className:`verify-submit-btn`,onClick:d,disabled:r||!e.trim(),children:r?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(n,{size:12,className:`spin`}),` Verifying…`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{size:12}),` Verify`]})})]}),s&&(0,p.jsxs)(`div`,{className:s.success?s.total_runs===0?`verify-badge verify-badge--neutral`:s.valid?`verify-badge verify-badge--ok`:`verify-badge verify-badge--bad`:`verify-error`,children:[(0,p.jsx)(`div`,{className:`verify-badge-row`,children:s.success?s.total_runs===0?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{size:12}),` No run history to verify for this session.`]}):s.valid?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{size:12}),` `,s.verified_runs,`/`,s.total_runs,` runs verified — evidence chain intact.`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i,{size:12}),` Tamper detected at run #`,s.broken_at_index,` (`,s.verified_runs,`/`,s.total_runs,` verified before the break).`]}):s.error??`Session not found.`}),s.success&&s.tip_hash&&(0,p.jsxs)(`div`,{className:`verify-badge-hash`,children:[(0,p.jsx)(`span`,{className:`verify-badge-hash-label`,children:`Tip Hash`}),(0,p.jsx)(m,{value:s.tip_hash})]})]})]})]})}function v(){return(0,p.jsx)(d,{className:`verify-page`,top:(0,p.jsxs)(`div`,{className:`verify-page-header`,children:[(0,p.jsxs)(`h1`,{className:`verify-page-title`,children:[(0,p.jsx)(c,{size:16}),` Verify`]}),(0,p.jsx)(`p`,{className:`verify-page-subtitle section-meta`,children:`Every tool run NyxStrike executes is hash-chained as it happens, so evidence in a report can be proven unmodified after the fact. Use these tools to verify that chain.`})]}),main:(0,p.jsx)(`div`,{className:`browser-main`,children:(0,p.jsx)(`div`,{className:`browser-scroll`,children:(0,p.jsxs)(`div`,{className:`verify-tools-grid`,children:[(0,p.jsx)(g,{}),(0,p.jsx)(_,{})]})})})})}export{v as VerifyPage}; \ No newline at end of file +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{C as t,Dt as n,M as r,S as i,Wt as a,k as o,nn as s,w as c}from"./vendor-lucide-DUPkM7me.js";import{r as l}from"./vendor-markdown-BanIOC5U.js";import{x as u}from"./index-DuJ0P36w.js";import{t as d}from"./BrowserPage-BmNP5Bdw.js";var f=e(s(),1),p=l();function m({value:e}){let[t,r]=(0,f.useState)(!1);if(!e)return null;function i(){navigator.clipboard?.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})}return(0,p.jsxs)(`span`,{className:`verify-hash-value mono`,style:{wordBreak:`break-all`},children:[e,(0,p.jsx)(`button`,{className:`icon-btn verify-copy-btn`,onClick:i,title:`Copy hash`,children:t?(0,p.jsx)(a,{size:12,color:`var(--green)`}):(0,p.jsx)(n,{size:12})})]})}function h(e){if(!e)return`—`;let t=new Date(e);return isNaN(t.getTime())?e:t.toLocaleString()}function g(){let[e,t]=(0,f.useState)(``),[n,i]=(0,f.useState)(!1),[a,s]=(0,f.useState)(null),[c,l]=(0,f.useState)(null);async function d(){let t=e.trim();if(t){i(!0),s(null),l(null);try{let e=await u.lookupRun(t);if(!e.success){s(e.error??`Lookup failed.`);return}l(e)}catch(e){s(String(e))}finally{i(!1)}}}function g(e){e.key===`Enter`&&d()}return(0,p.jsxs)(`section`,{className:`section`,children:[(0,p.jsx)(`div`,{className:`section-header`,children:(0,p.jsx)(`h3`,{children:`Run Lookup`})}),(0,p.jsxs)(`div`,{className:`verify-tool-body`,children:[(0,p.jsx)(`p`,{className:`verify-tool-desc`,children:`Paste an evidence-chain hash from a report to find exactly which run produced it — works for runs inside a session and one-off runs made outside any session.`}),(0,p.jsxs)(`div`,{className:`verify-tool-row`,children:[(0,p.jsx)(`input`,{className:`verify-input mono`,placeholder:`64-character hash, e.g. from a session's Evidence Integrity section`,value:e,onChange:e=>t(e.target.value),onKeyDown:g}),(0,p.jsx)(`button`,{className:`verify-submit-btn`,onClick:d,disabled:n||!e.trim(),children:n?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(r,{size:12,className:`spin`}),` Looking up…`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o,{size:12}),` Look Up`]})})]}),a&&(0,p.jsx)(`div`,{className:`verify-error`,children:a}),c&&!c.found&&(0,p.jsx)(`div`,{className:`verify-empty`,children:`No run found for that hash.`}),c&&c.found&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`table`,{className:`verify-result-table`,children:(0,p.jsxs)(`tbody`,{children:[(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Session`}),(0,p.jsx)(`td`,{className:`mono`,children:c.session_id?(0,p.jsx)(`a`,{className:`verify-session-link`,href:`#/sessions/${c.session_id}`,children:c.session_id}):`none — ad-hoc run (no session)`})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Tool`}),(0,p.jsx)(`td`,{className:`mono`,children:c.tool})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Endpoint`}),(0,p.jsx)(`td`,{className:`mono`,children:c.endpoint})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Timestamp`}),(0,p.jsx)(`td`,{children:h(c.timestamp)})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Return Code`}),(0,p.jsx)(`td`,{className:`mono`,children:c.return_code})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Hash`}),(0,p.jsx)(`td`,{children:(0,p.jsx)(m,{value:c.hash})})]}),(0,p.jsxs)(`tr`,{children:[(0,p.jsx)(`td`,{children:`Prev Hash`}),(0,p.jsx)(`td`,{children:(0,p.jsx)(m,{value:c.prev_hash})})]})]})}),(c.stdout||c.stderr)&&(0,p.jsxs)(`pre`,{className:`verify-result-output`,children:[c.stdout,c.stderr?`\n--- stderr ---\n${c.stderr}`:``]})]})]})]})}function _(){let[e,n]=(0,f.useState)(``),[a,o]=(0,f.useState)(!1),[s,l]=(0,f.useState)(null);async function d(){let t=e.trim();if(t){o(!0),l(null);try{let e=await u.verifySessionIntegrity(t);l(e)}catch(e){l({success:!1,error:String(e)})}finally{o(!1)}}}function h(e){e.key===`Enter`&&d()}return(0,p.jsxs)(`section`,{className:`section`,children:[(0,p.jsx)(`div`,{className:`section-header`,children:(0,p.jsx)(`h3`,{children:`Session Integrity Check`})}),(0,p.jsxs)(`div`,{className:`verify-tool-body`,children:[(0,p.jsx)(`p`,{className:`verify-tool-desc`,children:`Check any session's evidence chain by ID — confirms none of its recorded tool runs were edited after the fact.`}),(0,p.jsxs)(`div`,{className:`verify-tool-row`,children:[(0,p.jsx)(`input`,{className:`verify-input mono`,placeholder:`session id, e.g. sess_a1b2c3d4e5`,value:e,onChange:e=>n(e.target.value),onKeyDown:h}),(0,p.jsx)(`button`,{className:`verify-submit-btn`,onClick:d,disabled:a||!e.trim(),children:a?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(r,{size:12,className:`spin`}),` Verifying…`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(t,{size:12}),` Verify`]})})]}),s&&(0,p.jsxs)(`div`,{className:s.success?s.total_runs===0?`verify-badge verify-badge--neutral`:s.valid?`verify-badge verify-badge--ok`:`verify-badge verify-badge--bad`:`verify-error`,children:[(0,p.jsx)(`div`,{className:`verify-badge-row`,children:s.success?s.total_runs===0?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i,{size:12}),` No run history to verify for this session.`]}):s.valid?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(t,{size:12}),` `,s.verified_runs,`/`,s.total_runs,` runs verified — evidence chain intact.`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c,{size:12}),` Tamper detected at run #`,s.broken_at_index,` (`,s.verified_runs,`/`,s.total_runs,` verified before the break).`]}):s.error??`Session not found.`}),s.success&&s.tip_hash&&(0,p.jsxs)(`div`,{className:`verify-badge-hash`,children:[(0,p.jsx)(`span`,{className:`verify-badge-hash-label`,children:`Tip Hash`}),(0,p.jsx)(m,{value:s.tip_hash})]})]})]})]})}function v(){return(0,p.jsx)(d,{className:`verify-page`,top:(0,p.jsxs)(`div`,{className:`verify-page-header`,children:[(0,p.jsxs)(`h1`,{className:`verify-page-title`,children:[(0,p.jsx)(t,{size:16}),` Verify`]}),(0,p.jsx)(`p`,{className:`verify-page-subtitle section-meta`,children:`Every tool run NyxStrike executes is hash-chained as it happens, so evidence in a report can be proven unmodified after the fact. Use these tools to verify that chain.`})]}),main:(0,p.jsx)(`div`,{className:`browser-main`,children:(0,p.jsx)(`div`,{className:`browser-scroll`,children:(0,p.jsxs)(`div`,{className:`verify-tools-grid`,children:[(0,p.jsx)(g,{}),(0,p.jsx)(_,{})]})})})})}export{v as VerifyPage}; \ No newline at end of file diff --git a/frontend/dashboard/assets/WorkbenchPage-B1nOEo-c.js b/frontend/dashboard/assets/WorkbenchPage-B1nOEo-c.js new file mode 100644 index 000000000..e0f6f00e7 --- /dev/null +++ b/frontend/dashboard/assets/WorkbenchPage-B1nOEo-c.js @@ -0,0 +1 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{O as t,nn as n}from"./vendor-lucide-DUPkM7me.js";import{r}from"./vendor-markdown-BanIOC5U.js";import{t as i}from"./ActionButton-B1Vpk6pw.js";import{t as a}from"./Sheet-BAT5hjNH.js";import{b as o,x as s}from"./index-DuJ0P36w.js";var c={"image/png":`png`,"image/jpeg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"application/octet-stream":`bin`};function l(e){return e?.split(`;`)[0]?.trim()}function u(e,t){let n=l(e);return n&&c[n]?c[n]:n?.startsWith(`image/`)?n.slice(6):/gzip|zlib|compress/i.test(t)?`bin`:`txt`}function d(e,t){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;ee.trim()).filter(Boolean)});if(C(!1),!e.success){T(e.error??`Failed to save to Loot.`);return}u(`success`,`Saved to Loot.`),n()}return(0,m.jsxs)(a,{isOpen:e,onClose:n,disableClose:S,title:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`modal-icon modal-icon--accent`,"aria-hidden":`true`,children:(0,m.jsx)(t,{size:14})}),(0,m.jsx)(`span`,{className:`modal-name`,children:`Send to Loot`})]}),children:[(0,m.jsxs)(`label`,{className:`workbench-field`,children:[(0,m.jsx)(`span`,{className:`workbench-field-label`,children:`Title`}),(0,m.jsx)(`input`,{className:`input input-full`,value:d,onChange:e=>f(e.target.value),autoFocus:!0})]}),(0,m.jsxs)(`label`,{className:`workbench-field`,children:[(0,m.jsx)(`span`,{className:`workbench-field-label`,children:`Type`}),(0,m.jsx)(`select`,{className:`input input-full`,value:g,onChange:e=>_(e.target.value),children:h.map(e=>(0,m.jsx)(`option`,{value:e,children:e},e))})]}),(0,m.jsxs)(`label`,{className:`workbench-field`,children:[(0,m.jsx)(`span`,{className:`workbench-field-label`,children:`Content`}),(0,m.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:v,onChange:e=>y(e.target.value),rows:6})]}),(0,m.jsxs)(`label`,{className:`workbench-field`,children:[(0,m.jsx)(`span`,{className:`workbench-field-label`,children:`Tags (comma separated)`}),(0,m.jsx)(`input`,{className:`input input-full`,value:b,onChange:e=>x(e.target.value)})]}),w&&(0,m.jsx)(`div`,{className:`verify-error`,children:w}),(0,m.jsxs)(`div`,{className:`confirm-action-buttons`,children:[(0,m.jsx)(i,{variant:`default`,onClick:n,disabled:S,children:`Cancel`}),(0,m.jsx)(i,{variant:`success`,onClick:()=>{E()},disabled:S,children:S?`Saving…`:`Save to Loot`})]})]})}export{f as n,g as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/WorkbenchPage-BbiAncyR.css b/frontend/dashboard/assets/WorkbenchPage-BbiAncyR.css deleted file mode 100644 index e82393f27..000000000 --- a/frontend/dashboard/assets/WorkbenchPage-BbiAncyR.css +++ /dev/null @@ -1 +0,0 @@ -@media (width<=1280px){.workbench-page .workbench-sidebar{flex-basis:220px}.workbench-page .workbench-recipe-col{flex-basis:260px}}@media (width<=980px){.workbench-page .workbench-sidebar{max-height:38vh}.workbench-page .workbench-recipe-col{border:none;border-bottom:1px solid var(--border);flex:none;max-height:50vh}}.workbench-page-loading{flex:1;justify-content:center;align-items:center;height:100%;display:flex}.workbench-page-error{color:var(--red,#e06c75);background:color-mix(in srgb, var(--red,#e06c75) 8%, transparent);border:1px solid color-mix(in srgb, var(--red,#e06c75) 25%, transparent);border-radius:6px;flex:1;align-self:flex-start;margin:20px;padding:8px 12px;font-size:12px}.workbench-sidebar-title{justify-content:space-between}.workbench-sidebar-title-text{align-items:center;gap:6px;display:flex}.workbench-sidebar-title-actions{align-items:center;gap:2px;display:flex}.workbench-customize-btn{gap:4px;padding:4px 8px;font-size:11px}.workbench-reset-link-btn{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.workbench-reset-link-btn:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-search--disabled{opacity:.5;pointer-events:none}.workbench-main{flex:1 1 0;overflow-y:auto}.workbench-search{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;margin:0 10px 8px;padding:6px 10px;display:flex}.workbench-search-icon{color:var(--text-dim);flex-shrink:0}.workbench-search-input{min-width:0;color:var(--text-h);font-size:12.5px;font-family:var(--mono);background:0 0;border:none;outline:none;flex:1}.workbench-search-input::placeholder{color:var(--text-dim)}.workbench-search-clear{width:16px;height:16px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.workbench-search-clear:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-category{padding:1px 0 3px}.workbench-category-header{cursor:pointer;width:100%;color:var(--text-dim);background:0 0;border:none;align-items:center;gap:6px;padding:5px 14px;display:flex}.workbench-category-label{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.workbench-category-star-icon{color:var(--amber);flex-shrink:0}.workbench-category-ops{border-left:1px solid var(--border);margin-left:19px;position:relative}.workbench-op-btn{text-align:left;width:100%;color:var(--text-h);font-family:var(--mono);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;margin-left:-1px;padding:4px 14px 4px 11px;font-size:12.5px;display:block}.workbench-op-btn:hover{background:var(--bg-card2)}.workbench-op-btn--active{color:var(--green);border-left-color:var(--green);background:var(--green-dim)}.workbench-op-row-wrap{align-items:center;display:flex}.workbench-op-row-wrap .workbench-op-btn{flex:1;min-width:0}.workbench-star-btn{width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;display:flex}.workbench-star-btn:hover{color:var(--amber);background:var(--bg-card2)}.workbench-star-btn--active{color:var(--amber)}.workbench-category--customize{border-radius:6px}.workbench-category--hidden{opacity:.55}.workbench-category-header--customize{cursor:default}.workbench-row-drag{color:var(--text-dim);cursor:grab;flex-shrink:0;align-items:center;display:flex}.workbench-category-hint{color:var(--text-dim);flex-shrink:0;margin-right:4px;font-size:10px;font-style:italic}.workbench-row-icon-btn{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.workbench-row-icon-btn:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-row-icon-btn.workbench-star-btn--active{color:var(--amber)}.workbench-op-row{font-family:var(--mono);color:var(--text-h);align-items:center;gap:6px;padding:4px 14px 4px 30px;font-size:12.5px;display:flex}.workbench-op-row--hidden{opacity:.5}.workbench-op-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.workbench-empty-reset-link{color:var(--green);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.workbench-panel{min-height:200px}.workbench-op-content{flex-direction:column;gap:12px;padding:14px 18px 18px;display:flex}.workbench-empty{color:var(--text-dim);padding:24px 18px;font-size:12.5px}.workbench-panel-empty{text-align:center;border:1px dashed var(--border);color:var(--text-dim);border-radius:8px;flex-direction:column;align-items:center;gap:10px;margin:16px;padding:40px 20px;font-size:12.5px;line-height:1.5;display:flex}.workbench-panel-empty-title{color:var(--text);font-size:13px;font-weight:600}.workbench-panel-empty-hint{max-width:260px}.workbench-form{flex-direction:column;gap:10px;display:flex}.workbench-field{flex-direction:column;gap:4px;display:flex}.workbench-field-label{color:var(--text-dim);font-size:11px}.workbench-field-hint{color:var(--text-dim);font-size:10.5px;font-style:italic}.workbench-field textarea.workbench-textarea{min-height:80px}.workbench-actions{align-items:center;gap:8px;display:flex}.workbench-run-btn{background:var(--green);border:1px solid var(--green);color:var(--bg-card,#0b0f14);cursor:pointer;font-family:var(--mono);white-space:nowrap;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:8px 18px;font-size:12.5px;font-weight:700;transition:filter .15s;display:flex}.workbench-run-btn:hover:not(:disabled){filter:brightness(1.1)}.workbench-run-btn:disabled{opacity:.4;cursor:not-allowed}.workbench-secondary-btn{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);cursor:pointer;font-family:var(--mono);white-space:nowrap;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;transition:border-color .15s;display:flex}.workbench-secondary-btn:hover{border-color:var(--green)}.workbench-output-wrap{margin-top:4px}.workbench-output-header{justify-content:space-between;align-items:center;display:flex}.workbench-output-actions{align-items:center;gap:4px;display:flex}.workbench-output-image{border:1px solid var(--border);background:var(--bg-card2);border-radius:4px;max-width:100%}.workbench-recipe-trace-image-thumb{border:1px solid var(--border);vertical-align:middle;border-radius:3px;max-width:100%;max-height:48px}.workbench-note{color:var(--text-dim);margin-top:8px;font-size:11.5px;font-style:italic}.workbench-saved-recipes{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.workbench-saved-recipes-header{justify-content:space-between;align-items:center;display:flex}.workbench-saved-recipe-row{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.workbench-saved-recipe-row--edit{background:0 0;border:none;padding:0}.workbench-saved-recipe-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-h);flex:1;overflow:hidden}.workbench-saved-recipe-actions,.workbench-recipe-toolbar{flex-shrink:0;gap:2px;display:flex}.workbench-hidden-file-input{display:none}.workbench-recipe-step-drag{color:var(--text-dim);cursor:grab;flex-shrink:0;align-items:center;display:flex}.workbench-recipe-steps{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.workbench-recipe-step{background:var(--bg-card2);border:1px solid var(--border);cursor:grab;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:12.5px;display:flex}.workbench-recipe-step-index{color:var(--text-dim);font-family:var(--mono);flex-shrink:0;font-size:11px}.workbench-recipe-step-name{color:var(--text-h);font-weight:600}.workbench-recipe-step-params{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.workbench-recipe-step-actions{flex-shrink:0;gap:2px;margin-left:auto;display:flex}.workbench-recipe-step-edit{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;margin:6px 0 0 26px;padding:10px;display:flex}.workbench-recipe-trace{flex-direction:column;gap:4px;margin:0;padding:0;font-size:11.5px;list-style:none;display:flex}.workbench-recipe-trace li{border-left:2px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 8px;display:flex}.workbench-recipe-trace-error{color:var(--red,#e06c75);border-left-color:var(--red,#e06c75)!important}.workbench-recipe-trace-error-continued{color:var(--amber);border-left-color:var(--amber)!important}.workbench-recipe-trace-input{color:var(--text-dim);opacity:.8;flex-basis:100%}.workbench-recipe-step-override-badge{color:var(--amber);background:var(--amber-dim);border:1px solid var(--amber);border-radius:10px;flex-shrink:0;padding:1px 6px;font-size:10px}.workbench-continue-toggle{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;margin-top:8px;font-size:11.5px;display:flex} diff --git a/frontend/dashboard/assets/WorkbenchPage-BrVaF5gj.js b/frontend/dashboard/assets/WorkbenchPage-BrVaF5gj.js new file mode 100644 index 000000000..58b4ad1e7 --- /dev/null +++ b/frontend/dashboard/assets/WorkbenchPage-BrVaF5gj.js @@ -0,0 +1 @@ +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{$ as t,$t as n,A as r,Dt as i,E as a,I as o,L as s,M as c,O as l,Q as u,St as d,Ut as f,Vt as p,Wt as m,Zt as h,_ as g,b as _,bt as v,c as y,ct as b,d as x,dt as S,ft as C,h as w,i as T,j as ee,k as E,n as D,nn as O,pt as k,s as A,tt as j,vt as M,wt as te,yt as N,zt as ne}from"./vendor-lucide-DUPkM7me.js";import{r as P}from"./vendor-markdown-BanIOC5U.js";import{t as re}from"./ActionButton-B1Vpk6pw.js";import{b as F,d as ie,n as ae,u as I,x as L}from"./index-DuJ0P36w.js";import{t as oe}from"./BrowserPage-BmNP5Bdw.js";import{t as se}from"./KpiStrip-L-nGhyMV.js";import{n as R,t as z}from"./WorkbenchPage-B1nOEo-c.js";var B=e(O(),1);function V(e,t){let n=new Set(t),r=e.filter(e=>n.has(e)),i=t.filter(e=>!r.includes(e));return[...r,...i]}function H(e,t){let[n,r]=I(`nyxstrike_workbench_hidden_categories`,[]),[i,a]=I(`nyxstrike_workbench_hidden_operations`,[]),[o,s]=I(`nyxstrike_workbench_category_order`,[]),[c,l]=I(`nyxstrike_workbench_operation_order`,[]),u=V(o,e),d=t.map(e=>e.id),f=V(c,d),p=u.map(e=>[e,f.map(e=>t.find(t=>t.id===e)).filter(t=>!!t&&t.category===e)]),m=p.filter(([e])=>!n.includes(e)).map(([e,t])=>[e,t.filter(e=>!i.includes(e.id))]);function h(e){return n.includes(e)}function g(e){return i.includes(e)}function _(e){r(t=>t.includes(e)?t:[...t,e])}function v(e){r(t=>t.filter(t=>t!==e))}function y(e){a(t=>t.includes(e)?t:[...t,e])}function b(e){a(t=>t.filter(t=>t!==e))}function x(t,n){let r=V(o,e),i=r.indexOf(t),a=r.indexOf(n);if(i===-1||a===-1||i===a)return;let c=[...r];c.splice(i,1),c.splice(a,0,t),s(c)}function S(e,t){let n=V(c,d),r=n.indexOf(e),i=n.indexOf(t);if(r===-1||i===-1||r===i)return;let a=[...n];a.splice(r,1),a.splice(i,0,e),l(a)}function C(){r([]),a([]),s([]),l([])}return{allByCategory:p,visibleByCategory:m,isCategoryHidden:h,isOperationHidden:g,hideCategory:_,showCategory:v,hideOperation:y,showOperation:b,reorderCategory:x,reorderOperation:S,resetLayout:C}}var U=`nyxstrike_workbench_favorites`;function W(){let[e,t]=I(U,[]);function n(t){return e.includes(t)}function r(e){t(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return{favorites:e,isFavorite:n,toggleFavorite:r}}var G=P();function ce({operation:e,onAddToRecipe:t,initialInput:n}){let[r,a]=(0,B.useState)(()=>Object.fromEntries(e.params.map(e=>[e.name,e.name===`input`&&n?n:String(e.default??``)]))),[s,f]=(0,B.useState)(!1),[p,h]=(0,B.useState)(!1),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(null),[b,x]=(0,B.useState)(void 0),[S,C]=(0,B.useState)(null),[w,T]=(0,B.useState)(!1),[ee,E]=(0,B.useState)(!1);function D(e,t){a(n=>({...n,[e]:t}))}async function O(){h(!0),_(null),y(null),x(void 0),C(null);try{let t=await L.workbenchRun(e.id,r);if(!t.success){_(t.error??`Operation failed.`);return}y(t.output??``),x(t.output_mime),C(t.note??null)}catch(e){_(String(e))}finally{h(!1)}}function k(){v&&navigator.clipboard?.writeText(v).then(()=>{T(!0),setTimeout(()=>T(!1),2e3)}).catch(()=>{})}function A(){let{input:n,...i}=r;t(e,i,n??``),E(!0),setTimeout(()=>E(!1),1500)}let j=!p&&e.params.every(e=>!e.required||r[e.name]?.trim());function M(e){(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&j&&(e.preventDefault(),O())}return(0,G.jsxs)(`div`,{className:`workbench-op-body`,onKeyDown:M,children:[(0,G.jsx)(`div`,{className:`section-header`,children:(0,G.jsx)(`h3`,{children:e.name})}),(0,G.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,G.jsx)(`p`,{className:`verify-tool-desc`,children:e.description}),(0,G.jsx)(`div`,{className:`workbench-form`,children:e.params.filter(e=>!e.hidden).map(e=>(0,G.jsxs)(`label`,{className:`workbench-field`,children:[(0,G.jsxs)(`span`,{className:`workbench-field-label`,children:[e.label,e.required?` *`:``]}),e.type===`textarea`&&(0,G.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:r[e.name]??``,onChange:t=>D(e.name,t.target.value),rows:4}),e.type===`select`&&(0,G.jsx)(`select`,{className:`input input-full`,value:r[e.name]??``,onChange:t=>D(e.name,t.target.value),children:(e.choices??[]).map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))}),(e.type===`text`||e.type===`number`)&&(0,G.jsx)(`input`,{className:`input input-full mono`,type:e.type,value:r[e.name]??``,onChange:t=>D(e.name,t.target.value)}),e.help_text&&(0,G.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name))}),(0,G.jsxs)(`div`,{className:`workbench-actions`,children:[(0,G.jsx)(`button`,{className:`workbench-run-btn`,onClick:O,disabled:!j,children:p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(c,{size:13,className:`spin`}),` Running…`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(o,{size:13}),` Run`]})}),(0,G.jsx)(`button`,{className:`workbench-secondary-btn`,onClick:A,title:`Add this operation (with its current settings) to the recipe`,children:ee?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m,{size:13,color:`var(--green)`}),` Added`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(u,{size:13}),` Add to Recipe`]})})]}),g&&(0,G.jsx)(`div`,{className:`verify-error`,children:g}),v!==null&&(0,G.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,G.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Output`}),(0,G.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:k,title:`Copy output`,children:w?(0,G.jsx)(m,{size:12,color:`var(--green)`}):(0,G.jsx)(i,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>R(v,b,e.id),title:`Download output`,children:(0,G.jsx)(d,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>f(!0),title:`Send output to Loot`,children:(0,G.jsx)(l,{size:12})})]})]}),b?.startsWith(`image/`)?(0,G.jsx)(`img`,{className:`workbench-output-image`,src:`data:${b},${v}`,alt:`Operation output`}):(0,G.jsx)(`pre`,{className:`verify-result-output mono`,children:v}),S&&(0,G.jsx)(`div`,{className:`workbench-note`,children:S})]}),v!==null&&(0,G.jsx)(z,{isOpen:s,onClose:()=>f(!1),defaultTitle:`${e.name} output`,content:v})]})]})}function le(e){let t=e.map(e=>({operation_id:e.operationId,params:e.params})),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json;charset=utf-8`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`workbench-recipe.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}function ue(e,t){let n=JSON.parse(e);if(!Array.isArray(n))throw Error(`Expected a JSON array of recipe steps.`);let r=0;return{steps:n.map(e=>{let n=t.find(t=>t.id===e.operation_id);return n?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:n.name,params:e.params??{}}:(r++,null)}).filter(e=>e!==null),skipped:r}}function de({recipe:e,setRecipe:a,operations:u,input:f,setInput:p}){let[w,ee]=(0,B.useState)(!1),[E,O]=(0,B.useState)(null),[k,A]=(0,B.useState)(null),[j,M]=(0,B.useState)(void 0),[te,N]=(0,B.useState)(!1),[ne,P]=(0,B.useState)([]),[re,oe]=(0,B.useState)(!1),[se,V]=(0,B.useState)(null),[H,U]=(0,B.useState)({}),[W,ce]=I(`nyxstrike_workbench_continue_on_error`,!1),[de,fe]=(0,B.useState)(null),[pe,me]=(0,B.useState)(``),[he,K]=(0,B.useState)({}),[q,ge]=(0,B.useState)([]),[_e,ve]=(0,B.useState)(!1),[ye,J]=(0,B.useState)(null),[be,Y]=(0,B.useState)(!1),[xe,Se]=(0,B.useState)(``),[Ce,we]=(0,B.useState)(null),[Te,Ee]=(0,B.useState)(``),[De,X]=(0,B.useState)(null),[Oe,ke]=(0,B.useState)(!1),[Z,Ae]=(0,B.useState)(null),[je,Me]=(0,B.useState)(!1),[Ne,Pe]=(0,B.useState)(!1),Fe=(0,B.useRef)(null),{pushToast:Q}=F();function $(){ve(!0),J(null),L.workbenchRecipes().then(e=>{if(!e.success){J(`Failed to load saved recipes.`);return}ge(e.recipes)}).catch(e=>J(String(e))).finally(()=>ve(!1))}(0,B.useEffect)(()=>{$()},[]);function Ie(e,t){a(n=>{let r=[...n],i=e+t;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)}),K({})}function Le(e,t){a(n=>{let r=[...n],i=r.findIndex(t=>t.stepId===e),a=r.findIndex(e=>e.stepId===t);if(i===-1||a===-1)return n;let[o]=r.splice(i,1);return r.splice(a,0,o),r}),K({})}let{dragHandlers:Re,dragClassName:ze}=ie(Le);function Be(t){a(e=>e.filter((e,n)=>n!==t)),V(n=>e[t]?.stepId===n?null:n),K({})}function Ve(e){a(t=>{let n=t[e];if(!n)return t;let r={...n,stepId:crypto.randomUUID(),params:{...n.params}},i=[...t];return i.splice(e+1,0,r),i}),K({})}function He(){a([]),X(null),Q(`info`,`Recipe cleared — undo with Ctrl+Z.`)}function Ue(){navigator.clipboard?.writeText(window.location.href).then(()=>Q(`success`,`Recipe link copied.`)).catch(()=>Q(`error`,`Failed to copy link.`))}function We(){le(e)}function Ge(){Fe.current?.click()}function Ke(e){let t=e.target.files?.[0];if(e.target.value=``,!t)return;let n=new FileReader;n.onload=()=>{try{let{steps:e,skipped:t}=ue(String(n.result??``),u);a(e),X(null),Q(`success`,t>0?`Recipe imported — ${t} step(s) skipped (unknown operation).`:`Recipe imported.`)}catch(e){Q(`error`,`Failed to import recipe: ${String(e)}`)}},n.readAsText(t)}function qe(e){V(e.stepId),U({...e.params})}function Je(){V(null)}function Ye(e){a(t=>t.map(t=>t.stepId===e?{...t,params:H}:t)),V(null)}async function Xe(t){ee(!0),O(null),A(null),M(void 0),N(!1),P([]);try{let n=await L.workbenchRunRecipe(f,e.map(e=>({operation_id:e.operationId,params:e.params})),{continueOnError:W,stopAfterStepIndex:t,stepInputOverrides:he});if(P(n.steps??[]),N(!!n.has_errors),!n.success){O(n.error??`Recipe failed.`);return}A(n.output??``),M(n.output_mime)}catch(e){O(String(e))}finally{ee(!1)}}function Ze(){return Xe(void 0)}function Qe(e){return Xe(e)}function $e(e,t){fe(String(e)),me(he[e]??t)}function et(){fe(null)}function tt(e){K(t=>({...t,[e]:pe})),fe(null)}function nt(e){K(t=>{let n={...t};return delete n[e],n})}function rt(){k&&navigator.clipboard?.writeText(k).then(()=>{oe(!0),setTimeout(()=>oe(!1),2e3)}).catch(()=>{})}function it(){Se(``),Y(!0)}function at(){Y(!1)}async function ot(){let t=xe.trim();if(!t)return;let n=await L.createWorkbenchRecipe(t,e.map(e=>({operation_id:e.operationId,params:e.params})));n.success?(Y(!1),X(n.recipe?.recipe_id??null),$(),Q(`success`,`Saved as "${t}".`)):J(n.error??`Failed to save recipe.`)}async function st(){if(!De)return;ke(!0);let t=await L.updateWorkbenchRecipe(De,{steps:e.map(e=>({operation_id:e.operationId,params:e.params}))});ke(!1),t.success?($(),Q(`success`,`Recipe saved.`)):J(t.error??`Failed to save recipe.`)}function ct(e){a(e.steps.map(e=>{let t=u.find(t=>t.id===e.operation_id);return t?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:t.name,params:e.params??{}}:null}).filter(e=>e!==null)),V(null),X(e.recipe_id)}function lt(e){we(e.recipe_id),Ee(e.name)}function ut(){we(null)}async function dt(e){let t=Te.trim();if(!t)return;let n=await L.updateWorkbenchRecipe(e,{name:t});n.success?(we(null),$()):J(n.error??`Failed to rename recipe.`)}async function ft(){if(!Z)return;Me(!0);let e=await L.deleteWorkbenchRecipe(Z.recipe_id);Me(!1),e.success?(De===Z.recipe_id&&X(null),Ae(null),$()):J(e.error??`Failed to delete recipe.`)}return(0,G.jsxs)(`section`,{className:`workbench-recipe${e.length>0?` section`:``}`,children:[e.length>0&&(0,G.jsxs)(`div`,{className:`section-header`,children:[(0,G.jsxs)(`h3`,{children:[(0,G.jsx)(T,{size:14,style:{marginRight:6,verticalAlign:-2}}),`Recipe`]}),(0,G.jsxs)(`span`,{className:`workbench-recipe-toolbar`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:Ue,title:`Copy link to this recipe`,children:(0,G.jsx)(t,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:We,title:`Export recipe as a JSON file`,children:(0,G.jsx)(d,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:Ge,title:`Import recipe from a JSON file`,children:(0,G.jsx)(y,{size:12})}),(0,G.jsx)(`input`,{ref:Fe,type:`file`,accept:`application/json`,className:`workbench-hidden-file-input`,onChange:Ke}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:He,title:`Clear recipe (undo with Ctrl+Z)`,children:(0,G.jsx)(v,{size:12})})]})]}),(0,G.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,G.jsxs)(`div`,{className:`workbench-saved-recipes`,children:[(0,G.jsxs)(`div`,{className:`workbench-saved-recipes-header`,children:[(0,G.jsxs)(`span`,{className:`workbench-field-label`,children:[(0,G.jsx)(C,{size:12,style:{marginRight:4,verticalAlign:-2}}),`Saved Recipes`]}),e.length>0&&!be&&(0,G.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[De&&(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>void st(),disabled:Oe,title:`Save changes to the loaded recipe`,children:(0,G.jsx)(r,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:it,title:`Save as a new recipe`,children:(0,G.jsx)(S,{size:12})})]})]}),be&&(0,G.jsxs)(`div`,{className:`workbench-saved-recipe-row workbench-saved-recipe-row--edit`,children:[(0,G.jsx)(`input`,{className:`input input-full mono`,placeholder:`Recipe name…`,value:xe,autoFocus:!0,onChange:e=>Se(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ot(),e.key===`Escape`&&at()}}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>void ot(),title:`Confirm`,children:(0,G.jsx)(m,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:at,title:`Cancel`,children:(0,G.jsx)(D,{size:12})})]}),_e&&(0,G.jsx)(`div`,{className:`workbench-panel-empty-hint`,children:`Loading…`}),ye&&(0,G.jsx)(`div`,{className:`verify-error`,children:ye}),!_e&&q.length===0&&!be&&(0,G.jsx)(`div`,{className:`workbench-panel-empty-hint`,children:`No saved recipes yet.`}),q.map(e=>(0,G.jsx)(`div`,{className:`workbench-saved-recipe-row`,children:Ce===e.recipe_id?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`input`,{className:`input input-full mono`,value:Te,autoFocus:!0,onChange:e=>Ee(e.target.value),onKeyDown:t=>{t.key===`Enter`&&dt(e.recipe_id),t.key===`Escape`&&ut()}}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>void dt(e.recipe_id),title:`Confirm`,children:(0,G.jsx)(m,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:ut,title:`Cancel`,children:(0,G.jsx)(D,{size:12})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`workbench-saved-recipe-name mono`,title:e.name,children:e.name}),(0,G.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>ct(e),title:`Load into working recipe`,children:(0,G.jsx)(C,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>lt(e),title:`Rename`,children:(0,G.jsx)(s,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ae(e),title:`Delete`,children:(0,G.jsx)(x,{size:12})})]})]})},e.recipe_id))]}),e.length===0?(0,G.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,G.jsx)(T,{size:28,color:`var(--text-dim)`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`No recipe yet`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Use "Add to Recipe" on any operation to chain it here — each step's output feeds the next step's input.`})]}):(0,G.jsx)(`ol`,{className:`workbench-recipe-steps`,children:e.map((t,r)=>{let a=u.find(e=>e.id===t.operationId)?.params.filter(e=>e.name!==`input`)??[],o=se===t.stepId;return(0,G.jsxs)(`li`,{className:ze(t.stepId,`workbench-recipe-step-wrap`),...Re(t.stepId),children:[(0,G.jsxs)(`div`,{className:`workbench-recipe-step`,children:[(0,G.jsx)(`span`,{className:`workbench-recipe-step-drag`,title:`Drag to reorder`,children:(0,G.jsx)(b,{size:12})}),(0,G.jsx)(`span`,{className:`workbench-recipe-step-index`,children:r+1}),(0,G.jsx)(`span`,{className:`workbench-recipe-step-name`,children:t.operationName}),Object.keys(t.params).length>0&&(0,G.jsx)(`span`,{className:`workbench-recipe-step-params mono`,children:Object.entries(t.params).map(([e,t])=>`${e}=${t}`).join(`, `)}),he[r]!==void 0&&(0,G.jsx)(`span`,{className:`workbench-recipe-step-override-badge`,title:`This step's input is overridden for the next run`,children:`input overridden`}),(0,G.jsxs)(`span`,{className:`workbench-recipe-step-actions`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ie(r,-1),disabled:r===0,title:`Move up`,children:(0,G.jsx)(h,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ie(r,1),disabled:r===e.length-1,title:`Move down`,children:(0,G.jsx)(n,{size:12})}),a.length>0&&(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>o?Je():qe(t),title:`Edit settings`,children:(0,G.jsx)(s,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>de===String(r)?et():$e(r,``),title:`Override this step's input for debugging`,children:(0,G.jsx)(g,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>void Qe(r),disabled:w,title:`Run recipe up to this step`,children:(0,G.jsx)(_,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ve(r),title:`Duplicate step`,children:(0,G.jsx)(i,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Be(r),title:`Remove`,children:(0,G.jsx)(D,{size:12})})]})]}),de===String(r)&&(0,G.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[(0,G.jsxs)(`label`,{className:`workbench-field`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Override input for this step`}),(0,G.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:pe,onChange:e=>me(e.target.value),rows:2})]}),(0,G.jsxs)(`div`,{className:`workbench-actions`,children:[(0,G.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>tt(r),children:[(0,G.jsx)(m,{size:13}),` Save Override`]}),(0,G.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:et,children:[(0,G.jsx)(D,{size:13}),` Cancel`]}),he[r]!==void 0&&(0,G.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>nt(r),children:[(0,G.jsx)(D,{size:13}),` Clear`]})]})]}),o&&(0,G.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[a.map(e=>(0,G.jsxs)(`label`,{className:`workbench-field`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:e.label}),e.type===`select`?(0,G.jsx)(`select`,{className:`input input-full`,value:H[e.name]??``,onChange:t=>U(n=>({...n,[e.name]:t.target.value})),children:(e.choices??[]).map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))}):e.type===`textarea`?(0,G.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:H[e.name]??``,onChange:t=>U(n=>({...n,[e.name]:t.target.value})),rows:2}):(0,G.jsx)(`input`,{className:`input input-full mono`,type:e.type===`number`?`number`:`text`,value:H[e.name]??``,onChange:t=>U(n=>({...n,[e.name]:t.target.value}))}),e.help_text&&(0,G.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name)),(0,G.jsxs)(`div`,{className:`workbench-actions`,children:[(0,G.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>Ye(t.stepId),children:[(0,G.jsx)(m,{size:13}),` Save`]}),(0,G.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:Je,children:[(0,G.jsx)(D,{size:13}),` Cancel`]})]})]})]},t.stepId)})}),e.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`label`,{className:`workbench-field`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Input`}),(0,G.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:f,onChange:e=>p(e.target.value),onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&!w&&(e.preventDefault(),Ze())},rows:3})]}),(0,G.jsxs)(`label`,{className:`workbench-continue-toggle`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:W,onChange:e=>ce(e.target.checked)}),`Continue on error`]}),(0,G.jsx)(`div`,{className:`workbench-actions`,children:(0,G.jsx)(`button`,{className:`workbench-run-btn`,onClick:Ze,disabled:w,children:w?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(c,{size:13,className:`spin`}),` Running…`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(o,{size:13}),` Run Recipe`]})})}),E&&(0,G.jsx)(`div`,{className:`verify-error`,children:E}),te&&!E&&(0,G.jsx)(`div`,{className:`workbench-note`,children:`Some steps failed and were skipped (continue-on-error was on) — see the trace below.`}),ne.length>0&&(0,G.jsx)(`ol`,{className:`workbench-recipe-trace`,children:ne.map((e,t)=>{let n=e.error?W?`workbench-recipe-trace-error-continued`:`workbench-recipe-trace-error`:``;return(0,G.jsxs)(`li`,{className:n,children:[(0,G.jsx)(`span`,{className:`workbench-recipe-step-index`,children:t+1}),(0,G.jsx)(`span`,{className:`workbench-field-label`,children:e.name??e.operation_id}),e.input!==void 0&&(0,G.jsxs)(`span`,{className:`workbench-recipe-trace-input mono`,children:[`in: `,e.input.length>120?`${e.input.slice(0,120)}…`:e.input]}),e.error?(0,G.jsxs)(`span`,{className:`mono`,children:[W?`Skipped (chain continued): `:`Error: `,e.error]}):e.output_mime?.startsWith(`image/`)?(0,G.jsx)(`img`,{className:`workbench-recipe-trace-image-thumb`,src:`data:${e.output_mime},${e.output}`,alt:`Step output`}):(0,G.jsx)(`span`,{className:`mono`,children:e.output})]},t)})}),k!==null&&(0,G.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,G.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Final Output`}),(0,G.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:rt,title:`Copy output`,children:re?(0,G.jsx)(m,{size:12,color:`var(--green)`}):(0,G.jsx)(i,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>R(k,j,`recipe`),title:`Download output`,children:(0,G.jsx)(d,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>Pe(!0),title:`Send output to Loot`,children:(0,G.jsx)(l,{size:12})})]})]}),j?.startsWith(`image/`)?(0,G.jsx)(`img`,{className:`workbench-output-image`,src:`data:${j},${k}`,alt:`Recipe output`}):(0,G.jsx)(`pre`,{className:`verify-result-output mono`,children:k})]})]})]}),(0,G.jsx)(ae,{isOpen:!!Z,title:`Delete saved recipe?`,description:`This will permanently delete "${Z?.name}". This can't be undone.`,confirmLabel:`Delete`,isConfirming:je,onConfirm:ft,onClose:()=>Ae(null)}),k!==null&&(0,G.jsx)(z,{isOpen:Ne,onClose:()=>Pe(!1),defaultTitle:`Recipe output`,content:k})]})}function fe(){let[e,t]=(0,B.useState)(``),[n,r]=(0,B.useState)(!1),[a,s]=(0,B.useState)(null),[u,f]=(0,B.useState)(null),[p,h]=(0,B.useState)([]),[g,_]=(0,B.useState)(void 0),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(!1);async function S(){r(!0),s(null),f(null),h([]),_(void 0);try{let t=await L.workbenchDecloak(e);if(h(t.steps??[]),_(t.stopped_reason),!t.success){s(t.error??`Decloak failed.`);return}f(t.output??``)}catch(e){s(String(e))}finally{r(!1)}}function C(){u&&navigator.clipboard?.writeText(u).then(()=>{y(!0),setTimeout(()=>y(!1),2e3)}).catch(()=>{})}return(0,G.jsxs)(`section`,{className:`workbench-panel`,children:[(0,G.jsxs)(`div`,{className:`workbench-op-content`,children:[p.length===0&&u===null&&(0,G.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,G.jsx)(A,{size:28,color:`var(--text-dim)`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`Decloak`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Paste any encoded/nested value — Decloak auto-detects and peels back each layer (Base64, hex, gzip, URL-encoding, etc.) until it finds plaintext or a dead end.`})]}),(0,G.jsxs)(`label`,{className:`workbench-field`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Input`}),(0,G.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&!n&&(e.preventDefault(),S())},rows:3})]}),(0,G.jsx)(`div`,{className:`workbench-actions`,children:(0,G.jsx)(`button`,{className:`workbench-run-btn`,onClick:()=>void S(),disabled:n||!e.trim(),children:n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(c,{size:13,className:`spin`}),` Decloaking…`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(o,{size:13}),` Decloak`]})})}),a&&(0,G.jsx)(`div`,{className:`verify-error`,children:a}),g===`max_depth`&&(0,G.jsx)(`div`,{className:`workbench-note`,children:`Stopped at max depth — chain may be longer.`}),g===`cycle`&&(0,G.jsx)(`div`,{className:`workbench-note`,children:`Stopped — decoding started repeating (cycle detected).`}),p.length>0&&(0,G.jsx)(`ol`,{className:`workbench-recipe-trace`,children:p.map((e,t)=>(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`span`,{className:`workbench-recipe-step-index`,children:t+1}),(0,G.jsx)(`span`,{className:`workbench-field-label`,children:e.name??e.operation_id}),e.input!==void 0&&(0,G.jsxs)(`span`,{className:`workbench-recipe-trace-input mono`,children:[`in: `,e.input.length>120?`${e.input.slice(0,120)}…`:e.input]}),(0,G.jsx)(`span`,{className:`mono`,children:e.output})]},t))}),u!==null&&(0,G.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,G.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,G.jsx)(`span`,{className:`workbench-field-label`,children:`Final Output`}),(0,G.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,G.jsx)(`button`,{className:`icon-btn`,onClick:C,title:`Copy output`,children:v?(0,G.jsx)(m,{size:12,color:`var(--green)`}):(0,G.jsx)(i,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>R(u,void 0,`decloak`),title:`Download output`,children:(0,G.jsx)(d,{size:12})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>x(!0),title:`Send output to Loot`,children:(0,G.jsx)(l,{size:12})})]})]}),(0,G.jsx)(`pre`,{className:`verify-result-output mono`,children:u})]})]}),u!==null&&(0,G.jsx)(z,{isOpen:b,onClose:()=>x(!1),defaultTitle:`Decloak output`,content:u})]})}function pe({allByCategory:e,isCategoryHidden:t,isOperationHidden:n,hideCategory:r,showCategory:i,hideOperation:a,showOperation:o,isFavorite:s,toggleFavorite:c,reorderCategory:l,reorderOperation:u}){let{dragHandlers:d,dragClassName:f}=ie(l),{dragHandlers:p,dragClassName:m}=ie(u);return(0,G.jsx)(G.Fragment,{children:e.map(([e,l])=>{let u=t(e),h=l.length>0&&l.every(e=>n(e.id));return(0,G.jsxs)(`div`,{className:f(e,`workbench-category workbench-category--customize${u?` workbench-category--hidden`:``}`),...d(e),children:[(0,G.jsxs)(`div`,{className:`workbench-category-header workbench-category-header--customize`,children:[(0,G.jsx)(`span`,{className:`workbench-row-drag`,title:`Drag to reorder`,children:(0,G.jsx)(b,{size:12})}),(0,G.jsx)(`span`,{className:`workbench-category-label`,children:e.replace(/_/g,` `)}),!u&&h&&(0,G.jsx)(`span`,{className:`workbench-category-hint`,children:`(all tools hidden)`}),(0,G.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn`,onClick:()=>u?i(e):r(e),title:u?`Show ${e}`:`Hide ${e}`,children:u?(0,G.jsx)(N,{size:13}):(0,G.jsx)(M,{size:13})})]}),l.map(e=>{let t=n(e.id),r=s(e.id);return(0,G.jsxs)(`div`,{className:m(e.id,`workbench-op-row${t?` workbench-op-row--hidden`:``}`),...p(e.id),children:[(0,G.jsx)(`span`,{className:`workbench-row-drag`,title:`Drag to reorder`,children:(0,G.jsx)(b,{size:11})}),(0,G.jsx)(`span`,{className:`workbench-op-row-name`,children:e.name}),(0,G.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn${r?` workbench-star-btn--active`:``}`,onClick:()=>c(e.id),title:r?`Unstar ${e.name}`:`Star ${e.name}`,children:(0,G.jsx)(w,{size:12,fill:r?`currentColor`:`none`})}),(0,G.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn`,onClick:()=>t?o(e.id):a(e.id),title:t?`Show ${e.name}`:`Hide ${e.name}`,children:t?(0,G.jsx)(N,{size:12}):(0,G.jsx)(M,{size:12})})]},e.id)})]},e)})})}var me=`Favorites`;function he(e){return JSON.stringify(e.map(e=>[e.operationId,e.params]))}function K(e,t){return JSON.parse(e).map(e=>{let[n,r]=e,i=t.find(e=>e.id===n);return i?{stepId:crypto.randomUUID(),operationId:n,operationName:i.name,params:r}:null}).filter(e=>e!==null)}function q({urlOperationId:e,onOperationSelected:t,urlRecipe:n,onRecipeChanged:r,urlInput:i}){let[o,s]=(0,B.useState)([]),[l,u]=(0,B.useState)([]),[d,m]=(0,B.useState)(!0),[h,g]=(0,B.useState)(null),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(`operations`),[x,S]=(0,B.useState)(``),[C,T]=I(`nyxstrike_workbench_expanded_categories`,[]),[O,M]=I(`nyxstrike_workbench_recipe`,[]),[N,P]=I(`nyxstrike_workbench_recipe_input`,``),[F,ie]=(0,B.useState)(!n),[R,z]=(0,B.useState)([]),[V,U]=(0,B.useState)([]),[le,ue]=(0,B.useState)(null),[q,ge]=(0,B.useState)(!1),[_e,ve]=(0,B.useState)(!1),ye=(0,B.useRef)(null),J=(0,B.useRef)({}),{allByCategory:be,visibleByCategory:Y,isCategoryHidden:xe,isOperationHidden:Se,hideCategory:Ce,showCategory:we,hideOperation:Te,showOperation:Ee,reorderCategory:De,reorderOperation:X,resetLayout:Oe}=H(l,o),{favorites:ke,isFavorite:Z,toggleFavorite:Ae}=W();(0,B.useEffect)(()=>{let e=!1;return m(!0),L.workbenchOperations().then(t=>{if(!e){if(!t.success){g(`Failed to load operations.`);return}s(t.operations),u(t.categories),v(e=>e??t.operations[0]?.id??null)}}).catch(t=>!e&&g(String(t))).finally(()=>!e&&m(!1)),()=>{e=!0}},[]),(0,B.useEffect)(()=>{!e||_===e||o.some(t=>t.id===e)&&v(e)},[e,o,_]),(0,B.useEffect)(()=>{if(!(F||o.length===0)){if(n){try{M(K(n,o))}catch{M([])}i&&P(e=>e.trim()?e:i)}else i&&ue(i);ie(!0)}},[o,F,n,i]),(0,B.useEffect)(()=>{F&&r?.(O.length>0?he(O):null)},[O,F]);let je=(0,B.useMemo)(()=>{let e=x.trim().toLowerCase(),t=e?Y.map(t=>[t[0],t[1].filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e))]):Y;if(e)return t.filter(([,e])=>e.length>0);let n=Y.flatMap(([,e])=>e).filter(e=>Z(e.id)),r=t.map(e=>[e[0],e[1].filter(e=>!Z(e.id))]).filter(([,e])=>e.length>0);return n.length>0?[[me,n],...r]:r},[Y,x,Z]),Me=o.find(e=>e.id===_)??null;(0,B.useEffect)(()=>{if(!_)return;let e=o.find(e=>e.id===_);if(!e)return;let t=ke.includes(_)?me:e.category;T(e=>e.length===1&&e[0]===t?e:[t])},[_,o,ke]),(0,B.useEffect)(()=>{_&&J.current[_]?.scrollIntoView({block:`nearest`})},[_,C]);function Ne(e){v(e),ue(null),b(`operations`),t?.(e)}function Pe(e){T(t=>t.length===1&&t[0]===e?[]:[e])}function Fe(){T([])}function Q(e){z(e=>[...e.slice(-49),O]),U([]),M(e)}function $(){if(R.length===0)return;let e=R[R.length-1];z(R.slice(0,-1)),U([O,...V].slice(0,50)),M(e)}function Ie(){if(V.length===0)return;let[e,...t]=V;z([...R.slice(-49),O]),U(t),M(e)}(0,B.useEffect)(()=>{function e(e){let t=e.target,n=!!t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable);if(!n&&e.key===`/`&&!q){e.preventDefault(),ye.current?.focus();return}!n&&(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`z`&&(e.preventDefault(),e.shiftKey?Ie():$())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[O,R,V,q]);function Le(e,t,n){let r={stepId:crypto.randomUUID(),operationId:e.id,operationName:e.name,params:t};Q(e=>[...e,r]),n.trim()&&P(e=>e.trim()?e:n)}return(0,G.jsxs)(G.Fragment,{children:[d&&(0,G.jsx)(`div`,{className:`workbench-page-loading`,children:(0,G.jsx)(c,{size:20,className:`spin`,color:`var(--green)`})}),h&&(0,G.jsx)(`div`,{className:`workbench-page-error`,children:h}),!d&&!h&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ae,{isOpen:_e,title:`Reset Workbench layout?`,description:`This will un-hide all categories and tools and restore the default order. Starred favorites are not affected.`,confirmLabel:`Reset`,confirmVariant:`default`,onConfirm:()=>{Oe(),ve(!1)},onClose:()=>ve(!1)}),(0,G.jsx)(oe,{className:`workbench-page`,asideExpanded:O.length>0,top:(0,G.jsx)(se,{items:[{icon:(0,G.jsx)(k,{size:16}),label:`Operations`,value:o.length,accent:`var(--blue)`},{icon:(0,G.jsx)(te,{size:16}),label:`Categories`,value:l.length,accent:`var(--purple)`},{icon:(0,G.jsx)(w,{size:16}),label:`Favorites`,value:ke.length,accent:`var(--amber)`},{icon:(0,G.jsx)(j,{size:16}),label:`Recipe Steps`,value:O.length,accent:O.length>0?`var(--green)`:`var(--text-dim)`}]}),nav:(0,G.jsxs)(`nav`,{className:`workbench-sidebar browser-nav`,children:[(0,G.jsxs)(`div`,{className:`workbench-sidebar-title browser-nav-title`,children:[(0,G.jsxs)(`span`,{className:`workbench-sidebar-title-text`,children:[(0,G.jsx)(k,{size:14}),` Workbench`]}),(0,G.jsxs)(`div`,{className:`workbench-sidebar-title-actions`,children:[!q&&C.length>0&&(0,G.jsx)(`button`,{type:`button`,className:`workbench-reset-link-btn`,onClick:Fe,title:`Collapse all categories`,children:(0,G.jsx)(ne,{size:12})}),q&&(0,G.jsx)(`button`,{type:`button`,className:`workbench-reset-link-btn`,onClick:()=>ve(!0),title:`Reset layout`,children:(0,G.jsx)(ee,{size:12})}),(0,G.jsxs)(re,{variant:q?`success`:`default`,className:`workbench-customize-btn`,onClick:()=>ge(e=>!e),children:[(0,G.jsx)(a,{size:13}),` `,q?`Done`:`Customize`]})]})]}),(0,G.jsxs)(`div`,{className:`workbench-mode-tabs`,children:[(0,G.jsx)(`button`,{type:`button`,className:`workbench-mode-tab${y===`operations`?` workbench-mode-tab--active`:``}`,onClick:()=>b(`operations`),children:`Operations`}),(0,G.jsxs)(`button`,{type:`button`,className:`workbench-mode-tab${y===`decloak`?` workbench-mode-tab--active`:``}`,onClick:()=>b(`decloak`),children:[(0,G.jsx)(A,{size:12}),` Decloak`]})]}),(0,G.jsxs)(`div`,{className:`workbench-search${q?` workbench-search--disabled`:``}`,children:[(0,G.jsx)(E,{size:13,className:`workbench-search-icon`}),(0,G.jsx)(`input`,{ref:ye,className:`workbench-search-input`,placeholder:q?`Search disabled while customizing`:`Find an operation… (/)`,value:x,onChange:e=>S(e.target.value),disabled:q}),x&&!q&&(0,G.jsx)(`button`,{className:`workbench-search-clear`,onClick:()=>S(``),title:`Clear search`,children:(0,G.jsx)(D,{size:12})})]}),q?(0,G.jsx)(pe,{allByCategory:be,isCategoryHidden:xe,isOperationHidden:Se,hideCategory:Ce,showCategory:we,hideOperation:Te,showOperation:Ee,isFavorite:Z,toggleFavorite:Ae,reorderCategory:De,reorderOperation:X}):(0,G.jsxs)(G.Fragment,{children:[je.map(([e,t])=>{let n=!x.trim()&&!C.includes(e);return(0,G.jsxs)(`div`,{className:`workbench-category`,children:[(0,G.jsxs)(`button`,{className:`workbench-category-header`,onClick:()=>Pe(e),children:[n?(0,G.jsx)(p,{size:12}):(0,G.jsx)(f,{size:12}),(0,G.jsx)(`span`,{className:`workbench-category-label`,children:e.replace(/_/g,` `)})]}),!n&&(0,G.jsx)(`div`,{className:`workbench-category-ops`,children:t.map(e=>(0,G.jsxs)(`div`,{className:`workbench-op-row-wrap`,children:[(0,G.jsx)(`button`,{ref:t=>{J.current[e.id]=t},className:`workbench-op-btn${e.id===_?` workbench-op-btn--active`:``}`,onClick:()=>Ne(e.id),children:e.name}),(0,G.jsx)(`button`,{type:`button`,className:`workbench-star-btn${Z(e.id)?` workbench-star-btn--active`:``}`,onClick:t=>{t.stopPropagation(),Ae(e.id)},title:Z(e.id)?`Unstar ${e.name}`:`Star ${e.name}`,children:(0,G.jsx)(w,{size:12,fill:Z(e.id)?`currentColor`:`none`})})]},e.id))})]},e)}),je.length===0&&(0,G.jsx)(`div`,{className:`workbench-empty`,children:x?(0,G.jsxs)(G.Fragment,{children:[`No operations match "`,x,`".`]}):(0,G.jsxs)(G.Fragment,{children:[`All categories are hidden.`,` `,(0,G.jsx)(`button`,{type:`button`,className:`workbench-empty-reset-link`,onClick:Oe,children:`Reset layout`})]})})]})]}),main:(0,G.jsx)(`div`,{className:`workbench-main`,children:y===`decloak`?(0,G.jsx)(fe,{}):(0,G.jsx)(`section`,{className:`workbench-panel`,children:Me?(0,G.jsx)(ce,{operation:Me,onAddToRecipe:Le,initialInput:le??void 0},Me.id):(0,G.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,G.jsx)(k,{size:28,color:`var(--text-dim)`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`Select an operation`}),(0,G.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Pick something from the sidebar to get started.`})]})})}),aside:(0,G.jsx)(`aside`,{className:`workbench-recipe-col browser-aside`,children:(0,G.jsx)(de,{recipe:O,setRecipe:Q,operations:o,input:N,setInput:P})})})]})]})}export{q as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/WorkbenchPage-Ci9oXkH1.css b/frontend/dashboard/assets/WorkbenchPage-Ci9oXkH1.css new file mode 100644 index 000000000..d9965323e --- /dev/null +++ b/frontend/dashboard/assets/WorkbenchPage-Ci9oXkH1.css @@ -0,0 +1 @@ +@media (width<=1280px){.workbench-page .workbench-sidebar{flex-basis:220px}.workbench-page .workbench-recipe-col{flex-basis:260px}}@media (width<=980px){.workbench-page .workbench-sidebar{max-height:38vh}.workbench-page .workbench-recipe-col{border:none;border-bottom:1px solid var(--border);flex:none;max-height:50vh}}.workbench-page-loading{flex:1;justify-content:center;align-items:center;height:100%;display:flex}.workbench-page-error{color:var(--red,#e06c75);background:color-mix(in srgb, var(--red,#e06c75) 8%, transparent);border:1px solid color-mix(in srgb, var(--red,#e06c75) 25%, transparent);border-radius:6px;flex:1;align-self:flex-start;margin:20px;padding:8px 12px;font-size:12px}.workbench-sidebar-title{justify-content:space-between}.workbench-sidebar-title-text{align-items:center;gap:6px;display:flex}.workbench-sidebar-title-actions{align-items:center;gap:2px;display:flex}.workbench-customize-btn{gap:4px;padding:4px 8px;font-size:11px}.workbench-reset-link-btn{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.workbench-reset-link-btn:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-search--disabled{opacity:.5;pointer-events:none}.workbench-mode-tabs{gap:4px;margin:0 10px 8px;display:flex}.workbench-mode-tab{font-size:11.5px;font-family:var(--mono);background:var(--bg-card2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;padding:5px 8px;display:flex}.workbench-mode-tab:hover{color:var(--text-h)}.workbench-mode-tab--active{color:var(--green);border-color:var(--green);background:var(--green-dim)}.workbench-main{flex:1 1 0;overflow:hidden auto}.workbench-search{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;margin:0 10px 8px;padding:6px 10px;display:flex}.workbench-search-icon{color:var(--text-dim);flex-shrink:0}.workbench-search-input{min-width:0;color:var(--text-h);font-size:12.5px;font-family:var(--mono);background:0 0;border:none;outline:none;flex:1}.workbench-search-input::placeholder{color:var(--text-dim)}.workbench-search-clear{width:16px;height:16px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.workbench-search-clear:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-category{padding:1px 0 3px}.workbench-category-header{cursor:pointer;width:100%;color:var(--text-dim);background:0 0;border:none;align-items:center;gap:6px;padding:5px 14px;display:flex}.workbench-category-label{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;flex:1;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.workbench-category-star-icon{color:var(--amber);flex-shrink:0}.workbench-category-ops{border-left:1px solid var(--border);margin-left:19px;position:relative}.workbench-op-btn{text-align:left;width:100%;color:var(--text-h);font-family:var(--mono);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;margin-left:-1px;padding:4px 14px 4px 11px;font-size:12.5px;display:block}.workbench-op-btn:hover{background:var(--bg-card2)}.workbench-op-btn--active{color:var(--green);border-left-color:var(--green);background:var(--green-dim)}.workbench-op-row-wrap{align-items:center;display:flex}.workbench-op-row-wrap .workbench-op-btn{flex:1;min-width:0}.workbench-star-btn{width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;display:flex}.workbench-star-btn:hover{color:var(--amber);background:var(--bg-card2)}.workbench-star-btn--active{color:var(--amber)}.workbench-category--customize{border-radius:6px}.workbench-category--hidden{opacity:.55}.workbench-category-header--customize{cursor:default}.workbench-row-drag{color:var(--text-dim);cursor:grab;flex-shrink:0;align-items:center;display:flex}.workbench-category-hint{color:var(--text-dim);flex-shrink:0;margin-right:4px;font-size:10px;font-style:italic}.workbench-row-icon-btn{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.workbench-row-icon-btn:hover{color:var(--text-h);background:var(--bg-card2)}.workbench-row-icon-btn.workbench-star-btn--active{color:var(--amber)}.workbench-op-row{font-family:var(--mono);color:var(--text-h);align-items:center;gap:6px;padding:4px 14px 4px 30px;font-size:12.5px;display:flex}.workbench-op-row--hidden{opacity:.5}.workbench-op-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.workbench-empty-reset-link{color:var(--green);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.workbench-panel{min-height:200px}.workbench-op-content{flex-direction:column;gap:12px;padding:14px 18px 18px;display:flex}.workbench-empty{color:var(--text-dim);padding:24px 18px;font-size:12.5px}.workbench-panel-empty{text-align:center;border:1px dashed var(--border);color:var(--text-dim);border-radius:8px;flex-direction:column;align-items:center;gap:10px;margin:16px;padding:40px 20px;font-size:12.5px;line-height:1.5;display:flex}.workbench-panel-empty-title{color:var(--text);font-size:13px;font-weight:600}.workbench-panel-empty-hint{max-width:260px}.workbench-form{flex-direction:column;gap:10px;display:flex}.workbench-field{flex-direction:column;gap:4px;display:flex}.workbench-field-label{color:var(--text-dim);font-size:11px}.workbench-field-hint{color:var(--text-dim);font-size:10.5px;font-style:italic}.workbench-field textarea.workbench-textarea{min-height:80px}.workbench-actions{align-items:center;gap:8px;display:flex}.workbench-run-btn{background:var(--green);border:1px solid var(--green);color:var(--bg-card,#0b0f14);cursor:pointer;font-family:var(--mono);white-space:nowrap;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:8px 18px;font-size:12.5px;font-weight:700;transition:filter .15s;display:flex}.workbench-run-btn:hover:not(:disabled){filter:brightness(1.1)}.workbench-run-btn:disabled{opacity:.4;cursor:not-allowed}.workbench-secondary-btn{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);cursor:pointer;font-family:var(--mono);white-space:nowrap;border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;transition:border-color .15s;display:flex}.workbench-secondary-btn:hover{border-color:var(--green)}.workbench-output-wrap{margin-top:4px}.workbench-output-header{justify-content:space-between;align-items:center;display:flex}.workbench-output-actions{align-items:center;gap:4px;display:flex}.workbench-output-image{border:1px solid var(--border);background:var(--bg-card2);border-radius:4px;max-width:100%}.workbench-recipe-trace-image-thumb{border:1px solid var(--border);vertical-align:middle;border-radius:3px;max-width:100%;max-height:48px}.workbench-note{color:var(--text-dim);margin-top:8px;font-size:11.5px;font-style:italic}.workbench-saved-recipes{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.workbench-saved-recipes-header{justify-content:space-between;align-items:center;display:flex}.workbench-saved-recipe-row{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.workbench-saved-recipe-row--edit{background:0 0;border:none;padding:0}.workbench-saved-recipe-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-h);flex:1;overflow:hidden}.workbench-saved-recipe-actions,.workbench-recipe-toolbar{flex-shrink:0;gap:2px;display:flex}.workbench-hidden-file-input{display:none}.workbench-recipe-step-drag{color:var(--text-dim);cursor:grab;flex-shrink:0;align-items:center;display:flex}.workbench-recipe-steps{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.workbench-recipe-step{background:var(--bg-card2);border:1px solid var(--border);cursor:grab;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:12.5px;display:flex}.workbench-recipe-step-index{color:var(--text-dim);font-family:var(--mono);flex-shrink:0;font-size:11px}.workbench-recipe-step-name{color:var(--text-h);font-weight:600}.workbench-recipe-step-params{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.workbench-recipe-step-actions{flex-shrink:0;gap:2px;margin-left:auto;display:flex}.workbench-recipe-step-edit{background:var(--bg-card2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;margin:6px 0 0 26px;padding:10px;display:flex}.workbench-recipe-trace{flex-direction:column;gap:4px;margin:0;padding:0;font-size:11.5px;list-style:none;display:flex}.workbench-recipe-trace li{border-left:2px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 8px;display:flex}.workbench-recipe-trace-error{color:var(--red,#e06c75);border-left-color:var(--red,#e06c75)!important}.workbench-recipe-trace-error-continued{color:var(--amber);border-left-color:var(--amber)!important}.workbench-recipe-trace-input{color:var(--text-dim);opacity:.8;flex-basis:100%}.workbench-recipe-step-override-badge{color:var(--amber);background:var(--amber-dim);border:1px solid var(--amber);border-radius:10px;flex-shrink:0;padding:1px 6px;font-size:10px}.workbench-continue-toggle{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;margin-top:8px;font-size:11.5px;display:flex} diff --git a/frontend/dashboard/assets/WorkbenchPage-M_xobbfg.js b/frontend/dashboard/assets/WorkbenchPage-M_xobbfg.js deleted file mode 100644 index 8c91668d3..000000000 --- a/frontend/dashboard/assets/WorkbenchPage-M_xobbfg.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,$t as n,A as r,Bt as i,D as a,E as o,F as s,It as c,Jt as l,O as u,P as d,Rt as f,St as p,Vt as m,X as h,Xt as g,Z as _,_t as v,bt as y,dt as b,gt as x,h as S,i as C,k as ee,lt as te,n as w,ot as T,p as E,s as ne,u as D,ut as O,v as re,vt as ie,w as ae,wt as k}from"./vendor-lucide-tZ8AzO6l.js";import{r as oe}from"./vendor-markdown-CZSHC-G5.js";import{t as A}from"./ActionButton-CxNWgwlw.js";import{t as j}from"./Sheet-CPyVkJ3G.js";import{b as se,d as M,n as ce,u as N,x as P}from"./index-DoDmaCqd.js";import{t as le}from"./BrowserPage-B37UOYE2.js";import{t as ue}from"./KpiStrip-Cnf9m6Sg.js";var F=e(n(),1);function I(e,t){let n=new Set(t),r=e.filter(e=>n.has(e)),i=t.filter(e=>!r.includes(e));return[...r,...i]}function L(e,t){let[n,r]=N(`nyxstrike_workbench_hidden_categories`,[]),[i,a]=N(`nyxstrike_workbench_hidden_operations`,[]),[o,s]=N(`nyxstrike_workbench_category_order`,[]),[c,l]=N(`nyxstrike_workbench_operation_order`,[]),u=I(o,e),d=t.map(e=>e.id),f=I(c,d),p=u.map(e=>[e,f.map(e=>t.find(t=>t.id===e)).filter(t=>!!t&&t.category===e)]),m=p.filter(([e])=>!n.includes(e)).map(([e,t])=>[e,t.filter(e=>!i.includes(e.id))]);function h(e){return n.includes(e)}function g(e){return i.includes(e)}function _(e){r(t=>t.includes(e)?t:[...t,e])}function v(e){r(t=>t.filter(t=>t!==e))}function y(e){a(t=>t.includes(e)?t:[...t,e])}function b(e){a(t=>t.filter(t=>t!==e))}function x(t,n){let r=I(o,e),i=r.indexOf(t),a=r.indexOf(n);if(i===-1||a===-1||i===a)return;let c=[...r];c.splice(i,1),c.splice(a,0,t),s(c)}function S(e,t){let n=I(c,d),r=n.indexOf(e),i=n.indexOf(t);if(r===-1||i===-1||r===i)return;let a=[...n];a.splice(r,1),a.splice(i,0,e),l(a)}function C(){r([]),a([]),s([]),l([])}return{allByCategory:p,visibleByCategory:m,isCategoryHidden:h,isOperationHidden:g,hideCategory:_,showCategory:v,hideOperation:y,showOperation:b,reorderCategory:x,reorderOperation:S,resetLayout:C}}var R=`nyxstrike_workbench_favorites`;function z(){let[e,t]=N(R,[]);function n(t){return e.includes(t)}function r(e){t(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return{favorites:e,isFavorite:n,toggleFavorite:r}}var B={"image/png":`png`,"image/jpeg":`jpg`,"image/gif":`gif`,"image/webp":`webp`,"application/octet-stream":`bin`};function V(e){return e?.split(`;`)[0]?.trim()}function H(e,t){let n=V(e);return n&&B[n]?B[n]:n?.startsWith(`image/`)?n.slice(6):/gzip|zlib|compress/i.test(t)?`bin`:`txt`}function de(e,t){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;ee.trim()).filter(Boolean)});if(h(!1),!e.success){_(e.error??`Failed to save to Loot.`);return}i(`success`,`Saved to Loot.`),t()}return(0,W.jsxs)(j,{isOpen:e,onClose:t,disableClose:m,title:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`modal-icon modal-icon--accent`,"aria-hidden":`true`,children:(0,W.jsx)(o,{size:14})}),(0,W.jsx)(`span`,{className:`modal-name`,children:`Send to Loot`})]}),children:[(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Title`}),(0,W.jsx)(`input`,{className:`input input-full`,value:a,onChange:e=>s(e.target.value),autoFocus:!0})]}),(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Type`}),(0,W.jsx)(`select`,{className:`input input-full`,value:c,onChange:e=>l(e.target.value),children:G.map(e=>(0,W.jsx)(`option`,{value:e,children:e},e))})]}),(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Content`}),(0,W.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:u,onChange:e=>d(e.target.value),rows:6})]}),(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Tags (comma separated)`}),(0,W.jsx)(`input`,{className:`input input-full`,value:f,onChange:e=>p(e.target.value)})]}),g&&(0,W.jsx)(`div`,{className:`verify-error`,children:g}),(0,W.jsxs)(`div`,{className:`confirm-action-buttons`,children:[(0,W.jsx)(A,{variant:`default`,onClick:t,disabled:m,children:`Cancel`}),(0,W.jsx)(A,{variant:`success`,onClick:()=>{v()},disabled:m,children:m?`Saving…`:`Save to Loot`})]})]})}function K({operation:e,onAddToRecipe:t,initialInput:n}){let[i,a]=(0,F.useState)(()=>Object.fromEntries(e.params.map(e=>[e.name,e.name===`input`&&n?n:String(e.default??``)]))),[s,c]=(0,F.useState)(!1),[l,u]=(0,F.useState)(!1),[f,p]=(0,F.useState)(null),[g,_]=(0,F.useState)(null),[v,b]=(0,F.useState)(void 0),[x,S]=(0,F.useState)(null),[C,ee]=(0,F.useState)(!1),[te,w]=(0,F.useState)(!1);function T(e,t){a(n=>({...n,[e]:t}))}async function E(){u(!0),p(null),_(null),b(void 0),S(null);try{let t=await P.workbenchRun(e.id,i);if(!t.success){p(t.error??`Operation failed.`);return}_(t.output??``),b(t.output_mime),S(t.note??null)}catch(e){p(String(e))}finally{u(!1)}}function ne(){g&&navigator.clipboard?.writeText(g).then(()=>{ee(!0),setTimeout(()=>ee(!1),2e3)}).catch(()=>{})}function D(){let{input:n,...r}=i;t(e,r,n??``),w(!0),setTimeout(()=>w(!1),1500)}let O=!l&&e.params.every(e=>!e.required||i[e.name]?.trim());function re(e){(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&O&&(e.preventDefault(),E())}return(0,W.jsxs)(`div`,{className:`workbench-op-body`,onKeyDown:re,children:[(0,W.jsx)(`div`,{className:`section-header`,children:(0,W.jsx)(`h3`,{children:e.name})}),(0,W.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,W.jsx)(`p`,{className:`verify-tool-desc`,children:e.description}),(0,W.jsx)(`div`,{className:`workbench-form`,children:e.params.filter(e=>!e.hidden).map(e=>(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsxs)(`span`,{className:`workbench-field-label`,children:[e.label,e.required?` *`:``]}),e.type===`textarea`&&(0,W.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:i[e.name]??``,onChange:t=>T(e.name,t.target.value),rows:4}),e.type===`select`&&(0,W.jsx)(`select`,{className:`input input-full`,value:i[e.name]??``,onChange:t=>T(e.name,t.target.value),children:(e.choices??[]).map(e=>(0,W.jsx)(`option`,{value:e,children:e},e))}),(e.type===`text`||e.type===`number`)&&(0,W.jsx)(`input`,{className:`input input-full mono`,type:e.type,value:i[e.name]??``,onChange:t=>T(e.name,t.target.value)}),e.help_text&&(0,W.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name))}),(0,W.jsxs)(`div`,{className:`workbench-actions`,children:[(0,W.jsx)(`button`,{className:`workbench-run-btn`,onClick:E,disabled:!O,children:l?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(r,{size:13,className:`spin`}),` Running…`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(d,{size:13}),` Run`]})}),(0,W.jsx)(`button`,{className:`workbench-secondary-btn`,onClick:D,title:`Add this operation (with its current settings) to the recipe`,children:te?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(m,{size:13,color:`var(--green)`}),` Added`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(h,{size:13}),` Add to Recipe`]})})]}),f&&(0,W.jsx)(`div`,{className:`verify-error`,children:f}),g!==null&&(0,W.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,W.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Output`}),(0,W.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,W.jsx)(`button`,{className:`icon-btn`,onClick:ne,title:`Copy output`,children:C?(0,W.jsx)(m,{size:12,color:`var(--green)`}):(0,W.jsx)(k,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>U(g,v,e.id),title:`Download output`,children:(0,W.jsx)(y,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>c(!0),title:`Send output to Loot`,children:(0,W.jsx)(o,{size:12})})]})]}),v?.startsWith(`image/`)?(0,W.jsx)(`img`,{className:`workbench-output-image`,src:`data:${v},${g}`,alt:`Operation output`}):(0,W.jsx)(`pre`,{className:`verify-result-output mono`,children:g}),x&&(0,W.jsx)(`div`,{className:`workbench-note`,children:x})]}),g!==null&&(0,W.jsx)(fe,{isOpen:s,onClose:()=>c(!1),defaultTitle:`${e.name} output`,content:g})]})]})}function pe(e){let t=e.map(e=>({operation_id:e.operationId,params:e.params})),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json;charset=utf-8`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`workbench-recipe.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)}function q(e,t){let n=JSON.parse(e);if(!Array.isArray(n))throw Error(`Expected a JSON array of recipe steps.`);let r=0;return{steps:n.map(e=>{let n=t.find(t=>t.id===e.operation_id);return n?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:n.name,params:e.params??{}}:(r++,null)}).filter(e=>e!==null),skipped:r}}function J({recipe:e,setRecipe:t,operations:n,input:i,setInput:a}){let[c,f]=(0,F.useState)(!1),[p,h]=(0,F.useState)(null),[v,b]=(0,F.useState)(null),[x,ee]=(0,F.useState)(void 0),[E,ae]=(0,F.useState)(!1),[oe,A]=(0,F.useState)([]),[j,le]=(0,F.useState)(!1),[ue,I]=(0,F.useState)(null),[L,R]=(0,F.useState)({}),[z,B]=N(`nyxstrike_workbench_continue_on_error`,!1),[V,H]=(0,F.useState)(null),[de,G]=(0,F.useState)(``),[K,J]=(0,F.useState)({}),[me,he]=(0,F.useState)([]),[ge,_e]=(0,F.useState)(!1),[ve,Y]=(0,F.useState)(null),[ye,be]=(0,F.useState)(!1),[xe,Se]=(0,F.useState)(``),[Ce,we]=(0,F.useState)(null),[Te,Ee]=(0,F.useState)(``),[X,Z]=(0,F.useState)(null),[De,Oe]=(0,F.useState)(!1),[Q,ke]=(0,F.useState)(null),[Ae,je]=(0,F.useState)(!1),[Me,Ne]=(0,F.useState)(!1),Pe=(0,F.useRef)(null),{pushToast:$}=se();function Fe(){_e(!0),Y(null),P.workbenchRecipes().then(e=>{if(!e.success){Y(`Failed to load saved recipes.`);return}he(e.recipes)}).catch(e=>Y(String(e))).finally(()=>_e(!1))}(0,F.useEffect)(()=>{Fe()},[]);function Ie(e,n){t(t=>{let r=[...t],i=e+n;return i<0||i>=r.length?t:([r[e],r[i]]=[r[i],r[e]],r)}),J({})}function Le(e,n){t(t=>{let r=[...t],i=r.findIndex(t=>t.stepId===e),a=r.findIndex(e=>e.stepId===n);if(i===-1||a===-1)return t;let[o]=r.splice(i,1);return r.splice(a,0,o),r}),J({})}let{dragHandlers:Re,dragClassName:ze}=M(Le);function Be(n){t(e=>e.filter((e,t)=>t!==n)),I(t=>e[n]?.stepId===t?null:t),J({})}function Ve(e){t(t=>{let n=t[e];if(!n)return t;let r={...n,stepId:crypto.randomUUID(),params:{...n.params}},i=[...t];return i.splice(e+1,0,r),i}),J({})}function He(){t([]),Z(null),$(`info`,`Recipe cleared — undo with Ctrl+Z.`)}function Ue(){navigator.clipboard?.writeText(window.location.href).then(()=>$(`success`,`Recipe link copied.`)).catch(()=>$(`error`,`Failed to copy link.`))}function We(){pe(e)}function Ge(){Pe.current?.click()}function Ke(e){let r=e.target.files?.[0];if(e.target.value=``,!r)return;let i=new FileReader;i.onload=()=>{try{let{steps:e,skipped:r}=q(String(i.result??``),n);t(e),Z(null),$(`success`,r>0?`Recipe imported — ${r} step(s) skipped (unknown operation).`:`Recipe imported.`)}catch(e){$(`error`,`Failed to import recipe: ${String(e)}`)}},i.readAsText(r)}function qe(e){I(e.stepId),R({...e.params})}function Je(){I(null)}function Ye(e){t(t=>t.map(t=>t.stepId===e?{...t,params:L}:t)),I(null)}async function Xe(t){f(!0),h(null),b(null),ee(void 0),ae(!1),A([]);try{let n=await P.workbenchRunRecipe(i,e.map(e=>({operation_id:e.operationId,params:e.params})),{continueOnError:z,stopAfterStepIndex:t,stepInputOverrides:K});if(A(n.steps??[]),ae(!!n.has_errors),!n.success){h(n.error??`Recipe failed.`);return}b(n.output??``),ee(n.output_mime)}catch(e){h(String(e))}finally{f(!1)}}function Ze(){return Xe(void 0)}function Qe(e){return Xe(e)}function $e(e,t){H(String(e)),G(K[e]??t)}function et(){H(null)}function tt(e){J(t=>({...t,[e]:de})),H(null)}function nt(e){J(t=>{let n={...t};return delete n[e],n})}function rt(){v&&navigator.clipboard?.writeText(v).then(()=>{le(!0),setTimeout(()=>le(!1),2e3)}).catch(()=>{})}function it(){Se(``),be(!0)}function at(){be(!1)}async function ot(){let t=xe.trim();if(!t)return;let n=await P.createWorkbenchRecipe(t,e.map(e=>({operation_id:e.operationId,params:e.params})));n.success?(be(!1),Z(n.recipe?.recipe_id??null),Fe(),$(`success`,`Saved as "${t}".`)):Y(n.error??`Failed to save recipe.`)}async function st(){if(!X)return;Oe(!0);let t=await P.updateWorkbenchRecipe(X,{steps:e.map(e=>({operation_id:e.operationId,params:e.params}))});Oe(!1),t.success?(Fe(),$(`success`,`Recipe saved.`)):Y(t.error??`Failed to save recipe.`)}function ct(e){t(e.steps.map(e=>{let t=n.find(t=>t.id===e.operation_id);return t?{stepId:crypto.randomUUID(),operationId:e.operation_id,operationName:t.name,params:e.params??{}}:null}).filter(e=>e!==null)),I(null),Z(e.recipe_id)}function lt(e){we(e.recipe_id),Ee(e.name)}function ut(){we(null)}async function dt(e){let t=Te.trim();if(!t)return;let n=await P.updateWorkbenchRecipe(e,{name:t});n.success?(we(null),Fe()):Y(n.error??`Failed to rename recipe.`)}async function ft(){if(!Q)return;je(!0);let e=await P.deleteWorkbenchRecipe(Q.recipe_id);je(!1),e.success?(X===Q.recipe_id&&Z(null),ke(null),Fe()):Y(e.error??`Failed to delete recipe.`)}return(0,W.jsxs)(`section`,{className:`workbench-recipe${e.length>0?` section`:``}`,children:[e.length>0&&(0,W.jsxs)(`div`,{className:`section-header`,children:[(0,W.jsxs)(`h3`,{children:[(0,W.jsx)(C,{size:14,style:{marginRight:6,verticalAlign:-2}}),`Recipe`]}),(0,W.jsxs)(`span`,{className:`workbench-recipe-toolbar`,children:[(0,W.jsx)(`button`,{className:`icon-btn`,onClick:Ue,title:`Copy link to this recipe`,children:(0,W.jsx)(_,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:We,title:`Export recipe as a JSON file`,children:(0,W.jsx)(y,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:Ge,title:`Import recipe from a JSON file`,children:(0,W.jsx)(ne,{size:12})}),(0,W.jsx)(`input`,{ref:Pe,type:`file`,accept:`application/json`,className:`workbench-hidden-file-input`,onChange:Ke}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:He,title:`Clear recipe (undo with Ctrl+Z)`,children:(0,W.jsx)(ie,{size:12})})]})]}),(0,W.jsxs)(`div`,{className:`workbench-op-content`,children:[(0,W.jsxs)(`div`,{className:`workbench-saved-recipes`,children:[(0,W.jsxs)(`div`,{className:`workbench-saved-recipes-header`,children:[(0,W.jsxs)(`span`,{className:`workbench-field-label`,children:[(0,W.jsx)(O,{size:12,style:{marginRight:4,verticalAlign:-2}}),`Saved Recipes`]}),e.length>0&&!ye&&(0,W.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[X&&(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>void st(),disabled:De,title:`Save changes to the loaded recipe`,children:(0,W.jsx)(u,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:it,title:`Save as a new recipe`,children:(0,W.jsx)(te,{size:12})})]})]}),ye&&(0,W.jsxs)(`div`,{className:`workbench-saved-recipe-row workbench-saved-recipe-row--edit`,children:[(0,W.jsx)(`input`,{className:`input input-full mono`,placeholder:`Recipe name…`,value:xe,autoFocus:!0,onChange:e=>Se(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ot(),e.key===`Escape`&&at()}}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>void ot(),title:`Confirm`,children:(0,W.jsx)(m,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:at,title:`Cancel`,children:(0,W.jsx)(w,{size:12})})]}),ge&&(0,W.jsx)(`div`,{className:`workbench-panel-empty-hint`,children:`Loading…`}),ve&&(0,W.jsx)(`div`,{className:`verify-error`,children:ve}),!ge&&me.length===0&&!ye&&(0,W.jsx)(`div`,{className:`workbench-panel-empty-hint`,children:`No saved recipes yet.`}),me.map(e=>(0,W.jsx)(`div`,{className:`workbench-saved-recipe-row`,children:Ce===e.recipe_id?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{className:`input input-full mono`,value:Te,autoFocus:!0,onChange:e=>Ee(e.target.value),onKeyDown:t=>{t.key===`Enter`&&dt(e.recipe_id),t.key===`Escape`&&ut()}}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>void dt(e.recipe_id),title:`Confirm`,children:(0,W.jsx)(m,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:ut,title:`Cancel`,children:(0,W.jsx)(w,{size:12})})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`workbench-saved-recipe-name mono`,title:e.name,children:e.name}),(0,W.jsxs)(`span`,{className:`workbench-saved-recipe-actions`,children:[(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>ct(e),title:`Load into working recipe`,children:(0,W.jsx)(O,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>lt(e),title:`Rename`,children:(0,W.jsx)(s,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>ke(e),title:`Delete`,children:(0,W.jsx)(D,{size:12})})]})]})},e.recipe_id))]}),e.length===0?(0,W.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,W.jsx)(C,{size:28,color:`var(--text-dim)`}),(0,W.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`No recipe yet`}),(0,W.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Use "Add to Recipe" on any operation to chain it here — each step's output feeds the next step's input.`})]}):(0,W.jsx)(`ol`,{className:`workbench-recipe-steps`,children:e.map((t,r)=>{let i=n.find(e=>e.id===t.operationId)?.params.filter(e=>e.name!==`input`)??[],a=ue===t.stepId;return(0,W.jsxs)(`li`,{className:ze(t.stepId,`workbench-recipe-step-wrap`),...Re(t.stepId),children:[(0,W.jsxs)(`div`,{className:`workbench-recipe-step`,children:[(0,W.jsx)(`span`,{className:`workbench-recipe-step-drag`,title:`Drag to reorder`,children:(0,W.jsx)(T,{size:12})}),(0,W.jsx)(`span`,{className:`workbench-recipe-step-index`,children:r+1}),(0,W.jsx)(`span`,{className:`workbench-recipe-step-name`,children:t.operationName}),Object.keys(t.params).length>0&&(0,W.jsx)(`span`,{className:`workbench-recipe-step-params mono`,children:Object.entries(t.params).map(([e,t])=>`${e}=${t}`).join(`, `)}),K[r]!==void 0&&(0,W.jsx)(`span`,{className:`workbench-recipe-step-override-badge`,title:`This step's input is overridden for the next run`,children:`input overridden`}),(0,W.jsxs)(`span`,{className:`workbench-recipe-step-actions`,children:[(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ie(r,-1),disabled:r===0,title:`Move up`,children:(0,W.jsx)(l,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ie(r,1),disabled:r===e.length-1,title:`Move down`,children:(0,W.jsx)(g,{size:12})}),i.length>0&&(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>a?Je():qe(t),title:`Edit settings`,children:(0,W.jsx)(s,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>V===String(r)?et():$e(r,``),title:`Override this step's input for debugging`,children:(0,W.jsx)(S,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>void Qe(r),disabled:c,title:`Run recipe up to this step`,children:(0,W.jsx)(re,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ve(r),title:`Duplicate step`,children:(0,W.jsx)(k,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>Be(r),title:`Remove`,children:(0,W.jsx)(w,{size:12})})]})]}),V===String(r)&&(0,W.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Override input for this step`}),(0,W.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:de,onChange:e=>G(e.target.value),rows:2})]}),(0,W.jsxs)(`div`,{className:`workbench-actions`,children:[(0,W.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>tt(r),children:[(0,W.jsx)(m,{size:13}),` Save Override`]}),(0,W.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:et,children:[(0,W.jsx)(w,{size:13}),` Cancel`]}),K[r]!==void 0&&(0,W.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>nt(r),children:[(0,W.jsx)(w,{size:13}),` Clear`]})]})]}),a&&(0,W.jsxs)(`div`,{className:`workbench-recipe-step-edit`,children:[i.map(e=>(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:e.label}),e.type===`select`?(0,W.jsx)(`select`,{className:`input input-full`,value:L[e.name]??``,onChange:t=>R(n=>({...n,[e.name]:t.target.value})),children:(e.choices??[]).map(e=>(0,W.jsx)(`option`,{value:e,children:e},e))}):e.type===`textarea`?(0,W.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:L[e.name]??``,onChange:t=>R(n=>({...n,[e.name]:t.target.value})),rows:2}):(0,W.jsx)(`input`,{className:`input input-full mono`,type:e.type===`number`?`number`:`text`,value:L[e.name]??``,onChange:t=>R(n=>({...n,[e.name]:t.target.value}))}),e.help_text&&(0,W.jsx)(`span`,{className:`workbench-field-hint`,children:e.help_text})]},e.name)),(0,W.jsxs)(`div`,{className:`workbench-actions`,children:[(0,W.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:()=>Ye(t.stepId),children:[(0,W.jsx)(m,{size:13}),` Save`]}),(0,W.jsxs)(`button`,{className:`workbench-secondary-btn`,onClick:Je,children:[(0,W.jsx)(w,{size:13}),` Cancel`]})]})]})]},t.stepId)})}),e.length>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`label`,{className:`workbench-field`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Input`}),(0,W.jsx)(`textarea`,{className:`input workbench-textarea mono`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&!c&&(e.preventDefault(),Ze())},rows:3})]}),(0,W.jsxs)(`label`,{className:`workbench-continue-toggle`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:z,onChange:e=>B(e.target.checked)}),`Continue on error`]}),(0,W.jsx)(`div`,{className:`workbench-actions`,children:(0,W.jsx)(`button`,{className:`workbench-run-btn`,onClick:Ze,disabled:c,children:c?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(r,{size:13,className:`spin`}),` Running…`]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(d,{size:13}),` Run Recipe`]})})}),p&&(0,W.jsx)(`div`,{className:`verify-error`,children:p}),E&&!p&&(0,W.jsx)(`div`,{className:`workbench-note`,children:`Some steps failed and were skipped (continue-on-error was on) — see the trace below.`}),oe.length>0&&(0,W.jsx)(`ol`,{className:`workbench-recipe-trace`,children:oe.map((e,t)=>(0,W.jsxs)(`li`,{className:e.error?z?`workbench-recipe-trace-error-continued`:`workbench-recipe-trace-error`:``,children:[(0,W.jsx)(`span`,{className:`workbench-recipe-step-index`,children:t+1}),(0,W.jsx)(`span`,{className:`workbench-field-label`,children:e.name??e.operation_id}),e.input!==void 0&&(0,W.jsxs)(`span`,{className:`workbench-recipe-trace-input mono`,children:[`in: `,e.input.length>120?`${e.input.slice(0,120)}…`:e.input]}),e.error?(0,W.jsxs)(`span`,{className:`mono`,children:[z?`Skipped (chain continued): `:`Error: `,e.error]}):e.output_mime?.startsWith(`image/`)?(0,W.jsx)(`img`,{className:`workbench-recipe-trace-image-thumb`,src:`data:${e.output_mime},${e.output}`,alt:`Step output`}):(0,W.jsx)(`span`,{className:`mono`,children:e.output})]},t))}),v!==null&&(0,W.jsxs)(`div`,{className:`workbench-output-wrap`,children:[(0,W.jsxs)(`div`,{className:`workbench-output-header`,children:[(0,W.jsx)(`span`,{className:`workbench-field-label`,children:`Final Output`}),(0,W.jsxs)(`span`,{className:`workbench-output-actions`,children:[(0,W.jsx)(`button`,{className:`icon-btn`,onClick:rt,title:`Copy output`,children:j?(0,W.jsx)(m,{size:12,color:`var(--green)`}):(0,W.jsx)(k,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>U(v,x,`recipe`),title:`Download output`,children:(0,W.jsx)(y,{size:12})}),(0,W.jsx)(`button`,{className:`icon-btn`,onClick:()=>Ne(!0),title:`Send output to Loot`,children:(0,W.jsx)(o,{size:12})})]})]}),x?.startsWith(`image/`)?(0,W.jsx)(`img`,{className:`workbench-output-image`,src:`data:${x},${v}`,alt:`Recipe output`}):(0,W.jsx)(`pre`,{className:`verify-result-output mono`,children:v})]})]})]}),(0,W.jsx)(ce,{isOpen:!!Q,title:`Delete saved recipe?`,description:`This will permanently delete "${Q?.name}". This can't be undone.`,confirmLabel:`Delete`,isConfirming:Ae,onConfirm:ft,onClose:()=>ke(null)}),v!==null&&(0,W.jsx)(fe,{isOpen:Me,onClose:()=>Ne(!1),defaultTitle:`Recipe output`,content:v})]})}function me({allByCategory:e,isCategoryHidden:t,isOperationHidden:n,hideCategory:r,showCategory:i,hideOperation:a,showOperation:o,isFavorite:s,toggleFavorite:c,reorderCategory:l,reorderOperation:u}){let{dragHandlers:d,dragClassName:f}=M(l),{dragHandlers:p,dragClassName:m}=M(u);return(0,W.jsx)(W.Fragment,{children:e.map(([e,l])=>{let u=t(e),h=l.length>0&&l.every(e=>n(e.id));return(0,W.jsxs)(`div`,{className:f(e,`workbench-category workbench-category--customize${u?` workbench-category--hidden`:``}`),...d(e),children:[(0,W.jsxs)(`div`,{className:`workbench-category-header workbench-category-header--customize`,children:[(0,W.jsx)(`span`,{className:`workbench-row-drag`,title:`Drag to reorder`,children:(0,W.jsx)(T,{size:12})}),(0,W.jsx)(`span`,{className:`workbench-category-label`,children:e.replace(/_/g,` `)}),!u&&h&&(0,W.jsx)(`span`,{className:`workbench-category-hint`,children:`(all tools hidden)`}),(0,W.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn`,onClick:()=>u?i(e):r(e),title:u?`Show ${e}`:`Hide ${e}`,children:u?(0,W.jsx)(v,{size:13}):(0,W.jsx)(x,{size:13})})]}),l.map(e=>{let t=n(e.id),r=s(e.id);return(0,W.jsxs)(`div`,{className:m(e.id,`workbench-op-row${t?` workbench-op-row--hidden`:``}`),...p(e.id),children:[(0,W.jsx)(`span`,{className:`workbench-row-drag`,title:`Drag to reorder`,children:(0,W.jsx)(T,{size:11})}),(0,W.jsx)(`span`,{className:`workbench-op-row-name`,children:e.name}),(0,W.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn${r?` workbench-star-btn--active`:``}`,onClick:()=>c(e.id),title:r?`Unstar ${e.name}`:`Star ${e.name}`,children:(0,W.jsx)(E,{size:12,fill:r?`currentColor`:`none`})}),(0,W.jsx)(`button`,{type:`button`,className:`workbench-row-icon-btn`,onClick:()=>t?o(e.id):a(e.id),title:t?`Show ${e.name}`:`Hide ${e.name}`,children:t?(0,W.jsx)(v,{size:12}):(0,W.jsx)(x,{size:12})})]},e.id)})]},e)})})}var he=`Favorites`;function ge(e){return JSON.stringify(e.map(e=>[e.operationId,e.params]))}function _e(e,t){return JSON.parse(e).map(e=>{let[n,r]=e,i=t.find(e=>e.id===n);return i?{stepId:crypto.randomUUID(),operationId:n,operationName:i.name,params:r}:null}).filter(e=>e!==null)}function ve({urlOperationId:e,onOperationSelected:n,urlRecipe:o,onRecipeChanged:s,urlInput:l}){let[u,d]=(0,F.useState)([]),[m,h]=(0,F.useState)([]),[g,_]=(0,F.useState)(!0),[v,y]=(0,F.useState)(null),[x,S]=(0,F.useState)(null),[C,te]=(0,F.useState)(``),[T,ne]=N(`nyxstrike_workbench_expanded_categories`,[]),[D,O]=N(`nyxstrike_workbench_recipe`,[]),[re,ie]=N(`nyxstrike_workbench_recipe_input`,``),[k,oe]=(0,F.useState)(!o),[j,se]=(0,F.useState)([]),[M,I]=(0,F.useState)([]),[R,B]=(0,F.useState)(null),[V,H]=(0,F.useState)(!1),[de,U]=(0,F.useState)(!1),G=(0,F.useRef)(null),fe=(0,F.useRef)({}),{allByCategory:pe,visibleByCategory:q,isCategoryHidden:ve,isOperationHidden:Y,hideCategory:ye,showCategory:be,hideOperation:xe,showOperation:Se,reorderCategory:Ce,reorderOperation:we,resetLayout:Te}=L(m,u),{favorites:Ee,isFavorite:X,toggleFavorite:Z}=z();(0,F.useEffect)(()=>{let e=!1;return _(!0),P.workbenchOperations().then(t=>{if(!e){if(!t.success){y(`Failed to load operations.`);return}d(t.operations),h(t.categories),S(e=>e??t.operations[0]?.id??null)}}).catch(t=>!e&&y(String(t))).finally(()=>!e&&_(!1)),()=>{e=!0}},[]),(0,F.useEffect)(()=>{!e||x===e||u.some(t=>t.id===e)&&S(e)},[e,u,x]),(0,F.useEffect)(()=>{if(!(k||u.length===0)){if(o){try{O(_e(o,u))}catch{O([])}l&&ie(e=>e.trim()?e:l)}else l&&B(l);oe(!0)}},[u,k,o,l]),(0,F.useEffect)(()=>{k&&s?.(D.length>0?ge(D):null)},[D,k]);let De=(0,F.useMemo)(()=>{let e=C.trim().toLowerCase(),t=e?q.map(t=>[t[0],t[1].filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e))]):q;if(e)return t.filter(([,e])=>e.length>0);let n=q.flatMap(([,e])=>e).filter(e=>X(e.id)),r=t.map(e=>[e[0],e[1].filter(e=>!X(e.id))]).filter(([,e])=>e.length>0);return n.length>0?[[he,n],...r]:r},[q,C,X]),Oe=u.find(e=>e.id===x)??null;(0,F.useEffect)(()=>{if(!x)return;let e=u.find(e=>e.id===x);if(!e)return;let t=Ee.includes(x)?he:e.category;ne(e=>e.length===1&&e[0]===t?e:[t])},[x,u,Ee]),(0,F.useEffect)(()=>{x&&fe.current[x]?.scrollIntoView({block:`nearest`})},[x,T]);function Q(e){S(e),B(null),n?.(e)}function ke(e){ne(t=>t.length===1&&t[0]===e?[]:[e])}function Ae(){ne([])}function je(e){se(e=>[...e.slice(-49),D]),I([]),O(e)}function Me(){if(j.length===0)return;let e=j[j.length-1];se(j.slice(0,-1)),I([D,...M].slice(0,50)),O(e)}function Ne(){if(M.length===0)return;let[e,...t]=M;se([...j.slice(-49),D]),I(t),O(e)}(0,F.useEffect)(()=>{function e(e){let t=e.target,n=!!t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable);if(!n&&e.key===`/`&&!V){e.preventDefault(),G.current?.focus();return}!n&&(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`z`&&(e.preventDefault(),e.shiftKey?Ne():Me())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[D,j,M,V]);function Pe(e,t,n){let r={stepId:crypto.randomUUID(),operationId:e.id,operationName:e.name,params:t};je(e=>[...e,r]),n.trim()&&ie(e=>e.trim()?e:n)}return(0,W.jsxs)(W.Fragment,{children:[g&&(0,W.jsx)(`div`,{className:`workbench-page-loading`,children:(0,W.jsx)(r,{size:20,className:`spin`,color:`var(--green)`})}),v&&(0,W.jsx)(`div`,{className:`workbench-page-error`,children:v}),!g&&!v&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ce,{isOpen:de,title:`Reset Workbench layout?`,description:`This will un-hide all categories and tools and restore the default order. Starred favorites are not affected.`,confirmLabel:`Reset`,confirmVariant:`default`,onConfirm:()=>{Te(),U(!1)},onClose:()=>U(!1)}),(0,W.jsx)(le,{className:`workbench-page`,asideExpanded:D.length>0,top:(0,W.jsx)(ue,{items:[{icon:(0,W.jsx)(b,{size:16}),label:`Operations`,value:u.length,accent:`var(--blue)`},{icon:(0,W.jsx)(p,{size:16}),label:`Categories`,value:m.length,accent:`var(--purple)`},{icon:(0,W.jsx)(E,{size:16}),label:`Favorites`,value:Ee.length,accent:`var(--amber)`},{icon:(0,W.jsx)(t,{size:16}),label:`Recipe Steps`,value:D.length,accent:D.length>0?`var(--green)`:`var(--text-dim)`}]}),nav:(0,W.jsxs)(`nav`,{className:`workbench-sidebar browser-nav`,children:[(0,W.jsxs)(`div`,{className:`workbench-sidebar-title browser-nav-title`,children:[(0,W.jsxs)(`span`,{className:`workbench-sidebar-title-text`,children:[(0,W.jsx)(b,{size:14}),` Workbench`]}),(0,W.jsxs)(`div`,{className:`workbench-sidebar-title-actions`,children:[!V&&T.length>0&&(0,W.jsx)(`button`,{type:`button`,className:`workbench-reset-link-btn`,onClick:Ae,title:`Collapse all categories`,children:(0,W.jsx)(c,{size:12})}),V&&(0,W.jsx)(`button`,{type:`button`,className:`workbench-reset-link-btn`,onClick:()=>U(!0),title:`Reset layout`,children:(0,W.jsx)(ee,{size:12})}),(0,W.jsxs)(A,{variant:V?`success`:`default`,className:`workbench-customize-btn`,onClick:()=>H(e=>!e),children:[(0,W.jsx)(ae,{size:13}),` `,V?`Done`:`Customize`]})]})]}),(0,W.jsxs)(`div`,{className:`workbench-search${V?` workbench-search--disabled`:``}`,children:[(0,W.jsx)(a,{size:13,className:`workbench-search-icon`}),(0,W.jsx)(`input`,{ref:G,className:`workbench-search-input`,placeholder:V?`Search disabled while customizing`:`Find an operation… (/)`,value:C,onChange:e=>te(e.target.value),disabled:V}),C&&!V&&(0,W.jsx)(`button`,{className:`workbench-search-clear`,onClick:()=>te(``),title:`Clear search`,children:(0,W.jsx)(w,{size:12})})]}),V?(0,W.jsx)(me,{allByCategory:pe,isCategoryHidden:ve,isOperationHidden:Y,hideCategory:ye,showCategory:be,hideOperation:xe,showOperation:Se,isFavorite:X,toggleFavorite:Z,reorderCategory:Ce,reorderOperation:we}):(0,W.jsxs)(W.Fragment,{children:[De.map(([e,t])=>{let n=!C.trim()&&!T.includes(e);return(0,W.jsxs)(`div`,{className:`workbench-category`,children:[(0,W.jsxs)(`button`,{className:`workbench-category-header`,onClick:()=>ke(e),children:[n?(0,W.jsx)(f,{size:12}):(0,W.jsx)(i,{size:12}),(0,W.jsx)(`span`,{className:`workbench-category-label`,children:e.replace(/_/g,` `)})]}),!n&&(0,W.jsx)(`div`,{className:`workbench-category-ops`,children:t.map(e=>(0,W.jsxs)(`div`,{className:`workbench-op-row-wrap`,children:[(0,W.jsx)(`button`,{ref:t=>{fe.current[e.id]=t},className:`workbench-op-btn${e.id===x?` workbench-op-btn--active`:``}`,onClick:()=>Q(e.id),children:e.name}),(0,W.jsx)(`button`,{type:`button`,className:`workbench-star-btn${X(e.id)?` workbench-star-btn--active`:``}`,onClick:t=>{t.stopPropagation(),Z(e.id)},title:X(e.id)?`Unstar ${e.name}`:`Star ${e.name}`,children:(0,W.jsx)(E,{size:12,fill:X(e.id)?`currentColor`:`none`})})]},e.id))})]},e)}),De.length===0&&(0,W.jsx)(`div`,{className:`workbench-empty`,children:C?(0,W.jsxs)(W.Fragment,{children:[`No operations match "`,C,`".`]}):(0,W.jsxs)(W.Fragment,{children:[`All categories are hidden.`,` `,(0,W.jsx)(`button`,{type:`button`,className:`workbench-empty-reset-link`,onClick:Te,children:`Reset layout`})]})})]})]}),main:(0,W.jsx)(`div`,{className:`workbench-main`,children:(0,W.jsx)(`section`,{className:`workbench-panel`,children:Oe?(0,W.jsx)(K,{operation:Oe,onAddToRecipe:Pe,initialInput:R??void 0},Oe.id):(0,W.jsxs)(`div`,{className:`workbench-panel-empty`,children:[(0,W.jsx)(b,{size:28,color:`var(--text-dim)`}),(0,W.jsx)(`span`,{className:`workbench-panel-empty-title`,children:`Select an operation`}),(0,W.jsx)(`span`,{className:`workbench-panel-empty-hint`,children:`Pick something from the sidebar to get started.`})]})})}),aside:(0,W.jsx)(`aside`,{className:`workbench-recipe-col browser-aside`,children:(0,W.jsx)(J,{recipe:D,setRecipe:je,operations:u,input:re,setInput:ie})})})]})]})}export{ve as default}; \ No newline at end of file diff --git a/frontend/dashboard/assets/demo-D7-kgQFW.js b/frontend/dashboard/assets/demo-BVWMV9-U.js similarity index 99% rename from frontend/dashboard/assets/demo-D7-kgQFW.js rename to frontend/dashboard/assets/demo-BVWMV9-U.js index 58974b140..cd3fda7e4 100644 --- a/frontend/dashboard/assets/demo-D7-kgQFW.js +++ b/frontend/dashboard/assets/demo-BVWMV9-U.js @@ -1,4 +1,4 @@ -import"./index-DoDmaCqd.js";var e=(e=!0)=>({required:e}),t=[{name:`nmap`,desc:`Port scan and service detection`,category:`network_recon`,endpoint:`/api/tools/nmap`,method:`POST`,params:{target:e()},optional:{scan_type:`-sCV`,ports:``,additional_args:`-T4 -Pn`},effectiveness:.95},{name:`masscan`,desc:`Fast mass port scanner`,category:`network_recon`,endpoint:`/api/tools/masscan`,method:`POST`,params:{target:e()},optional:{ports:`1-65535`,rate:`1000`,additional_args:``},effectiveness:.92},{name:`rustscan`,desc:`Ultra-fast port scanner`,category:`network_recon`,endpoint:`/api/tools/rustscan`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.9},{name:`enum4linux`,desc:`SMB/RPC enumeration on Windows/Samba`,category:`network_recon`,endpoint:`/api/tools/enum4linux`,method:`POST`,params:{target:e()},optional:{additional_args:`-a`},effectiveness:.8},{name:`smbmap`,desc:`SMB share enumeration`,category:`network_recon`,endpoint:`/api/tools/smbmap`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`arp-scan`,desc:`ARP-based host discovery on local network`,category:`network_recon`,endpoint:`/api/tools/arp-scan`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`nbtscan`,desc:`NetBIOS name scanner`,category:`network_recon`,endpoint:`/api/tools/nbtscan`,method:`POST`,params:{target:e()},optional:{verbose:!1,timeout:2,additional_args:``},effectiveness:.78},{name:`enum4linux-ng`,desc:`Next-gen enum4linux — SMB/RPC enumeration with JSON output`,category:`network_recon`,endpoint:`/api/tools/enum4linux-ng`,method:`POST`,params:{target:e()},optional:{username:``,password:``,domain:``,shares:!0,users:!0,groups:!0,policy:!0,additional_args:``},effectiveness:.85},{name:`rpcclient`,desc:`Windows RPC enumeration — users, groups, shares via MSRPC`,category:`network_recon`,endpoint:`/api/tools/rpcclient`,method:`POST`,params:{target:e()},optional:{username:``,password:``,domain:``,commands:`enumdomusers;enumdomgroups;querydominfo`,additional_args:``},effectiveness:.82},{name:`responder`,desc:`LLMNR/NBT-NS/MDNS poisoner — harvest NTLMv2 hashes`,category:`network_recon`,endpoint:`/api/tools/responder`,method:`POST`,params:{interface:e()},optional:{analyze:!1,wpad:!0,force_wpad_auth:!1,fingerprint:!1,duration:300,additional_args:``},effectiveness:.88},{name:`nxc`,desc:`NetExec — network service exploitation framework (SMB/WinRM)`,category:`network_recon`,endpoint:`/api/tools/netexec`,method:`POST`,params:{target:e()},optional:{protocol:`smb`,username:``,password:``,module:``,additional_args:``},effectiveness:.87},{name:`evil-winrm`,desc:`WinRM shell for Windows remote management and lateral movement`,category:`network_recon`,endpoint:`/api/tools/evil_winrm`,method:`POST`,params:{target:e(),username:e()},optional:{password:``,hash:``,additional_args:``},effectiveness:.85},{name:`gobuster`,desc:`Directory and file brute-forcer`,category:`web_recon`,endpoint:`/api/tools/gobuster`,method:`POST`,params:{url:e()},optional:{mode:`dir`,wordlist:`/usr/share/wordlists/dirb/common.txt`,additional_args:``},effectiveness:.9},{name:`ffuf`,desc:`Fast web fuzzer for dirs, vhosts, params`,category:`web_recon`,endpoint:`/api/tools/ffuf`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,mode:`directory`,match_codes:`200,204,301,302,307,401,403`,additional_args:``},effectiveness:.9},{name:`feroxbuster`,desc:`Recursive content discovery`,category:`web_recon`,endpoint:`/api/tools/feroxbuster`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,threads:10,additional_args:``},effectiveness:.85},{name:`katana`,desc:`Web crawler for endpoint discovery`,category:`web_recon`,endpoint:`/api/tools/katana`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.88},{name:`httpx`,desc:`HTTP probing and tech detection`,category:`web_recon`,endpoint:`/api/tools/httpx`,method:`POST`,params:{target:e()},optional:{probe:!0,tech_detect:!1,status_code:!1,title:!1,additional_args:``},effectiveness:.85},{name:`dirsearch`,desc:`Web path scanner`,category:`web_recon`,endpoint:`/api/tools/dirsearch`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.87},{name:`wafw00f`,desc:`Web application firewall detection`,category:`web_recon`,endpoint:`/api/tools/wafw00f`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.8},{name:`wpscan`,desc:`WordPress vulnerability scanner`,category:`web_recon`,endpoint:`/api/tools/wpscan`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.95},{name:`dirb`,desc:`Classic web content scanner using a wordlist`,category:`web_recon`,endpoint:`/api/tools/dirb`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,additional_args:``},effectiveness:.78},{name:`hakrawler`,desc:`Fast web crawler — extracts links, forms, and endpoints`,category:`web_recon`,endpoint:`/api/tools/hakrawler`,method:`POST`,params:{url:e()},optional:{depth:2,forms:!0,robots:!0,sitemap:!0,wayback:!1,additional_args:``},effectiveness:.83},{name:`gospider`,desc:`Fast web spider — crawl endpoints, JS, robots, sitemap`,category:`web_recon`,endpoint:`/api/tools/gospider`,method:`POST`,params:{site:e()},optional:{depth:1,threads:1,concurrent:5,additional_args:``},effectiveness:.82},{name:`joomscan`,desc:`Joomla vulnerability scanner`,category:`web_recon`,endpoint:`/api/tools/joomscan`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.88},{name:`testssl`,desc:`TLS/SSL cipher and certificate analysis`,category:`web_recon`,endpoint:`/api/tools/testssl`,method:`POST`,params:{target:e()},optional:{protocols:!0,server_defaults:!0,additional_args:``},effectiveness:.85},{name:`autorecon`,desc:`Automated multi-tool recon — nmap, web, and service scans`,category:`web_recon`,endpoint:`/api/tools/autorecon`,method:`POST`,params:{target:e()},optional:{output_dir:`/tmp/autorecon`,port_scans:`top-100-ports`,service_scans:`default`,heartbeat:60,timeout:300,additional_args:``},effectiveness:.88},{name:`arjun`,desc:`HTTP parameter discovery — find hidden GET/POST params`,category:`web_recon`,endpoint:`/api/tools/arjun`,method:`POST`,params:{url:e()},optional:{method:`GET`,wordlist:``,delay:0,threads:25,stable:!1,additional_args:``},effectiveness:.85},{name:`paramspider`,desc:`Mine URL parameters from web archives for a domain`,category:`web_recon`,endpoint:`/api/tools/paramspider`,method:`POST`,params:{domain:e()},optional:{level:2,exclude:`png,jpg,gif,jpeg,swf,woff,svg,pdf,css,ico`,output:``,additional_args:``},effectiveness:.8},{name:`x8`,desc:`Hidden HTTP parameter discovery via response diffing`,category:`web_recon`,endpoint:`/api/tools/x8`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/x8/params.txt`,method:`GET`,body:``,headers:``,additional_args:``},effectiveness:.83},{name:`qsreplace`,desc:`Replace query-string parameter values in a list of URLs`,category:`api`,endpoint:`/api/tools/qsreplace`,method:`POST`,params:{urls:e()},optional:{replacement:`FUZZ`,additional_args:``},effectiveness:.72},{name:`nuclei`,desc:`Template-based vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/nuclei`,method:`POST`,params:{target:e()},optional:{severity:``,tags:``,template:``,additional_args:``},effectiveness:.95},{name:`nikto`,desc:`Web server vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/nikto`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`sqlmap`,desc:`Automatic SQL injection detection and exploitation`,category:`web_vuln`,endpoint:`/api/tools/sqlmap`,method:`POST`,params:{url:e()},optional:{data:``,additional_args:``},effectiveness:.9},{name:`dalfox`,desc:`XSS vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/dalfox`,method:`POST`,params:{url:e()},optional:{blind:!1,additional_args:``},effectiveness:.93},{name:`xsser`,desc:`Cross-site scripting scanner`,category:`web_vuln`,endpoint:`/api/tools/xsser`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.8},{name:`dotdotpwn`,desc:`Directory traversal scanner`,category:`web_vuln`,endpoint:`/api/tools/dotdotpwn`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.78},{name:`jaeles`,desc:`Web security scanning framework`,category:`web_recon`,endpoint:`/api/tools/jaeles`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.92},{name:`wfuzz`,desc:`Web fuzzer for directories, parameters, and authentication`,category:`web_recon`,endpoint:`/api/tools/wfuzz`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wfuzz/wordlist/general/common.txt`,additional_args:``},effectiveness:.82},{name:`graphql-scanner`,desc:`GraphQL introspection and mutation vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/graphql_scanner`,method:`POST`,params:{endpoint:e()},optional:{introspection:!0,query_depth:10,mutations:!0},effectiveness:.85},{name:`jwt-analyzer`,desc:`Decode and attack JWT tokens — alg:none, RS256→HS256, brute secret`,category:`web_vuln`,endpoint:`/api/tools/jwt_analyzer`,method:`POST`,params:{jwt_token:e()},optional:{target_url:``},effectiveness:.85},{name:`api-schema-analyzer`,desc:`Analyse OpenAPI/Swagger/GraphQL schemas for security issues`,category:`api`,endpoint:`/api/tools/api_schema_analyzer`,method:`POST`,params:{schema_url:e()},optional:{schema_type:`openapi`},effectiveness:.82},{name:`burpsuite`,desc:`Burp Suite web application security testing platform`,category:`web_recon`,endpoint:`/api/tools/burpsuite-alternative`,method:`POST`,params:{target:e()},optional:{scan_type:`comprehensive`,headless:!0,max_depth:3,max_pages:50},effectiveness:.9},{name:`zaproxy`,desc:`OWASP ZAP web application security scanner`,category:`web_vuln`,endpoint:`/api/tools/zap`,method:`POST`,params:{target:e()},optional:{scan_type:`baseline`,api_key:``,port:`8090`,output_format:`xml`,additional_args:``},effectiveness:.88},{name:`curl`,desc:`HTTP/S request tool — manual probing and PoC verification`,category:`api`,endpoint:`/api/tools/http-framework`,method:`POST`,params:{url:e()},optional:{method:`GET`,data:``,headers:``},effectiveness:.75},{name:`amass`,desc:`Subdomain enumeration and OSINT`,category:`osint`,endpoint:`/api/tools/amass`,method:`POST`,params:{domain:e()},optional:{mode:`enum`,additional_args:``},effectiveness:.85},{name:`subfinder`,desc:`Passive subdomain discovery`,category:`osint`,endpoint:`/api/tools/subfinder`,method:`POST`,params:{domain:e()},optional:{silent:!0,all_sources:!1,additional_args:``},effectiveness:.82},{name:`fierce`,desc:`DNS reconnaissance tool`,category:`osint`,endpoint:`/api/tools/fierce`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.75},{name:`dnsenum`,desc:`DNS enumeration and zone transfer`,category:`osint`,endpoint:`/api/tools/dnsenum`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.78},{name:`gau`,desc:`Fetch known URLs from AlienVault/Wayback`,category:`osint`,endpoint:`/api/tools/gau`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.82},{name:`waybackurls`,desc:`Fetch URLs from Wayback Machine`,category:`osint`,endpoint:`/api/tools/waybackurls`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.8},{name:`theHarvester`,desc:`Passive information gathering from public sources`,category:`osint`,endpoint:`/api/tools/recon/theharvester`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.8},{name:`whois`,desc:`WHOIS lookup for domains and IPs`,category:`osint`,endpoint:`/api/tools/whois`,method:`POST`,params:{target:e()},optional:{},effectiveness:.8},{name:`bbot`,desc:`Reconnaissance and enumeration with BBot`,category:`osint`,endpoint:`/api/bot/bbot`,method:`POST`,params:{target:e(),parameters:e()},optional:{},effectiveness:.9},{name:`anew`,desc:`Append unique lines — deduplication for recon pipelines`,category:`data_processing`,endpoint:`/api/tools/anew`,method:`POST`,params:{input_data:e()},optional:{output_file:``,additional_args:``},effectiveness:.7},{name:`uro`,desc:`Filter and deduplicate URL lists — remove noise from recon output`,category:`api`,endpoint:`/api/tools/uro`,method:`POST`,params:{urls:e()},optional:{whitelist:``,blacklist:``,additional_args:``},effectiveness:.75},{name:`sherlock`,desc:`Username investigation across 400+ social networks`,category:`osint`,endpoint:`/api/tools/sherlock`,method:`POST`,params:{username:e()},optional:{additional_args:``},effectiveness:.85},{name:`social-analyzer`,desc:`Social media presence analysis and OSINT gathering`,category:`osint`,endpoint:`/api/tools/social_analyzer`,method:`POST`,params:{username:e()},optional:{additional_args:``},effectiveness:.8},{name:`recon-ng`,desc:`Web reconnaissance framework with modular architecture`,category:`osint`,endpoint:`/api/tools/recon_ng`,method:`POST`,params:{domain:e()},optional:{modules:``,additional_args:``},effectiveness:.83},{name:`maltego`,desc:`Link analysis and data mining for OSINT investigations`,category:`osint`,endpoint:`/api/tools/maltego`,method:`POST`,params:{target:e()},optional:{transforms:``,additional_args:``},effectiveness:.82},{name:`spiderfoot`,desc:`OSINT automation with 200+ data-gathering modules`,category:`osint`,endpoint:`/api/tools/spiderfoot`,method:`POST`,params:{target:e()},optional:{modules:``,additional_args:``},effectiveness:.85},{name:`waymore`,desc:`URL and response discovery from multiple archive sources`,category:`osint`,endpoint:`/api/tools/waymore`,method:`POST`,params:{input:e()},optional:{mode:`U`,output_urls:``,output_responses:``,additional_args:``},effectiveness:.8},{name:`sublist3r`,desc:`Fast subdomain enumeration using multiple search engines`,category:`osint`,endpoint:`/api/tools/sublist3r`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.78},{name:`assetfinder`,desc:`Passive subdomain discovery from various online sources`,category:`osint`,endpoint:`/api/tools/assetfinder`,method:`POST`,params:{domain:e()},optional:{only_subdomains:!0,additional_args:``},effectiveness:.78},{name:`shuffledns`,desc:`Subdomain bruteforce and resolve with wildcard handling`,category:`osint`,endpoint:`/api/tools/shuffledns`,method:`POST`,params:{domain:e()},optional:{wordlist:``,resolver:``,additional_args:``},effectiveness:.82},{name:`massdns`,desc:`High-performance DNS stub resolver for bulk lookups`,category:`osint`,endpoint:`/api/tools/massdns`,method:`POST`,params:{domainlist:e()},optional:{record_type:`A`,resolvers:``,additional_args:``},effectiveness:.8},{name:`parsero`,desc:`Robots.txt parser — enumerate disallowed paths`,category:`osint`,endpoint:`/api/tools/parsero`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.72},{name:`dig`,desc:`DNS lookup utility — query DNS records`,category:`osint`,endpoint:`/api/tools/dig`,method:`POST`,params:{target:e()},optional:{record_types:`A,MX,NS,TXT`,additional_args:``},effectiveness:.8},{name:`hydra`,desc:`Network login brute-forcer`,category:`brute_force`,endpoint:`/api/tools/hydra`,method:`POST`,params:{target:e(),service:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`hashcat`,desc:`GPU-accelerated password cracker`,category:`brute_force`,endpoint:`/api/tools/hashcat`,method:`POST`,params:{hash_file:e(),hash_type:e()},optional:{attack_mode:`0`,wordlist:`/usr/share/wordlists/rockyou.txt`,mask:``,additional_args:``},effectiveness:.85},{name:`john`,desc:`Password cracker with many formats`,category:`brute_force`,endpoint:`/api/tools/john`,method:`POST`,params:{hash_file:e()},optional:{wordlist:`/usr/share/wordlists/rockyou.txt`,format_type:``,additional_args:``},effectiveness:.8},{name:`medusa`,desc:`Network login brute-forcer`,category:`brute_force`,endpoint:`/api/tools/medusa`,method:`POST`,params:{target:e(),module:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`patator`,desc:`Multi-purpose brute-forcer`,category:`brute_force`,endpoint:`/api/tools/patator`,method:`POST`,params:{target:e(),module:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`ophcrack`,desc:`Windows hash cracker using rainbow tables`,category:`brute_force`,endpoint:`/api/tools/password-cracking/ophcrack`,method:`POST`,params:{hash_file:e()},optional:{tables_dir:``,tables:``,additional_args:``},effectiveness:.75},{name:`hashid`,desc:`Identify hash types from hash strings`,category:`brute_force`,endpoint:`/api/tools/password_cracking/hashid`,method:`POST`,params:{hash:e()},optional:{additional_args:``},effectiveness:.8},{name:`hashcat-utils`,desc:`Hashcat utility tools — cap2hccapx, combinator, expander`,category:`brute_force`,endpoint:`/api/tools/hashcat`,method:`POST`,params:{hash_file:e(),hash_type:e()},optional:{attack_mode:`0`,wordlist:`/usr/share/wordlists/rockyou.txt`,additional_args:``},effectiveness:.8},{name:`msfvenom`,desc:`Metasploit payload generator`,category:`exploitation`,endpoint:`/api/tools/msfvenom`,method:`POST`,params:{payload:e()},optional:{format:`elf`,lhost:``,lport:`4444`,additional_args:``},effectiveness:.85},{name:`msfconsole`,desc:`Metasploit console — interactive exploitation framework`,category:`exploitation`,endpoint:`/api/tools/metasploit`,method:`POST`,params:{module:e()},optional:{options:``},effectiveness:.92},{name:`searchsploit`,desc:`Search Exploit-DB offline for public exploits and PoCs`,category:`exploitation`,endpoint:`/api/tools/exploit_framework/exploit_db`,method:`POST`,params:{query:e()},optional:{additional_args:``},effectiveness:.88},{name:`pwntools`,desc:`Run a pwntools exploit script against a local or remote target`,category:`exploitation`,endpoint:`/api/tools/pwntools`,method:`POST`,params:{script_content:e()},optional:{target_binary:``,target_host:``,target_port:0,exploit_type:`local`,additional_args:``},effectiveness:.88},{name:`pwninit`,desc:`Patch a CTF binary to use the provided libc, generate exploit template`,category:`exploitation`,endpoint:`/api/tools/pwninit`,method:`POST`,params:{binary:e()},optional:{libc:``,ld:``,template_type:`python`,additional_args:``},effectiveness:.8},{name:`commix`,desc:`Automated OS command injection detection and exploitation`,category:`exploitation`,endpoint:`/api/tools/commix`,method:`POST`,params:{url:e()},optional:{data:``,additional_args:``},effectiveness:.85},{name:`checksec`,desc:`Check binary security properties (NX, PIE, RELRO)`,category:`binary`,endpoint:`/api/tools/checksec`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.85},{name:`binwalk`,desc:`Firmware analysis and extraction`,category:`binary`,endpoint:`/api/tools/binwalk`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.8},{name:`strings`,desc:`Extract printable strings from binary`,category:`binary`,endpoint:`/api/tools/strings`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.7},{name:`ROPgadget`,desc:`Find ROP gadgets in binary`,category:`binary`,endpoint:`/api/tools/ropgadget`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.82},{name:`radare2`,desc:`Binary analysis and disassembly`,category:`binary`,endpoint:`/api/tools/radare2`,method:`POST`,params:{file:e()},optional:{commands:``,additional_args:``},effectiveness:.88},{name:`gdb`,desc:`GNU debugger — dynamic binary analysis and exploit dev`,category:`binary`,endpoint:`/api/tools/gdb`,method:`POST`,params:{binary:e()},optional:{commands:``,script_file:``,additional_args:``},effectiveness:.88},{name:`angr`,desc:`Binary analysis framework — symbolic execution, CFG, static analysis`,category:`binary`,endpoint:`/api/tools/angr`,method:`POST`,params:{binary:e()},optional:{script_content:``,find_address:``,avoid_addresses:``,analysis_type:`symbolic`,additional_args:``},effectiveness:.85},{name:`ghidra`,desc:`NSA reverse engineering suite — decompile and analyse binaries`,category:`binary`,endpoint:`/api/tools/ghidra`,method:`POST`,params:{binary:e()},optional:{project_name:`nyxstrike_analysis`,script_file:``,analysis_timeout:300,output_format:`xml`,additional_args:``},effectiveness:.9},{name:`objdump`,desc:`Disassemble and inspect object files and binaries`,category:`binary`,endpoint:`/api/tools/objdump`,method:`POST`,params:{binary:e()},optional:{disassemble:!0,additional_args:``},effectiveness:.78},{name:`one-gadget`,desc:`Find one-gadget RCE offsets in libc`,category:`binary`,endpoint:`/api/tools/one-gadget`,method:`POST`,params:{libc_path:e()},optional:{level:1,additional_args:``},effectiveness:.87},{name:`ropper`,desc:`ROP/JOP gadget finder with quality filtering`,category:`binary`,endpoint:`/api/tools/ropper`,method:`POST`,params:{binary:e()},optional:{gadget_type:`rop`,quality:1,arch:``,search_string:``,additional_args:``},effectiveness:.84},{name:`libc-database`,desc:`Look up libc version by symbol offsets`,category:`binary`,endpoint:`/api/tools/libc-database`,method:`POST`,params:{symbols:e()},optional:{action:`find`,libc_id:``,additional_args:``},effectiveness:.8},{name:`xxd`,desc:`Hex dump a file with optional offset and length`,category:`binary`,endpoint:`/api/tools/xxd`,method:`POST`,params:{file_path:e()},optional:{offset:`0`,length:``,additional_args:``},effectiveness:.7},{name:`autopsy`,desc:`Digital forensics platform — disk image analysis`,category:`binary`,endpoint:`/api/tools/binary_analysis/autopsy`,method:`POST`,params:{image_path:e()},optional:{case_name:`nyxstrike_case`,additional_args:``},effectiveness:.82},{name:`prowler`,desc:`AWS/Azure/GCP security audit`,category:`cloud`,endpoint:`/api/tools/prowler`,method:`POST`,params:{},optional:{provider:`aws`,profile:`default`,region:``,checks:``,additional_args:``},effectiveness:.9},{name:`trivy`,desc:`Container and filesystem vulnerability scanner`,category:`cloud`,endpoint:`/api/tools/trivy`,method:`POST`,params:{target:e()},optional:{scan_type:`image`,severity:``,additional_args:``},effectiveness:.88},{name:`kube-hunter`,desc:`Kubernetes penetration testing`,category:`cloud`,endpoint:`/api/tools/kube-hunter`,method:`POST`,params:{},optional:{additional_args:``},effectiveness:.82},{name:`scout-suite`,desc:`Multi-cloud security auditing — AWS, Azure, GCP, OCI`,category:`cloud`,endpoint:`/api/tools/scout-suite`,method:`POST`,params:{},optional:{provider:`aws`,profile:`default`,report_dir:`/tmp/scout-suite`,services:``,exceptions:``,additional_args:``},effectiveness:.88},{name:`clair`,desc:`Container vulnerability scanner — static analysis of OCI/Docker images`,category:`cloud`,endpoint:`/api/tools/clair`,method:`POST`,params:{image:e()},optional:{config:`/etc/clair/config.yaml`,output_format:`json`,additional_args:``},effectiveness:.83},{name:`docker-bench-security`,desc:`CIS Docker Benchmark checks for container host security`,category:`cloud`,endpoint:`/api/tools/docker-bench-security`,method:`POST`,params:{},optional:{checks:``,exclude:``,output_file:`/tmp/docker-bench-results.json`,additional_args:``},effectiveness:.85},{name:`checkov`,desc:`IaC static analysis — Terraform, CloudFormation, Kubernetes manifests`,category:`cloud`,endpoint:`/api/tools/checkov`,method:`POST`,params:{},optional:{directory:`.`,framework:``,check:``,skip_check:``,output_format:`json`,additional_args:``},effectiveness:.87},{name:`terrascan`,desc:`IaC security scanner — detect misconfigs across Terraform/K8s/etc.`,category:`cloud`,endpoint:`/api/tools/terrascan`,method:`POST`,params:{},optional:{scan_type:`all`,iac_dir:`.`,policy_type:``,output_format:`json`,severity:``,additional_args:``},effectiveness:.85},{name:`kube-bench`,desc:`CIS Kubernetes Benchmark — check cluster node/master security config`,category:`cloud`,endpoint:`/api/tools/kube-bench`,method:`POST`,params:{},optional:{targets:``,version:``,config_dir:``,output_format:`json`,additional_args:``},effectiveness:.85},{name:`falco`,desc:`Runtime security monitoring — detect anomalous container/host behaviour`,category:`cloud`,endpoint:`/api/tools/falco`,method:`POST`,params:{},optional:{config_file:`/etc/falco/falco.yaml`,rules_file:``,output_format:`json`,duration:60,additional_args:``},effectiveness:.83},{name:`cloudmapper`,desc:`AWS environment visualisation and attack surface analysis`,category:`cloud`,endpoint:`/api/tools/cloudmapper`,method:`POST`,params:{},optional:{account:``,additional_args:``},effectiveness:.8},{name:`pacu`,desc:`AWS exploitation framework — enumerate, attack, and pivot in AWS environments`,category:`cloud`,endpoint:`/api/tools/pacu`,method:`POST`,params:{},optional:{module:``,additional_args:``},effectiveness:.85},{name:`aircrack-ng`,desc:`Crack WPA/WPA2 PSK from captured handshake files using a wordlist`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/aircrack_ng`,method:`POST`,params:{capture_files:e(),wordlist:e()},optional:{bssid:``},effectiveness:.91},{name:`airmon-ng`,desc:`Enable or disable monitor mode on a wireless interface`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airmon_ng`,method:`POST`,params:{interface:e(),action:e()},optional:{channel:``},effectiveness:.95},{name:`airodump-ng`,desc:`Passive 802.11 capture — discovers APs/clients, captures WPA handshakes`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airodump_ng`,method:`POST`,params:{interface:e()},optional:{output_prefix:`capture`,bssid:``,channel:``,essid:``},effectiveness:.93},{name:`aireplay-ng`,desc:`Packet injection — deauth, fake auth, ARP replay, injection test`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/aireplay_ng`,method:`POST`,params:{interface:e(),attack_mode:e()},optional:{bssid:``,client_mac:``,count:0},effectiveness:.9},{name:`wireshark`,desc:`Network protocol analyser — capture and dissect packets`,category:`wifi_pentest`,endpoint:`/api/tools/wireshark`,method:`POST`,params:{interface:e()},optional:{capture_filter:``,duration:60,output_file:``,additional_args:``},effectiveness:.88},{name:`tshark`,desc:`Terminal-based Wireshark — scriptable packet capture and analysis`,category:`wifi_pentest`,endpoint:`/api/tools/tshark`,method:`POST`,params:{interface:e()},optional:{capture_filter:``,display_filter:``,duration:60,output_file:``,additional_args:``},effectiveness:.88},{name:`tcpdump`,desc:`Low-level packet capture and analysis`,category:`wifi_pentest`,endpoint:`/api/tools/tcpdump`,method:`POST`,params:{interface:e()},optional:{filter:``,count:0,output_file:``,additional_args:``},effectiveness:.85},{name:`kismet`,desc:`Wireless network detector, sniffer, and IDS`,category:`wifi_pentest`,endpoint:`/api/tools/kismet`,method:`POST`,params:{interface:e()},optional:{log_prefix:`kismet`,duration:60,additional_args:``},effectiveness:.85},{name:`airbase-ng`,desc:`Create rogue or soft access points for Evil Twin and MITM attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airbase_ng`,method:`POST`,params:{interface:e(),essid:e()},optional:{channel:6,bssid:``,wpa_mode:``,additional_args:``},effectiveness:.88},{name:`airdecap-ng`,desc:`Decrypt WEP/WPA/WPA2 encrypted wireless capture files`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airdecap_ng`,method:`POST`,params:{capture_file:e()},optional:{password:``,wep_key:``,bssid:``,essid:``,additional_args:``},effectiveness:.85},{name:`hcxdumptool`,desc:`Capture PMKID hashes and WPA handshakes clientlessly`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/hcxdumptool`,method:`POST`,params:{interface:e()},optional:{output_file:`pmkid_capture.pcapng`,target_bssid:``,duration:60,additional_args:``},effectiveness:.9},{name:`hcxpcapngtool`,desc:`Convert hcxdumptool pcapng captures to hashcat -m 22000 format`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/hcxpcapngtool`,method:`POST`,params:{input_file:e(),output_file:e()},optional:{additional_args:``},effectiveness:.88},{name:`mdk4`,desc:`802.11 protocol testing — beacon flood, deauth DoS, auth attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/mdk4`,method:`POST`,params:{interface:e(),attack_mode:e()},optional:{target_bssid:``,ssid_wordlist:``,burst_rate:50,additional_args:``},effectiveness:.85},{name:`eaphammer`,desc:`WPA-Enterprise Evil Twin — capture EAP credentials from clients`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/eaphammer`,method:`POST`,params:{interface:e(),essid:e()},optional:{channel:6,auth_mode:`wpa-eap`,attack_type:`creds`,negotiate:`gtc-downgrade`,additional_args:``},effectiveness:.87},{name:`wifite`,desc:`Automated WiFi auditing — PMKID, handshake, and WPS attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/wifite`,method:`POST`,params:{interface:e()},optional:{target_essid:``,target_bssid:``,wordlist:``,timeout:300,additional_args:``},effectiveness:.88},{name:`bettercap`,desc:`WiFi recon and deauth using bettercap wifi module`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/bettercap`,method:`POST`,params:{interface:e()},optional:{mode:`recon`,target_bssid:``,deauth_all:!1,channel_hop:!0,caplet:``,additional_args:``},effectiveness:.86},{name:`volatility`,desc:`Memory forensics framework v2 — analyse RAM dumps`,category:`forensics`,endpoint:`/api/tools/volatility`,method:`POST`,params:{memory_file:e(),plugin:e()},optional:{profile:``,additional_args:``},effectiveness:.88},{name:`foremost`,desc:`File carving — recover files from disk images by file headers`,category:`forensics`,endpoint:`/api/tools/foremost`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/foremost_output`,file_types:``,additional_args:``},effectiveness:.82},{name:`steghide`,desc:`Steganography — embed or extract hidden data from image/audio files`,category:`forensics`,endpoint:`/api/tools/steghide`,method:`POST`,params:{cover_file:e()},optional:{action:`extract`,embed_file:``,passphrase:``,output_file:``,additional_args:``},effectiveness:.8},{name:`exiftool`,desc:`Read and write metadata from image, audio, and document files`,category:`forensics`,endpoint:`/api/tools/exiftool`,method:`POST`,params:{file_path:e()},optional:{output_format:``,tags:``,additional_args:``},effectiveness:.82},{name:`hashpump`,desc:`Hash length extension attack tool`,category:`forensics`,endpoint:`/api/tools/hashpump`,method:`POST`,params:{signature:e(),data:e(),key_length:e(),append_data:e()},optional:{additional_args:``},effectiveness:.85},{name:`vol`,desc:`Volatility memory forensics (vol shorthand) — analyse RAM dumps`,category:`forensics`,endpoint:`/api/tools/volatility`,method:`POST`,params:{memory_file:e(),plugin:e()},optional:{profile:``,additional_args:``},effectiveness:.88},{name:`photorec`,desc:`File recovery — carve deleted files from disk images or drives`,category:`forensics`,endpoint:`/api/tools/photorec`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/photorec_output`,additional_args:``},effectiveness:.8},{name:`testdisk`,desc:`Disk partition recovery and repair tool`,category:`forensics`,endpoint:`/api/tools/testdisk`,method:`POST`,params:{disk:e()},optional:{additional_args:``},effectiveness:.78},{name:`scalpel`,desc:`File carving tool with configurable headers and footers`,category:`forensics`,endpoint:`/api/tools/scalpel`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/scalpel_output`,config:``,additional_args:``},effectiveness:.78},{name:`bulk_extractor`,desc:`Extract features (emails, URLs, credit cards) from disk images`,category:`forensics`,endpoint:`/api/tools/bulk_extractor`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/bulk_extractor_output`,scanners:``,additional_args:``},effectiveness:.82},{name:`stegsolve`,desc:`Steganography analysis — visual inspection and bit-plane analysis`,category:`forensics`,endpoint:`/api/tools/stegsolve`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.75},{name:`zsteg`,desc:`PNG/BMP steganography detection and extraction`,category:`forensics`,endpoint:`/api/tools/zsteg`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.78},{name:`outguess`,desc:`Universal steganographic tool for JPEG images`,category:`forensics`,endpoint:`/api/tools/outguess`,method:`POST`,params:{file_path:e()},optional:{action:`extract`,passphrase:``,output_file:``,additional_args:``},effectiveness:.74},{name:`file`,desc:`Identify file type by magic bytes — essential for forensics triage`,category:`forensics`,endpoint:`/api/tools/file_type`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.7},{name:`sleuthkit`,desc:`Collection of command-line digital forensics tools (fls, icat, mmls…)`,category:`forensics`,endpoint:`/api/tools/sleuthkit`,method:`POST`,params:{image_path:e()},optional:{command:`fls`,additional_args:``},effectiveness:.83},{name:`whatweb`,desc:`Web application fingerprinting — identify CMS, frameworks, and tech stack`,category:`fingerprint`,endpoint:`/api/tools/whatweb`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.82},{name:`impacket-scripts`,desc:`Impacket suite — SMB, Kerberos, LDAP, and AD attack scripts`,category:`active_directory`,endpoint:`/api/tools/impacket`,method:`POST`,params:{target:e()},optional:{script:``,username:``,password:``,additional_args:``},effectiveness:.88},{name:`ldapdomaindump`,desc:`Dump Active Directory info via LDAP authentication`,category:`active_directory`,endpoint:`/api/tools/ldapdomaindump`,method:`POST`,params:{target:e(),username:e(),password:e()},optional:{additional_args:``},effectiveness:.82},{name:`vulnx`,desc:`CMS vulnerability scanner — auto-detect and exploit CMS weaknesses`,category:`vulnerability_intelligence`,endpoint:`/api/tools/vulnx`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.78},{name:`hurl`,desc:`String encoding, decoding, and hashing transformations`,category:`data_processing`,endpoint:`/api/tools/hurl`,method:`POST`,params:{input:e()},optional:{mode:`base64_encode`,additional_args:``},effectiveness:.72},{name:`mysql`,desc:`MySQL client — connect and query MySQL/MariaDB databases`,category:`database`,endpoint:`/api/tools/mysql`,method:`POST`,params:{target:e()},optional:{username:``,password:``,database:``,additional_args:``},effectiveness:.75},{name:`sqlite3`,desc:`SQLite3 client — query and inspect SQLite database files`,category:`database`,endpoint:`/api/tools/sqlite3`,method:`POST`,params:{file:e()},optional:{query:``,additional_args:``},effectiveness:.75},{name:`http-framework`,desc:`Generic HTTP request framework — send raw HTTP requests and inspect responses`,category:`api`,endpoint:`/api/tools/http-framework`,method:`POST`,params:{url:e()},optional:{method:`GET`,data:``,headers:``,additional_args:``},effectiveness:.75}],n={essential:[`nmap`,`gobuster`,`dirb`,`nikto`,`sqlmap`,`hydra`,`john`,`hashcat`],network_recon:[`rustscan`,`masscan`,`autorecon`,`nbtscan`,`arp-scan`,`responder`,`nxc`,`enum4linux-ng`,`rpcclient`,`enum4linux`,`smbmap`,`evil-winrm`],web_recon:[`ffuf`,`feroxbuster`,`dirsearch`,`dotdotpwn`,`xsser`,`wfuzz`,`arjun`,`paramspider`,`x8`,`jaeles`,`dalfox`,`httpx`,`wafw00f`,`burpsuite`,`katana`,`hakrawler`,`gospider`,`wpscan`,`joomscan`,`testssl`],web_vuln:[`nuclei`,`graphql-scanner`,`jwt-analyzer`,`zaproxy`],brute_force:[`medusa`,`patator`,`hashid`,`ophcrack`,`hashcat-utils`],binary:[`gdb`,`radare2`,`binwalk`,`ROPgadget`,`checksec`,`objdump`,`ghidra`,`pwntools`,`one-gadget`,`ropper`,`angr`,`libc-database`,`pwninit`],forensics:[`vol`,`steghide`,`hashpump`,`foremost`,`exiftool`,`strings`,`xxd`,`file`,`photorec`,`testdisk`,`scalpel`,`bulk_extractor`,`stegsolve`,`zsteg`,`outguess`,`volatility`,`sleuthkit`,`autopsy`],cloud:[`prowler`,`scout-suite`,`trivy`,`kube-hunter`,`kube-bench`,`docker-bench-security`,`checkov`,`terrascan`,`falco`,`clair`,`cloudmapper`,`pacu`],osint:[`amass`,`subfinder`,`fierce`,`dnsenum`,`theHarvester`,`sherlock`,`social-analyzer`,`recon-ng`,`maltego`,`spiderfoot`,`whois`,`bbot`,`gau`,`waybackurls`,`waymore`,`sublist3r`,`assetfinder`,`shuffledns`,`massdns`,`parsero`,`dig`],exploitation:[`msfconsole`,`msfvenom`,`searchsploit`,`commix`],api:[`api-schema-analyzer`,`curl`,`http-framework`,`qsreplace`,`uro`],wifi_pentest:[`kismet`,`wireshark`,`tshark`,`tcpdump`,`airbase-ng`,`airdecap-ng`,`hcxdumptool`,`hcxpcapngtool`,`mdk4`,`eaphammer`,`wifite`,`bettercap`,`airmon-ng`,`airodump-ng`,`aireplay-ng`,`aircrack-ng`],database:[`mysql`,`sqlite3`],active_directory:[`impacket-scripts`,`ldapdomaindump`],vulnerability_intelligence:[`vulnx`],fingerprint:[`whatweb`],intelligence:[`analyze-target`,`preview-attack-chain`,`create-attack-chain`,`smart-scan`,`technology-detection`],ai_assist:[`ai_analyze_session`],data_processing:[`hurl`,`anew`]},r=Array.from(new Set(Object.values(n).flat())),i=Object.fromEntries(r.map(e=>[e,!0]));function a(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,{total:t.length,available:t.filter(e=>i[e]===!0).length}]))}var o={status:`healthy`,version:`DEMO`,update:{current_version:`DEMO`,latest_version:`DEMO`,update_available:!1,checked_at:new Date().toISOString(),source:`demo`,error:null},uptime:172843,telemetry:{commands_executed:1482,success_rate:`97.4%`,average_execution_time:`3.21s`},tools_status:i,all_essential_tools_available:!0,total_tools_available:r.length,total_tools_count:r.length,category_stats:a(),tool_availability_age_seconds:8,resources:{cpu_percent:18.4,memory_percent:44.7,memory_available_gb:11.2,disk_percent:31,disk_free_gb:274.5,load_avg:[1.12,1.05,.98],disk_total_gb:398,disk_used_gb:123.5,memory_total_gb:16,memory_used_gb:7.2,network_bytes_sent:2100,network_bytes_recv:1200},resources_timestamp:new Date().toISOString(),cache_stats:{evictions:12,hit_rate:`88.3%`,hits:256,max_size:1e3,misses:34,size:23}};function s(){let e=Date.now(),t=[14,16,22,19,25,18,30,27,21,18,15,13,17,20,23,18,16,19,22,18,17,20,18,16,19,21,18,17,18,18],n=[40,41,43,42,44,43,45,45,44,43,43,42,43,44,45,44,43,44,45,44,44,45,44,44,45,45,44,44,44,44],r=[1200,1500,1800,1600,2e3,1700,2200,2100,1900,1800,1600,1500,1700,2e3,2300,2100,1900,2e3,2200,2100,2e3,2200,2100,2e3,2200,2300,2100,2e3,2200,2100],i=[800,900,1e3,950,1100,1050,1200,1150,1e3,900,850,800,900,1100,1300,1200,1100,1150,1250,1200,1100,1250,1200,1100,1250,1300,1200,1100,1250,1200];return t.map((t,a)=>({t:e-(30-a)*1e4,cpu:t,mem:n[a],network_bytes_sent:r[a],network_bytes_recv:i[a]}))}function c(e,t,n,r,i,a,o){return{id:e,tool:t,params:n,source:`server`,ts:new Date(Date.now()-o*6e4),result:{stdout:r,stderr:i?``:`Error: host unreachable +import"./index-DuJ0P36w.js";var e=(e=!0)=>({required:e}),t=[{name:`nmap`,desc:`Port scan and service detection`,category:`network_recon`,endpoint:`/api/tools/nmap`,method:`POST`,params:{target:e()},optional:{scan_type:`-sCV`,ports:``,additional_args:`-T4 -Pn`},effectiveness:.95},{name:`masscan`,desc:`Fast mass port scanner`,category:`network_recon`,endpoint:`/api/tools/masscan`,method:`POST`,params:{target:e()},optional:{ports:`1-65535`,rate:`1000`,additional_args:``},effectiveness:.92},{name:`rustscan`,desc:`Ultra-fast port scanner`,category:`network_recon`,endpoint:`/api/tools/rustscan`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.9},{name:`enum4linux`,desc:`SMB/RPC enumeration on Windows/Samba`,category:`network_recon`,endpoint:`/api/tools/enum4linux`,method:`POST`,params:{target:e()},optional:{additional_args:`-a`},effectiveness:.8},{name:`smbmap`,desc:`SMB share enumeration`,category:`network_recon`,endpoint:`/api/tools/smbmap`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`arp-scan`,desc:`ARP-based host discovery on local network`,category:`network_recon`,endpoint:`/api/tools/arp-scan`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`nbtscan`,desc:`NetBIOS name scanner`,category:`network_recon`,endpoint:`/api/tools/nbtscan`,method:`POST`,params:{target:e()},optional:{verbose:!1,timeout:2,additional_args:``},effectiveness:.78},{name:`enum4linux-ng`,desc:`Next-gen enum4linux — SMB/RPC enumeration with JSON output`,category:`network_recon`,endpoint:`/api/tools/enum4linux-ng`,method:`POST`,params:{target:e()},optional:{username:``,password:``,domain:``,shares:!0,users:!0,groups:!0,policy:!0,additional_args:``},effectiveness:.85},{name:`rpcclient`,desc:`Windows RPC enumeration — users, groups, shares via MSRPC`,category:`network_recon`,endpoint:`/api/tools/rpcclient`,method:`POST`,params:{target:e()},optional:{username:``,password:``,domain:``,commands:`enumdomusers;enumdomgroups;querydominfo`,additional_args:``},effectiveness:.82},{name:`responder`,desc:`LLMNR/NBT-NS/MDNS poisoner — harvest NTLMv2 hashes`,category:`network_recon`,endpoint:`/api/tools/responder`,method:`POST`,params:{interface:e()},optional:{analyze:!1,wpad:!0,force_wpad_auth:!1,fingerprint:!1,duration:300,additional_args:``},effectiveness:.88},{name:`nxc`,desc:`NetExec — network service exploitation framework (SMB/WinRM)`,category:`network_recon`,endpoint:`/api/tools/netexec`,method:`POST`,params:{target:e()},optional:{protocol:`smb`,username:``,password:``,module:``,additional_args:``},effectiveness:.87},{name:`evil-winrm`,desc:`WinRM shell for Windows remote management and lateral movement`,category:`network_recon`,endpoint:`/api/tools/evil_winrm`,method:`POST`,params:{target:e(),username:e()},optional:{password:``,hash:``,additional_args:``},effectiveness:.85},{name:`gobuster`,desc:`Directory and file brute-forcer`,category:`web_recon`,endpoint:`/api/tools/gobuster`,method:`POST`,params:{url:e()},optional:{mode:`dir`,wordlist:`/usr/share/wordlists/dirb/common.txt`,additional_args:``},effectiveness:.9},{name:`ffuf`,desc:`Fast web fuzzer for dirs, vhosts, params`,category:`web_recon`,endpoint:`/api/tools/ffuf`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,mode:`directory`,match_codes:`200,204,301,302,307,401,403`,additional_args:``},effectiveness:.9},{name:`feroxbuster`,desc:`Recursive content discovery`,category:`web_recon`,endpoint:`/api/tools/feroxbuster`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,threads:10,additional_args:``},effectiveness:.85},{name:`katana`,desc:`Web crawler for endpoint discovery`,category:`web_recon`,endpoint:`/api/tools/katana`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.88},{name:`httpx`,desc:`HTTP probing and tech detection`,category:`web_recon`,endpoint:`/api/tools/httpx`,method:`POST`,params:{target:e()},optional:{probe:!0,tech_detect:!1,status_code:!1,title:!1,additional_args:``},effectiveness:.85},{name:`dirsearch`,desc:`Web path scanner`,category:`web_recon`,endpoint:`/api/tools/dirsearch`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.87},{name:`wafw00f`,desc:`Web application firewall detection`,category:`web_recon`,endpoint:`/api/tools/wafw00f`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.8},{name:`wpscan`,desc:`WordPress vulnerability scanner`,category:`web_recon`,endpoint:`/api/tools/wpscan`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.95},{name:`dirb`,desc:`Classic web content scanner using a wordlist`,category:`web_recon`,endpoint:`/api/tools/dirb`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/dirb/common.txt`,additional_args:``},effectiveness:.78},{name:`hakrawler`,desc:`Fast web crawler — extracts links, forms, and endpoints`,category:`web_recon`,endpoint:`/api/tools/hakrawler`,method:`POST`,params:{url:e()},optional:{depth:2,forms:!0,robots:!0,sitemap:!0,wayback:!1,additional_args:``},effectiveness:.83},{name:`gospider`,desc:`Fast web spider — crawl endpoints, JS, robots, sitemap`,category:`web_recon`,endpoint:`/api/tools/gospider`,method:`POST`,params:{site:e()},optional:{depth:1,threads:1,concurrent:5,additional_args:``},effectiveness:.82},{name:`joomscan`,desc:`Joomla vulnerability scanner`,category:`web_recon`,endpoint:`/api/tools/joomscan`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.88},{name:`testssl`,desc:`TLS/SSL cipher and certificate analysis`,category:`web_recon`,endpoint:`/api/tools/testssl`,method:`POST`,params:{target:e()},optional:{protocols:!0,server_defaults:!0,additional_args:``},effectiveness:.85},{name:`autorecon`,desc:`Automated multi-tool recon — nmap, web, and service scans`,category:`web_recon`,endpoint:`/api/tools/autorecon`,method:`POST`,params:{target:e()},optional:{output_dir:`/tmp/autorecon`,port_scans:`top-100-ports`,service_scans:`default`,heartbeat:60,timeout:300,additional_args:``},effectiveness:.88},{name:`arjun`,desc:`HTTP parameter discovery — find hidden GET/POST params`,category:`web_recon`,endpoint:`/api/tools/arjun`,method:`POST`,params:{url:e()},optional:{method:`GET`,wordlist:``,delay:0,threads:25,stable:!1,additional_args:``},effectiveness:.85},{name:`paramspider`,desc:`Mine URL parameters from web archives for a domain`,category:`web_recon`,endpoint:`/api/tools/paramspider`,method:`POST`,params:{domain:e()},optional:{level:2,exclude:`png,jpg,gif,jpeg,swf,woff,svg,pdf,css,ico`,output:``,additional_args:``},effectiveness:.8},{name:`x8`,desc:`Hidden HTTP parameter discovery via response diffing`,category:`web_recon`,endpoint:`/api/tools/x8`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wordlists/x8/params.txt`,method:`GET`,body:``,headers:``,additional_args:``},effectiveness:.83},{name:`qsreplace`,desc:`Replace query-string parameter values in a list of URLs`,category:`api`,endpoint:`/api/tools/qsreplace`,method:`POST`,params:{urls:e()},optional:{replacement:`FUZZ`,additional_args:``},effectiveness:.72},{name:`nuclei`,desc:`Template-based vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/nuclei`,method:`POST`,params:{target:e()},optional:{severity:``,tags:``,template:``,additional_args:``},effectiveness:.95},{name:`nikto`,desc:`Web server vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/nikto`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.85},{name:`sqlmap`,desc:`Automatic SQL injection detection and exploitation`,category:`web_vuln`,endpoint:`/api/tools/sqlmap`,method:`POST`,params:{url:e()},optional:{data:``,additional_args:``},effectiveness:.9},{name:`dalfox`,desc:`XSS vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/dalfox`,method:`POST`,params:{url:e()},optional:{blind:!1,additional_args:``},effectiveness:.93},{name:`xsser`,desc:`Cross-site scripting scanner`,category:`web_vuln`,endpoint:`/api/tools/xsser`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.8},{name:`dotdotpwn`,desc:`Directory traversal scanner`,category:`web_vuln`,endpoint:`/api/tools/dotdotpwn`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.78},{name:`jaeles`,desc:`Web security scanning framework`,category:`web_recon`,endpoint:`/api/tools/jaeles`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.92},{name:`wfuzz`,desc:`Web fuzzer for directories, parameters, and authentication`,category:`web_recon`,endpoint:`/api/tools/wfuzz`,method:`POST`,params:{url:e()},optional:{wordlist:`/usr/share/wfuzz/wordlist/general/common.txt`,additional_args:``},effectiveness:.82},{name:`graphql-scanner`,desc:`GraphQL introspection and mutation vulnerability scanner`,category:`web_vuln`,endpoint:`/api/tools/graphql_scanner`,method:`POST`,params:{endpoint:e()},optional:{introspection:!0,query_depth:10,mutations:!0},effectiveness:.85},{name:`jwt-analyzer`,desc:`Decode and attack JWT tokens — alg:none, RS256→HS256, brute secret`,category:`web_vuln`,endpoint:`/api/tools/jwt_analyzer`,method:`POST`,params:{jwt_token:e()},optional:{target_url:``},effectiveness:.85},{name:`api-schema-analyzer`,desc:`Analyse OpenAPI/Swagger/GraphQL schemas for security issues`,category:`api`,endpoint:`/api/tools/api_schema_analyzer`,method:`POST`,params:{schema_url:e()},optional:{schema_type:`openapi`},effectiveness:.82},{name:`burpsuite`,desc:`Burp Suite web application security testing platform`,category:`web_recon`,endpoint:`/api/tools/burpsuite-alternative`,method:`POST`,params:{target:e()},optional:{scan_type:`comprehensive`,headless:!0,max_depth:3,max_pages:50},effectiveness:.9},{name:`zaproxy`,desc:`OWASP ZAP web application security scanner`,category:`web_vuln`,endpoint:`/api/tools/zap`,method:`POST`,params:{target:e()},optional:{scan_type:`baseline`,api_key:``,port:`8090`,output_format:`xml`,additional_args:``},effectiveness:.88},{name:`curl`,desc:`HTTP/S request tool — manual probing and PoC verification`,category:`api`,endpoint:`/api/tools/http-framework`,method:`POST`,params:{url:e()},optional:{method:`GET`,data:``,headers:``},effectiveness:.75},{name:`amass`,desc:`Subdomain enumeration and OSINT`,category:`osint`,endpoint:`/api/tools/amass`,method:`POST`,params:{domain:e()},optional:{mode:`enum`,additional_args:``},effectiveness:.85},{name:`subfinder`,desc:`Passive subdomain discovery`,category:`osint`,endpoint:`/api/tools/subfinder`,method:`POST`,params:{domain:e()},optional:{silent:!0,all_sources:!1,additional_args:``},effectiveness:.82},{name:`fierce`,desc:`DNS reconnaissance tool`,category:`osint`,endpoint:`/api/tools/fierce`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.75},{name:`dnsenum`,desc:`DNS enumeration and zone transfer`,category:`osint`,endpoint:`/api/tools/dnsenum`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.78},{name:`gau`,desc:`Fetch known URLs from AlienVault/Wayback`,category:`osint`,endpoint:`/api/tools/gau`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.82},{name:`waybackurls`,desc:`Fetch URLs from Wayback Machine`,category:`osint`,endpoint:`/api/tools/waybackurls`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.8},{name:`theHarvester`,desc:`Passive information gathering from public sources`,category:`osint`,endpoint:`/api/tools/recon/theharvester`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.8},{name:`whois`,desc:`WHOIS lookup for domains and IPs`,category:`osint`,endpoint:`/api/tools/whois`,method:`POST`,params:{target:e()},optional:{},effectiveness:.8},{name:`bbot`,desc:`Reconnaissance and enumeration with BBot`,category:`osint`,endpoint:`/api/bot/bbot`,method:`POST`,params:{target:e(),parameters:e()},optional:{},effectiveness:.9},{name:`anew`,desc:`Append unique lines — deduplication for recon pipelines`,category:`data_processing`,endpoint:`/api/tools/anew`,method:`POST`,params:{input_data:e()},optional:{output_file:``,additional_args:``},effectiveness:.7},{name:`uro`,desc:`Filter and deduplicate URL lists — remove noise from recon output`,category:`api`,endpoint:`/api/tools/uro`,method:`POST`,params:{urls:e()},optional:{whitelist:``,blacklist:``,additional_args:``},effectiveness:.75},{name:`sherlock`,desc:`Username investigation across 400+ social networks`,category:`osint`,endpoint:`/api/tools/sherlock`,method:`POST`,params:{username:e()},optional:{additional_args:``},effectiveness:.85},{name:`social-analyzer`,desc:`Social media presence analysis and OSINT gathering`,category:`osint`,endpoint:`/api/tools/social_analyzer`,method:`POST`,params:{username:e()},optional:{additional_args:``},effectiveness:.8},{name:`recon-ng`,desc:`Web reconnaissance framework with modular architecture`,category:`osint`,endpoint:`/api/tools/recon_ng`,method:`POST`,params:{domain:e()},optional:{modules:``,additional_args:``},effectiveness:.83},{name:`maltego`,desc:`Link analysis and data mining for OSINT investigations`,category:`osint`,endpoint:`/api/tools/maltego`,method:`POST`,params:{target:e()},optional:{transforms:``,additional_args:``},effectiveness:.82},{name:`spiderfoot`,desc:`OSINT automation with 200+ data-gathering modules`,category:`osint`,endpoint:`/api/tools/spiderfoot`,method:`POST`,params:{target:e()},optional:{modules:``,additional_args:``},effectiveness:.85},{name:`waymore`,desc:`URL and response discovery from multiple archive sources`,category:`osint`,endpoint:`/api/tools/waymore`,method:`POST`,params:{input:e()},optional:{mode:`U`,output_urls:``,output_responses:``,additional_args:``},effectiveness:.8},{name:`sublist3r`,desc:`Fast subdomain enumeration using multiple search engines`,category:`osint`,endpoint:`/api/tools/sublist3r`,method:`POST`,params:{domain:e()},optional:{additional_args:``},effectiveness:.78},{name:`assetfinder`,desc:`Passive subdomain discovery from various online sources`,category:`osint`,endpoint:`/api/tools/assetfinder`,method:`POST`,params:{domain:e()},optional:{only_subdomains:!0,additional_args:``},effectiveness:.78},{name:`shuffledns`,desc:`Subdomain bruteforce and resolve with wildcard handling`,category:`osint`,endpoint:`/api/tools/shuffledns`,method:`POST`,params:{domain:e()},optional:{wordlist:``,resolver:``,additional_args:``},effectiveness:.82},{name:`massdns`,desc:`High-performance DNS stub resolver for bulk lookups`,category:`osint`,endpoint:`/api/tools/massdns`,method:`POST`,params:{domainlist:e()},optional:{record_type:`A`,resolvers:``,additional_args:``},effectiveness:.8},{name:`parsero`,desc:`Robots.txt parser — enumerate disallowed paths`,category:`osint`,endpoint:`/api/tools/parsero`,method:`POST`,params:{target:e()},optional:{additional_args:``},effectiveness:.72},{name:`dig`,desc:`DNS lookup utility — query DNS records`,category:`osint`,endpoint:`/api/tools/dig`,method:`POST`,params:{target:e()},optional:{record_types:`A,MX,NS,TXT`,additional_args:``},effectiveness:.8},{name:`hydra`,desc:`Network login brute-forcer`,category:`brute_force`,endpoint:`/api/tools/hydra`,method:`POST`,params:{target:e(),service:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`hashcat`,desc:`GPU-accelerated password cracker`,category:`brute_force`,endpoint:`/api/tools/hashcat`,method:`POST`,params:{hash_file:e(),hash_type:e()},optional:{attack_mode:`0`,wordlist:`/usr/share/wordlists/rockyou.txt`,mask:``,additional_args:``},effectiveness:.85},{name:`john`,desc:`Password cracker with many formats`,category:`brute_force`,endpoint:`/api/tools/john`,method:`POST`,params:{hash_file:e()},optional:{wordlist:`/usr/share/wordlists/rockyou.txt`,format_type:``,additional_args:``},effectiveness:.8},{name:`medusa`,desc:`Network login brute-forcer`,category:`brute_force`,endpoint:`/api/tools/medusa`,method:`POST`,params:{target:e(),module:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`patator`,desc:`Multi-purpose brute-forcer`,category:`brute_force`,endpoint:`/api/tools/patator`,method:`POST`,params:{target:e(),module:e()},optional:{username:``,username_file:``,password:``,password_file:``,additional_args:``},effectiveness:.8},{name:`ophcrack`,desc:`Windows hash cracker using rainbow tables`,category:`brute_force`,endpoint:`/api/tools/password-cracking/ophcrack`,method:`POST`,params:{hash_file:e()},optional:{tables_dir:``,tables:``,additional_args:``},effectiveness:.75},{name:`hashid`,desc:`Identify hash types from hash strings`,category:`brute_force`,endpoint:`/api/tools/password_cracking/hashid`,method:`POST`,params:{hash:e()},optional:{additional_args:``},effectiveness:.8},{name:`hashcat-utils`,desc:`Hashcat utility tools — cap2hccapx, combinator, expander`,category:`brute_force`,endpoint:`/api/tools/hashcat`,method:`POST`,params:{hash_file:e(),hash_type:e()},optional:{attack_mode:`0`,wordlist:`/usr/share/wordlists/rockyou.txt`,additional_args:``},effectiveness:.8},{name:`msfvenom`,desc:`Metasploit payload generator`,category:`exploitation`,endpoint:`/api/tools/msfvenom`,method:`POST`,params:{payload:e()},optional:{format:`elf`,lhost:``,lport:`4444`,additional_args:``},effectiveness:.85},{name:`msfconsole`,desc:`Metasploit console — interactive exploitation framework`,category:`exploitation`,endpoint:`/api/tools/metasploit`,method:`POST`,params:{module:e()},optional:{options:``},effectiveness:.92},{name:`searchsploit`,desc:`Search Exploit-DB offline for public exploits and PoCs`,category:`exploitation`,endpoint:`/api/tools/exploit_framework/exploit_db`,method:`POST`,params:{query:e()},optional:{additional_args:``},effectiveness:.88},{name:`pwntools`,desc:`Run a pwntools exploit script against a local or remote target`,category:`exploitation`,endpoint:`/api/tools/pwntools`,method:`POST`,params:{script_content:e()},optional:{target_binary:``,target_host:``,target_port:0,exploit_type:`local`,additional_args:``},effectiveness:.88},{name:`pwninit`,desc:`Patch a CTF binary to use the provided libc, generate exploit template`,category:`exploitation`,endpoint:`/api/tools/pwninit`,method:`POST`,params:{binary:e()},optional:{libc:``,ld:``,template_type:`python`,additional_args:``},effectiveness:.8},{name:`commix`,desc:`Automated OS command injection detection and exploitation`,category:`exploitation`,endpoint:`/api/tools/commix`,method:`POST`,params:{url:e()},optional:{data:``,additional_args:``},effectiveness:.85},{name:`checksec`,desc:`Check binary security properties (NX, PIE, RELRO)`,category:`binary`,endpoint:`/api/tools/checksec`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.85},{name:`binwalk`,desc:`Firmware analysis and extraction`,category:`binary`,endpoint:`/api/tools/binwalk`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.8},{name:`strings`,desc:`Extract printable strings from binary`,category:`binary`,endpoint:`/api/tools/strings`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.7},{name:`ROPgadget`,desc:`Find ROP gadgets in binary`,category:`binary`,endpoint:`/api/tools/ropgadget`,method:`POST`,params:{file:e()},optional:{additional_args:``},effectiveness:.82},{name:`radare2`,desc:`Binary analysis and disassembly`,category:`binary`,endpoint:`/api/tools/radare2`,method:`POST`,params:{file:e()},optional:{commands:``,additional_args:``},effectiveness:.88},{name:`gdb`,desc:`GNU debugger — dynamic binary analysis and exploit dev`,category:`binary`,endpoint:`/api/tools/gdb`,method:`POST`,params:{binary:e()},optional:{commands:``,script_file:``,additional_args:``},effectiveness:.88},{name:`angr`,desc:`Binary analysis framework — symbolic execution, CFG, static analysis`,category:`binary`,endpoint:`/api/tools/angr`,method:`POST`,params:{binary:e()},optional:{script_content:``,find_address:``,avoid_addresses:``,analysis_type:`symbolic`,additional_args:``},effectiveness:.85},{name:`ghidra`,desc:`NSA reverse engineering suite — decompile and analyse binaries`,category:`binary`,endpoint:`/api/tools/ghidra`,method:`POST`,params:{binary:e()},optional:{project_name:`nyxstrike_analysis`,script_file:``,analysis_timeout:300,output_format:`xml`,additional_args:``},effectiveness:.9},{name:`objdump`,desc:`Disassemble and inspect object files and binaries`,category:`binary`,endpoint:`/api/tools/objdump`,method:`POST`,params:{binary:e()},optional:{disassemble:!0,additional_args:``},effectiveness:.78},{name:`one-gadget`,desc:`Find one-gadget RCE offsets in libc`,category:`binary`,endpoint:`/api/tools/one-gadget`,method:`POST`,params:{libc_path:e()},optional:{level:1,additional_args:``},effectiveness:.87},{name:`ropper`,desc:`ROP/JOP gadget finder with quality filtering`,category:`binary`,endpoint:`/api/tools/ropper`,method:`POST`,params:{binary:e()},optional:{gadget_type:`rop`,quality:1,arch:``,search_string:``,additional_args:``},effectiveness:.84},{name:`libc-database`,desc:`Look up libc version by symbol offsets`,category:`binary`,endpoint:`/api/tools/libc-database`,method:`POST`,params:{symbols:e()},optional:{action:`find`,libc_id:``,additional_args:``},effectiveness:.8},{name:`xxd`,desc:`Hex dump a file with optional offset and length`,category:`binary`,endpoint:`/api/tools/xxd`,method:`POST`,params:{file_path:e()},optional:{offset:`0`,length:``,additional_args:``},effectiveness:.7},{name:`autopsy`,desc:`Digital forensics platform — disk image analysis`,category:`binary`,endpoint:`/api/tools/binary_analysis/autopsy`,method:`POST`,params:{image_path:e()},optional:{case_name:`nyxstrike_case`,additional_args:``},effectiveness:.82},{name:`prowler`,desc:`AWS/Azure/GCP security audit`,category:`cloud`,endpoint:`/api/tools/prowler`,method:`POST`,params:{},optional:{provider:`aws`,profile:`default`,region:``,checks:``,additional_args:``},effectiveness:.9},{name:`trivy`,desc:`Container and filesystem vulnerability scanner`,category:`cloud`,endpoint:`/api/tools/trivy`,method:`POST`,params:{target:e()},optional:{scan_type:`image`,severity:``,additional_args:``},effectiveness:.88},{name:`kube-hunter`,desc:`Kubernetes penetration testing`,category:`cloud`,endpoint:`/api/tools/kube-hunter`,method:`POST`,params:{},optional:{additional_args:``},effectiveness:.82},{name:`scout-suite`,desc:`Multi-cloud security auditing — AWS, Azure, GCP, OCI`,category:`cloud`,endpoint:`/api/tools/scout-suite`,method:`POST`,params:{},optional:{provider:`aws`,profile:`default`,report_dir:`/tmp/scout-suite`,services:``,exceptions:``,additional_args:``},effectiveness:.88},{name:`clair`,desc:`Container vulnerability scanner — static analysis of OCI/Docker images`,category:`cloud`,endpoint:`/api/tools/clair`,method:`POST`,params:{image:e()},optional:{config:`/etc/clair/config.yaml`,output_format:`json`,additional_args:``},effectiveness:.83},{name:`docker-bench-security`,desc:`CIS Docker Benchmark checks for container host security`,category:`cloud`,endpoint:`/api/tools/docker-bench-security`,method:`POST`,params:{},optional:{checks:``,exclude:``,output_file:`/tmp/docker-bench-results.json`,additional_args:``},effectiveness:.85},{name:`checkov`,desc:`IaC static analysis — Terraform, CloudFormation, Kubernetes manifests`,category:`cloud`,endpoint:`/api/tools/checkov`,method:`POST`,params:{},optional:{directory:`.`,framework:``,check:``,skip_check:``,output_format:`json`,additional_args:``},effectiveness:.87},{name:`terrascan`,desc:`IaC security scanner — detect misconfigs across Terraform/K8s/etc.`,category:`cloud`,endpoint:`/api/tools/terrascan`,method:`POST`,params:{},optional:{scan_type:`all`,iac_dir:`.`,policy_type:``,output_format:`json`,severity:``,additional_args:``},effectiveness:.85},{name:`kube-bench`,desc:`CIS Kubernetes Benchmark — check cluster node/master security config`,category:`cloud`,endpoint:`/api/tools/kube-bench`,method:`POST`,params:{},optional:{targets:``,version:``,config_dir:``,output_format:`json`,additional_args:``},effectiveness:.85},{name:`falco`,desc:`Runtime security monitoring — detect anomalous container/host behaviour`,category:`cloud`,endpoint:`/api/tools/falco`,method:`POST`,params:{},optional:{config_file:`/etc/falco/falco.yaml`,rules_file:``,output_format:`json`,duration:60,additional_args:``},effectiveness:.83},{name:`cloudmapper`,desc:`AWS environment visualisation and attack surface analysis`,category:`cloud`,endpoint:`/api/tools/cloudmapper`,method:`POST`,params:{},optional:{account:``,additional_args:``},effectiveness:.8},{name:`pacu`,desc:`AWS exploitation framework — enumerate, attack, and pivot in AWS environments`,category:`cloud`,endpoint:`/api/tools/pacu`,method:`POST`,params:{},optional:{module:``,additional_args:``},effectiveness:.85},{name:`aircrack-ng`,desc:`Crack WPA/WPA2 PSK from captured handshake files using a wordlist`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/aircrack_ng`,method:`POST`,params:{capture_files:e(),wordlist:e()},optional:{bssid:``},effectiveness:.91},{name:`airmon-ng`,desc:`Enable or disable monitor mode on a wireless interface`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airmon_ng`,method:`POST`,params:{interface:e(),action:e()},optional:{channel:``},effectiveness:.95},{name:`airodump-ng`,desc:`Passive 802.11 capture — discovers APs/clients, captures WPA handshakes`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airodump_ng`,method:`POST`,params:{interface:e()},optional:{output_prefix:`capture`,bssid:``,channel:``,essid:``},effectiveness:.93},{name:`aireplay-ng`,desc:`Packet injection — deauth, fake auth, ARP replay, injection test`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/aireplay_ng`,method:`POST`,params:{interface:e(),attack_mode:e()},optional:{bssid:``,client_mac:``,count:0},effectiveness:.9},{name:`wireshark`,desc:`Network protocol analyser — capture and dissect packets`,category:`wifi_pentest`,endpoint:`/api/tools/wireshark`,method:`POST`,params:{interface:e()},optional:{capture_filter:``,duration:60,output_file:``,additional_args:``},effectiveness:.88},{name:`tshark`,desc:`Terminal-based Wireshark — scriptable packet capture and analysis`,category:`wifi_pentest`,endpoint:`/api/tools/tshark`,method:`POST`,params:{interface:e()},optional:{capture_filter:``,display_filter:``,duration:60,output_file:``,additional_args:``},effectiveness:.88},{name:`tcpdump`,desc:`Low-level packet capture and analysis`,category:`wifi_pentest`,endpoint:`/api/tools/tcpdump`,method:`POST`,params:{interface:e()},optional:{filter:``,count:0,output_file:``,additional_args:``},effectiveness:.85},{name:`kismet`,desc:`Wireless network detector, sniffer, and IDS`,category:`wifi_pentest`,endpoint:`/api/tools/kismet`,method:`POST`,params:{interface:e()},optional:{log_prefix:`kismet`,duration:60,additional_args:``},effectiveness:.85},{name:`airbase-ng`,desc:`Create rogue or soft access points for Evil Twin and MITM attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airbase_ng`,method:`POST`,params:{interface:e(),essid:e()},optional:{channel:6,bssid:``,wpa_mode:``,additional_args:``},effectiveness:.88},{name:`airdecap-ng`,desc:`Decrypt WEP/WPA/WPA2 encrypted wireless capture files`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/airdecap_ng`,method:`POST`,params:{capture_file:e()},optional:{password:``,wep_key:``,bssid:``,essid:``,additional_args:``},effectiveness:.85},{name:`hcxdumptool`,desc:`Capture PMKID hashes and WPA handshakes clientlessly`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/hcxdumptool`,method:`POST`,params:{interface:e()},optional:{output_file:`pmkid_capture.pcapng`,target_bssid:``,duration:60,additional_args:``},effectiveness:.9},{name:`hcxpcapngtool`,desc:`Convert hcxdumptool pcapng captures to hashcat -m 22000 format`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/hcxpcapngtool`,method:`POST`,params:{input_file:e(),output_file:e()},optional:{additional_args:``},effectiveness:.88},{name:`mdk4`,desc:`802.11 protocol testing — beacon flood, deauth DoS, auth attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/mdk4`,method:`POST`,params:{interface:e(),attack_mode:e()},optional:{target_bssid:``,ssid_wordlist:``,burst_rate:50,additional_args:``},effectiveness:.85},{name:`eaphammer`,desc:`WPA-Enterprise Evil Twin — capture EAP credentials from clients`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/eaphammer`,method:`POST`,params:{interface:e(),essid:e()},optional:{channel:6,auth_mode:`wpa-eap`,attack_type:`creds`,negotiate:`gtc-downgrade`,additional_args:``},effectiveness:.87},{name:`wifite`,desc:`Automated WiFi auditing — PMKID, handshake, and WPS attacks`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/wifite`,method:`POST`,params:{interface:e()},optional:{target_essid:``,target_bssid:``,wordlist:``,timeout:300,additional_args:``},effectiveness:.88},{name:`bettercap`,desc:`WiFi recon and deauth using bettercap wifi module`,category:`wifi_pentest`,endpoint:`/api/tools/wifi_pentest/bettercap`,method:`POST`,params:{interface:e()},optional:{mode:`recon`,target_bssid:``,deauth_all:!1,channel_hop:!0,caplet:``,additional_args:``},effectiveness:.86},{name:`volatility`,desc:`Memory forensics framework v2 — analyse RAM dumps`,category:`forensics`,endpoint:`/api/tools/volatility`,method:`POST`,params:{memory_file:e(),plugin:e()},optional:{profile:``,additional_args:``},effectiveness:.88},{name:`foremost`,desc:`File carving — recover files from disk images by file headers`,category:`forensics`,endpoint:`/api/tools/foremost`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/foremost_output`,file_types:``,additional_args:``},effectiveness:.82},{name:`steghide`,desc:`Steganography — embed or extract hidden data from image/audio files`,category:`forensics`,endpoint:`/api/tools/steghide`,method:`POST`,params:{cover_file:e()},optional:{action:`extract`,embed_file:``,passphrase:``,output_file:``,additional_args:``},effectiveness:.8},{name:`exiftool`,desc:`Read and write metadata from image, audio, and document files`,category:`forensics`,endpoint:`/api/tools/exiftool`,method:`POST`,params:{file_path:e()},optional:{output_format:``,tags:``,additional_args:``},effectiveness:.82},{name:`hashpump`,desc:`Hash length extension attack tool`,category:`forensics`,endpoint:`/api/tools/hashpump`,method:`POST`,params:{signature:e(),data:e(),key_length:e(),append_data:e()},optional:{additional_args:``},effectiveness:.85},{name:`vol`,desc:`Volatility memory forensics (vol shorthand) — analyse RAM dumps`,category:`forensics`,endpoint:`/api/tools/volatility`,method:`POST`,params:{memory_file:e(),plugin:e()},optional:{profile:``,additional_args:``},effectiveness:.88},{name:`photorec`,desc:`File recovery — carve deleted files from disk images or drives`,category:`forensics`,endpoint:`/api/tools/photorec`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/photorec_output`,additional_args:``},effectiveness:.8},{name:`testdisk`,desc:`Disk partition recovery and repair tool`,category:`forensics`,endpoint:`/api/tools/testdisk`,method:`POST`,params:{disk:e()},optional:{additional_args:``},effectiveness:.78},{name:`scalpel`,desc:`File carving tool with configurable headers and footers`,category:`forensics`,endpoint:`/api/tools/scalpel`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/scalpel_output`,config:``,additional_args:``},effectiveness:.78},{name:`bulk_extractor`,desc:`Extract features (emails, URLs, credit cards) from disk images`,category:`forensics`,endpoint:`/api/tools/bulk_extractor`,method:`POST`,params:{input_file:e()},optional:{output_dir:`/tmp/bulk_extractor_output`,scanners:``,additional_args:``},effectiveness:.82},{name:`stegsolve`,desc:`Steganography analysis — visual inspection and bit-plane analysis`,category:`forensics`,endpoint:`/api/tools/stegsolve`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.75},{name:`zsteg`,desc:`PNG/BMP steganography detection and extraction`,category:`forensics`,endpoint:`/api/tools/zsteg`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.78},{name:`outguess`,desc:`Universal steganographic tool for JPEG images`,category:`forensics`,endpoint:`/api/tools/outguess`,method:`POST`,params:{file_path:e()},optional:{action:`extract`,passphrase:``,output_file:``,additional_args:``},effectiveness:.74},{name:`file`,desc:`Identify file type by magic bytes — essential for forensics triage`,category:`forensics`,endpoint:`/api/tools/file_type`,method:`POST`,params:{file_path:e()},optional:{additional_args:``},effectiveness:.7},{name:`sleuthkit`,desc:`Collection of command-line digital forensics tools (fls, icat, mmls…)`,category:`forensics`,endpoint:`/api/tools/sleuthkit`,method:`POST`,params:{image_path:e()},optional:{command:`fls`,additional_args:``},effectiveness:.83},{name:`whatweb`,desc:`Web application fingerprinting — identify CMS, frameworks, and tech stack`,category:`fingerprint`,endpoint:`/api/tools/whatweb`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.82},{name:`impacket-scripts`,desc:`Impacket suite — SMB, Kerberos, LDAP, and AD attack scripts`,category:`active_directory`,endpoint:`/api/tools/impacket`,method:`POST`,params:{target:e()},optional:{script:``,username:``,password:``,additional_args:``},effectiveness:.88},{name:`ldapdomaindump`,desc:`Dump Active Directory info via LDAP authentication`,category:`active_directory`,endpoint:`/api/tools/ldapdomaindump`,method:`POST`,params:{target:e(),username:e(),password:e()},optional:{additional_args:``},effectiveness:.82},{name:`vulnx`,desc:`CMS vulnerability scanner — auto-detect and exploit CMS weaknesses`,category:`vulnerability_intelligence`,endpoint:`/api/tools/vulnx`,method:`POST`,params:{url:e()},optional:{additional_args:``},effectiveness:.78},{name:`hurl`,desc:`String encoding, decoding, and hashing transformations`,category:`data_processing`,endpoint:`/api/tools/hurl`,method:`POST`,params:{input:e()},optional:{mode:`base64_encode`,additional_args:``},effectiveness:.72},{name:`mysql`,desc:`MySQL client — connect and query MySQL/MariaDB databases`,category:`database`,endpoint:`/api/tools/mysql`,method:`POST`,params:{target:e()},optional:{username:``,password:``,database:``,additional_args:``},effectiveness:.75},{name:`sqlite3`,desc:`SQLite3 client — query and inspect SQLite database files`,category:`database`,endpoint:`/api/tools/sqlite3`,method:`POST`,params:{file:e()},optional:{query:``,additional_args:``},effectiveness:.75},{name:`http-framework`,desc:`Generic HTTP request framework — send raw HTTP requests and inspect responses`,category:`api`,endpoint:`/api/tools/http-framework`,method:`POST`,params:{url:e()},optional:{method:`GET`,data:``,headers:``,additional_args:``},effectiveness:.75}],n={essential:[`nmap`,`gobuster`,`dirb`,`nikto`,`sqlmap`,`hydra`,`john`,`hashcat`],network_recon:[`rustscan`,`masscan`,`autorecon`,`nbtscan`,`arp-scan`,`responder`,`nxc`,`enum4linux-ng`,`rpcclient`,`enum4linux`,`smbmap`,`evil-winrm`],web_recon:[`ffuf`,`feroxbuster`,`dirsearch`,`dotdotpwn`,`xsser`,`wfuzz`,`arjun`,`paramspider`,`x8`,`jaeles`,`dalfox`,`httpx`,`wafw00f`,`burpsuite`,`katana`,`hakrawler`,`gospider`,`wpscan`,`joomscan`,`testssl`],web_vuln:[`nuclei`,`graphql-scanner`,`jwt-analyzer`,`zaproxy`],brute_force:[`medusa`,`patator`,`hashid`,`ophcrack`,`hashcat-utils`],binary:[`gdb`,`radare2`,`binwalk`,`ROPgadget`,`checksec`,`objdump`,`ghidra`,`pwntools`,`one-gadget`,`ropper`,`angr`,`libc-database`,`pwninit`],forensics:[`vol`,`steghide`,`hashpump`,`foremost`,`exiftool`,`strings`,`xxd`,`file`,`photorec`,`testdisk`,`scalpel`,`bulk_extractor`,`stegsolve`,`zsteg`,`outguess`,`volatility`,`sleuthkit`,`autopsy`],cloud:[`prowler`,`scout-suite`,`trivy`,`kube-hunter`,`kube-bench`,`docker-bench-security`,`checkov`,`terrascan`,`falco`,`clair`,`cloudmapper`,`pacu`],osint:[`amass`,`subfinder`,`fierce`,`dnsenum`,`theHarvester`,`sherlock`,`social-analyzer`,`recon-ng`,`maltego`,`spiderfoot`,`whois`,`bbot`,`gau`,`waybackurls`,`waymore`,`sublist3r`,`assetfinder`,`shuffledns`,`massdns`,`parsero`,`dig`],exploitation:[`msfconsole`,`msfvenom`,`searchsploit`,`commix`],api:[`api-schema-analyzer`,`curl`,`http-framework`,`qsreplace`,`uro`],wifi_pentest:[`kismet`,`wireshark`,`tshark`,`tcpdump`,`airbase-ng`,`airdecap-ng`,`hcxdumptool`,`hcxpcapngtool`,`mdk4`,`eaphammer`,`wifite`,`bettercap`,`airmon-ng`,`airodump-ng`,`aireplay-ng`,`aircrack-ng`],database:[`mysql`,`sqlite3`],active_directory:[`impacket-scripts`,`ldapdomaindump`],vulnerability_intelligence:[`vulnx`],fingerprint:[`whatweb`],intelligence:[`analyze-target`,`preview-attack-chain`,`create-attack-chain`,`smart-scan`,`technology-detection`],ai_assist:[`ai_analyze_session`],data_processing:[`hurl`,`anew`]},r=Array.from(new Set(Object.values(n).flat())),i=Object.fromEntries(r.map(e=>[e,!0]));function a(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,{total:t.length,available:t.filter(e=>i[e]===!0).length}]))}var o={status:`healthy`,version:`DEMO`,update:{current_version:`DEMO`,latest_version:`DEMO`,update_available:!1,checked_at:new Date().toISOString(),source:`demo`,error:null},uptime:172843,telemetry:{commands_executed:1482,success_rate:`97.4%`,average_execution_time:`3.21s`},tools_status:i,all_essential_tools_available:!0,total_tools_available:r.length,total_tools_count:r.length,category_stats:a(),tool_availability_age_seconds:8,resources:{cpu_percent:18.4,memory_percent:44.7,memory_available_gb:11.2,disk_percent:31,disk_free_gb:274.5,load_avg:[1.12,1.05,.98],disk_total_gb:398,disk_used_gb:123.5,memory_total_gb:16,memory_used_gb:7.2,network_bytes_sent:2100,network_bytes_recv:1200},resources_timestamp:new Date().toISOString(),cache_stats:{evictions:12,hit_rate:`88.3%`,hits:256,max_size:1e3,misses:34,size:23}};function s(){let e=Date.now(),t=[14,16,22,19,25,18,30,27,21,18,15,13,17,20,23,18,16,19,22,18,17,20,18,16,19,21,18,17,18,18],n=[40,41,43,42,44,43,45,45,44,43,43,42,43,44,45,44,43,44,45,44,44,45,44,44,45,45,44,44,44,44],r=[1200,1500,1800,1600,2e3,1700,2200,2100,1900,1800,1600,1500,1700,2e3,2300,2100,1900,2e3,2200,2100,2e3,2200,2100,2e3,2200,2300,2100,2e3,2200,2100],i=[800,900,1e3,950,1100,1050,1200,1150,1e3,900,850,800,900,1100,1300,1200,1100,1150,1250,1200,1100,1250,1200,1100,1250,1300,1200,1100,1250,1200];return t.map((t,a)=>({t:e-(30-a)*1e4,cpu:t,mem:n[a],network_bytes_sent:r[a],network_bytes_recv:i[a]}))}function c(e,t,n,r,i,a,o){return{id:e,tool:t,params:n,source:`server`,ts:new Date(Date.now()-o*6e4),result:{stdout:r,stderr:i?``:`Error: host unreachable exit code 1`,return_code:+!i,success:i,timed_out:!1,partial_results:!1,execution_time:a,timestamp:new Date(Date.now()-o*6e4).toISOString()}}}var l=[c(1,`nmap`,{target:`10.0.0.1`},`PORT STATE SERVICE 22/tcp open ssh 80/tcp open http diff --git a/frontend/dashboard/assets/index--Sk6J_Xj.css b/frontend/dashboard/assets/index--Sk6J_Xj.css new file mode 100644 index 000000000..dd65a4aa2 --- /dev/null +++ b/frontend/dashboard/assets/index--Sk6J_Xj.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0f14;--bg-card:#13161e;--bg-card2:#191c26;--border:#252836;--text:#8b95a8;--text-h:#e2e8f0;--text-dim:#4a5568;--green:#00e676;--green-dim:#00e67626;--red:#ff4d4d;--red-dim:#ff4d4d26;--amber:#ffc107;--amber-dim:#ffc1071f;--blue:#4fc3f7;--blue-dim:#4fc3f71f;--purple:#b39ddb;--purple-dim:#b39ddb1f;--cyan:#00e5ff;--cyan-dim:#00e5ff1f;--pink:#ff4081;--pink-dim:#ff40811f;--orange:#ff9100;--orange-dim:#ff91001f;--lime:#aeea00;--lime-dim:#aeea001f;--teal:#1de9b6;--teal-dim:#1de9b61f;--indigo:#5c6bc0;--indigo-dim:#5c6bc01f;--yellow:#f1c40f;--yellow-dim:#f1c40f1f;--gray:#94a3b8;--gray-dim:#94a3b81f;--white-dim:#ffffff0d;--accent:#00e676;--accent-alt:#00e5ff;--accent-warm:#ff9100;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 12px #00e67699;--glow-blue:0 0 12px #4fc3f799;--glow-red:0 0 12px #ff4d4d99;--glow-cyan:0 0 12px #00e5ff99;--radius:8px;--radius-sm:6px;--radius-xs:4px;--t-fast:.15s;--t-base:.2s;--t-slow:.3s;--t-modal-pop:.18s cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out-expressive:cubic-bezier(.16, 1, .3, 1);--shadow-sm:0 2px 6px #0000002e;--shadow-md:0 8px 24px #00000047;--shadow-lg:0 16px 40px #00000061;--stagger-step:40ms;--bg-main:var(--bg-card);--bg-soft:var(--bg-card2);--mono:"Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"Inter", system-ui, sans-serif}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;transition:background-color var(--t-base) ease, color var(--t-base) ease;font-size:14px;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.mono{font-family:var(--mono);font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.text-blue{color:var(--blue)}.text-dim{color:var(--text-dim)}.text-h{color:var(--text-h)}.input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;padding:8px 12px;font-size:12.5px}.input:focus{border-color:var(--green)}.input::placeholder{color:var(--text-dim)}.input-full{width:100%;min-width:0}textarea.input{resize:vertical;width:100%;min-height:80px}select.input{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}select.input:-moz-focusring{color:#0000;text-shadow:0 0 0 var(--text-h)}select.input option{background:var(--bg-card2);color:var(--text-h)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes statusBlink{0%{box-shadow:0 0 6px var(--green);transform:scale(1)}35%{box-shadow:0 0 10px color-mix(in srgb, var(--green) 82%, white);transform:scale(1.35)}to{box-shadow:0 0 6px var(--green);transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.spin--sm{border:2px solid #0000;border-radius:50%;width:24px;height:24px}.spin--green{border-color:var(--green);border-top-color:#0000}@keyframes header-border-shift{0%{background-position:0 0}to{background-position:300% 0}}@keyframes rainbow-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes flourish-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes sparkle{0%{opacity:.7;transform:scale(1)rotate(0)}33%{opacity:1;transform:scale(1.3)rotate(120deg)}66%{opacity:.8;transform:scale(.9)rotate(240deg)}to{opacity:.7;transform:scale(1)rotate(360deg)}}@keyframes stagger-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:stagger-in var(--t-slow) var(--ease-out-expressive) both;animation-delay:calc(var(--stagger-index,0) * var(--stagger-step))}.press-feedback{transition:transform var(--t-fast) var(--ease-spring)}.press-feedback:active:not(:disabled){transform:scale(.96)}@keyframes empty-state-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes empty-state-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.drag-reorder-item{transition:opacity .15s,transform .15s}.drag-reorder-item--dragging{opacity:.4;transform:scale(.97)}.drag-reorder-item--drag-over{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-theme=unicorn]{--bg:#2a153f;--bg-card:#3a1e55;--bg-card2:#4d2a70;--border:#b47fe0;--text:#f7e9ff;--text-h:#fff8ff;--text-dim:#d9b7ef;--green:#7af4d4;--green-dim:#7af4d438;--red:#ff6ba9;--red-dim:#ff6ba93b;--amber:#ffd67b;--amber-dim:#ffd67b3b;--blue:#7bd8ff;--blue-dim:#7bd8ff3b;--purple:#d4a0ff;--purple-dim:#d4a0ff3d;--cyan:#8bf7ff;--cyan-dim:#8bf7ff3b;--pink:#ff8fdf;--pink-dim:#ff8fdf3d;--orange:#ffb37b;--orange-dim:#ffb37b3b;--lime:#d8ff8e;--lime-dim:#d8ff8e3b;--teal:#7ff0df;--teal-dim:#7ff0df3b;--indigo:#aab5ff;--indigo-dim:#aab5ff3b;--gray:#f0dfff;--gray-dim:#f0dfff33;--white-dim:#ffffff29;--accent:#ff8fdf;--accent-alt:#7bd8ff;--accent-warm:#ffd67b;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 18px #7af4d4bf;--glow-blue:0 0 18px #7bd8ffbf;--glow-red:0 0 18px #ff6ba9b8;--glow-cyan:0 0 18px #8bf7ffbf;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"Poppins", "Nunito", "Inter", system-ui, sans-serif}:root[data-theme=forest]{--bg:#111a15;--bg-card:#18251d;--bg-card2:#223126;--border:#3d5a46;--text:#c9dbc9;--text-h:#eff8ef;--text-dim:#8ba08f;--green:#78b866;--green-dim:#78b8662e;--red:#b96363;--red-dim:#b963632e;--amber:#d2b06d;--amber-dim:#d2b06d2e;--blue:#7fa6b8;--blue-dim:#7fa6b82e;--purple:#9d8ab7;--purple-dim:#9d8ab72e;--cyan:#6ab5aa;--cyan-dim:#6ab5aa2e;--pink:#c187a5;--pink-dim:#c187a52e;--orange:#bf8f62;--orange-dim:#bf8f622e;--lime:#a7c66a;--lime-dim:#a7c66a2e;--teal:#5da086;--teal-dim:#5da0862e;--indigo:#7f8fb8;--indigo-dim:#7f8fb82e;--gray:#a5b9a8;--gray-dim:#a5b9a826;--white-dim:#eff8ef0f;--accent:#78b866;--accent-alt:#6ab5aa;--accent-warm:#d2b06d;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 14px #78b8667a;--glow-blue:0 0 14px #7fa6b873;--glow-red:0 0 14px #b9636373;--glow-cyan:0 0 14px #6ab5aa73;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"IBM Plex Sans", "Inter", system-ui, sans-serif}:root[data-theme=solarized]{--bg:#002b36;--bg-card:#073642;--bg-card2:#0b4553;--border:#1f5968;--text:#93a1a1;--text-h:#eee8d5;--text-dim:#6f8a91;--green:#859900;--green-dim:#85990029;--red:#dc322f;--red-dim:#dc322f29;--amber:#b58900;--amber-dim:#b5890029;--blue:#268bd2;--blue-dim:#268bd229;--purple:#6c71c4;--purple-dim:#6c71c429;--cyan:#2aa198;--cyan-dim:#2aa19829;--pink:#d33682;--pink-dim:#d3368229;--orange:#cb4b16;--orange-dim:#cb4b1629;--lime:#99aa3f;--lime-dim:#99aa3f29;--teal:#3aa6a0;--teal-dim:#3aa6a029;--indigo:#7482d1;--indigo-dim:#7482d129;--gray:#93a1a1;--gray-dim:#93a1a124;--white-dim:#eee8d50f;--accent:#268bd2;--accent-alt:#2aa198;--accent-warm:#b58900;--glow-green:0 0 10px #85990073;--glow-blue:0 0 10px #268bd273;--glow-red:0 0 10px #dc322f73;--glow-cyan:0 0 10px #2aa19873}:root[data-theme=ocean-glass]{--bg:#071724;--bg-card:#0f2435;--bg-card2:#163147;--border:#2d4c63;--text:#c6d9e8;--text-h:#f4fbff;--text-dim:#7f9cb2;--green:#2ec4b6;--green-dim:#2ec4b629;--red:#ff6b6b;--red-dim:#ff6b6b29;--amber:#f4b860;--amber-dim:#f4b86029;--blue:#4aa3ff;--blue-dim:#4aa3ff29;--purple:#8c7dff;--purple-dim:#8c7dff29;--cyan:#59d6ff;--cyan-dim:#59d6ff29;--pink:#ff7ca8;--pink-dim:#ff7ca829;--orange:#ff9f68;--orange-dim:#ff9f6829;--lime:#b4d455;--lime-dim:#b4d45529;--teal:#37c8c5;--teal-dim:#37c8c529;--indigo:#7e95ff;--indigo-dim:#7e95ff29;--gray:#a8bfd1;--gray-dim:#a8bfd124;--white-dim:#f4fbff0f;--accent:#59d6ff;--accent-alt:#2ec4b6;--accent-warm:#f4b860;--glow-green:0 0 12px #2ec4b680;--glow-blue:0 0 12px #4aa3ff80;--glow-red:0 0 12px #ff6b6b80;--glow-cyan:0 0 12px #59d6ff80}:root[data-theme=crimson-night]{--bg:#0f0f15;--bg-card:#171822;--bg-card2:#212331;--border:#3e2c39;--text:#d7ccd3;--text-h:#fff3f7;--text-dim:#9a8b94;--green:#67c587;--green-dim:#67c58724;--red:#e84566;--red-dim:#e8456633;--amber:#d89c4c;--amber-dim:#d89c4c24;--blue:#5e89d9;--blue-dim:#5e89d924;--purple:#a67dd5;--purple-dim:#a67dd524;--cyan:#50b9c9;--cyan-dim:#50b9c924;--pink:#e45e9f;--pink-dim:#e45e9f29;--orange:#d97953;--orange-dim:#d9795324;--lime:#9db453;--lime-dim:#9db45324;--teal:#4bb09f;--teal-dim:#4bb09f24;--indigo:#7f87cb;--indigo-dim:#7f87cb24;--gray:#b7a9b3;--gray-dim:#b7a9b31f;--white-dim:#fff3f70d;--accent:#e84566;--accent-alt:#5e89d9;--accent-warm:#d89c4c;--glow-green:0 0 10px #67c58766;--glow-blue:0 0 10px #5e89d966;--glow-red:0 0 12px #e8456680;--glow-cyan:0 0 10px #50b9c966}:root[data-theme=retro-crt]{--bg:#050a05;--bg-card:#0a120a;--bg-card2:#0f1a0f;--border:#204320;--text:#71c971;--text-h:#c4ffc4;--text-dim:#4f8e4f;--green:#64ff64;--green-dim:#64ff6429;--red:#ff6c6c;--red-dim:#ff6c6c29;--amber:#e8d36a;--amber-dim:#e8d36a29;--blue:#67b3ff;--blue-dim:#67b3ff29;--purple:#b08bff;--purple-dim:#b08bff29;--cyan:#66f0ff;--cyan-dim:#66f0ff29;--pink:#ff85cc;--pink-dim:#ff85cc29;--orange:#ffb26a;--orange-dim:#ffb26a29;--lime:#c8ff5d;--lime-dim:#c8ff5d29;--teal:#59d8ae;--teal-dim:#59d8ae29;--indigo:#8ea4ff;--indigo-dim:#8ea4ff29;--gray:#87b887;--gray-dim:#87b8871f;--white-dim:#c4ffc40d;--accent:#64ff64;--accent-alt:#66f0ff;--accent-warm:#e8d36a;--glow-green:0 0 12px #64ff6499;--glow-blue:0 0 10px #67b3ff73;--glow-red:0 0 10px #ff6c6c73;--glow-cyan:0 0 12px #66f0ff80}:root[data-theme=nord]{--bg:#2e3440;--bg-card:#3b4252;--bg-card2:#434c5e;--border:#4c566a;--text:#d8dee9;--text-h:#eceff4;--text-dim:#9aa4ba;--green:#a3be8c;--green-dim:#a3be8c29;--red:#bf616a;--red-dim:#bf616a29;--amber:#ebcb8b;--amber-dim:#ebcb8b29;--blue:#81a1c1;--blue-dim:#81a1c129;--purple:#b48ead;--purple-dim:#b48ead29;--cyan:#88c0d0;--cyan-dim:#88c0d029;--pink:#d38cae;--pink-dim:#d38cae29;--orange:#d08770;--orange-dim:#d0877029;--lime:#b7c97a;--lime-dim:#b7c97a29;--teal:#8fbcbb;--teal-dim:#8fbcbb29;--indigo:#8fa1d1;--indigo-dim:#8fa1d129;--gray:#b7bfcc;--gray-dim:#b7bfcc24;--white-dim:#eceff40f;--accent:#88c0d0;--accent-alt:#81a1c1;--accent-warm:#ebcb8b;--glow-green:0 0 10px #a3be8c6b;--glow-blue:0 0 10px #81a1c16b;--glow-red:0 0 10px #bf616a6b;--glow-cyan:0 0 10px #88c0d06b}:root[data-theme=dracula]{--bg:#282a36;--bg-card:#2f3242;--bg-card2:#383a4a;--border:#44475a;--text:#cad0e6;--text-h:#f8f8f2;--text-dim:#6272a4;--green:#50fa7b;--green-dim:#50fa7b2e;--red:#f55;--red-dim:#ff55552e;--amber:#f1fa8c;--amber-dim:#f1fa8c29;--blue:#8be9fd;--blue-dim:#8be9fd2e;--purple:#bd93f9;--purple-dim:#bd93f933;--cyan:#7fdbff;--cyan-dim:#7fdbff2e;--pink:#ff79c6;--pink-dim:#ff79c633;--orange:#ffb86c;--orange-dim:#ffb86c2e;--lime:#b5f16d;--lime-dim:#b5f16d2e;--teal:#69dfc9;--teal-dim:#69dfc92e;--indigo:#8a94e8;--indigo-dim:#8a94e82e;--gray:#a2a8c3;--gray-dim:#a2a8c324;--white-dim:#f8f8f20f;--accent:#bd93f9;--accent-alt:#8be9fd;--accent-warm:#ffb86c;--glow-green:0 0 14px #50fa7b80;--glow-blue:0 0 14px #8be9fd80;--glow-red:0 0 14px #ff555580;--glow-cyan:0 0 14px #7fdbff80}:root[data-theme=gruvbox]{--bg:#282828;--bg-card:#32302f;--bg-card2:#3c3836;--border:#504945;--text:#d5c4a1;--text-h:#ebdbb2;--text-dim:#a89984;--green:#b8bb26;--green-dim:#b8bb262e;--red:#fb4934;--red-dim:#fb49342e;--amber:#fabd2f;--amber-dim:#fabd2f2e;--blue:#83a598;--blue-dim:#83a59829;--purple:#d3869b;--purple-dim:#d3869b2e;--cyan:#8ec07c;--cyan-dim:#8ec07c29;--pink:#ea6962;--pink-dim:#ea69622e;--orange:#fe8019;--orange-dim:#fe80192e;--lime:#c2c14d;--lime-dim:#c2c14d2e;--teal:#6f9a8d;--teal-dim:#6f9a8d29;--indigo:#7c8aa8;--indigo-dim:#7c8aa829;--gray:#928374;--gray-dim:#92837424;--white-dim:#ebdbb20d;--accent:#fe8019;--accent-alt:#83a598;--accent-warm:#fabd2f;--glow-green:0 0 12px #b8bb2666;--glow-blue:0 0 12px #83a59866;--glow-red:0 0 12px #fb49346b;--glow-cyan:0 0 12px #8ec07c66}:root[data-theme=folio]{--bg:#f4ecdc;--bg-card:#faf5e9;--bg-card2:#efe6d3;--border:#ddd0b8;--text:#5b5340;--text-h:#3a342b;--text-dim:#8a8068;--green:#1f8a52;--green-dim:#1f8a5224;--red:#b3392c;--red-dim:#b3392c24;--amber:#b5780f;--amber-dim:#b5780f24;--blue:#2270a6;--blue-dim:#2270a624;--purple:#7a5ea8;--purple-dim:#7a5ea824;--cyan:#2c8a83;--cyan-dim:#2c8a8324;--pink:#a6455a;--pink-dim:#a6455a24;--orange:#c0612b;--orange-dim:#c0612b24;--lime:#8a9b3f;--lime-dim:#8a9b3f24;--teal:#24756f;--teal-dim:#24756f24;--indigo:#6a6ab0;--indigo-dim:#6a6ab024;--gray:#8a8068;--gray-dim:#8a80681f;--white-dim:#3a342b08;--accent:#0f7a5c;--accent-alt:#2270a6;--accent-warm:#b5780f;--glow-green:0 0 0 #0000;--glow-blue:0 0 0 #0000;--glow-red:0 0 0 #0000;--glow-cyan:0 0 0 #0000;--shadow-sm:0 1px 4px #3a342b14;--shadow-md:0 4px 14px #3a342b1f;--shadow-lg:0 10px 28px #3a342b29}:root[data-theme=tokyo]{--bg:#1a1b26;--bg-card:#20212e;--bg-card2:#292a3d;--border:#3b3f58;--text:#a9b1d6;--text-h:#c0caf5;--text-dim:#565f89;--green:#9ece6a;--green-dim:#9ece6a29;--red:#f7768e;--red-dim:#f7768e2e;--amber:#e0af68;--amber-dim:#e0af6829;--blue:#7aa2f7;--blue-dim:#7aa2f729;--purple:#bb9af7;--purple-dim:#bb9af72e;--cyan:#7dcfff;--cyan-dim:#7dcfff29;--pink:#e6a6e0;--pink-dim:#e6a6e02e;--orange:#ff9e64;--orange-dim:#ff9e6429;--lime:#b4d273;--lime-dim:#b4d27329;--teal:#2ac3de;--teal-dim:#2ac3de2e;--indigo:#6183db;--indigo-dim:#6183db29;--gray:#737aa2;--gray-dim:#737aa224;--white-dim:#c0caf50d;--accent:#7aa2f7;--accent-alt:#7dcfff;--accent-warm:#ff9e64;--glow-green:0 0 12px #9ece6a6b;--glow-blue:0 0 14px #7aa2f780;--glow-red:0 0 12px #f7768e73;--glow-cyan:0 0 14px #7dcfff80}:root[data-theme=catppuccin]{--bg:#1e1e2e;--bg-card:#232334;--bg-card2:#302d41;--border:#45475a;--text:#bac2de;--text-h:#cdd6f4;--text-dim:#6c7086;--green:#a6e3a1;--green-dim:#a6e3a129;--red:#f38ba8;--red-dim:#f38ba82e;--amber:#f9e2af;--amber-dim:#f9e2af29;--blue:#89b4fa;--blue-dim:#89b4fa29;--purple:#cba6f7;--purple-dim:#cba6f72e;--cyan:#89dceb;--cyan-dim:#89dceb29;--pink:#f5c2e7;--pink-dim:#f5c2e72e;--orange:#fab387;--orange-dim:#fab38729;--lime:#a6da95;--lime-dim:#a6da9529;--teal:#94e2d5;--teal-dim:#94e2d529;--indigo:#b4befe;--indigo-dim:#b4befe29;--gray:#6c7086;--gray-dim:#6c708624;--white-dim:#cdd6f40d;--accent:#cba6f7;--accent-alt:#89b4fa;--accent-warm:#fab387;--glow-green:0 0 12px #a6e3a166;--glow-blue:0 0 12px #89b4fa6b;--glow-red:0 0 12px #f38ba86b;--glow-cyan:0 0 12px #89dceb6b}:root[data-theme=synthwave]{--bg:#1a0b2e;--bg-card:#211238;--bg-card2:#2c1a47;--border:#4a2d6b;--text:#e0aee0;--text-h:#fdeff9;--text-dim:#8b7a9e;--green:#72f1b8;--green-dim:#72f1b833;--red:#fe4450;--red-dim:#fe445038;--amber:#fede5d;--amber-dim:#fede5d33;--blue:#6a8dff;--blue-dim:#6a8dff33;--purple:#b967ff;--purple-dim:#b967ff38;--cyan:#36f9f6;--cyan-dim:#36f9f638;--pink:#f92aad;--pink-dim:#f92aad3d;--orange:#ff8b39;--orange-dim:#ff8b3933;--lime:#baff6b;--lime-dim:#baff6b33;--teal:#4de8c2;--teal-dim:#4de8c233;--indigo:#8a6aff;--indigo-dim:#8a6aff33;--gray:#8b7a9e;--gray-dim:#8b7a9e29;--white-dim:#fdeff914;--accent:#f92aad;--accent-alt:#36f9f6;--accent-warm:#ff8b39;--glow-green:0 0 16px #72f1b88c;--glow-blue:0 0 16px #6a8dff8c;--glow-red:0 0 16px #fe445094;--glow-cyan:0 0 16px #36f9f699}:root[data-theme=rose]{--bg:#191724;--bg-card:#1f1d2e;--bg-card2:#26233a;--border:#403d52;--text:#908caa;--text-h:#e0def4;--text-dim:#6e6a86;--green:#31748f;--green-dim:#31748f29;--red:#eb6f92;--red-dim:#eb6f922e;--amber:#f6c177;--amber-dim:#f6c17729;--blue:#9ccfd8;--blue-dim:#9ccfd829;--purple:#c4a7e7;--purple-dim:#c4a7e72e;--cyan:#7fb8c4;--cyan-dim:#7fb8c429;--pink:#ebbcba;--pink-dim:#ebbcba2e;--orange:#d7827e;--orange-dim:#d7827e29;--lime:#9cb668;--lime-dim:#9cb66829;--teal:#4a8a9e;--teal-dim:#4a8a9e29;--indigo:#7a7ab8;--indigo-dim:#7a7ab829;--gray:#6e6a86;--gray-dim:#6e6a8624;--white-dim:#e0def40d;--accent:#ebbcba;--accent-alt:#9ccfd8;--accent-warm:#f6c177;--glow-green:0 0 10px #31748f61;--glow-blue:0 0 10px #9ccfd866;--glow-red:0 0 10px #eb6f926b;--glow-cyan:0 0 10px #9ccfd866}:root[data-theme=frost]{--bg:#eef3f7;--bg-card:#f7fafc;--bg-card2:#e4ecf2;--border:#cdd8e2;--text:#3d5165;--text-h:#1d2b3a;--text-dim:#7c93a5;--green:#1f8a6b;--green-dim:#1f8a6b24;--red:#c0392b;--red-dim:#c0392b24;--amber:#b5780f;--amber-dim:#b5780f24;--blue:#2f7fd1;--blue-dim:#2f7fd124;--purple:#6a6ab8;--purple-dim:#6a6ab824;--cyan:#5ec8d8;--cyan-dim:#5ec8d824;--pink:#b8577a;--pink-dim:#b8577a24;--orange:#c0612b;--orange-dim:#c0612b24;--lime:#7e9b3f;--lime-dim:#7e9b3f24;--teal:#2c8a8a;--teal-dim:#2c8a8a24;--indigo:#5a68b0;--indigo-dim:#5a68b024;--gray:#7c93a5;--gray-dim:#7c93a51f;--white-dim:#1d2b3a08;--accent:#2f7fd1;--accent-alt:#5ec8d8;--accent-warm:#b5780f;--glow-green:0 0 0 #0000;--glow-blue:0 0 0 #0000;--glow-red:0 0 0 #0000;--glow-cyan:0 0 0 #0000;--shadow-sm:0 1px 4px #1d2b3a14;--shadow-md:0 4px 14px #1d2b3a1f;--shadow-lg:0 10px 28px #1d2b3a29}:root[data-theme=retro-crt] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 6%, transparent) 0px, color-mix(in srgb, var(--accent) 6%, transparent) 1px, transparent 1px, transparent 3px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 26%), radial-gradient(circle at 90% 12%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 32%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 40%), var(--bg)}:root[data-theme=solarized] .layout{background:radial-gradient(circle at 8% 7%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 30%), radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 54% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=ocean-glass] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent-alt) 7%, transparent) 0px, color-mix(in srgb, var(--accent-alt) 7%, transparent) 1px, transparent 1px, transparent 9px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 28%), radial-gradient(circle at 89% 10%, color-mix(in srgb, var(--accent-alt) 14%, transparent), transparent 33%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=crimson-night] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 17%, transparent), transparent 27%), radial-gradient(circle at 89% 10%, color-mix(in srgb, var(--accent-alt) 12%, transparent), transparent 34%), radial-gradient(circle at 54% 96%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 41%), var(--bg)}:root[data-theme=nord] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 43%), var(--bg)}:root[data-theme=forest] .layout{background:repeating-radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent) 5%, transparent) 0px, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px, transparent 9px), radial-gradient(circle at 7% 6%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 28%), radial-gradient(circle at 90% 9%, color-mix(in srgb, var(--accent-alt) 16%, transparent), transparent 33%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 13%, transparent), transparent 42%), var(--bg)}:root[data-theme=unicorn] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 20%, transparent), transparent 33%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 16%, transparent), transparent 42%), radial-gradient(circle at 25% 55%, color-mix(in srgb, var(--purple) 14%, transparent), transparent 30%), radial-gradient(circle at 75% 65%, color-mix(in srgb, var(--pink) 12%, transparent), transparent 32%), var(--bg)}:root[data-theme=unicorn] .topbar{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 12%, transparent), color-mix(in srgb, var(--accent-alt) 11%, transparent)), var(--bg-card);border-bottom-color:color-mix(in srgb, var(--accent) 28%, var(--border))}:root[data-theme=dracula] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=gruvbox] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent) 0px, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px, transparent 3px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 42%), var(--bg)}:root[data-theme=folio] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 6%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 5%, transparent), transparent 44%), var(--bg)}:root[data-theme=tokyo] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 42%), var(--bg)}:root[data-theme=catppuccin] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 29%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 12%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 43%), var(--bg)}:root[data-theme=synthwave] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, transparent) 0px, color-mix(in srgb, var(--accent) 7%, transparent) 1px, transparent 1px, transparent 4px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 26%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 15%, transparent), transparent 32%), radial-gradient(circle at 50% 100%, color-mix(in srgb, var(--accent-warm) 12%, transparent), transparent 38%), var(--bg)}:root[data-theme=rose] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 10%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 43%), var(--bg)}:root[data-theme=frost] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 6%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 5%, transparent), transparent 44%), var(--bg)}:root[data-reduce-textures="1"] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 34%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 4%, transparent), transparent 38%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 3%, transparent), transparent 46%), var(--bg)!important}.topbar:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));background-size:300%;height:1.5px;animation:7s linear infinite header-border-shift;position:absolute;bottom:-1px;left:0;right:0}.brand-text-1{color:var(--accent)}.brand-text-2{color:var(--accent-alt)}@media (width>=769px){.sidebar{position:relative}}.sidebar:after{content:"";background:linear-gradient(180deg, transparent, var(--accent), var(--accent-alt), var(--accent), transparent);width:1px;animation:4s infinite flourish-pulse;position:absolute;top:0;bottom:0;right:-1px}.sidebar-nav--bottom:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent), transparent);height:1.5px;animation:4s infinite flourish-pulse;position:absolute;top:-1px;left:0;right:0}:root[data-theme=unicorn] .topbar:after,:root[data-theme=synthwave] .topbar:after{background-position:0%;background-size:200%;animation-name:rainbow-shift;animation-duration:4s}:root[data-theme=unicorn] .sidebar-nav--bottom:before,:root[data-theme=synthwave] .sidebar-nav--bottom:before{background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), transparent);background-size:200%;animation-name:rainbow-shift;animation-duration:4s}:root[data-reduce-textures="1"] .topbar:after,:root[data-reduce-textures="1"] .sidebar:after,:root[data-reduce-textures="1"] .sidebar-nav--bottom:before{display:none}:root[data-theme=rose] .topbar:after{animation-duration:14s}:root[data-theme=rose] .sidebar:after,:root[data-theme=rose] .sidebar-nav--bottom:before{animation-duration:6s}:root[data-theme=unicorn] .stat-card,:root[data-theme=unicorn] .registry-card{position:relative;overflow:hidden}:root[data-theme=unicorn] .stat-card:before,:root[data-theme=unicorn] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), transparent);height:2px;animation:3.5s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=unicorn] .btn-primary{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));color:var(--bg);background-size:200%;border-color:#0000;animation:5s infinite rainbow-shift}:root[data-theme=unicorn] .btn-primary:hover{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));filter:brightness(1.12);background-size:200%}:root[data-theme=unicorn] .status-dot.online{animation:3.2s infinite sparkle}:root[data-theme=unicorn] .status-dot.online.status-dot--pulse{animation:.7s ease-out statusBlink}:root[data-theme=unicorn] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-alt))}:root[data-theme=unicorn] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-alt), var(--accent-warm))}:root[data-theme=rose] .stat-card,:root[data-theme=rose] .registry-card{position:relative;overflow:hidden}:root[data-theme=rose] .stat-card:before,:root[data-theme=rose] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), transparent);opacity:.6;height:1px;animation:6s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=synthwave] .stat-card,:root[data-theme=synthwave] .registry-card{position:relative;overflow:hidden}:root[data-theme=synthwave] .stat-card:before,:root[data-theme=synthwave] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), transparent);height:2px;animation:2.5s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=synthwave] .btn-primary{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));color:var(--bg);background-size:200%;border-color:#0000;animation:3s infinite rainbow-shift}:root[data-theme=synthwave] .btn-primary:hover{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));filter:brightness(1.15);background-size:200%}:root[data-theme=synthwave] .status-dot.online{box-shadow:0 0 10px var(--green), 0 0 4px var(--accent);animation:2s infinite flourish-pulse}:root[data-theme=synthwave] .status-dot.online.status-dot--pulse{animation:.7s ease-out statusBlink}:root[data-theme=synthwave] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-alt))}:root[data-theme=synthwave] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-alt), var(--accent-warm))}.token-gate{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.token-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:16px;width:360px;padding:40px 36px;display:flex}.token-card h2{color:var(--text-h);font-size:18px;font-weight:600}.token-card p{color:var(--text);font-size:13px}.token-card code{background:var(--bg-card2);border:1px solid var(--border);color:var(--green);border-radius:4px;padding:2px 6px;font-size:12px}.token-input-row{gap:6px;width:100%;display:flex}.token-input-row input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:13px}.token-input-row input:focus{border-color:var(--green)}.token-err{color:var(--red);font-size:12px;font-family:var(--mono)}.toast-stack{z-index:320;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:64px;right:18px}.toast{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent-alt) 6%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent);min-width:260px;max-width:360px;color:var(--text-h);font-size:12px;font-family:var(--mono);box-shadow:0 12px 30px #00000059, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;padding:10px 12px 10px 14px;line-height:1.4;animation:.18s ease-out toast-in;position:relative}.toast:before{content:"";background:color-mix(in srgb, var(--accent) 55%, var(--text-dim));border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.toast-success{border-color:color-mix(in srgb, var(--success) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--success) 10%, transparent), color-mix(in srgb, var(--accent-alt) 5%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-success:before{background:var(--success)}.toast-error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--danger) 12%, transparent), color-mix(in srgb, var(--danger) 5%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-error:before{background:var(--danger)}.toast-info{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 11%, transparent), color-mix(in srgb, var(--accent-alt) 7%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-info:before{background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.toast-stack{bottom:68px;left:12px;right:12px}.toast{width:100%;min-width:0;max-width:none}}.theme-picker-modal{max-width:760px}.theme-picker-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.theme-picker-toggle-row{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:inline-flex}.theme-picker-toggle-row input{margin:0}.theme-picker-toggle-text{color:var(--text)}.theme-picker-card{border:1px solid var(--border);background:var(--bg-card2);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:10px;transition:border-color .12s,background .12s;display:flex}.theme-picker-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-card2))}.theme-picker-card.active{border-color:color-mix(in srgb, var(--green) 45%, var(--border));background:color-mix(in srgb, var(--green) 10%, var(--bg-card2))}.theme-picker-card-label{color:var(--text-h);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.theme-picker-card-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--bg);background:var(--text-dim);border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:700}.theme-picker-card-hint{color:var(--text-dim);font-size:11px}@media (width<=768px){.theme-picker-grid{grid-template-columns:1fr}}.sheet--centered.information-modal{border-color:color-mix(in srgb, var(--accent) 32%, var(--border));background:radial-gradient(circle at 88% -12%, color-mix(in srgb, var(--accent-alt) 16%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, var(--bg-card)) 0%, var(--bg-card) 100%);max-width:700px}.information-modal-buttons{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.report-bubble{z-index:150;border:1px solid var(--border);background:var(--bg-card,#1a1a2e);min-width:240px;max-width:340px;color:var(--text,#e2e8f0);font-size:12px;font-family:var(--mono);box-shadow:0 16px 40px #00000073, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.45;animation:.2s cubic-bezier(.22,1,.36,1) bubble-in;display:flex;position:fixed;top:50px;right:16px}.report-bubble:before{content:"";background:var(--accent,#6c63ff);border-radius:3px;width:3px;position:absolute;top:10px;bottom:10px;left:0}.report-bubble--generating:before{background:var(--accent,#6c63ff)}.report-bubble--done:before{background:var(--success,#4ade80)}.report-bubble--error:before{background:var(--danger,#f87171)}.report-bubble--generating{border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.report-bubble--done{border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.report-bubble--error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.report-bubble-icon{color:var(--text-dim,#94a3b8);flex-shrink:0;margin-top:1px}.report-bubble--done .report-bubble-icon{color:var(--success,#4ade80)}.report-bubble--error .report-bubble-icon{color:var(--danger,#f87171)}.report-bubble-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.report-bubble-body--clickable{cursor:pointer;border-radius:6px;margin:-4px -6px;padding:4px 6px;transition:background .15s}.report-bubble-body--clickable:hover{background:color-mix(in srgb, var(--success,#4ade80) 10%, transparent)}.report-bubble-title{color:var(--text-h,#f1f5f9);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.report-bubble-label{color:var(--text,#e2e8f0);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.report-bubble-path{color:var(--success,#4ade80);word-break:break-all;font-size:11px}.report-bubble-error{color:var(--danger,#f87171);word-break:break-all;font-size:11px}.report-bubble-dismiss{width:20px;height:20px;color:var(--text-dim,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;transition:background .15s,color .15s;display:flex}.report-bubble-dismiss:hover{background:color-mix(in srgb, var(--text-dim) 15%, transparent);color:var(--text,#e2e8f0)}@keyframes bubble-in{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);width:13rem;transition:width .18s cubic-bezier(.16, 1, .3, 1), background-color var(--t-base) ease, border-color var(--t-base) ease;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden auto}.sidebar--collapsed{width:3.25rem}.sidebar-collapse-row{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:flex-end;padding:8px;display:flex}.sidebar--collapsed .sidebar-collapse-row{justify-content:center}.sidebar-collapse-btn{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:flex}.sidebar-collapse-btn:hover{background:color-mix(in srgb, var(--accent) 10%, var(--bg-card2));color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 26%, var(--border))}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex}.sidebar-nav--bottom{border-top:1px solid var(--border);transition:border-color var(--t-base) ease;flex:none;margin-top:auto;position:relative}.sidebar-nav-item{color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:flex;position:relative}.sidebar-nav-item.collapsed{justify-content:center;padding:8px}.sidebar-nav-item:hover{background:color-mix(in srgb, var(--accent) 10%, var(--bg-card2));color:var(--text-h)}.sidebar-nav-item.active{color:color-mix(in srgb, var(--accent) 82%, var(--text-h));background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.sidebar-nav-item:before{content:"";background:var(--accent);border-radius:2px;width:3px;height:60%;transition:transform .18s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:-4px;transform:translateY(-50%)scaleY(0)}.sidebar-nav-item.active:before{transform:translateY(-50%)scaleY(1)}.sidebar-nav-icon{flex-shrink:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.sidebar-nav-item.collapsed:hover .sidebar-nav-icon{transform:scale(1.18)translateY(-1px)}.sidebar-nav-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=768px){.sidebar{z-index:150;width:13rem;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--mobile-open{transform:translate(0)}.sidebar-collapse-row{display:none}}.dashboard-toolbar{justify-content:flex-end;gap:8px;display:flex}.dashboard-empty-state{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:40px 0;font-size:13px;display:flex}.dashboard-widget-frame{border:1px dashed color-mix(in srgb, var(--accent) 40%, var(--border));border-radius:var(--radius);cursor:grab;padding:8px;position:relative}.dashboard-widget-frame.drag-reorder-item--dragging{cursor:grabbing}.dashboard-widget-toolbar{align-items:center;gap:8px;padding:4px 6px 8px;display:flex}.dashboard-widget-grip{color:var(--text-dim);align-items:center;display:flex}.dashboard-widget-frame-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);flex:1;font-size:11px;font-weight:600}.dashboard-widget-remove:hover{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 48%, var(--border))}.dashboard-add-widget-list{flex-direction:column;gap:6px;margin-top:12px;display:flex}.dashboard-add-widget-item{background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.dashboard-add-widget-item:hover{background:color-mix(in srgb, var(--accent) 11%, var(--bg-card2));border-color:color-mix(in srgb, var(--accent) 48%, var(--border))}.dashboard-add-widget-icon{color:var(--accent);flex-shrink:0;display:flex}.dashboard-add-widget-text{flex-direction:column;flex:1;gap:2px;display:flex}.dashboard-add-widget-label{color:var(--text-h);font-size:13px;font-weight:600}.dashboard-add-widget-desc{color:var(--text-dim);font-size:11px}.section-title-icon{flex-shrink:0}.widget-list{padding:8px 0}.widget-list-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 18px;font-size:12px;display:flex}.widget-list-row:last-child{border-bottom:none}.widget-list-row-main{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sheet--centered.command-palette{width:min(760px,95vw);max-height:72vh}.command-palette-input-wrap{border-bottom:1px solid var(--border);color:var(--text-dim);align-items:center;gap:8px;padding:12px 14px;display:flex}.command-palette-input{width:100%;color:var(--text-h);background:0 0;border:none;outline:none;font-size:13px}.command-palette-list{max-height:calc(72vh - 52px);overflow-y:auto}.command-palette-item{border:none;border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.command-palette-item:hover,.command-palette-item.active{background:var(--bg-card2)}.command-palette-label{color:var(--text-h);font-size:12px}.command-palette-hint{color:var(--text-dim);flex-shrink:0;margin-left:12px;font-size:11px}.command-palette-empty{color:var(--text-dim);padding:14px;font-size:12px}@media (width<=600px){.command-palette{width:min(94vw,860px)}}.sheet--centered.confirm-action-modal{border-color:color-mix(in srgb, var(--danger) 30%, var(--border));background:radial-gradient(circle at 85% -10%, color-mix(in srgb, var(--danger) 18%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--danger) 8%, var(--bg-card)) 0%, var(--bg-card) 100%);max-width:520px}.confirm-action-impact{gap:8px;margin-top:2px;display:grid}.confirm-action-impact-item{border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent);color:color-mix(in srgb, var(--danger) 70%, var(--text));border-radius:8px;padding:10px 11px;font-size:13px}.confirm-action-buttons{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.chat-fab{z-index:1200;background:var(--bg-card2);height:34px;color:var(--accent);border:1px solid var(--border);cursor:pointer;font-family:var(--mono);letter-spacing:.03em;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:600;transition:transform .15s,box-shadow .15s,border-color .15s,color .15s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0006}.chat-fab:hover{border-color:var(--accent);transform:translate(-50%)translateY(-1px);box-shadow:0 4px 14px #00000080}.chat-widget{z-index:1200;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:280px;min-height:350px;display:flex;position:fixed;bottom:24px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 32px #00000080}.chat-resize-top{cursor:ns-resize;z-index:10;height:6px;position:absolute;top:0;left:8px;right:8px}.chat-resize-left{cursor:ew-resize;z-index:10;width:6px;position:absolute;top:8px;bottom:8px;left:0}.chat-layout{flex:1;height:100%;display:flex;overflow:hidden}.chat-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;width:180px;min-width:140px;display:flex}.chat-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.chat-sidebar-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.chat-new-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;align-items:center;padding:2px 4px;display:flex}.chat-new-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-session-list{flex:1;padding:4px 0;overflow-y:auto}.chat-session-empty{color:var(--text-dim);text-align:center;padding:12px;font-size:11px}.chat-sidebar-footer{border-top:1px solid var(--border);padding:8px 10px}.chat-delete-all-btn{border:1px solid var(--border);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;transition:color .15s,border-color .15s,background .15s;display:flex}.chat-delete-all-btn:hover{color:var(--danger);border-color:var(--danger);background:#f8717114}.chat-session-item{cursor:pointer;border-radius:4px;align-items:center;gap:6px;min-width:0;margin:2px 4px;padding:6px 10px;transition:background .1s;display:flex}.chat-session-item:hover{background:var(--bg-card2)}.chat-session-item.active{background:var(--bg-card2);border-left:2px solid var(--accent)}.chat-session-icon{color:var(--text-dim);flex-shrink:0}.chat-session-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.chat-session-delete{cursor:pointer;color:var(--text-dim);opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;align-items:center;padding:2px;display:flex}.chat-session-item:hover .chat-session-delete{opacity:1}.chat-session-delete:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.chat-sidebar-toggle{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 4px;display:flex}.chat-sidebar-toggle:hover{color:var(--accent);border-color:var(--accent)}.chat-header-info{text-align:left;min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-direction:column;flex:1;gap:1px;padding:2px 4px;transition:background .15s;display:flex}.chat-header-info:hover{background:var(--bg-card2)}.chat-header-title{color:var(--text);font-size:12px;font-weight:700}.chat-context-badge{background:rgba(var(--accent-rgb,56,189,248), .15);color:var(--accent);border-radius:3px;align-self:flex-start;padding:1px 5px;font-size:9px}.chat-session-label{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.chat-close-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;display:flex}.chat-close-btn:hover{color:var(--text);background:var(--bg-card2)}.chat-message-list-wrapper{flex:1;min-height:0;position:relative;overflow:hidden}.chat-message-list{flex-direction:column;gap:8px;height:100%;padding:12px 10px;display:flex;overflow-y:auto}.chat-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px 20px;display:flex}.chat-empty-icon{color:var(--accent);opacity:.7;margin-bottom:4px}.chat-empty-title{color:var(--text);letter-spacing:.02em;margin:0;font-size:14px;font-weight:700}.chat-empty-sub{color:var(--text-dim);max-width:220px;margin:0 0 8px;font-size:11px;line-height:1.5}.chat-empty-suggestions{flex-wrap:wrap;justify-content:center;gap:6px;max-width:300px;display:flex}.chat-empty-chip{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);color:var(--accent);cursor:pointer;border-radius:20px;padding:4px 12px;font-family:inherit;font-size:11px;font-weight:500;transition:background .15s,box-shadow .15s}.chat-empty-chip:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--accent) 18%, transparent)}.chat-message{flex-direction:column;display:flex}.chat-message--user{align-items:flex-end}.chat-message--assistant{align-items:flex-start}.chat-message-bubble{word-break:break-word;border-radius:10px;max-width:85%;padding:8px 11px;font-size:13px;line-height:1.5}.chat-message--user .chat-message-bubble{background:var(--accent);color:var(--bg);border-bottom-right-radius:3px}.chat-message--assistant .chat-message-bubble{background:var(--bg-card2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:3px}.chat-message--error .chat-message-bubble{border-color:var(--danger);color:var(--danger)}.chat-message-bubble--tool{max-width:none;background:0 0!important;border:none!important;padding:0!important}.chat-typing-indicator{align-items:center;gap:4px;height:16px;display:flex}.chat-typing-indicator span{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-bounce}.chat-typing-indicator span:nth-child(2){animation-delay:.2s}.chat-typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.chat-retry-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-top:6px;padding:2px 8px;font-size:11px;display:block}.chat-retry-btn:hover{opacity:.8}.chat-message-stats{color:var(--text-dim);margin-top:2px;padding-left:4px;font-family:monospace;font-size:10px}.chat-message-markdown{font-size:13px}.chat-message-markdown .chat-md-p{margin:0 0 6px}.chat-message-markdown .chat-md-p:last-child{margin-bottom:0}.chat-message-markdown .chat-md-list{margin:4px 0 4px 16px;padding:0}.chat-message-markdown .chat-md-list li{margin-bottom:2px}.chat-message-markdown .chat-inline-code{background:color-mix(in srgb, var(--text) 12%, transparent);border-radius:3px;padding:1px 4px;font-family:monospace;font-size:12px}.chat-message-markdown h3,.chat-message-markdown h4{margin:6px 0 4px;font-size:13px}.chat-input-area{border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.chat-textarea{resize:none;background:var(--bg-card2);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:12px;line-height:1.5;overflow-y:auto}.chat-textarea:focus{border-color:var(--accent)}.chat-textarea::placeholder{color:var(--text-dim)}.chat-input-actions{align-items:center;gap:6px;display:flex}.chat-send-btn{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;display:flex}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-send-btn:not(:disabled):hover{opacity:.85}.chat-stop-btn{background:var(--danger)}@media (width<=640px){.chat-widget{border-radius:0;width:100vw!important;height:100dvh!important;bottom:0!important;left:0!important;transform:none!important}.chat-fab{bottom:16px;left:50%;transform:translate(-50%)}}.chat-thinking-indicator{color:var(--text-dim);font-size:12px;animation:1.5s ease-in-out infinite chat-thinking-pulse}@keyframes chat-thinking-pulse{0%,to{opacity:.4}50%{opacity:1}}.chat-message-bubble{position:relative}.chat-copy-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;opacity:0;border-radius:4px;align-items:center;padding:3px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.chat-message-bubble:hover .chat-copy-btn{opacity:1}.chat-copy-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-session-rename-input{min-width:0;color:var(--text);background:var(--bg-card2);border:1px solid var(--accent);border-radius:3px;outline:none;flex:1;padding:1px 4px;font-family:inherit;font-size:11px}.chat-message-meta{align-items:center;gap:8px;max-width:85%;margin-top:2px;padding-left:4px;display:flex}.chat-message-meta .chat-message-time{margin-left:auto}.chat-message-time{color:var(--text-dim);font-family:monospace;font-size:10px}.chat-scroll-bottom-pill{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;z-index:5;border-radius:16px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;transition:border-color .15s,color .15s;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000004d}.chat-scroll-bottom-pill:hover{color:var(--accent);border-color:var(--accent)}.chat-emoji-wrapper{position:relative}.chat-emoji-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:6px;display:flex}.chat-emoji-btn:hover{color:var(--accent)}.chat-emoji-btn:disabled{opacity:.4;cursor:default}.chat-emoji-picker{background:var(--bg-card);border:1px solid var(--border);z-index:20;border-radius:8px;grid-template-columns:repeat(8,1fr);gap:2px;width:260px;margin-bottom:6px;padding:6px;display:grid;position:absolute;bottom:100%;right:0;box-shadow:0 4px 16px #0006}.chat-emoji-item{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;font-size:16px;line-height:1;display:flex}.chat-emoji-item:hover{background:var(--bg-card2)}.chat-tool-call-card{background:var(--bg-card);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-left:3px solid var(--accent);max-width:340px;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 8%, transparent);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;font-size:12px;display:flex}.chat-tool-call-header{align-items:center;gap:7px;display:flex}.chat-tool-call-icon{color:var(--accent);opacity:.8;flex-shrink:0}.chat-tool-call-name{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);font-size:11px;font-weight:700}.chat-tool-call-desc{color:var(--text-dim);margin:0;font-size:11px;line-height:1.45}.chat-tool-call-args{background:var(--bg);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:3px;padding:6px 8px;display:flex}.chat-tool-call-arg{font-size:11px;font-family:var(--mono);grid-template-columns:auto 1fr;gap:8px;line-height:1.4;display:grid}.chat-tool-call-arg-key{color:var(--text-dim);flex-shrink:0}.chat-tool-call-arg-val{color:var(--text);word-break:break-all}.chat-tool-call-warning{letter-spacing:.02em;color:var(--warning,#fbbf24);background:color-mix(in srgb, var(--warning,#fbbf24) 8%, transparent);border:1px solid color-mix(in srgb, var(--warning,#fbbf24) 25%, transparent);border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:10px;font-weight:500;display:flex}.chat-tool-call-actions{gap:6px;margin-top:2px;display:flex}.chat-tool-call-btn{cursor:pointer;letter-spacing:.03em;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-family:inherit;font-size:11px;font-weight:600;transition:background .15s,box-shadow .15s,opacity .15s;display:flex}.chat-tool-call-btn--approve{background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent)}.chat-tool-call-btn--approve:hover{background:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--accent) 20%, transparent)}.chat-tool-call-btn--reject{background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.chat-tool-call-btn--reject:hover{background:color-mix(in srgb, var(--danger) 20%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--danger) 15%, transparent)}.chat-tool-call-btn--approve:disabled,.chat-tool-call-btn--reject:disabled{opacity:.35;cursor:default;box-shadow:none}.chat-tool-call-card--resolved{opacity:.75;border-left-color:color-mix(in srgb, var(--accent) 50%, var(--border));box-shadow:none}.chat-tool-call-card--cancelled{border-left-color:color-mix(in srgb, var(--danger) 60%, var(--border))}.chat-tool-call-badge{letter-spacing:.04em;background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);border-radius:3px;align-items:center;gap:4px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.chat-tool-call-card--cancelled .chat-tool-call-badge{background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger)}.chat-tool-call-badge--danger{background:color-mix(in srgb, var(--danger) 10%, transparent)!important;border-color:color-mix(in srgb, var(--danger) 30%, transparent)!important;color:var(--danger)!important}.chat-tool-call-output{flex-direction:column;gap:4px;display:flex}.chat-tool-call-stdout,.chat-tool-call-stderr{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:7px 10px;font-size:10.5px;line-height:1.55}.chat-tool-call-stdout{background:var(--bg);border:1px solid var(--border);color:var(--text)}.chat-tool-call-stderr{background:color-mix(in srgb, var(--danger) 6%, transparent);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.chat-tool-output-block{position:relative}.chat-tool-call-output--collapsed{max-height:140px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.chat-tool-output-toggle{width:100%;color:var(--accent);letter-spacing:.04em;cursor:pointer;text-align:left;opacity:.8;background:0 0;border:none;padding:4px 0 0;font-family:inherit;font-size:10px;font-weight:600;display:block}.chat-tool-output-toggle:hover{opacity:1}.chat-tool-output-copy{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;opacity:0;z-index:1;border-radius:3px;align-items:center;padding:2px 4px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:5px;right:7px}.chat-tool-output-block:hover .chat-tool-output-copy{opacity:1}.chat-tool-output-copy:hover{color:var(--accent);border-color:var(--accent)}.layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 42%), var(--bg);flex-direction:column;min-height:100vh;display:flex}.demo-banner{background:color-mix(in srgb, var(--amber) 12%, var(--bg));border-bottom:1px solid color-mix(in srgb, var(--amber) 35%, var(--bg));color:var(--amber);z-index:101;align-items:center;gap:8px;padding:6px 16px;font-size:12px;font-weight:500;display:flex;position:sticky;top:0}.demo-banner button{border:1px solid color-mix(in srgb, var(--amber) 50%, transparent);color:var(--amber);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:2px 10px;font-size:11px;transition:background .15s}.demo-banner button:hover{background:color-mix(in srgb, var(--amber) 18%, transparent)}.app-body{flex:1;display:flex;overflow:hidden}.sidebar-backdrop{z-index:140;background:#00000080;position:fixed;inset:0}.main{flex-direction:column;flex:1;gap:10px;width:100%;max-width:1400px;margin:0 auto;padding:10px 24px 12px;display:flex;overflow-y:auto}.main--flush{width:auto;max-width:100%;top:40px;left:var(--sidebar-w,0);gap:0;margin:0;padding:0;transition:left .18s cubic-bezier(.16,1,.3,1);position:fixed;bottom:0;right:0;overflow:hidden}.page-slot{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.main--flush .page-slot{overflow:hidden}.layout--demo .main--flush{top:85px}.browser-page{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.browser-page-top{background:var(--bg-card2);border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 20px}.browser-page-row{flex:1 1 0;min-height:0;display:flex;overflow:hidden}.browser-nav{border-right:1px solid var(--border);flex-direction:column;flex:0 0 240px;padding:10px 0;display:flex;overflow-y:auto}.browser-nav-narrow{padding:0}.browser-nav-title{color:var(--text-h);align-items:center;gap:6px;padding:4px 14px 10px;font-size:12px;font-weight:600;display:flex}.browser-nav-title:not(:first-child){padding-top:14px}.browser-nav-item{text-align:left;width:100%;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;display:flex}.browser-nav-item:hover{background:var(--bg-card2)}.browser-nav-item--active{color:var(--green);border-left-color:var(--green);background:var(--green-dim)}.browser-nav-item--column{flex-direction:column;align-items:flex-start;gap:2px}.browser-nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.browser-nav-desc{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;overflow:hidden}.browser-nav-count{color:var(--text-dim);background:var(--bg-card2);border:1px solid var(--border);border-radius:10px;flex-shrink:0;padding:1px 7px;font-size:10.5px}.browser-nav-item--active .browser-nav-count{color:var(--green);border-color:#00e67659}.browser-main-col,.browser-main{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex;overflow:hidden}.browser-main .section-header,.browser-main .registry-controls{flex-shrink:0}.browser-scroll{flex:1 1 0;overflow-y:auto}.browser-scroll>.section{margin:0}.browser-aside{border-left:1px solid var(--border);flex:0 0 320px;padding:12px 10px;transition:flex-grow .2s cubic-bezier(.16,1,.3,1),flex-basis .2s cubic-bezier(.16,1,.3,1);overflow-y:auto}.browser-page-row--aside-grow .browser-aside{flex:1 1 0}@media (width<=1280px){.browser-nav{flex-basis:200px}}@media (width<=980px){.browser-page-row{flex-direction:column;overflow-y:auto}.browser-nav,.browser-main-col{border:none;border-bottom:1px solid var(--border);flex:none}.browser-main{overflow:visible}.browser-nav{max-height:28vh}.browser-scroll{overflow-y:visible}}.topbar{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;height:42px;transition:background-color var(--t-base) ease, border-color var(--t-base) ease;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.layout--demo .topbar{top:33px}.layout--demo .report-bubble{top:83px}.topbar-brand{align-items:center;gap:10px;display:flex}.brand-text{color:var(--text-h);letter-spacing:.5px;font-size:15px;font-weight:600}.brand-update-chip{color:color-mix(in srgb, var(--accent-warm) 88%, var(--text-h));background:color-mix(in srgb, var(--accent-warm) 12%, var(--bg-card2));border:1px solid color-mix(in srgb, var(--accent-warm) 38%, var(--border));cursor:pointer;border-radius:4px;padding:2px 7px;font-size:11px;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.brand-update-chip:hover{color:color-mix(in srgb, var(--accent-warm) 82%, white);background:color-mix(in srgb, var(--accent-warm) 18%, var(--bg-card2));border-color:color-mix(in srgb, var(--accent-warm) 58%, var(--border))}.topbar-right{align-items:center;gap:12px;display:flex}.icon-btn.topbar-hamburger-btn{display:none}.topbar-meta{color:var(--text-dim);font-size:11px;font-family:var(--mono);align-items:center;gap:4px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.online{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.polling{background:var(--amber);box-shadow:0 0 6px var(--amber)}.status-dot.error{background:var(--red)}.status-dot.loading{background:var(--amber);animation:1s infinite pulse}.status-dot--pulse{animation:.7s ease-out statusBlink}.status-label{color:var(--text);font-size:12px;font-family:var(--mono)}.icon-btn{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));color:var(--text);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s,border-color .15s;display:flex}.icon-btn:hover{background:color-mix(in srgb, var(--accent) 11%, var(--bg-card2));color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 48%, var(--border))}.topbar-link-btn{text-decoration:none}.theme-menu{position:relative}.palette-icon-k{font-size:11px;font-weight:700;line-height:1}.palette-hint-floating{border:1px solid color-mix(in srgb, var(--accent) 38%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));z-index:320;border-radius:8px;align-items:stretch;animation:.25s paletteHintIn;display:flex;position:fixed;bottom:58px;right:18px;overflow:hidden;box-shadow:0 10px 24px #0003}.palette-hint-main{color:var(--text-h);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;min-width:190px;padding:8px 10px;display:flex}.palette-hint-main:hover{background:color-mix(in srgb, var(--accent) 13%, var(--bg-card2))}.palette-hint-title{font-size:12px;font-weight:600}.palette-hint-kbd{color:var(--text-dim);font-size:11px}.palette-hint-close{border:none;border-left:1px solid color-mix(in srgb, var(--accent) 34%, var(--border));color:var(--text-dim);cursor:pointer;background:0 0;width:28px}.palette-hint-close:hover{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent)}@keyframes paletteHintIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.run-mobile-switcher{display:none}.theme-menu-popover{background:var(--bg-card);border:1px solid var(--border);z-index:120;border-radius:10px;min-width:220px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 14px 32px #00000047}.theme-menu-item{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;flex-direction:column;gap:2px;padding:10px 11px;transition:background .15s;display:flex}.theme-menu-item:last-child{border-bottom:0}.theme-menu-item:hover{background:var(--bg-card2)}.theme-menu-item.active{background:color-mix(in srgb, var(--blue) 16%, var(--bg-card))}.theme-menu-label{color:var(--text-h);font-size:12.5px;font-weight:600}.theme-menu-hint{color:var(--text-dim);font-size:11px}.btn-primary{background:var(--green-dim);border:1px solid var(--green);color:var(--green);cursor:pointer;font-family:var(--mono);border-radius:6px;width:100%;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:#00e67640}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:14px;padding:16px 18px;transition:border-color .2s;display:flex}.stat-card:hover{border-color:var(--text-dim)}.stat-icon{flex-shrink:0;margin-top:2px}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;font-size:11px}.stat-value{font-size:22px;font-weight:600;font-family:var(--mono);margin:2px 0;line-height:1.2}.stat-sub{color:var(--text-dim);font-size:11px}.kpi-strip{flex-wrap:wrap;align-items:stretch;gap:22px;padding:6px 0;display:flex}.kpi-strip-item{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;min-width:160px;display:flex}.kpi-strip-top{align-items:center;gap:8px;line-height:1.2;display:flex}.kpi-strip-icon{flex-shrink:0;display:inline-flex}.kpi-strip-value{color:var(--text-h);font-size:15px;font-weight:600;font-family:var(--mono)}.kpi-strip-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;text-align:center;white-space:nowrap;font-size:10.5px}.kpi-strip-divider{background:var(--border);flex-shrink:0;align-self:stretch;width:1px}@media (width<=780px){.kpi-strip-divider{display:none}}.app-footer{flex-shrink:0;justify-content:center;align-items:center;height:22px;margin-top:auto;display:flex}.app-footer-link{letter-spacing:.05em;color:var(--text-dim);transition:color var(--t-base) ease;font-size:10px;text-decoration:none}.app-footer-link:hover{color:var(--text)}.section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:5px 0;overflow:hidden}.section-header{border-bottom:1px solid var(--border);background:var(--bg-card2);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.section-header--collapsible{cursor:pointer;text-align:left;border:none;width:100%;transition:background .12s}.section-header--collapsible:hover{background:color-mix(in srgb, var(--bg-card2) 80%, var(--bg-card))}.section-header h3{color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.section-header-side{align-items:center;gap:10px;display:flex}.section-install-badge{font-family:var(--mono);letter-spacing:0;text-transform:none;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.section-chevron{color:var(--text-dim);align-items:center;display:inline-flex}.section-header--clickable{cursor:pointer;transition:background .12s}.section-header--clickable:hover{background:color-mix(in srgb, var(--bg-card2) 80%, var(--bg-card))}.section-header-controls{align-items:center;gap:8px;display:flex}.section-meta{color:var(--text-dim);font-size:11px}.section-meta--padded{padding:16px 0}.badge{background:var(--green-dim);color:var(--green);border:1px solid #00e6764d;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.resources-layout{grid-template-columns:1fr 1fr;gap:0;display:grid}.gauges-col{border-right:1px solid var(--border);flex-direction:column;gap:10px;padding:18px;display:flex}.chart-col{flex-direction:column;gap:8px;padding:18px;display:flex}.gauge-row{grid-template-columns:64px 1fr 48px;align-items:center;gap:10px;display:grid}.gauge-label{color:var(--text);font-size:12px}.gauge-bar-bg{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.gauge-bar-fill{border-radius:3px;height:100%;transition:width .5s}.gauge-val{font-family:var(--mono);text-align:right;font-size:12px}.resource-detail-row{cursor:pointer;flex-wrap:wrap;flex:auto;justify-content:space-evenly;margin-top:4px;display:flex}.resource-detail{color:var(--text-dim);font-size:11px;font-family:var(--mono);cursor:pointer;align-items:center;gap:4px;display:flex}.chart-legend{color:var(--text-dim);gap:16px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.chart-wrap{flex:1}.chart-placeholder{color:var(--text-dim);text-align:center;padding:30px 0;font-size:12px}.cat-list{padding:8px 0 0}.cat-list-mode-note{color:var(--text-dim);font-size:11px;font-family:var(--mono);padding:0 18px 8px}.cat-row{border-bottom:1px solid var(--border)}.cat-row:last-child{border-bottom:none}.cat-list-toggle-row{border:none;border-top:1px solid var(--border);background:var(--bg-card2);width:100%;color:var(--text-dim);font-size:11px;font-family:var(--mono);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 18px;transition:color .12s,background .12s;display:flex}.cat-list-toggle-row:hover{color:var(--text-h);background:color-mix(in srgb, var(--bg-card2) 72%, var(--bg-card))}.cat-list-toggle-chevron{align-items:center;display:inline-flex}.cat-header{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;grid-template-columns:20px 160px 56px 1fr 18px;align-items:center;gap:10px;padding:10px 18px;transition:background .12s;display:grid}.cat-header:hover{background:var(--bg-card2)}.cat-icon{justify-content:center;display:flex}.cat-name{color:var(--text-h);text-align:left;text-transform:capitalize;font-size:12px;font-weight:500}.cat-badge{font-family:var(--mono);text-align:center;border:1px solid #0000;border-radius:10px;padding:2px 6px;font-size:11px}.cat-bar-bg{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.cat-bar-fill{border-radius:2px;height:100%;transition:width .4s}.cat-chevron{color:var(--text-dim);justify-content:center;display:flex}.cat-tools-grid{flex-wrap:wrap;gap:6px;padding:8px 18px 14px 48px;display:flex}.tool-chip{font-size:11px;font-family:var(--mono);border:1px solid var(--border);background:var(--bg-card2);border-radius:4px;align-items:center;gap:4px;padding:3px 8px;display:flex}.tool-chip.available{color:var(--text-h);border-color:#00e67633}.tool-chip.missing{color:var(--text-dim);border-color:#ff4d4d26}.tool-chip--clickable{cursor:pointer}.tool-chip--clickable:hover{background:var(--bg-card);filter:brightness(1.15)}.registry-controls{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 18px;display:flex}.registry-controls-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.registry-missing-toggle{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-size:11px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.registry-missing-toggle:hover{color:var(--text-h);border-color:var(--text-dim)}.registry-missing-toggle.active{background:color-mix(in srgb, var(--red) 12%, transparent);border-color:color-mix(in srgb, var(--red) 40%, transparent);color:var(--red)}.search-input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;width:100%;max-width:320px;padding:7px 12px;font-size:12px}.search-input:focus{border-color:var(--green)}.search-input::placeholder{color:var(--text-dim)}.search-input-wrap{width:100%;max-width:320px;position:relative}.search-input-wrap .search-input{width:100%;max-width:none;padding-right:32px}.search-clear-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear-btn:hover{color:var(--text-h)}.cat-tabs{flex-wrap:wrap;gap:6px;display:flex}.cat-tab{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;text-transform:capitalize;border-radius:4px;padding:3px 10px;font-size:11px;transition:background .12s,color .12s}.cat-tab:hover{background:var(--border);color:var(--text-h)}.cat-tab.active{background:var(--green-dim);color:var(--green);border-color:#00e67666}.registry-grid{background:var(--border);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;display:grid}.registry-grid--wide{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.registry-grid--wider{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.registry-card{background:var(--bg-card);flex-direction:column;gap:6px;padding:14px 16px;transition:background .12s;display:flex}.registry-card:hover{background:var(--bg-card2)}.registry-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.registry-installed{flex-shrink:0;align-items:center;margin-left:auto;display:inline-flex}.registry-name{color:var(--text-h);font-size:13px;font-weight:600}.registry-cat{color:var(--text-dim);background:var(--bg-card2);border:1px solid var(--border);text-transform:capitalize;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:10px}.registry-desc{color:var(--text);font-size:12px;line-height:1.4}.registry-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.registry-endpoint{color:var(--text-dim);font-size:10px}.registry-eff{font-family:var(--mono);color:var(--green);letter-spacing:1px;font-size:10px}.loading-state{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:80px 0;font-size:13px;display:flex}.error-banner{background:var(--red-dim);color:var(--red);border-radius:var(--radius);border:1px solid #ff4d4d4d;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.empty-state{text-align:center;color:var(--text-dim);grid-column:1/-1;padding:32px 0;font-size:13px}.tasks-empty{color:var(--text-dim);flex-direction:column;align-items:center;gap:10px;padding:48px 0;display:flex}.page-content{flex-direction:column;gap:10px;display:flex}.code-block{border:1px solid var(--border);border-radius:6px;margin-top:8px;overflow:hidden}.code-block-header{background:var(--bg-card2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 10px;display:flex}.code-lang{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.code-copy{width:24px;height:24px}.code-pre{color:var(--text-h);white-space:pre;background:var(--bg-card);margin:0;padding:12px 14px;font-size:12px;line-height:1.5;overflow-x:auto}@media (width<=768px){.app-body{--sidebar-w:0px}.main{gap:12px;padding:10px 10px 12px}.main--flush{top:110px}.layout--demo .main--flush{top:143px}.demo-banner{flex-wrap:wrap;gap:6px;padding:6px 10px}.demo-banner button{margin-left:0}.topbar{flex-wrap:nowrap;align-items:center;gap:6px;height:auto;padding:8px 10px}.layout--demo .topbar{top:47px}.report-bubble{max-width:none;top:66px;left:10px;right:10px}.layout--demo .report-bubble{top:105px}.topbar-brand{flex:1 1 0;gap:8px;min-width:0}.brand-text{white-space:nowrap;text-overflow:ellipsis;max-width:46vw;font-size:12px;overflow:hidden}.brand-version,.brand-update-chip{display:none}.topbar-right{flex-wrap:nowrap;justify-content:flex-end;gap:6px;width:auto;min-width:0;margin-left:auto}.icon-btn.topbar-hamburger-btn{display:inline-flex}.topbar-meta{display:none}.status-label{font-size:11px}.icon-btn{width:28px;height:28px}.palette-hint-floating{max-width:calc(100vw - 20px);bottom:64px;right:10px}.palette-hint-main{min-width:0}.resources-layout{grid-template-columns:1fr}.gauges-col{border-right:none;border-bottom:1px solid var(--border)}.cat-header{grid-template-columns:20px 1fr 48px 18px}.cat-header .cat-bar-bg{display:none}.section-header{flex-wrap:wrap;gap:8px;padding:12px}.section-header h3{font-size:12px}.section-meta{font-size:10px}.registry-controls,.cat-list-mode-note{padding-left:12px;padding-right:12px}.cat-header{gap:8px;padding-left:12px;padding-right:12px}.cat-tools-grid{padding:8px 12px 12px 34px}.registry-grid,.registry-grid--wide,.registry-grid--wider{grid-template-columns:1fr}.registry-card{padding:12px}.search-input-wrap,.search-input{max-width:none}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px)}.modal-header,.modal-body{padding-left:12px;padding-right:12px}}@media (width<=640px){.brand-text{max-width:40vw}}.registry-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.registry-card--clickable:hover{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.modal-name{color:var(--text);font-size:17px;font-weight:600}.modal-cat{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);text-transform:capitalize;border-radius:4px;padding:2px 7px;font-size:11px}.modal-status{border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.modal-status--installed{color:var(--green);background:color-mix(in srgb, var(--green) 12%, transparent);border:1px solid color-mix(in srgb, var(--green) 30%, transparent)}.modal-status--missing{color:var(--red);background:color-mix(in srgb, var(--red) 12%, transparent);border:1px solid color-mix(in srgb, var(--red) 30%, transparent)}.modal-desc{color:var(--text);margin:0;font-size:13.5px;line-height:1.6}.modal-eff-row{align-items:center;gap:10px;display:flex}.modal-eff-bar{background:var(--bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.modal-eff-fill{border-radius:3px;height:100%;transition:width .3s}.modal-eff-pct{text-align:right;min-width:34px;font-size:12px;font-weight:600}.modal-section{flex-direction:column;gap:6px;display:flex}.modal-meta-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.modal-meta-item{flex-direction:column;gap:3px;display:flex}.modal-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px;font-weight:600}.modal-code-wrap{position:relative}.modal-copy-btn{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:color .15s,border-color .15s;display:flex;position:absolute;top:6px;right:6px}.modal-copy-btn:hover{color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.modal-code-wrap .modal-code{padding-right:80px}.modal-code{background:var(--bg);border:1px solid var(--border);color:var(--green);word-break:break-all;white-space:pre-wrap;border-radius:5px;padding:8px 12px;font-size:12px}.modal-params{flex-wrap:wrap;gap:6px;display:flex}.modal-param{border:1px solid var(--border);border-radius:4px;padding:3px 9px;font-size:12px}.modal-param--required{border-color:var(--amber);color:var(--amber);background:color-mix(in srgb, var(--amber) 8%, transparent)}.modal-table{border-collapse:collapse;width:100%;font-size:12px}.modal-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:5px 8px;font-weight:600}.modal-table td{color:var(--text);border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);padding:5px 8px}.modal-table tr:last-child td{border-bottom:none}.sheet-backdrop{z-index:1300;animation:sheet-fade-in var(--t-modal-pop);background:#000000a6;position:fixed;inset:0}.sheet{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 6%, var(--bg-card)), var(--bg-card) 26%), var(--bg-card);border-left:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));z-index:1300;width:480px;max-width:calc(100vw - 40px);box-shadow:-20px 0 60px #0000009e, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);animation:sheet-slide-in var(--t-modal-pop);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.sheet--sm{width:380px}.sheet--lg{width:640px}.sheet-backdrop--centered{justify-content:center;align-items:center;padding:20px;display:flex}.sheet--centered{border-left:none;border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));width:100%;max-width:560px;max-height:85vh;box-shadow:0 20px 60px #0000009e, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);animation:sheet-pop-in var(--t-modal-pop);border-radius:10px;position:relative;top:auto;bottom:auto;right:auto}.sheet--centered.sheet--sm{max-width:420px}.sheet--centered.sheet--lg{max-width:720px}@keyframes sheet-pop-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet--centered{animation:none}}.sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.sheet-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sheet-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;flex-shrink:0;padding:2px;transition:color .15s;display:flex}.sheet-close:hover{color:var(--red)}.sheet-body{flex-direction:column;flex:1;gap:16px;padding:18px 20px 22px;display:flex;overflow-y:auto}.sheet-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}@keyframes sheet-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes sheet-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=640px){.sheet,.sheet--sm,.sheet--lg{width:100%;max-width:100%}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.progress-bar{background:var(--bg-card2);border-radius:3px;height:6px;overflow:hidden}.progress-bar__fill{border-radius:3px;height:100%;transition:width .3s}.table-thead{background:var(--bg-card2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);font-size:11px}.modal-icon{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.modal-icon--accent{color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent)}.modal-icon--danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 18%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent)} diff --git a/frontend/dashboard/assets/index-DdBasGVR.css b/frontend/dashboard/assets/index-DdBasGVR.css deleted file mode 100644 index 4873c7274..000000000 --- a/frontend/dashboard/assets/index-DdBasGVR.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0f14;--bg-card:#13161e;--bg-card2:#191c26;--border:#252836;--text:#8b95a8;--text-h:#e2e8f0;--text-dim:#4a5568;--green:#00e676;--green-dim:#00e67626;--red:#ff4d4d;--red-dim:#ff4d4d26;--amber:#ffc107;--amber-dim:#ffc1071f;--blue:#4fc3f7;--blue-dim:#4fc3f71f;--purple:#b39ddb;--purple-dim:#b39ddb1f;--cyan:#00e5ff;--cyan-dim:#00e5ff1f;--pink:#ff4081;--pink-dim:#ff40811f;--orange:#ff9100;--orange-dim:#ff91001f;--lime:#aeea00;--lime-dim:#aeea001f;--teal:#1de9b6;--teal-dim:#1de9b61f;--indigo:#5c6bc0;--indigo-dim:#5c6bc01f;--yellow:#f1c40f;--yellow-dim:#f1c40f1f;--gray:#94a3b8;--gray-dim:#94a3b81f;--white-dim:#ffffff0d;--accent:#00e676;--accent-alt:#00e5ff;--accent-warm:#ff9100;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 12px #00e67699;--glow-blue:0 0 12px #4fc3f799;--glow-red:0 0 12px #ff4d4d99;--glow-cyan:0 0 12px #00e5ff99;--radius:8px;--radius-sm:6px;--radius-xs:4px;--t-fast:.15s;--t-base:.2s;--t-slow:.3s;--t-modal-pop:.18s cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out-expressive:cubic-bezier(.16, 1, .3, 1);--shadow-sm:0 2px 6px #0000002e;--shadow-md:0 8px 24px #00000047;--shadow-lg:0 16px 40px #00000061;--stagger-step:40ms;--bg-main:var(--bg-card);--bg-soft:var(--bg-card2);--mono:"Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"Inter", system-ui, sans-serif}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;transition:background-color var(--t-base) ease, color var(--t-base) ease;font-size:14px;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.mono{font-family:var(--mono)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.text-blue{color:var(--blue)}.text-dim{color:var(--text-dim)}.text-h{color:var(--text-h)}.input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;padding:8px 12px;font-size:12.5px}.input:focus{border-color:var(--green)}.input::placeholder{color:var(--text-dim)}.input-full{width:100%;min-width:0}textarea.input{resize:vertical;width:100%;min-height:80px}select.input{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}select.input:-moz-focusring{color:#0000;text-shadow:0 0 0 var(--text-h)}select.input option{background:var(--bg-card2);color:var(--text-h)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes statusBlink{0%{box-shadow:0 0 6px var(--green);transform:scale(1)}35%{box-shadow:0 0 10px color-mix(in srgb, var(--green) 82%, white);transform:scale(1.35)}to{box-shadow:0 0 6px var(--green);transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.spin--sm{border:2px solid #0000;border-radius:50%;width:24px;height:24px}.spin--green{border-color:var(--green);border-top-color:#0000}@keyframes header-border-shift{0%{background-position:0 0}to{background-position:300% 0}}@keyframes rainbow-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes flourish-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes sparkle{0%{opacity:.7;transform:scale(1)rotate(0)}33%{opacity:1;transform:scale(1.3)rotate(120deg)}66%{opacity:.8;transform:scale(.9)rotate(240deg)}to{opacity:.7;transform:scale(1)rotate(360deg)}}@keyframes stagger-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:stagger-in var(--t-slow) var(--ease-out-expressive) both;animation-delay:calc(var(--stagger-index,0) * var(--stagger-step))}.press-feedback{transition:transform var(--t-fast) var(--ease-spring)}.press-feedback:active:not(:disabled){transform:scale(.96)}@keyframes empty-state-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes empty-state-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.drag-reorder-item{transition:opacity .15s,transform .15s}.drag-reorder-item--dragging{opacity:.4;transform:scale(.97)}.drag-reorder-item--drag-over{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-theme=unicorn]{--bg:#2a153f;--bg-card:#3a1e55;--bg-card2:#4d2a70;--border:#b47fe0;--text:#f7e9ff;--text-h:#fff8ff;--text-dim:#d9b7ef;--green:#7af4d4;--green-dim:#7af4d438;--red:#ff6ba9;--red-dim:#ff6ba93b;--amber:#ffd67b;--amber-dim:#ffd67b3b;--blue:#7bd8ff;--blue-dim:#7bd8ff3b;--purple:#d4a0ff;--purple-dim:#d4a0ff3d;--cyan:#8bf7ff;--cyan-dim:#8bf7ff3b;--pink:#ff8fdf;--pink-dim:#ff8fdf3d;--orange:#ffb37b;--orange-dim:#ffb37b3b;--lime:#d8ff8e;--lime-dim:#d8ff8e3b;--teal:#7ff0df;--teal-dim:#7ff0df3b;--indigo:#aab5ff;--indigo-dim:#aab5ff3b;--gray:#f0dfff;--gray-dim:#f0dfff33;--white-dim:#ffffff29;--accent:#ff8fdf;--accent-alt:#7bd8ff;--accent-warm:#ffd67b;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 18px #7af4d4bf;--glow-blue:0 0 18px #7bd8ffbf;--glow-red:0 0 18px #ff6ba9b8;--glow-cyan:0 0 18px #8bf7ffbf;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"Poppins", "Nunito", "Inter", system-ui, sans-serif}:root[data-theme=forest]{--bg:#111a15;--bg-card:#18251d;--bg-card2:#223126;--border:#3d5a46;--text:#c9dbc9;--text-h:#eff8ef;--text-dim:#8ba08f;--green:#78b866;--green-dim:#78b8662e;--red:#b96363;--red-dim:#b963632e;--amber:#d2b06d;--amber-dim:#d2b06d2e;--blue:#7fa6b8;--blue-dim:#7fa6b82e;--purple:#9d8ab7;--purple-dim:#9d8ab72e;--cyan:#6ab5aa;--cyan-dim:#6ab5aa2e;--pink:#c187a5;--pink-dim:#c187a52e;--orange:#bf8f62;--orange-dim:#bf8f622e;--lime:#a7c66a;--lime-dim:#a7c66a2e;--teal:#5da086;--teal-dim:#5da0862e;--indigo:#7f8fb8;--indigo-dim:#7f8fb82e;--gray:#a5b9a8;--gray-dim:#a5b9a826;--white-dim:#eff8ef0f;--accent:#78b866;--accent-alt:#6ab5aa;--accent-warm:#d2b06d;--success:var(--green);--warning:var(--amber);--danger:var(--red);--info:var(--blue);--glow-green:0 0 14px #78b8667a;--glow-blue:0 0 14px #7fa6b873;--glow-red:0 0 14px #b9636373;--glow-cyan:0 0 14px #6ab5aa73;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, "Courier New", monospace;--sans:"IBM Plex Sans", "Inter", system-ui, sans-serif}:root[data-theme=solarized]{--bg:#002b36;--bg-card:#073642;--bg-card2:#0b4553;--border:#1f5968;--text:#93a1a1;--text-h:#eee8d5;--text-dim:#6f8a91;--green:#859900;--green-dim:#85990029;--red:#dc322f;--red-dim:#dc322f29;--amber:#b58900;--amber-dim:#b5890029;--blue:#268bd2;--blue-dim:#268bd229;--purple:#6c71c4;--purple-dim:#6c71c429;--cyan:#2aa198;--cyan-dim:#2aa19829;--pink:#d33682;--pink-dim:#d3368229;--orange:#cb4b16;--orange-dim:#cb4b1629;--lime:#99aa3f;--lime-dim:#99aa3f29;--teal:#3aa6a0;--teal-dim:#3aa6a029;--indigo:#7482d1;--indigo-dim:#7482d129;--gray:#93a1a1;--gray-dim:#93a1a124;--white-dim:#eee8d50f;--accent:#268bd2;--accent-alt:#2aa198;--accent-warm:#b58900;--glow-green:0 0 10px #85990073;--glow-blue:0 0 10px #268bd273;--glow-red:0 0 10px #dc322f73;--glow-cyan:0 0 10px #2aa19873}:root[data-theme=ocean-glass]{--bg:#071724;--bg-card:#0f2435;--bg-card2:#163147;--border:#2d4c63;--text:#c6d9e8;--text-h:#f4fbff;--text-dim:#7f9cb2;--green:#2ec4b6;--green-dim:#2ec4b629;--red:#ff6b6b;--red-dim:#ff6b6b29;--amber:#f4b860;--amber-dim:#f4b86029;--blue:#4aa3ff;--blue-dim:#4aa3ff29;--purple:#8c7dff;--purple-dim:#8c7dff29;--cyan:#59d6ff;--cyan-dim:#59d6ff29;--pink:#ff7ca8;--pink-dim:#ff7ca829;--orange:#ff9f68;--orange-dim:#ff9f6829;--lime:#b4d455;--lime-dim:#b4d45529;--teal:#37c8c5;--teal-dim:#37c8c529;--indigo:#7e95ff;--indigo-dim:#7e95ff29;--gray:#a8bfd1;--gray-dim:#a8bfd124;--white-dim:#f4fbff0f;--accent:#59d6ff;--accent-alt:#2ec4b6;--accent-warm:#f4b860;--glow-green:0 0 12px #2ec4b680;--glow-blue:0 0 12px #4aa3ff80;--glow-red:0 0 12px #ff6b6b80;--glow-cyan:0 0 12px #59d6ff80}:root[data-theme=crimson-night]{--bg:#0f0f15;--bg-card:#171822;--bg-card2:#212331;--border:#3e2c39;--text:#d7ccd3;--text-h:#fff3f7;--text-dim:#9a8b94;--green:#67c587;--green-dim:#67c58724;--red:#e84566;--red-dim:#e8456633;--amber:#d89c4c;--amber-dim:#d89c4c24;--blue:#5e89d9;--blue-dim:#5e89d924;--purple:#a67dd5;--purple-dim:#a67dd524;--cyan:#50b9c9;--cyan-dim:#50b9c924;--pink:#e45e9f;--pink-dim:#e45e9f29;--orange:#d97953;--orange-dim:#d9795324;--lime:#9db453;--lime-dim:#9db45324;--teal:#4bb09f;--teal-dim:#4bb09f24;--indigo:#7f87cb;--indigo-dim:#7f87cb24;--gray:#b7a9b3;--gray-dim:#b7a9b31f;--white-dim:#fff3f70d;--accent:#e84566;--accent-alt:#5e89d9;--accent-warm:#d89c4c;--glow-green:0 0 10px #67c58766;--glow-blue:0 0 10px #5e89d966;--glow-red:0 0 12px #e8456680;--glow-cyan:0 0 10px #50b9c966}:root[data-theme=retro-crt]{--bg:#050a05;--bg-card:#0a120a;--bg-card2:#0f1a0f;--border:#204320;--text:#71c971;--text-h:#c4ffc4;--text-dim:#4f8e4f;--green:#64ff64;--green-dim:#64ff6429;--red:#ff6c6c;--red-dim:#ff6c6c29;--amber:#e8d36a;--amber-dim:#e8d36a29;--blue:#67b3ff;--blue-dim:#67b3ff29;--purple:#b08bff;--purple-dim:#b08bff29;--cyan:#66f0ff;--cyan-dim:#66f0ff29;--pink:#ff85cc;--pink-dim:#ff85cc29;--orange:#ffb26a;--orange-dim:#ffb26a29;--lime:#c8ff5d;--lime-dim:#c8ff5d29;--teal:#59d8ae;--teal-dim:#59d8ae29;--indigo:#8ea4ff;--indigo-dim:#8ea4ff29;--gray:#87b887;--gray-dim:#87b8871f;--white-dim:#c4ffc40d;--accent:#64ff64;--accent-alt:#66f0ff;--accent-warm:#e8d36a;--glow-green:0 0 12px #64ff6499;--glow-blue:0 0 10px #67b3ff73;--glow-red:0 0 10px #ff6c6c73;--glow-cyan:0 0 12px #66f0ff80}:root[data-theme=nord]{--bg:#2e3440;--bg-card:#3b4252;--bg-card2:#434c5e;--border:#4c566a;--text:#d8dee9;--text-h:#eceff4;--text-dim:#9aa4ba;--green:#a3be8c;--green-dim:#a3be8c29;--red:#bf616a;--red-dim:#bf616a29;--amber:#ebcb8b;--amber-dim:#ebcb8b29;--blue:#81a1c1;--blue-dim:#81a1c129;--purple:#b48ead;--purple-dim:#b48ead29;--cyan:#88c0d0;--cyan-dim:#88c0d029;--pink:#d38cae;--pink-dim:#d38cae29;--orange:#d08770;--orange-dim:#d0877029;--lime:#b7c97a;--lime-dim:#b7c97a29;--teal:#8fbcbb;--teal-dim:#8fbcbb29;--indigo:#8fa1d1;--indigo-dim:#8fa1d129;--gray:#b7bfcc;--gray-dim:#b7bfcc24;--white-dim:#eceff40f;--accent:#88c0d0;--accent-alt:#81a1c1;--accent-warm:#ebcb8b;--glow-green:0 0 10px #a3be8c6b;--glow-blue:0 0 10px #81a1c16b;--glow-red:0 0 10px #bf616a6b;--glow-cyan:0 0 10px #88c0d06b}:root[data-theme=dracula]{--bg:#282a36;--bg-card:#2f3242;--bg-card2:#383a4a;--border:#44475a;--text:#cad0e6;--text-h:#f8f8f2;--text-dim:#6272a4;--green:#50fa7b;--green-dim:#50fa7b2e;--red:#f55;--red-dim:#ff55552e;--amber:#f1fa8c;--amber-dim:#f1fa8c29;--blue:#8be9fd;--blue-dim:#8be9fd2e;--purple:#bd93f9;--purple-dim:#bd93f933;--cyan:#7fdbff;--cyan-dim:#7fdbff2e;--pink:#ff79c6;--pink-dim:#ff79c633;--orange:#ffb86c;--orange-dim:#ffb86c2e;--lime:#b5f16d;--lime-dim:#b5f16d2e;--teal:#69dfc9;--teal-dim:#69dfc92e;--indigo:#8a94e8;--indigo-dim:#8a94e82e;--gray:#a2a8c3;--gray-dim:#a2a8c324;--white-dim:#f8f8f20f;--accent:#bd93f9;--accent-alt:#8be9fd;--accent-warm:#ffb86c;--glow-green:0 0 14px #50fa7b80;--glow-blue:0 0 14px #8be9fd80;--glow-red:0 0 14px #ff555580;--glow-cyan:0 0 14px #7fdbff80}:root[data-theme=gruvbox]{--bg:#282828;--bg-card:#32302f;--bg-card2:#3c3836;--border:#504945;--text:#d5c4a1;--text-h:#ebdbb2;--text-dim:#a89984;--green:#b8bb26;--green-dim:#b8bb262e;--red:#fb4934;--red-dim:#fb49342e;--amber:#fabd2f;--amber-dim:#fabd2f2e;--blue:#83a598;--blue-dim:#83a59829;--purple:#d3869b;--purple-dim:#d3869b2e;--cyan:#8ec07c;--cyan-dim:#8ec07c29;--pink:#ea6962;--pink-dim:#ea69622e;--orange:#fe8019;--orange-dim:#fe80192e;--lime:#c2c14d;--lime-dim:#c2c14d2e;--teal:#6f9a8d;--teal-dim:#6f9a8d29;--indigo:#7c8aa8;--indigo-dim:#7c8aa829;--gray:#928374;--gray-dim:#92837424;--white-dim:#ebdbb20d;--accent:#fe8019;--accent-alt:#83a598;--accent-warm:#fabd2f;--glow-green:0 0 12px #b8bb2666;--glow-blue:0 0 12px #83a59866;--glow-red:0 0 12px #fb49346b;--glow-cyan:0 0 12px #8ec07c66}:root[data-theme=folio]{--bg:#f4ecdc;--bg-card:#faf5e9;--bg-card2:#efe6d3;--border:#ddd0b8;--text:#5b5340;--text-h:#3a342b;--text-dim:#8a8068;--green:#1f8a52;--green-dim:#1f8a5224;--red:#b3392c;--red-dim:#b3392c24;--amber:#b5780f;--amber-dim:#b5780f24;--blue:#2270a6;--blue-dim:#2270a624;--purple:#7a5ea8;--purple-dim:#7a5ea824;--cyan:#2c8a83;--cyan-dim:#2c8a8324;--pink:#a6455a;--pink-dim:#a6455a24;--orange:#c0612b;--orange-dim:#c0612b24;--lime:#8a9b3f;--lime-dim:#8a9b3f24;--teal:#24756f;--teal-dim:#24756f24;--indigo:#6a6ab0;--indigo-dim:#6a6ab024;--gray:#8a8068;--gray-dim:#8a80681f;--white-dim:#3a342b08;--accent:#0f7a5c;--accent-alt:#2270a6;--accent-warm:#b5780f;--glow-green:0 0 0 #0000;--glow-blue:0 0 0 #0000;--glow-red:0 0 0 #0000;--glow-cyan:0 0 0 #0000;--shadow-sm:0 1px 4px #3a342b14;--shadow-md:0 4px 14px #3a342b1f;--shadow-lg:0 10px 28px #3a342b29}:root[data-theme=tokyo]{--bg:#1a1b26;--bg-card:#20212e;--bg-card2:#292a3d;--border:#3b3f58;--text:#a9b1d6;--text-h:#c0caf5;--text-dim:#565f89;--green:#9ece6a;--green-dim:#9ece6a29;--red:#f7768e;--red-dim:#f7768e2e;--amber:#e0af68;--amber-dim:#e0af6829;--blue:#7aa2f7;--blue-dim:#7aa2f729;--purple:#bb9af7;--purple-dim:#bb9af72e;--cyan:#7dcfff;--cyan-dim:#7dcfff29;--pink:#e6a6e0;--pink-dim:#e6a6e02e;--orange:#ff9e64;--orange-dim:#ff9e6429;--lime:#b4d273;--lime-dim:#b4d27329;--teal:#2ac3de;--teal-dim:#2ac3de2e;--indigo:#6183db;--indigo-dim:#6183db29;--gray:#737aa2;--gray-dim:#737aa224;--white-dim:#c0caf50d;--accent:#7aa2f7;--accent-alt:#7dcfff;--accent-warm:#ff9e64;--glow-green:0 0 12px #9ece6a6b;--glow-blue:0 0 14px #7aa2f780;--glow-red:0 0 12px #f7768e73;--glow-cyan:0 0 14px #7dcfff80}:root[data-theme=catppuccin]{--bg:#1e1e2e;--bg-card:#232334;--bg-card2:#302d41;--border:#45475a;--text:#bac2de;--text-h:#cdd6f4;--text-dim:#6c7086;--green:#a6e3a1;--green-dim:#a6e3a129;--red:#f38ba8;--red-dim:#f38ba82e;--amber:#f9e2af;--amber-dim:#f9e2af29;--blue:#89b4fa;--blue-dim:#89b4fa29;--purple:#cba6f7;--purple-dim:#cba6f72e;--cyan:#89dceb;--cyan-dim:#89dceb29;--pink:#f5c2e7;--pink-dim:#f5c2e72e;--orange:#fab387;--orange-dim:#fab38729;--lime:#a6da95;--lime-dim:#a6da9529;--teal:#94e2d5;--teal-dim:#94e2d529;--indigo:#b4befe;--indigo-dim:#b4befe29;--gray:#6c7086;--gray-dim:#6c708624;--white-dim:#cdd6f40d;--accent:#cba6f7;--accent-alt:#89b4fa;--accent-warm:#fab387;--glow-green:0 0 12px #a6e3a166;--glow-blue:0 0 12px #89b4fa6b;--glow-red:0 0 12px #f38ba86b;--glow-cyan:0 0 12px #89dceb6b}:root[data-theme=synthwave]{--bg:#1a0b2e;--bg-card:#211238;--bg-card2:#2c1a47;--border:#4a2d6b;--text:#e0aee0;--text-h:#fdeff9;--text-dim:#8b7a9e;--green:#72f1b8;--green-dim:#72f1b833;--red:#fe4450;--red-dim:#fe445038;--amber:#fede5d;--amber-dim:#fede5d33;--blue:#6a8dff;--blue-dim:#6a8dff33;--purple:#b967ff;--purple-dim:#b967ff38;--cyan:#36f9f6;--cyan-dim:#36f9f638;--pink:#f92aad;--pink-dim:#f92aad3d;--orange:#ff8b39;--orange-dim:#ff8b3933;--lime:#baff6b;--lime-dim:#baff6b33;--teal:#4de8c2;--teal-dim:#4de8c233;--indigo:#8a6aff;--indigo-dim:#8a6aff33;--gray:#8b7a9e;--gray-dim:#8b7a9e29;--white-dim:#fdeff914;--accent:#f92aad;--accent-alt:#36f9f6;--accent-warm:#ff8b39;--glow-green:0 0 16px #72f1b88c;--glow-blue:0 0 16px #6a8dff8c;--glow-red:0 0 16px #fe445094;--glow-cyan:0 0 16px #36f9f699}:root[data-theme=rose]{--bg:#191724;--bg-card:#1f1d2e;--bg-card2:#26233a;--border:#403d52;--text:#908caa;--text-h:#e0def4;--text-dim:#6e6a86;--green:#31748f;--green-dim:#31748f29;--red:#eb6f92;--red-dim:#eb6f922e;--amber:#f6c177;--amber-dim:#f6c17729;--blue:#9ccfd8;--blue-dim:#9ccfd829;--purple:#c4a7e7;--purple-dim:#c4a7e72e;--cyan:#7fb8c4;--cyan-dim:#7fb8c429;--pink:#ebbcba;--pink-dim:#ebbcba2e;--orange:#d7827e;--orange-dim:#d7827e29;--lime:#9cb668;--lime-dim:#9cb66829;--teal:#4a8a9e;--teal-dim:#4a8a9e29;--indigo:#7a7ab8;--indigo-dim:#7a7ab829;--gray:#6e6a86;--gray-dim:#6e6a8624;--white-dim:#e0def40d;--accent:#ebbcba;--accent-alt:#9ccfd8;--accent-warm:#f6c177;--glow-green:0 0 10px #31748f61;--glow-blue:0 0 10px #9ccfd866;--glow-red:0 0 10px #eb6f926b;--glow-cyan:0 0 10px #9ccfd866}:root[data-theme=frost]{--bg:#eef3f7;--bg-card:#f7fafc;--bg-card2:#e4ecf2;--border:#cdd8e2;--text:#3d5165;--text-h:#1d2b3a;--text-dim:#7c93a5;--green:#1f8a6b;--green-dim:#1f8a6b24;--red:#c0392b;--red-dim:#c0392b24;--amber:#b5780f;--amber-dim:#b5780f24;--blue:#2f7fd1;--blue-dim:#2f7fd124;--purple:#6a6ab8;--purple-dim:#6a6ab824;--cyan:#5ec8d8;--cyan-dim:#5ec8d824;--pink:#b8577a;--pink-dim:#b8577a24;--orange:#c0612b;--orange-dim:#c0612b24;--lime:#7e9b3f;--lime-dim:#7e9b3f24;--teal:#2c8a8a;--teal-dim:#2c8a8a24;--indigo:#5a68b0;--indigo-dim:#5a68b024;--gray:#7c93a5;--gray-dim:#7c93a51f;--white-dim:#1d2b3a08;--accent:#2f7fd1;--accent-alt:#5ec8d8;--accent-warm:#b5780f;--glow-green:0 0 0 #0000;--glow-blue:0 0 0 #0000;--glow-red:0 0 0 #0000;--glow-cyan:0 0 0 #0000;--shadow-sm:0 1px 4px #1d2b3a14;--shadow-md:0 4px 14px #1d2b3a1f;--shadow-lg:0 10px 28px #1d2b3a29}:root[data-theme=retro-crt] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 6%, transparent) 0px, color-mix(in srgb, var(--accent) 6%, transparent) 1px, transparent 1px, transparent 3px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 26%), radial-gradient(circle at 90% 12%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 32%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 40%), var(--bg)}:root[data-theme=solarized] .layout{background:radial-gradient(circle at 8% 7%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 30%), radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 54% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=ocean-glass] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent-alt) 7%, transparent) 0px, color-mix(in srgb, var(--accent-alt) 7%, transparent) 1px, transparent 1px, transparent 9px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 28%), radial-gradient(circle at 89% 10%, color-mix(in srgb, var(--accent-alt) 14%, transparent), transparent 33%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=crimson-night] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 17%, transparent), transparent 27%), radial-gradient(circle at 89% 10%, color-mix(in srgb, var(--accent-alt) 12%, transparent), transparent 34%), radial-gradient(circle at 54% 96%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 41%), var(--bg)}:root[data-theme=nord] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 43%), var(--bg)}:root[data-theme=forest] .layout{background:repeating-radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent) 5%, transparent) 0px, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px, transparent 9px), radial-gradient(circle at 7% 6%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 28%), radial-gradient(circle at 90% 9%, color-mix(in srgb, var(--accent-alt) 16%, transparent), transparent 33%), radial-gradient(circle at 50% 96%, color-mix(in srgb, var(--accent-warm) 13%, transparent), transparent 42%), var(--bg)}:root[data-theme=unicorn] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 20%, transparent), transparent 33%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 16%, transparent), transparent 42%), radial-gradient(circle at 25% 55%, color-mix(in srgb, var(--purple) 14%, transparent), transparent 30%), radial-gradient(circle at 75% 65%, color-mix(in srgb, var(--pink) 12%, transparent), transparent 32%), var(--bg)}:root[data-theme=unicorn] .topbar{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 12%, transparent), color-mix(in srgb, var(--accent-alt) 11%, transparent)), var(--bg-card);border-bottom-color:color-mix(in srgb, var(--accent) 28%, var(--border))}:root[data-theme=dracula] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 42%), var(--bg)}:root[data-theme=gruvbox] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent) 0px, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px, transparent 3px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 42%), var(--bg)}:root[data-theme=folio] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 6%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 5%, transparent), transparent 44%), var(--bg)}:root[data-theme=tokyo] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 13%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 11%, transparent), transparent 42%), var(--bg)}:root[data-theme=catppuccin] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 29%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 12%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 10%, transparent), transparent 43%), var(--bg)}:root[data-theme=synthwave] .layout{background:repeating-linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, transparent) 0px, color-mix(in srgb, var(--accent) 7%, transparent) 1px, transparent 1px, transparent 4px), radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 26%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 15%, transparent), transparent 32%), radial-gradient(circle at 50% 100%, color-mix(in srgb, var(--accent-warm) 12%, transparent), transparent 38%), var(--bg)}:root[data-theme=rose] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 10%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 43%), var(--bg)}:root[data-theme=frost] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 30%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 6%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 5%, transparent), transparent 44%), var(--bg)}:root[data-reduce-textures="1"] .layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 34%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 4%, transparent), transparent 38%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 3%, transparent), transparent 46%), var(--bg)!important}.topbar:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));background-size:300%;height:1.5px;animation:7s linear infinite header-border-shift;position:absolute;bottom:-1px;left:0;right:0}.brand-text-1{color:var(--accent)}.brand-text-2{color:var(--accent-alt)}@media (width>=769px){.sidebar{position:relative}}.sidebar:after{content:"";background:linear-gradient(180deg, transparent, var(--accent), var(--accent-alt), var(--accent), transparent);width:1px;animation:4s infinite flourish-pulse;position:absolute;top:0;bottom:0;right:-1px}.sidebar-nav--bottom:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent), transparent);height:1.5px;animation:4s infinite flourish-pulse;position:absolute;top:-1px;left:0;right:0}:root[data-theme=unicorn] .topbar:after,:root[data-theme=synthwave] .topbar:after{background-position:0%;background-size:200%;animation-name:rainbow-shift;animation-duration:4s}:root[data-theme=unicorn] .sidebar-nav--bottom:before,:root[data-theme=synthwave] .sidebar-nav--bottom:before{background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), transparent);background-size:200%;animation-name:rainbow-shift;animation-duration:4s}:root[data-reduce-textures="1"] .topbar:after,:root[data-reduce-textures="1"] .sidebar:after,:root[data-reduce-textures="1"] .sidebar-nav--bottom:before{display:none}:root[data-theme=rose] .topbar:after{animation-duration:14s}:root[data-theme=rose] .sidebar:after,:root[data-theme=rose] .sidebar-nav--bottom:before{animation-duration:6s}:root[data-theme=unicorn] .stat-card,:root[data-theme=unicorn] .registry-card{position:relative;overflow:hidden}:root[data-theme=unicorn] .stat-card:before,:root[data-theme=unicorn] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), transparent);height:2px;animation:3.5s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=unicorn] .btn-primary{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));color:var(--bg);background-size:200%;border-color:#0000;animation:5s infinite rainbow-shift}:root[data-theme=unicorn] .btn-primary:hover{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));filter:brightness(1.12);background-size:200%}:root[data-theme=unicorn] .status-dot.online{animation:3.2s infinite sparkle}:root[data-theme=unicorn] .status-dot.online.status-dot--pulse{animation:.7s ease-out statusBlink}:root[data-theme=unicorn] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-alt))}:root[data-theme=unicorn] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-alt), var(--accent-warm))}:root[data-theme=rose] .stat-card,:root[data-theme=rose] .registry-card{position:relative;overflow:hidden}:root[data-theme=rose] .stat-card:before,:root[data-theme=rose] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), transparent);opacity:.6;height:1px;animation:6s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=synthwave] .stat-card,:root[data-theme=synthwave] .registry-card{position:relative;overflow:hidden}:root[data-theme=synthwave] .stat-card:before,:root[data-theme=synthwave] .registry-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--accent-alt), var(--accent-warm), transparent);height:2px;animation:2.5s infinite flourish-pulse;position:absolute;top:0;left:0;right:0}:root[data-theme=synthwave] .btn-primary{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));color:var(--bg);background-size:200%;border-color:#0000;animation:3s infinite rainbow-shift}:root[data-theme=synthwave] .btn-primary:hover{background:linear-gradient(90deg, var(--accent), var(--accent-alt), var(--accent-warm), var(--accent-alt), var(--accent));filter:brightness(1.15);background-size:200%}:root[data-theme=synthwave] .status-dot.online{box-shadow:0 0 10px var(--green), 0 0 4px var(--accent);animation:2s infinite flourish-pulse}:root[data-theme=synthwave] .status-dot.online.status-dot--pulse{animation:.7s ease-out statusBlink}:root[data-theme=synthwave] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-alt))}:root[data-theme=synthwave] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-alt), var(--accent-warm))}.token-gate{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.token-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:16px;width:360px;padding:40px 36px;display:flex}.token-card h2{color:var(--text-h);font-size:18px;font-weight:600}.token-card p{color:var(--text);font-size:13px}.token-card code{background:var(--bg-card2);border:1px solid var(--border);color:var(--green);border-radius:4px;padding:2px 6px;font-size:12px}.token-input-row{gap:6px;width:100%;display:flex}.token-input-row input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:13px}.token-input-row input:focus{border-color:var(--green)}.token-err{color:var(--red);font-size:12px;font-family:var(--mono)}.toast-stack{z-index:320;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:64px;right:18px}.toast{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent-alt) 6%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent);min-width:260px;max-width:360px;color:var(--text-h);font-size:12px;font-family:var(--mono);box-shadow:0 12px 30px #00000059, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;padding:10px 12px 10px 14px;line-height:1.4;animation:.18s ease-out toast-in;position:relative}.toast:before{content:"";background:color-mix(in srgb, var(--accent) 55%, var(--text-dim));border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.toast-success{border-color:color-mix(in srgb, var(--success) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--success) 10%, transparent), color-mix(in srgb, var(--accent-alt) 5%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-success:before{background:var(--success)}.toast-error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--danger) 12%, transparent), color-mix(in srgb, var(--danger) 5%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-error:before{background:var(--danger)}.toast-info{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 11%, transparent), color-mix(in srgb, var(--accent-alt) 7%, transparent)), color-mix(in srgb, var(--bg-card) 90%, transparent)}.toast-info:before{background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.toast-stack{bottom:68px;left:12px;right:12px}.toast{width:100%;min-width:0;max-width:none}}.theme-picker-modal{max-width:760px}.theme-picker-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.theme-picker-toggle-row{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:inline-flex}.theme-picker-toggle-row input{margin:0}.theme-picker-toggle-text{color:var(--text)}.theme-picker-card{border:1px solid var(--border);background:var(--bg-card2);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:10px;transition:border-color .12s,background .12s;display:flex}.theme-picker-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-card2))}.theme-picker-card.active{border-color:color-mix(in srgb, var(--green) 45%, var(--border));background:color-mix(in srgb, var(--green) 10%, var(--bg-card2))}.theme-picker-card-label{color:var(--text-h);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.theme-picker-card-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--bg);background:var(--text-dim);border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:700}.theme-picker-card-hint{color:var(--text-dim);font-size:11px}@media (width<=768px){.theme-picker-grid{grid-template-columns:1fr}}.sheet--centered.information-modal{border-color:color-mix(in srgb, var(--accent) 32%, var(--border));background:radial-gradient(circle at 88% -12%, color-mix(in srgb, var(--accent-alt) 16%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, var(--bg-card)) 0%, var(--bg-card) 100%);max-width:700px}.information-modal-buttons{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.report-bubble{z-index:150;border:1px solid var(--border);background:var(--bg-card,#1a1a2e);min-width:240px;max-width:340px;color:var(--text,#e2e8f0);font-size:12px;font-family:var(--mono);box-shadow:0 16px 40px #00000073, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.45;animation:.2s cubic-bezier(.22,1,.36,1) bubble-in;display:flex;position:fixed;top:50px;right:16px}.report-bubble:before{content:"";background:var(--accent,#6c63ff);border-radius:3px;width:3px;position:absolute;top:10px;bottom:10px;left:0}.report-bubble--generating:before{background:var(--accent,#6c63ff)}.report-bubble--done:before{background:var(--success,#4ade80)}.report-bubble--error:before{background:var(--danger,#f87171)}.report-bubble--generating{border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.report-bubble--done{border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.report-bubble--error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.report-bubble-icon{color:var(--text-dim,#94a3b8);flex-shrink:0;margin-top:1px}.report-bubble--done .report-bubble-icon{color:var(--success,#4ade80)}.report-bubble--error .report-bubble-icon{color:var(--danger,#f87171)}.report-bubble-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.report-bubble-body--clickable{cursor:pointer;border-radius:6px;margin:-4px -6px;padding:4px 6px;transition:background .15s}.report-bubble-body--clickable:hover{background:color-mix(in srgb, var(--success,#4ade80) 10%, transparent)}.report-bubble-title{color:var(--text-h,#f1f5f9);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.report-bubble-label{color:var(--text,#e2e8f0);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.report-bubble-path{color:var(--success,#4ade80);word-break:break-all;font-size:11px}.report-bubble-error{color:var(--danger,#f87171);word-break:break-all;font-size:11px}.report-bubble-dismiss{width:20px;height:20px;color:var(--text-dim,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;transition:background .15s,color .15s;display:flex}.report-bubble-dismiss:hover{background:color-mix(in srgb, var(--text-dim) 15%, transparent);color:var(--text,#e2e8f0)}@keyframes bubble-in{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);width:13rem;transition:width .18s cubic-bezier(.16, 1, .3, 1), background-color var(--t-base) ease, border-color var(--t-base) ease;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden auto}.sidebar--collapsed{width:3.25rem}.sidebar-collapse-row{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:flex-end;padding:8px;display:flex}.sidebar--collapsed .sidebar-collapse-row{justify-content:center}.sidebar-collapse-btn{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:flex}.sidebar-collapse-btn:hover{background:color-mix(in srgb, var(--accent) 10%, var(--bg-card2));color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 26%, var(--border))}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex}.sidebar-nav--bottom{border-top:1px solid var(--border);transition:border-color var(--t-base) ease;flex:none;margin-top:auto;position:relative}.sidebar-nav-item{color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:flex;position:relative}.sidebar-nav-item.collapsed{justify-content:center;padding:8px}.sidebar-nav-item:hover{background:color-mix(in srgb, var(--accent) 10%, var(--bg-card2));color:var(--text-h)}.sidebar-nav-item.active{color:color-mix(in srgb, var(--accent) 82%, var(--text-h));background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.sidebar-nav-item:before{content:"";background:var(--accent);border-radius:2px;width:3px;height:60%;transition:transform .18s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:-4px;transform:translateY(-50%)scaleY(0)}.sidebar-nav-item.active:before{transform:translateY(-50%)scaleY(1)}.sidebar-nav-icon{flex-shrink:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.sidebar-nav-item.collapsed:hover .sidebar-nav-icon{transform:scale(1.18)translateY(-1px)}.sidebar-nav-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=768px){.sidebar{z-index:150;width:13rem;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--mobile-open{transform:translate(0)}.sidebar-collapse-row{display:none}}.dashboard-toolbar{justify-content:flex-end;gap:8px;display:flex}.dashboard-empty-state{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:40px 0;font-size:13px;display:flex}.dashboard-widget-frame{border:1px dashed color-mix(in srgb, var(--accent) 40%, var(--border));border-radius:var(--radius);cursor:grab;padding:8px;position:relative}.dashboard-widget-frame.drag-reorder-item--dragging{cursor:grabbing}.dashboard-widget-toolbar{align-items:center;gap:8px;padding:4px 6px 8px;display:flex}.dashboard-widget-grip{color:var(--text-dim);align-items:center;display:flex}.dashboard-widget-frame-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);flex:1;font-size:11px;font-weight:600}.dashboard-widget-remove:hover{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 48%, var(--border))}.dashboard-add-widget-list{flex-direction:column;gap:6px;margin-top:12px;display:flex}.dashboard-add-widget-item{background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.dashboard-add-widget-item:hover{background:color-mix(in srgb, var(--accent) 11%, var(--bg-card2));border-color:color-mix(in srgb, var(--accent) 48%, var(--border))}.dashboard-add-widget-icon{color:var(--accent);flex-shrink:0;display:flex}.dashboard-add-widget-text{flex-direction:column;flex:1;gap:2px;display:flex}.dashboard-add-widget-label{color:var(--text-h);font-size:13px;font-weight:600}.dashboard-add-widget-desc{color:var(--text-dim);font-size:11px}.section-title-icon{flex-shrink:0}.widget-list{padding:8px 0}.widget-list-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 18px;font-size:12px;display:flex}.widget-list-row:last-child{border-bottom:none}.widget-list-row-main{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sheet--centered.command-palette{width:min(760px,95vw);max-height:72vh}.command-palette-input-wrap{border-bottom:1px solid var(--border);color:var(--text-dim);align-items:center;gap:8px;padding:12px 14px;display:flex}.command-palette-input{width:100%;color:var(--text-h);background:0 0;border:none;outline:none;font-size:13px}.command-palette-list{max-height:calc(72vh - 52px);overflow-y:auto}.command-palette-item{border:none;border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.command-palette-item:hover,.command-palette-item.active{background:var(--bg-card2)}.command-palette-label{color:var(--text-h);font-size:12px}.command-palette-hint{color:var(--text-dim);flex-shrink:0;margin-left:12px;font-size:11px}.command-palette-empty{color:var(--text-dim);padding:14px;font-size:12px}@media (width<=600px){.command-palette{width:min(94vw,860px)}}.sheet--centered.confirm-action-modal{border-color:color-mix(in srgb, var(--danger) 30%, var(--border));background:radial-gradient(circle at 85% -10%, color-mix(in srgb, var(--danger) 18%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--danger) 8%, var(--bg-card)) 0%, var(--bg-card) 100%);max-width:520px}.confirm-action-impact{gap:8px;margin-top:2px;display:grid}.confirm-action-impact-item{border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent);color:color-mix(in srgb, var(--danger) 70%, var(--text));border-radius:8px;padding:10px 11px;font-size:13px}.confirm-action-buttons{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.chat-fab{z-index:1200;background:var(--bg-card2);height:34px;color:var(--accent);border:1px solid var(--border);cursor:pointer;font-family:var(--mono);letter-spacing:.03em;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:600;transition:transform .15s,box-shadow .15s,border-color .15s,color .15s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0006}.chat-fab:hover{border-color:var(--accent);transform:translate(-50%)translateY(-1px);box-shadow:0 4px 14px #00000080}.chat-widget{z-index:1200;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:280px;min-height:350px;display:flex;position:fixed;bottom:24px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 32px #00000080}.chat-resize-top{cursor:ns-resize;z-index:10;height:6px;position:absolute;top:0;left:8px;right:8px}.chat-resize-left{cursor:ew-resize;z-index:10;width:6px;position:absolute;top:8px;bottom:8px;left:0}.chat-layout{flex:1;height:100%;display:flex;overflow:hidden}.chat-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;width:180px;min-width:140px;display:flex}.chat-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.chat-sidebar-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.chat-new-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;align-items:center;padding:2px 4px;display:flex}.chat-new-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-session-list{flex:1;padding:4px 0;overflow-y:auto}.chat-session-empty{color:var(--text-dim);text-align:center;padding:12px;font-size:11px}.chat-sidebar-footer{border-top:1px solid var(--border);padding:8px 10px}.chat-delete-all-btn{border:1px solid var(--border);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;transition:color .15s,border-color .15s,background .15s;display:flex}.chat-delete-all-btn:hover{color:var(--danger);border-color:var(--danger);background:#f8717114}.chat-session-item{cursor:pointer;border-radius:4px;align-items:center;gap:6px;min-width:0;margin:2px 4px;padding:6px 10px;transition:background .1s;display:flex}.chat-session-item:hover{background:var(--bg-card2)}.chat-session-item.active{background:var(--bg-card2);border-left:2px solid var(--accent)}.chat-session-icon{color:var(--text-dim);flex-shrink:0}.chat-session-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.chat-session-delete{cursor:pointer;color:var(--text-dim);opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;align-items:center;padding:2px;display:flex}.chat-session-item:hover .chat-session-delete{opacity:1}.chat-session-delete:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.chat-sidebar-toggle{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 4px;display:flex}.chat-sidebar-toggle:hover{color:var(--accent);border-color:var(--accent)}.chat-header-info{text-align:left;min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-direction:column;flex:1;gap:1px;padding:2px 4px;transition:background .15s;display:flex}.chat-header-info:hover{background:var(--bg-card2)}.chat-header-title{color:var(--text);font-size:12px;font-weight:700}.chat-context-badge{background:rgba(var(--accent-rgb,56,189,248), .15);color:var(--accent);border-radius:3px;align-self:flex-start;padding:1px 5px;font-size:9px}.chat-session-label{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.chat-close-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;display:flex}.chat-close-btn:hover{color:var(--text);background:var(--bg-card2)}.chat-message-list-wrapper{flex:1;min-height:0;position:relative;overflow:hidden}.chat-message-list{flex-direction:column;gap:8px;height:100%;padding:12px 10px;display:flex;overflow-y:auto}.chat-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px 20px;display:flex}.chat-empty-icon{color:var(--accent);opacity:.7;margin-bottom:4px}.chat-empty-title{color:var(--text);letter-spacing:.02em;margin:0;font-size:14px;font-weight:700}.chat-empty-sub{color:var(--text-dim);max-width:220px;margin:0 0 8px;font-size:11px;line-height:1.5}.chat-empty-suggestions{flex-wrap:wrap;justify-content:center;gap:6px;max-width:300px;display:flex}.chat-empty-chip{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);color:var(--accent);cursor:pointer;border-radius:20px;padding:4px 12px;font-family:inherit;font-size:11px;font-weight:500;transition:background .15s,box-shadow .15s}.chat-empty-chip:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--accent) 18%, transparent)}.chat-message{flex-direction:column;display:flex}.chat-message--user{align-items:flex-end}.chat-message--assistant{align-items:flex-start}.chat-message-bubble{word-break:break-word;border-radius:10px;max-width:85%;padding:8px 11px;font-size:13px;line-height:1.5}.chat-message--user .chat-message-bubble{background:var(--accent);color:var(--bg);border-bottom-right-radius:3px}.chat-message--assistant .chat-message-bubble{background:var(--bg-card2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:3px}.chat-message--error .chat-message-bubble{border-color:var(--danger);color:var(--danger)}.chat-message-bubble--tool{max-width:none;background:0 0!important;border:none!important;padding:0!important}.chat-typing-indicator{align-items:center;gap:4px;height:16px;display:flex}.chat-typing-indicator span{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-bounce}.chat-typing-indicator span:nth-child(2){animation-delay:.2s}.chat-typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.chat-retry-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-top:6px;padding:2px 8px;font-size:11px;display:block}.chat-retry-btn:hover{opacity:.8}.chat-message-stats{color:var(--text-dim);margin-top:2px;padding-left:4px;font-family:monospace;font-size:10px}.chat-message-markdown{font-size:13px}.chat-message-markdown .chat-md-p{margin:0 0 6px}.chat-message-markdown .chat-md-p:last-child{margin-bottom:0}.chat-message-markdown .chat-md-list{margin:4px 0 4px 16px;padding:0}.chat-message-markdown .chat-md-list li{margin-bottom:2px}.chat-message-markdown .chat-inline-code{background:color-mix(in srgb, var(--text) 12%, transparent);border-radius:3px;padding:1px 4px;font-family:monospace;font-size:12px}.chat-message-markdown h3,.chat-message-markdown h4{margin:6px 0 4px;font-size:13px}.chat-input-area{border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.chat-textarea{resize:none;background:var(--bg-card2);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:12px;line-height:1.5;overflow-y:auto}.chat-textarea:focus{border-color:var(--accent)}.chat-textarea::placeholder{color:var(--text-dim)}.chat-input-actions{align-items:center;gap:6px;display:flex}.chat-send-btn{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;display:flex}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-send-btn:not(:disabled):hover{opacity:.85}.chat-stop-btn{background:var(--danger)}@media (width<=640px){.chat-widget{border-radius:0;width:100vw!important;height:100dvh!important;bottom:0!important;left:0!important;transform:none!important}.chat-fab{bottom:16px;left:50%;transform:translate(-50%)}}.chat-thinking-indicator{color:var(--text-dim);font-size:12px;animation:1.5s ease-in-out infinite chat-thinking-pulse}@keyframes chat-thinking-pulse{0%,to{opacity:.4}50%{opacity:1}}.chat-message-bubble{position:relative}.chat-copy-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;opacity:0;border-radius:4px;align-items:center;padding:3px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.chat-message-bubble:hover .chat-copy-btn{opacity:1}.chat-copy-btn:hover{color:var(--accent);border-color:var(--accent)}.chat-session-rename-input{min-width:0;color:var(--text);background:var(--bg-card2);border:1px solid var(--accent);border-radius:3px;outline:none;flex:1;padding:1px 4px;font-family:inherit;font-size:11px}.chat-message-meta{align-items:center;gap:8px;max-width:85%;margin-top:2px;padding-left:4px;display:flex}.chat-message-meta .chat-message-time{margin-left:auto}.chat-message-time{color:var(--text-dim);font-family:monospace;font-size:10px}.chat-scroll-bottom-pill{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;z-index:5;border-radius:16px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;transition:border-color .15s,color .15s;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000004d}.chat-scroll-bottom-pill:hover{color:var(--accent);border-color:var(--accent)}.chat-emoji-wrapper{position:relative}.chat-emoji-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:6px;display:flex}.chat-emoji-btn:hover{color:var(--accent)}.chat-emoji-btn:disabled{opacity:.4;cursor:default}.chat-emoji-picker{background:var(--bg-card);border:1px solid var(--border);z-index:20;border-radius:8px;grid-template-columns:repeat(8,1fr);gap:2px;width:260px;margin-bottom:6px;padding:6px;display:grid;position:absolute;bottom:100%;right:0;box-shadow:0 4px 16px #0006}.chat-emoji-item{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;font-size:16px;line-height:1;display:flex}.chat-emoji-item:hover{background:var(--bg-card2)}.chat-tool-call-card{background:var(--bg-card);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-left:3px solid var(--accent);max-width:340px;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 8%, transparent);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;font-size:12px;display:flex}.chat-tool-call-header{align-items:center;gap:7px;display:flex}.chat-tool-call-icon{color:var(--accent);opacity:.8;flex-shrink:0}.chat-tool-call-name{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);font-size:11px;font-weight:700}.chat-tool-call-desc{color:var(--text-dim);margin:0;font-size:11px;line-height:1.45}.chat-tool-call-args{background:var(--bg);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:3px;padding:6px 8px;display:flex}.chat-tool-call-arg{font-size:11px;font-family:var(--mono);grid-template-columns:auto 1fr;gap:8px;line-height:1.4;display:grid}.chat-tool-call-arg-key{color:var(--text-dim);flex-shrink:0}.chat-tool-call-arg-val{color:var(--text);word-break:break-all}.chat-tool-call-warning{letter-spacing:.02em;color:var(--warning,#fbbf24);background:color-mix(in srgb, var(--warning,#fbbf24) 8%, transparent);border:1px solid color-mix(in srgb, var(--warning,#fbbf24) 25%, transparent);border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:10px;font-weight:500;display:flex}.chat-tool-call-actions{gap:6px;margin-top:2px;display:flex}.chat-tool-call-btn{cursor:pointer;letter-spacing:.03em;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-family:inherit;font-size:11px;font-weight:600;transition:background .15s,box-shadow .15s,opacity .15s;display:flex}.chat-tool-call-btn--approve{background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent)}.chat-tool-call-btn--approve:hover{background:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--accent) 20%, transparent)}.chat-tool-call-btn--reject{background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.chat-tool-call-btn--reject:hover{background:color-mix(in srgb, var(--danger) 20%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--danger) 15%, transparent)}.chat-tool-call-btn--approve:disabled,.chat-tool-call-btn--reject:disabled{opacity:.35;cursor:default;box-shadow:none}.chat-tool-call-card--resolved{opacity:.75;border-left-color:color-mix(in srgb, var(--accent) 50%, var(--border));box-shadow:none}.chat-tool-call-card--cancelled{border-left-color:color-mix(in srgb, var(--danger) 60%, var(--border))}.chat-tool-call-badge{letter-spacing:.04em;background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);border-radius:3px;align-items:center;gap:4px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.chat-tool-call-card--cancelled .chat-tool-call-badge{background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger)}.chat-tool-call-badge--danger{background:color-mix(in srgb, var(--danger) 10%, transparent)!important;border-color:color-mix(in srgb, var(--danger) 30%, transparent)!important;color:var(--danger)!important}.chat-tool-call-output{flex-direction:column;gap:4px;display:flex}.chat-tool-call-stdout,.chat-tool-call-stderr{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:7px 10px;font-size:10.5px;line-height:1.55}.chat-tool-call-stdout{background:var(--bg);border:1px solid var(--border);color:var(--text)}.chat-tool-call-stderr{background:color-mix(in srgb, var(--danger) 6%, transparent);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.chat-tool-output-block{position:relative}.chat-tool-call-output--collapsed{max-height:140px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.chat-tool-output-toggle{width:100%;color:var(--accent);letter-spacing:.04em;cursor:pointer;text-align:left;opacity:.8;background:0 0;border:none;padding:4px 0 0;font-family:inherit;font-size:10px;font-weight:600;display:block}.chat-tool-output-toggle:hover{opacity:1}.chat-tool-output-copy{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;opacity:0;z-index:1;border-radius:3px;align-items:center;padding:2px 4px;transition:opacity .15s,color .15s;display:flex;position:absolute;top:5px;right:7px}.chat-tool-output-block:hover .chat-tool-output-copy{opacity:1}.chat-tool-output-copy:hover{color:var(--accent);border-color:var(--accent)}.layout{background:radial-gradient(circle at 8% 6%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 28%), radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent-alt) 11%, transparent), transparent 34%), radial-gradient(circle at 52% 95%, color-mix(in srgb, var(--accent-warm) 9%, transparent), transparent 42%), var(--bg);flex-direction:column;min-height:100vh;display:flex}.demo-banner{background:color-mix(in srgb, var(--amber) 12%, var(--bg));border-bottom:1px solid color-mix(in srgb, var(--amber) 35%, var(--bg));color:var(--amber);z-index:101;align-items:center;gap:8px;padding:6px 16px;font-size:12px;font-weight:500;display:flex;position:sticky;top:0}.demo-banner button{border:1px solid color-mix(in srgb, var(--amber) 50%, transparent);color:var(--amber);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:2px 10px;font-size:11px;transition:background .15s}.demo-banner button:hover{background:color-mix(in srgb, var(--amber) 18%, transparent)}.app-body{flex:1;display:flex;overflow:hidden}.sidebar-backdrop{z-index:140;background:#00000080;position:fixed;inset:0}.main{flex-direction:column;flex:1;gap:10px;width:100%;max-width:1400px;margin:0 auto;padding:10px 24px 12px;display:flex;overflow-y:auto}.main--flush{width:auto;max-width:100%;top:40px;left:var(--sidebar-w,0);gap:0;margin:0;padding:0;transition:left .18s cubic-bezier(.16,1,.3,1);position:fixed;bottom:0;right:0;overflow:hidden}.page-slot{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.main--flush .page-slot{overflow:hidden}.layout--demo .main--flush{top:85px}.browser-page{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.browser-page-top{background:var(--bg-card2);border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 20px}.browser-page-row{flex:1 1 0;min-height:0;display:flex;overflow:hidden}.browser-nav{border-right:1px solid var(--border);flex-direction:column;flex:0 0 240px;padding:10px 0;display:flex;overflow-y:auto}.browser-nav-narrow{padding:0}.browser-nav-title{color:var(--text-h);align-items:center;gap:6px;padding:4px 14px 10px;font-size:12px;font-weight:600;display:flex}.browser-nav-title:not(:first-child){padding-top:14px}.browser-nav-item{text-align:left;width:100%;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;display:flex}.browser-nav-item:hover{background:var(--bg-card2)}.browser-nav-item--active{color:var(--green);border-left-color:var(--green);background:var(--green-dim)}.browser-nav-item--column{flex-direction:column;align-items:flex-start;gap:2px}.browser-nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.browser-nav-desc{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;overflow:hidden}.browser-nav-count{color:var(--text-dim);background:var(--bg-card2);border:1px solid var(--border);border-radius:10px;flex-shrink:0;padding:1px 7px;font-size:10.5px}.browser-nav-item--active .browser-nav-count{color:var(--green);border-color:#00e67659}.browser-main-col,.browser-main{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex;overflow:hidden}.browser-main .section-header,.browser-main .registry-controls{flex-shrink:0}.browser-scroll{flex:1 1 0;overflow-y:auto}.browser-scroll>.section{margin:0}.browser-aside{border-left:1px solid var(--border);flex:0 0 320px;padding:12px 10px;transition:flex-grow .2s cubic-bezier(.16,1,.3,1),flex-basis .2s cubic-bezier(.16,1,.3,1);overflow-y:auto}.browser-page-row--aside-grow .browser-aside{flex:1 1 0}@media (width<=1280px){.browser-nav{flex-basis:200px}}@media (width<=980px){.browser-page-row{flex-direction:column;overflow-y:auto}.browser-nav,.browser-main-col{border:none;border-bottom:1px solid var(--border);flex:none}.browser-main{overflow:visible}.browser-nav{max-height:28vh}.browser-scroll{overflow-y:visible}}.topbar{background:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;height:42px;transition:background-color var(--t-base) ease, border-color var(--t-base) ease;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.layout--demo .topbar{top:33px}.layout--demo .report-bubble{top:83px}.topbar-brand{align-items:center;gap:10px;display:flex}.brand-text{color:var(--text-h);letter-spacing:.5px;font-size:15px;font-weight:600}.brand-update-chip{color:color-mix(in srgb, var(--accent-warm) 88%, var(--text-h));background:color-mix(in srgb, var(--accent-warm) 12%, var(--bg-card2));border:1px solid color-mix(in srgb, var(--accent-warm) 38%, var(--border));cursor:pointer;border-radius:4px;padding:2px 7px;font-size:11px;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.brand-update-chip:hover{color:color-mix(in srgb, var(--accent-warm) 82%, white);background:color-mix(in srgb, var(--accent-warm) 18%, var(--bg-card2));border-color:color-mix(in srgb, var(--accent-warm) 58%, var(--border))}.topbar-right{align-items:center;gap:12px;display:flex}.icon-btn.topbar-hamburger-btn{display:none}.topbar-meta{color:var(--text-dim);font-size:11px;font-family:var(--mono);align-items:center;gap:4px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.online{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot.polling{background:var(--amber);box-shadow:0 0 6px var(--amber)}.status-dot.error{background:var(--red)}.status-dot.loading{background:var(--amber);animation:1s infinite pulse}.status-dot--pulse{animation:.7s ease-out statusBlink}.status-label{color:var(--text);font-size:12px;font-family:var(--mono)}.icon-btn{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));color:var(--text);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s,border-color .15s;display:flex}.icon-btn:hover{background:color-mix(in srgb, var(--accent) 11%, var(--bg-card2));color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 48%, var(--border))}.topbar-link-btn{text-decoration:none}.theme-menu{position:relative}.palette-icon-k{font-size:11px;font-weight:700;line-height:1}.palette-hint-floating{border:1px solid color-mix(in srgb, var(--accent) 38%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-card));z-index:320;border-radius:8px;align-items:stretch;animation:.25s paletteHintIn;display:flex;position:fixed;bottom:58px;right:18px;overflow:hidden;box-shadow:0 10px 24px #0003}.palette-hint-main{color:var(--text-h);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;min-width:190px;padding:8px 10px;display:flex}.palette-hint-main:hover{background:color-mix(in srgb, var(--accent) 13%, var(--bg-card2))}.palette-hint-title{font-size:12px;font-weight:600}.palette-hint-kbd{color:var(--text-dim);font-size:11px}.palette-hint-close{border:none;border-left:1px solid color-mix(in srgb, var(--accent) 34%, var(--border));color:var(--text-dim);cursor:pointer;background:0 0;width:28px}.palette-hint-close:hover{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent)}@keyframes paletteHintIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.run-mobile-switcher{display:none}.theme-menu-popover{background:var(--bg-card);border:1px solid var(--border);z-index:120;border-radius:10px;min-width:220px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 14px 32px #00000047}.theme-menu-item{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;flex-direction:column;gap:2px;padding:10px 11px;transition:background .15s;display:flex}.theme-menu-item:last-child{border-bottom:0}.theme-menu-item:hover{background:var(--bg-card2)}.theme-menu-item.active{background:color-mix(in srgb, var(--blue) 16%, var(--bg-card))}.theme-menu-label{color:var(--text-h);font-size:12.5px;font-weight:600}.theme-menu-hint{color:var(--text-dim);font-size:11px}.btn-primary{background:var(--green-dim);border:1px solid var(--green);color:var(--green);cursor:pointer;font-family:var(--mono);border-radius:6px;width:100%;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:#00e67640}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:14px;padding:16px 18px;transition:border-color .2s;display:flex}.stat-card:hover{border-color:var(--text-dim)}.stat-icon{flex-shrink:0;margin-top:2px}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;font-size:11px}.stat-value{font-size:22px;font-weight:600;font-family:var(--mono);margin:2px 0;line-height:1.2}.stat-sub{color:var(--text-dim);font-size:11px}.kpi-strip{flex-wrap:wrap;align-items:stretch;gap:22px;padding:6px 0;display:flex}.kpi-strip-item{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;min-width:160px;display:flex}.kpi-strip-top{align-items:center;gap:8px;line-height:1.2;display:flex}.kpi-strip-icon{flex-shrink:0;display:inline-flex}.kpi-strip-value{color:var(--text-h);font-size:15px;font-weight:600;font-family:var(--mono)}.kpi-strip-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;text-align:center;white-space:nowrap;font-size:10.5px}.kpi-strip-divider{background:var(--border);flex-shrink:0;align-self:stretch;width:1px}@media (width<=780px){.kpi-strip-divider{display:none}}.app-footer{flex-shrink:0;justify-content:center;align-items:center;height:22px;margin-top:auto;display:flex}.app-footer-link{letter-spacing:.05em;color:var(--text-dim);transition:color var(--t-base) ease;font-size:10px;text-decoration:none}.app-footer-link:hover{color:var(--text)}.section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:5px 0;overflow:hidden}.section-header{border-bottom:1px solid var(--border);background:var(--bg-card2);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.section-header--collapsible{cursor:pointer;text-align:left;border:none;width:100%;transition:background .12s}.section-header--collapsible:hover{background:color-mix(in srgb, var(--bg-card2) 80%, var(--bg-card))}.section-header h3{color:var(--text-h);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.section-header-side{align-items:center;gap:10px;display:flex}.section-install-badge{font-family:var(--mono);letter-spacing:0;text-transform:none;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.section-chevron{color:var(--text-dim);align-items:center;display:inline-flex}.section-header--clickable{cursor:pointer;transition:background .12s}.section-header--clickable:hover{background:color-mix(in srgb, var(--bg-card2) 80%, var(--bg-card))}.section-header-controls{align-items:center;gap:8px;display:flex}.section-meta{color:var(--text-dim);font-size:11px}.section-meta--padded{padding:16px 0}.badge{background:var(--green-dim);color:var(--green);border:1px solid #00e6764d;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.resources-layout{grid-template-columns:1fr 1fr;gap:0;display:grid}.gauges-col{border-right:1px solid var(--border);flex-direction:column;gap:10px;padding:18px;display:flex}.chart-col{flex-direction:column;gap:8px;padding:18px;display:flex}.gauge-row{grid-template-columns:64px 1fr 48px;align-items:center;gap:10px;display:grid}.gauge-label{color:var(--text);font-size:12px}.gauge-bar-bg{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.gauge-bar-fill{border-radius:3px;height:100%;transition:width .5s}.gauge-val{font-family:var(--mono);text-align:right;font-size:12px}.resource-detail-row{cursor:pointer;flex-wrap:wrap;flex:auto;justify-content:space-evenly;margin-top:4px;display:flex}.resource-detail{color:var(--text-dim);font-size:11px;font-family:var(--mono);cursor:pointer;align-items:center;gap:4px;display:flex}.chart-legend{color:var(--text-dim);gap:16px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.chart-wrap{flex:1}.chart-placeholder{color:var(--text-dim);text-align:center;padding:30px 0;font-size:12px}.cat-list{padding:8px 0 0}.cat-list-mode-note{color:var(--text-dim);font-size:11px;font-family:var(--mono);padding:0 18px 8px}.cat-row{border-bottom:1px solid var(--border)}.cat-row:last-child{border-bottom:none}.cat-list-toggle-row{border:none;border-top:1px solid var(--border);background:var(--bg-card2);width:100%;color:var(--text-dim);font-size:11px;font-family:var(--mono);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 18px;transition:color .12s,background .12s;display:flex}.cat-list-toggle-row:hover{color:var(--text-h);background:color-mix(in srgb, var(--bg-card2) 72%, var(--bg-card))}.cat-list-toggle-chevron{align-items:center;display:inline-flex}.cat-header{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;grid-template-columns:20px 160px 56px 1fr 18px;align-items:center;gap:10px;padding:10px 18px;transition:background .12s;display:grid}.cat-header:hover{background:var(--bg-card2)}.cat-icon{justify-content:center;display:flex}.cat-name{color:var(--text-h);text-align:left;text-transform:capitalize;font-size:12px;font-weight:500}.cat-badge{font-family:var(--mono);text-align:center;border:1px solid #0000;border-radius:10px;padding:2px 6px;font-size:11px}.cat-bar-bg{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.cat-bar-fill{border-radius:2px;height:100%;transition:width .4s}.cat-chevron{color:var(--text-dim);justify-content:center;display:flex}.cat-tools-grid{flex-wrap:wrap;gap:6px;padding:8px 18px 14px 48px;display:flex}.tool-chip{font-size:11px;font-family:var(--mono);border:1px solid var(--border);background:var(--bg-card2);border-radius:4px;align-items:center;gap:4px;padding:3px 8px;display:flex}.tool-chip.available{color:var(--text-h);border-color:#00e67633}.tool-chip.missing{color:var(--text-dim);border-color:#ff4d4d26}.tool-chip--clickable{cursor:pointer}.tool-chip--clickable:hover{background:var(--bg-card);filter:brightness(1.15)}.registry-controls{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 18px;display:flex}.registry-controls-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.registry-missing-toggle{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-size:11px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.registry-missing-toggle:hover{color:var(--text-h);border-color:var(--text-dim)}.registry-missing-toggle.active{background:color-mix(in srgb, var(--red) 12%, transparent);border-color:color-mix(in srgb, var(--red) 40%, transparent);color:var(--red)}.search-input{background:var(--bg-card2);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;width:100%;max-width:320px;padding:7px 12px;font-size:12px}.search-input:focus{border-color:var(--green)}.search-input::placeholder{color:var(--text-dim)}.search-input-wrap{width:100%;max-width:320px;position:relative}.search-input-wrap .search-input{width:100%;max-width:none;padding-right:32px}.search-clear-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear-btn:hover{color:var(--text-h)}.cat-tabs{flex-wrap:wrap;gap:6px;display:flex}.cat-tab{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;text-transform:capitalize;border-radius:4px;padding:3px 10px;font-size:11px;transition:background .12s,color .12s}.cat-tab:hover{background:var(--border);color:var(--text-h)}.cat-tab.active{background:var(--green-dim);color:var(--green);border-color:#00e67666}.registry-grid{background:var(--border);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;display:grid}.registry-grid--wide{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.registry-grid--wider{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.registry-card{background:var(--bg-card);flex-direction:column;gap:6px;padding:14px 16px;transition:background .12s;display:flex}.registry-card:hover{background:var(--bg-card2)}.registry-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.registry-installed{flex-shrink:0;align-items:center;margin-left:auto;display:inline-flex}.registry-name{color:var(--text-h);font-size:13px;font-weight:600}.registry-cat{color:var(--text-dim);background:var(--bg-card2);border:1px solid var(--border);text-transform:capitalize;white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:10px}.registry-desc{color:var(--text);font-size:12px;line-height:1.4}.registry-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.registry-endpoint{color:var(--text-dim);font-size:10px}.registry-eff{font-family:var(--mono);color:var(--green);letter-spacing:1px;font-size:10px}.loading-state{color:var(--text-dim);flex-direction:column;align-items:center;gap:12px;padding:80px 0;font-size:13px;display:flex}.error-banner{background:var(--red-dim);color:var(--red);border-radius:var(--radius);border:1px solid #ff4d4d4d;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.empty-state{text-align:center;color:var(--text-dim);grid-column:1/-1;padding:32px 0;font-size:13px}.tasks-empty{color:var(--text-dim);flex-direction:column;align-items:center;gap:10px;padding:48px 0;display:flex}.page-content{flex-direction:column;gap:10px;display:flex}.code-block{border:1px solid var(--border);border-radius:6px;margin-top:8px;overflow:hidden}.code-block-header{background:var(--bg-card2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 10px;display:flex}.code-lang{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.code-copy{width:24px;height:24px}.code-pre{color:var(--text-h);white-space:pre;background:var(--bg-card);margin:0;padding:12px 14px;font-size:12px;line-height:1.5;overflow-x:auto}@media (width<=768px){.app-body{--sidebar-w:0px}.main{gap:12px;padding:10px 10px 12px}.main--flush{top:110px}.layout--demo .main--flush{top:143px}.demo-banner{flex-wrap:wrap;gap:6px;padding:6px 10px}.demo-banner button{margin-left:0}.topbar{flex-wrap:nowrap;align-items:center;gap:6px;height:auto;padding:8px 10px}.layout--demo .topbar{top:47px}.report-bubble{max-width:none;top:66px;left:10px;right:10px}.layout--demo .report-bubble{top:105px}.topbar-brand{flex:1 1 0;gap:8px;min-width:0}.brand-text{white-space:nowrap;text-overflow:ellipsis;max-width:46vw;font-size:12px;overflow:hidden}.brand-version,.brand-update-chip{display:none}.topbar-right{flex-wrap:nowrap;justify-content:flex-end;gap:6px;width:auto;min-width:0;margin-left:auto}.icon-btn.topbar-hamburger-btn{display:inline-flex}.topbar-meta{display:none}.status-label{font-size:11px}.icon-btn{width:28px;height:28px}.palette-hint-floating{max-width:calc(100vw - 20px);bottom:64px;right:10px}.palette-hint-main{min-width:0}.resources-layout{grid-template-columns:1fr}.gauges-col{border-right:none;border-bottom:1px solid var(--border)}.cat-header{grid-template-columns:20px 1fr 48px 18px}.cat-header .cat-bar-bg{display:none}.section-header{flex-wrap:wrap;gap:8px;padding:12px}.section-header h3{font-size:12px}.section-meta{font-size:10px}.registry-controls,.cat-list-mode-note{padding-left:12px;padding-right:12px}.cat-header{gap:8px;padding-left:12px;padding-right:12px}.cat-tools-grid{padding:8px 12px 12px 34px}.registry-grid,.registry-grid--wide,.registry-grid--wider{grid-template-columns:1fr}.registry-card{padding:12px}.search-input-wrap,.search-input{max-width:none}.modal-backdrop{padding:10px}.modal{max-height:calc(100vh - 20px)}.modal-header,.modal-body{padding-left:12px;padding-right:12px}}@media (width<=640px){.brand-text{max-width:40vw}}.registry-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.registry-card--clickable:hover{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.modal-name{color:var(--text);font-size:17px;font-weight:600}.modal-cat{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);text-transform:capitalize;border-radius:4px;padding:2px 7px;font-size:11px}.modal-status{border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.modal-status--installed{color:var(--green);background:color-mix(in srgb, var(--green) 12%, transparent);border:1px solid color-mix(in srgb, var(--green) 30%, transparent)}.modal-status--missing{color:var(--red);background:color-mix(in srgb, var(--red) 12%, transparent);border:1px solid color-mix(in srgb, var(--red) 30%, transparent)}.modal-desc{color:var(--text);margin:0;font-size:13.5px;line-height:1.6}.modal-eff-row{align-items:center;gap:10px;display:flex}.modal-eff-bar{background:var(--bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.modal-eff-fill{border-radius:3px;height:100%;transition:width .3s}.modal-eff-pct{text-align:right;min-width:34px;font-size:12px;font-weight:600}.modal-section{flex-direction:column;gap:6px;display:flex}.modal-meta-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.modal-meta-item{flex-direction:column;gap:3px;display:flex}.modal-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px;font-weight:600}.modal-code-wrap{position:relative}.modal-copy-btn{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:color .15s,border-color .15s;display:flex;position:absolute;top:6px;right:6px}.modal-copy-btn:hover{color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.modal-code-wrap .modal-code{padding-right:80px}.modal-code{background:var(--bg);border:1px solid var(--border);color:var(--green);word-break:break-all;white-space:pre-wrap;border-radius:5px;padding:8px 12px;font-size:12px}.modal-params{flex-wrap:wrap;gap:6px;display:flex}.modal-param{border:1px solid var(--border);border-radius:4px;padding:3px 9px;font-size:12px}.modal-param--required{border-color:var(--amber);color:var(--amber);background:color-mix(in srgb, var(--amber) 8%, transparent)}.modal-table{border-collapse:collapse;width:100%;font-size:12px}.modal-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);padding:5px 8px;font-weight:600}.modal-table td{color:var(--text);border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);padding:5px 8px}.modal-table tr:last-child td{border-bottom:none}.sheet-backdrop{z-index:1300;animation:sheet-fade-in var(--t-modal-pop);background:#000000a6;position:fixed;inset:0}.sheet{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 6%, var(--bg-card)), var(--bg-card) 26%), var(--bg-card);border-left:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));z-index:1300;width:480px;max-width:calc(100vw - 40px);box-shadow:-20px 0 60px #0000009e, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);animation:sheet-slide-in var(--t-modal-pop);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.sheet--sm{width:380px}.sheet--lg{width:640px}.sheet-backdrop--centered{justify-content:center;align-items:center;padding:20px;display:flex}.sheet--centered{border-left:none;border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));width:100%;max-width:560px;max-height:85vh;box-shadow:0 20px 60px #0000009e, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);animation:sheet-pop-in var(--t-modal-pop);border-radius:10px;position:relative;top:auto;bottom:auto;right:auto}.sheet--centered.sheet--sm{max-width:420px}.sheet--centered.sheet--lg{max-width:720px}@keyframes sheet-pop-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet--centered{animation:none}}.sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.sheet-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sheet-close{cursor:pointer;color:var(--text-dim);background:0 0;border:none;flex-shrink:0;padding:2px;transition:color .15s;display:flex}.sheet-close:hover{color:var(--red)}.sheet-body{flex-direction:column;flex:1;gap:16px;padding:18px 20px 22px;display:flex;overflow-y:auto}.sheet-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}@keyframes sheet-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes sheet-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=640px){.sheet,.sheet--sm,.sheet--lg{width:100%;max-width:100%}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.progress-bar{background:var(--bg-card2);border-radius:3px;height:6px;overflow:hidden}.progress-bar__fill{border-radius:3px;height:100%;transition:width .3s}.table-thead{background:var(--bg-card2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);font-size:11px}.modal-icon{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.modal-icon--accent{color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent)}.modal-icon--danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 18%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent)} diff --git a/frontend/dashboard/assets/index-DoDmaCqd.js b/frontend/dashboard/assets/index-DoDmaCqd.js deleted file mode 100644 index dbfd4e6f1..000000000 --- a/frontend/dashboard/assets/index-DoDmaCqd.js +++ /dev/null @@ -1,9 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ResourceSection-BDk7SrS4.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-lucide-tZ8AzO6l.js","assets/vendor-markdown-CZSHC-G5.js","assets/vendor-recharts-BvkoFyWX.js","assets/vendor-react-DL0_5iWL.js","assets/RunPage-Cs7A2qDb.js","assets/RunResultModal-Cw0lz4Ij.js","assets/Sheet-CPyVkJ3G.js","assets/shared-CjcIAkCZ.js","assets/shared-zCkrL4PB.css","assets/toolUtils-BC7D6IRC.js","assets/RunPage-BixUgUP3.css","assets/LogsPage-BNN_sb3K.js","assets/BrowserPage-B37UOYE2.js","assets/LogsPage-DuxAYc-O.css","assets/SettingsPage-C110GkpJ.js","assets/ActionButton-CxNWgwlw.js","assets/ActionButton-DbNYq1OK.css","assets/CollapsibleSection-BMB1wyVz.js","assets/SettingsPage-C-wiVSEk.css","assets/HelpPage-DuOWcYNS.js","assets/HelpPage-CvK7kHVT.css","assets/TasksPage-DX3euw-I.js","assets/KpiStrip-Cnf9m6Sg.js","assets/TasksPage-DihLoG0t.css","assets/ToolsPage-Dlctbi3O.js","assets/ToolsPage-Cq2EEmmt.css","assets/PluginsPage-HbqISXPY.js","assets/PluginsPage-bzEE9GwG.css","assets/ReportsPage--Iq3jyce.js","assets/ReportsPage-xtEKxfPT.css","assets/VerifyPage-DHf9c-Jk.js","assets/VerifyPage--5B_1U6d.css","assets/SessionsPage-CkAlaXnC.js","assets/SessionFindings-BB-akO9t.css","assets/SessionDetailPage-G5ld7-y8.js","assets/SessionDetailPage-uRk5Wvzd.css","assets/LootPage-CQxk_46b.js","assets/LootPage-Ca6QaJwO.css","assets/WorkbenchPage-M_xobbfg.js","assets/WorkbenchPage-BbiAncyR.css"])))=>i.map(i=>d[i]); -import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{$ as t,$t as n,A as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as l,Ft as u,Gt as d,K as f,Lt as p,N as m,P as h,Pt as g,Q as _,Qt as v,R as y,Rt as b,S as x,St as S,T as C,U as w,Ut as T,Vt as E,W as D,Wt as O,Xt as k,Y as A,_t as j,a as M,c as N,d as P,dt as ee,g as te,gt as F,j as I,kt as L,m as ne,mt as re,n as ie,nt as ae,o as oe,ot as se,pt as ce,qt as le,r as ue,rt as de,t as fe,tt as pe,u as me,w as he,wt as R,x as ge,y as _e,yt as ve,z as ye,zt as be}from"./vendor-lucide-tZ8AzO6l.js";import{n as xe,t as Se}from"./vendor-react-DL0_5iWL.js";import{r as Ce}from"./vendor-markdown-CZSHC-G5.js";import{t as z}from"./ActionButton-CxNWgwlw.js";import{n as we,r as Te,t as B}from"./Sheet-CPyVkJ3G.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var V=e(n(),1),Ee=Se();function H(){return new URLSearchParams(window.location.search).get(`demo`)===`1`?(sessionStorage.setItem(`nyxstrike_demo`,`1`),!0):sessionStorage.getItem(`nyxstrike_demo`)===`1`}function De(){sessionStorage.removeItem(`nyxstrike_demo`)}var U=sessionStorage.getItem(`nyxstrike_token`);function Oe(e={}){let t=new Headers(e);return t.has(`Content-Type`)||t.set(`Content-Type`,`application/json`),U&&t.set(`Authorization`,`Bearer ${U}`),t}async function W(e,t={}){let n=(()=>{let e=Oe(t.headers).get(`X-Request-Timeout-Seconds`),n=e?Number(e):NaN;return Number.isFinite(n)&&n>0?n*1e3:36e5})(),r=new AbortController,i=window.setTimeout(()=>r.abort(),n),a;try{a=await fetch(e,{...t,headers:Oe(t.headers),signal:r.signal})}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`HTTP request timed out after ${Math.round(n/1e3)}s`):e}finally{window.clearTimeout(i)}if(a.status===401)throw Ae(),Error(`UNAUTHORIZED`);if(!a.ok){let e=await a.text();throw Error(`HTTP ${a.status}: ${e}`)}return a.json()}function ke(e){U=e,sessionStorage.setItem(`nyxstrike_token`,e)}function Ae(){U=null,sessionStorage.removeItem(`nyxstrike_token`)}function je(){return!!U}function G(e){return W(e)}function K(e,t){return W(e,{method:`POST`,body:t?JSON.stringify(t):void 0})}function Me(e,t,n){let r=new Headers;return r.set(`X-Request-Timeout-Seconds`,String(n)),W(e,{method:`POST`,headers:r,body:JSON.stringify(t)})}function q(e,t){return W(e,{method:`PATCH`,body:JSON.stringify(t)})}function J(e){return W(e,{method:`DELETE`})}function Ne(e,t){return W(e,{method:`PUT`,body:JSON.stringify(t)})}function Pe(e,t){let n=new AbortController,r=window.setTimeout(()=>n.abort(),36e5),i=new Headers;return U&&i.set(`Authorization`,`Bearer ${U}`),fetch(e,{method:`POST`,headers:i,body:t,signal:n.signal}).then(e=>{if(window.clearTimeout(r),e.status===401)throw Ae(),Error(`UNAUTHORIZED`);return e.status===409||e.ok?e.json():e.text().then(t=>{throw Error(`HTTP ${e.status}: ${t}`)})}).catch(e=>{throw window.clearTimeout(r),e})}function Y(e,t){if(!t||Object.keys(t).length===0)return new EventSource(e);let n=new URLSearchParams;return Object.entries(t).forEach(([e,t])=>n.set(e,String(t))),new EventSource(`${e}?${n.toString()}`)}var Fe=`modulepreload`,Ie=function(e){return`/`+e},Le={},X=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ie(t,n),t=s(t),t in Le)return;Le[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Fe,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Z={dashboard:()=>G(`/web-dashboard`),dashboardStream:()=>Y(`/web-dashboard/stream`),resourcesStream:()=>Y(`/api/system/resources/stream`),tools:()=>G(`/api/tools`),getToolCategories:()=>G(`/api/tools/categories`),refreshToolAvailability:()=>K(`/api/tools/availability/refresh`),pluginList:()=>G(`/api/plugins/list`),pluginsByCategory:()=>G(`/api/plugins/by-category`),pluginsManifest:()=>G(`/api/plugins/manifest`),pluginToggle:(e,t)=>q(`/api/plugins/${e}`,{enabled:t}),serverRestart:()=>K(`/api/server/restart`,{}),getSettings:()=>G(`/api/settings`),patchSettings:(e,t)=>q(`/api/settings`,{runtime:e,...t?{chat:t}:{}}),patchWordlists:e=>q(`/api/settings/wordlists`,{wordlists:e}),testBinaryPathOverride:(e,t)=>K(`/api/settings/binary-path-overrides/test`,{tool:e,path:t}),logStream:(e=100)=>Y(`/api/logs/stream`,{lines:e}),runHistory:e=>G(`/api/runs/history${e?`?limit=${e}`:``}`),runHistorySummary:e=>G(`/api/runs/history/summary${e?`?limit=${e}`:``}`),clearRunHistory:()=>K(`/api/runs/clear`),lookupRun:e=>G(`/api/runs/lookup?hash=${encodeURIComponent(e)}`),runTool:(e,t)=>Me(e,t,86400),executeToolAsync:(e,t)=>K(`/api/intelligence/execute-tool-async`,{tool:e,params:t}),getTaskResult:e=>G(`/api/process/get-task-result/${e}`),processDashboard:()=>G(`/api/processes/dashboard`),processList:()=>G(`/api/processes/list`),processDashboardStream:()=>Y(`/api/processes/dashboard/stream`),processPoolStats:()=>G(`/api/process/pool-stats`),processPoolStatsStream:()=>Y(`/api/process/pool-stats/stream`),processesStream:()=>Y(`/api/processes/stream`),terminateProcess:e=>K(`/api/processes/terminate/${e}`),pauseProcess:e=>K(`/api/processes/pause/${e}`),resumeProcess:e=>K(`/api/processes/resume/${e}`),cancelAiTask:e=>K(`/api/processes/cancel-ai-task/${e}`),cacheStats:()=>G(`/api/cache/stats`),clearCache:()=>K(`/api/cache/clear`),sessions:()=>G(`/api/sessions`),sessionsStream:()=>Y(`/api/sessions/stream`),session:e=>G(`/api/sessions/${e}`),createSession:e=>K(`/api/sessions`,e),createSessionFromTemplate:e=>K(`/api/sessions/from-template`,e),updateSession:(e,t)=>q(`/api/sessions/${e}`,t),deleteSession:e=>J(`/api/sessions/${e}`),handoverSession:(e,t=``)=>K(`/api/sessions/${e}/handover`,{note:t}),sessionTemplates:()=>G(`/api/sessions/templates`),sessionTemplatesCompat:()=>G(`/api/session-templates`),createSessionTemplate:e=>K(`/api/sessions/templates`,e),createSessionTemplateCompat:e=>K(`/api/session-templates`,e),updateSessionTemplate:(e,t)=>q(`/api/sessions/templates/${e}`,t),deleteSessionTemplate:e=>J(`/api/sessions/templates/${e}`),exportTopology:(e,t,n,r,i)=>K(`/api/topology/export`,{tool:e,params:t,result:n,session_id:r,target:i}),sessionNotes:e=>G(`/api/sessions/${e}/notes`),sessionNote:(e,t,n=``)=>G(`/api/sessions/${e}/notes/${t}${n?`?folder=${encodeURIComponent(n)}`:``}`),createSessionNote:(e,t,n,r=``)=>K(`/api/sessions/${e}/notes`,{filename:t,content:n,folder:r}),updateSessionNote:(e,t,n,r=``)=>Ne(`/api/sessions/${e}/notes/${t}${r?`?folder=${encodeURIComponent(r)}`:``}`,{content:n}),deleteSessionNote:(e,t,n=``)=>J(`/api/sessions/${e}/notes/${t}${n?`?folder=${encodeURIComponent(n)}`:``}`),uploadSessionNote:(e,t,n,r=!1,i=``)=>{let a=new FormData;a.append(`file`,n);let o=new URLSearchParams;return r&&o.set(`overwrite`,`1`),i&&o.set(`folder`,i),Pe(`/api/sessions/${e}/notes/${t}/upload${o.toString()?`?${o.toString()}`:``}`,a)},sessionNoteFolders:e=>G(`/api/sessions/${e}/notes/folders`),createSessionNoteFolder:(e,t)=>K(`/api/sessions/${e}/notes/folders`,{name:t}),deleteSessionNoteFolder:(e,t)=>J(`/api/sessions/${e}/notes/folders/${encodeURIComponent(t)}`),renameSessionNoteFolder:(e,t,n)=>q(`/api/sessions/${e}/notes/folders/${encodeURIComponent(t)}`,{new_name:n}),searchSessionNotes:(e,t)=>G(`/api/sessions/${e}/notes/search?q=${encodeURIComponent(t)}`),createAttackChain:(e,t=`comprehensive`)=>K(`/api/intelligence/create-attack-chain`,{target:e,objective:t}),previewAttackChain:(e,t=`comprehensive`)=>K(`/api/intelligence/preview-attack-chain`,{target:e,objective:t}),aiReconSession:e=>K(`/api/intelligence/ai-recon-session`,{target:e}),aiProfilingSession:e=>K(`/api/intelligence/ai-profiling-session`,{target:e}),aiVulnSession:e=>K(`/api/intelligence/ai-vuln-session`,{target:e}),aiOsintSession:e=>K(`/api/intelligence/ai-osint-session`,{target:e}),classifyTask:e=>K(`/api/intelligence/classify-task`,{description:e}),llmSessions:(e=50)=>G(`/api/intelligence/llm-agent-sessions?limit=${e}`),llmSessionDetail:e=>G(`/api/intelligence/llm-agent-scan/${e}`),analyzeSession:e=>K(`/api/intelligence/analyze-session`,{session_id:e,save_to_notes:!0}),followUpSession:e=>K(`/api/intelligence/follow-up-session`,{session_id:e,save_to_notes:!0}),sessionFindings:e=>G(`/api/sessions/${e}/findings`),addSessionFinding:(e,t)=>K(`/api/sessions/${e}/findings`,t),updateSessionFinding:(e,t,n)=>q(`/api/sessions/${e}/findings/${t}`,n),deleteSessionFinding:(e,t)=>J(`/api/sessions/${e}/findings/${t}`),generateSessionReport:(e,t={})=>K(`/api/sessions/${e}/report`,t),generateSessionAiReport:(e,t={})=>K(`/api/sessions/${e}/report/ai`,t),verifySessionIntegrity:e=>G(`/api/sessions/${e}/verify-integrity`),exportSessionNotesUrl:e=>`/api/sessions/${e}/notes/export`,exportSessionHtmlReportUrl:e=>`/api/sessions/${e}/report/html`,credentials:e=>H()?X(()=>import(`./demo-D7-kgQFW.js`).then(e=>e.DEMO_CREDENTIALS),[]):G(`/api/credentials${e?`?`+new URLSearchParams(Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]))).toString():``}`),credential:e=>G(`/api/credentials/${e}`),createCredential:e=>K(`/api/credentials`,e),updateCredential:(e,t)=>q(`/api/credentials/${e}`,t),deleteCredential:e=>J(`/api/credentials/${e}`),exportCredentialsUrl:()=>`/api/credentials/export`,loot:e=>H()?X(()=>import(`./demo-D7-kgQFW.js`).then(e=>e.DEMO_LOOT),[]):G(`/api/loot${e?`?`+new URLSearchParams(Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]))).toString():``}`),lootItem:e=>G(`/api/loot/${e}`),createLoot:e=>K(`/api/loot`,e),updateLoot:(e,t)=>q(`/api/loot/${e}`,t),deleteLoot:e=>J(`/api/loot/${e}`),exportLootUrl:()=>`/api/loot/export`,chat:{listSessions:()=>G(`/api/chat/sessions`),createSession:()=>K(`/api/chat/sessions`),deleteSession:e=>J(`/api/chat/sessions/${e}`),renameSession:(e,t)=>q(`/api/chat/sessions/${e}`,{name:t}),getMessages:e=>G(`/api/chat/sessions/${e}/messages`)},workbenchOperations:()=>G(`/api/workbench/operations`),workbenchRun:(e,t)=>K(`/api/workbench/run/${e}`,t),workbenchRunRecipe:(e,t,n)=>K(`/api/workbench/run-recipe`,{input:e,steps:t,continue_on_error:n?.continueOnError,stop_after_step_index:n?.stopAfterStepIndex,step_input_overrides:n?.stepInputOverrides}),workbenchRecipes:()=>G(`/api/workbench/recipes`),createWorkbenchRecipe:(e,t)=>K(`/api/workbench/recipes`,{name:e,steps:t}),updateWorkbenchRecipe:(e,t)=>q(`/api/workbench/recipes/${e}`,t),deleteWorkbenchRecipe:e=>J(`/api/workbench/recipes/${e}`)},Q=Ce();function Re({onUnlocked:e}){let[t,n]=(0,V.useState)(``),[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(!1);async function l(){c(!0),o(``),ke(t.trim());try{await Z.dashboard(),e()}catch(e){Ae(),o(e instanceof Error&&e.message===`UNAUTHORIZED`?`Invalid token`:`Could not reach server`)}finally{c(!1)}}return(0,Q.jsx)(`div`,{className:`token-gate`,children:(0,Q.jsxs)(`div`,{className:`token-card`,children:[(0,Q.jsx)(f,{size:32,color:`var(--green)`}),(0,Q.jsx)(`h2`,{children:`Authentication Required`}),(0,Q.jsxs)(`p`,{children:[`Enter your `,(0,Q.jsx)(`code`,{children:`NYXSTRIKE_API_TOKEN`}),` to continue`]}),(0,Q.jsxs)(`div`,{className:`token-input-row`,children:[(0,Q.jsx)(`input`,{type:r?`text`:`password`,name:`api-token`,placeholder:`Bearer token…`,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>e.key===`Enter`&&l(),className:`mono`,autoFocus:!0}),(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:()=>i(e=>!e),title:`Toggle visibility`,children:r?(0,Q.jsx)(j,{size:16}):(0,Q.jsx)(F,{size:16})})]}),a&&(0,Q.jsx)(`p`,{className:`token-err`,children:a}),(0,Q.jsx)(`button`,{className:`btn-primary`,onClick:l,disabled:s||!t.trim(),children:s?`Checking…`:`Connect`})]})})}var ze=(0,V.createContext)(null);function Be({children:e}){let[t,n]=(0,V.useState)([]),r=(0,V.useMemo)(()=>({pushToast(e,t){let r=Date.now()+Math.floor(Math.random()*1e3);n(n=>[...n,{id:r,kind:e,text:t}]),setTimeout(()=>{n(e=>e.filter(e=>e.id!==r))},3200)}}),[]);return(0,Q.jsxs)(ze.Provider,{value:r,children:[e,(0,Q.jsx)(`div`,{className:`toast-stack`,"aria-live":`polite`,"aria-atomic":`true`,children:t.map(e=>(0,Q.jsx)(`div`,{className:`toast toast-${e.kind}`,children:e.text},e.id))})]})}function Ve(){let e=(0,V.useContext)(ze);if(!e)throw Error(`useToast must be used within ToastProvider`);return e}function He(e,t){let n={...t};for(let r of e)r.parent_tool&&t[r.parent_tool]&&!(r.name in n)&&(n[r.name]=!0);return n}var Ue=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADv0lEQVR4ASxTa0zbVRT/3X//bWnXB/JamYwW2jra8tiwo5tkgIjKFgZSBgyXIVuIfpHETJct0bBoTJbsizFG/WAWE3GGqB/MFh3RrChjOBbCQ52MwGB00EI72q7v990t28k9J+fmnt+5v3POvRwyQgC2gG1LRCaTudk2NFp+f2rp5ZV/HzZMXr+tKDPsr1epdPmZkKexQMbnMhtCAcoco8as0hmq+k93n/5Zbyqb21j33hgf+ds2M7W41tbU8pU8T/G2tqSygIUzMAMwhzEg2+CBdz54t7W9uY+X8JcKdz8vjUQj5OrIb/jvwQJ25hfI5FKlgYrIYI/V2lFT3dgIBmZZwNGMR0Hi0cR7Hpf3YrWmQjr49cfoPH8KP41dJXeWZsinP1zC0OgVmFR6YTyU/LL6xcrhp5wpGAOWh7E5VFfrn19YRNfRbvhXPWTNsQKfzwXH5gNs+jeI+76LvGk9jqnpacgksiBYBqZgPSDki88un6MJUqErLaPL9nXwUikSW5RkKQpomPKIOaKQ5yqwsrwOg96E2gMvLQ4cHhCze1kJhNL5/+c107Ozgpq9ZtyaHkfA4wInFKH1SCdOHHuLiqUK+viRG7apUewuLsUfo39aVJaS/u0pZGiYDabzhCfO73/5jvxuu0Zi8TiSsRDuLUyRVfsS8QU2WI/imJiwkeFfrxCXy6V8Lic7QilhJdAL3I/XrzXMzczJF1eXkaPayWqUI52M4e70HXpzdAQkmYJCqQThedjXVuF8uA77qt1iNB0TcTX6EVledm6l2+OSUwbyulyIhEMQiyUIpcPwRX2QyxUgKZ6mWaJEMopNrxPOdYdCLQtmcZriqvxoPOIRCDiIhEJEIxHsYIA0e12GCjP27TsIf+AxghEvIRwHoUCIol1FtKRUI5DlaAq5Wwvj3ngsfnTL40YslkSWRIJgKIBMsEQsJUJeRMXKHUjTNFKsN4l4Aj6/jzicDuld+18rXCFfIDpgqdlbV1tPc3OykYjFwHMEQtag+cnbmL05RrLYKFOpJDjG8oVSHRrq6/1aTYkvW1CUzZUV6yVao1rb13viYt/J3kcVxkqIeRHC4SBCAT/TAHxbW5AIxahiZx1W6z8Wi/nwuQvvn9yTZ5RxQ2PfrHR1dQabWho/1KrVxuMd1p72tvZg3cFDtKhQjVxlDsr3lKetrdbN9taWfh1V7+/p7ZwA+0Lf2j5fZmTxTAi6TnW7z3x0Zliv0uxqfq3plSOvvn6j4432SWtbq7WsSqc9O3j2cvcnXfFtAGWWUDwBAAD//7RWUBoAAAAGSURBVAMAztODV0qedu0AAAAASUVORK5CYII=`,We=`nyxstrike_theme`,Ge=[{id:`dark`,label:`Dark Ops`,hint:`Tactical dark · Green accent`},{id:`unicorn`,label:`Unicorn Dream`,hint:`Pastel neon fantasy glow`},{id:`forest`,label:`Forest Canopy`,hint:`Moss, pine, bark, and misty sky`},{id:`solarized`,label:`Solarized Terminal`,hint:`Muted tan and navy readability`},{id:`ocean-glass`,label:`Ocean Glass`,hint:`Deep sea blues with clean contrast`},{id:`crimson-night`,label:`Crimson Night`,hint:`Dark steel with alert red accents`},{id:`retro-crt`,label:`Retro CRT`,hint:`Old-school phosphor monitor vibe`},{id:`nord`,label:`Nord Calm`,hint:`Cool balanced blue-gray palette`},{id:`dracula`,label:`Dracula`,hint:`Slate purple · Lavender · Classic vampire`},{id:`gruvbox`,label:`Gruvbox`,hint:`Warm olive · Burnt orange · Retro terminal`},{id:`tokyo`,label:`Tokyo`,hint:`Deep navy · Electric blue · Pro editor`},{id:`catppuccin`,label:`Catppuccin`,hint:`Warm dark · Pastel mauve · Soft & calm`},{id:`synthwave`,label:`Synthwave`,hint:`Outrun purple · Hot magenta · Neon cyan`},{id:`rose`,label:`Rosé`,hint:`Muted charcoal · Dusty rose · Elegant calm`},{id:`folio`,label:`Folio`,hint:`Warm cream · Forest emerald · Paper & ink`,light:!0},{id:`frost`,label:`Frost`,hint:`Icy white · Glacier blue · Crisp & clinical`,light:!0}];function Ke(e){return Ge.some(t=>t.id===e)}function qe({isOpen:e,title:t,description:n,children:r,primaryLabel:i=`Continue`,secondaryLabel:a=`Cancel`,primaryVariant:o=`default`,isPrimaryBusy:s=!1,disableClose:c=!1,className:l=``,onPrimary:u,onSecondary:d,onClose:f}){return(0,Q.jsxs)(B,{isOpen:e,onClose:f,variant:`centered`,disableClose:c||s,className:`information-modal${l?` ${l}`:``}`,ariaLabel:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-icon modal-icon--accent`,"aria-hidden":`true`,children:(0,Q.jsx)(ae,{size:14})}),(0,Q.jsx)(`span`,{className:`modal-name`,children:t})]}),children:[n&&(0,Q.jsx)(`p`,{className:`modal-desc`,children:n}),r,(u||d)&&(0,Q.jsxs)(`div`,{className:`information-modal-buttons`,children:[d&&(0,Q.jsx)(z,{variant:`default`,onClick:d,disabled:s,children:a}),u&&(0,Q.jsx)(z,{variant:o,onClick:()=>{u()},disabled:s,children:s?`Working…`:i})]})]})}function Je({isOpen:e,themeId:t,setThemeId:n,reduceTextureEffects:r,setReduceTextureEffects:i,onClose:a}){let[o,s]=(0,V.useState)(t),[c,l]=(0,V.useState)(t);(0,V.useEffect)(()=>{if(!e){s(t),l(t);return}document.documentElement.setAttribute(`data-theme`,o)},[e,o,t]);function u(){document.documentElement.setAttribute(`data-theme`,t),s(t),l(t),a()}function d(){n(c),a()}return(0,Q.jsxs)(qe,{isOpen:e,title:`Choose Theme`,description:`Preview themes live, then apply your selection.`,className:`theme-picker-modal`,primaryLabel:`Apply Theme`,primaryVariant:`success`,secondaryLabel:`Cancel`,onPrimary:d,onSecondary:u,onClose:u,children:[(0,Q.jsxs)(`label`,{className:`theme-picker-toggle-row`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:r,onChange:e=>i(e.target.checked)}),(0,Q.jsx)(`span`,{className:`theme-picker-toggle-text`,children:`Reduce background texture effects`})]}),(0,Q.jsx)(`div`,{className:`theme-picker-grid`,children:Ge.map(e=>(0,Q.jsxs)(`button`,{className:`theme-picker-card${c===e.id?` active`:``}`,onClick:()=>{l(e.id),s(e.id)},type:`button`,children:[(0,Q.jsxs)(`span`,{className:`theme-picker-card-label`,children:[e.label,e.light&&(0,Q.jsx)(`span`,{className:`theme-picker-card-badge`,children:`Light`})]}),(0,Q.jsx)(`span`,{className:`theme-picker-card-hint`,children:e.hint})]},e.id))})]})}function Ye({isOpen:e,latestVersion:t,onClose:n}){let[r,i]=(0,V.useState)(!1);function a(){navigator.clipboard.writeText(`git pull`).then(()=>{i(!0),window.setTimeout(()=>i(!1),2e3)}).catch(()=>{})}return(0,Q.jsxs)(qe,{isOpen:e,title:`Update Available`,description:t?`A newer release (${t}) is available.`:`A newer release is available.`,primaryLabel:`Open GitHub`,secondaryLabel:`Close`,onPrimary:()=>{window.open(`https://github.com/CommonHuman-Lab/nyxstrike`,`_blank`,`noopener,noreferrer`)},onSecondary:n,onClose:n,children:[(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Update command`}),(0,Q.jsxs)(`div`,{className:`modal-code-wrap`,children:[(0,Q.jsx)(`div`,{className:`modal-code mono`,children:`git pull`}),(0,Q.jsxs)(`button`,{className:`modal-copy-btn`,onClick:a,title:`Copy update command`,children:[r?(0,Q.jsx)(E,{size:13}):(0,Q.jsx)(R,{size:13}),r?`Copied!`:`Copy`]})]})]}),(0,Q.jsxs)(`p`,{className:`modal-desc`,children:[`Run `,(0,Q.jsx)(`span`,{className:`mono`,children:`git pull`}),` in your project folder, then restart NyxStrike.`]})]})}var Xe={status:`idle`},Ze=new Set;function Qe(){Ze.forEach(e=>e(Xe))}function $e(){return Xe}function et(e){Xe=e,Qe()}function tt(e){return Ze.add(e),()=>Ze.delete(e)}function nt(e){et({status:`generating`,label:e})}function rt(e,t){et({status:`done`,label:e,savedPath:t})}function it(e,t){et({status:`error`,label:e,message:t})}function at(){et({status:`idle`})}var ot=null;function st(e){return ot=e,()=>{ot===e&&(ot=null)}}function ct(e){ot?.(e)}function lt(){let[e,t]=(0,V.useState)($e);return(0,V.useEffect)(()=>(t($e()),tt(t)),[]),e}function ut(){let e=lt();return(0,V.useEffect)(()=>{if(e.status!==`done`&&e.status!==`error`)return;let t=setTimeout(at,8e3);return()=>clearTimeout(t)},[e.status]),e.status===`idle`?null:(0,Q.jsxs)(`div`,{className:`report-bubble report-bubble--${e.status}`,children:[(0,Q.jsxs)(`div`,{className:`report-bubble-icon`,children:[e.status===`generating`&&(0,Q.jsx)(r,{size:14,className:`spin`}),e.status===`done`&&(0,Q.jsx)(g,{size:14}),e.status===`error`&&(0,Q.jsx)(c,{size:14})]}),(0,Q.jsxs)(`div`,{className:`report-bubble-body${e.status===`done`&&e.savedPath?` report-bubble-body--clickable`:``}`,onClick:e.status===`done`&&e.savedPath?()=>{ct(e.savedPath),at()}:void 0,title:e.status===`done`&&e.savedPath?`Open in Notes`:void 0,children:[(0,Q.jsxs)(`div`,{className:`report-bubble-title`,children:[(0,Q.jsx)(re,{size:11}),e.status===`generating`&&`Generating report…`,e.status===`done`&&`Report saved — click to open`,e.status===`error`&&`Report failed`]}),(0,Q.jsx)(`div`,{className:`report-bubble-label`,children:e.label}),e.status===`done`&&(0,Q.jsx)(`div`,{className:`report-bubble-path mono`,children:e.savedPath}),e.status===`error`&&(0,Q.jsx)(`div`,{className:`report-bubble-error`,children:e.message})]}),(e.status===`done`||e.status===`error`)&&(0,Q.jsx)(`button`,{className:`report-bubble-dismiss`,onClick:at,title:`Dismiss`,children:(0,Q.jsx)(ie,{size:12})})]})}function dt({lastRefresh:e,demo:t,isStreaming:n,streamingError:i,health:a,error:o,loading:s,fetchAll:c,themeId:l,setThemeId:u,reduceTextureEffects:d,setReduceTextureEffects:p,onOpenCommandPalette:m,onSignOut:h,onToggleMobileSidebar:g}){let[_,v]=(0,V.useState)(!1),[y,b]=(0,V.useState)(!1),[x,S]=(0,V.useState)(!1),[C,w]=(0,V.useState)(!1),T=(0,V.useRef)(null),E=(0,V.useRef)(null),[O,k]=(0,V.useState)(t);(0,V.useEffect)(()=>{if(t){k(!0);return}if(!e)return;let n=e.toISOString();if(!T.current){T.current=n;return}T.current!==n&&(k(!0),T.current=n)},[t,e]),(0,V.useEffect)(()=>{if(!e||a?.status!==`healthy`)return;let t=e.toISOString();if(!E.current){E.current=t;return}if(E.current===t)return;E.current=t,w(!0);let n=window.setTimeout(()=>w(!1),700);return()=>window.clearTimeout(n)},[e,a?.status]),(0,V.useEffect)(()=>{if(t||n){S(!1);return}let e=window.setTimeout(()=>{S(!0)},3500);return()=>{window.clearTimeout(e)}},[t,n]);let A=a?.status?a.status.charAt(0).toUpperCase()+a.status.slice(1):s?`Connecting…`:o??`Unknown`,j=n?`Live`:i?`Polling`:`N/A`,M=O&&e?` | Last refresh: ${e.toLocaleTimeString(`en-GB`)}`:``,N=t?`System: ${A}${M}`:`System: ${A} | Updates: ${j}${M}${i?` (${i})`:``}`;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ye,{isOpen:y,latestVersion:a?.update?.latest_version,onClose:()=>b(!1)}),(0,Q.jsx)(Je,{isOpen:_,themeId:l,setThemeId:u,reduceTextureEffects:d,setReduceTextureEffects:p,onClose:()=>v(!1)}),(0,Q.jsxs)(`header`,{className:`topbar`,children:[(0,Q.jsxs)(`div`,{className:`topbar-brand`,children:[(0,Q.jsx)(`button`,{type:`button`,className:`icon-btn topbar-hamburger-btn`,onClick:g,"aria-label":`Toggle navigation menu`,title:`Toggle navigation menu`,children:(0,Q.jsx)(D,{size:16})}),(0,Q.jsx)(`img`,{src:Ue,width:18,height:18,alt:``}),(0,Q.jsxs)(`span`,{className:`brand-text`,title:`Version: ${a?.version??`unknown`}`,"aria-label":`NyxStrike version ${a?.version??`unknown`}`,children:[(0,Q.jsx)(`span`,{className:`brand-text-1`,children:`Nyx`}),(0,Q.jsx)(`span`,{className:`brand-text-2`,children:`Strike`})]}),a?.update?.update_available&&(0,Q.jsx)(`button`,{type:`button`,className:`brand-update-chip mono`,onClick:()=>b(!0),title:`New version available: ${a.update.latest_version}`,children:`Update available`})]}),(0,Q.jsxs)(`div`,{className:`topbar-right`,children:[(0,Q.jsx)(`button`,{className:`icon-btn`,title:`Command palette (Ctrl/Cmd+K)`,onClick:m,children:(0,Q.jsx)(`span`,{className:`palette-icon-k mono`,children:`K`})}),(0,Q.jsx)(`div`,{className:`status-dot ${a?.status===`healthy`?x?`polling`:`online`:o?`error`:`loading`}${C?` status-dot--pulse`:``}`,title:N,"aria-label":N}),x&&(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:c,title:`Refresh now`,children:(0,Q.jsx)(r,{size:14,className:s?`spin`:``})}),je()&&(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:()=>{Ae(),h()},title:`Sign out`,children:(0,Q.jsx)(f,{size:14})})]})]}),(0,Q.jsx)(ut,{})]})}function ft(e,t){return e===`sessions`?t===`sessions`||t===`session-detail`:t===e}var pt=`(max-width: 768px)`;function mt(){let[e,t]=(0,V.useState)(()=>window.matchMedia(pt).matches);return(0,V.useEffect)(()=>{let e=window.matchMedia(pt);function n(){t(e.matches)}return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function ht({page:e,setPage:t,isPageEnabled:n,navEntries:r,collapsed:i,onToggleCollapsed:a,mobileOpen:o,onCloseMobile:s}){let c=r.filter(e=>n(e.id)),l=c.filter(e=>e.id!==`settings`),u=c.find(e=>e.id===`settings`),d=mt(),f=i&&!d;function p(n){let r=n.icon;return(0,Q.jsxs)(`button`,{className:`sidebar-nav-item${ft(n.id,e)?` active`:``}${f?` collapsed`:``}`,onClick:()=>{t(n.id),s()},title:n.label,children:[(0,Q.jsx)(r,{size:14,className:`sidebar-nav-icon`}),!f&&(0,Q.jsx)(`span`,{className:`sidebar-nav-label`,children:n.label})]},n.id)}return(0,Q.jsxs)(`aside`,{className:`sidebar${f?` sidebar--collapsed`:``}${o?` sidebar--mobile-open`:``}`,children:[(0,Q.jsx)(`div`,{className:`sidebar-collapse-row`,children:(0,Q.jsx)(`button`,{className:`sidebar-collapse-btn`,onClick:a,title:f?`Expand sidebar`:`Collapse sidebar`,children:f?(0,Q.jsx)(y,{size:14}):(0,Q.jsx)(ye,{size:14})})}),(0,Q.jsx)(`nav`,{className:`sidebar-nav`,children:l.map(e=>p(e))}),u&&(0,Q.jsx)(`nav`,{className:`sidebar-nav sidebar-nav--bottom`,children:p(u)})]})}function gt(){return(0,Q.jsx)(`footer`,{className:`app-footer`,children:(0,Q.jsx)(`a`,{className:`app-footer-link`,href:`https://github.com/CommonHuman-Lab`,target:`_blank`,rel:`noreferrer`,children:`Made by CommonHuman`})})}function _t(e){let[t,n]=(0,V.useState)(null),[r,i]=(0,V.useState)(null);function a(r){return{draggable:!0,onDragStart:()=>n(r),onDragEnd:()=>{n(null),i(null)},onDragOver:e=>{e.preventDefault(),i(r)},onDrop:a=>{a.preventDefault(),t&&t!==r&&e(t,r),n(null),i(null)}}}function o(e,n=``){return[n,`drag-reorder-item`,t===e?`drag-reorder-item--dragging`:``,r===e&&t!==e?`drag-reorder-item--drag-over`:``].filter(Boolean).join(` `)}return{dragHandlers:a,dragClassName:o,draggingId:t}}function vt(e,t){let[n,r]=(0,V.useState)(()=>{try{let n=localStorage.getItem(e);return n==null?t:JSON.parse(n)}catch{return t}});return(0,V.useEffect)(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch{}},[e,n]),[n,r]}function yt({icon:e,label:t,value:n,sub:r,accent:i}){return(0,Q.jsxs)(`div`,{className:`stat-card`,children:[(0,Q.jsx)(`div`,{className:`stat-icon`,style:{color:i||`var(--green)`},children:e}),(0,Q.jsxs)(`div`,{className:`stat-body`,children:[(0,Q.jsx)(`div`,{className:`stat-label`,children:t}),(0,Q.jsx)(`div`,{className:`stat-value`,style:{color:i||`var(--text-h)`},children:n}),r&&(0,Q.jsx)(`div`,{className:`stat-sub`,children:r})]})]})}function bt(e,t=1,n=`—`){return typeof e==`number`&&isFinite(e)?e.toFixed(t):n}function xt(e,t=1){return bt(e,t,`—`)}function St(e){return e?new Date(e*1e3).toLocaleString(`en-GB`):`—`}function Ct(e){if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/t**r).toFixed(2))} ${n[r]}`}function wt(e,t){return e===t?`var(--success)`:e===0?`var(--danger)`:`var(--warning)`}function Tt(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return t>0?`${t}h ${n}m`:n>0?`${n}m ${r}s`:`${r}s`}function Et(e,t){let n=e.result,r=e.ts.toISOString().replace(/[:.]/g,`-`),i=`${e.tool}_${r}.${t}`,a;if(t===`json`)a=JSON.stringify({tool:e.tool,timestamp:e.ts.toISOString(),params:e.params,success:n.success,return_code:n.return_code,execution_time:n.execution_time,timed_out:n.timed_out,partial_results:n.partial_results,stdout:n.stdout,stderr:n.stderr},null,2);else{let t=Object.entries(e.params).map(([e,t])=>` ${e}=${t}`).join(` -`);a=[`Tool: ${e.tool}`,`Timestamp: ${e.ts.toISOString()}`,`Success: ${n.success}`,`Exit code: ${n.return_code}`,`Time: ${bt(n.execution_time,2)}s`,n.timed_out?`Timed out: yes`:``,n.partial_results?`Partial: yes`:``,t?`\nParams:\n${t}`:``,`\n--- stdout ---\n${n.stdout||`(empty)`}`,n.stderr?`\n--- stderr ---\n${n.stderr}`:``].filter(Boolean).join(` -`)}let o=new Blob([a],{type:t===`json`?`application/json`:`text/plain`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=i,c.click(),URL.revokeObjectURL(s)}function Dt(e,t,n){let r=n[e]??[];return r.length>0?r:Object.keys(t)}function Ot(e,t){let n=e.telemetry?.commands_executed??0,r=t.length,i=Math.max(n,r);if(r>n){let e=t.filter(e=>e.result.success).length;return{value:i,sub:`${e} ok · ${r-e} failed`,accent:wt(e,r)}}let a=parseFloat(e.telemetry?.success_rate??`0`),o=Math.round(n*a/100);return{value:i,sub:`${o} ok · ${n-o} failed`,accent:wt(o,n)}}function kt(e){return e==null?`not yet checked`:e<60?`just checked`:e<120?`checked a minute ago`:e<3600?`checked ${Math.floor(e/60)} minutes ago`:e<7200?`checked over an hour ago`:`checked ${Math.floor(e/3600)} hours ago`}function At(e){let t=(0,V.useRef)(null),[n,r]=(0,V.useState)(()=>Tt(e));return(0,V.useEffect)(()=>{if(e<=0)return;let n=Date.now()-e*1e3;(t.current===null||Math.abs(n-t.current)>2e3)&&(t.current=n)},[e]),(0,V.useEffect)(()=>{let e=setInterval(()=>{if(t.current===null)return;let e=(Date.now()-t.current)/1e3;r(Tt(e))},1e3);return()=>clearInterval(e)},[]),n}function jt({health:e,tools:t,runHistory:n}){let r=Ot(e,n),i=At(e.uptime);return(0,Q.jsxs)(`div`,{className:`kpi-row`,children:[(0,Q.jsx)(yt,{icon:(0,Q.jsx)(v,{size:20}),label:`Server Status`,value:e.status.charAt(0).toUpperCase()+e.status.slice(1),sub:`uptime ${i}`,accent:e.status===`healthy`?`var(--success)`:`var(--danger)`}),(0,Q.jsx)(yt,{icon:(0,Q.jsx)(_e,{size:20}),label:`Kali Tools`,value:`${e.total_tools_available} / ${e.total_tools_count}`,sub:e.all_essential_tools_available?`all essential ready`:`some essential missing`,accent:e.all_essential_tools_available?`var(--success)`:`var(--warning)`}),(0,Q.jsx)(yt,{icon:(0,Q.jsx)(ue,{size:20}),label:`Server Tools`,value:t.length,sub:`in registry`,accent:`var(--blue)`}),(0,Q.jsx)(yt,{icon:(0,Q.jsx)(fe,{size:20}),label:`Commands`,value:r.value,sub:r.sub,accent:r.accent})]})}var Mt={eaphammer:`sudo apt install eaphammer`,nmap:`sudo apt install nmap`,masscan:`sudo apt install masscan`,rustscan:`cargo install rustscan # or: sudo apt install rustscan`,autorecon:`pip3 install autorecon`,gobuster:`sudo apt install gobuster`,ffuf:`sudo apt install ffuf`,feroxbuster:`sudo apt install feroxbuster`,dirb:`sudo apt install dirb`,dirsearch:`pip3 install -r requirements.txt`,nikto:`sudo apt install nikto`,nuclei:`go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest`,sqlmap:`sudo apt install sqlmap`,wpscan:`sudo apt install wpscan # or: gem install wpscan`,hydra:`sudo apt install hydra`,john:`sudo apt install john`,hashcat:`sudo apt install hashcat`,medusa:`sudo apt install medusa`,patator:`sudo apt install patator`,hashid:`pip3 install hashid`,ophcrack:`sudo apt install ophcrack`,amass:`sudo apt install amass`,subfinder:`go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest`,fierce:`pip3 install fierce`,dnsenum:`sudo apt install dnsenum`,theHarvester:`sudo apt install theharvester`,sherlock:`sudo apt install sherlock`,whois:`sudo apt install whois`,httpx:`go install github.com/projectdiscovery/httpx/cmd/httpx@latest`,katana:`go install github.com/projectdiscovery/katana/cmd/katana@latest`,hakrawler:`go install github.com/hakluke/hakrawler@latest`,gau:`go install github.com/lc/gau/v2/cmd/gau@latest`,waybackurls:`go install github.com/tomnomnom/waybackurls@latest`,wafw00f:`pip3 install wafw00f`,dalfox:`go install github.com/hahwul/dalfox/v2@latest`,jaeles:`go install github.com/jaeles-project/jaeles@latest`,arjun:`pip3 install arjun`,paramspider:`pip3 install paramspider`,x8:`cargo install x8`,gdb:`sudo apt install gdb`,radare2:`sudo apt install radare2`,binwalk:`sudo apt install binwalk`,ROPgadget:`pip3 install -r requirements.txt`,checksec:`sudo apt install checksec # or: pip3 install checksec`,objdump:`sudo apt install binutils`,ghidra:`sudo apt install ghidra # or download from ghidra.re`,pwntools:`pip3 install -r requirements.txt`,ropper:`pip3 install ropper`,angr:`pip3 install -r requirements.txt`,pwninit:`cargo install pwninit`,"one-gadget":`pip3 install -r requirements.txt`,"libc-database":`https://github.com/niklasb/libc-database`,vol:`pip3 install -r requirements.txt`,volatility:`pip3 install -r requirements.txt`,steghide:`sudo apt install steghide`,foremost:`sudo apt install foremost`,exiftool:`sudo apt install libimage-exiftool-perl`,strings:`sudo apt install binutils`,xxd:`sudo apt install xxd`,photorec:`sudo apt install testdisk`,testdisk:`sudo apt install testdisk`,scalpel:`sudo apt install scalpel`,zsteg:`gem install zsteg`,outguess:`sudo apt install outguess`,prowler:`pip3 install prowler`,"scout-suite":`pip3 install scoutsuite`,trivy:`sudo apt install trivy`,"kube-hunter":`pip3 install kube-hunter`,"kube-bench":`https://aquasecurity.github.io/kube-bench/latest/installation/`,"docker-bench-security":`https://github.com/docker/docker-bench-security`,checkov:`pip3 install -r requirements.txt`,terrascan:`brew install terrascan # or download from github.com/tenable/terrascan`,clair:`docker pull quay.io/projectquay/clair`,msfconsole:`sudo apt install metasploit-framework`,msfvenom:`sudo apt install metasploit-framework`,searchsploit:`sudo apt install exploitdb`,smbmap:`pip3 install smbmap`,enum4linux:`sudo apt install enum4linux`,"enum4linux-ng":`pip3 install enum4linux-ng`,nbtscan:`sudo apt install nbtscan`,rpcclient:`sudo apt install samba-common-bin`,responder:`sudo apt install responder`,nxc:`pip3 install netexec`,"evil-winrm":`gem install evil-winrm`,"airmon-ng":`sudo apt install aircrack-ng`,"aircrack-ng":`sudo apt install aircrack-ng`,"airodump-ng":`sudo apt install aircrack-ng`,"aireplay-ng":`sudo apt install aircrack-ng`,"airbase-ng":`sudo apt install aircrack-ng`,"airdecap-ng":`sudo apt install aircrack-ng`,kismet:`sudo apt install kismet`,wireshark:`sudo apt install wireshark`,tshark:`sudo apt install tshark`,tcpdump:`sudo apt install tcpdump`,wifite:`sudo apt install wifite`,bettercap:`sudo apt install bettercap`,mdk4:`sudo apt install mdk4`,bbot:`pip3 install -r requirements.txt`,curl:`sudo apt install curl`,httpie:`pip3 install httpie`,anew:`go install -v github.com/tomnomnom/anew@latest`,qsreplace:`go install -v github.com/tomnomnom/qsreplace@latest`,uro:`pip3 install -r requirements.txt`,"graphql-scanner":`npm install -g graphql-voyager`,wfuzz:`pip3 install wfuzz`,dotdotpwn:`sudo apt install dotdotpwn`,xsser:`sudo apt install xsser`,commix:`sudo apt install commix`,tplmap:`git clone https://github.com/epinna/tplmap`,nosqlmap:`git clone https://github.com/codingo/NoSQLMap`,whatweb:`sudo apt install whatweb`,testssl:`sudo apt install testssl.sh`,sslscan:`sudo apt install sslscan`,sslyze:`pip3 install sslyze`,"recon-ng":`sudo apt install recon-ng`,maltego:`Download from maltego.com`,spiderfoot:`sudo apt install spiderfoot`,"social-analyzer":`pip3 install -r requirements.txt`,sleuthkit:`sudo apt install sleuthkit`,autopsy:`sudo apt install autopsy`,bulk_extractor:`sudo apt install bulk-extractor`,"hashcat-utils":`sudo apt install hashcat-utils`,cloudmapper:`https://github.com/duo-labs/cloudmapper`,vulnx:`go install github.com/projectdiscovery/cvemap/cmd/vulnx@latest`,falco:`https://falco.org/docs/setup/packages/#install-with-apt`,ldapdomaindump:`sudo apt install python3-ldapdomaindump`,sublist3r:`sudo apt install sublist3r`,parsero:`sudo apt install parsero`,joomscan:`sudo apt install joomscan`,interactsh:`go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest`,schemathesis:`pipx install schemathesis # or: pip install schemathesis`,hurl:`sudo apt install hurl`,assetfinder:`sudo apt install assetfinder`,shuffledns:`sudo apt-get install -y massdns; go install -v github.com/projectdiscovery/shuffledns/cmd/shuffledns@latest`,massdns:`sudo apt install massdns`,gospider:`sudo apt install gospider`,dig:`sudo apt install bind9-dnsutils`};function Nt(e){return Mt[e]??`# check project docs for exact install`}function Pt({tool:e,onClose:t,installed:n}){let r=Math.round(e.effectiveness*100),i=r>=90?`var(--green)`:r>=75?`var(--amber)`:`var(--red)`,a=Object.entries(e.params).filter(([,e])=>e.required),o=Object.entries(e.optional),[s,l]=(0,V.useState)(!1);function u(){navigator.clipboard.writeText(Nt(e.name)).then(()=>{l(!0),setTimeout(()=>l(!1),2e3)})}return(0,Q.jsxs)(B,{isOpen:!0,onClose:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-name mono`,children:e.name}),(0,Q.jsx)(`span`,{className:`modal-cat`,children:e.category.replace(/_/g,` `)}),n===!0&&(0,Q.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,Q.jsx)(g,{size:11}),` installed`]}),n===!1&&(0,Q.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,Q.jsx)(c,{size:11}),` not installed`]}),e.parent_tool&&(0,Q.jsx)(`span`,{className:`modal-cat`,title:`Based on ${e.parent_tool}`,children:e.parent_tool})]}),children:[(0,Q.jsx)(`p`,{className:`modal-desc`,children:e.desc}),(0,Q.jsxs)(`div`,{className:`modal-eff-row`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Effectiveness`}),(0,Q.jsx)(`div`,{className:`modal-eff-bar`,children:(0,Q.jsx)(`div`,{className:`modal-eff-fill`,style:{width:`${r}%`,background:i}})}),(0,Q.jsxs)(`span`,{className:`modal-eff-pct`,style:{color:i},children:[r,`%`]})]}),n!==!0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Install`}),(0,Q.jsxs)(`div`,{className:`modal-code-wrap`,children:[(0,Q.jsx)(`div`,{className:`modal-code mono`,children:Nt(e.name)}),(0,Q.jsxs)(`button`,{className:`modal-copy-btn`,onClick:u,title:`Copy to clipboard`,children:[s?(0,Q.jsx)(E,{size:13}):(0,Q.jsx)(R,{size:13}),s?`Copied!`:`Copy`]})]})]}),(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`API Endpoint`}),(0,Q.jsxs)(`div`,{className:`modal-code mono`,children:[e.method,` `,e.endpoint]})]}),a.length>0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Required Parameters`}),(0,Q.jsx)(`div`,{className:`modal-params`,children:a.map(([e])=>(0,Q.jsx)(`span`,{className:`modal-param modal-param--required mono`,children:e},e))})]}),o.length>0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Optional Parameters`}),(0,Q.jsxs)(`table`,{className:`modal-table`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`th`,{children:`Parameter`}),(0,Q.jsx)(`th`,{children:`Default`})]})}),(0,Q.jsx)(`tbody`,{children:o.map(([e,t])=>(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`td`,{className:`mono`,children:e}),(0,Q.jsx)(`td`,{className:`mono`,children:String(t)||(0,Q.jsx)(`em`,{children:`—`})})]},e))})]})]})]})}function Ft({open:e,size:t=13,className:n,style:r}){return e?(0,Q.jsx)(i,{size:t,className:n,style:r}):(0,Q.jsx)(b,{size:t,className:n,style:r})}var It={essential:(0,Q.jsx)(oe,{size:14}),network_recon:(0,Q.jsx)(M,{size:14}),web_recon:(0,Q.jsx)(v,{size:14}),web_vuln:(0,Q.jsx)(u,{size:14}),brute_force:(0,Q.jsx)(f,{size:14}),binary:(0,Q.jsx)(o,{size:14}),forensics:(0,Q.jsx)(S,{size:14}),cloud:(0,Q.jsx)(C,{size:14}),osint:(0,Q.jsx)(F,{size:14}),exploitation:(0,Q.jsx)(fe,{size:14}),api:(0,Q.jsx)(v,{size:14}),wifi_pentest:(0,Q.jsx)(M,{size:14}),database:(0,Q.jsx)(S,{size:14}),vulnerability_intelligence:(0,Q.jsx)(T,{size:14}),active_directory:(0,Q.jsx)(d,{size:14}),fingerprint:(0,Q.jsx)(ce,{size:14}),ops:(0,Q.jsx)(ve,{size:14}),intelligence:(0,Q.jsx)(O,{size:14}),data_processing:(0,Q.jsx)(C,{size:14}),ai_assist:(0,Q.jsx)(O,{size:14})};function Lt({category:e,stats:t,toolStatuses:n,toolsByName:r}){let[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(null),l=t.total>0?t.available/t.total*100:0,u=l===100?`var(--green)`:l>50?`var(--amber)`:`var(--red)`,d=Object.entries(n).sort(([e],[t])=>e.localeCompare(t));return(0,Q.jsxs)(Q.Fragment,{children:[o&&(0,Q.jsx)(Pt,{tool:o,onClose:()=>s(null),installed:n[o.name]}),(0,Q.jsxs)(`div`,{className:`cat-row`,children:[(0,Q.jsxs)(`button`,{className:`cat-header`,onClick:()=>a(e=>!e),children:[(0,Q.jsx)(`span`,{className:`cat-icon`,style:{color:u},children:It[e]||(0,Q.jsx)(_e,{size:14})}),(0,Q.jsx)(`span`,{className:`cat-name`,children:e.replace(/_/g,` `)}),(0,Q.jsxs)(`span`,{className:`cat-badge`,style:{background:`${u}22`,color:u},children:[t.available,`/`,t.total]}),(0,Q.jsx)(`div`,{className:`cat-bar-bg`,children:(0,Q.jsx)(`div`,{className:`cat-bar-fill`,style:{width:`${l}%`,background:u}})}),(0,Q.jsx)(`span`,{className:`cat-chevron`,children:(0,Q.jsx)(Ft,{open:i,size:14})})]}),i&&(0,Q.jsx)(`div`,{className:`cat-tools-grid`,children:d.map(([e,t])=>{let n=r[e];return(0,Q.jsxs)(`div`,{className:`tool-chip ${t?`available`:`missing`}${n?` tool-chip--clickable`:``}`,onClick:n?()=>s(n):void 0,title:n?`Click for details on ${e}`:void 0,children:[t?(0,Q.jsx)(g,{size:10,color:`var(--green)`}):(0,Q.jsx)(c,{size:10,color:`var(--red)`}),(0,Q.jsx)(`span`,{className:`mono`,children:e})]},e)})})]})]})}function Rt({health:e,tools:t,toolCategories:n}){let[r,i]=(0,V.useState)(!1),a=Object.fromEntries(t.map(e=>[e.name,e])),o=e.all_essential_tools_available?`var(--success)`:`var(--warning)`,s=Object.entries(e.category_stats).sort(([e],[t])=>e.localeCompare(t)),c=s.filter(([,e])=>e.availablee.availablei(e=>!e),children:[(0,Q.jsxs)(`h3`,{children:[`Tool Availability`,(0,Q.jsxs)(`span`,{className:`section-install-badge`,style:{color:o,borderColor:`${o}55`,background:`${o}1A`},children:[e.total_tools_available,`/`,e.total_tools_count,` installed`]})]}),(0,Q.jsxs)(`div`,{className:`section-header-side`,children:[(0,Q.jsx)(`span`,{className:`section-meta`,children:kt(e.tool_availability_age_seconds)}),(0,Q.jsx)(`span`,{className:`section-chevron`,children:(0,Q.jsx)(Ft,{open:r,size:14})})]})]}),(0,Q.jsxs)(`div`,{className:`cat-list`,children:[!r&&(0,Q.jsx)(`div`,{className:`cat-list-mode-note`,children:c===0?`All categories fully installed (${s.length}/${s.length})`:`Showing categories with missing tools (${c}/${s.length})`}),l.map(([t,r])=>{let i=Dt(t,e.tools_status,n);return(0,Q.jsx)(Lt,{category:t,stats:r,toolStatuses:Object.fromEntries(i.map(t=>[t,e.tools_status[t]??!1])),toolsByName:a},t)}),(0,Q.jsxs)(`button`,{className:`cat-list-toggle-row`,onClick:()=>i(e=>!e),children:[(0,Q.jsx)(`span`,{children:r?`Show only incomplete categories`:`Show all categories`}),(0,Q.jsx)(`span`,{className:`cat-list-toggle-chevron`,children:r?(0,Q.jsx)(p,{size:14}):(0,Q.jsx)(b,{size:14})})]})]})]})}function zt(e){let t=Math.max(0,(Date.now()-e.getTime())/1e3);return t<60?`just now`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Bt({runHistory:e}){let t=[...e].sort((e,t)=>t.ts.getTime()-e.ts.getTime()).slice(0,5);return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsx)(`div`,{className:`section-header`,children:(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(de,{size:14,className:`section-title-icon`}),`Recent Activity`]})}),t.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No tool runs yet this session.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:t.map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[e.result.success?(0,Q.jsx)(g,{size:14,color:`var(--green)`}):(0,Q.jsx)(c,{size:14,color:`var(--red)`}),(0,Q.jsx)(`span`,{className:`mono widget-list-row-main`,children:e.tool}),(0,Q.jsx)(`span`,{className:`section-meta`,children:zt(e.ts)})]},e.id))})]})}function Vt(){let[e,n]=(0,V.useState)([]),[r,i]=(0,V.useState)(0),[a,o]=(0,V.useState)(!0);return(0,V.useEffect)(()=>{let e=!1;return(H()?X(()=>import(`./demo-D7-kgQFW.js`).then(e=>e.DEMO_SESSIONS),[]):Z.sessions()).then(t=>{e||(n(t.active),i(t.total_completed))}).catch(()=>{}).finally(()=>{e||o(!1)}),()=>{e=!0}},[]),(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsxs)(`div`,{className:`section-header`,children:[(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(t,{size:14,className:`section-title-icon`}),`Active Sessions`]}),!a&&(0,Q.jsxs)(`span`,{className:`section-meta`,children:[r,` completed`]})]}),a?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):e.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No active sessions.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:e.slice(0,5).map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`widget-list-row-main`,children:e.name||e.target}),(0,Q.jsxs)(`span`,{className:`section-meta`,children:[e.total_findings,` findings`]})]},e.session_id))})]})}function Ht(e){let t=Math.max(0,Date.now()/1e3-e);return t<60?`just now`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Ut(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(!0);(0,V.useEffect)(()=>{let e=!1;return Z.loot().then(n=>{e||t(n.loot)}).catch(()=>{}).finally(()=>{e||r(!1)}),()=>{e=!0}},[]);let i=[...e].sort((e,t)=>t.created_at-e.created_at).slice(0,5);return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsx)(`div`,{className:`section-header`,children:(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(pe,{size:14,className:`section-title-icon`}),`Recent Loot`]})}),n?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):i.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No loot captured yet.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:i.map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`widget-list-row-main`,children:e.title}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.host??e.source_tool??``}),(0,Q.jsx)(`span`,{className:`section-meta`,children:Ht(e.created_at)})]},e.loot_id))})]})}function Wt(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!0);(0,V.useEffect)(()=>{let e=!1;function n(){(H()?X(()=>import(`./demo-D7-kgQFW.js`).then(e=>e.DEMO_PROCESSES),[]):Z.processDashboard()).then(n=>{e||t(n)}).catch(()=>{}).finally(()=>{e||r(!1)})}if(n(),H())return()=>{e=!0};let i=setInterval(n,5e3);return()=>{e=!0,clearInterval(i)}},[]);let i=e?.processes??[];return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsxs)(`div`,{className:`section-header`,children:[(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(A,{size:14,className:`section-title-icon`}),`Task Queue`]}),e&&(0,Q.jsxs)(`span`,{className:`section-meta`,children:[e.total_processes,` running`]})]}),n?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):i.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No background tasks running.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:i.slice(0,5).map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`mono widget-list-row-main`,children:e.command}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.status}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.progress_percent})]},e.task_id??e.pid??e.command))})]})}var Gt=(0,V.lazy)(()=>X(()=>import(`./ResourceSection-BDk7SrS4.js`).then(e=>({default:e.ResourceSection})),__vite__mapDeps([0,1,2,3,4,5]))),Kt=[{id:`kpi-row`,label:`KPI Overview`,icon:_,description:`Server status, tool counts, and command totals`,render:e=>(0,V.createElement)(jt,{health:e.health,tools:e.tools,runHistory:e.runHistory})},{id:`system-resources`,label:`System Resources`,icon:o,description:`Live CPU, memory, and disk usage`,render:e=>(0,V.createElement)(V.Suspense,{fallback:(0,V.createElement)(`div`,{className:`loading-state`},(0,V.createElement)(`div`,{className:`spin spin--sm spin--green`}))},(0,V.createElement)(Gt,{demoResources:e.demo?e.health?.resources:void 0,demoHistory:e.demo?e.demoCpuHistory:void 0}))},{id:`tool-availability`,label:`Tool Availability`,icon:ue,description:`Installed-tool breakdown by category`,render:e=>(0,V.createElement)(Rt,{health:e.health,tools:e.tools,toolCategories:e.toolCategories})},{id:`recent-activity`,label:`Recent Activity`,icon:de,description:`Latest tool runs from this session`,render:e=>(0,V.createElement)(Bt,{runHistory:e.runHistory})},{id:`active-sessions`,label:`Active Sessions`,icon:t,description:`Recon/engagement sessions currently in progress`,render:()=>(0,V.createElement)(Vt)},{id:`recent-loot`,label:`Recent Loot`,icon:pe,description:`Recently captured credentials and artefacts`,render:()=>(0,V.createElement)(Ut)},{id:`task-queue`,label:`Task Queue`,icon:A,description:`Running and queued background tasks`,render:()=>(0,V.createElement)(Wt)}],qt=Kt.map(e=>e.id),Jt=[`kpi-row`,`system-resources`,`tool-availability`],Yt=`nyxstrike_dashboard_widgets`;function Xt(e){let t=new Set(qt);return e.filter(e=>t.has(e))}function Zt(){let[e,t]=vt(Yt,Jt),n=Xt(e),r=n.map(e=>Kt.find(t=>t.id===e)).filter(e=>!!e),i=Kt.filter(e=>!n.includes(e.id));function a(e){t(t=>t.includes(e)?t:[...t,e])}function o(e){t(t=>t.filter(t=>t!==e))}function s(e,n){t(t=>{let r=Xt(t),i=r.indexOf(e),a=r.indexOf(n);if(i===-1||a===-1||i===a)return t;let o=[...r];return o.splice(i,1),o.splice(a,0,e),o})}return{enabledWidgets:r,availableWidgets:i,addWidget:a,removeWidget:o,reorderWidget:s}}function Qt({id:e,label:t,isCustomizing:n,dragHandlers:r,dragClassName:i,onRemove:a,children:o}){return n?(0,Q.jsxs)(`div`,{className:i(e,`dashboard-widget-frame`),...r(e),children:[(0,Q.jsxs)(`div`,{className:`dashboard-widget-toolbar`,children:[(0,Q.jsx)(`span`,{className:`dashboard-widget-grip`,title:`Drag to reorder`,children:(0,Q.jsx)(se,{size:14})}),(0,Q.jsx)(`span`,{className:`dashboard-widget-frame-label`,children:t}),(0,Q.jsx)(`button`,{type:`button`,className:`icon-btn dashboard-widget-remove`,onClick:()=>a(e),title:`Remove ${t}`,children:(0,Q.jsx)(ie,{size:14})})]}),(0,Q.jsx)(`div`,{className:`dashboard-widget-frame-body`,children:o})]}):(0,Q.jsx)(Q.Fragment,{children:o})}function $t({health:e,tools:t,runHistory:n,loading:r,error:i,toolCategories:a,demo:o,demoCpuHistory:s}){let[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(!1),{enabledWidgets:p,availableWidgets:h,addWidget:g,removeWidget:_,reorderWidget:v}=Zt(),{dragHandlers:y,dragClassName:b}=_t(v),x={health:e,tools:t,runHistory:n,toolCategories:a,demo:o,demoCpuHistory:s};return(0,Q.jsxs)(Q.Fragment,{children:[r&&!e&&(0,Q.jsxs)(`div`,{className:`loading-state`,children:[(0,Q.jsx)(`div`,{className:`spin spin--sm spin--green`}),(0,Q.jsx)(`p`,{children:`Connecting to server…`})]}),i&&!e&&(0,Q.jsxs)(`div`,{className:`error-banner`,children:[(0,Q.jsx)(c,{size:16}),` `,i,` — is the server running on port 8888?`]}),(0,Q.jsxs)(`div`,{className:`dashboard-toolbar`,children:[(0,Q.jsxs)(z,{variant:l?`success`:`default`,onClick:()=>u(e=>!e),children:[(0,Q.jsx)(he,{size:14}),` `,l?`Done`:`Customize`]}),l&&(0,Q.jsxs)(z,{variant:`default`,onClick:()=>f(!0),children:[(0,Q.jsx)(m,{size:14}),` Add Widget`]})]}),p.length===0&&(0,Q.jsxs)(`div`,{className:`dashboard-empty-state`,children:[(0,Q.jsx)(`p`,{children:`No widgets on your dashboard.`}),(0,Q.jsxs)(z,{variant:`success`,onClick:()=>f(!0),children:[(0,Q.jsx)(m,{size:14}),` Add Widget`]})]}),p.map(e=>(0,Q.jsx)(Qt,{id:e.id,label:e.label,isCustomizing:l,dragHandlers:y,dragClassName:b,onRemove:_,children:e.render(x)},e.id)),(0,Q.jsx)(qe,{isOpen:d,title:`Add Widget`,onClose:()=>f(!1),children:h.length===0?(0,Q.jsx)(`p`,{className:`modal-desc`,children:`All available widgets are already on your dashboard.`}):(0,Q.jsx)(`div`,{className:`dashboard-add-widget-list`,children:h.map(e=>{let t=e.icon;return(0,Q.jsxs)(`button`,{type:`button`,className:`dashboard-add-widget-item`,onClick:()=>{g(e.id),f(!1)},children:[(0,Q.jsx)(`span`,{className:`dashboard-add-widget-icon`,children:(0,Q.jsx)(t,{size:16})}),(0,Q.jsxs)(`span`,{className:`dashboard-add-widget-text`,children:[(0,Q.jsx)(`span`,{className:`dashboard-add-widget-label`,children:e.label}),(0,Q.jsx)(`span`,{className:`dashboard-add-widget-desc`,children:e.description})]}),(0,Q.jsx)(m,{size:14})]},e.id)})})})]})}var en=(0,V.lazy)(()=>X(()=>import(`./RunPage-Cs7A2qDb.js`).then(e=>({default:e.RunPage})),__vite__mapDeps([6,1,2,3,7,8,5,9,10,11,12]))),tn=(0,V.lazy)(()=>X(()=>import(`./LogsPage-BNN_sb3K.js`),__vite__mapDeps([13,1,2,3,14,15]))),nn=(0,V.lazy)(()=>X(()=>import(`./SettingsPage-C110GkpJ.js`),__vite__mapDeps([16,1,2,3,17,18,19,14,20]))),rn=(0,V.lazy)(()=>X(()=>import(`./HelpPage-DuOWcYNS.js`),__vite__mapDeps([21,1,2,3,19,14,22]))),an=(0,V.lazy)(()=>X(()=>import(`./TasksPage-DX3euw-I.js`),__vite__mapDeps([23,1,2,3,8,5,14,24,25]))),on=(0,V.lazy)(()=>X(()=>import(`./ToolsPage-Dlctbi3O.js`),__vite__mapDeps([26,1,2,3,14,24,11,27]))),sn=(0,V.lazy)(()=>X(()=>import(`./PluginsPage-HbqISXPY.js`),__vite__mapDeps([28,1,2,3,8,5,14,24,29]))),cn=(0,V.lazy)(()=>X(()=>import(`./ReportsPage--Iq3jyce.js`),__vite__mapDeps([30,1,2,3,14,24,7,8,5,31]))),ln=(0,V.lazy)(()=>X(()=>import(`./VerifyPage-DHf9c-Jk.js`).then(e=>({default:e.VerifyPage})),__vite__mapDeps([32,1,2,3,14,33]))),un=(0,V.lazy)(()=>X(()=>import(`./SessionsPage-CkAlaXnC.js`),__vite__mapDeps([34,1,2,3,8,5,14,24,35]))),dn=(0,V.lazy)(()=>X(()=>import(`./SessionDetailPage-G5ld7-y8.js`),__vite__mapDeps([36,1,2,5,3,17,18,8,4,9,10,37,35]))),fn=(0,V.lazy)(()=>X(()=>import(`./LootPage-CQxk_46b.js`),__vite__mapDeps([38,1,2,5,3,8,14,39]))),pn=(0,V.lazy)(()=>X(()=>import(`./WorkbenchPage-M_xobbfg.js`),__vite__mapDeps([40,1,2,3,17,18,8,5,14,24,41])));function mn(){return(0,Q.jsx)(`div`,{className:`loading-state`,children:(0,Q.jsx)(r,{size:24,className:`spin`,color:`var(--green)`})})}function hn({page:e,demo:t,tools:n,health:i,toolsStatusWithParents:a,runHistory:o,setRunHistory:s,fetchServerRunHistory:c,clearServerRunHistory:l,commandToolRequest:u,onCommandToolHandled:d,urlToolName:f,onToolSelected:p,urlWorkbenchOperationId:m,onWorkbenchOperationSelected:h,urlWorkbenchRecipe:g,onWorkbenchRecipeChanged:_,urlWorkbenchInput:v,onOpenInWorkbench:y,openSessionDetail:b,activeSessionId:x,setPage:S,addBrowserRunEntry:C,logLines:w,logAutoScroll:T,setLogAutoScroll:E,logLimit:D,setLogLimit:O,logEndRef:k,loading:A,error:j,toolCategories:M,themeId:N,setThemeId:P,reduceTextureEffects:ee,setReduceTextureEffects:te,demoProcesses:F,demoSessions:I,demoCpuHistory:L,isPageEnabled:ne,togglePage:re,orderedPageConfigs:ie,reorderPage:ae}){let oe=e===`run`||e===`workbench`||e===`tools`||e===`sessions`||e===`plugins`||e===`loot`||e===`reports`||e===`tasks`||e===`help`||e===`settings`||e===`verify`||e===`logs`;return(0,Q.jsxs)(`main`,{className:`main${oe?` main--flush`:``}`,children:[(0,Q.jsx)(`div`,{className:`page-slot`,children:(0,Q.jsxs)(V.Suspense,{fallback:(0,Q.jsx)(mn,{}),children:[e===`settings`&&(0,Q.jsx)(nn,{themeId:N,setThemeId:P,reduceTextureEffects:ee,setReduceTextureEffects:te,isPageEnabled:ne,togglePage:re,orderedPageConfigs:ie,reorderPage:ae}),e===`help`&&(0,Q.jsx)(rn,{}),e===`run`&&(0,Q.jsx)(en,{tools:n,toolsStatus:a,runHistory:o,setRunHistory:s,commandToolRequest:u,onCommandToolHandled:d,urlToolName:f,onToolSelected:p,onRefresh:c,onClearHistory:l,onOpenSession:b}),e===`tasks`&&(0,Q.jsx)(an,{demoData:t&&F?{processes:F}:void 0}),e===`tools`&&i&&(0,Q.jsx)(on,{health:i,tools:n,toolsStatus:a}),e===`plugins`&&(0,Q.jsx)(sn,{}),e===`reports`&&(0,Q.jsx)(cn,{runHistory:o}),e===`verify`&&(0,Q.jsx)(ln,{}),e===`sessions`&&(0,Q.jsx)(un,{demoData:t&&I?{sessions:I}:void 0,onOpenSession:b}),e===`session-detail`&&x&&(0,Q.jsx)(dn,{sessionId:x,tools:n,onBack:()=>S(`sessions`),onToolRun:C,llmAvailable:i?.llm_status?.available??!1}),e===`loot`&&(0,Q.jsx)(fn,{onOpenInWorkbench:y}),e===`workbench`&&(0,Q.jsx)(pn,{urlOperationId:m,onOperationSelected:h,urlRecipe:g,onRecipeChanged:_,urlInput:v}),e===`logs`&&(0,Q.jsx)(tn,{logLines:w,logAutoScroll:T,setLogAutoScroll:E,logLimit:D,setLogLimit:O,logEndRef:k}),e===`dashboard`&&(0,Q.jsxs)(Q.Fragment,{children:[A&&!i&&(0,Q.jsxs)(`div`,{className:`loading-state`,children:[(0,Q.jsx)(r,{size:24,className:`spin`,color:`var(--green)`}),(0,Q.jsx)(`p`,{children:`Connecting to server…`})]}),j&&!i&&(0,Q.jsxs)(`div`,{className:`error-banner`,children:[j,` — is the server running on port 8888?`]}),i&&(0,Q.jsx)($t,{health:i,tools:n,runHistory:o,loading:A,error:j,toolCategories:M,demo:t,demoCpuHistory:L})]})]})}),!oe&&(0,Q.jsx)(gt,{})]})}function gn(){let[e,t]=(0,V.useState)(()=>{try{let e=localStorage.getItem(We);if(e&&Ke(e))return e}catch{}return`catppuccin`}),[n,r]=(0,V.useState)(()=>{try{return localStorage.getItem(`nyxstrike_reduce_texture_effects`)===`1`}catch{return!1}});return(0,V.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,e),n?document.documentElement.setAttribute(`data-reduce-textures`,`1`):document.documentElement.removeAttribute(`data-reduce-textures`);try{localStorage.setItem(We,e),localStorage.setItem(`nyxstrike_reduce_texture_effects`,n?`1`:`0`)}catch{}},[e,n]),{themeId:e,setThemeId:t,reduceTextureEffects:n,setReduceTextureEffects:r}}var _n=new Set([`dashboard`,`settings`,`help`,`logs`,`run`,`tasks`,`tools`,`plugins`,`reports`,`sessions`,`session-detail`,`loot`,`verify`,`workbench`]);function vn(e,t,n){let r=e?`/workbench/${encodeURIComponent(e)}`:`/workbench`,i=new URLSearchParams;t&&i.set(`recipe`,t),n&&i.set(`input`,n);let a=i.toString();return a?`${r}?${a}`:r}function yn(){let e=window.location.hash.replace(/^#\/?/,``);if(e.startsWith(`sessions/`))return{page:`session-detail`,sessionId:e.slice(9)||null,toolName:null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null};if(e.startsWith(`run/`))return{page:`run`,sessionId:null,toolName:decodeURIComponent(e.slice(4))||null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null};if(e===`workbench`||e.startsWith(`workbench/`)||e.startsWith(`workbench?`)){let[t,n]=e.slice(9).split(`?`),r=t.startsWith(`/`)?decodeURIComponent(t.slice(1)):``,i=new URLSearchParams(n??``);return{page:`workbench`,sessionId:null,toolName:null,workbenchOperationId:r||null,workbenchRecipe:i.get(`recipe`),workbenchInput:i.get(`input`)}}return{page:_n.has(e)?e:`dashboard`,sessionId:null,toolName:null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null}}function bn(e){let t=yn(),[n,r]=(0,V.useState)(t.page),[i,a]=(0,V.useState)(t.sessionId),[o,s]=(0,V.useState)(t.toolName),[c,l]=(0,V.useState)(t.workbenchOperationId),[u,d]=(0,V.useState)(t.workbenchRecipe),[f,p]=(0,V.useState)(t.workbenchInput),[m,h]=(0,V.useState)(!1);function g(e){e!==`session-detail`&&(window.location.hash=`/${e===`dashboard`?``:e}`,r(e),a(null),s(null),l(null),d(null),p(null),h(!1))}function _(e){window.location.hash=`/sessions/${e}`,r(`session-detail`),a(e),s(null),l(null),d(null),p(null),h(!1)}function v(e,t=null){window.location.hash=vn(t,null,e),r(`workbench`),a(null),s(null),l(t),d(null),p(e),h(!1)}function y(e){window.location.hash=e?`/run/${encodeURIComponent(e)}`:`/run`,s(e)}function b(e){window.location.hash=vn(e,u),l(e)}function x(e){window.location.hash=vn(c,e),d(e)}return(0,V.useEffect)(()=>{function e(){let e=yn();r(e.page),a(e.sessionId),s(e.toolName),l(e.workbenchOperationId),d(e.workbenchRecipe),p(e.workbenchInput),h(!1)}return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]),(0,V.useEffect)(()=>{e(n)||g(`dashboard`)},[n,e]),{page:n,activeSessionId:i,activeToolName:o,activeWorkbenchOperationId:c,activeWorkbenchRecipe:u,activeWorkbenchInput:f,sidebarMobileOpen:m,setSidebarMobileOpen:h,setPage:g,openSessionDetail:_,setActiveToolName:y,setActiveWorkbenchOperationId:b,setActiveWorkbenchRecipe:x,openWorkbench:v}}function xn({demo:e,page:t}){let[n,r]=(0,V.useState)([]),[i,a]=(0,V.useState)(!0),[o,s]=(0,V.useState)(500),c=(0,V.useRef)(null),l=(0,V.useRef)(null);return(0,V.useEffect)(()=>{if(e||t!==`logs`)return;let n=null,i=null,a=!1;function o(){a||(n=Z.logStream(150),l.current=n,n.onmessage=e=>{r(t=>{let n=[...t,e.data];return n.length>500?n.slice(-500):n})},n.onerror=()=>{n?.close(),n=null,a||(i=setTimeout(o,3e3))})}return o(),()=>{a=!0,i&&clearTimeout(i),n?.close()}},[e,t]),(0,V.useEffect)(()=>{t===`logs`&&i&&c.current?.scrollIntoView({behavior:`smooth`})},[n,t,i]),{logLines:n,logAutoScroll:i,setLogAutoScroll:a,logLimit:o,setLogLimit:s,logEndRef:c,applyDemoLogLines:(0,V.useCallback)(e=>{r(e)},[])}}var Sn=`nyxstrike_palette_hint_seen`;function Cn(e){let[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(null),[a,o]=(0,V.useState)(()=>{try{return localStorage.getItem(Sn)!==`1`}catch{return!0}}),s=(0,V.useRef)(null);(0,V.useEffect)(()=>{function e(e){(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),s.current=document.activeElement,n(!0))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);function c(t){e(`run`),i({toolName:t.name,requestId:Date.now()})}function l(){o(!1);try{localStorage.setItem(Sn,`1`)}catch{}}function u(){s.current=document.activeElement,n(!0),a&&l()}function d(){n(!1),s.current?.focus()}function f(){i(null)}return{paletteOpen:t,setPaletteOpen:n,commandToolRequest:r,clearCommandToolRequest:f,showPaletteHint:a,dismissPaletteHint:l,openCommandPalette:u,closeCommandPalette:d,handleCommandSelectTool:c}}function wn({demo:e,onProbeSuccess:t,onLoadingDone:n}){let[r,i]=(0,V.useState)(e||je()),[a,o]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{e||je()||Z.dashboard().then(e=>{t(e),i(!0)}).catch(e=>{e instanceof Error&&e.message===`UNAUTHORIZED`?o(!0):i(!0),n()})},[]),{authed:r,needsAuth:a,setAuthed:i,setNeedsAuth:o}}function Tn(e){let t=e.match(/^Date:\s+(\S+)/m);if(!t)return null;let n=new Date(t[1]);return isNaN(n.getTime())?null:n}function En(e,t){let[n,r]=(0,V.useState)([]),i=(0,V.useCallback)((e,t,n)=>{r(r=>[{id:Date.now(),tool:e,params:t,result:n,ts:new Date,source:`browser`},...r].slice(0,200))},[]),a=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.runHistorySummary();if(!e.success)return;r(t=>{let n=new Set(t.filter(e=>e.source===`server`).map(e=>e.serverId)),r=e.runs.filter(e=>!n.has(e.id)).map(e=>({id:-e.id,serverId:e.id,source:`server`,tool:e.tool,params:{},ts:e.timestamp?new Date(e.timestamp):new Date,result:{stdout:``,stderr:``,return_code:0,success:e.success,timed_out:!1,partial_results:!1,execution_time:e.execution_time,timestamp:e.timestamp}}));return r.length===0?t:[...t,...r].sort((e,t)=>t.ts.getTime()-e.ts.getTime())})}catch{}},[e]),o=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.runHistory();if(!e.success)return;r(t=>{let n=t.filter(e=>e.source!==`server`),r=e.runs.filter(e=>{let t=e.timestamp?new Date(e.timestamp).getTime():0;return!n.some(n=>n.source===`browser`&&n.tool===e.tool&&t>0&&Math.abs(n.ts.getTime()-t)<1e4)}).map(e=>({id:-e.id,serverId:e.id,source:`server`,tool:e.tool,params:e.params,ts:e.timestamp?new Date(e.timestamp):Tn(e.stdout??``)??new Date,result:{stdout:e.stdout,stderr:e.stderr,return_code:e.return_code,success:e.success,timed_out:e.timed_out,partial_results:e.partial_results,execution_time:e.execution_time,timestamp:e.timestamp}}));return[...n,...r].sort((e,t)=>t.ts.getTime()-e.ts.getTime())})}catch{}},[e]),s=(0,V.useCallback)(async()=>{if(e){r([]);return}(await Z.clearRunHistory()).success&&r([])},[e]);return(0,V.useEffect)(()=>{e||!t||a().catch(()=>{})},[e,t,a]),{runHistory:n,setRunHistory:r,addBrowserRunEntry:i,fetchServerRunHistory:o,clearServerRunHistory:s}}var Dn=1e4;function On({demo:e,authed:t,onUnauthorized:n}){let[r,i]=(0,V.useState)(null),[a,o]=(0,V.useState)([]),[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(!0),[d,f]=(0,V.useState)(null),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(null),[_,v]=(0,V.useState)({}),y=(0,V.useRef)(null),b=(0,V.useRef)(null);(0,V.useEffect)(()=>{e||Z.tools().then(e=>o(e.tools)).catch(()=>{})},[e]);let x=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.dashboard();i(e),c(new Date),f(null)}catch(e){e instanceof Error&&e.message===`UNAUTHORIZED`?n():f(`Server unreachable`)}finally{u(!1)}},[]);return(0,V.useEffect)(()=>{e||!t||(async()=>{try{let e=await Z.getToolCategories();v(e.categories)}catch{}})()},[e,t]),(0,V.useEffect)(()=>{if(e||!t)return;y.current&&y.current.close(),b.current&&=(clearInterval(b.current),null);function n(){b.current&&clearInterval(b.current),b.current=window.setInterval(()=>{x()},Dn)}let r=Z.dashboardStream();return y.current=r,r.onmessage=e=>{try{let t=JSON.parse(e.data);i(t),c(new Date),u(!1),f(null),m(!0),g(null),b.current&&=(clearInterval(b.current),null)}catch{g(`Malformed dashboard data`)}},r.onerror=()=>{m(!1),g(`Dashboard stream disconnected; using polling.`),b.current||n()},()=>{r.close(),b.current&&clearInterval(b.current)}},[e,t,x]),{health:r,tools:a,lastRefresh:s,loading:l,error:d,isStreaming:p,streamingError:h,toolCategories:_,fetchAll:x,applyDemoSnapshot:(0,V.useCallback)((e,t)=>{i(e),o(t),c(new Date),u(!1)},[]),onProbeSuccess:(0,V.useCallback)(e=>{i(e),u(!1)},[]),onProbeLoadingDone:(0,V.useCallback)(()=>{u(!1)},[])}}function kn({demo:e,onSnapshot:t,onRunHistory:n,onLogLines:r}){let[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(null),[c,l]=(0,V.useState)(null);return(0,V.useEffect)(()=>{e&&X(()=>import(`./demo-D7-kgQFW.js`).then(e=>{t(e.DEMO_HEALTH,e.DEMO_TOOLS),n(e.DEMO_RUN_HISTORY),r(e.DEMO_LOG_LINES),a(e.DEMO_PROCESSES),s(e.DEMO_SESSIONS),l(e.demoCpuMemHistory())}),[])},[e,t,n,r]),{demoProcesses:i,demoSessions:o,demoCpuHistory:c}}var An=xe(),$=[{id:`dashboard`,label:`Home`,icon:_,description:`Overview dashboard with KPIs and live status`,mandatory:!0,paletteLabel:`Open Home`},{id:`run`,label:`Run`,icon:h,description:`Execute security tools interactively`,mandatory:!1,paletteLabel:`Open Run`},{id:`tasks`,label:`Tasks`,icon:A,description:`Background task queue and progress`,mandatory:!1,paletteLabel:`Open Tasks`},{id:`logs`,label:`Logs`,icon:P,description:`Live server log stream`,mandatory:!1,paletteLabel:`Open Logs`},{id:`reports`,label:`Reports`,icon:re,description:`Generated scan reports`,mandatory:!1,paletteLabel:`Open Reports`},{id:`sessions`,label:`Sessions`,icon:t,description:`Saved recon/engagement sessions`,mandatory:!1,paletteLabel:`Open Sessions`},{id:`loot`,label:`Loot`,icon:pe,description:`Captured credentials and artefacts`,mandatory:!1,paletteLabel:`Open Loot`},{id:`verify`,label:`Verify`,icon:ge,description:`Evidence chain-of-custody — look up runs by hash, check session integrity`,mandatory:!1,paletteLabel:`Open Verify`},{id:`tools`,label:`Tools`,icon:ue,description:`Browse and inspect available tools`,mandatory:!1,paletteLabel:`Open Tools`},{id:`workbench`,label:`Workbench`,icon:ee,description:`Quick data transforms — encoding, hashing, ciphers, and more`,mandatory:!1,paletteLabel:`Open Workbench`},{id:`plugins`,label:`Plugins`,icon:I,description:`Manage skill and plugin extensions`,mandatory:!1,paletteLabel:`Open Plugins`},{id:`help`,label:`Help`,icon:L,description:`Documentation and keyboard shortcuts`,mandatory:!1,paletteLabel:`Open Help`},{id:`settings`,label:`Settings`,icon:a,description:`Application settings (always visible)`,mandatory:!0,paletteLabel:`Open Settings`}],jn=new Set($.filter(e=>e.mandatory).map(e=>e.id)),Mn=$.map(({id:e,paletteLabel:t})=>({page:e,label:t}));function Nn({open:e,onClose:t,setPage:n,tools:r,onSelectTool:i}){let[a,o]=(0,V.useState)(``),[c,l]=(0,V.useState)(0),u=(0,V.useRef)(null),d=(0,V.useMemo)(()=>{let e=Mn.map(e=>({id:`page-${e.page}`,label:e.label,hint:`Navigation`,run:()=>{n(e.page),t()}})),a=r.slice(0,120).map(e=>({id:`tool-${e.name}`,label:`Run ${e.name}`,hint:e.category.replace(/_/g,` `),run:()=>{n(`run`),i(e),t()}}));return[...e,...a]},[r,n,i,t]),f=(0,V.useMemo)(()=>{let e=a.trim().toLowerCase();return e?d.filter(t=>`${t.label} ${t.hint}`.toLowerCase().includes(e)).slice(0,18):d.slice(0,18)},[d,a]);return(0,V.useEffect)(()=>{e&&(o(``),l(0))},[e]),Te(e,t),we(u,e),(0,V.useEffect)(()=>{if(!e)return;function t(e){if(e.key===`Escape`){e.preventDefault();return}if(e.key===`ArrowDown`){e.preventDefault(),l(e=>Math.min(e+1,Math.max(f.length-1,0)));return}if(e.key===`ArrowUp`){e.preventDefault(),l(e=>Math.max(e-1,0));return}if(e.key===`Enter`){let t=f[c];t&&(e.preventDefault(),t.run())}}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,f,c]),e?(0,An.createPortal)((0,Q.jsx)(`div`,{className:`sheet-backdrop sheet-backdrop--centered`,onClick:t,children:(0,Q.jsxs)(`div`,{ref:u,className:`sheet sheet--centered command-palette`,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`command-palette-input-wrap`,children:[(0,Q.jsx)(s,{size:14,"aria-hidden":`true`}),(0,Q.jsx)(`input`,{autoFocus:!0,className:`command-palette-input mono`,"aria-label":`Search commands and tools`,value:a,onChange:e=>{o(e.target.value),l(0)},placeholder:`Type a command or tool name...`})]}),(0,Q.jsxs)(`div`,{className:`command-palette-list`,children:[f.map((e,t)=>(0,Q.jsxs)(`button`,{className:`command-palette-item${t===c?` active`:``}`,onClick:e.run,children:[(0,Q.jsx)(`span`,{className:`command-palette-label`,children:e.label}),(0,Q.jsx)(`span`,{className:`command-palette-hint`,children:e.hint})]},e.id)),f.length===0&&(0,Q.jsx)(`div`,{className:`command-palette-empty`,children:`No results`})]})]})}),document.body):null}function Pn({isOpen:e,title:t,description:n,impactItems:r=[],confirmLabel:i=`Confirm`,cancelLabel:a=`Cancel`,confirmVariant:o=`danger`,isConfirming:s=!1,onConfirm:c,onClose:l}){return(0,Q.jsxs)(B,{isOpen:e,onClose:l,variant:`centered`,disableClose:s,className:`confirm-action-modal`,ariaLabel:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-icon modal-icon--danger`,"aria-hidden":`true`,children:(0,Q.jsx)(N,{size:14})}),(0,Q.jsx)(`span`,{className:`modal-name`,children:t})]}),children:[(0,Q.jsx)(`p`,{className:`modal-desc`,children:n}),r.length>0&&(0,Q.jsx)(`div`,{className:`confirm-action-impact`,children:r.map(e=>(0,Q.jsx)(`div`,{className:`confirm-action-impact-item`,children:e},e))}),(0,Q.jsxs)(`div`,{className:`confirm-action-buttons`,children:[(0,Q.jsx)(z,{variant:`default`,onClick:l,disabled:s,children:a}),(0,Q.jsx)(z,{variant:o,onClick:()=>{c()},disabled:s,children:s?`Working…`:i})]})]})}function Fn({sessions:e,activeSessionId:t,onSelectSession:n,onCreateSession:r,onDeleteSession:i,onDeleteAllSessions:a,onRenameSession:o}){let[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(null),[p,h]=(0,V.useState)(``),g=(0,V.useRef)(null);(0,V.useEffect)(()=>{d&&g.current&&(g.current.focus(),g.current.select())},[d]);function _(e){f(e.id),h(e.name||`New chat`)}function v(){d&&p.trim()&&o(d,p.trim()),f(null)}function y(){f(null)}return(0,Q.jsxs)(`div`,{className:`chat-sidebar`,children:[(0,Q.jsxs)(`div`,{className:`chat-sidebar-header`,children:[(0,Q.jsx)(`span`,{className:`chat-sidebar-title`,children:`Chats`}),(0,Q.jsx)(`button`,{className:`chat-new-btn`,onClick:r,title:`New chat`,children:(0,Q.jsx)(m,{size:14})})]}),(0,Q.jsxs)(`div`,{className:`chat-session-list`,children:[e.length===0&&(0,Q.jsx)(`div`,{className:`chat-session-empty`,children:`No sessions yet`}),e.map(e=>(0,Q.jsxs)(`div`,{className:`chat-session-item${e.id===t?` active`:``}`,onClick:()=>{d!==e.id&&n(e.id)},onDoubleClick:t=>{t.stopPropagation(),_(e)},children:[(0,Q.jsx)(w,{size:12,className:`chat-session-icon`}),d===e.id?(0,Q.jsx)(`input`,{ref:g,className:`chat-session-rename-input`,name:`session-rename`,value:p,onChange:e=>h(e.target.value),onBlur:v,onKeyDown:e=>{e.key===`Enter`&&v(),e.key===`Escape`&&y()},onClick:e=>e.stopPropagation()}):(0,Q.jsx)(`span`,{className:`chat-session-name`,children:e.name||`New chat`}),(0,Q.jsx)(`button`,{className:`chat-session-delete`,onClick:t=>{t.stopPropagation(),c(e.id)},title:`Delete`,children:(0,Q.jsx)(me,{size:11})})]},e.id))]}),e.length>0&&(0,Q.jsx)(`div`,{className:`chat-sidebar-footer`,children:(0,Q.jsxs)(`button`,{className:`chat-delete-all-btn`,onClick:()=>u(!0),title:`Delete all chats`,children:[(0,Q.jsx)(me,{size:11}),`Delete all`]})}),(0,Q.jsx)(Pn,{isOpen:s!==null,title:`Delete chat?`,description:`This will permanently delete the chat session and all its messages.`,confirmLabel:`Delete`,confirmVariant:`danger`,onConfirm:()=>{s&&i(s),c(null)},onClose:()=>c(null)}),(0,Q.jsx)(Pn,{isOpen:l,title:`Delete all chats?`,description:`This will permanently delete all chat sessions and their messages. This cannot be undone.`,confirmLabel:`Delete all`,confirmVariant:`danger`,onConfirm:()=>{a(),u(!1)},onClose:()=>u(!1)})]})}function In({code:e,language:t=``}){let[n,r]=(0,V.useState)(!1);function i(){navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`code-block`,children:[(0,Q.jsxs)(`div`,{className:`code-block-header`,children:[(0,Q.jsx)(`span`,{className:`code-lang mono`,children:t||`code`}),(0,Q.jsx)(`button`,{className:`icon-btn code-copy`,onClick:i,title:`Copy`,children:n?(0,Q.jsx)(E,{size:13,color:`var(--green)`}):(0,Q.jsx)(R,{size:13})})]}),(0,Q.jsx)(`pre`,{className:`code-pre mono`,children:e})]})}function Ln(e){let t=[],n=/(\*\*(.+?)\*\*|\*(.+?)\*|`([^`]+)`)/g,r=0,i,a=0;for(;(i=n.exec(e))!==null;)i.index>r&&t.push(e.slice(r,i.index)),i[2]==null?i[3]==null?i[4]!=null&&t.push((0,V.createElement)(`code`,{key:a++,className:`chat-inline-code`},i[4])):t.push((0,V.createElement)(`em`,{key:a++},i[3])):t.push((0,V.createElement)(`strong`,{key:a++},i[2])),r=i.index+i[0].length;return r0;){let t=n[r].trimEnd();if(t===e){if(c--,c===0)break;s.push(n[r])}else t.match(RegExp(`^${e}\\w+$`))&&c++,s.push(n[r]);r++}r++,t.push((0,V.createElement)(In,{key:i++,code:s.join(` -`),language:o}));continue}if(e.match(/^[-*]\s+(.*)$/)){let e=[];for(;r `)){let e=[];for(;r `);)e.push(n[r].slice(2)),r++;t.push((0,V.createElement)(`blockquote`,{key:i++,style:{margin:`4px 0`,paddingLeft:`8px`,borderLeft:`3px solid var(--border)`,color:`var(--text-dim)`}},...e.map((e,t)=>(0,V.createElement)(`p`,{key:t,className:`chat-md-p`},Ln(e)))));continue}if(e.includes(`|`)&&e.trim().startsWith(`|`)){let e=[];for(;re.trim());t.every(e=>/^[:\-\s]+$/.test(e))||e.push(t),r++}if(e.length>0){let n=e[0],r=e.slice(1);t.push((0,V.createElement)(`table`,{key:i++,style:{fontSize:`12px`,borderCollapse:`collapse`,margin:`4px 0`,width:`100%`}},(0,V.createElement)(`thead`,null,(0,V.createElement)(`tr`,null,...n.map((e,t)=>(0,V.createElement)(`th`,{key:t,style:{textAlign:`left`,padding:`3px 6px`,borderBottom:`1px solid var(--border)`,fontWeight:600}},Ln(e))))),r.length>0?(0,V.createElement)(`tbody`,null,...r.map((e,t)=>(0,V.createElement)(`tr`,{key:t},...e.map((e,t)=>(0,V.createElement)(`td`,{key:t,style:{padding:`3px 6px`,borderBottom:`1px solid rgba(255,255,255,0.06)`}},Ln(e)))))):null))}continue}if(e.trim()===``){r++;continue}let o=e.startsWith(`# `),s=e.startsWith(`## `),c=e.startsWith(`### `);o?t.push((0,V.createElement)(`h3`,{key:i++},e.slice(2))):s?t.push((0,V.createElement)(`h4`,{key:i++},e.slice(3))):c?t.push((0,V.createElement)(`strong`,{key:i++},e.slice(4))):t.push((0,V.createElement)(`p`,{key:i++,className:`chat-md-p`},Ln(e))),r++}return(0,V.createElement)(V.Fragment,null,...t)}function zn(e){return e?new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``}var Bn=8;function Vn({text:e,variant:t}){let n=e.split(` -`).length,r=n>Bn,[i,a]=(0,V.useState)(!r),[o,s]=(0,V.useState)(!1);function c(){navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`chat-tool-output-block`,children:[(0,Q.jsx)(`button`,{className:`chat-tool-output-copy`,onClick:c,title:`Copy output`,children:o?(0,Q.jsx)(E,{size:11}):(0,Q.jsx)(R,{size:11})}),(0,Q.jsx)(`pre`,{className:`chat-tool-call-${t}${r&&!i?` chat-tool-call-output--collapsed`:``}`,children:e}),r&&(0,Q.jsx)(`button`,{className:`chat-tool-output-toggle`,onClick:()=>a(e=>!e),children:i?`↑ Show less`:`↓ Show more (${n} lines)`})]})}function Hn({tc:e}){let t=Object.entries(e.arguments||{}),n=e.result,r=(n?.stdout??``).trim(),i=(n?.stderr??``).trim(),a=!!n;return(0,Q.jsxs)(`div`,{className:`chat-tool-call-card chat-tool-call-card--resolved${e.cancelled?` chat-tool-call-card--cancelled`:``}`,children:[(0,Q.jsxs)(`div`,{className:`chat-tool-call-header`,children:[(0,Q.jsx)(P,{size:12,className:`chat-tool-call-icon`}),(0,Q.jsx)(`span`,{className:`chat-tool-call-name`,children:e.tool_name.replace(/_/g,` `).toUpperCase()}),e.cancelled&&(0,Q.jsxs)(`span`,{className:`chat-tool-call-badge`,children:[(0,Q.jsx)(le,{size:10}),` Cancelled`]}),a&&(0,Q.jsx)(`span`,{className:`chat-tool-call-badge${n?.success===!1?` chat-tool-call-badge--danger`:``}`,children:n?.timed_out?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(c,{size:10}),` Timed out`]}):n?.success===!1?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(c,{size:10}),` Failed · rc:`,n?.return_code]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(g,{size:10}),` Done · `,n?.execution_time?.toFixed(2),`s`]})})]}),t.length>0&&(0,Q.jsx)(`div`,{className:`chat-tool-call-args`,children:t.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`chat-tool-call-arg`,children:[(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-key`,children:e}),(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-val`,children:String(t)})]},e))}),(r||i)&&(0,Q.jsxs)(`div`,{className:`chat-tool-call-output`,children:[r&&(0,Q.jsx)(Vn,{text:r,variant:`stdout`}),i&&(0,Q.jsx)(Vn,{text:i,variant:`stderr`})]})]})}function Un({message:e,onConfirmTool:t}){let n=e.toolCallPending,r=n.arguments||{},i=Object.entries(r);return(0,Q.jsxs)(`div`,{className:`chat-tool-call-card`,children:[(0,Q.jsxs)(`div`,{className:`chat-tool-call-header`,children:[(0,Q.jsx)(P,{size:12,className:`chat-tool-call-icon`}),(0,Q.jsx)(`span`,{className:`chat-tool-call-name`,children:n.tool_name.replace(/_/g,` `).toUpperCase()})]}),n.description&&(0,Q.jsx)(`p`,{className:`chat-tool-call-desc`,children:n.description}),i.length>0&&(0,Q.jsx)(`div`,{className:`chat-tool-call-args`,children:i.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`chat-tool-call-arg`,children:[(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-key`,children:e}),(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-val`,children:String(t)})]},e))}),(0,Q.jsxs)(`div`,{className:`chat-tool-call-warning`,children:[(0,Q.jsx)(x,{size:11}),(0,Q.jsx)(`span`,{children:`Operator confirmation required before execution`})]}),t&&(0,Q.jsxs)(`div`,{className:`chat-tool-call-actions`,children:[(0,Q.jsxs)(`button`,{className:`chat-tool-call-btn chat-tool-call-btn--approve`,onClick:()=>t(!0),children:[(0,Q.jsx)(g,{size:12}),`Approve & Run`]}),(0,Q.jsxs)(`button`,{className:`chat-tool-call-btn chat-tool-call-btn--reject`,onClick:()=>t(!1),children:[(0,Q.jsx)(c,{size:12}),`Reject`]})]})]})}function Wn({message:e,onRetry:t,onConfirmTool:n}){let r=e.role===`user`,[i,a]=(0,V.useState)(!1);function o(){navigator.clipboard.writeText(e.content).then(()=>{a(!0),setTimeout(()=>a(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`chat-message chat-message--${r?`user`:`assistant`}${e.error?` chat-message--error`:``}`,children:[(0,Q.jsxs)(`div`,{className:`chat-message-bubble${e.toolCallPending||e.toolCallResolved?` chat-message-bubble--tool`:``}`,children:[e.toolCallPending?(0,Q.jsx)(Un,{message:e,onConfirmTool:n}):e.toolCallResolved?(0,Q.jsx)(Hn,{tc:e.toolCallResolved}):e.thinking&&e.content===``?(0,Q.jsx)(`span`,{className:`chat-thinking-indicator`,children:`Thinking…`}):e.streaming&&e.content===``?(0,Q.jsxs)(`span`,{className:`chat-typing-indicator`,children:[(0,Q.jsx)(`span`,{}),(0,Q.jsx)(`span`,{}),(0,Q.jsx)(`span`,{})]}):r?(0,Q.jsx)(`span`,{className:`chat-message-text`,children:e.content}):(0,Q.jsx)(`div`,{className:`chat-message-markdown`,children:Rn(e.content)}),e.error&&t&&(0,Q.jsx)(`button`,{className:`chat-retry-btn`,onClick:t,children:`Retry`}),!r&&!e.streaming&&!e.error&&!e.toolCallPending&&!e.toolCallResolved&&e.content&&(0,Q.jsx)(`button`,{className:`chat-copy-btn`,onClick:o,title:`Copy message`,children:i?(0,Q.jsx)(E,{size:12,color:`var(--green)`}):(0,Q.jsx)(R,{size:12})})]}),!r&&!e.streaming&&!e.toolCallPending&&!e.toolCallResolved&&(e.stats||e.timestamp)&&(0,Q.jsx)(`div`,{className:`chat-message-meta`,children:(0,Q.jsxs)(`span`,{className:`chat-message-stats`,children:[e.stats&&(0,Q.jsxs)(Q.Fragment,{children:[e.stats.eval_count,` tokens`,` · `,e.stats.tokens_per_sec,` tok/s`,` · `,e.stats.total_duration_s,`s`]}),e.stats&&e.timestamp&&` · `,e.timestamp&&zn(e.timestamp)]})}),r&&e.timestamp&&!e.streaming&&(0,Q.jsx)(`div`,{className:`chat-message-meta`,children:(0,Q.jsx)(`span`,{className:`chat-message-time`,children:zn(e.timestamp)})})]})}var Gn=[{label:`Nmap scan`,prompt:`Run an nmap scan on 192.168.1.1`},{label:`WHOIS lookup`,prompt:`Do a WHOIS lookup on example.com`},{label:`Subdomain enum`,prompt:`Enumerate subdomains for example.com`},{label:`SMB enumeration`,prompt:`Enumerate SMB shares on 192.168.1.1`},{label:`Web recon`,prompt:`Run a web recon on https://example.com`},{label:`Crack a hash`,prompt:`Help me crack this hash: 5f4dcc3b5aa765d61d8327deb882cf99`}],Kn=60;function qn({messages:e,onRetry:t,onConfirmTool:n,onSuggest:r}){let i=(0,V.useRef)(null),a=(0,V.useRef)(null),[o,s]=(0,V.useState)(!0),[c,l]=(0,V.useState)(!1),u=(0,V.useCallback)(()=>{let e=i.current;return!e||e.scrollHeight-e.scrollTop-e.clientHeight{let e=i.current;if(!e)return;function t(){let e=u();s(e),e&&l(!1)}return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[u]),(0,V.useEffect)(()=>{o?a.current?.scrollIntoView({behavior:`smooth`}):l(!0)},[e,o]);function d(){a.current?.scrollIntoView({behavior:`smooth`}),s(!0),l(!1)}return(0,Q.jsxs)(`div`,{className:`chat-message-list-wrapper`,children:[(0,Q.jsxs)(`div`,{className:`chat-message-list`,ref:i,children:[e.length===0?(0,Q.jsxs)(`div`,{className:`chat-empty-state`,children:[(0,Q.jsx)(`div`,{className:`chat-empty-icon`,children:(0,Q.jsx)(fe,{size:22})}),(0,Q.jsx)(`p`,{className:`chat-empty-title`,children:`NyxStrike AI`}),(0,Q.jsx)(`p`,{className:`chat-empty-sub`,children:`Run tools, analyze results, plan attacks — just ask.`}),r&&(0,Q.jsx)(`div`,{className:`chat-empty-suggestions`,children:Gn.map(e=>(0,Q.jsx)(`button`,{className:`chat-empty-chip`,onClick:()=>r(e.prompt),children:e.label},e.label))})]}):e.map(e=>(0,Q.jsx)(Wn,{message:e,onRetry:e.error&&t?()=>t(e):void 0,onConfirmTool:e.toolCallPending&&n?t=>n(e.id,t):void 0},e.id)),(0,Q.jsx)(`div`,{ref:a})]}),c&&(0,Q.jsx)(`button`,{className:`chat-scroll-bottom-pill`,onClick:d,title:`Scroll to bottom`,children:(0,Q.jsx)(k,{size:14})})]})}var Jn=`👍.👎.👋.🙏.🤝.💪.🎯.🔥.✅.❌.⚠️.🚨.🛡️.🔒.🔓.🔑.💡.📌.📎.🗂️.📊.📈.🧪.🐛.🚀.⚡.💻.🖥️.🌐.📡.🔍.🕵️.😀.😂.🤔.😎.🤯.😱.👀.🎉`.split(`.`);function Yn({onSend:e,streaming:t,onStop:n,disabled:r,prefill:i}){let[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(!1),u=(0,V.useRef)(null),d=(0,V.useRef)(null);(0,V.useEffect)(()=>{i&&(o(i),requestAnimationFrame(()=>{let e=u.current;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length))}))},[i]),(0,V.useEffect)(()=>{if(!s)return;function e(e){d.current&&!d.current.contains(e.target)&&c(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);function f(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),p())}function p(){let n=a.trim();!n||t||r||(e(n),o(``),c(!1),u.current&&(u.current.style.height=`auto`))}function m(e){o(e.target.value);let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,160)+`px`}function h(e){let t=u.current;if(t){let n=t.selectionStart,r=t.selectionEnd,i=a.slice(0,n)+e+a.slice(r);o(i),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})}else o(t=>t+e);c(!1)}return(0,Q.jsxs)(`div`,{className:`chat-input-area`,children:[(0,Q.jsx)(`textarea`,{ref:u,className:`chat-textarea mono`,name:`chat-message`,value:a,onChange:m,onKeyDown:f,placeholder:`Message NyxStrike… (Enter to send, Shift+Enter for newline)`,rows:1,disabled:r}),(0,Q.jsxs)(`div`,{className:`chat-input-actions`,children:[(0,Q.jsxs)(`div`,{className:`chat-emoji-wrapper`,ref:d,children:[(0,Q.jsx)(`button`,{className:`chat-emoji-btn`,onClick:()=>c(e=>!e),title:`Emoji`,disabled:r,children:(0,Q.jsx)(te,{size:14})}),s&&(0,Q.jsx)(`div`,{className:`chat-emoji-picker`,children:Jn.map(e=>(0,Q.jsx)(`button`,{className:`chat-emoji-item`,onClick:()=>h(e),children:e},e))})]}),t?(0,Q.jsx)(`button`,{className:`chat-send-btn chat-stop-btn`,onClick:n,title:`Stop`,children:(0,Q.jsx)(ne,{size:14})}):(0,Q.jsx)(`button`,{className:`chat-send-btn`,onClick:p,disabled:!a.trim()||r,title:`Send`,children:(0,Q.jsx)(l,{size:14})})]})]})}function Xn(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(!0),i=(0,V.useCallback)(async()=>{r(!0);try{let e=await Z.chat.listSessions();e.success&&t(e.sessions)}catch{}finally{r(!1)}},[]);(0,V.useEffect)(()=>{i()},[i]);async function a(){try{let e=await Z.chat.createSession();if(e.success)return t(t=>[e.session,...t]),e.session}catch{}return null}async function o(e){try{await Z.chat.deleteSession(e),t(t=>t.filter(t=>t.id!==e))}catch{}}async function s(){let n=e.map(e=>e.id);await Promise.allSettled(n.map(e=>Z.chat.deleteSession(e))),t([])}function c(e,n){t(t=>t.map(t=>t.id===e?{...t,name:n}:t))}async function l(e,n){try{await Z.chat.renameSession(e,n),t(t=>t.map(t=>t.id===e?{...t,name:n}:t))}catch{}}return{sessions:e,loading:n,createSession:a,deleteSession:o,deleteAllSessions:s,updateSessionName:c,renameSession:l,reload:i}}function Zn(){return sessionStorage.getItem(`nyxstrike_token`)}var Qn=[500,1e3,2e3,4e3];function $n(){return new Date().toISOString()}function er(e){let t=e.match(/^\[Tool call cancelled by operator:\s*([^\]]+)\]/);if(t)return{tool_name:t[1].trim(),cancelled:!0};let n=e.match(/^\[Tool call requested:\s*\*\*([^*]+)\*\*\]/);if(n){let t={},r=e.match(/Arguments:\s*`([^`]+)`/);if(r)try{t=JSON.parse(r[1])}catch{}return{tool_name:n[1].trim(),arguments:t,cancelled:!1}}let r=e.match(/^\[Tool executed:\s*\*\*([^*]+)\*\*\]/);if(r){let t={},n=e.match(/Arguments:\s*`([^`]+)`/);if(n)try{t=JSON.parse(n[1])}catch{}let i={},a=e.match(/```json\n([\s\S]+?)\n```/);if(a)try{let e=JSON.parse(a[1]);i={stdout:e.stdout??``,stderr:e.stderr??``,execution_time:e.execution_time,return_code:e.return_code,success:e.success,timed_out:e.timed_out}}catch{}return{tool_name:r[1].trim(),arguments:t,cancelled:!1,result:i}}return null}function tr(e){let[t,n]=(0,V.useState)([]),[r,i]=(0,V.useState)(!1),a=(0,V.useRef)(null),o=(0,V.useCallback)(async e=>{try{let t=await Z.chat.getMessages(e);t.success&&n(t.messages.map(e=>{let t=e.role===`assistant`?er(e.content):null;return{id:String(e.id),role:e.role,content:t?``:e.content,timestamp:e.created_at,...e.stats?{stats:JSON.parse(e.stats)}:{},...t?{toolCallResolved:t}:{}}}))}catch{}},[]),s=(0,V.useCallback)(async(e,t)=>{if(!e.body)throw Error(`No response body`);let r=e.body.getReader(),a=new TextDecoder,o=``;for(;;){let{done:e,value:s}=await r.read();if(e)break;o+=a.decode(s,{stream:!0});let c=o.split(` - -`);o=c.pop()??``;for(let e of c){let r=e.trim();if(!r.startsWith(`data: `))continue;let a=r.slice(6);if(a===`[DONE]`)return n(e=>e.map(e=>e.id===t?{...e,streaming:!1,thinking:!1}:e)),i(!1),`done`;if(a===`[THINKING]`){n(e=>e.map(e=>e.id===t?{...e,thinking:!0}:e));continue}if(a.startsWith(`[STATS]`)){try{let e=JSON.parse(a.slice(7).trim());n(n=>n.map(n=>n.id===t?{...n,stats:e}:n))}catch{}continue}if(a.startsWith(`[ERROR]`)){let e=a.slice(7).trim();return n(n=>n.map(n=>n.id===t?{...n,content:e,streaming:!1,thinking:!1,error:!0}:n)),i(!1),`done`}if(a.startsWith(`[TOOL_CALL_PENDING]`)){try{let e=JSON.parse(a.slice(19).trim());n(n=>n.map(n=>n.id===t?{...n,content:``,streaming:!1,thinking:!1,toolCallPending:e}:n))}catch{}return i(!1),`tool_pending`}try{let e=JSON.parse(a);n(n=>n.map(n=>n.id===t?{...n,content:n.content+e,thinking:!1}:n))}catch{}}}return n(e=>e.map(e=>e.id===t?{...e,streaming:!1,thinking:!1}:e)),i(!1),`done`},[]),c=(0,V.useCallback)(async(t,o,l=0)=>{if(!e||r)return;let u=`user-${Date.now()}-${Math.random().toString(36).slice(2)}`;n(e=>[...e,{id:u,role:`user`,content:t,timestamp:$n()}]);let d=`assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;n(e=>[...e,{id:d,role:`assistant`,content:``,streaming:!0,timestamp:$n()}]),i(!0);let f=new AbortController;a.current=f;let p={"Content-Type":`application/json`},m=Zn();m&&(p.Authorization=`Bearer ${m}`);try{let n=await fetch(`/api/chat/sessions/${e}/message`,{method:`POST`,headers:p,body:JSON.stringify({message:t,context:o}),signal:f.signal});if(!n.ok||!n.body)throw Error(`HTTP ${n.status}`);await s(n,d)}catch(e){if(e instanceof Error&&e.name===`AbortError`){n(e=>e.map(e=>e.id===d?{...e,streaming:!1,thinking:!1}:e)),i(!1);return}if(lt.map(t=>t.id===d?{...t,content:`Connection error, retrying in ${e/1e3}s…`,streaming:!0,thinking:!1}:t)),await new Promise(t=>setTimeout(t,e)),n(e=>e.filter(e=>e.id!==d&&e.id!==u)),i(!1),c(t,o,l+1);return}n(e=>e.map(e=>e.id===d?{...e,content:`Failed to connect after multiple retries.`,streaming:!1,thinking:!1,error:!0}:e)),i(!1)}},[e,r,s]),l=(0,V.useCallback)(async(t,a)=>{if(!e||r)return;n(e=>e.map(e=>e.id===t?{...e,toolCallPending:void 0,streaming:a,thinking:a,content:``}:e)),a&&i(!0);let o={"Content-Type":`application/json`},c=Zn();c&&(o.Authorization=`Bearer ${c}`);try{let n=await fetch(`/api/chat/sessions/${e}/tool-confirm`,{method:`POST`,headers:o,body:JSON.stringify({approved:a})});if(!n.ok||!n.body)throw Error(`HTTP ${n.status}`);await s(n,t)}catch(e){let r=e instanceof Error?e.message:String(e);n(e=>e.map(e=>e.id===t?{...e,content:`Error: ${r}`,streaming:!1,thinking:!1,error:!0}:e)),i(!1)}},[e,r,s]);function u(){a.current?.abort()}function d(){n([])}function f(e,t){n(e=>e[e.length-1]?.error?e.slice(0,-2):e),setTimeout(()=>c(e,t),0)}return{messages:t,streaming:r,send:c,stop:u,loadHistory:o,clearMessages:d,addRetryMessage:f,confirmToolCall:l}}var nr=`nyxstrike_chat_open`,rr=`nyxstrike_chat_size`,ir=280,ar=350;function or(){try{return localStorage.getItem(nr)===`1`}catch{return!1}}function sr(e){try{localStorage.setItem(nr,e?`1`:`0`)}catch{}}function cr(){try{let e=JSON.parse(localStorage.getItem(rr)||`{}`);return{w:Number(e.w)||460,h:Number(e.h)||520}}catch{return{w:460,h:520}}}function lr(e,t){try{localStorage.setItem(rr,JSON.stringify({w:e,h:t}))}catch{}}function ur({llmAvailable:e,currentPage:t,currentSessionId:n}){let[r,i]=(0,V.useState)(or),[a,o]=(0,V.useState)(cr),[s,c]=(0,V.useState)(!1),[l,u]=(0,V.useState)(null),[d,f]=(0,V.useState)(``),{sessions:p,loading:m,createSession:h,deleteSession:g,deleteAllSessions:_,updateSessionName:v,renameSession:y}=Xn(),{messages:x,streaming:S,send:C,stop:T,loadHistory:E,clearMessages:D,confirmToolCall:O}=tr(l),A=(0,V.useRef)(null),j=(0,V.useRef)(!1);(0,V.useEffect)(()=>{function e(e){e.ctrlKey&&e.shiftKey&&e.key.toLowerCase()===`c`&&(e.preventDefault(),i(e=>(sr(!e),!e)))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,V.useEffect)(()=>{m||(!l&&p.length>0?u(p[0].id):!l&&p.length===0&&!j.current&&(j.current=!0,M()))},[p,l,m]),(0,V.useEffect)(()=>{l&&(D(),E(l))},[l]);async function M(){let e=await h();e?(u(e.id),D()):j.current=!1}async function N(e){if(await g(e),l===e){let t=p.filter(t=>t.id!==e);t.length>0?u(t[0].id):(u(null),D())}}async function P(){await _(),u(null),D()}function ee(e){if(!l)return;let r={page:t,session_id:n||``},i=p.find(e=>e.id===l);i&&!i.name&&v(l,e.slice(0,50)),C(e,r)}function te(e){let r=x.indexOf(e);if(r>0&&x[r-1].role===`user`){let e=x[r-1].content;C(e,{page:t,session_id:n||``})}}let F=(0,V.useRef)(null),I=(0,V.useCallback)(e=>t=>{t.preventDefault(),F.current={edge:e,startX:t.clientX,startY:t.clientY,startW:a.w,startH:a.h}},[a]);(0,V.useEffect)(()=>{function e(e){let t=F.current;if(!t)return;let{w:n,h:r}={w:t.startW,h:t.startH};t.edge===`top`?r=Math.max(ar,t.startH+(t.startY-e.clientY)):n=Math.max(ir,t.startW+(t.startX-e.clientX)),o({w:n,h:r}),lr(n,r)}function t(){F.current=null}return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]);function L(){i(e=>(sr(!e),!e))}if(!e)return null;let ne=p.find(e=>e.id===l)?.name||(l?`New chat`:`Starting…`);return(0,Q.jsxs)(Q.Fragment,{children:[!r&&(0,Q.jsxs)(`button`,{className:`chat-fab`,onClick:L,title:`Open chat (Ctrl+Shift+C)`,"aria-label":`Open NyxStrike chat`,children:[(0,Q.jsx)(w,{size:14}),`AI Assistant`]}),r&&(0,Q.jsxs)(`div`,{ref:A,className:`chat-widget`,role:`dialog`,"aria-modal":`false`,"aria-label":`NyxStrike AI chat`,style:{width:a.w,height:a.h},children:[(0,Q.jsx)(`div`,{className:`chat-resize-top`,onMouseDown:I(`top`)}),(0,Q.jsx)(`div`,{className:`chat-resize-left`,onMouseDown:I(`left`)}),(0,Q.jsxs)(`div`,{className:`chat-layout`,children:[s&&(0,Q.jsx)(Fn,{sessions:p,activeSessionId:l,onSelectSession:e=>{u(e)},onCreateSession:M,onDeleteSession:N,onDeleteAllSessions:P,onRenameSession:y}),(0,Q.jsxs)(`div`,{className:`chat-main`,children:[(0,Q.jsxs)(`div`,{className:`chat-header`,children:[(0,Q.jsx)(`button`,{className:`chat-sidebar-toggle`,onClick:()=>c(e=>!e),title:s?`Hide sessions`:`Show sessions`,"aria-label":s?`Hide sessions`:`Show sessions`,children:s?(0,Q.jsx)(be,{size:14}):(0,Q.jsx)(b,{size:14})}),(0,Q.jsxs)(`button`,{type:`button`,className:`chat-header-info`,onClick:L,title:`Collapse chat`,children:[(0,Q.jsx)(`span`,{className:`chat-header-title`,children:`NyxStrike AI`}),n&&t===`session-detail`&&(0,Q.jsx)(`span`,{className:`chat-context-badge`,children:`context: session`}),(0,Q.jsx)(`span`,{className:`chat-session-label mono`,children:ne})]}),(0,Q.jsx)(`button`,{className:`chat-close-btn`,onClick:L,title:`Close`,"aria-label":`Close chat`,children:(0,Q.jsx)(k,{size:14})})]}),(0,Q.jsx)(qn,{messages:x,onRetry:te,onConfirmTool:O,onSuggest:f}),(0,Q.jsx)(Yn,{onSend:ee,streaming:S,onStop:T,disabled:!l,prefill:d})]})]})]})]})}var dr=jn,fr=$.map(({id:e,label:t,description:n})=>({page:e,label:t,description:n})),pr=`nyxstrike_disabled_pages`,mr=`nyxstrike_page_order`,hr=$.filter(e=>!e.mandatory).map(e=>e.id);function gr(e){let t=new Set(hr),n=e.filter(e=>t.has(e)),r=hr.filter(e=>!n.includes(e));return[...n,...r]}function _r(){let[e,t]=vt(pr,[]),[n,r]=vt(mr,[]);function i(t){return dr.has(t)?!0:!e.includes(t)}function a(e){dr.has(e)||t(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}let o=gr(n);function s(e,t){let i=gr(n),a=i.indexOf(e),o=i.indexOf(t);if(a===-1||o===-1||a===o)return;let s=[...i];s.splice(a,1),s.splice(o,0,e),r(s)}return{disabledPages:e,isPageEnabled:i,togglePage:a,orderedPageConfigs:o.map(e=>fr.find(t=>t.page===e)).filter(e=>!!e),orderedNavEntries:[...$.filter(e=>e.mandatory),...o.map(e=>$.find(t=>t.id===e)).filter(e=>!!e)],reorderPage:s}}function vr(){let[e]=(0,V.useState)(H),{isPageEnabled:t,togglePage:n,orderedPageConfigs:r,orderedNavEntries:i,reorderPage:a}=_r(),{page:o,activeSessionId:s,activeToolName:c,activeWorkbenchOperationId:l,activeWorkbenchRecipe:u,activeWorkbenchInput:d,sidebarMobileOpen:f,setSidebarMobileOpen:p,setPage:m,openSessionDetail:h,setActiveToolName:g,setActiveWorkbenchOperationId:_,setActiveWorkbenchRecipe:v,openWorkbench:y}=bn(t),[b,x]=vt(`nyxstrike_sidebar_collapsed`,!1);Te(f,()=>p(!1));let{logLines:S,logAutoScroll:C,setLogAutoScroll:w,logLimit:T,setLogLimit:E,logEndRef:D,applyDemoLogLines:O}=xn({demo:e,page:o}),{authed:k,needsAuth:A,setAuthed:j,setNeedsAuth:M}=wn({demo:e,onProbeSuccess:e=>oe(e),onLoadingDone:()=>se()}),{health:N,tools:P,lastRefresh:te,loading:F,error:I,isStreaming:L,streamingError:ne,toolCategories:re,fetchAll:ie,applyDemoSnapshot:ae,onProbeSuccess:oe,onProbeLoadingDone:se}=On({demo:e,authed:k,onUnauthorized:()=>{M(!0),j(!1)}}),{runHistory:ce,setRunHistory:le,addBrowserRunEntry:ue,fetchServerRunHistory:de,clearServerRunHistory:fe}=En(e,k),{demoProcesses:pe,demoSessions:me,demoCpuHistory:he}=kn({demo:e,onSnapshot:ae,onRunHistory:le,onLogLines:O}),{paletteOpen:R,commandToolRequest:ge,clearCommandToolRequest:_e,showPaletteHint:ve,dismissPaletteHint:ye,openCommandPalette:be,closeCommandPalette:xe,handleCommandSelectTool:Se}=Cn(m),{themeId:Ce,setThemeId:z,reduceTextureEffects:we,setReduceTextureEffects:B}=gn();if(A&&!k)return(0,Q.jsx)(Re,{onUnlocked:()=>{j(!0),M(!1)}});let Ee=He(P,N?.tools_status??{});return(0,Q.jsx)(Be,{children:(0,Q.jsxs)(`div`,{className:e?`layout layout--demo`:`layout`,children:[(0,Q.jsx)(Nn,{open:R,onClose:xe,setPage:m,tools:P,onSelectTool:Se}),(0,Q.jsx)(ur,{llmAvailable:N?.llm_status?.available??!1,currentPage:o,currentSessionId:s}),e&&(0,Q.jsxs)(`div`,{className:`demo-banner`,children:[(0,Q.jsx)(ee,{size:13}),(0,Q.jsx)(`span`,{children:`Demo mode — all data is synthetic`}),(0,Q.jsx)(`button`,{onClick:()=>{De(),window.location.href=window.location.pathname+window.location.hash},children:`Exit demo`})]}),(0,Q.jsx)(dt,{lastRefresh:te,demo:e,isStreaming:L,streamingError:ne,health:N,error:I,loading:F,fetchAll:ie,themeId:Ce,setThemeId:z,reduceTextureEffects:we,setReduceTextureEffects:B,onOpenCommandPalette:be,onSignOut:()=>{j(!1),M(!0)},onToggleMobileSidebar:()=>p(e=>!e)}),ve&&(0,Q.jsxs)(`div`,{className:`palette-hint-floating`,role:`status`,"aria-live":`polite`,children:[(0,Q.jsxs)(`button`,{className:`palette-hint-main`,onClick:be,title:`Open command palette`,children:[(0,Q.jsx)(`span`,{className:`palette-hint-title`,children:`Try Command Palette`}),(0,Q.jsx)(`span`,{className:`palette-hint-kbd mono`,children:`Ctrl/Cmd + K`})]}),(0,Q.jsx)(`button`,{className:`palette-hint-close`,onClick:ye,title:`Dismiss hint`,children:`x`})]}),(0,Q.jsxs)(`div`,{className:`app-body`,style:{"--sidebar-w":b?`3.25rem`:`13rem`},children:[(0,Q.jsx)(ht,{page:o,setPage:m,isPageEnabled:t,navEntries:i,collapsed:b,onToggleCollapsed:()=>x(e=>!e),mobileOpen:f,onCloseMobile:()=>p(!1)}),f&&(0,Q.jsx)(`div`,{className:`sidebar-backdrop`,onClick:()=>p(!1)}),(0,Q.jsx)(hn,{page:o,demo:e,tools:P,health:N,toolsStatusWithParents:Ee,runHistory:ce,setRunHistory:le,fetchServerRunHistory:de,clearServerRunHistory:fe,commandToolRequest:ge,onCommandToolHandled:_e,urlToolName:c,onToolSelected:g,urlWorkbenchOperationId:l,onWorkbenchOperationSelected:_,urlWorkbenchRecipe:u,onWorkbenchRecipeChanged:v,urlWorkbenchInput:d,onOpenInWorkbench:y,openSessionDetail:h,activeSessionId:s,setPage:m,addBrowserRunEntry:ue,logLines:S,logAutoScroll:C,setLogAutoScroll:w,logLimit:T,setLogLimit:E,logEndRef:D,loading:F,error:I,toolCategories:re,themeId:Ce,setThemeId:z,reduceTextureEffects:we,setReduceTextureEffects:B,demoProcesses:pe,demoSessions:me,isPageEnabled:t,togglePage:n,orderedPageConfigs:r,reorderPage:a,demoCpuHistory:he})]})]})})}(0,Ee.createRoot)(document.getElementById(`root`)).render((0,Q.jsx)(V.StrictMode,{children:(0,Q.jsx)(vr,{})}));export{De as C,X as S,Je as _,Et as a,Ve as b,Ct as c,_t as d,gt as f,nt as g,it as h,Pt as i,bt as l,rt as m,Pn as n,xt as o,st as p,Ft as r,St as s,In as t,vt as u,qe as v,H as w,Z as x,Ge as y}; \ No newline at end of file diff --git a/frontend/dashboard/assets/index-DuJ0P36w.js b/frontend/dashboard/assets/index-DuJ0P36w.js new file mode 100644 index 000000000..59736667d --- /dev/null +++ b/frontend/dashboard/assets/index-DuJ0P36w.js @@ -0,0 +1,9 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ResourceSection-Cp2ywmGq.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/vendor-lucide-DUPkM7me.js","assets/vendor-markdown-BanIOC5U.js","assets/vendor-recharts-Dwgbdraq.js","assets/vendor-react-CXyOqTrO.js","assets/RunPage-44IKOoZ3.js","assets/RunResultModal-BlkDYx_t.js","assets/Sheet-BAT5hjNH.js","assets/shared-BFigPD4i.js","assets/shared-ByqnucHJ.css","assets/toolUtils-CYt55nd9.js","assets/RunPage-BixUgUP3.css","assets/LogsPage-BG_DMqqZ.js","assets/BrowserPage-BmNP5Bdw.js","assets/LogsPage-DuxAYc-O.css","assets/SettingsPage-BS4_std9.js","assets/ActionButton-B1Vpk6pw.js","assets/ActionButton-iD1NIpoY.css","assets/CollapsibleSection-B_h9eS-x.js","assets/SettingsPage-C-wiVSEk.css","assets/HelpPage-D-q_FBMF.js","assets/HelpPage-CvK7kHVT.css","assets/TasksPage-Cj7_M9HF.js","assets/KpiStrip-L-nGhyMV.js","assets/EmptyState-Y8WsbUda.js","assets/EmptyState-BDf3GANM.css","assets/TasksPage-mM7xLKrh.css","assets/ToolsPage-Cx0qoR6m.js","assets/ToolsPage-Cq2EEmmt.css","assets/PluginsPage-DoPWPO3F.js","assets/PluginsPage-bzEE9GwG.css","assets/ReportsPage-8MB5H1Hc.js","assets/ReportsPage-xtEKxfPT.css","assets/VerifyPage-BQU-rOEN.js","assets/VerifyPage--5B_1U6d.css","assets/SessionsPage-t6LVt-1M.js","assets/SessionFindings-BB-akO9t.css","assets/SessionDetailPage-1TboVloD.js","assets/LoadingState-D9XkNPEz.js","assets/LoadingState-CRmz-Pzq.css","assets/SessionDetailPage-C26J1d9a.css","assets/LootPage-BLX8MQ_q.js","assets/LootPage-Ca6QaJwO.css","assets/WorkbenchPage-BrVaF5gj.js","assets/WorkbenchPage-B1nOEo-c.js","assets/WorkbenchPage-Ci9oXkH1.css","assets/PayloadWorkbenchPage-CA5GTKVr.js","assets/PayloadWorkbenchPage-BYxEjfeY.css"])))=>i.map(i=>d[i]); +import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{$t as t,At as n,B as r,Bt as i,C as a,D as o,Dt as s,E as c,Et as l,F as u,G as d,Ht as f,I as p,J as m,Jt as h,K as g,Kt as _,Lt as v,M as y,Mt as b,N as x,O as S,Rt as C,T as w,Ut as T,V as E,Vt as D,Wt as O,Xt as k,Z as A,a as j,at as M,ct as N,d as P,et as F,f as I,g as ee,gt as L,ht as R,it as z,k as te,l as ne,m as re,n as ie,nn as ae,o as oe,pt as se,qt as ce,r as le,rt as ue,t as de,tn as fe,tt as pe,v as me,vt as he,w as ge,wt as _e,x as ve,xt as ye,yt as be}from"./vendor-lucide-DUPkM7me.js";import{n as xe,t as Se}from"./vendor-react-CXyOqTrO.js";import{r as Ce}from"./vendor-markdown-BanIOC5U.js";import{t as B}from"./ActionButton-B1Vpk6pw.js";import{n as we,r as Te,t as Ee}from"./Sheet-BAT5hjNH.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var V=e(ae(),1),De=Se();function H(){return new URLSearchParams(window.location.search).get(`demo`)===`1`?(sessionStorage.setItem(`nyxstrike_demo`,`1`),!0):sessionStorage.getItem(`nyxstrike_demo`)===`1`}function Oe(){sessionStorage.removeItem(`nyxstrike_demo`)}var U=sessionStorage.getItem(`nyxstrike_token`);function ke(e={}){let t=new Headers(e);return t.has(`Content-Type`)||t.set(`Content-Type`,`application/json`),U&&t.set(`Authorization`,`Bearer ${U}`),t}async function W(e,t={}){let n=(()=>{let e=ke(t.headers).get(`X-Request-Timeout-Seconds`),n=e?Number(e):NaN;return Number.isFinite(n)&&n>0?n*1e3:36e5})(),r=new AbortController,i=window.setTimeout(()=>r.abort(),n),a;try{a=await fetch(e,{...t,headers:ke(t.headers),signal:r.signal})}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`HTTP request timed out after ${Math.round(n/1e3)}s`):e}finally{window.clearTimeout(i)}if(a.status===401)throw je(),Error(`UNAUTHORIZED`);if(!a.ok){let e=await a.text();throw Error(`HTTP ${a.status}: ${e}`)}return a.json()}function Ae(e){U=e,sessionStorage.setItem(`nyxstrike_token`,e)}function je(){U=null,sessionStorage.removeItem(`nyxstrike_token`)}function Me(){return!!U}function G(e){return W(e)}function K(e,t){return W(e,{method:`POST`,body:t?JSON.stringify(t):void 0})}function Ne(e,t,n){let r=new Headers;return r.set(`X-Request-Timeout-Seconds`,String(n)),W(e,{method:`POST`,headers:r,body:JSON.stringify(t)})}function q(e,t){return W(e,{method:`PATCH`,body:JSON.stringify(t)})}function J(e){return W(e,{method:`DELETE`})}function Pe(e,t){return W(e,{method:`PUT`,body:JSON.stringify(t)})}function Fe(e,t){let n=new AbortController,r=window.setTimeout(()=>n.abort(),36e5),i=new Headers;return U&&i.set(`Authorization`,`Bearer ${U}`),fetch(e,{method:`POST`,headers:i,body:t,signal:n.signal}).then(e=>{if(window.clearTimeout(r),e.status===401)throw je(),Error(`UNAUTHORIZED`);return e.status===409||e.ok?e.json():e.text().then(t=>{throw Error(`HTTP ${e.status}: ${t}`)})}).catch(e=>{throw window.clearTimeout(r),e})}function Y(e,t){if(!t||Object.keys(t).length===0)return new EventSource(e);let n=new URLSearchParams;return Object.entries(t).forEach(([e,t])=>n.set(e,String(t))),new EventSource(`${e}?${n.toString()}`)}var Ie=`modulepreload`,Le=function(e){return`/`+e},Re={},X=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Le(t,n),t=s(t),t in Re)return;Re[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ie,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Z={dashboard:()=>G(`/web-dashboard`),dashboardStream:()=>Y(`/web-dashboard/stream`),resourcesStream:()=>Y(`/api/system/resources/stream`),tools:()=>G(`/api/tools`),getToolCategories:()=>G(`/api/tools/categories`),refreshToolAvailability:()=>K(`/api/tools/availability/refresh`),pluginList:()=>G(`/api/plugins/list`),pluginsByCategory:()=>G(`/api/plugins/by-category`),pluginsManifest:()=>G(`/api/plugins/manifest`),pluginToggle:(e,t)=>q(`/api/plugins/${e}`,{enabled:t}),serverRestart:()=>K(`/api/server/restart`,{}),getSettings:()=>G(`/api/settings`),patchSettings:(e,t)=>q(`/api/settings`,{runtime:e,...t?{chat:t}:{}}),patchWordlists:e=>q(`/api/settings/wordlists`,{wordlists:e}),testBinaryPathOverride:(e,t)=>K(`/api/settings/binary-path-overrides/test`,{tool:e,path:t}),logStream:(e=100)=>Y(`/api/logs/stream`,{lines:e}),runHistory:e=>G(`/api/runs/history${e?`?limit=${e}`:``}`),runHistorySummary:e=>G(`/api/runs/history/summary${e?`?limit=${e}`:``}`),clearRunHistory:()=>K(`/api/runs/clear`),lookupRun:e=>G(`/api/runs/lookup?hash=${encodeURIComponent(e)}`),runTool:(e,t)=>Ne(e,t,86400),executeToolAsync:(e,t)=>K(`/api/intelligence/execute-tool-async`,{tool:e,params:t}),getTaskResult:e=>G(`/api/process/get-task-result/${e}`),processDashboard:()=>G(`/api/processes/dashboard`),processList:()=>G(`/api/processes/list`),processDashboardStream:()=>Y(`/api/processes/dashboard/stream`),processPoolStats:()=>G(`/api/process/pool-stats`),processPoolStatsStream:()=>Y(`/api/process/pool-stats/stream`),processesStream:()=>Y(`/api/processes/stream`),terminateProcess:e=>K(`/api/processes/terminate/${e}`),pauseProcess:e=>K(`/api/processes/pause/${e}`),resumeProcess:e=>K(`/api/processes/resume/${e}`),cancelAiTask:e=>K(`/api/processes/cancel-ai-task/${e}`),cacheStats:()=>G(`/api/cache/stats`),clearCache:()=>K(`/api/cache/clear`),sessions:()=>G(`/api/sessions`),sessionsStream:()=>Y(`/api/sessions/stream`),session:e=>G(`/api/sessions/${e}`),createSession:e=>K(`/api/sessions`,e),createSessionFromTemplate:e=>K(`/api/sessions/from-template`,e),updateSession:(e,t)=>q(`/api/sessions/${e}`,t),deleteSession:e=>J(`/api/sessions/${e}`),handoverSession:(e,t=``)=>K(`/api/sessions/${e}/handover`,{note:t}),sessionTemplates:()=>G(`/api/sessions/templates`),sessionTemplatesCompat:()=>G(`/api/session-templates`),createSessionTemplate:e=>K(`/api/sessions/templates`,e),createSessionTemplateCompat:e=>K(`/api/session-templates`,e),updateSessionTemplate:(e,t)=>q(`/api/sessions/templates/${e}`,t),deleteSessionTemplate:e=>J(`/api/sessions/templates/${e}`),exportTopology:(e,t,n,r,i)=>K(`/api/topology/export`,{tool:e,params:t,result:n,session_id:r,target:i}),sessionNotes:e=>G(`/api/sessions/${e}/notes`),sessionNote:(e,t,n=``)=>G(`/api/sessions/${e}/notes/${t}${n?`?folder=${encodeURIComponent(n)}`:``}`),createSessionNote:(e,t,n,r=``)=>K(`/api/sessions/${e}/notes`,{filename:t,content:n,folder:r}),updateSessionNote:(e,t,n,r=``)=>Pe(`/api/sessions/${e}/notes/${t}${r?`?folder=${encodeURIComponent(r)}`:``}`,{content:n}),deleteSessionNote:(e,t,n=``)=>J(`/api/sessions/${e}/notes/${t}${n?`?folder=${encodeURIComponent(n)}`:``}`),uploadSessionNote:(e,t,n,r=!1,i=``)=>{let a=new FormData;a.append(`file`,n);let o=new URLSearchParams;return r&&o.set(`overwrite`,`1`),i&&o.set(`folder`,i),Fe(`/api/sessions/${e}/notes/${t}/upload${o.toString()?`?${o.toString()}`:``}`,a)},sessionNoteFolders:e=>G(`/api/sessions/${e}/notes/folders`),createSessionNoteFolder:(e,t)=>K(`/api/sessions/${e}/notes/folders`,{name:t}),deleteSessionNoteFolder:(e,t)=>J(`/api/sessions/${e}/notes/folders/${encodeURIComponent(t)}`),renameSessionNoteFolder:(e,t,n)=>q(`/api/sessions/${e}/notes/folders/${encodeURIComponent(t)}`,{new_name:n}),searchSessionNotes:(e,t)=>G(`/api/sessions/${e}/notes/search?q=${encodeURIComponent(t)}`),createAttackChain:(e,t=`comprehensive`)=>K(`/api/intelligence/create-attack-chain`,{target:e,objective:t}),previewAttackChain:(e,t=`comprehensive`)=>K(`/api/intelligence/preview-attack-chain`,{target:e,objective:t}),aiReconSession:e=>K(`/api/intelligence/ai-recon-session`,{target:e}),aiProfilingSession:e=>K(`/api/intelligence/ai-profiling-session`,{target:e}),aiVulnSession:e=>K(`/api/intelligence/ai-vuln-session`,{target:e}),aiOsintSession:e=>K(`/api/intelligence/ai-osint-session`,{target:e}),classifyTask:e=>K(`/api/intelligence/classify-task`,{description:e}),llmSessions:(e=50)=>G(`/api/intelligence/llm-agent-sessions?limit=${e}`),llmSessionDetail:e=>G(`/api/intelligence/llm-agent-scan/${e}`),analyzeSession:e=>K(`/api/intelligence/analyze-session`,{session_id:e,save_to_notes:!0}),followUpSession:e=>K(`/api/intelligence/follow-up-session`,{session_id:e,save_to_notes:!0}),sessionFindings:e=>G(`/api/sessions/${e}/findings`),addSessionFinding:(e,t)=>K(`/api/sessions/${e}/findings`,t),updateSessionFinding:(e,t,n)=>q(`/api/sessions/${e}/findings/${t}`,n),deleteSessionFinding:(e,t)=>J(`/api/sessions/${e}/findings/${t}`),generateSessionReport:(e,t={})=>K(`/api/sessions/${e}/report`,t),generateSessionAiReport:(e,t={})=>K(`/api/sessions/${e}/report/ai`,t),verifySessionIntegrity:e=>G(`/api/sessions/${e}/verify-integrity`),exportSessionNotesUrl:e=>`/api/sessions/${e}/notes/export`,exportSessionHtmlReportUrl:e=>`/api/sessions/${e}/report/html`,credentials:e=>H()?X(()=>import(`./demo-BVWMV9-U.js`).then(e=>e.DEMO_CREDENTIALS),[]):G(`/api/credentials${e?`?`+new URLSearchParams(Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]))).toString():``}`),credential:e=>G(`/api/credentials/${e}`),createCredential:e=>K(`/api/credentials`,e),updateCredential:(e,t)=>q(`/api/credentials/${e}`,t),deleteCredential:e=>J(`/api/credentials/${e}`),exportCredentialsUrl:()=>`/api/credentials/export`,loot:e=>H()?X(()=>import(`./demo-BVWMV9-U.js`).then(e=>e.DEMO_LOOT),[]):G(`/api/loot${e?`?`+new URLSearchParams(Object.fromEntries(Object.entries(e).filter(([,e])=>e!=null).map(([e,t])=>[e,String(t)]))).toString():``}`),lootItem:e=>G(`/api/loot/${e}`),createLoot:e=>K(`/api/loot`,e),updateLoot:(e,t)=>q(`/api/loot/${e}`,t),deleteLoot:e=>J(`/api/loot/${e}`),exportLootUrl:()=>`/api/loot/export`,chat:{listSessions:()=>G(`/api/chat/sessions`),createSession:()=>K(`/api/chat/sessions`),deleteSession:e=>J(`/api/chat/sessions/${e}`),renameSession:(e,t)=>q(`/api/chat/sessions/${e}`,{name:t}),getMessages:e=>G(`/api/chat/sessions/${e}/messages`)},workbenchOperations:()=>G(`/api/workbench/operations`),workbenchRun:(e,t)=>K(`/api/workbench/run/${e}`,t),workbenchRunRecipe:(e,t,n)=>K(`/api/workbench/run-recipe`,{input:e,steps:t,continue_on_error:n?.continueOnError,stop_after_step_index:n?.stopAfterStepIndex,step_input_overrides:n?.stepInputOverrides}),workbenchDecloak:(e,t)=>K(`/api/workbench/decloak`,{input:e,max_depth:t}),workbenchRecipes:()=>G(`/api/workbench/recipes`),createWorkbenchRecipe:(e,t)=>K(`/api/workbench/recipes`,{name:e,steps:t}),updateWorkbenchRecipe:(e,t)=>q(`/api/workbench/recipes/${e}`,t),deleteWorkbenchRecipe:e=>J(`/api/workbench/recipes/${e}`),payloadWorkbenchOperations:()=>G(`/api/payload-workbench/operations`),payloadWorkbenchRun:(e,t)=>K(`/api/payload-workbench/run/${e}`,t),payloadWorkbenchRunRecipe:(e,t,n)=>K(`/api/payload-workbench/run-recipe`,{input:e,steps:t,continue_on_error:n?.continueOnError,stop_after_step_index:n?.stopAfterStepIndex,step_input_overrides:n?.stepInputOverrides}),payloadWorkbenchRecipes:()=>G(`/api/payload-workbench/recipes`),createPayloadWorkbenchRecipe:(e,t)=>K(`/api/payload-workbench/recipes`,{name:e,steps:t}),updatePayloadWorkbenchRecipe:(e,t)=>q(`/api/payload-workbench/recipes/${e}`,t),deletePayloadWorkbenchRecipe:e=>J(`/api/payload-workbench/recipes/${e}`),testPayloadAgainstTarget:(e,t,n)=>K(`/api/ai/test_payload`,{payload:e,target_url:t,method:n})},Q=Ce();function ze({onUnlocked:e}){let[t,n]=(0,V.useState)(``),[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(!1);async function l(){c(!0),o(``),Ae(t.trim());try{await Z.dashboard(),e()}catch(e){je(),o(e instanceof Error&&e.message===`UNAUTHORIZED`?`Invalid token`:`Could not reach server`)}finally{c(!1)}}return(0,Q.jsx)(`div`,{className:`token-gate`,children:(0,Q.jsxs)(`div`,{className:`token-card`,children:[(0,Q.jsx)(m,{size:32,color:`var(--green)`}),(0,Q.jsx)(`h2`,{children:`Authentication Required`}),(0,Q.jsxs)(`p`,{children:[`Enter your `,(0,Q.jsx)(`code`,{children:`NYXSTRIKE_API_TOKEN`}),` to continue`]}),(0,Q.jsxs)(`div`,{className:`token-input-row`,children:[(0,Q.jsx)(`input`,{type:r?`text`:`password`,name:`api-token`,placeholder:`Bearer token…`,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>e.key===`Enter`&&l(),className:`mono`,autoFocus:!0}),(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:()=>i(e=>!e),title:`Toggle visibility`,children:r?(0,Q.jsx)(be,{size:16}):(0,Q.jsx)(he,{size:16})})]}),a&&(0,Q.jsx)(`p`,{className:`token-err`,children:a}),(0,Q.jsx)(`button`,{className:`btn-primary`,onClick:l,disabled:s||!t.trim(),children:s?`Checking…`:`Connect`})]})})}var Be=(0,V.createContext)(null);function Ve({children:e}){let[t,n]=(0,V.useState)([]),r=(0,V.useMemo)(()=>({pushToast(e,t){let r=Date.now()+Math.floor(Math.random()*1e3);n(n=>[...n,{id:r,kind:e,text:t}]),setTimeout(()=>{n(e=>e.filter(e=>e.id!==r))},3200)}}),[]);return(0,Q.jsxs)(Be.Provider,{value:r,children:[e,(0,Q.jsx)(`div`,{className:`toast-stack`,"aria-live":`polite`,"aria-atomic":`true`,children:t.map(e=>(0,Q.jsx)(`div`,{className:`toast toast-${e.kind}`,children:e.text},e.id))})]})}function He(){let e=(0,V.useContext)(Be);if(!e)throw Error(`useToast must be used within ToastProvider`);return e}function Ue(e,t){let n={...t};for(let r of e)r.parent_tool&&t[r.parent_tool]&&!(r.name in n)&&(n[r.name]=!0);return n}var We=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADv0lEQVR4ASxTa0zbVRT/3X//bWnXB/JamYwW2jra8tiwo5tkgIjKFgZSBgyXIVuIfpHETJct0bBoTJbsizFG/WAWE3GGqB/MFh3RrChjOBbCQ52MwGB00EI72q7v990t28k9J+fmnt+5v3POvRwyQgC2gG1LRCaTudk2NFp+f2rp5ZV/HzZMXr+tKDPsr1epdPmZkKexQMbnMhtCAcoco8as0hmq+k93n/5Zbyqb21j33hgf+ds2M7W41tbU8pU8T/G2tqSygIUzMAMwhzEg2+CBdz54t7W9uY+X8JcKdz8vjUQj5OrIb/jvwQJ25hfI5FKlgYrIYI/V2lFT3dgIBmZZwNGMR0Hi0cR7Hpf3YrWmQjr49cfoPH8KP41dJXeWZsinP1zC0OgVmFR6YTyU/LL6xcrhp5wpGAOWh7E5VFfrn19YRNfRbvhXPWTNsQKfzwXH5gNs+jeI+76LvGk9jqnpacgksiBYBqZgPSDki88un6MJUqErLaPL9nXwUikSW5RkKQpomPKIOaKQ5yqwsrwOg96E2gMvLQ4cHhCze1kJhNL5/+c107Ozgpq9ZtyaHkfA4wInFKH1SCdOHHuLiqUK+viRG7apUewuLsUfo39aVJaS/u0pZGiYDabzhCfO73/5jvxuu0Zi8TiSsRDuLUyRVfsS8QU2WI/imJiwkeFfrxCXy6V8Lic7QilhJdAL3I/XrzXMzczJF1eXkaPayWqUI52M4e70HXpzdAQkmYJCqQThedjXVuF8uA77qt1iNB0TcTX6EVledm6l2+OSUwbyulyIhEMQiyUIpcPwRX2QyxUgKZ6mWaJEMopNrxPOdYdCLQtmcZriqvxoPOIRCDiIhEJEIxHsYIA0e12GCjP27TsIf+AxghEvIRwHoUCIol1FtKRUI5DlaAq5Wwvj3ngsfnTL40YslkSWRIJgKIBMsEQsJUJeRMXKHUjTNFKsN4l4Aj6/jzicDuld+18rXCFfIDpgqdlbV1tPc3OykYjFwHMEQtag+cnbmL05RrLYKFOpJDjG8oVSHRrq6/1aTYkvW1CUzZUV6yVao1rb13viYt/J3kcVxkqIeRHC4SBCAT/TAHxbW5AIxahiZx1W6z8Wi/nwuQvvn9yTZ5RxQ2PfrHR1dQabWho/1KrVxuMd1p72tvZg3cFDtKhQjVxlDsr3lKetrdbN9taWfh1V7+/p7ZwA+0Lf2j5fZmTxTAi6TnW7z3x0Zliv0uxqfq3plSOvvn6j4432SWtbq7WsSqc9O3j2cvcnXfFtAGWWUDwBAAD//7RWUBoAAAAGSURBVAMAztODV0qedu0AAAAASUVORK5CYII=`,Ge=`nyxstrike_theme`,Ke=[{id:`dark`,label:`Dark Ops`,hint:`Tactical dark · Green accent`},{id:`unicorn`,label:`Unicorn Dream`,hint:`Pastel neon fantasy glow`},{id:`forest`,label:`Forest Canopy`,hint:`Moss, pine, bark, and misty sky`},{id:`solarized`,label:`Solarized Terminal`,hint:`Muted tan and navy readability`},{id:`ocean-glass`,label:`Ocean Glass`,hint:`Deep sea blues with clean contrast`},{id:`crimson-night`,label:`Crimson Night`,hint:`Dark steel with alert red accents`},{id:`retro-crt`,label:`Retro CRT`,hint:`Old-school phosphor monitor vibe`},{id:`nord`,label:`Nord Calm`,hint:`Cool balanced blue-gray palette`},{id:`dracula`,label:`Dracula`,hint:`Slate purple · Lavender · Classic vampire`},{id:`gruvbox`,label:`Gruvbox`,hint:`Warm olive · Burnt orange · Retro terminal`},{id:`tokyo`,label:`Tokyo`,hint:`Deep navy · Electric blue · Pro editor`},{id:`catppuccin`,label:`Catppuccin`,hint:`Warm dark · Pastel mauve · Soft & calm`},{id:`synthwave`,label:`Synthwave`,hint:`Outrun purple · Hot magenta · Neon cyan`},{id:`rose`,label:`Rosé`,hint:`Muted charcoal · Dusty rose · Elegant calm`},{id:`folio`,label:`Folio`,hint:`Warm cream · Forest emerald · Paper & ink`,light:!0},{id:`frost`,label:`Frost`,hint:`Icy white · Glacier blue · Crisp & clinical`,light:!0}];function qe(e){return Ke.some(t=>t.id===e)}function Je({isOpen:e,title:t,description:n,children:r,primaryLabel:i=`Continue`,secondaryLabel:a=`Cancel`,primaryVariant:o=`default`,isPrimaryBusy:s=!1,disableClose:c=!1,className:l=``,onPrimary:u,onSecondary:d,onClose:f}){return(0,Q.jsxs)(Ee,{isOpen:e,onClose:f,variant:`centered`,disableClose:c||s,className:`information-modal${l?` ${l}`:``}`,ariaLabel:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-icon modal-icon--accent`,"aria-hidden":`true`,children:(0,Q.jsx)(z,{size:14})}),(0,Q.jsx)(`span`,{className:`modal-name`,children:t})]}),children:[n&&(0,Q.jsx)(`p`,{className:`modal-desc`,children:n}),r,(u||d)&&(0,Q.jsxs)(`div`,{className:`information-modal-buttons`,children:[d&&(0,Q.jsx)(B,{variant:`default`,onClick:d,disabled:s,children:a}),u&&(0,Q.jsx)(B,{variant:o,onClick:()=>{u()},disabled:s,children:s?`Working…`:i})]})]})}function Ye({isOpen:e,themeId:t,setThemeId:n,reduceTextureEffects:r,setReduceTextureEffects:i,onClose:a}){let[o,s]=(0,V.useState)(t),[c,l]=(0,V.useState)(t);(0,V.useEffect)(()=>{if(!e){s(t),l(t);return}document.documentElement.setAttribute(`data-theme`,o)},[e,o,t]);function u(){document.documentElement.setAttribute(`data-theme`,t),s(t),l(t),a()}function d(){n(c),a()}return(0,Q.jsxs)(Je,{isOpen:e,title:`Choose Theme`,description:`Preview themes live, then apply your selection.`,className:`theme-picker-modal`,primaryLabel:`Apply Theme`,primaryVariant:`success`,secondaryLabel:`Cancel`,onPrimary:d,onSecondary:u,onClose:u,children:[(0,Q.jsxs)(`label`,{className:`theme-picker-toggle-row`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:r,onChange:e=>i(e.target.checked)}),(0,Q.jsx)(`span`,{className:`theme-picker-toggle-text`,children:`Reduce background texture effects`})]}),(0,Q.jsx)(`div`,{className:`theme-picker-grid`,children:Ke.map(e=>(0,Q.jsxs)(`button`,{className:`theme-picker-card${c===e.id?` active`:``}`,onClick:()=>{l(e.id),s(e.id)},type:`button`,children:[(0,Q.jsxs)(`span`,{className:`theme-picker-card-label`,children:[e.label,e.light&&(0,Q.jsx)(`span`,{className:`theme-picker-card-badge`,children:`Light`})]}),(0,Q.jsx)(`span`,{className:`theme-picker-card-hint`,children:e.hint})]},e.id))})]})}function Xe({isOpen:e,latestVersion:t,onClose:n}){let[r,i]=(0,V.useState)(!1);function a(){navigator.clipboard.writeText(`git pull`).then(()=>{i(!0),window.setTimeout(()=>i(!1),2e3)}).catch(()=>{})}return(0,Q.jsxs)(Je,{isOpen:e,title:`Update Available`,description:t?`A newer release (${t}) is available.`:`A newer release is available.`,primaryLabel:`Open GitHub`,secondaryLabel:`Close`,onPrimary:()=>{window.open(`https://github.com/CommonHuman-Lab/nyxstrike`,`_blank`,`noopener,noreferrer`)},onSecondary:n,onClose:n,children:[(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Update command`}),(0,Q.jsxs)(`div`,{className:`modal-code-wrap`,children:[(0,Q.jsx)(`div`,{className:`modal-code mono`,children:`git pull`}),(0,Q.jsxs)(`button`,{className:`modal-copy-btn`,onClick:a,title:`Copy update command`,children:[r?(0,Q.jsx)(O,{size:13}):(0,Q.jsx)(s,{size:13}),r?`Copied!`:`Copy`]})]})]}),(0,Q.jsxs)(`p`,{className:`modal-desc`,children:[`Run `,(0,Q.jsx)(`span`,{className:`mono`,children:`git pull`}),` in your project folder, then restart NyxStrike.`]})]})}var Ze={status:`idle`},Qe=new Set;function $e(){Qe.forEach(e=>e(Ze))}function et(){return Ze}function tt(e){Ze=e,$e()}function nt(e){return Qe.add(e),()=>Qe.delete(e)}function rt(e){tt({status:`generating`,label:e})}function it(e,t){tt({status:`done`,label:e,savedPath:t})}function at(e,t){tt({status:`error`,label:e,message:t})}function ot(){tt({status:`idle`})}var st=null;function ct(e){return st=e,()=>{st===e&&(st=null)}}function lt(e){st?.(e)}function ut(){let[e,t]=(0,V.useState)(et);return(0,V.useEffect)(()=>(t(et()),nt(t)),[]),e}function dt(){let e=ut();return(0,V.useEffect)(()=>{if(e.status!==`done`&&e.status!==`error`)return;let t=setTimeout(ot,8e3);return()=>clearTimeout(t)},[e.status]),e.status===`idle`?null:(0,Q.jsxs)(`div`,{className:`report-bubble report-bubble--${e.status}`,children:[(0,Q.jsxs)(`div`,{className:`report-bubble-icon`,children:[e.status===`generating`&&(0,Q.jsx)(y,{size:14,className:`spin`}),e.status===`done`&&(0,Q.jsx)(v,{size:14}),e.status===`error`&&(0,Q.jsx)(n,{size:14})]}),(0,Q.jsxs)(`div`,{className:`report-bubble-body${e.status===`done`&&e.savedPath?` report-bubble-body--clickable`:``}`,onClick:e.status===`done`&&e.savedPath?()=>{lt(e.savedPath),ot()}:void 0,title:e.status===`done`&&e.savedPath?`Open in Notes`:void 0,children:[(0,Q.jsxs)(`div`,{className:`report-bubble-title`,children:[(0,Q.jsx)(L,{size:11}),e.status===`generating`&&`Generating report…`,e.status===`done`&&`Report saved — click to open`,e.status===`error`&&`Report failed`]}),(0,Q.jsx)(`div`,{className:`report-bubble-label`,children:e.label}),e.status===`done`&&(0,Q.jsx)(`div`,{className:`report-bubble-path mono`,children:e.savedPath}),e.status===`error`&&(0,Q.jsx)(`div`,{className:`report-bubble-error`,children:e.message})]}),(e.status===`done`||e.status===`error`)&&(0,Q.jsx)(`button`,{className:`report-bubble-dismiss`,onClick:ot,title:`Dismiss`,children:(0,Q.jsx)(ie,{size:12})})]})}function ft({lastRefresh:e,demo:t,isStreaming:n,streamingError:r,health:i,error:a,loading:o,fetchAll:s,themeId:c,setThemeId:l,reduceTextureEffects:u,setReduceTextureEffects:d,onOpenCommandPalette:f,onSignOut:p,onToggleMobileSidebar:h}){let[_,v]=(0,V.useState)(!1),[b,x]=(0,V.useState)(!1),[S,C]=(0,V.useState)(!1),[w,T]=(0,V.useState)(!1),E=(0,V.useRef)(null),D=(0,V.useRef)(null),[O,k]=(0,V.useState)(t);(0,V.useEffect)(()=>{if(t){k(!0);return}if(!e)return;let n=e.toISOString();if(!E.current){E.current=n;return}E.current!==n&&(k(!0),E.current=n)},[t,e]),(0,V.useEffect)(()=>{if(!e||i?.status!==`healthy`)return;let t=e.toISOString();if(!D.current){D.current=t;return}if(D.current===t)return;D.current=t,T(!0);let n=window.setTimeout(()=>T(!1),700);return()=>window.clearTimeout(n)},[e,i?.status]),(0,V.useEffect)(()=>{if(t||n){C(!1);return}let e=window.setTimeout(()=>{C(!0)},3500);return()=>{window.clearTimeout(e)}},[t,n]);let A=i?.status?i.status.charAt(0).toUpperCase()+i.status.slice(1):o?`Connecting…`:a??`Unknown`,j=n?`Live`:r?`Polling`:`N/A`,M=O&&e?` | Last refresh: ${e.toLocaleTimeString(`en-GB`)}`:``,N=t?`System: ${A}${M}`:`System: ${A} | Updates: ${j}${M}${r?` (${r})`:``}`;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Xe,{isOpen:b,latestVersion:i?.update?.latest_version,onClose:()=>x(!1)}),(0,Q.jsx)(Ye,{isOpen:_,themeId:c,setThemeId:l,reduceTextureEffects:u,setReduceTextureEffects:d,onClose:()=>v(!1)}),(0,Q.jsxs)(`header`,{className:`topbar`,children:[(0,Q.jsxs)(`div`,{className:`topbar-brand`,children:[(0,Q.jsx)(`button`,{type:`button`,className:`icon-btn topbar-hamburger-btn`,onClick:h,"aria-label":`Toggle navigation menu`,title:`Toggle navigation menu`,children:(0,Q.jsx)(g,{size:16})}),(0,Q.jsx)(`img`,{src:We,width:18,height:18,alt:``}),(0,Q.jsxs)(`span`,{className:`brand-text`,title:`Version: ${i?.version??`unknown`}`,"aria-label":`NyxStrike version ${i?.version??`unknown`}`,children:[(0,Q.jsx)(`span`,{className:`brand-text-1`,children:`Nyx`}),(0,Q.jsx)(`span`,{className:`brand-text-2`,children:`Strike`})]}),i?.update?.update_available&&(0,Q.jsx)(`button`,{type:`button`,className:`brand-update-chip mono`,onClick:()=>x(!0),title:`New version available: ${i.update.latest_version}`,children:`Update available`})]}),(0,Q.jsxs)(`div`,{className:`topbar-right`,children:[(0,Q.jsx)(`button`,{className:`icon-btn`,title:`Command palette (Ctrl/Cmd+K)`,onClick:f,children:(0,Q.jsx)(`span`,{className:`palette-icon-k mono`,children:`K`})}),(0,Q.jsx)(`div`,{className:`status-dot ${i?.status===`healthy`?S?`polling`:`online`:a?`error`:`loading`}${w?` status-dot--pulse`:``}`,title:N,"aria-label":N}),S&&(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:s,title:`Refresh now`,children:(0,Q.jsx)(y,{size:14,className:o?`spin`:``})}),Me()&&(0,Q.jsx)(`button`,{className:`icon-btn`,onClick:()=>{je(),p()},title:`Sign out`,children:(0,Q.jsx)(m,{size:14})})]})]}),(0,Q.jsx)(dt,{})]})}function pt(e,t){return e===`sessions`?t===`sessions`||t===`session-detail`:t===e}var mt=`(max-width: 768px)`;function ht(){let[e,t]=(0,V.useState)(()=>window.matchMedia(mt).matches);return(0,V.useEffect)(()=>{let e=window.matchMedia(mt);function n(){t(e.matches)}return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function gt({page:e,setPage:t,isPageEnabled:n,navEntries:i,collapsed:a,onToggleCollapsed:o,mobileOpen:s,onCloseMobile:c}){let l=i.filter(e=>n(e.id)),u=l.filter(e=>e.id!==`settings`),d=l.find(e=>e.id===`settings`),f=ht(),p=a&&!f;function m(n){let r=n.icon,i=pt(n.id,e);return(0,Q.jsxs)(`button`,{className:`sidebar-nav-item${i?` active`:``}${p?` collapsed`:``}`,onClick:()=>{t(n.id),c()},title:n.label,children:[(0,Q.jsx)(r,{size:14,className:`sidebar-nav-icon`}),!p&&(0,Q.jsx)(`span`,{className:`sidebar-nav-label`,children:n.label})]},n.id)}return(0,Q.jsxs)(`aside`,{className:`sidebar${p?` sidebar--collapsed`:``}${s?` sidebar--mobile-open`:``}`,children:[(0,Q.jsx)(`div`,{className:`sidebar-collapse-row`,children:(0,Q.jsx)(`button`,{className:`sidebar-collapse-btn`,onClick:o,title:p?`Expand sidebar`:`Collapse sidebar`,children:p?(0,Q.jsx)(r,{size:14}):(0,Q.jsx)(E,{size:14})})}),(0,Q.jsx)(`nav`,{className:`sidebar-nav`,children:u.map(e=>m(e))}),d&&(0,Q.jsx)(`nav`,{className:`sidebar-nav sidebar-nav--bottom`,children:m(d)})]})}function _t(){return(0,Q.jsx)(`footer`,{className:`app-footer`,children:(0,Q.jsx)(`a`,{className:`app-footer-link`,href:`https://github.com/CommonHuman-Lab`,target:`_blank`,rel:`noreferrer`,children:`Made by CommonHuman`})})}function vt(e){let[t,n]=(0,V.useState)(null),[r,i]=(0,V.useState)(null);function a(r){return{draggable:!0,onDragStart:()=>n(r),onDragEnd:()=>{n(null),i(null)},onDragOver:e=>{e.preventDefault(),i(r)},onDrop:a=>{a.preventDefault(),t&&t!==r&&e(t,r),n(null),i(null)}}}function o(e,n=``){return[n,`drag-reorder-item`,t===e?`drag-reorder-item--dragging`:``,r===e&&t!==e?`drag-reorder-item--drag-over`:``].filter(Boolean).join(` `)}return{dragHandlers:a,dragClassName:o,draggingId:t}}function yt(e,t){let[n,r]=(0,V.useState)(()=>{try{let n=localStorage.getItem(e);return n==null?t:JSON.parse(n)}catch{return t}});return(0,V.useEffect)(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch{}},[e,n]),[n,r]}function bt({icon:e,label:t,value:n,sub:r,accent:i}){return(0,Q.jsxs)(`div`,{className:`stat-card`,children:[(0,Q.jsx)(`div`,{className:`stat-icon`,style:{color:i||`var(--green)`},children:e}),(0,Q.jsxs)(`div`,{className:`stat-body`,children:[(0,Q.jsx)(`div`,{className:`stat-label`,children:t}),(0,Q.jsx)(`div`,{className:`stat-value`,style:{color:i||`var(--text-h)`},children:n}),r&&(0,Q.jsx)(`div`,{className:`stat-sub`,children:r})]})]})}function xt(e,t=1,n=`—`){return typeof e==`number`&&isFinite(e)?e.toFixed(t):n}function St(e,t=1){return xt(e,t,`—`)}function Ct(e){return e?new Date(e*1e3).toLocaleString(`en-GB`):`—`}function wt(e){if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/t**r).toFixed(2))} ${n[r]}`}function Tt(e,t){return e===t?`var(--success)`:e===0?`var(--danger)`:`var(--warning)`}function Et(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return t>0?`${t}h ${n}m`:n>0?`${n}m ${r}s`:`${r}s`}function Dt(e,t){let n=e.result,r=e.ts.toISOString().replace(/[:.]/g,`-`),i=`${e.tool}_${r}.${t}`,a;if(t===`json`)a=JSON.stringify({tool:e.tool,timestamp:e.ts.toISOString(),params:e.params,success:n.success,return_code:n.return_code,execution_time:n.execution_time,timed_out:n.timed_out,partial_results:n.partial_results,stdout:n.stdout,stderr:n.stderr},null,2);else{let t=Object.entries(e.params).map(([e,t])=>` ${e}=${t}`).join(` +`);a=[`Tool: ${e.tool}`,`Timestamp: ${e.ts.toISOString()}`,`Success: ${n.success}`,`Exit code: ${n.return_code}`,`Time: ${xt(n.execution_time,2)}s`,n.timed_out?`Timed out: yes`:``,n.partial_results?`Partial: yes`:``,t?`\nParams:\n${t}`:``,`\n--- stdout ---\n${n.stdout||`(empty)`}`,n.stderr?`\n--- stderr ---\n${n.stderr}`:``].filter(Boolean).join(` +`)}let o=new Blob([a],{type:t===`json`?`application/json`:`text/plain`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=i,c.click(),URL.revokeObjectURL(s)}function Ot(e,t,n){let r=n[e]??[];return r.length>0?r:Object.keys(t)}function kt(e,t){let n=e.telemetry?.commands_executed??0,r=t.length,i=Math.max(n,r);if(r>n){let e=t.filter(e=>e.result.success).length;return{value:i,sub:`${e} ok · ${r-e} failed`,accent:Tt(e,r)}}let a=parseFloat(e.telemetry?.success_rate??`0`),o=Math.round(n*a/100);return{value:i,sub:`${o} ok · ${n-o} failed`,accent:Tt(o,n)}}function At(e){return e==null?`not yet checked`:e<60?`just checked`:e<120?`checked a minute ago`:e<3600?`checked ${Math.floor(e/60)} minutes ago`:e<7200?`checked over an hour ago`:`checked ${Math.floor(e/3600)} hours ago`}function jt(e){let t=(0,V.useRef)(null),[n,r]=(0,V.useState)(()=>Et(e));return(0,V.useEffect)(()=>{if(e<=0)return;let n=Date.now()-e*1e3;(t.current===null||Math.abs(n-t.current)>2e3)&&(t.current=n)},[e]),(0,V.useEffect)(()=>{let e=setInterval(()=>{if(t.current===null)return;let e=(Date.now()-t.current)/1e3;r(Et(e))},1e3);return()=>clearInterval(e)},[]),n}function Mt({health:e,tools:t,runHistory:n}){let r=kt(e,n),i=jt(e.uptime);return(0,Q.jsxs)(`div`,{className:`kpi-row`,children:[(0,Q.jsx)(bt,{icon:(0,Q.jsx)(fe,{size:20}),label:`Server Status`,value:e.status.charAt(0).toUpperCase()+e.status.slice(1),sub:`uptime ${i}`,accent:e.status===`healthy`?`var(--success)`:`var(--danger)`}),(0,Q.jsx)(bt,{icon:(0,Q.jsx)(ve,{size:20}),label:`Kali Tools`,value:`${e.total_tools_available} / ${e.total_tools_count}`,sub:e.all_essential_tools_available?`all essential ready`:`some essential missing`,accent:e.all_essential_tools_available?`var(--success)`:`var(--warning)`}),(0,Q.jsx)(bt,{icon:(0,Q.jsx)(le,{size:20}),label:`Server Tools`,value:t.length,sub:`in registry`,accent:`var(--blue)`}),(0,Q.jsx)(bt,{icon:(0,Q.jsx)(de,{size:20}),label:`Commands`,value:r.value,sub:r.sub,accent:r.accent})]})}var Nt={eaphammer:`sudo apt install eaphammer`,nmap:`sudo apt install nmap`,masscan:`sudo apt install masscan`,rustscan:`cargo install rustscan # or: sudo apt install rustscan`,autorecon:`pip3 install autorecon`,gobuster:`sudo apt install gobuster`,ffuf:`sudo apt install ffuf`,feroxbuster:`sudo apt install feroxbuster`,dirb:`sudo apt install dirb`,dirsearch:`pip3 install -r requirements.txt`,nikto:`sudo apt install nikto`,nuclei:`go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest`,sqlmap:`sudo apt install sqlmap`,wpscan:`sudo apt install wpscan # or: gem install wpscan`,hydra:`sudo apt install hydra`,john:`sudo apt install john`,hashcat:`sudo apt install hashcat`,medusa:`sudo apt install medusa`,patator:`sudo apt install patator`,hashid:`pip3 install hashid`,ophcrack:`sudo apt install ophcrack`,amass:`sudo apt install amass`,subfinder:`go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest`,fierce:`pip3 install fierce`,dnsenum:`sudo apt install dnsenum`,theHarvester:`sudo apt install theharvester`,sherlock:`sudo apt install sherlock`,whois:`sudo apt install whois`,httpx:`go install github.com/projectdiscovery/httpx/cmd/httpx@latest`,katana:`go install github.com/projectdiscovery/katana/cmd/katana@latest`,hakrawler:`go install github.com/hakluke/hakrawler@latest`,gau:`go install github.com/lc/gau/v2/cmd/gau@latest`,waybackurls:`go install github.com/tomnomnom/waybackurls@latest`,wafw00f:`pip3 install wafw00f`,dalfox:`go install github.com/hahwul/dalfox/v2@latest`,jaeles:`go install github.com/jaeles-project/jaeles@latest`,arjun:`pip3 install arjun`,paramspider:`pip3 install paramspider`,x8:`cargo install x8`,gdb:`sudo apt install gdb`,radare2:`sudo apt install radare2`,binwalk:`sudo apt install binwalk`,ROPgadget:`pip3 install -r requirements.txt`,checksec:`sudo apt install checksec # or: pip3 install checksec`,objdump:`sudo apt install binutils`,ghidra:`sudo apt install ghidra # or download from ghidra.re`,pwntools:`pip3 install -r requirements.txt`,ropper:`pip3 install ropper`,angr:`pip3 install -r requirements.txt`,pwninit:`cargo install pwninit`,"one-gadget":`pip3 install -r requirements.txt`,"libc-database":`https://github.com/niklasb/libc-database`,vol:`pip3 install -r requirements.txt`,volatility:`pip3 install -r requirements.txt`,steghide:`sudo apt install steghide`,foremost:`sudo apt install foremost`,exiftool:`sudo apt install libimage-exiftool-perl`,strings:`sudo apt install binutils`,xxd:`sudo apt install xxd`,photorec:`sudo apt install testdisk`,testdisk:`sudo apt install testdisk`,scalpel:`sudo apt install scalpel`,zsteg:`gem install zsteg`,outguess:`sudo apt install outguess`,prowler:`pip3 install prowler`,"scout-suite":`pip3 install scoutsuite`,trivy:`sudo apt install trivy`,"kube-hunter":`pip3 install kube-hunter`,"kube-bench":`https://aquasecurity.github.io/kube-bench/latest/installation/`,"docker-bench-security":`https://github.com/docker/docker-bench-security`,checkov:`pip3 install -r requirements.txt`,terrascan:`brew install terrascan # or download from github.com/tenable/terrascan`,clair:`docker pull quay.io/projectquay/clair`,msfconsole:`sudo apt install metasploit-framework`,msfvenom:`sudo apt install metasploit-framework`,searchsploit:`sudo apt install exploitdb`,smbmap:`pip3 install smbmap`,enum4linux:`sudo apt install enum4linux`,"enum4linux-ng":`pip3 install enum4linux-ng`,nbtscan:`sudo apt install nbtscan`,rpcclient:`sudo apt install samba-common-bin`,responder:`sudo apt install responder`,nxc:`pip3 install netexec`,"evil-winrm":`gem install evil-winrm`,"airmon-ng":`sudo apt install aircrack-ng`,"aircrack-ng":`sudo apt install aircrack-ng`,"airodump-ng":`sudo apt install aircrack-ng`,"aireplay-ng":`sudo apt install aircrack-ng`,"airbase-ng":`sudo apt install aircrack-ng`,"airdecap-ng":`sudo apt install aircrack-ng`,kismet:`sudo apt install kismet`,wireshark:`sudo apt install wireshark`,tshark:`sudo apt install tshark`,tcpdump:`sudo apt install tcpdump`,wifite:`sudo apt install wifite`,bettercap:`sudo apt install bettercap`,mdk4:`sudo apt install mdk4`,bbot:`pip3 install -r requirements.txt`,curl:`sudo apt install curl`,httpie:`pip3 install httpie`,anew:`go install -v github.com/tomnomnom/anew@latest`,qsreplace:`go install -v github.com/tomnomnom/qsreplace@latest`,uro:`pip3 install -r requirements.txt`,"graphql-scanner":`npm install -g graphql-voyager`,wfuzz:`pip3 install wfuzz`,dotdotpwn:`sudo apt install dotdotpwn`,xsser:`sudo apt install xsser`,commix:`sudo apt install commix`,tplmap:`git clone https://github.com/epinna/tplmap`,nosqlmap:`git clone https://github.com/codingo/NoSQLMap`,whatweb:`sudo apt install whatweb`,testssl:`sudo apt install testssl.sh`,sslscan:`sudo apt install sslscan`,sslyze:`pip3 install sslyze`,"recon-ng":`sudo apt install recon-ng`,maltego:`Download from maltego.com`,spiderfoot:`sudo apt install spiderfoot`,"social-analyzer":`pip3 install -r requirements.txt`,sleuthkit:`sudo apt install sleuthkit`,autopsy:`sudo apt install autopsy`,bulk_extractor:`sudo apt install bulk-extractor`,"hashcat-utils":`sudo apt install hashcat-utils`,cloudmapper:`https://github.com/duo-labs/cloudmapper`,vulnx:`go install github.com/projectdiscovery/cvemap/cmd/vulnx@latest`,falco:`https://falco.org/docs/setup/packages/#install-with-apt`,ldapdomaindump:`sudo apt install python3-ldapdomaindump`,sublist3r:`sudo apt install sublist3r`,parsero:`sudo apt install parsero`,joomscan:`sudo apt install joomscan`,interactsh:`go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest`,schemathesis:`pipx install schemathesis # or: pip install schemathesis`,hurl:`sudo apt install hurl`,assetfinder:`sudo apt install assetfinder`,shuffledns:`sudo apt-get install -y massdns; go install -v github.com/projectdiscovery/shuffledns/cmd/shuffledns@latest`,massdns:`sudo apt install massdns`,gospider:`sudo apt install gospider`,dig:`sudo apt install bind9-dnsutils`};function Pt(e){return Nt[e]??`# check project docs for exact install`}function Ft({tool:e,onClose:t,installed:r}){let i=Math.round(e.effectiveness*100),a=i>=90?`var(--green)`:i>=75?`var(--amber)`:`var(--red)`,o=Object.entries(e.params).filter(([,e])=>e.required),c=Object.entries(e.optional),[l,u]=(0,V.useState)(!1);function d(){navigator.clipboard.writeText(Pt(e.name)).then(()=>{u(!0),setTimeout(()=>u(!1),2e3)})}return(0,Q.jsxs)(Ee,{isOpen:!0,onClose:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-name mono`,children:e.name}),(0,Q.jsx)(`span`,{className:`modal-cat`,children:e.category.replace(/_/g,` `)}),r===!0&&(0,Q.jsxs)(`span`,{className:`modal-status modal-status--installed`,children:[(0,Q.jsx)(v,{size:11}),` installed`]}),r===!1&&(0,Q.jsxs)(`span`,{className:`modal-status modal-status--missing`,children:[(0,Q.jsx)(n,{size:11}),` not installed`]}),e.parent_tool&&(0,Q.jsx)(`span`,{className:`modal-cat`,title:`Based on ${e.parent_tool}`,children:e.parent_tool})]}),children:[(0,Q.jsx)(`p`,{className:`modal-desc`,children:e.desc}),(0,Q.jsxs)(`div`,{className:`modal-eff-row`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Effectiveness`}),(0,Q.jsx)(`div`,{className:`modal-eff-bar`,children:(0,Q.jsx)(`div`,{className:`modal-eff-fill`,style:{width:`${i}%`,background:a}})}),(0,Q.jsxs)(`span`,{className:`modal-eff-pct`,style:{color:a},children:[i,`%`]})]}),r!==!0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Install`}),(0,Q.jsxs)(`div`,{className:`modal-code-wrap`,children:[(0,Q.jsx)(`div`,{className:`modal-code mono`,children:Pt(e.name)}),(0,Q.jsxs)(`button`,{className:`modal-copy-btn`,onClick:d,title:`Copy to clipboard`,children:[l?(0,Q.jsx)(O,{size:13}):(0,Q.jsx)(s,{size:13}),l?`Copied!`:`Copy`]})]})]}),(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`API Endpoint`}),(0,Q.jsxs)(`div`,{className:`modal-code mono`,children:[e.method,` `,e.endpoint]})]}),o.length>0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Required Parameters`}),(0,Q.jsx)(`div`,{className:`modal-params`,children:o.map(([e])=>(0,Q.jsx)(`span`,{className:`modal-param modal-param--required mono`,children:e},e))})]}),c.length>0&&(0,Q.jsxs)(`div`,{className:`modal-section`,children:[(0,Q.jsx)(`span`,{className:`modal-label`,children:`Optional Parameters`}),(0,Q.jsxs)(`table`,{className:`modal-table`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`th`,{children:`Parameter`}),(0,Q.jsx)(`th`,{children:`Default`})]})}),(0,Q.jsx)(`tbody`,{children:c.map(([e,t])=>(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`td`,{className:`mono`,children:e}),(0,Q.jsx)(`td`,{className:`mono`,children:String(t)||(0,Q.jsx)(`em`,{children:`—`})})]},e))})]})]})]})}function It({open:e,size:t=13,className:n,style:r}){return e?(0,Q.jsx)(T,{size:t,className:n,style:r}):(0,Q.jsx)(D,{size:t,className:n,style:r})}var Lt={essential:(0,Q.jsx)(oe,{size:14}),network_recon:(0,Q.jsx)(j,{size:14}),web_recon:(0,Q.jsx)(fe,{size:14}),web_vuln:(0,Q.jsx)(C,{size:14}),brute_force:(0,Q.jsx)(m,{size:14}),binary:(0,Q.jsx)(l,{size:14}),forensics:(0,Q.jsx)(_e,{size:14}),cloud:(0,Q.jsx)(o,{size:14}),osint:(0,Q.jsx)(he,{size:14}),exploitation:(0,Q.jsx)(de,{size:14}),api:(0,Q.jsx)(fe,{size:14}),wifi_pentest:(0,Q.jsx)(j,{size:14}),database:(0,Q.jsx)(_e,{size:14}),vulnerability_intelligence:(0,Q.jsx)(_,{size:14}),active_directory:(0,Q.jsx)(h,{size:14}),fingerprint:(0,Q.jsx)(R,{size:14}),ops:(0,Q.jsx)(ye,{size:14}),intelligence:(0,Q.jsx)(ce,{size:14}),data_processing:(0,Q.jsx)(o,{size:14}),ai_assist:(0,Q.jsx)(ce,{size:14})};function Rt({category:e,stats:t,toolStatuses:r,toolsByName:i}){let[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),l=t.total>0?t.available/t.total*100:0,u=l===100?`var(--green)`:l>50?`var(--amber)`:`var(--red)`,d=Object.entries(r).sort(([e],[t])=>e.localeCompare(t));return(0,Q.jsxs)(Q.Fragment,{children:[s&&(0,Q.jsx)(Ft,{tool:s,onClose:()=>c(null),installed:r[s.name]}),(0,Q.jsxs)(`div`,{className:`cat-row`,children:[(0,Q.jsxs)(`button`,{className:`cat-header`,onClick:()=>o(e=>!e),children:[(0,Q.jsx)(`span`,{className:`cat-icon`,style:{color:u},children:Lt[e]||(0,Q.jsx)(ve,{size:14})}),(0,Q.jsx)(`span`,{className:`cat-name`,children:e.replace(/_/g,` `)}),(0,Q.jsxs)(`span`,{className:`cat-badge`,style:{background:`${u}22`,color:u},children:[t.available,`/`,t.total]}),(0,Q.jsx)(`div`,{className:`cat-bar-bg`,children:(0,Q.jsx)(`div`,{className:`cat-bar-fill`,style:{width:`${l}%`,background:u}})}),(0,Q.jsx)(`span`,{className:`cat-chevron`,children:(0,Q.jsx)(It,{open:a,size:14})})]}),a&&(0,Q.jsx)(`div`,{className:`cat-tools-grid`,children:d.map(([e,t])=>{let r=i[e];return(0,Q.jsxs)(`div`,{className:`tool-chip ${t?`available`:`missing`}${r?` tool-chip--clickable`:``}`,onClick:r?()=>c(r):void 0,title:r?`Click for details on ${e}`:void 0,children:[t?(0,Q.jsx)(v,{size:10,color:`var(--green)`}):(0,Q.jsx)(n,{size:10,color:`var(--red)`}),(0,Q.jsx)(`span`,{className:`mono`,children:e})]},e)})})]})]})}function zt({health:e,tools:t,toolCategories:n}){let[r,a]=(0,V.useState)(!1),o=Object.fromEntries(t.map(e=>[e.name,e])),s=e.all_essential_tools_available?`var(--success)`:`var(--warning)`,c=Object.entries(e.category_stats).sort(([e],[t])=>e.localeCompare(t)),l=c.filter(([,e])=>e.availablee.availablea(e=>!e),children:[(0,Q.jsxs)(`h3`,{children:[`Tool Availability`,(0,Q.jsxs)(`span`,{className:`section-install-badge`,style:{color:s,borderColor:`${s}55`,background:`${s}1A`},children:[e.total_tools_available,`/`,e.total_tools_count,` installed`]})]}),(0,Q.jsxs)(`div`,{className:`section-header-side`,children:[(0,Q.jsx)(`span`,{className:`section-meta`,children:At(e.tool_availability_age_seconds)}),(0,Q.jsx)(`span`,{className:`section-chevron`,children:(0,Q.jsx)(It,{open:r,size:14})})]})]}),(0,Q.jsxs)(`div`,{className:`cat-list`,children:[!r&&(0,Q.jsx)(`div`,{className:`cat-list-mode-note`,children:l===0?`All categories fully installed (${c.length}/${c.length})`:`Showing categories with missing tools (${l}/${c.length})`}),u.map(([t,r])=>{let i=Ot(t,e.tools_status,n),a=Object.fromEntries(i.map(t=>[t,e.tools_status[t]??!1]));return(0,Q.jsx)(Rt,{category:t,stats:r,toolStatuses:a,toolsByName:o},t)}),(0,Q.jsxs)(`button`,{className:`cat-list-toggle-row`,onClick:()=>a(e=>!e),children:[(0,Q.jsx)(`span`,{children:r?`Show only incomplete categories`:`Show all categories`}),(0,Q.jsx)(`span`,{className:`cat-list-toggle-chevron`,children:r?(0,Q.jsx)(i,{size:14}):(0,Q.jsx)(D,{size:14})})]})]})]})}function Bt(e){let t=Math.max(0,(Date.now()-e.getTime())/1e3);return t<60?`just now`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Vt({runHistory:e}){let t=[...e].sort((e,t)=>t.ts.getTime()-e.ts.getTime()).slice(0,5);return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsx)(`div`,{className:`section-header`,children:(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(M,{size:14,className:`section-title-icon`}),`Recent Activity`]})}),t.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No tool runs yet this session.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:t.map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[e.result.success?(0,Q.jsx)(v,{size:14,color:`var(--green)`}):(0,Q.jsx)(n,{size:14,color:`var(--red)`}),(0,Q.jsx)(`span`,{className:`mono widget-list-row-main`,children:e.tool}),(0,Q.jsx)(`span`,{className:`section-meta`,children:Bt(e.ts)})]},e.id))})]})}function Ht(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(0),[i,a]=(0,V.useState)(!0);return(0,V.useEffect)(()=>{let e=!1;return(H()?X(()=>import(`./demo-BVWMV9-U.js`).then(e=>e.DEMO_SESSIONS),[]):Z.sessions()).then(n=>{e||(t(n.active),r(n.total_completed))}).catch(()=>{}).finally(()=>{e||a(!1)}),()=>{e=!0}},[]),(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsxs)(`div`,{className:`section-header`,children:[(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(pe,{size:14,className:`section-title-icon`}),`Active Sessions`]}),!i&&(0,Q.jsxs)(`span`,{className:`section-meta`,children:[n,` completed`]})]}),i?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):e.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No active sessions.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:e.slice(0,5).map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`widget-list-row-main`,children:e.name||e.target}),(0,Q.jsxs)(`span`,{className:`section-meta`,children:[e.total_findings,` findings`]})]},e.session_id))})]})}function Ut(e){let t=Math.max(0,Date.now()/1e3-e);return t<60?`just now`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Wt(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(!0);(0,V.useEffect)(()=>{let e=!1;return Z.loot().then(n=>{e||t(n.loot)}).catch(()=>{}).finally(()=>{e||r(!1)}),()=>{e=!0}},[]);let i=[...e].sort((e,t)=>t.created_at-e.created_at).slice(0,5);return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsx)(`div`,{className:`section-header`,children:(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(ue,{size:14,className:`section-title-icon`}),`Recent Loot`]})}),n?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):i.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No loot captured yet.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:i.map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`widget-list-row-main`,children:e.title}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.host??e.source_tool??``}),(0,Q.jsx)(`span`,{className:`section-meta`,children:Ut(e.created_at)})]},e.loot_id))})]})}function Gt(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!0);(0,V.useEffect)(()=>{let e=!1;function n(){(H()?X(()=>import(`./demo-BVWMV9-U.js`).then(e=>e.DEMO_PROCESSES),[]):Z.processDashboard()).then(n=>{e||t(n)}).catch(()=>{}).finally(()=>{e||r(!1)})}if(n(),H())return()=>{e=!0};let i=setInterval(n,5e3);return()=>{e=!0,clearInterval(i)}},[]);let i=e?.processes??[];return(0,Q.jsxs)(`section`,{className:`section`,children:[(0,Q.jsxs)(`div`,{className:`section-header`,children:[(0,Q.jsxs)(`h3`,{children:[(0,Q.jsx)(A,{size:14,className:`section-title-icon`}),`Task Queue`]}),e&&(0,Q.jsxs)(`span`,{className:`section-meta`,children:[e.total_processes,` running`]})]}),n?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`Loading…`}):i.length===0?(0,Q.jsx)(`p`,{className:`chart-placeholder`,children:`No background tasks running.`}):(0,Q.jsx)(`div`,{className:`widget-list`,children:i.slice(0,5).map(e=>(0,Q.jsxs)(`div`,{className:`widget-list-row`,children:[(0,Q.jsx)(`span`,{className:`mono widget-list-row-main`,children:e.command}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.status}),(0,Q.jsx)(`span`,{className:`section-meta`,children:e.progress_percent})]},e.task_id??e.pid??e.command))})]})}var Kt=(0,V.lazy)(()=>X(()=>import(`./ResourceSection-Cp2ywmGq.js`).then(e=>({default:e.ResourceSection})),__vite__mapDeps([0,1,2,3,4,5]))),qt=[{id:`kpi-row`,label:`KPI Overview`,icon:F,description:`Server status, tool counts, and command totals`,render:e=>(0,V.createElement)(Mt,{health:e.health,tools:e.tools,runHistory:e.runHistory})},{id:`system-resources`,label:`System Resources`,icon:l,description:`Live CPU, memory, and disk usage`,render:e=>(0,V.createElement)(V.Suspense,{fallback:(0,V.createElement)(`div`,{className:`loading-state`},(0,V.createElement)(`div`,{className:`spin spin--sm spin--green`}))},(0,V.createElement)(Kt,{demoResources:e.demo?e.health?.resources:void 0,demoHistory:e.demo?e.demoCpuHistory:void 0}))},{id:`tool-availability`,label:`Tool Availability`,icon:le,description:`Installed-tool breakdown by category`,render:e=>(0,V.createElement)(zt,{health:e.health,tools:e.tools,toolCategories:e.toolCategories})},{id:`recent-activity`,label:`Recent Activity`,icon:M,description:`Latest tool runs from this session`,render:e=>(0,V.createElement)(Vt,{runHistory:e.runHistory})},{id:`active-sessions`,label:`Active Sessions`,icon:pe,description:`Recon/engagement sessions currently in progress`,render:()=>(0,V.createElement)(Ht)},{id:`recent-loot`,label:`Recent Loot`,icon:ue,description:`Recently captured credentials and artefacts`,render:()=>(0,V.createElement)(Wt)},{id:`task-queue`,label:`Task Queue`,icon:A,description:`Running and queued background tasks`,render:()=>(0,V.createElement)(Gt)}],Jt=qt.map(e=>e.id),Yt=[`kpi-row`,`system-resources`,`tool-availability`],Xt=`nyxstrike_dashboard_widgets`;function Zt(e){let t=new Set(Jt);return e.filter(e=>t.has(e))}function Qt(){let[e,t]=yt(Xt,Yt),n=Zt(e),r=n.map(e=>qt.find(t=>t.id===e)).filter(e=>!!e),i=qt.filter(e=>!n.includes(e.id));function a(e){t(t=>t.includes(e)?t:[...t,e])}function o(e){t(t=>t.filter(t=>t!==e))}function s(e,n){t(t=>{let r=Zt(t),i=r.indexOf(e),a=r.indexOf(n);if(i===-1||a===-1||i===a)return t;let o=[...r];return o.splice(i,1),o.splice(a,0,e),o})}return{enabledWidgets:r,availableWidgets:i,addWidget:a,removeWidget:o,reorderWidget:s}}function $t({id:e,label:t,isCustomizing:n,dragHandlers:r,dragClassName:i,onRemove:a,children:o}){return n?(0,Q.jsxs)(`div`,{className:i(e,`dashboard-widget-frame`),...r(e),children:[(0,Q.jsxs)(`div`,{className:`dashboard-widget-toolbar`,children:[(0,Q.jsx)(`span`,{className:`dashboard-widget-grip`,title:`Drag to reorder`,children:(0,Q.jsx)(N,{size:14})}),(0,Q.jsx)(`span`,{className:`dashboard-widget-frame-label`,children:t}),(0,Q.jsx)(`button`,{type:`button`,className:`icon-btn dashboard-widget-remove`,onClick:()=>a(e),title:`Remove ${t}`,children:(0,Q.jsx)(ie,{size:14})})]}),(0,Q.jsx)(`div`,{className:`dashboard-widget-frame-body`,children:o})]}):(0,Q.jsx)(Q.Fragment,{children:o})}function en({health:e,tools:t,runHistory:r,loading:i,error:a,toolCategories:o,demo:s,demoCpuHistory:l}){let[d,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(!1),{enabledWidgets:h,availableWidgets:g,addWidget:_,removeWidget:v,reorderWidget:y}=Qt(),{dragHandlers:b,dragClassName:x}=vt(y),S={health:e,tools:t,runHistory:r,toolCategories:o,demo:s,demoCpuHistory:l};return(0,Q.jsxs)(Q.Fragment,{children:[i&&!e&&(0,Q.jsxs)(`div`,{className:`loading-state`,children:[(0,Q.jsx)(`div`,{className:`spin spin--sm spin--green`}),(0,Q.jsx)(`p`,{children:`Connecting to server…`})]}),a&&!e&&(0,Q.jsxs)(`div`,{className:`error-banner`,children:[(0,Q.jsx)(n,{size:16}),` `,a,` — is the server running on port 8888?`]}),(0,Q.jsxs)(`div`,{className:`dashboard-toolbar`,children:[(0,Q.jsxs)(B,{variant:d?`success`:`default`,onClick:()=>f(e=>!e),children:[(0,Q.jsx)(c,{size:14}),` `,d?`Done`:`Customize`]}),d&&(0,Q.jsxs)(B,{variant:`default`,onClick:()=>m(!0),children:[(0,Q.jsx)(u,{size:14}),` Add Widget`]})]}),h.length===0&&(0,Q.jsxs)(`div`,{className:`dashboard-empty-state`,children:[(0,Q.jsx)(`p`,{children:`No widgets on your dashboard.`}),(0,Q.jsxs)(B,{variant:`success`,onClick:()=>m(!0),children:[(0,Q.jsx)(u,{size:14}),` Add Widget`]})]}),h.map(e=>(0,Q.jsx)($t,{id:e.id,label:e.label,isCustomizing:d,dragHandlers:b,dragClassName:x,onRemove:v,children:e.render(S)},e.id)),(0,Q.jsx)(Je,{isOpen:p,title:`Add Widget`,onClose:()=>m(!1),children:g.length===0?(0,Q.jsx)(`p`,{className:`modal-desc`,children:`All available widgets are already on your dashboard.`}):(0,Q.jsx)(`div`,{className:`dashboard-add-widget-list`,children:g.map(e=>{let t=e.icon;return(0,Q.jsxs)(`button`,{type:`button`,className:`dashboard-add-widget-item`,onClick:()=>{_(e.id),m(!1)},children:[(0,Q.jsx)(`span`,{className:`dashboard-add-widget-icon`,children:(0,Q.jsx)(t,{size:16})}),(0,Q.jsxs)(`span`,{className:`dashboard-add-widget-text`,children:[(0,Q.jsx)(`span`,{className:`dashboard-add-widget-label`,children:e.label}),(0,Q.jsx)(`span`,{className:`dashboard-add-widget-desc`,children:e.description})]}),(0,Q.jsx)(u,{size:14})]},e.id)})})})]})}var tn=(0,V.lazy)(()=>X(()=>import(`./RunPage-44IKOoZ3.js`).then(e=>({default:e.RunPage})),__vite__mapDeps([6,1,2,3,7,8,5,9,10,11,12]))),nn=(0,V.lazy)(()=>X(()=>import(`./LogsPage-BG_DMqqZ.js`),__vite__mapDeps([13,1,2,3,14,15]))),rn=(0,V.lazy)(()=>X(()=>import(`./SettingsPage-BS4_std9.js`),__vite__mapDeps([16,1,2,3,17,18,19,14,20]))),an=(0,V.lazy)(()=>X(()=>import(`./HelpPage-D-q_FBMF.js`),__vite__mapDeps([21,1,2,3,19,14,22]))),on=(0,V.lazy)(()=>X(()=>import(`./TasksPage-Cj7_M9HF.js`),__vite__mapDeps([23,1,2,3,8,5,14,24,25,26,27]))),sn=(0,V.lazy)(()=>X(()=>import(`./ToolsPage-Cx0qoR6m.js`),__vite__mapDeps([28,1,2,3,14,24,11,29]))),cn=(0,V.lazy)(()=>X(()=>import(`./PluginsPage-DoPWPO3F.js`),__vite__mapDeps([30,1,2,3,8,5,14,24,31]))),ln=(0,V.lazy)(()=>X(()=>import(`./ReportsPage-8MB5H1Hc.js`),__vite__mapDeps([32,1,2,3,14,24,7,8,5,33]))),un=(0,V.lazy)(()=>X(()=>import(`./VerifyPage-BQU-rOEN.js`).then(e=>({default:e.VerifyPage})),__vite__mapDeps([34,1,2,3,14,35]))),dn=(0,V.lazy)(()=>X(()=>import(`./SessionsPage-t6LVt-1M.js`),__vite__mapDeps([36,1,2,3,8,5,14,24,37]))),fn=(0,V.lazy)(()=>X(()=>import(`./SessionDetailPage-1TboVloD.js`),__vite__mapDeps([38,1,2,5,3,17,18,8,4,39,40,9,10,41,37]))),pn=(0,V.lazy)(()=>X(()=>import(`./LootPage-BLX8MQ_q.js`),__vite__mapDeps([42,1,2,5,3,8,14,43]))),mn=(0,V.lazy)(()=>X(()=>import(`./WorkbenchPage-BrVaF5gj.js`),__vite__mapDeps([44,1,2,3,17,18,14,24,45,8,5,46]))),hn=(0,V.lazy)(()=>X(()=>import(`./PayloadWorkbenchPage-CA5GTKVr.js`),__vite__mapDeps([47,1,2,3,17,18,14,24,39,40,25,26,45,8,5,46,48])));function gn(){return(0,Q.jsx)(`div`,{className:`loading-state`,children:(0,Q.jsx)(y,{size:24,className:`spin`,color:`var(--green)`})})}function _n({page:e,demo:t,tools:n,health:r,toolsStatusWithParents:i,runHistory:a,setRunHistory:o,fetchServerRunHistory:s,clearServerRunHistory:c,commandToolRequest:l,onCommandToolHandled:u,urlToolName:d,onToolSelected:f,urlWorkbenchOperationId:p,onWorkbenchOperationSelected:m,urlWorkbenchRecipe:h,onWorkbenchRecipeChanged:g,urlWorkbenchInput:_,onOpenInWorkbench:v,urlPayloadWorkbenchOperationId:b,onPayloadWorkbenchOperationSelected:x,openSessionDetail:S,activeSessionId:C,setPage:w,addBrowserRunEntry:T,logLines:E,logAutoScroll:D,setLogAutoScroll:O,logLimit:k,setLogLimit:A,logEndRef:j,loading:M,error:N,toolCategories:P,themeId:F,setThemeId:I,reduceTextureEffects:ee,setReduceTextureEffects:L,demoProcesses:R,demoSessions:z,demoCpuHistory:te,isPageEnabled:ne,togglePage:re,orderedPageConfigs:ie,reorderPage:ae}){let oe=e===`run`||e===`workbench`||e===`payload-workbench`||e===`tools`||e===`sessions`||e===`plugins`||e===`loot`||e===`reports`||e===`tasks`||e===`help`||e===`settings`||e===`verify`||e===`logs`;return(0,Q.jsxs)(`main`,{className:`main${oe?` main--flush`:``}`,children:[(0,Q.jsx)(`div`,{className:`page-slot`,children:(0,Q.jsxs)(V.Suspense,{fallback:(0,Q.jsx)(gn,{}),children:[e===`settings`&&(0,Q.jsx)(rn,{themeId:F,setThemeId:I,reduceTextureEffects:ee,setReduceTextureEffects:L,isPageEnabled:ne,togglePage:re,orderedPageConfigs:ie,reorderPage:ae}),e===`help`&&(0,Q.jsx)(an,{}),e===`run`&&(0,Q.jsx)(tn,{tools:n,toolsStatus:i,runHistory:a,setRunHistory:o,commandToolRequest:l,onCommandToolHandled:u,urlToolName:d,onToolSelected:f,onRefresh:s,onClearHistory:c,onOpenSession:S}),e===`tasks`&&(0,Q.jsx)(on,{demoData:t&&R?{processes:R}:void 0}),e===`tools`&&r&&(0,Q.jsx)(sn,{health:r,tools:n,toolsStatus:i}),e===`plugins`&&(0,Q.jsx)(cn,{}),e===`reports`&&(0,Q.jsx)(ln,{runHistory:a}),e===`verify`&&(0,Q.jsx)(un,{}),e===`sessions`&&(0,Q.jsx)(dn,{demoData:t&&z?{sessions:z}:void 0,onOpenSession:S}),e===`session-detail`&&C&&(0,Q.jsx)(fn,{sessionId:C,tools:n,onBack:()=>w(`sessions`),onToolRun:T,llmAvailable:r?.llm_status?.available??!1}),e===`loot`&&(0,Q.jsx)(pn,{onOpenInWorkbench:v}),e===`workbench`&&(0,Q.jsx)(mn,{urlOperationId:p,onOperationSelected:m,urlRecipe:h,onRecipeChanged:g,urlInput:_}),e===`payload-workbench`&&(0,Q.jsx)(hn,{urlOperationId:b,onOperationSelected:x}),e===`logs`&&(0,Q.jsx)(nn,{logLines:E,logAutoScroll:D,setLogAutoScroll:O,logLimit:k,setLogLimit:A,logEndRef:j}),e===`dashboard`&&(0,Q.jsxs)(Q.Fragment,{children:[M&&!r&&(0,Q.jsxs)(`div`,{className:`loading-state`,children:[(0,Q.jsx)(y,{size:24,className:`spin`,color:`var(--green)`}),(0,Q.jsx)(`p`,{children:`Connecting to server…`})]}),N&&!r&&(0,Q.jsxs)(`div`,{className:`error-banner`,children:[N,` — is the server running on port 8888?`]}),r&&(0,Q.jsx)(en,{health:r,tools:n,runHistory:a,loading:M,error:N,toolCategories:P,demo:t,demoCpuHistory:te})]})]})}),!oe&&(0,Q.jsx)(_t,{})]})}function vn(){let[e,t]=(0,V.useState)(()=>{try{let e=localStorage.getItem(Ge);if(e&&qe(e))return e}catch{}return`catppuccin`}),[n,r]=(0,V.useState)(()=>{try{return localStorage.getItem(`nyxstrike_reduce_texture_effects`)===`1`}catch{return!1}});return(0,V.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,e),n?document.documentElement.setAttribute(`data-reduce-textures`,`1`):document.documentElement.removeAttribute(`data-reduce-textures`);try{localStorage.setItem(Ge,e),localStorage.setItem(`nyxstrike_reduce_texture_effects`,n?`1`:`0`)}catch{}},[e,n]),{themeId:e,setThemeId:t,reduceTextureEffects:n,setReduceTextureEffects:r}}var yn=new Set([`dashboard`,`settings`,`help`,`logs`,`run`,`tasks`,`tools`,`plugins`,`reports`,`sessions`,`session-detail`,`loot`,`verify`,`workbench`,`payload-workbench`]);function bn(e,t,n){let r=e?`/workbench/${encodeURIComponent(e)}`:`/workbench`,i=new URLSearchParams;t&&i.set(`recipe`,t),n&&i.set(`input`,n);let a=i.toString();return a?`${r}?${a}`:r}function xn(e){return e?`/payload-workbench/${encodeURIComponent(e)}`:`/payload-workbench`}function Sn(){let e=window.location.hash.replace(/^#\/?/,``);if(e.startsWith(`sessions/`))return{page:`session-detail`,sessionId:e.slice(9)||null,toolName:null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null,payloadWorkbenchOperationId:null};if(e.startsWith(`run/`))return{page:`run`,sessionId:null,toolName:decodeURIComponent(e.slice(4))||null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null,payloadWorkbenchOperationId:null};if(e===`workbench`||e.startsWith(`workbench/`)||e.startsWith(`workbench?`)){let[t,n]=e.slice(9).split(`?`),r=t.startsWith(`/`)?decodeURIComponent(t.slice(1)):``,i=new URLSearchParams(n??``);return{page:`workbench`,sessionId:null,toolName:null,workbenchOperationId:r||null,workbenchRecipe:i.get(`recipe`),workbenchInput:i.get(`input`),payloadWorkbenchOperationId:null}}if(e===`payload-workbench`||e.startsWith(`payload-workbench/`)){let t=e.slice(17);return{page:`payload-workbench`,sessionId:null,toolName:null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null,payloadWorkbenchOperationId:(t.startsWith(`/`)?decodeURIComponent(t.slice(1)):``)||null}}return{page:yn.has(e)?e:`dashboard`,sessionId:null,toolName:null,workbenchOperationId:null,workbenchRecipe:null,workbenchInput:null,payloadWorkbenchOperationId:null}}function Cn(e){let t=Sn(),[n,r]=(0,V.useState)(t.page),[i,a]=(0,V.useState)(t.sessionId),[o,s]=(0,V.useState)(t.toolName),[c,l]=(0,V.useState)(t.workbenchOperationId),[u,d]=(0,V.useState)(t.workbenchRecipe),[f,p]=(0,V.useState)(t.workbenchInput),[m,h]=(0,V.useState)(t.payloadWorkbenchOperationId),[g,_]=(0,V.useState)(!1);function v(e){e!==`session-detail`&&(window.location.hash=`/${e===`dashboard`?``:e}`,r(e),a(null),s(null),l(null),d(null),p(null),h(null),_(!1))}function y(e){window.location.hash=`/sessions/${e}`,r(`session-detail`),a(e),s(null),l(null),d(null),p(null),h(null),_(!1)}function b(e,t=null){window.location.hash=bn(t,null,e),r(`workbench`),a(null),s(null),l(t),d(null),p(e),h(null),_(!1)}function x(e){window.location.hash=e?`/run/${encodeURIComponent(e)}`:`/run`,s(e)}function S(e){window.location.hash=bn(e,u),l(e)}function C(e){window.location.hash=bn(c,e),d(e)}function w(e){window.location.hash=xn(e),h(e)}return(0,V.useEffect)(()=>{function e(){let e=Sn();r(e.page),a(e.sessionId),s(e.toolName),l(e.workbenchOperationId),d(e.workbenchRecipe),p(e.workbenchInput),h(e.payloadWorkbenchOperationId),_(!1)}return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]),(0,V.useEffect)(()=>{e(n)||v(`dashboard`)},[n,e]),{page:n,activeSessionId:i,activeToolName:o,activeWorkbenchOperationId:c,activeWorkbenchRecipe:u,activeWorkbenchInput:f,activePayloadWorkbenchOperationId:m,sidebarMobileOpen:g,setSidebarMobileOpen:_,setPage:v,openSessionDetail:y,setActiveToolName:x,setActiveWorkbenchOperationId:S,setActiveWorkbenchRecipe:C,setActivePayloadWorkbenchOperationId:w,openWorkbench:b}}function wn({demo:e,page:t}){let[n,r]=(0,V.useState)([]),[i,a]=(0,V.useState)(!0),[o,s]=(0,V.useState)(500),c=(0,V.useRef)(null),l=(0,V.useRef)(null);return(0,V.useEffect)(()=>{if(e||t!==`logs`)return;let n=null,i=null,a=!1;function o(){a||(n=Z.logStream(150),l.current=n,n.onmessage=e=>{r(t=>{let n=[...t,e.data];return n.length>500?n.slice(-500):n})},n.onerror=()=>{n?.close(),n=null,a||(i=setTimeout(o,3e3))})}return o(),()=>{a=!0,i&&clearTimeout(i),n?.close()}},[e,t]),(0,V.useEffect)(()=>{t===`logs`&&i&&c.current?.scrollIntoView({behavior:`smooth`})},[n,t,i]),{logLines:n,logAutoScroll:i,setLogAutoScroll:a,logLimit:o,setLogLimit:s,logEndRef:c,applyDemoLogLines:(0,V.useCallback)(e=>{r(e)},[])}}var Tn=`nyxstrike_palette_hint_seen`;function En(e){let[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(null),[a,o]=(0,V.useState)(()=>{try{return localStorage.getItem(Tn)!==`1`}catch{return!0}}),s=(0,V.useRef)(null);(0,V.useEffect)(()=>{function e(e){(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),s.current=document.activeElement,n(!0))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);function c(t){e(`run`),i({toolName:t.name,requestId:Date.now()})}function l(){o(!1);try{localStorage.setItem(Tn,`1`)}catch{}}function u(){s.current=document.activeElement,n(!0),a&&l()}function d(){n(!1),s.current?.focus()}function f(){i(null)}return{paletteOpen:t,setPaletteOpen:n,commandToolRequest:r,clearCommandToolRequest:f,showPaletteHint:a,dismissPaletteHint:l,openCommandPalette:u,closeCommandPalette:d,handleCommandSelectTool:c}}function Dn({demo:e,onProbeSuccess:t,onLoadingDone:n}){let[r,i]=(0,V.useState)(e||Me()),[a,o]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{e||Me()||Z.dashboard().then(e=>{t(e),i(!0)}).catch(e=>{e instanceof Error&&e.message===`UNAUTHORIZED`?o(!0):i(!0),n()})},[]),{authed:r,needsAuth:a,setAuthed:i,setNeedsAuth:o}}function On(e){let t=e.match(/^Date:\s+(\S+)/m);if(!t)return null;let n=new Date(t[1]);return isNaN(n.getTime())?null:n}function kn(e,t){let[n,r]=(0,V.useState)([]),i=(0,V.useCallback)((e,t,n)=>{r(r=>[{id:Date.now(),tool:e,params:t,result:n,ts:new Date,source:`browser`},...r].slice(0,200))},[]),a=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.runHistorySummary();if(!e.success)return;r(t=>{let n=new Set(t.filter(e=>e.source===`server`).map(e=>e.serverId)),r=e.runs.filter(e=>!n.has(e.id)).map(e=>({id:-e.id,serverId:e.id,source:`server`,tool:e.tool,params:{},ts:e.timestamp?new Date(e.timestamp):new Date,result:{stdout:``,stderr:``,return_code:0,success:e.success,timed_out:!1,partial_results:!1,execution_time:e.execution_time,timestamp:e.timestamp}}));return r.length===0?t:[...t,...r].sort((e,t)=>t.ts.getTime()-e.ts.getTime())})}catch{}},[e]),o=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.runHistory();if(!e.success)return;r(t=>{let n=t.filter(e=>e.source!==`server`),r=e.runs.filter(e=>{let t=e.timestamp?new Date(e.timestamp).getTime():0;return!n.some(n=>n.source===`browser`&&n.tool===e.tool&&t>0&&Math.abs(n.ts.getTime()-t)<1e4)}).map(e=>({id:-e.id,serverId:e.id,source:`server`,tool:e.tool,params:e.params,ts:e.timestamp?new Date(e.timestamp):On(e.stdout??``)??new Date,result:{stdout:e.stdout,stderr:e.stderr,return_code:e.return_code,success:e.success,timed_out:e.timed_out,partial_results:e.partial_results,execution_time:e.execution_time,timestamp:e.timestamp}}));return[...n,...r].sort((e,t)=>t.ts.getTime()-e.ts.getTime())})}catch{}},[e]),s=(0,V.useCallback)(async()=>{if(e){r([]);return}(await Z.clearRunHistory()).success&&r([])},[e]);return(0,V.useEffect)(()=>{e||!t||a().catch(()=>{})},[e,t,a]),{runHistory:n,setRunHistory:r,addBrowserRunEntry:i,fetchServerRunHistory:o,clearServerRunHistory:s}}var An=1e4;function jn({demo:e,authed:t,onUnauthorized:n}){let[r,i]=(0,V.useState)(null),[a,o]=(0,V.useState)([]),[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(!0),[d,f]=(0,V.useState)(null),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(null),[_,v]=(0,V.useState)({}),y=(0,V.useRef)(null),b=(0,V.useRef)(null);(0,V.useEffect)(()=>{e||Z.tools().then(e=>o(e.tools)).catch(()=>{})},[e]);let x=(0,V.useCallback)(async()=>{if(!e)try{let e=await Z.dashboard();i(e),c(new Date),f(null)}catch(e){e instanceof Error&&e.message===`UNAUTHORIZED`?n():f(`Server unreachable`)}finally{u(!1)}},[]);return(0,V.useEffect)(()=>{e||!t||(async()=>{try{let e=await Z.getToolCategories();v(e.categories)}catch{}})()},[e,t]),(0,V.useEffect)(()=>{if(e||!t)return;y.current&&y.current.close(),b.current&&=(clearInterval(b.current),null);function n(){b.current&&clearInterval(b.current),b.current=window.setInterval(()=>{x()},An)}let r=Z.dashboardStream();return y.current=r,r.onmessage=e=>{try{let t=JSON.parse(e.data);i(t),c(new Date),u(!1),f(null),m(!0),g(null),b.current&&=(clearInterval(b.current),null)}catch{g(`Malformed dashboard data`)}},r.onerror=()=>{m(!1),g(`Dashboard stream disconnected; using polling.`),b.current||n()},()=>{r.close(),b.current&&clearInterval(b.current)}},[e,t,x]),{health:r,tools:a,lastRefresh:s,loading:l,error:d,isStreaming:p,streamingError:h,toolCategories:_,fetchAll:x,applyDemoSnapshot:(0,V.useCallback)((e,t)=>{i(e),o(t),c(new Date),u(!1)},[]),onProbeSuccess:(0,V.useCallback)(e=>{i(e),u(!1)},[]),onProbeLoadingDone:(0,V.useCallback)(()=>{u(!1)},[])}}function Mn({demo:e,onSnapshot:t,onRunHistory:n,onLogLines:r}){let[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(null),[c,l]=(0,V.useState)(null);return(0,V.useEffect)(()=>{e&&X(()=>import(`./demo-BVWMV9-U.js`).then(e=>{t(e.DEMO_HEALTH,e.DEMO_TOOLS),n(e.DEMO_RUN_HISTORY),r(e.DEMO_LOG_LINES),a(e.DEMO_PROCESSES),s(e.DEMO_SESSIONS),l(e.demoCpuMemHistory())}),[])},[e,t,n,r]),{demoProcesses:i,demoSessions:o,demoCpuHistory:c}}var Nn=xe(),$=[{id:`dashboard`,label:`Home`,icon:F,description:`Overview dashboard with KPIs and live status`,mandatory:!0,paletteLabel:`Open Home`},{id:`run`,label:`Run`,icon:p,description:`Execute security tools interactively`,mandatory:!1,paletteLabel:`Open Run`},{id:`tasks`,label:`Tasks`,icon:A,description:`Background task queue and progress`,mandatory:!1,paletteLabel:`Open Tasks`},{id:`logs`,label:`Logs`,icon:I,description:`Live server log stream`,mandatory:!1,paletteLabel:`Open Logs`},{id:`reports`,label:`Reports`,icon:L,description:`Generated scan reports`,mandatory:!1,paletteLabel:`Open Reports`},{id:`sessions`,label:`Sessions`,icon:pe,description:`Saved recon/engagement sessions`,mandatory:!1,paletteLabel:`Open Sessions`},{id:`loot`,label:`Loot`,icon:ue,description:`Captured credentials and artefacts`,mandatory:!1,paletteLabel:`Open Loot`},{id:`verify`,label:`Verify`,icon:a,description:`Evidence chain-of-custody — look up runs by hash, check session integrity`,mandatory:!1,paletteLabel:`Open Verify`},{id:`tools`,label:`Tools`,icon:le,description:`Browse and inspect available tools`,mandatory:!1,paletteLabel:`Open Tools`},{id:`workbench`,label:`Workbench`,icon:se,description:`Quick data transforms — encoding, hashing, ciphers, and more`,mandatory:!1,paletteLabel:`Open Workbench`},{id:`payload-workbench`,label:`Payload`,icon:re,description:`Generate, evade, and test attack payloads — XSS, SQLi, LFI, and more`,mandatory:!1,paletteLabel:`Open Payload Workbench`},{id:`plugins`,label:`Plugins`,icon:x,description:`Manage skill and plugin extensions`,mandatory:!1,paletteLabel:`Open Plugins`},{id:`help`,label:`Help`,icon:b,description:`Documentation and keyboard shortcuts`,mandatory:!1,paletteLabel:`Open Help`},{id:`settings`,label:`Settings`,icon:w,description:`Application settings (always visible)`,mandatory:!0,paletteLabel:`Open Settings`}],Pn=new Set($.filter(e=>e.mandatory).map(e=>e.id)),Fn=$.map(({id:e,paletteLabel:t})=>({page:e,label:t}));function In({open:e,onClose:t,setPage:n,tools:r,onSelectTool:i}){let[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(0),l=(0,V.useRef)(null),u=(0,V.useMemo)(()=>{let e=Fn.map(e=>({id:`page-${e.page}`,label:e.label,hint:`Navigation`,run:()=>{n(e.page),t()}})),a=r.slice(0,120).map(e=>({id:`tool-${e.name}`,label:`Run ${e.name}`,hint:e.category.replace(/_/g,` `),run:()=>{n(`run`),i(e),t()}}));return[...e,...a]},[r,n,i,t]),d=(0,V.useMemo)(()=>{let e=a.trim().toLowerCase();return e?u.filter(t=>`${t.label} ${t.hint}`.toLowerCase().includes(e)).slice(0,18):u.slice(0,18)},[u,a]);return(0,V.useEffect)(()=>{e&&(o(``),c(0))},[e]),Te(e,t),we(l,e),(0,V.useEffect)(()=>{if(!e)return;function t(e){if(e.key===`Escape`){e.preventDefault();return}if(e.key===`ArrowDown`){e.preventDefault(),c(e=>Math.min(e+1,Math.max(d.length-1,0)));return}if(e.key===`ArrowUp`){e.preventDefault(),c(e=>Math.max(e-1,0));return}if(e.key===`Enter`){let t=d[s];t&&(e.preventDefault(),t.run())}}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,d,s]),e?(0,Nn.createPortal)((0,Q.jsx)(`div`,{className:`sheet-backdrop sheet-backdrop--centered`,onClick:t,children:(0,Q.jsxs)(`div`,{ref:l,className:`sheet sheet--centered command-palette`,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`command-palette-input-wrap`,children:[(0,Q.jsx)(te,{size:14,"aria-hidden":`true`}),(0,Q.jsx)(`input`,{autoFocus:!0,className:`command-palette-input mono`,"aria-label":`Search commands and tools`,value:a,onChange:e=>{o(e.target.value),c(0)},placeholder:`Type a command or tool name...`})]}),(0,Q.jsxs)(`div`,{className:`command-palette-list`,children:[d.map((e,t)=>(0,Q.jsxs)(`button`,{className:`command-palette-item${t===s?` active`:``}`,onClick:e.run,children:[(0,Q.jsx)(`span`,{className:`command-palette-label`,children:e.label}),(0,Q.jsx)(`span`,{className:`command-palette-hint`,children:e.hint})]},e.id)),d.length===0&&(0,Q.jsx)(`div`,{className:`command-palette-empty`,children:`No results`})]})]})}),document.body):null}function Ln({isOpen:e,title:t,description:n,impactItems:r=[],confirmLabel:i=`Confirm`,cancelLabel:a=`Cancel`,confirmVariant:o=`danger`,isConfirming:s=!1,onConfirm:c,onClose:l}){return(0,Q.jsxs)(Ee,{isOpen:e,onClose:l,variant:`centered`,disableClose:s,className:`confirm-action-modal`,ariaLabel:t,title:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`modal-icon modal-icon--danger`,"aria-hidden":`true`,children:(0,Q.jsx)(ne,{size:14})}),(0,Q.jsx)(`span`,{className:`modal-name`,children:t})]}),children:[(0,Q.jsx)(`p`,{className:`modal-desc`,children:n}),r.length>0&&(0,Q.jsx)(`div`,{className:`confirm-action-impact`,children:r.map(e=>(0,Q.jsx)(`div`,{className:`confirm-action-impact-item`,children:e},e))}),(0,Q.jsxs)(`div`,{className:`confirm-action-buttons`,children:[(0,Q.jsx)(B,{variant:`default`,onClick:l,disabled:s,children:a}),(0,Q.jsx)(B,{variant:o,onClick:()=>{c()},disabled:s,children:s?`Working…`:i})]})]})}function Rn({sessions:e,activeSessionId:t,onSelectSession:n,onCreateSession:r,onDeleteSession:i,onDeleteAllSessions:a,onRenameSession:o}){let[s,c]=(0,V.useState)(null),[l,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(null),[h,g]=(0,V.useState)(``),_=(0,V.useRef)(null);(0,V.useEffect)(()=>{p&&_.current&&(_.current.focus(),_.current.select())},[p]);function v(e){m(e.id),g(e.name||`New chat`)}function y(){p&&h.trim()&&o(p,h.trim()),m(null)}function b(){m(null)}return(0,Q.jsxs)(`div`,{className:`chat-sidebar`,children:[(0,Q.jsxs)(`div`,{className:`chat-sidebar-header`,children:[(0,Q.jsx)(`span`,{className:`chat-sidebar-title`,children:`Chats`}),(0,Q.jsx)(`button`,{className:`chat-new-btn`,onClick:r,title:`New chat`,children:(0,Q.jsx)(u,{size:14})})]}),(0,Q.jsxs)(`div`,{className:`chat-session-list`,children:[e.length===0&&(0,Q.jsx)(`div`,{className:`chat-session-empty`,children:`No sessions yet`}),e.map(e=>(0,Q.jsxs)(`div`,{className:`chat-session-item${e.id===t?` active`:``}`,onClick:()=>{p!==e.id&&n(e.id)},onDoubleClick:t=>{t.stopPropagation(),v(e)},children:[(0,Q.jsx)(d,{size:12,className:`chat-session-icon`}),p===e.id?(0,Q.jsx)(`input`,{ref:_,className:`chat-session-rename-input`,name:`session-rename`,value:h,onChange:e=>g(e.target.value),onBlur:y,onKeyDown:e=>{e.key===`Enter`&&y(),e.key===`Escape`&&b()},onClick:e=>e.stopPropagation()}):(0,Q.jsx)(`span`,{className:`chat-session-name`,children:e.name||`New chat`}),(0,Q.jsx)(`button`,{className:`chat-session-delete`,onClick:t=>{t.stopPropagation(),c(e.id)},title:`Delete`,children:(0,Q.jsx)(P,{size:11})})]},e.id))]}),e.length>0&&(0,Q.jsx)(`div`,{className:`chat-sidebar-footer`,children:(0,Q.jsxs)(`button`,{className:`chat-delete-all-btn`,onClick:()=>f(!0),title:`Delete all chats`,children:[(0,Q.jsx)(P,{size:11}),`Delete all`]})}),(0,Q.jsx)(Ln,{isOpen:s!==null,title:`Delete chat?`,description:`This will permanently delete the chat session and all its messages.`,confirmLabel:`Delete`,confirmVariant:`danger`,onConfirm:()=>{s&&i(s),c(null)},onClose:()=>c(null)}),(0,Q.jsx)(Ln,{isOpen:l,title:`Delete all chats?`,description:`This will permanently delete all chat sessions and their messages. This cannot be undone.`,confirmLabel:`Delete all`,confirmVariant:`danger`,onConfirm:()=>{a(),f(!1)},onClose:()=>f(!1)})]})}function zn({code:e,language:t=``}){let[n,r]=(0,V.useState)(!1);function i(){navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`code-block`,children:[(0,Q.jsxs)(`div`,{className:`code-block-header`,children:[(0,Q.jsx)(`span`,{className:`code-lang mono`,children:t||`code`}),(0,Q.jsx)(`button`,{className:`icon-btn code-copy`,onClick:i,title:`Copy`,children:n?(0,Q.jsx)(O,{size:13,color:`var(--green)`}):(0,Q.jsx)(s,{size:13})})]}),(0,Q.jsx)(`pre`,{className:`code-pre mono`,children:e})]})}function Bn(e){let t=[],n=/(\*\*(.+?)\*\*|\*(.+?)\*|`([^`]+)`)/g,r=0,i,a=0;for(;(i=n.exec(e))!==null;)i.index>r&&t.push(e.slice(r,i.index)),i[2]==null?i[3]==null?i[4]!=null&&t.push((0,V.createElement)(`code`,{key:a++,className:`chat-inline-code`},i[4])):t.push((0,V.createElement)(`em`,{key:a++},i[3])):t.push((0,V.createElement)(`strong`,{key:a++},i[2])),r=i.index+i[0].length;return r0;){let t=n[r].trimEnd();if(t===e){if(c--,c===0)break;s.push(n[r])}else t.match(RegExp(`^${e}\\w+$`))&&c++,s.push(n[r]);r++}r++,t.push((0,V.createElement)(zn,{key:i++,code:s.join(` +`),language:o}));continue}if(e.match(/^[-*]\s+(.*)$/)){let e=[];for(;r `)){let e=[];for(;r `);)e.push(n[r].slice(2)),r++;t.push((0,V.createElement)(`blockquote`,{key:i++,style:{margin:`4px 0`,paddingLeft:`8px`,borderLeft:`3px solid var(--border)`,color:`var(--text-dim)`}},...e.map((e,t)=>(0,V.createElement)(`p`,{key:t,className:`chat-md-p`},Bn(e)))));continue}if(e.includes(`|`)&&e.trim().startsWith(`|`)){let e=[];for(;re.trim());t.every(e=>/^[:\-\s]+$/.test(e))||e.push(t),r++}if(e.length>0){let n=e[0],r=e.slice(1);t.push((0,V.createElement)(`table`,{key:i++,style:{fontSize:`12px`,borderCollapse:`collapse`,margin:`4px 0`,width:`100%`}},(0,V.createElement)(`thead`,null,(0,V.createElement)(`tr`,null,...n.map((e,t)=>(0,V.createElement)(`th`,{key:t,style:{textAlign:`left`,padding:`3px 6px`,borderBottom:`1px solid var(--border)`,fontWeight:600}},Bn(e))))),r.length>0?(0,V.createElement)(`tbody`,null,...r.map((e,t)=>(0,V.createElement)(`tr`,{key:t},...e.map((e,t)=>(0,V.createElement)(`td`,{key:t,style:{padding:`3px 6px`,borderBottom:`1px solid rgba(255,255,255,0.06)`}},Bn(e)))))):null))}continue}if(e.trim()===``){r++;continue}let o=e.startsWith(`# `),s=e.startsWith(`## `),c=e.startsWith(`### `);o?t.push((0,V.createElement)(`h3`,{key:i++},e.slice(2))):s?t.push((0,V.createElement)(`h4`,{key:i++},e.slice(3))):c?t.push((0,V.createElement)(`strong`,{key:i++},e.slice(4))):t.push((0,V.createElement)(`p`,{key:i++,className:`chat-md-p`},Bn(e))),r++}return(0,V.createElement)(V.Fragment,null,...t)}function Hn(e){return e?new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``}var Un=8;function Wn({text:e,variant:t}){let n=e.split(` +`).length,r=n>Un,[i,a]=(0,V.useState)(!r),[o,c]=(0,V.useState)(!1);function l(){navigator.clipboard.writeText(e).then(()=>{c(!0),setTimeout(()=>c(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`chat-tool-output-block`,children:[(0,Q.jsx)(`button`,{className:`chat-tool-output-copy`,onClick:l,title:`Copy output`,children:o?(0,Q.jsx)(O,{size:11}):(0,Q.jsx)(s,{size:11})}),(0,Q.jsx)(`pre`,{className:`chat-tool-call-${t}${r&&!i?` chat-tool-call-output--collapsed`:``}`,children:e}),r&&(0,Q.jsx)(`button`,{className:`chat-tool-output-toggle`,onClick:()=>a(e=>!e),children:i?`↑ Show less`:`↓ Show more (${n} lines)`})]})}function Gn({tc:e}){let t=Object.entries(e.arguments||{}),r=e.result,i=(r?.stdout??``).trim(),a=(r?.stderr??``).trim(),o=!!r;return(0,Q.jsxs)(`div`,{className:`chat-tool-call-card chat-tool-call-card--resolved${e.cancelled?` chat-tool-call-card--cancelled`:``}`,children:[(0,Q.jsxs)(`div`,{className:`chat-tool-call-header`,children:[(0,Q.jsx)(I,{size:12,className:`chat-tool-call-icon`}),(0,Q.jsx)(`span`,{className:`chat-tool-call-name`,children:e.tool_name.replace(/_/g,` `).toUpperCase()}),e.cancelled&&(0,Q.jsxs)(`span`,{className:`chat-tool-call-badge`,children:[(0,Q.jsx)(k,{size:10}),` Cancelled`]}),o&&(0,Q.jsx)(`span`,{className:`chat-tool-call-badge${r?.success===!1?` chat-tool-call-badge--danger`:``}`,children:r?.timed_out?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(n,{size:10}),` Timed out`]}):r?.success===!1?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(n,{size:10}),` Failed · rc:`,r?.return_code]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(v,{size:10}),` Done · `,r?.execution_time?.toFixed(2),`s`]})})]}),t.length>0&&(0,Q.jsx)(`div`,{className:`chat-tool-call-args`,children:t.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`chat-tool-call-arg`,children:[(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-key`,children:e}),(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-val`,children:String(t)})]},e))}),(i||a)&&(0,Q.jsxs)(`div`,{className:`chat-tool-call-output`,children:[i&&(0,Q.jsx)(Wn,{text:i,variant:`stdout`}),a&&(0,Q.jsx)(Wn,{text:a,variant:`stderr`})]})]})}function Kn({message:e,onConfirmTool:t}){let r=e.toolCallPending,i=r.arguments||{},a=Object.entries(i);return(0,Q.jsxs)(`div`,{className:`chat-tool-call-card`,children:[(0,Q.jsxs)(`div`,{className:`chat-tool-call-header`,children:[(0,Q.jsx)(I,{size:12,className:`chat-tool-call-icon`}),(0,Q.jsx)(`span`,{className:`chat-tool-call-name`,children:r.tool_name.replace(/_/g,` `).toUpperCase()})]}),r.description&&(0,Q.jsx)(`p`,{className:`chat-tool-call-desc`,children:r.description}),a.length>0&&(0,Q.jsx)(`div`,{className:`chat-tool-call-args`,children:a.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`chat-tool-call-arg`,children:[(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-key`,children:e}),(0,Q.jsx)(`span`,{className:`chat-tool-call-arg-val`,children:String(t)})]},e))}),(0,Q.jsxs)(`div`,{className:`chat-tool-call-warning`,children:[(0,Q.jsx)(ge,{size:11}),(0,Q.jsx)(`span`,{children:`Operator confirmation required before execution`})]}),t&&(0,Q.jsxs)(`div`,{className:`chat-tool-call-actions`,children:[(0,Q.jsxs)(`button`,{className:`chat-tool-call-btn chat-tool-call-btn--approve`,onClick:()=>t(!0),children:[(0,Q.jsx)(v,{size:12}),`Approve & Run`]}),(0,Q.jsxs)(`button`,{className:`chat-tool-call-btn chat-tool-call-btn--reject`,onClick:()=>t(!1),children:[(0,Q.jsx)(n,{size:12}),`Reject`]})]})]})}function qn({message:e,onRetry:t,onConfirmTool:n}){let r=e.role===`user`,[i,a]=(0,V.useState)(!1);function o(){navigator.clipboard.writeText(e.content).then(()=>{a(!0),setTimeout(()=>a(!1),2e3)})}return(0,Q.jsxs)(`div`,{className:`chat-message chat-message--${r?`user`:`assistant`}${e.error?` chat-message--error`:``}`,children:[(0,Q.jsxs)(`div`,{className:`chat-message-bubble${e.toolCallPending||e.toolCallResolved?` chat-message-bubble--tool`:``}`,children:[e.toolCallPending?(0,Q.jsx)(Kn,{message:e,onConfirmTool:n}):e.toolCallResolved?(0,Q.jsx)(Gn,{tc:e.toolCallResolved}):e.thinking&&e.content===``?(0,Q.jsx)(`span`,{className:`chat-thinking-indicator`,children:`Thinking…`}):e.streaming&&e.content===``?(0,Q.jsxs)(`span`,{className:`chat-typing-indicator`,children:[(0,Q.jsx)(`span`,{}),(0,Q.jsx)(`span`,{}),(0,Q.jsx)(`span`,{})]}):r?(0,Q.jsx)(`span`,{className:`chat-message-text`,children:e.content}):(0,Q.jsx)(`div`,{className:`chat-message-markdown`,children:Vn(e.content)}),e.error&&t&&(0,Q.jsx)(`button`,{className:`chat-retry-btn`,onClick:t,children:`Retry`}),!r&&!e.streaming&&!e.error&&!e.toolCallPending&&!e.toolCallResolved&&e.content&&(0,Q.jsx)(`button`,{className:`chat-copy-btn`,onClick:o,title:`Copy message`,children:i?(0,Q.jsx)(O,{size:12,color:`var(--green)`}):(0,Q.jsx)(s,{size:12})})]}),!r&&!e.streaming&&!e.toolCallPending&&!e.toolCallResolved&&(e.stats||e.timestamp)&&(0,Q.jsx)(`div`,{className:`chat-message-meta`,children:(0,Q.jsxs)(`span`,{className:`chat-message-stats`,children:[e.stats&&(0,Q.jsxs)(Q.Fragment,{children:[e.stats.eval_count,` tokens`,` · `,e.stats.tokens_per_sec,` tok/s`,` · `,e.stats.total_duration_s,`s`]}),e.stats&&e.timestamp&&` · `,e.timestamp&&Hn(e.timestamp)]})}),r&&e.timestamp&&!e.streaming&&(0,Q.jsx)(`div`,{className:`chat-message-meta`,children:(0,Q.jsx)(`span`,{className:`chat-message-time`,children:Hn(e.timestamp)})})]})}var Jn=[{label:`Nmap scan`,prompt:`Run an nmap scan on 192.168.1.1`},{label:`WHOIS lookup`,prompt:`Do a WHOIS lookup on example.com`},{label:`Subdomain enum`,prompt:`Enumerate subdomains for example.com`},{label:`SMB enumeration`,prompt:`Enumerate SMB shares on 192.168.1.1`},{label:`Web recon`,prompt:`Run a web recon on https://example.com`},{label:`Crack a hash`,prompt:`Help me crack this hash: 5f4dcc3b5aa765d61d8327deb882cf99`}],Yn=60;function Xn({messages:e,onRetry:n,onConfirmTool:r,onSuggest:i}){let a=(0,V.useRef)(null),o=(0,V.useRef)(null),[s,c]=(0,V.useState)(!0),[l,u]=(0,V.useState)(!1),d=(0,V.useCallback)(()=>{let e=a.current;return!e||e.scrollHeight-e.scrollTop-e.clientHeight{let e=a.current;if(!e)return;function t(){let e=d();c(e),e&&u(!1)}return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[d]),(0,V.useEffect)(()=>{s?o.current?.scrollIntoView({behavior:`smooth`}):u(!0)},[e,s]);function f(){o.current?.scrollIntoView({behavior:`smooth`}),c(!0),u(!1)}return(0,Q.jsxs)(`div`,{className:`chat-message-list-wrapper`,children:[(0,Q.jsxs)(`div`,{className:`chat-message-list`,ref:a,children:[e.length===0?(0,Q.jsxs)(`div`,{className:`chat-empty-state`,children:[(0,Q.jsx)(`div`,{className:`chat-empty-icon`,children:(0,Q.jsx)(de,{size:22})}),(0,Q.jsx)(`p`,{className:`chat-empty-title`,children:`NyxStrike AI`}),(0,Q.jsx)(`p`,{className:`chat-empty-sub`,children:`Run tools, analyze results, plan attacks — just ask.`}),i&&(0,Q.jsx)(`div`,{className:`chat-empty-suggestions`,children:Jn.map(e=>(0,Q.jsx)(`button`,{className:`chat-empty-chip`,onClick:()=>i(e.prompt),children:e.label},e.label))})]}):e.map(e=>(0,Q.jsx)(qn,{message:e,onRetry:e.error&&n?()=>n(e):void 0,onConfirmTool:e.toolCallPending&&r?t=>r(e.id,t):void 0},e.id)),(0,Q.jsx)(`div`,{ref:o})]}),l&&(0,Q.jsx)(`button`,{className:`chat-scroll-bottom-pill`,onClick:f,title:`Scroll to bottom`,children:(0,Q.jsx)(t,{size:14})})]})}var Zn=`👍.👎.👋.🙏.🤝.💪.🎯.🔥.✅.❌.⚠️.🚨.🛡️.🔒.🔓.🔑.💡.📌.📎.🗂️.📊.📈.🧪.🐛.🚀.⚡.💻.🖥️.🌐.📡.🔍.🕵️.😀.😂.🤔.😎.🤯.😱.👀.🎉`.split(`.`);function Qn({onSend:e,streaming:t,onStop:n,disabled:r,prefill:i}){let[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(!1),l=(0,V.useRef)(null),u=(0,V.useRef)(null);(0,V.useEffect)(()=>{i&&(o(i),requestAnimationFrame(()=>{let e=l.current;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length))}))},[i]),(0,V.useEffect)(()=>{if(!s)return;function e(e){u.current&&!u.current.contains(e.target)&&c(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]);function d(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),f())}function f(){let n=a.trim();!n||t||r||(e(n),o(``),c(!1),l.current&&(l.current.style.height=`auto`))}function p(e){o(e.target.value);let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,160)+`px`}function m(e){let t=l.current;if(t){let n=t.selectionStart,r=t.selectionEnd,i=a.slice(0,n)+e+a.slice(r);o(i),requestAnimationFrame(()=>{t.focus();let r=n+e.length;t.setSelectionRange(r,r)})}else o(t=>t+e);c(!1)}return(0,Q.jsxs)(`div`,{className:`chat-input-area`,children:[(0,Q.jsx)(`textarea`,{ref:l,className:`chat-textarea mono`,name:`chat-message`,value:a,onChange:p,onKeyDown:d,placeholder:`Message NyxStrike… (Enter to send, Shift+Enter for newline)`,rows:1,disabled:r}),(0,Q.jsxs)(`div`,{className:`chat-input-actions`,children:[(0,Q.jsxs)(`div`,{className:`chat-emoji-wrapper`,ref:u,children:[(0,Q.jsx)(`button`,{className:`chat-emoji-btn`,onClick:()=>c(e=>!e),title:`Emoji`,disabled:r,children:(0,Q.jsx)(me,{size:14})}),s&&(0,Q.jsx)(`div`,{className:`chat-emoji-picker`,children:Zn.map(e=>(0,Q.jsx)(`button`,{className:`chat-emoji-item`,onClick:()=>m(e),children:e},e))})]}),t?(0,Q.jsx)(`button`,{className:`chat-send-btn chat-stop-btn`,onClick:n,title:`Stop`,children:(0,Q.jsx)(ee,{size:14})}):(0,Q.jsx)(`button`,{className:`chat-send-btn`,onClick:f,disabled:!a.trim()||r,title:`Send`,children:(0,Q.jsx)(S,{size:14})})]})]})}function $n(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(!0),i=(0,V.useCallback)(async()=>{r(!0);try{let e=await Z.chat.listSessions();e.success&&t(e.sessions)}catch{}finally{r(!1)}},[]);(0,V.useEffect)(()=>{i()},[i]);async function a(){try{let e=await Z.chat.createSession();if(e.success)return t(t=>[e.session,...t]),e.session}catch{}return null}async function o(e){try{await Z.chat.deleteSession(e),t(t=>t.filter(t=>t.id!==e))}catch{}}async function s(){let n=e.map(e=>e.id);await Promise.allSettled(n.map(e=>Z.chat.deleteSession(e))),t([])}function c(e,n){t(t=>t.map(t=>t.id===e?{...t,name:n}:t))}async function l(e,n){try{await Z.chat.renameSession(e,n),t(t=>t.map(t=>t.id===e?{...t,name:n}:t))}catch{}}return{sessions:e,loading:n,createSession:a,deleteSession:o,deleteAllSessions:s,updateSessionName:c,renameSession:l,reload:i}}function er(){return sessionStorage.getItem(`nyxstrike_token`)}var tr=[500,1e3,2e3,4e3];function nr(){return new Date().toISOString()}function rr(e){let t=e.match(/^\[Tool call cancelled by operator:\s*([^\]]+)\]/);if(t)return{tool_name:t[1].trim(),cancelled:!0};let n=e.match(/^\[Tool call requested:\s*\*\*([^*]+)\*\*\]/);if(n){let t={},r=e.match(/Arguments:\s*`([^`]+)`/);if(r)try{t=JSON.parse(r[1])}catch{}return{tool_name:n[1].trim(),arguments:t,cancelled:!1}}let r=e.match(/^\[Tool executed:\s*\*\*([^*]+)\*\*\]/);if(r){let t={},n=e.match(/Arguments:\s*`([^`]+)`/);if(n)try{t=JSON.parse(n[1])}catch{}let i={},a=e.match(/```json\n([\s\S]+?)\n```/);if(a)try{let e=JSON.parse(a[1]);i={stdout:e.stdout??``,stderr:e.stderr??``,execution_time:e.execution_time,return_code:e.return_code,success:e.success,timed_out:e.timed_out}}catch{}return{tool_name:r[1].trim(),arguments:t,cancelled:!1,result:i}}return null}function ir(e){let[t,n]=(0,V.useState)([]),[r,i]=(0,V.useState)(!1),a=(0,V.useRef)(null),o=(0,V.useCallback)(async e=>{try{let t=await Z.chat.getMessages(e);t.success&&n(t.messages.map(e=>{let t=e.role===`assistant`?rr(e.content):null;return{id:String(e.id),role:e.role,content:t?``:e.content,timestamp:e.created_at,...e.stats?{stats:JSON.parse(e.stats)}:{},...t?{toolCallResolved:t}:{}}}))}catch{}},[]),s=(0,V.useCallback)(async(e,t)=>{if(!e.body)throw Error(`No response body`);let r=e.body.getReader(),a=new TextDecoder,o=``;for(;;){let{done:e,value:s}=await r.read();if(e)break;o+=a.decode(s,{stream:!0});let c=o.split(` + +`);o=c.pop()??``;for(let e of c){let r=e.trim();if(!r.startsWith(`data: `))continue;let a=r.slice(6);if(a===`[DONE]`)return n(e=>e.map(e=>e.id===t?{...e,streaming:!1,thinking:!1}:e)),i(!1),`done`;if(a===`[THINKING]`){n(e=>e.map(e=>e.id===t?{...e,thinking:!0}:e));continue}if(a.startsWith(`[STATS]`)){try{let e=JSON.parse(a.slice(7).trim());n(n=>n.map(n=>n.id===t?{...n,stats:e}:n))}catch{}continue}if(a.startsWith(`[ERROR]`)){let e=a.slice(7).trim();return n(n=>n.map(n=>n.id===t?{...n,content:e,streaming:!1,thinking:!1,error:!0}:n)),i(!1),`done`}if(a.startsWith(`[TOOL_CALL_PENDING]`)){try{let e=JSON.parse(a.slice(19).trim());n(n=>n.map(n=>n.id===t?{...n,content:``,streaming:!1,thinking:!1,toolCallPending:e}:n))}catch{}return i(!1),`tool_pending`}try{let e=JSON.parse(a);n(n=>n.map(n=>n.id===t?{...n,content:n.content+e,thinking:!1}:n))}catch{}}}return n(e=>e.map(e=>e.id===t?{...e,streaming:!1,thinking:!1}:e)),i(!1),`done`},[]),c=(0,V.useCallback)(async(t,o,l=0)=>{if(!e||r)return;let u=`user-${Date.now()}-${Math.random().toString(36).slice(2)}`;n(e=>[...e,{id:u,role:`user`,content:t,timestamp:nr()}]);let d=`assistant-${Date.now()}-${Math.random().toString(36).slice(2)}`;n(e=>[...e,{id:d,role:`assistant`,content:``,streaming:!0,timestamp:nr()}]),i(!0);let f=new AbortController;a.current=f;let p={"Content-Type":`application/json`},m=er();m&&(p.Authorization=`Bearer ${m}`);try{let n=await fetch(`/api/chat/sessions/${e}/message`,{method:`POST`,headers:p,body:JSON.stringify({message:t,context:o}),signal:f.signal});if(!n.ok||!n.body)throw Error(`HTTP ${n.status}`);await s(n,d)}catch(e){if(e instanceof Error&&e.name===`AbortError`){n(e=>e.map(e=>e.id===d?{...e,streaming:!1,thinking:!1}:e)),i(!1);return}if(lt.map(t=>t.id===d?{...t,content:`Connection error, retrying in ${e/1e3}s…`,streaming:!0,thinking:!1}:t)),await new Promise(t=>setTimeout(t,e)),n(e=>e.filter(e=>e.id!==d&&e.id!==u)),i(!1),c(t,o,l+1);return}n(e=>e.map(e=>e.id===d?{...e,content:`Failed to connect after multiple retries.`,streaming:!1,thinking:!1,error:!0}:e)),i(!1)}},[e,r,s]),l=(0,V.useCallback)(async(t,a)=>{if(!e||r)return;n(e=>e.map(e=>e.id===t?{...e,toolCallPending:void 0,streaming:a,thinking:a,content:``}:e)),a&&i(!0);let o={"Content-Type":`application/json`},c=er();c&&(o.Authorization=`Bearer ${c}`);try{let n=await fetch(`/api/chat/sessions/${e}/tool-confirm`,{method:`POST`,headers:o,body:JSON.stringify({approved:a})});if(!n.ok||!n.body)throw Error(`HTTP ${n.status}`);await s(n,t)}catch(e){let r=e instanceof Error?e.message:String(e);n(e=>e.map(e=>e.id===t?{...e,content:`Error: ${r}`,streaming:!1,thinking:!1,error:!0}:e)),i(!1)}},[e,r,s]);function u(){a.current?.abort()}function d(){n([])}function f(e,t){n(e=>e[e.length-1]?.error?e.slice(0,-2):e),setTimeout(()=>c(e,t),0)}return{messages:t,streaming:r,send:c,stop:u,loadHistory:o,clearMessages:d,addRetryMessage:f,confirmToolCall:l}}var ar=`nyxstrike_chat_open`,or=`nyxstrike_chat_size`,sr=280,cr=350;function lr(){try{return localStorage.getItem(ar)===`1`}catch{return!1}}function ur(e){try{localStorage.setItem(ar,e?`1`:`0`)}catch{}}function dr(){try{let e=JSON.parse(localStorage.getItem(or)||`{}`);return{w:Number(e.w)||460,h:Number(e.h)||520}}catch{return{w:460,h:520}}}function fr(e,t){try{localStorage.setItem(or,JSON.stringify({w:e,h:t}))}catch{}}function pr({llmAvailable:e,currentPage:n,currentSessionId:r}){let[i,a]=(0,V.useState)(lr),[o,s]=(0,V.useState)(dr),[c,l]=(0,V.useState)(!1),[u,p]=(0,V.useState)(null),[m,h]=(0,V.useState)(``),{sessions:g,loading:_,createSession:v,deleteSession:y,deleteAllSessions:b,updateSessionName:x,renameSession:S}=$n(),{messages:C,streaming:w,send:T,stop:E,loadHistory:O,clearMessages:k,confirmToolCall:A}=ir(u),j=(0,V.useRef)(null),M=(0,V.useRef)(!1);(0,V.useEffect)(()=>{function e(e){e.ctrlKey&&e.shiftKey&&e.key.toLowerCase()===`c`&&(e.preventDefault(),a(e=>(ur(!e),!e)))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,V.useEffect)(()=>{_||(!u&&g.length>0?p(g[0].id):!u&&g.length===0&&!M.current&&(M.current=!0,N()))},[g,u,_]),(0,V.useEffect)(()=>{u&&(k(),O(u))},[u]);async function N(){let e=await v();e?(p(e.id),k()):M.current=!1}async function P(e){if(await y(e),u===e){let t=g.filter(t=>t.id!==e);t.length>0?p(t[0].id):(p(null),k())}}async function F(){await b(),p(null),k()}function I(e){if(!u)return;let t={page:n,session_id:r||``},i=g.find(e=>e.id===u);i&&!i.name&&x(u,e.slice(0,50)),T(e,t)}function ee(e){let t=C.indexOf(e);if(t>0&&C[t-1].role===`user`){let e=C[t-1].content;T(e,{page:n,session_id:r||``})}}let L=(0,V.useRef)(null),R=(0,V.useCallback)(e=>t=>{t.preventDefault(),L.current={edge:e,startX:t.clientX,startY:t.clientY,startW:o.w,startH:o.h}},[o]);(0,V.useEffect)(()=>{function e(e){let t=L.current;if(!t)return;let{w:n,h:r}={w:t.startW,h:t.startH};t.edge===`top`?r=Math.max(cr,t.startH+(t.startY-e.clientY)):n=Math.max(sr,t.startW+(t.startX-e.clientX)),s({w:n,h:r}),fr(n,r)}function t(){L.current=null}return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]);function z(){a(e=>(ur(!e),!e))}if(!e)return null;let te=g.find(e=>e.id===u)?.name||(u?`New chat`:`Starting…`);return(0,Q.jsxs)(Q.Fragment,{children:[!i&&(0,Q.jsxs)(`button`,{className:`chat-fab`,onClick:z,title:`Open chat (Ctrl+Shift+C)`,"aria-label":`Open NyxStrike chat`,children:[(0,Q.jsx)(d,{size:14}),`AI Assistant`]}),i&&(0,Q.jsxs)(`div`,{ref:j,className:`chat-widget`,role:`dialog`,"aria-modal":`false`,"aria-label":`NyxStrike AI chat`,style:{width:o.w,height:o.h},children:[(0,Q.jsx)(`div`,{className:`chat-resize-top`,onMouseDown:R(`top`)}),(0,Q.jsx)(`div`,{className:`chat-resize-left`,onMouseDown:R(`left`)}),(0,Q.jsxs)(`div`,{className:`chat-layout`,children:[c&&(0,Q.jsx)(Rn,{sessions:g,activeSessionId:u,onSelectSession:e=>{p(e)},onCreateSession:N,onDeleteSession:P,onDeleteAllSessions:F,onRenameSession:S}),(0,Q.jsxs)(`div`,{className:`chat-main`,children:[(0,Q.jsxs)(`div`,{className:`chat-header`,children:[(0,Q.jsx)(`button`,{className:`chat-sidebar-toggle`,onClick:()=>l(e=>!e),title:c?`Hide sessions`:`Show sessions`,"aria-label":c?`Hide sessions`:`Show sessions`,children:c?(0,Q.jsx)(f,{size:14}):(0,Q.jsx)(D,{size:14})}),(0,Q.jsxs)(`button`,{type:`button`,className:`chat-header-info`,onClick:z,title:`Collapse chat`,children:[(0,Q.jsx)(`span`,{className:`chat-header-title`,children:`NyxStrike AI`}),r&&n===`session-detail`&&(0,Q.jsx)(`span`,{className:`chat-context-badge`,children:`context: session`}),(0,Q.jsx)(`span`,{className:`chat-session-label mono`,children:te})]}),(0,Q.jsx)(`button`,{className:`chat-close-btn`,onClick:z,title:`Close`,"aria-label":`Close chat`,children:(0,Q.jsx)(t,{size:14})})]}),(0,Q.jsx)(Xn,{messages:C,onRetry:ee,onConfirmTool:A,onSuggest:h}),(0,Q.jsx)(Qn,{onSend:I,streaming:w,onStop:E,disabled:!u,prefill:m})]})]})]})]})}var mr=Pn,hr=$.map(({id:e,label:t,description:n})=>({page:e,label:t,description:n})),gr=`nyxstrike_disabled_pages`,_r=`nyxstrike_page_order`,vr=$.filter(e=>!e.mandatory).map(e=>e.id);function yr(e){let t=new Set(vr),n=e.filter(e=>t.has(e)),r=vr.filter(e=>!n.includes(e));return[...n,...r]}function br(){let[e,t]=yt(gr,[]),[n,r]=yt(_r,[]);function i(t){return mr.has(t)?!0:!e.includes(t)}function a(e){mr.has(e)||t(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}let o=yr(n);function s(e,t){let i=yr(n),a=i.indexOf(e),o=i.indexOf(t);if(a===-1||o===-1||a===o)return;let s=[...i];s.splice(a,1),s.splice(o,0,e),r(s)}return{disabledPages:e,isPageEnabled:i,togglePage:a,orderedPageConfigs:o.map(e=>hr.find(t=>t.page===e)).filter(e=>!!e),orderedNavEntries:[...$.filter(e=>e.mandatory),...o.map(e=>$.find(t=>t.id===e)).filter(e=>!!e)],reorderPage:s}}function xr(){let[e]=(0,V.useState)(H),{isPageEnabled:t,togglePage:n,orderedPageConfigs:r,orderedNavEntries:i,reorderPage:a}=br(),{page:o,activeSessionId:s,activeToolName:c,activeWorkbenchOperationId:l,activeWorkbenchRecipe:u,activeWorkbenchInput:d,activePayloadWorkbenchOperationId:f,sidebarMobileOpen:p,setSidebarMobileOpen:m,setPage:h,openSessionDetail:g,setActiveToolName:_,setActiveWorkbenchOperationId:v,setActiveWorkbenchRecipe:y,setActivePayloadWorkbenchOperationId:b,openWorkbench:x}=Cn(t),[S,C]=yt(`nyxstrike_sidebar_collapsed`,!1);Te(p,()=>m(!1));let{logLines:w,logAutoScroll:T,setLogAutoScroll:E,logLimit:D,setLogLimit:O,logEndRef:k,applyDemoLogLines:A}=wn({demo:e,page:o}),{authed:j,needsAuth:M,setAuthed:N,setNeedsAuth:P}=Dn({demo:e,onProbeSuccess:e=>ae(e),onLoadingDone:()=>oe()}),{health:F,tools:I,lastRefresh:ee,loading:L,error:R,isStreaming:z,streamingError:te,toolCategories:ne,fetchAll:re,applyDemoSnapshot:ie,onProbeSuccess:ae,onProbeLoadingDone:oe}=jn({demo:e,authed:j,onUnauthorized:()=>{P(!0),N(!1)}}),{runHistory:ce,setRunHistory:le,addBrowserRunEntry:ue,fetchServerRunHistory:de,clearServerRunHistory:fe}=kn(e,j),{demoProcesses:pe,demoSessions:me,demoCpuHistory:he}=Mn({demo:e,onSnapshot:ie,onRunHistory:le,onLogLines:A}),{paletteOpen:ge,commandToolRequest:_e,clearCommandToolRequest:ve,showPaletteHint:ye,dismissPaletteHint:be,openCommandPalette:xe,closeCommandPalette:Se,handleCommandSelectTool:Ce}=En(h),{themeId:B,setThemeId:we,reduceTextureEffects:Ee,setReduceTextureEffects:De}=vn();if(M&&!j)return(0,Q.jsx)(ze,{onUnlocked:()=>{N(!0),P(!1)}});let U=Ue(I,F?.tools_status??{});return(0,Q.jsx)(Ve,{children:(0,Q.jsxs)(`div`,{className:e?`layout layout--demo`:`layout`,children:[(0,Q.jsx)(In,{open:ge,onClose:Se,setPage:h,tools:I,onSelectTool:Ce}),(0,Q.jsx)(pr,{llmAvailable:F?.llm_status?.available??!1,currentPage:o,currentSessionId:s}),e&&(0,Q.jsxs)(`div`,{className:`demo-banner`,children:[(0,Q.jsx)(se,{size:13}),(0,Q.jsx)(`span`,{children:`Demo mode — all data is synthetic`}),(0,Q.jsx)(`button`,{onClick:()=>{Oe(),window.location.href=window.location.pathname+window.location.hash},children:`Exit demo`})]}),(0,Q.jsx)(ft,{lastRefresh:ee,demo:e,isStreaming:z,streamingError:te,health:F,error:R,loading:L,fetchAll:re,themeId:B,setThemeId:we,reduceTextureEffects:Ee,setReduceTextureEffects:De,onOpenCommandPalette:xe,onSignOut:()=>{N(!1),P(!0)},onToggleMobileSidebar:()=>m(e=>!e)}),ye&&(0,Q.jsxs)(`div`,{className:`palette-hint-floating`,role:`status`,"aria-live":`polite`,children:[(0,Q.jsxs)(`button`,{className:`palette-hint-main`,onClick:xe,title:`Open command palette`,children:[(0,Q.jsx)(`span`,{className:`palette-hint-title`,children:`Try Command Palette`}),(0,Q.jsx)(`span`,{className:`palette-hint-kbd mono`,children:`Ctrl/Cmd + K`})]}),(0,Q.jsx)(`button`,{className:`palette-hint-close`,onClick:be,title:`Dismiss hint`,children:`x`})]}),(0,Q.jsxs)(`div`,{className:`app-body`,style:{"--sidebar-w":S?`3.25rem`:`13rem`},children:[(0,Q.jsx)(gt,{page:o,setPage:h,isPageEnabled:t,navEntries:i,collapsed:S,onToggleCollapsed:()=>C(e=>!e),mobileOpen:p,onCloseMobile:()=>m(!1)}),p&&(0,Q.jsx)(`div`,{className:`sidebar-backdrop`,onClick:()=>m(!1)}),(0,Q.jsx)(_n,{page:o,demo:e,tools:I,health:F,toolsStatusWithParents:U,runHistory:ce,setRunHistory:le,fetchServerRunHistory:de,clearServerRunHistory:fe,commandToolRequest:_e,onCommandToolHandled:ve,urlToolName:c,onToolSelected:_,urlWorkbenchOperationId:l,onWorkbenchOperationSelected:v,urlWorkbenchRecipe:u,onWorkbenchRecipeChanged:y,urlWorkbenchInput:d,onOpenInWorkbench:x,urlPayloadWorkbenchOperationId:f,onPayloadWorkbenchOperationSelected:b,openSessionDetail:g,activeSessionId:s,setPage:h,addBrowserRunEntry:ue,logLines:w,logAutoScroll:T,setLogAutoScroll:E,logLimit:D,setLogLimit:O,logEndRef:k,loading:L,error:R,toolCategories:ne,themeId:B,setThemeId:we,reduceTextureEffects:Ee,setReduceTextureEffects:De,demoProcesses:pe,demoSessions:me,isPageEnabled:t,togglePage:n,orderedPageConfigs:r,reorderPage:a,demoCpuHistory:he})]})]})})}(0,De.createRoot)(document.getElementById(`root`)).render((0,Q.jsx)(V.StrictMode,{children:(0,Q.jsx)(xr,{})}));export{Oe as C,X as S,Ye as _,Dt as a,He as b,wt as c,vt as d,_t as f,rt as g,at as h,Ft as i,xt as l,it as m,Ln as n,St as o,ct as p,It as r,Ct as s,zn as t,yt as u,Je as v,H as w,Z as x,Ke as y}; \ No newline at end of file diff --git a/frontend/dashboard/assets/rolldown-runtime-Dd_uD5pT.js b/frontend/dashboard/assets/rolldown-runtime-Dd_uD5pT.js new file mode 100644 index 000000000..a9a02a361 --- /dev/null +++ b/frontend/dashboard/assets/rolldown-runtime-Dd_uD5pT.js @@ -0,0 +1 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),u=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});export{l as i,s as n,u as r,o as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/rolldown-runtime-aKtaBQYM.js b/frontend/dashboard/assets/rolldown-runtime-aKtaBQYM.js deleted file mode 100644 index 8e7d30717..000000000 --- a/frontend/dashboard/assets/rolldown-runtime-aKtaBQYM.js +++ /dev/null @@ -1 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});export{l as i,s as n,u as r,o as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/shared-BFigPD4i.js b/frontend/dashboard/assets/shared-BFigPD4i.js new file mode 100644 index 000000000..77fd838ee --- /dev/null +++ b/frontend/dashboard/assets/shared-BFigPD4i.js @@ -0,0 +1 @@ +import{r as e}from"./vendor-markdown-BanIOC5U.js";function t(e,t,n){let r=e.toLowerCase();if(r===`session_id`&&n)return n;if(r===`target`||r===`host`||r===`query`)return t;if(r===`url`||r===`endpoint`)return t.startsWith(`http://`)||t.startsWith(`https://`)?t:`https://${t}`;if(r===`domain`)return t.replace(/^https?:\/\//,``).replace(/\/.*/,``)}function n(e,n,r,i){let a={},o=n.parameters??{};for(let n of Object.keys(e.params)){let e=o[n];if(e!=null&&String(e).trim()!==``){a[n]=String(e);continue}a[n]=t(n,r,i)??``}for(let[t,n]of Object.entries(e.optional)){let e=o[t];a[t]=String(e??n)}return a}function r(e,t){let n=Object.keys(e.params),r=n.filter(e=>!t[e]?.trim()),i={};if(r.length>0)return{payload:i,missing:r};for(let e of n)i[e]=t[e].trim();for(let[n,r]of Object.entries(e.optional)){let e=t[n];e!==void 0&&e!==``&&(i[n]=typeof r==`boolean`?e===`true`:e)}return{payload:i,missing:r}}var i=e();function a({name:e,value:t,onChange:n,required:r,disabled:a,isBoolean:o}){function s(e){n(e.target.value)}function c(e){n(e.target.checked?`true`:`false`)}return o?(0,i.jsxs)(`div`,{className:`run-field run-field--bool`,children:[(0,i.jsx)(`label`,{className:`run-field-label mono`,children:e}),(0,i.jsxs)(`label`,{className:`run-field-toggle`,children:[(0,i.jsx)(`input`,{type:`checkbox`,name:e,checked:t===`true`,onChange:c,disabled:a}),(0,i.jsx)(`span`,{className:`run-field-toggle-track`,children:(0,i.jsx)(`span`,{className:`run-field-toggle-thumb`})})]})]}):(0,i.jsxs)(`div`,{className:`run-field`,children:[(0,i.jsxs)(`label`,{className:`run-field-label mono`,children:[e,r&&(0,i.jsx)(`span`,{className:`run-required`,children:`*`})]}),(0,i.jsx)(`input`,{className:`run-field-input mono`,name:e,value:t,onChange:s,placeholder:r?`required`:`optional`,disabled:a})]})}export{t as i,n,r,a as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/shared-ByqnucHJ.css b/frontend/dashboard/assets/shared-ByqnucHJ.css new file mode 100644 index 000000000..1b8afa985 --- /dev/null +++ b/frontend/dashboard/assets/shared-ByqnucHJ.css @@ -0,0 +1 @@ +.run-field{flex-direction:column;gap:4px;display:flex}.run-field-label{color:var(--text);align-items:center;gap:4px;font-size:12px;display:flex}.run-required{color:var(--amber);font-weight:700}.run-field-input{background:var(--bg);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;padding:7px 10px;font-size:12px;transition:border-color .15s}.run-field-input:focus{border-color:var(--green)}.run-field-input::placeholder{color:var(--text-dim)}.run-field-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;width:fit-content;height:32px;display:inline-flex}.run-field-toggle input[type=checkbox]{display:none}.run-field-toggle-track{background:var(--border);border-radius:9px;flex-shrink:0;width:34px;height:18px;transition:background .2s;position:relative}.run-field-toggle input:checked+.run-field-toggle-track{background:var(--green)}.run-field-toggle-thumb{background:var(--bg-surface,#fff);border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:2px;left:2px}.run-field-toggle input:checked+.run-field-toggle-track .run-field-toggle-thumb{transform:translate(16px)}.run-opt-btn{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:5px;width:fit-content;padding:5px 10px;font-size:12px;transition:color .12s,border-color .12s;display:inline-flex}.run-opt-btn:hover{color:var(--text);border-color:var(--text-dim)}.run-topology-toggle{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;width:fit-content;font-size:12px;display:inline-flex}.run-topology-toggle input{cursor:pointer}.run-error{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent);border:1px solid color-mix(in srgb, var(--red) 25%, transparent);border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex} diff --git a/frontend/dashboard/assets/shared-CjcIAkCZ.js b/frontend/dashboard/assets/shared-CjcIAkCZ.js deleted file mode 100644 index 36d98eebf..000000000 --- a/frontend/dashboard/assets/shared-CjcIAkCZ.js +++ /dev/null @@ -1 +0,0 @@ -import{r as e}from"./vendor-markdown-CZSHC-G5.js";function t(e,t,n){let r=e.toLowerCase();if(r===`session_id`&&n)return n;if(r===`target`||r===`host`||r===`query`)return t;if(r===`url`||r===`endpoint`)return t.startsWith(`http://`)||t.startsWith(`https://`)?t:`https://${t}`;if(r===`domain`)return t.replace(/^https?:\/\//,``).replace(/\/.*/,``)}function n(e,n,r,i){let a={},o=n.parameters??{};for(let n of Object.keys(e.params)){let e=o[n];if(e!=null&&String(e).trim()!==``){a[n]=String(e);continue}a[n]=t(n,r,i)??``}for(let[t,n]of Object.entries(e.optional)){let e=o[t];a[t]=String(e??n)}return a}function r(e,t){let n=Object.keys(e.params),r=n.filter(e=>!t[e]?.trim()),i={};if(r.length>0)return{payload:i,missing:r};for(let e of n)i[e]=t[e].trim();for(let n of Object.keys(e.optional)){let e=t[n];e!==void 0&&e!==``&&(i[n]=e)}return{payload:i,missing:r}}var i=e();function a({name:e,value:t,onChange:n,required:r,disabled:a}){function o(e){n(e.target.value)}return(0,i.jsxs)(`div`,{className:`run-field`,children:[(0,i.jsxs)(`label`,{className:`run-field-label mono`,children:[e,r&&(0,i.jsx)(`span`,{className:`run-required`,children:`*`})]}),(0,i.jsx)(`input`,{className:`run-field-input mono`,name:e,value:t,onChange:o,placeholder:r?`required`:`optional`,disabled:a})]})}export{t as i,n,r,a as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/shared-zCkrL4PB.css b/frontend/dashboard/assets/shared-zCkrL4PB.css deleted file mode 100644 index 3ccf12359..000000000 --- a/frontend/dashboard/assets/shared-zCkrL4PB.css +++ /dev/null @@ -1 +0,0 @@ -.run-field{flex-direction:column;gap:4px;display:flex}.run-field-label{color:var(--text);align-items:center;gap:4px;font-size:12px;display:flex}.run-required{color:var(--amber);font-weight:700}.run-field-input{background:var(--bg);border:1px solid var(--border);color:var(--text-h);border-radius:6px;outline:none;padding:7px 10px;font-size:12px;transition:border-color .15s}.run-field-input:focus{border-color:var(--green)}.run-field-input::placeholder{color:var(--text-dim)}.run-opt-btn{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:5px;width:fit-content;padding:5px 10px;font-size:12px;transition:color .12s,border-color .12s;display:inline-flex}.run-opt-btn:hover{color:var(--text);border-color:var(--text-dim)}.run-topology-toggle{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;width:fit-content;font-size:12px;display:inline-flex}.run-topology-toggle input{cursor:pointer}.run-error{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent);border:1px solid color-mix(in srgb, var(--red) 25%, transparent);border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex} diff --git a/frontend/dashboard/assets/toolUtils-BC7D6IRC.js b/frontend/dashboard/assets/toolUtils-BC7D6IRC.js deleted file mode 100644 index d394a2ce3..000000000 --- a/frontend/dashboard/assets/toolUtils-BC7D6IRC.js +++ /dev/null @@ -1 +0,0 @@ -function e(e){return[`all`,...Array.from(new Set(e.map(e=>e.category))).sort()]}function t(e,t){let n=t.search.toLowerCase();return e.filter(e=>t.requireAvailable&&t.toolsStatus?.[e.name]!==!0||!(t.activeCategory===`all`||e.category===t.activeCategory)||!(!n||e.name.includes(n)||e.desc.toLowerCase().includes(n)||t.includeParentToolSearch&&e.parent_tool?.toLowerCase().includes(n))?!1:!t.missingOnly||t.toolsStatus?.[e.name]===!1).sort((e,t)=>e.name.localeCompare(t.name))}export{e as n,t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/toolUtils-CYt55nd9.js b/frontend/dashboard/assets/toolUtils-CYt55nd9.js new file mode 100644 index 000000000..e0e8b986c --- /dev/null +++ b/frontend/dashboard/assets/toolUtils-CYt55nd9.js @@ -0,0 +1 @@ +function e(e){return[`all`,...Array.from(new Set(e.map(e=>e.category))).sort()]}function t(e,t){let n=t.search.toLowerCase();return e.filter(e=>t.requireAvailable&&t.toolsStatus?.[e.name]!==!0||t.activeCategory!==`all`&&e.category!==t.activeCategory||!(!n||e.name.includes(n)||e.desc.toLowerCase().includes(n)||t.includeParentToolSearch&&e.parent_tool?.toLowerCase().includes(n))?!1:!t.missingOnly||t.toolsStatus?.[e.name]===!1).sort((e,t)=>e.name.localeCompare(t.name))}export{e as n,t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-lucide-DUPkM7me.js b/frontend/dashboard/assets/vendor-lucide-DUPkM7me.js new file mode 100644 index 000000000..0ea48cdb6 --- /dev/null +++ b/frontend/dashboard/assets/vendor-lucide-DUPkM7me.js @@ -0,0 +1 @@ +import{i as e,t}from"./rolldown-runtime-Dd_uD5pT.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`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`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=n()})),i=e(r()),a=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),o=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),s=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),c=e=>{let t=s(e);return t.charAt(0).toUpperCase()+t.slice(1)},l={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`},u=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},d=(0,i.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o=``,children:s,iconNode:c,...d},f)=>(0,i.createElement)(`svg`,{ref:f,...l,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:a(`lucide`,o),...!s&&!u(d)&&{"aria-hidden":`true`},...d},[...c.map(([e,t])=>(0,i.createElement)(e,t)),...Array.isArray(s)?s:[s]])),f=(e,t)=>{let n=(0,i.forwardRef)(({className:n,...r},s)=>(0,i.createElement)(d,{ref:s,iconNode:t,className:a(`lucide-${o(c(e))}`,`lucide-${e}`,n),...r}));return n.displayName=c(e),n},p=f(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),m=f(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),h=f(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),g=f(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),_=f(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),v=f(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]),y=f(`bot`,[[`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`}]]),b=f(`box`,[[`path`,{d:`M21 8a2 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.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),x=f(`brain`,[[`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`}]]),S=f(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]),C=f(`chart-no-axes-column`,[[`path`,{d:`M5 21v-6`,key:`1hz6c0`}],[`path`,{d:`M12 21V3`,key:`1lcnhd`}],[`path`,{d:`M19 21V9`,key:`unv183`}]]),w=f(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),T=f(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),E=f(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),D=f(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),O=f(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),k=f(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),A=f(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),j=f(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),M=f(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),N=f(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),P=f(`circle-pause`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`,key:`c1nkhi`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`,key:`h65svq`}]]),F=f(`circle-play`,[[`path`,{d:`M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z`,key:`kmsa83`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),I=f(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),L=f(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),ee=f(`circle-x`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),te=f(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),R=f(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),z=f(`copy`,[[`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`}]]),B=f(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),V=f(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),H=f(`database`,[[`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`}]]),U=f(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),W=f(`download`,[[`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`}]]),G=f(`earth`,[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),K=f(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),q=f(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),J=f(`eye`,[[`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`}]]),Y=f(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),X=f(`file-text`,[[`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`}]]),Z=f(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),Q=f(`flag`,[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]),ne=f(`flask-conical`,[[`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`}]]),re=f(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),ie=f(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),ae=f(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),oe=f(`git-compare`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]),se=f(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),ce=f(`hard-drive-download`,[[`path`,{d:`M12 2v8`,key:`1q4o3n`}],[`path`,{d:`m16 6-4 4-4-4`,key:`6wukr`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M10 18h.01`,key:`h775k`}]]),le=f(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),ue=f(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),de=f(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),fe=f(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),pe=f(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),me=f(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),he=f(`layout-dashboard`,[[`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`}]]),ge=f(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),_e=f(`list-plus`,[[`path`,{d:`M16 5H3`,key:`m91uny`}],[`path`,{d:`M11 12H3`,key:`51ecnj`}],[`path`,{d:`M16 19H3`,key:`zzsher`}],[`path`,{d:`M18 9v6`,key:`1twb98`}],[`path`,{d:`M21 12h-6`,key:`bt1uis`}]]),ve=f(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),ye=f(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),be=f(`loader`,[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]]),xe=f(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),Se=f(`memory-stick`,[[`path`,{d:`M12 12v-2`,key:`fwoke6`}],[`path`,{d:`M12 18v-2`,key:`qj6yno`}],[`path`,{d:`M16 12v-2`,key:`heuere`}],[`path`,{d:`M16 18v-2`,key:`s1ct0w`}],[`path`,{d:`M2 11h1.5`,key:`15p63e`}],[`path`,{d:`M20 18v-2`,key:`12ehxp`}],[`path`,{d:`M20.5 11H22`,key:`khsy7a`}],[`path`,{d:`M4 18v-2`,key:`1c3oqr`}],[`path`,{d:`M8 12v-2`,key:`1mwtfd`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`rect`,{x:`2`,y:`6`,width:`20`,height:`10`,rx:`2`,key:`1qcswk`}]]),Ce=f(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),we=f(`message-square`,[[`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`}]]),Te=f(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),Ee=f(`package`,[[`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`}]]),De=f(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),Oe=f(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),ke=f(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),Ae=f(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),je=f(`pen`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),Me=f(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Ne=f(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Pe=f(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Fe=f(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Ie=f(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),Le=f(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Re=f(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),ze=f(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),Be=f(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Ve=f(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),He=f(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ue=f(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),We=f(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ge=f(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),Ke=f(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),qe=f(`shield-question-mark`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Je=f(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Ye=f(`skip-forward`,[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]),Xe=f(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Ze=f(`smile`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 14s1.5 2 4 2 4-2 4-2`,key:`1y1vjs`}],[`line`,{x1:`9`,x2:`9.01`,y1:`9`,y2:`9`,key:`yxxnd0`}],[`line`,{x1:`15`,x2:`15.01`,y1:`9`,y2:`9`,key:`1p4y9e`}]]),Qe=f(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),$e=f(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),et=f(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),tt=f(`syringe`,[[`path`,{d:`m18 2 4 4`,key:`22kx64`}],[`path`,{d:`m17 7 3-3`,key:`1w1zoj`}],[`path`,{d:`M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5`,key:`1exhtz`}],[`path`,{d:`m9 11 4 4`,key:`rovt3i`}],[`path`,{d:`m5 19-3 3`,key:`59f2uf`}],[`path`,{d:`m14 4 6 6`,key:`yqp9t2`}]]),$=f(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),nt=f(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),rt=f(`trash-2`,[[`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`}]]),it=f(`trending-up`,[[`path`,{d:`M16 7h6v6`,key:`box55l`}],[`path`,{d:`m22 7-8.5 8.5-5-5L2 17`,key:`1t1m79`}]]),at=f(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ot=f(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),st=f(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),ct=f(`wand`,[[`path`,{d:`M15 4V2`,key:`z1p9b7`}],[`path`,{d:`M15 16v-2`,key:`px0unx`}],[`path`,{d:`M8 9h2`,key:`1g203m`}],[`path`,{d:`M20 9h2`,key:`19tzq7`}],[`path`,{d:`M17.8 11.8 19 13`,key:`yihg8r`}],[`path`,{d:`M15 9h.01`,key:`x1ddxp`}],[`path`,{d:`M17.8 6.2 19 5`,key:`fd4us0`}],[`path`,{d:`m3 21 9-9`,key:`1jfql5`}],[`path`,{d:`M12.2 6.2 11 5`,key:`i3da3b`}]]),lt=f(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),ut=f(`workflow`,[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]),dt=f(`wrench`,[[`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`}]]),ft=f(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),pt=f(`zap`,[[`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`}]]);export{ge as $,h as $t,ze as A,ee as At,ke as B,O as Bt,Ke as C,U as Ct,He as D,z as Dt,Ue as E,B as Et,Pe as F,N as Ft,we as G,C as Gt,De as H,E as Ht,Ne as I,M as It,xe as J,b as Jt,Ce as K,S as Kt,Me as L,j as Lt,Le as M,I as Mt,Ie as N,F as Nt,Ve as O,R as Ot,Fe as P,P as Pt,_e as Q,g as Qt,je as R,A as Rt,qe as S,W as St,We as T,V as Tt,Ee as U,T as Ut,Oe as V,D as Vt,Te as W,w as Wt,ye as X,v as Xt,be as Y,y as Yt,ve as Z,_ as Zt,Qe as _,Y as _t,lt as a,ue as at,Ye as b,K as bt,ot as c,se as ct,rt as d,ie as dt,m as en,he as et,nt as f,re as ft,$e as g,X as gt,et as h,Z as ht,ut as i,de as it,Re as j,L as jt,Be as k,te as kt,at as l,oe as lt,tt as m,Q as mt,ft as n,r as nn,pe as nt,ct as o,le as ot,$ as p,ne as pt,Se as q,x as qt,dt as r,fe as rt,st as s,ce as st,pt as t,p as tn,me as tt,it as u,ae as ut,Ze as v,J as vt,Ge as w,H as wt,Je as x,G as xt,Xe as y,q as yt,Ae as z,k as zt}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-lucide-tZ8AzO6l.js b/frontend/dashboard/assets/vendor-lucide-tZ8AzO6l.js deleted file mode 100644 index d8a4428bd..000000000 --- a/frontend/dashboard/assets/vendor-lucide-tZ8AzO6l.js +++ /dev/null @@ -1 +0,0 @@ -import{i as e,t}from"./rolldown-runtime-aKtaBQYM.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`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`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=n()})),i=e(r()),a=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),o=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),s=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),c=e=>{let t=s(e);return t.charAt(0).toUpperCase()+t.slice(1)},l={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`},u=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},d=(0,i.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o=``,children:s,iconNode:c,...d},f)=>(0,i.createElement)(`svg`,{ref:f,...l,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:a(`lucide`,o),...!s&&!u(d)&&{"aria-hidden":`true`},...d},[...c.map(([e,t])=>(0,i.createElement)(e,t)),...Array.isArray(s)?s:[s]])),f=(e,t)=>{let n=(0,i.forwardRef)(({className:n,...r},s)=>(0,i.createElement)(d,{ref:s,iconNode:t,className:a(`lucide-${o(c(e))}`,`lucide-${e}`,n),...r}));return n.displayName=c(e),n},p=f(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),m=f(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),h=f(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),g=f(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),_=f(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),v=f(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]),y=f(`bot`,[[`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`}]]),b=f(`box`,[[`path`,{d:`M21 8a2 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.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),x=f(`brain`,[[`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`}]]),S=f(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]),C=f(`chart-no-axes-column`,[[`path`,{d:`M5 21v-6`,key:`1hz6c0`}],[`path`,{d:`M12 21V3`,key:`1lcnhd`}],[`path`,{d:`M19 21V9`,key:`unv183`}]]),w=f(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),T=f(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),E=f(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),D=f(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),O=f(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),k=f(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),A=f(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),j=f(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),M=f(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),N=f(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),P=f(`circle-pause`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`,key:`c1nkhi`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`,key:`h65svq`}]]),F=f(`circle-play`,[[`path`,{d:`M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z`,key:`kmsa83`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),I=f(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),L=f(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),ee=f(`circle-x`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),te=f(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),R=f(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),z=f(`copy`,[[`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`}]]),B=f(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),V=f(`database`,[[`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`}]]),H=f(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),U=f(`download`,[[`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`}]]),W=f(`earth`,[[`path`,{d:`M21.54 15H17a2 2 0 0 0-2 2v4.54`,key:`1djwo0`}],[`path`,{d:`M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17`,key:`1tzkfa`}],[`path`,{d:`M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05`,key:`14pb5j`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),G=f(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),K=f(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),q=f(`eye`,[[`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`}]]),J=f(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),Y=f(`file-text`,[[`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`}]]),X=f(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),Z=f(`flag`,[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]),Q=f(`flask-conical`,[[`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`}]]),ne=f(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),re=f(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),ie=f(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),ae=f(`git-compare`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]),oe=f(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),se=f(`hard-drive-download`,[[`path`,{d:`M12 2v8`,key:`1q4o3n`}],[`path`,{d:`m16 6-4 4-4-4`,key:`6wukr`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M10 18h.01`,key:`h775k`}]]),ce=f(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),le=f(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),ue=f(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),de=f(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),fe=f(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),pe=f(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),me=f(`layout-dashboard`,[[`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`}]]),he=f(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),ge=f(`list-plus`,[[`path`,{d:`M16 5H3`,key:`m91uny`}],[`path`,{d:`M11 12H3`,key:`51ecnj`}],[`path`,{d:`M16 19H3`,key:`zzsher`}],[`path`,{d:`M18 9v6`,key:`1twb98`}],[`path`,{d:`M21 12h-6`,key:`bt1uis`}]]),_e=f(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),ve=f(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),ye=f(`loader`,[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]]),be=f(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),xe=f(`memory-stick`,[[`path`,{d:`M12 12v-2`,key:`fwoke6`}],[`path`,{d:`M12 18v-2`,key:`qj6yno`}],[`path`,{d:`M16 12v-2`,key:`heuere`}],[`path`,{d:`M16 18v-2`,key:`s1ct0w`}],[`path`,{d:`M2 11h1.5`,key:`15p63e`}],[`path`,{d:`M20 18v-2`,key:`12ehxp`}],[`path`,{d:`M20.5 11H22`,key:`khsy7a`}],[`path`,{d:`M4 18v-2`,key:`1c3oqr`}],[`path`,{d:`M8 12v-2`,key:`1mwtfd`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`rect`,{x:`2`,y:`6`,width:`20`,height:`10`,rx:`2`,key:`1qcswk`}]]),Se=f(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ce=f(`message-square`,[[`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`}]]),we=f(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),Te=f(`package`,[[`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`}]]),Ee=f(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),De=f(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),Oe=f(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),ke=f(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),Ae=f(`pen`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),je=f(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Me=f(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Ne=f(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Pe=f(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Fe=f(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),Ie=f(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Le=f(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Re=f(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),ze=f(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Be=f(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),Ve=f(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),He=f(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),Ue=f(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),We=f(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),Ge=f(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Ke=f(`shield-question-mark`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),qe=f(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Je=f(`skip-forward`,[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]),$=f(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Ye=f(`smile`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 14s1.5 2 4 2 4-2 4-2`,key:`1y1vjs`}],[`line`,{x1:`9`,x2:`9.01`,y1:`9`,y2:`9`,key:`yxxnd0`}],[`line`,{x1:`15`,x2:`15.01`,y1:`9`,y2:`9`,key:`1p4y9e`}]]),Xe=f(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),Ze=f(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Qe=f(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),$e=f(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),et=f(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),tt=f(`trash-2`,[[`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`}]]),nt=f(`trending-up`,[[`path`,{d:`M16 7h6v6`,key:`box55l`}],[`path`,{d:`m22 7-8.5 8.5-5-5L2 17`,key:`1t1m79`}]]),rt=f(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),it=f(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),at=f(`wand`,[[`path`,{d:`M15 4V2`,key:`z1p9b7`}],[`path`,{d:`M15 16v-2`,key:`px0unx`}],[`path`,{d:`M8 9h2`,key:`1g203m`}],[`path`,{d:`M20 9h2`,key:`19tzq7`}],[`path`,{d:`M17.8 11.8 19 13`,key:`yihg8r`}],[`path`,{d:`M15 9h.01`,key:`x1ddxp`}],[`path`,{d:`M17.8 6.2 19 5`,key:`fd4us0`}],[`path`,{d:`m3 21 9-9`,key:`1jfql5`}],[`path`,{d:`M12.2 6.2 11 5`,key:`i3da3b`}]]),ot=f(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),st=f(`workflow`,[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]),ct=f(`wrench`,[[`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`}]]),lt=f(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),ut=f(`zap`,[[`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`}]]);export{pe as $,r as $t,Ie as A,F as At,Ee as B,T as Bt,Ue as C,B as Ct,ze as D,ee as Dt,Be as E,te as Et,je as F,A as Ft,xe as G,b as Gt,we as H,C as Ht,Ae as I,k as It,ve as J,_ as Jt,be as K,y as Kt,ke as L,O as Lt,Pe as M,N as Mt,Ne as N,M as Nt,Re as O,L as Ot,Me as P,j as Pt,me as Q,p as Qt,Oe as R,D as Rt,We as S,V as St,Ve as T,R as Tt,Ce as U,S as Ut,Te as V,w as Vt,Se as W,x as Wt,ge as X,h as Xt,_e as Y,g as Yt,he as Z,m as Zt,$ as _,K as _t,ot as a,se as at,Ke as b,U as bt,rt as c,ie as ct,et as d,Q as dt,fe as et,$e as f,Z as ft,Ye as g,q as gt,Xe as h,J as ht,st as i,ce as it,Fe as j,P as jt,Le as k,I as kt,nt as l,re as lt,Ze as m,Y as mt,lt as n,ue as nt,at as o,oe as ot,Qe as p,X as pt,ye as q,v as qt,ct as r,le as rt,it as s,ae as st,ut as t,de as tt,tt as u,ne as ut,Je as v,G as vt,He as w,z as wt,Ge as x,H as xt,qe as y,W as yt,De as z,E as zt}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-markdown-BanIOC5U.js b/frontend/dashboard/assets/vendor-markdown-BanIOC5U.js new file mode 100644 index 000000000..eebcb428d --- /dev/null +++ b/frontend/dashboard/assets/vendor-markdown-BanIOC5U.js @@ -0,0 +1,29 @@ +import{i as e,n as t,t as n}from"./rolldown-runtime-Dd_uD5pT.js";import{nn as r}from"./vendor-lucide-DUPkM7me.js";var i=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),a=n(((e,t)=>{t.exports=i()}));function o(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var s=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,c=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,l={};function u(e,t){return((t||l).jsx?c:s).test(e)}var d=/[ \t\n\f\r]/g;function f(e){return typeof e==`object`?e.type===`text`&&p(e.value):p(e)}function p(e){return e.replace(d,``)===``}var m=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};m.prototype.normal={},m.prototype.property={},m.prototype.space=void 0;function h(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new m(n,r,t)}function g(e){return e.toLowerCase()}var _=class{constructor(e,t){this.attribute=t,this.property=e}};_.prototype.attribute=``,_.prototype.booleanish=!1,_.prototype.boolean=!1,_.prototype.commaOrSpaceSeparated=!1,_.prototype.commaSeparated=!1,_.prototype.defined=!1,_.prototype.mustUseProperty=!1,_.prototype.number=!1,_.prototype.overloadedBoolean=!1,_.prototype.property=``,_.prototype.spaceSeparated=!1,_.prototype.space=void 0;var v=t({boolean:()=>b,booleanish:()=>x,commaOrSpaceSeparated:()=>E,commaSeparated:()=>T,number:()=>C,overloadedBoolean:()=>S,spaceSeparated:()=>w}),y=0,b=D(),x=D(),S=D(),C=D(),w=D(),T=D(),E=D();function D(){return 2**++y}var O=Object.keys(v),k=class extends _{constructor(e,t,n,r){let i=-1;if(super(e,t),ee(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&ce.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(se,de);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!se.test(e)){let n=e.replace(oe,ue);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=k}return new i(r,t)}function ue(e){return`-`+e.toLowerCase()}function de(e){return e.charAt(1).toUpperCase()}var fe=h([j,ne,P,re,ie],`html`),pe=h([j,N,P,re,ie],`svg`);function me(e){return e.join(` `).trim()}var he=n(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(` +`);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(e.charAt(0)==`/`&&e.charAt(1)==`*`){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function x(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),x()}function d(e){return e?e.replace(l,``):``}t.exports=u})),ge=n((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(he());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),_e=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),ve=n(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(ge()),r=_e();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),ye=xe(`end`),be=xe(`start`);function xe(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function Se(e){let t=be(e),n=ye(e);if(t&&n)return{start:t,end:n}}function Ce(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?Te(e.position):`start`in e||`end`in e?Te(e):`line`in e||`column`in e?we(e):``}function we(e){return Ee(e&&e.line)+`:`+Ee(e&&e.column)}function Te(e){return we(e&&e.start)+`-`+we(e&&e.end)}function Ee(e){return e&&typeof e==`number`?e:1}var F=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=Ce(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};F.prototype.file=``,F.prototype.name=``,F.prototype.reason=``,F.prototype.message=``,F.prototype.stack=``,F.prototype.column=void 0,F.prototype.line=void 0,F.prototype.ancestors=void 0,F.prototype.cause=void 0,F.prototype.fatal=void 0,F.prototype.place=void 0,F.prototype.ruleId=void 0,F.prototype.source=void 0;var De=e(ve(),1),Oe={}.hasOwnProperty,ke=new Map,Ae=/[A-Z]/g,je=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),Me=new Set([`td`,`th`]);function Ne(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=We(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=Ue(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?pe:fe,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=Pe(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function Pe(e,t,n){if(t.type===`element`)return Fe(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Ie(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return Re(e,t,n);if(t.type===`mdxjsEsm`)return Le(e,t);if(t.type===`root`)return ze(e,t,n);if(t.type===`text`)return Be(e,t)}function Fe(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=pe,e.schema=i),e.ancestors.push(t);let a=Xe(e,t.tagName,!1),o=Ge(e,t),s=qe(e,t);return je.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!f(e)})),Ve(e,o,a,t),He(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Ie(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Ze(e,t.position)}function Le(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ze(e,t.position)}function Re(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=pe,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Xe(e,t.name,!0),o=Ke(e,t),s=qe(e,t);return Ve(e,o,a,t),He(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function ze(e,t,n){let r={};return He(r,qe(e,t)),e.create(t,e.Fragment,r,n)}function Be(e,t){return t.value}function Ve(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function He(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function Ue(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function We(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=be(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Ge(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&Oe.call(t.properties,i)){let a=Je(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&Me.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function Ke(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Ze(e,t.position)}else{let i=r.name,a;if(r.value&&typeof r.value==`object`){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else Ze(e,t.position)}else a=r.value===null||r.value;n[i]=a}return n}function qe(e,t){let n=[],r=-1,i=e.passKeys?new Map:ke;for(;++ri?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(I(e,e.length,0,t),e):t}var lt={}.hasOwnProperty;function ut(e){let t={},n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function R(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var z=G(/[A-Za-z]/),B=G(/[\dA-Za-z]/),mt=G(/[#-'*+\--9=?A-Z^-~]/);function ht(e){return e!==null&&(e<32||e===127)}var gt=G(/\d/),_t=G(/[\dA-Fa-f]/),vt=G(/[!-/:-@[-`{-~]/);function V(e){return e!==null&&e<-2}function H(e){return e!==null&&(e<0||e===32)}function U(e){return e===-2||e===-1||e===32}var yt=G(/\p{P}|\p{S}/u),W=G(/\s/);function G(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function bt(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function K(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return U(r)?(e.enter(n),s(r)):t(r)}function s(r){return U(r)&&a++o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;er;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Et(e,t,n){return K(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Dt(e){if(e===null||H(e)||W(e))return 1;if(yt(e))return 2}function Ot(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Mt(d,-c),Mt(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=L(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=L(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=L(l,Ot(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=L(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=L(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,I(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n0&&U(t)?K(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||V(t)?e.check(Gt,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||V(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),U(t)?K(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),U(t)?K(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||V(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function Jt(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var Yt={name:`codeIndented`,tokenize:Zt},Xt={partial:!0,tokenize:Qt};function Zt(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),K(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):V(t)?e.attempt(Xt,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||V(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function Qt(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):K(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):V(e)?i(e):n(e)}}var $t={name:`codeText`,previous:tn,resolve:en,tokenize:nn};function en(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&an(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),an(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),an(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0)){if(e=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function pn(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||ht(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||V(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||H(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):V(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||V(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!U(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function hn(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),K(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||V(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function gn(e,t){let n;return r;function r(i){return V(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):U(i)?K(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var _n={name:`definition`,tokenize:yn},vn={partial:!0,tokenize:bn};function yn(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return mn.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=R(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return H(t)?gn(e,l)(t):l(t)}function l(t){return pn(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(vn,d,d)(t)}function d(t){return U(t)?K(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||V(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function bn(e,t,n){return r;function r(t){return H(t)?gn(e,i)(t):n(t)}function i(t){return hn(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return U(t)?K(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||V(e)?t(e):n(e)}}var xn={name:`hardBreakEscape`,tokenize:Sn};function Sn(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return V(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Cn={name:`headingAtx`,resolve:wn,tokenize:Tn};function wn(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},I(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Tn(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||H(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||V(n)?(e.exit(`atxHeading`),t(n)):U(n)?K(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||H(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var En=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Dn=[`pre`,`script`,`style`,`textarea`],On={concrete:!0,name:`htmlFlow`,resolveTo:jn,tokenize:Mn},kn={partial:!0,tokenize:Pn},An={partial:!0,tokenize:Nn};function jn(e){let t=e.length;for(;t--&&(e[t][0]!==`enter`||e[t][1].type!==`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Mn(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:N):z(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):z(a)?(e.consume(a),i=4,r.interrupt?t:N):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:N):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return z(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||H(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Dn.includes(l)?(i=1,r.interrupt?t(s):O(s)):En.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||B(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return U(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||z(t)?(e.consume(t),b):U(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||B(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):U(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):U(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||V(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||H(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||U(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||V(t)?O(t):U(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),j):t===60&&i===1?(e.consume(t),M):t===62&&i===4?(e.consume(t),P):t===63&&i===3?(e.consume(t),N):t===93&&i===5?(e.consume(t),ne):V(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(kn,re,k)(t)):t===null||V(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(An,ee,re)(t)}function ee(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),A}function A(t){return t===null||V(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function j(t){return t===45?(e.consume(t),N):O(t)}function M(t){return t===47?(e.consume(t),o=``,te):O(t)}function te(t){if(t===62){let n=o.toLowerCase();return Dn.includes(n)?(e.consume(t),P):O(t)}return z(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),te):O(t)}function ne(t){return t===93?(e.consume(t),N):O(t)}function N(t){return t===62?(e.consume(t),P):t===45&&i===2?(e.consume(t),N):O(t)}function P(t){return t===null||V(t)?(e.exit(`htmlFlowData`),re(t)):(e.consume(t),P)}function re(n){return e.exit(`htmlFlow`),t(n)}}function Nn(e,t,n){let r=this;return i;function i(t){return V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Pn(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Ft,t,n)}}var Fn={name:`htmlText`,tokenize:In};function In(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):z(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):z(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):V(t)?(o=d,M(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?j(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):V(t)?(o=h,M(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?j(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?j(t):V(t)?(o=v,M(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):V(t)?(o=y,M(t)):(e.consume(t),y)}function b(e){return e===62?j(e):y(e)}function x(t){return z(t)?(e.consume(t),S):n(t)}function S(t){return t===45||B(t)?(e.consume(t),S):C(t)}function C(t){return V(t)?(o=C,M(t)):U(t)?(e.consume(t),C):j(t)}function w(t){return t===45||B(t)?(e.consume(t),w):t===47||t===62||H(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),j):t===58||t===95||z(t)?(e.consume(t),E):V(t)?(o=T,M(t)):U(t)?(e.consume(t),T):j(t)}function E(t){return t===45||t===46||t===58||t===95||B(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):V(t)?(o=D,M(t)):U(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):V(t)?(o=O,M(t)):U(t)?(e.consume(t),O):(e.consume(t),ee)}function k(t){return t===i?(e.consume(t),i=void 0,A):t===null?n(t):V(t)?(o=k,M(t)):(e.consume(t),k)}function ee(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||H(t)?T(t):(e.consume(t),ee)}function A(e){return e===47||e===62||H(e)?T(e):n(e)}function j(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function M(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return U(t)?K(e,ne,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ne(t)}function ne(t){return e.enter(`htmlTextData`),o(t)}}var Ln={name:`labelEnd`,resolveAll:Vn,resolveTo:Hn,tokenize:Un},Rn={tokenize:Wn},zn={tokenize:Gn},Bn={tokenize:Kn};function Vn(e){let t=-1,n=[];for(;++t=3&&(a===null||V(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),U(t)?K(e,s,`whitespace`)(t):s(t))}}var q={continuation:{tokenize:ir},exit:or,name:`list`,tokenize:rr},tr={partial:!0,tokenize:sr},nr={partial:!0,tokenize:ar};function rr(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:gt(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check($n,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return gt(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Ft,r.interrupt?n:u,e.attempt(tr,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return U(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function ir(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ft,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,K(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!U(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(nr,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,K(e,e.attempt(q,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function ar(e,t,n){let r=this;return K(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function or(e){e.exit(this.containerState.type)}function sr(e,t,n){let r=this;return K(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!U(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var cr={name:`setextUnderline`,resolveTo:lr,tokenize:ur};function lr(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function ur(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),U(t)?K(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||V(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var dr={tokenize:fr};function fr(e){let t=this,n=e.attempt(Ft,r,e.attempt(this.parser.constructs.flowInitial,i,K(e,e.attempt(this.parser.constructs.flow,i,e.attempt(cn,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var pr={resolveAll:_r()},mr=gr(`string`),hr=gr(`text`);function gr(e){return{resolveAll:_r(e===`text`?vr:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++iDr,contentInitial:()=>xr,disable:()=>Or,document:()=>br,flow:()=>Cr,flowInitial:()=>Sr,insideSpan:()=>Er,string:()=>wr,text:()=>Tr}),br={42:q,43:q,45:q,48:q,49:q,50:q,51:q,52:q,53:q,54:q,55:q,56:q,57:q,62:Lt},xr={91:_n},Sr={[-2]:Yt,[-1]:Yt,32:Yt},Cr={35:Cn,42:$n,45:[cr,$n],60:On,61:cr,95:$n,96:Kt,126:Kt},wr={38:Ut,92:Vt},Tr={[-5]:Zn,[-4]:Zn,[-3]:Zn,33:qn,38:Ut,42:kt,60:[Nt,Fn],91:Yn,92:[xn,Vt],93:Ln,95:kt,96:$t},Er={null:[kt,pr]},Dr={null:[42,95]},Or={null:[]};function kr(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=L(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=Ot(a,l.events,l),l.events):[]}function f(e,t){return jr(p(e),t)}function p(e){return Ar(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function jr(e,t){let n=-1,r=[],i;for(;++n0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||Wr).call(a,void 0,e[0])}for(r.position={start:J(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:J(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function Yr(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Xr(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Zr(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=bt(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function Qr(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $r(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function ei(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function ti(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ei(e,t);let i={src:bt(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function ni(e,t){let n={src:bt(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function ri(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function ii(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ei(e,t);let i={href:bt(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function ai(e,t){let n={href:bt(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function oi(e,t,n){let r=e.all(t),i=n?si(n):ci(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s1}function li(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=be(t.children[1]),o=ye(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function mi(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(yi(t.slice(i),i>0,!1)),a.join(``)}function yi(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===gi||t===_i;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===gi||t===_i;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function bi(e,t){let n={type:`text`,value:vi(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function xi(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var Si={blockquote:Kr,break:qr,code:Jr,delete:Yr,emphasis:Xr,footnoteReference:Zr,heading:Qr,html:$r,imageReference:ti,image:ni,inlineCode:ri,linkReference:ii,link:ai,listItem:oi,list:li,paragraph:ui,root:di,strong:fi,table:pi,tableCell:hi,tableRow:mi,text:bi,thematicBreak:xi,toml:Ci,yaml:Ci,definition:Ci,footnoteDefinition:Ci};function Ci(){}var wi=typeof self==`object`?self:globalThis,Ti=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new wi[e](t)},Ei=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(typeof wi[e]==`function`?Ti(e,t):Error(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(Ti(a,o),i)};return r},Di=e=>Ei(new Map,e)(0),Y=``,{toString:Oi}={},{keys:ki}=Object,Ai=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Oi.call(e).slice(8,-1);switch(n){case`Array`:return[1,Y];case`Object`:return[2,Y];case`Date`:return[3,Y];case`RegExp`:return[4,Y];case`Map`:return[5,Y];case`Set`:return[6,Y];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:e instanceof Error?[7,e.name||`Error`]:[2,n]},ji=([e,t])=>e===0&&(t===`function`||t===`symbol`),Mi=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Ai(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of ki(r))(e||!ji(Ai(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,isNaN(r.getTime())?Y:r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(ji(Ai(n))||ji(Ai(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!ji(Ai(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},Ni=(e,{json:t,lossy:n}={})=>{let r=[];return Mi(!(t||n),!!t,new Map,r)(e),r},Pi=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?Di(Ni(e,t)):structuredClone(e):(e,t)=>Di(Ni(e,t));function Fi(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function Ii(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function Li(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||Fi,r=e.options.footnoteBackLabel||Ii,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...Pi(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:` +`},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:` +`}]}}var Ri=(function(e){if(e==null)return Ui;if(typeof e==`function`)return Hi(e);if(typeof e==`object`)return Array.isArray(e)?zi(e):Bi(e);if(typeof e==`string`)return Vi(e);throw Error(`Expected function, string, or object as test`)});function zi(e){let t=[],n=-1;for(;++n`:``))+`)`})}return u;function u(){let l=Ki,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=Ji(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d0&&n.push({type:`text`,value:` +`}),n}function ra(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function ia(e,t){let n=Qi(e,t),r=n.one(e,void 0),i=Li(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:` +`},i)),a}function aa(e,t){return e&&`run`in e?async function(n,r){let i=ia(n,{file:r,...t});await e.run(i,r)}:function(n,r){return ia(n,{file:r,...e||t})}}function oa(e){if(e)throw e}var sa=e(n(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});ft.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var X={basename:da,dirname:fa,extname:pa,join:ma,sep:`/`};function da(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);_a(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function fa(e){if(_a(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function pa(e){_a(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function ma(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function ga(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1}i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function _a(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var va={cwd:ya};function ya(){return`/`}function ba(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function xa(e){if(typeof e==`string`)e=new URL(e);else if(!ba(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return Sa(e)}function Sa(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n0){let[r,...a]=t,o=n[i][1];ca(o)&&ca(r)&&(r=(0,sa.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function Ma(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function Na(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function Pa(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Fa(e){if(!ca(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function Ia(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function La(e){return Ra(e)?e:new wa(e)}function Ra(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function za(e){return typeof e==`string`||Ba(e)}function Ba(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var Va=a();r();var Ha=[],Ua={allowDangerousHtml:!0},Wa=/^(https?|ircs?|mailto|xmpp)$/i,Ga=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function Ka(e){let t=qa(e),n=Ja(e);return Ya(t.runSync(t.parse(n),n),e)}function qa(e){let t=e.rehypePlugins||Ha,n=e.remarkPlugins||Ha,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Ua}:Ua;return ja().use(Gr).use(n).use(aa,r).use(t)}function Ja(e){let t=e.children||``,n=new wa;return typeof t==`string`?n.value=t:``+t,n}function Ya(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||Xa;for(let e of Ga)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return Yi(e,l),Ne(e,{Fragment:Va.Fragment,components:i,ignoreInvalidStyle:!0,jsx:Va.jsx,jsxs:Va.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in tt)if(Object.hasOwn(tt,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=tt[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function Xa(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||Wa.test(e.slice(0,t))?e:``}function Za(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function Qa(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}function $a(e,t,n){let r=Ri((n||{}).ignore||[]),i=eo(t),a=-1;for(;++a0?{type:`text`,value:a}:void 0),a===!1?r.lastIndex=n+1:(s!==n&&u.push({type:`text`,value:e.value.slice(s,n)}),Array.isArray(a)?u.push(...a):a&&u.push(a),s=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}return l?(s?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(`)`),i=Za(e,`(`),a=Za(e,`)`);for(;r!==-1&&i>a;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(`)`),a++;return[e,n]}function yo(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||W(n)||yt(n))&&(!t||n!==47)}ko.peek=Oo;function bo(){this.buffer()}function xo(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function So(){this.buffer()}function Co(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function wo(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=R(this.sliceSerialize(e)).toLowerCase(),n.label=t}function To(e){this.exit(e)}function Eo(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=R(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Do(e){this.exit(e)}function Oo(){return`[`}function ko(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function Ao(){return{enter:{gfmFootnoteCallString:bo,gfmFootnoteCall:xo,gfmFootnoteDefinitionLabelString:So,gfmFootnoteDefinition:Co},exit:{gfmFootnoteCallString:wo,gfmFootnoteCall:To,gfmFootnoteDefinitionLabelString:Eo,gfmFootnoteDefinition:Do}}}function jo(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:ko},unsafe:[{character:`[`,inConstruct:[`label`,`phrasing`,`reference`]}]};function n(e,n,r,i){let a=r.createTracker(i),o=a.move(`[^`),s=r.enter(`footnoteDefinition`),c=r.enter(`label`);return o+=a.move(r.safe(r.associationId(e),{before:o,after:`]`})),c(),o+=a.move(`]:`),e.children&&e.children.length>0&&(a.shift(4),o+=a.move((t?` +`:` `)+r.indentLines(r.containerFlow(e,a.current()),t?No:Mo))),s(),o}}function Mo(e,t,n){return t===0?e:No(e,t,n)}function No(e,t,n){return(n?``:` `)+e}var Po=[`autolink`,`destinationLiteral`,`destinationRaw`,`reference`,`titleQuote`,`titleApostrophe`];zo.peek=Bo;function Fo(){return{canContainEols:[`delete`],enter:{strikethrough:Lo},exit:{strikethrough:Ro}}}function Io(){return{unsafe:[{character:`~`,inConstruct:`phrasing`,notInConstruct:Po}],handlers:{delete:zo}}}function Lo(e){this.enter({type:`delete`,children:[]},e)}function Ro(e){this.exit(e)}function zo(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function Bo(){return`~`}function Vo(e){return e.length}function Ho(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||Vo,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++ul&&(l=e[u].length);++ac[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++dc[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++u `),a.shift(2);let o=n.indentLines(n.containerFlow(e,a.current()),Ko);return i(),o}function Ko(e,t,n){return`>`+(n?``:` `)+e}function qo(e,t){return Jo(e,t.inConstruct,!0)&&!Jo(e,t.notInConstruct,!1)}function Jo(e,t,n){if(typeof t==`string`&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function Zo(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function Qo(e){let t=e.options.fence||"`";if(t!=="`"&&t!==`~`)throw Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function $o(e,t,n,r){let i=Qo(n),a=e.value||``,o=i==="`"?`GraveAccent`:`Tilde`;if(Zo(e,n)){let e=n.enter(`codeIndented`),t=n.indentLines(a,es);return e(),t}let s=n.createTracker(r),c=i.repeat(Math.max(Xo(a,i)+1,3)),l=n.enter(`codeFenced`),u=s.move(c);if(e.lang){let t=n.enter(`codeFencedLang${o}`);u+=s.move(n.safe(e.lang,{before:u,after:` `,encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){let t=n.enter(`codeFencedMeta${o}`);u+=s.move(` `),u+=s.move(n.safe(e.meta,{before:u,after:` +`,encode:["`"],...s.current()})),t()}return u+=s.move(` +`),a&&(u+=s.move(a+` +`)),u+=s.move(c),l(),u}function es(e,t,n){return(n?``:` `)+e}function ts(e){let t=e.options.quote||`"`;if(t!==`"`&&t!==`'`)throw Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function ns(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`definition`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`[`);return l+=c.move(n.safe(n.associationId(e),{before:l,after:`]`,...c.current()})),l+=c.move(`]: `),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:` +`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),o(),l}function rs(e){let t=e.options.emphasis||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function is(e){return`&#x`+e.toString(16).toUpperCase()+`;`}function as(e,t,n){let r=Dt(e),i=Dt(t);return r===void 0?i===void 0?n===`_`?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}os.peek=ss;function os(e,t,n,r){let i=rs(n),a=n.enter(`emphasis`),o=n.createTracker(r),s=o.move(i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=as(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=is(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=as(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+is(d));let p=o.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function ss(e,t,n){return n.options.emphasis||`*`}function cs(e,t){let n=!1;return Yi(e,function(e){if(`value`in e&&/\r?\n|\r/.test(e.value)||e.type===`break`)return n=!0,!1}),!!((!e.depth||e.depth<3)&&rt(e)&&(t.options.setext||n))}function ls(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),a=n.createTracker(r);if(cs(e,n)){let t=n.enter(`headingSetext`),r=n.enter(`phrasing`),o=n.containerPhrasing(e,{...a.current(),before:` +`,after:` +`});return r(),t(),o+` +`+(i===1?`=`:`-`).repeat(o.length-(Math.max(o.lastIndexOf(`\r`),o.lastIndexOf(` +`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:` +`,...a.current()});return/^[\t ]/.test(l)&&(l=is(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}us.peek=ds;function us(e){return e.value||``}function ds(){return`<`}fs.peek=ps;function fs(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function ps(){return`!`}ms.peek=hs;function ms(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function hs(){return`!`}gs.peek=_s;function gs(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a\u007F]/.test(e.url))}ys.peek=bs;function ys(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(vs(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function bs(e,t,n){return vs(e,n)?`<`:`[`}xs.peek=Ss;function xs(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function Ss(){return`[`}function Cs(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function ws(e){let t=Cs(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Ts(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Es(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Ds(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?Ts(n):Cs(n),s=e.ordered?o===`.`?`)`:`.`:ws(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),Es(n)===o&&t){let t=-1;for(;++t-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function As(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var js=Ri([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function Ms(e,t,n,r){return(e.children.some(function(e){return js(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Ns(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Ps.peek=Fs;function Ps(e,t,n,r){let i=Ns(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=as(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=is(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=as(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+is(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Fs(e,t,n){return n.options.strong||`*`}function Is(e,t,n,r){return n.safe(e.value,r)}function Ls(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Rs(e,t,n){let r=(Es(n)+(n.options.ruleSpaces?` `:``)).repeat(Ls(n));return n.options.ruleSpaces?r.slice(0,-1):r}var zs={blockquote:Go,break:Yo,code:$o,definition:ns,emphasis:os,hardBreak:Yo,heading:ls,html:us,image:fs,imageReference:ms,inlineCode:gs,link:ys,linkReference:xs,list:Ds,listItem:ks,paragraph:As,root:Ms,strong:Ps,text:Is,thematicBreak:Rs};function Bs(){return{enter:{table:Vs,tableData:Gs,tableHeader:Gs,tableRow:Us},exit:{codeText:Ks,table:Hs,tableData:Ws,tableHeader:Ws,tableRow:Ws}}}function Vs(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function Hs(e){this.exit(e),this.data.inTable=void 0}function Us(e){this.enter({type:`tableRow`,children:[]},e)}function Ws(e){this.exit(e)}function Gs(e){this.enter({type:`tableCell`,children:[]},e)}function Ks(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,qs));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function qs(e,t){return t===`|`?t:e}function Js(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:` +`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(` +`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Ho(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var Cc={tokenize:jc,partial:!0};function wc(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Oc,continuation:{tokenize:kc},exit:Ac}},text:{91:{name:`gfmFootnoteCall`,tokenize:Dc},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Tc,resolveTo:Ec}}}}function Tc(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=R(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Ec(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function Dc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||H(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(R(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return H(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Oc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||H(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=R(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return H(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),K(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function kc(e,t,n){return e.check(Ft,t,e.attempt(Cc,t,n))}function Ac(e){e.exit(`gfmFootnoteDefinition`)}function jc(e,t,n){let r=this;return K(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Mc(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Dt(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Nc=class{constructor(){this.map=[]}add(e,t,n){Pc(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Pc(e,t,n,r){let i=0;if(n!==0||r.length!==0){for(;i-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):V(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):U(t)?K(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||H(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,U(t)?K(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return U(t)?K(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||V(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return U(t)?K(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||V(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||V(n)?(e.exit(`tableRow`),t(n)):U(n)?K(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||H(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Rc(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Nc;for(;++nn[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Vc(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Bc(e,t,n,r,i){let a=[],o=Vc(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Vc(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Hc={name:`tasklistCheck`,tokenize:Wc};function Uc(){return{text:{91:Hc}}}function Wc(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return H(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return V(r)?t(r):U(r)?e.check({tokenize:Gc},t,n)(r):n(r)}}function Gc(e,t,n){return K(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Kc(e){return ut([lc(),wc(),Mc(e),Ic(),Uc()])}var qc={};function Jc(e){let t=this,n=e||qc,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Kc(n)),a.push(ec()),o.push(tc(n))}export{Ka as n,a as r,Jc as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-markdown-CZSHC-G5.js b/frontend/dashboard/assets/vendor-markdown-CZSHC-G5.js deleted file mode 100644 index c8edf7d7e..000000000 --- a/frontend/dashboard/assets/vendor-markdown-CZSHC-G5.js +++ /dev/null @@ -1,29 +0,0 @@ -import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{$t as r}from"./vendor-lucide-tZ8AzO6l.js";var i=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),a=n(((e,t)=>{t.exports=i()}));function o(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var s=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,c=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,l={};function u(e,t){return((t||l).jsx?c:s).test(e)}var d=/[ \t\n\f\r]/g;function f(e){return typeof e==`object`?e.type===`text`&&p(e.value):p(e)}function p(e){return e.replace(d,``)===``}var m=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};m.prototype.normal={},m.prototype.property={},m.prototype.space=void 0;function h(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new m(n,r,t)}function g(e){return e.toLowerCase()}var _=class{constructor(e,t){this.attribute=t,this.property=e}};_.prototype.attribute=``,_.prototype.booleanish=!1,_.prototype.boolean=!1,_.prototype.commaOrSpaceSeparated=!1,_.prototype.commaSeparated=!1,_.prototype.defined=!1,_.prototype.mustUseProperty=!1,_.prototype.number=!1,_.prototype.overloadedBoolean=!1,_.prototype.property=``,_.prototype.spaceSeparated=!1,_.prototype.space=void 0;var v=t({boolean:()=>b,booleanish:()=>x,commaOrSpaceSeparated:()=>E,commaSeparated:()=>T,number:()=>C,overloadedBoolean:()=>S,spaceSeparated:()=>w}),y=0,b=D(),x=D(),S=D(),C=D(),w=D(),T=D(),E=D();function D(){return 2**++y}var O=Object.keys(v),k=class extends _{constructor(e,t,n,r){let i=-1;if(super(e,t),ee(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&ce.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(se,de);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!se.test(e)){let n=e.replace(oe,ue);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=k}return new i(r,t)}function ue(e){return`-`+e.toLowerCase()}function de(e){return e.charAt(1).toUpperCase()}var fe=h([j,ne,P,re,ie],`html`),pe=h([j,N,P,re,ie],`svg`);function me(e){return e.join(` `).trim()}var he=n(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(` -`);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(!(e.charAt(0)!=`/`||e.charAt(1)!=`*`)){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function x(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),x()}function d(e){return e?e.replace(l,``):``}t.exports=u})),ge=n((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(he());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),_e=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),ve=n(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(ge()),r=_e();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),ye=xe(`end`),be=xe(`start`);function xe(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function Se(e){let t=be(e),n=ye(e);if(t&&n)return{start:t,end:n}}function Ce(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?Te(e.position):`start`in e||`end`in e?Te(e):`line`in e||`column`in e?we(e):``}function we(e){return Ee(e&&e.line)+`:`+Ee(e&&e.column)}function Te(e){return we(e&&e.start)+`-`+we(e&&e.end)}function Ee(e){return e&&typeof e==`number`?e:1}var F=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=Ce(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};F.prototype.file=``,F.prototype.name=``,F.prototype.reason=``,F.prototype.message=``,F.prototype.stack=``,F.prototype.column=void 0,F.prototype.line=void 0,F.prototype.ancestors=void 0,F.prototype.cause=void 0,F.prototype.fatal=void 0,F.prototype.place=void 0,F.prototype.ruleId=void 0,F.prototype.source=void 0;var De=e(ve(),1),Oe={}.hasOwnProperty,ke=new Map,Ae=/[A-Z]/g,je=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),Me=new Set([`td`,`th`]);function Ne(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=We(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=Ue(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?pe:fe,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=Pe(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function Pe(e,t,n){if(t.type===`element`)return Fe(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Ie(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return Re(e,t,n);if(t.type===`mdxjsEsm`)return Le(e,t);if(t.type===`root`)return ze(e,t,n);if(t.type===`text`)return Be(e,t)}function Fe(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=pe,e.schema=i),e.ancestors.push(t);let a=Xe(e,t.tagName,!1),o=Ge(e,t),s=qe(e,t);return je.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!f(e)})),Ve(e,o,a,t),He(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Ie(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Ze(e,t.position)}function Le(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Ze(e,t.position)}function Re(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=pe,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Xe(e,t.name,!0),o=Ke(e,t),s=qe(e,t);return Ve(e,o,a,t),He(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function ze(e,t,n){let r={};return He(r,qe(e,t)),e.create(t,e.Fragment,r,n)}function Be(e,t){return t.value}function Ve(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function He(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function Ue(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function We(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=be(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Ge(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&Oe.call(t.properties,i)){let a=Je(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&Me.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function Ke(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else Ze(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else Ze(e,t.position);else a=r.value===null||r.value;n[i]=a}return n}function qe(e,t){let n=[],r=-1,i=e.passKeys?new Map:ke;for(;++ri?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(I(e,e.length,0,t),e):t}var lt={}.hasOwnProperty;function ut(e){let t={},n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function R(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var z=G(/[A-Za-z]/),B=G(/[\dA-Za-z]/),mt=G(/[#-'*+\--9=?A-Z^-~]/);function ht(e){return e!==null&&(e<32||e===127)}var gt=G(/\d/),_t=G(/[\dA-Fa-f]/),vt=G(/[!-/:-@[-`{-~]/);function V(e){return e!==null&&e<-2}function H(e){return e!==null&&(e<0||e===32)}function U(e){return e===-2||e===-1||e===32}var yt=G(/\p{P}|\p{S}/u),W=G(/\s/);function G(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function bt(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function K(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return U(r)?(e.enter(n),s(r)):t(r)}function s(r){return U(r)&&a++o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;er;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Et(e,t,n){return K(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Dt(e){if(e===null||H(e)||W(e))return 1;if(yt(e))return 2}function Ot(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Mt(d,-c),Mt(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=L(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=L(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=L(l,Ot(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=L(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=L(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,I(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n0&&U(t)?K(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||V(t)?e.check(Gt,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||V(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),U(t)?K(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),U(t)?K(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||V(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function Jt(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var Yt={name:`codeIndented`,tokenize:Zt},Xt={partial:!0,tokenize:Qt};function Zt(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),K(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):V(t)?e.attempt(Xt,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||V(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function Qt(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):K(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):V(e)?i(e):n(e)}}var $t={name:`codeText`,previous:tn,resolve:en,tokenize:nn};function en(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&an(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),an(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),an(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function pn(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||ht(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||V(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||H(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):V(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||V(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!U(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function hn(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),K(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||V(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function gn(e,t){let n;return r;function r(i){return V(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):U(i)?K(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var _n={name:`definition`,tokenize:yn},vn={partial:!0,tokenize:bn};function yn(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return mn.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=R(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return H(t)?gn(e,l)(t):l(t)}function l(t){return pn(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(vn,d,d)(t)}function d(t){return U(t)?K(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||V(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function bn(e,t,n){return r;function r(t){return H(t)?gn(e,i)(t):n(t)}function i(t){return hn(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return U(t)?K(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||V(e)?t(e):n(e)}}var xn={name:`hardBreakEscape`,tokenize:Sn};function Sn(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return V(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Cn={name:`headingAtx`,resolve:wn,tokenize:Tn};function wn(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},I(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Tn(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||H(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||V(n)?(e.exit(`atxHeading`),t(n)):U(n)?K(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||H(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var En=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Dn=[`pre`,`script`,`style`,`textarea`],On={concrete:!0,name:`htmlFlow`,resolveTo:jn,tokenize:Mn},kn={partial:!0,tokenize:Pn},An={partial:!0,tokenize:Nn};function jn(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Mn(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:N):z(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):z(a)?(e.consume(a),i=4,r.interrupt?t:N):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:N):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return z(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||H(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Dn.includes(l)?(i=1,r.interrupt?t(s):O(s)):En.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||B(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return U(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||z(t)?(e.consume(t),b):U(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||B(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):U(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):U(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||V(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||H(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||U(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||V(t)?O(t):U(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),j):t===60&&i===1?(e.consume(t),M):t===62&&i===4?(e.consume(t),P):t===63&&i===3?(e.consume(t),N):t===93&&i===5?(e.consume(t),ne):V(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(kn,re,k)(t)):t===null||V(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(An,ee,re)(t)}function ee(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),A}function A(t){return t===null||V(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function j(t){return t===45?(e.consume(t),N):O(t)}function M(t){return t===47?(e.consume(t),o=``,te):O(t)}function te(t){if(t===62){let n=o.toLowerCase();return Dn.includes(n)?(e.consume(t),P):O(t)}return z(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),te):O(t)}function ne(t){return t===93?(e.consume(t),N):O(t)}function N(t){return t===62?(e.consume(t),P):t===45&&i===2?(e.consume(t),N):O(t)}function P(t){return t===null||V(t)?(e.exit(`htmlFlowData`),re(t)):(e.consume(t),P)}function re(n){return e.exit(`htmlFlow`),t(n)}}function Nn(e,t,n){let r=this;return i;function i(t){return V(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Pn(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Ft,t,n)}}var Fn={name:`htmlText`,tokenize:In};function In(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):z(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):z(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):V(t)?(o=d,M(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?j(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):V(t)?(o=h,M(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?j(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?j(t):V(t)?(o=v,M(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):V(t)?(o=y,M(t)):(e.consume(t),y)}function b(e){return e===62?j(e):y(e)}function x(t){return z(t)?(e.consume(t),S):n(t)}function S(t){return t===45||B(t)?(e.consume(t),S):C(t)}function C(t){return V(t)?(o=C,M(t)):U(t)?(e.consume(t),C):j(t)}function w(t){return t===45||B(t)?(e.consume(t),w):t===47||t===62||H(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),j):t===58||t===95||z(t)?(e.consume(t),E):V(t)?(o=T,M(t)):U(t)?(e.consume(t),T):j(t)}function E(t){return t===45||t===46||t===58||t===95||B(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):V(t)?(o=D,M(t)):U(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):V(t)?(o=O,M(t)):U(t)?(e.consume(t),O):(e.consume(t),ee)}function k(t){return t===i?(e.consume(t),i=void 0,A):t===null?n(t):V(t)?(o=k,M(t)):(e.consume(t),k)}function ee(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||H(t)?T(t):(e.consume(t),ee)}function A(e){return e===47||e===62||H(e)?T(e):n(e)}function j(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function M(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return U(t)?K(e,ne,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ne(t)}function ne(t){return e.enter(`htmlTextData`),o(t)}}var Ln={name:`labelEnd`,resolveAll:Vn,resolveTo:Hn,tokenize:Un},Rn={tokenize:Wn},zn={tokenize:Gn},Bn={tokenize:Kn};function Vn(e){let t=-1,n=[];for(;++t=3&&(a===null||V(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),U(t)?K(e,s,`whitespace`)(t):s(t))}}var q={continuation:{tokenize:ir},exit:or,name:`list`,tokenize:rr},tr={partial:!0,tokenize:sr},nr={partial:!0,tokenize:ar};function rr(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:gt(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check($n,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return gt(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Ft,r.interrupt?n:u,e.attempt(tr,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return U(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function ir(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ft,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,K(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!U(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(nr,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,K(e,e.attempt(q,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function ar(e,t,n){let r=this;return K(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function or(e){e.exit(this.containerState.type)}function sr(e,t,n){let r=this;return K(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!U(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var cr={name:`setextUnderline`,resolveTo:lr,tokenize:ur};function lr(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function ur(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),U(t)?K(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||V(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var dr={tokenize:fr};function fr(e){let t=this,n=e.attempt(Ft,r,e.attempt(this.parser.constructs.flowInitial,i,K(e,e.attempt(this.parser.constructs.flow,i,e.attempt(cn,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var pr={resolveAll:_r()},mr=gr(`string`),hr=gr(`text`);function gr(e){return{resolveAll:_r(e===`text`?vr:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++iDr,contentInitial:()=>xr,disable:()=>Or,document:()=>br,flow:()=>Cr,flowInitial:()=>Sr,insideSpan:()=>Er,string:()=>wr,text:()=>Tr}),br={42:q,43:q,45:q,48:q,49:q,50:q,51:q,52:q,53:q,54:q,55:q,56:q,57:q,62:Lt},xr={91:_n},Sr={[-2]:Yt,[-1]:Yt,32:Yt},Cr={35:Cn,42:$n,45:[cr,$n],60:On,61:cr,95:$n,96:Kt,126:Kt},wr={38:Ut,92:Vt},Tr={[-5]:Zn,[-4]:Zn,[-3]:Zn,33:qn,38:Ut,42:kt,60:[Nt,Fn],91:Yn,92:[xn,Vt],93:Ln,95:kt,96:$t},Er={null:[kt,pr]},Dr={null:[42,95]},Or={null:[]};function kr(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=L(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=Ot(a,l.events,l),l.events):[]}function f(e,t){return jr(p(e),t)}function p(e){return Ar(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function jr(e,t){let n=-1,r=[],i;for(;++n0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||Wr).call(a,void 0,e[0])}for(r.position={start:J(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:J(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function Yr(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Xr(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Zr(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=bt(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function Qr(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function $r(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function ei(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function ti(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ei(e,t);let i={src:bt(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function ni(e,t){let n={src:bt(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function ri(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function ii(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ei(e,t);let i={href:bt(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function ai(e,t){let n={href:bt(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function oi(e,t,n){let r=e.all(t),i=n?si(n):ci(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s1}function li(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=be(t.children[1]),o=ye(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function mi(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(yi(t.slice(i),i>0,!1)),a.join(``)}function yi(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===gi||t===_i;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===gi||t===_i;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function bi(e,t){let n={type:`text`,value:vi(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function xi(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var Si={blockquote:Kr,break:qr,code:Jr,delete:Yr,emphasis:Xr,footnoteReference:Zr,heading:Qr,html:$r,imageReference:ti,image:ni,inlineCode:ri,linkReference:ii,link:ai,listItem:oi,list:li,paragraph:ui,root:di,strong:fi,table:pi,tableCell:hi,tableRow:mi,text:bi,thematicBreak:xi,toml:Ci,yaml:Ci,definition:Ci,footnoteDefinition:Ci};function Ci(){}var wi=typeof self==`object`?self:globalThis,Ti=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new wi[e](t)},Ei=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(typeof wi[e]==`function`?Ti(e,t):Error(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(Ti(a,o),i)};return r},Di=e=>Ei(new Map,e)(0),Y=``,{toString:Oi}={},{keys:ki}=Object,Ai=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Oi.call(e).slice(8,-1);switch(n){case`Array`:return[1,Y];case`Object`:return[2,Y];case`Date`:return[3,Y];case`RegExp`:return[4,Y];case`Map`:return[5,Y];case`Set`:return[6,Y];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:e instanceof Error?[7,e.name||`Error`]:[2,n]},ji=([e,t])=>e===0&&(t===`function`||t===`symbol`),Mi=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Ai(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of ki(r))(e||!ji(Ai(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,isNaN(r.getTime())?Y:r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(ji(Ai(n))||ji(Ai(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!ji(Ai(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},Ni=(e,{json:t,lossy:n}={})=>{let r=[];return Mi(!(t||n),!!t,new Map,r)(e),r},Pi=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?Di(Ni(e,t)):structuredClone(e):(e,t)=>Di(Ni(e,t));function Fi(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function Ii(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function Li(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||Fi,r=e.options.footnoteBackLabel||Ii,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...Pi(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:` -`},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:` -`}]}}var Ri=(function(e){if(e==null)return Ui;if(typeof e==`function`)return Hi(e);if(typeof e==`object`)return Array.isArray(e)?zi(e):Bi(e);if(typeof e==`string`)return Vi(e);throw Error(`Expected function, string, or object as test`)});function zi(e){let t=[],n=-1;for(;++n`:``))+`)`})}return u;function u(){let l=Ki,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=Ji(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d0&&n.push({type:`text`,value:` -`}),n}function ra(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function ia(e,t){let n=Qi(e,t),r=n.one(e,void 0),i=Li(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:` -`},i)),a}function aa(e,t){return e&&`run`in e?async function(n,r){let i=ia(n,{file:r,...t});await e.run(i,r)}:function(n,r){return ia(n,{file:r,...e||t})}}function oa(e){if(e)throw e}var sa=e(n(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});ft.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var X={basename:da,dirname:fa,extname:pa,join:ma,sep:`/`};function da(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);_a(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function fa(e){if(_a(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function pa(e){_a(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function ma(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function ga(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function _a(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var va={cwd:ya};function ya(){return`/`}function ba(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function xa(e){if(typeof e==`string`)e=new URL(e);else if(!ba(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return Sa(e)}function Sa(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n0){let[r,...a]=t,o=n[i][1];ca(o)&&ca(r)&&(r=(0,sa.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function Ma(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function Na(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function Pa(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Fa(e){if(!ca(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function Ia(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function La(e){return Ra(e)?e:new wa(e)}function Ra(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function za(e){return typeof e==`string`||Ba(e)}function Ba(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var Va=a();r();var Ha=[],Ua={allowDangerousHtml:!0},Wa=/^(https?|ircs?|mailto|xmpp)$/i,Ga=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function Ka(e){let t=qa(e),n=Ja(e);return Ya(t.runSync(t.parse(n),n),e)}function qa(e){let t=e.rehypePlugins||Ha,n=e.remarkPlugins||Ha,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Ua}:Ua;return ja().use(Gr).use(n).use(aa,r).use(t)}function Ja(e){let t=e.children||``,n=new wa;return typeof t==`string`?n.value=t:``+t,n}function Ya(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||Xa;for(let e of Ga)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return Yi(e,l),Ne(e,{Fragment:Va.Fragment,components:i,ignoreInvalidStyle:!0,jsx:Va.jsx,jsxs:Va.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in tt)if(Object.hasOwn(tt,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=tt[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function Xa(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||Wa.test(e.slice(0,t))?e:``}function Za(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function Qa(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}function $a(e,t,n){let r=Ri((n||{}).ignore||[]),i=eo(t),a=-1;for(;++a0?{type:`text`,value:a}:void 0),a===!1?r.lastIndex=n+1:(s!==n&&u.push({type:`text`,value:e.value.slice(s,n)}),Array.isArray(a)?u.push(...a):a&&u.push(a),s=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}return l?(s?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(`)`),i=Za(e,`(`),a=Za(e,`)`);for(;r!==-1&&i>a;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(`)`),a++;return[e,n]}function yo(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||W(n)||yt(n))&&(!t||n!==47)}ko.peek=Oo;function bo(){this.buffer()}function xo(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function So(){this.buffer()}function Co(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function wo(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=R(this.sliceSerialize(e)).toLowerCase(),n.label=t}function To(e){this.exit(e)}function Eo(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=R(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Do(e){this.exit(e)}function Oo(){return`[`}function ko(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function Ao(){return{enter:{gfmFootnoteCallString:bo,gfmFootnoteCall:xo,gfmFootnoteDefinitionLabelString:So,gfmFootnoteDefinition:Co},exit:{gfmFootnoteCallString:wo,gfmFootnoteCall:To,gfmFootnoteDefinitionLabelString:Eo,gfmFootnoteDefinition:Do}}}function jo(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:ko},unsafe:[{character:`[`,inConstruct:[`label`,`phrasing`,`reference`]}]};function n(e,n,r,i){let a=r.createTracker(i),o=a.move(`[^`),s=r.enter(`footnoteDefinition`),c=r.enter(`label`);return o+=a.move(r.safe(r.associationId(e),{before:o,after:`]`})),c(),o+=a.move(`]:`),e.children&&e.children.length>0&&(a.shift(4),o+=a.move((t?` -`:` `)+r.indentLines(r.containerFlow(e,a.current()),t?No:Mo))),s(),o}}function Mo(e,t,n){return t===0?e:No(e,t,n)}function No(e,t,n){return(n?``:` `)+e}var Po=[`autolink`,`destinationLiteral`,`destinationRaw`,`reference`,`titleQuote`,`titleApostrophe`];zo.peek=Bo;function Fo(){return{canContainEols:[`delete`],enter:{strikethrough:Lo},exit:{strikethrough:Ro}}}function Io(){return{unsafe:[{character:`~`,inConstruct:`phrasing`,notInConstruct:Po}],handlers:{delete:zo}}}function Lo(e){this.enter({type:`delete`,children:[]},e)}function Ro(e){this.exit(e)}function zo(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function Bo(){return`~`}function Vo(e){return e.length}function Ho(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||Vo,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++ul&&(l=e[u].length);++ac[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++dc[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++u `),a.shift(2);let o=n.indentLines(n.containerFlow(e,a.current()),Ko);return i(),o}function Ko(e,t,n){return`>`+(n?``:` `)+e}function qo(e,t){return Jo(e,t.inConstruct,!0)&&!Jo(e,t.notInConstruct,!1)}function Jo(e,t,n){if(typeof t==`string`&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++ro&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function Zo(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function Qo(e){let t=e.options.fence||"`";if(t!=="`"&&t!==`~`)throw Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function $o(e,t,n,r){let i=Qo(n),a=e.value||``,o=i==="`"?`GraveAccent`:`Tilde`;if(Zo(e,n)){let e=n.enter(`codeIndented`),t=n.indentLines(a,es);return e(),t}let s=n.createTracker(r),c=i.repeat(Math.max(Xo(a,i)+1,3)),l=n.enter(`codeFenced`),u=s.move(c);if(e.lang){let t=n.enter(`codeFencedLang${o}`);u+=s.move(n.safe(e.lang,{before:u,after:` `,encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){let t=n.enter(`codeFencedMeta${o}`);u+=s.move(` `),u+=s.move(n.safe(e.meta,{before:u,after:` -`,encode:["`"],...s.current()})),t()}return u+=s.move(` -`),a&&(u+=s.move(a+` -`)),u+=s.move(c),l(),u}function es(e,t,n){return(n?``:` `)+e}function ts(e){let t=e.options.quote||`"`;if(t!==`"`&&t!==`'`)throw Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function ns(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`definition`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`[`);return l+=c.move(n.safe(n.associationId(e),{before:l,after:`]`,...c.current()})),l+=c.move(`]: `),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:` -`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),o(),l}function rs(e){let t=e.options.emphasis||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function is(e){return`&#x`+e.toString(16).toUpperCase()+`;`}function as(e,t,n){let r=Dt(e),i=Dt(t);return r===void 0?i===void 0?n===`_`?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}os.peek=ss;function os(e,t,n,r){let i=rs(n),a=n.enter(`emphasis`),o=n.createTracker(r),s=o.move(i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=as(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=is(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=as(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+is(d));let p=o.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function ss(e,t,n){return n.options.emphasis||`*`}function cs(e,t){let n=!1;return Yi(e,function(e){if(`value`in e&&/\r?\n|\r/.test(e.value)||e.type===`break`)return n=!0,!1}),!!((!e.depth||e.depth<3)&&rt(e)&&(t.options.setext||n))}function ls(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),a=n.createTracker(r);if(cs(e,n)){let t=n.enter(`headingSetext`),r=n.enter(`phrasing`),o=n.containerPhrasing(e,{...a.current(),before:` -`,after:` -`});return r(),t(),o+` -`+(i===1?`=`:`-`).repeat(o.length-(Math.max(o.lastIndexOf(`\r`),o.lastIndexOf(` -`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:` -`,...a.current()});return/^[\t ]/.test(l)&&(l=is(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}us.peek=ds;function us(e){return e.value||``}function ds(){return`<`}fs.peek=ps;function fs(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function ps(){return`!`}ms.peek=hs;function ms(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function hs(){return`!`}gs.peek=_s;function gs(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a\u007F]/.test(e.url))}ys.peek=bs;function ys(e,t,n,r){let i=ts(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(vs(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function bs(e,t,n){return vs(e,n)?`<`:`[`}xs.peek=Ss;function xs(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function Ss(){return`[`}function Cs(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function ws(e){let t=Cs(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Ts(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Es(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Ds(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?Ts(n):Cs(n),s=e.ordered?o===`.`?`)`:`.`:ws(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),Es(n)===o&&t){let t=-1;for(;++t-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function As(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var js=Ri([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function Ms(e,t,n,r){return(e.children.some(function(e){return js(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Ns(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Ps.peek=Fs;function Ps(e,t,n,r){let i=Ns(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=as(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=is(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=as(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+is(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function Fs(e,t,n){return n.options.strong||`*`}function Is(e,t,n,r){return n.safe(e.value,r)}function Ls(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Rs(e,t,n){let r=(Es(n)+(n.options.ruleSpaces?` `:``)).repeat(Ls(n));return n.options.ruleSpaces?r.slice(0,-1):r}var zs={blockquote:Go,break:Yo,code:$o,definition:ns,emphasis:os,hardBreak:Yo,heading:ls,html:us,image:fs,imageReference:ms,inlineCode:gs,link:ys,linkReference:xs,list:Ds,listItem:ks,paragraph:As,root:Ms,strong:Ps,text:Is,thematicBreak:Rs};function Bs(){return{enter:{table:Vs,tableData:Gs,tableHeader:Gs,tableRow:Us},exit:{codeText:Ks,table:Hs,tableData:Ws,tableHeader:Ws,tableRow:Ws}}}function Vs(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function Hs(e){this.exit(e),this.data.inTable=void 0}function Us(e){this.enter({type:`tableRow`,children:[]},e)}function Ws(e){this.exit(e)}function Gs(e){this.enter({type:`tableCell`,children:[]},e)}function Ks(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,qs));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function qs(e,t){return t===`|`?t:e}function Js(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:` -`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(` -`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return Ho(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var Cc={tokenize:jc,partial:!0};function wc(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Oc,continuation:{tokenize:kc},exit:Ac}},text:{91:{name:`gfmFootnoteCall`,tokenize:Dc},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:Tc,resolveTo:Ec}}}}function Tc(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=R(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function Ec(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function Dc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||H(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(R(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return H(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Oc(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||H(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=R(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return H(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),K(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function kc(e,t,n){return e.check(Ft,t,e.attempt(Cc,t,n))}function Ac(e){e.exit(`gfmFootnoteDefinition`)}function jc(e,t,n){let r=this;return K(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Mc(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Dt(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Nc=class{constructor(){this.map=[]}add(e,t,n){Pc(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Pc(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):V(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):U(t)?K(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||H(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,U(t)?K(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return U(t)?K(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||V(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return U(t)?K(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||V(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||V(n)?(e.exit(`tableRow`),t(n)):U(n)?K(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||H(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Rc(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Nc;for(;++nn[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Vc(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Bc(e,t,n,r,i){let a=[],o=Vc(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Vc(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Hc={name:`tasklistCheck`,tokenize:Wc};function Uc(){return{text:{91:Hc}}}function Wc(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return H(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return V(r)?t(r):U(r)?e.check({tokenize:Gc},t,n)(r):n(r)}}function Gc(e,t,n){return K(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Kc(e){return ut([lc(),wc(),Mc(e),Ic(),Uc()])}var qc={};function Jc(e){let t=this,n=e||qc,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Kc(n)),a.push(ec()),o.push(tc(n))}export{Ka as n,a as r,Jc as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-react-CXyOqTrO.js b/frontend/dashboard/assets/vendor-react-CXyOqTrO.js new file mode 100644 index 000000000..5f8c74844 --- /dev/null +++ b/frontend/dashboard/assets/vendor-react-CXyOqTrO.js @@ -0,0 +1,9 @@ +import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{nn as t}from"./vendor-lucide-DUPkM7me.js";var n=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,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 c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,ee||(ee=!0,oe());else{var t=n(l);t!==null&&le(x,t.startTime-e)}}}var ee=!1,te=-1,ne=5,re=-1;function ie(){return g?!0:!(e.unstable_now()-ret&&ie());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&le(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?oe():ee=!1}}}var oe;if(typeof y==`function`)oe=function(){y(ae)};else if(typeof MessageChannel<`u`){var se=new MessageChannel,ce=se.port2;se.port1.onmessage=ae,oe=function(){ce.postMessage(null)}}else oe=function(){_(ae,0)};function le(t,n){te=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(te),te=-1):h=!0,le(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,oe()))),r},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),r=e(((e,t)=>{t.exports=n()})),i=e((e=>{var n=t();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=i()})),o=e((e=>{var n=r(),i=t(),o=a();function s(e){var t=`https://react.dev/errors/`+e;if(1ge||(e.current=he[ge],he[ge]=null,ge--)}function T(e,t){ge++,he[ge]=e.current,e.current=t}var ve=_e(null),ye=_e(null),be=_e(null),xe=_e(null);function Se(e,t){switch(T(be,t),T(ye,e),T(ve,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}w(ve),T(ve,e)}function Ce(){w(ve),w(ye),w(be)}function we(e){e.memoizedState!==null&&T(xe,e);var t=ve.current,n=Hd(t,e.type);t!==n&&(T(ye,e),T(ve,n))}function Te(e){ye.current===e&&(w(ve),w(ye)),xe.current===e&&(w(xe),Qf._currentValue=me)}var Ee,De;function Oe(e){if(Ee===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ee=t&&t[1]||``,De=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ke=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Oe(n):``}function je(e,t){switch(e.tag){case 26:case 27:case 5:return Oe(e.type);case 16:return Oe(`Lazy`);case 13:return e.child!==t&&t!==null?Oe(`Suspense Fallback`):Oe(`Suspense`);case 19:return Oe(`SuspenseList`);case 0:case 15:return Ae(e.type,!1);case 11:return Ae(e.type.render,!1);case 1:return Ae(e.type,!0);case 31:return Oe(`Activity`);default:return``}}function Me(e){try{var t=``,n=null;do t+=je(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var Ne=Object.prototype.hasOwnProperty,Pe=n.unstable_scheduleCallback,Fe=n.unstable_cancelCallback,Ie=n.unstable_shouldYield,Le=n.unstable_requestPaint,Re=n.unstable_now,ze=n.unstable_getCurrentPriorityLevel,Be=n.unstable_ImmediatePriority,Ve=n.unstable_UserBlockingPriority,He=n.unstable_NormalPriority,Ue=n.unstable_LowPriority,We=n.unstable_IdlePriority,Ge=n.log,Ke=n.unstable_setDisableYieldValue,qe=null,Je=null;function Ye(e){if(typeof Ge==`function`&&Ke(e),Je&&typeof Je.setStrictMode==`function`)try{Je.setStrictMode(qe,e)}catch{}}var Xe=Math.clz32?Math.clz32:$e,Ze=Math.log,Qe=Math.LN2;function $e(e){return e>>>=0,e===0?32:31-(Ze(e)/Qe|0)|0}var et=256,tt=262144,nt=4194304;function rt(e){var t=e&42;if(t!==0)return t;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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function it(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=rt(n))):i=rt(o):i=rt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=rt(n))):i=rt(o)):i=rt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function at(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ot(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function st(){var e=nt;return nt<<=1,!(nt&62914560)&&(nt=4194304),e}function ct(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function lt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ut(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),Sn=!1;if(xn)try{var Cn={};Object.defineProperty(Cn,"passive",{get:function(){Sn=!0}}),window.addEventListener(`test`,Cn,Cn),window.removeEventListener(`test`,Cn,Cn)}catch{Sn=!1}var wn=null,Tn=null,En=null;function Dn(){if(En)return En;var e,t=Tn,n=t.length,r,i=`value`in wn?wn.value:wn.textContent,a=i.length;for(e=0;e=ar),cr=` `,lr=!1;function ur(e,t){switch(e){case`keyup`:return rr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function dr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var fr=!1;function pr(e,t){switch(e){case`compositionend`:return dr(t);case`keypress`:return t.which===32?(lr=!0,cr):null;case`textInput`:return e=t.data,e===cr&&lr?null:e;default:return null}}function mr(e,t){if(fr)return e===`compositionend`||!ir&&ur(e,t)?(e=Dn(),En=Tn=wn=null,fr=!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:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Ir(n)}}function Rr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Rr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Jt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Jt(e.document)}return t}function Br(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`)}var Vr=xn&&`documentMode`in document&&11>=document.documentMode,Hr=null,Ur=null,Wr=null,Gr=!1;function Kr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gr||Hr==null||Hr!==Jt(r)||(r=Hr,`selectionStart`in r&&Br(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Wr&&Fr(Wr,r)||(Wr=r,r=Dd(Ur,`onSelect`),0>=o,i-=o,Ri=1<<32-Xe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),k&&Bi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),k&&Bi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return k&&Bi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),k&&Bi(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===y&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case _:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===oe&&Ia(l)===r.type){n(e,r.sibling),c=i(r,a.props),Ua(c,a),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}a.type===y?(c=Ti(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=wi(a.type,a.key,a.props,null,e.mode,c),Ua(c,a),c.return=e,e=c)}return o(e);case v:a:{for(l=a.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Oi(a,e.mode,c),c.return=e,e=c}return o(e);case oe:return a=Ia(a),b(e,r,a,c)}if(pe(a))return h(e,r,a,c);if(ue(a)){if(l=ue(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Ha(a),c);if(a.$$typeof===te)return b(e,r,da(e,a),c);Wa(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=Ei(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{Va=0;var i=b(e,t,n,r);return Ba=null,i}catch(t){if(t===Aa||t===Ma)throw t;var a=bi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ka=Ga(!0),qa=Ga(!1),Ja=!1;function Ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Qa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,U&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=_i(e),gi(e,null,n),t}return pi(e,r,t,n),_i(e)}function $a(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}function eo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var to=!1;function no(){if(to){var e=xa;if(e!==null)throw e}}function ro(e,t,n,r){to=!1;var i=e.updateQueue;Ja=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(K&f)===f:(r&f)===f){f!==0&&f===ba&&(to=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ja=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),ql|=o,e.lanes=o,e.memoizedState=d}}function io(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function ao(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=S.T,s={};S.T=s,Bs(e,!1,t,n);try{var c=i(),l=S.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?zs(e,t,wa(c,r),mu(e)):zs(e,t,r,mu(e))}catch(n){zs(e,t,{then:function(){},status:`rejected`,reason:n},mu())}finally{C.p=a,o!==null&&s.types!==null&&(o.types=s.types),S.T=o}}function ks(){}function As(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=js(e).queue;Os(e,i,t,me,n===null?ks:function(){return Ms(e),n(r)})}function js(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:me,baseState:me,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:me},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ms(e){var t=js(e);t.next===null&&(t=e.alternate.memoizedState),zs(e,t.next.queue,{},mu())}function Ns(){return A(Qf)}function Ps(){return L().memoizedState}function Fs(){return L().memoizedState}function Is(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=mu();e=Za(n);var r=Qa(t,e,n);r!==null&&(gu(r,t,n),$a(r,t,n)),t={cache:ga()},e.payload=t;return}t=t.return}}function Ls(e,t,n){var r=mu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Vs(e)?Hs(t,n):(n=mi(e,t,n,r),n!==null&&(gu(n,e,r),Us(n,t,r)))}function Rs(e,t,n){zs(e,t,n,mu())}function zs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Vs(e))Hs(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,n);if(i.hasEagerState=!0,i.eagerState=s,Pr(s,o))return pi(e,t,i,0),W===null&&fi(),!1}catch{}if(n=mi(e,t,i,r),n!==null)return gu(n,e,r),Us(n,t,r),!0}return!1}function Bs(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Vs(e)){if(t)throw Error(s(479))}else t=mi(e,n,r,2),t!==null&&gu(t,e,2)}function Vs(e){var t=e.alternate;return e===N||t!==null&&t===N}function Hs(e,t){So=xo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Us(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}var Ws={readContext:A,use:zo,useCallback:I,useContext:I,useEffect:I,useImperativeHandle:I,useLayoutEffect:I,useInsertionEffect:I,useMemo:I,useReducer:I,useRef:I,useState:I,useDebugValue:I,useDeferredValue:I,useTransition:I,useSyncExternalStore:I,useId:I,useHostTransitionStatus:I,useFormState:I,useActionState:I,useOptimistic:I,useMemoCache:I,useCacheRefresh:I};Ws.useEffectEvent=I;var Gs={readContext:A,use:zo,useCallback:function(e,t){return Io().memoizedState=[e,t===void 0?null:t],e},useContext:A,useEffect:hs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ps(4194308,4,xs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ps(4194308,4,e,t)},useInsertionEffect:function(e,t){ps(4,2,e,t)},useMemo:function(e,t){var n=Io();t=t===void 0?null:t;var r=e();if(Co){Ye(!0);try{e()}finally{Ye(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Io();if(n!==void 0){var i=n(t);if(Co){Ye(!0);try{n(t)}finally{Ye(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ls.bind(null,N,e),[r.memoizedState,e]},useRef:function(e){var t=Io();return e={current:e},t.memoizedState=e},useState:function(e){e=Zo(e);var t=e.queue,n=Rs.bind(null,N,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Cs,useDeferredValue:function(e,t){return Es(Io(),e,t)},useTransition:function(){var e=Zo(!1);return e=Os.bind(null,N,e.queue,!0,!1),Io().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=N,i=Io();if(k){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),W===null)throw Error(s(349));K&127||Ko(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,hs(Jo.bind(null,r,a,e),[e]),r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,a,n,t),null),n},useId:function(){var e=Io(),t=W.identifierPrefix;if(k){var n=zi,r=Ri;n=(r&~(1<<32-Xe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=wo++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[yt]=t,a[bt]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch($(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Rc(t)}}return z(t),zc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Rc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=be.current,Zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=D,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[yt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||Ji(t,!0)}else e=Bd(e).createTextNode(r),e[yt]=t,t.stateNode=e}return z(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Zi(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[yt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),e=!1}else n=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(vo(t),t):(vo(t),null);if(t.flags&128)throw Error(s(558))}return z(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[yt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),i=!1}else i=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(vo(t),t):(vo(t),null)}return vo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Vc(t,t.updateQueue),z(t),null);case 4:return Ce(),e===null&&Cd(t.stateNode.containerInfo),z(t),null;case 10:return aa(t.type),z(t),null;case 19:if(w(M),r=t.memoizedState,r===null)return z(t),null;if(i=!!(t.flags&128),a=r.rendering,a===null){if(i)Hc(r,!1);else{if(J!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=yo(e),a!==null){for(t.flags|=128,Hc(r,!1),e=a.updateQueue,t.updateQueue=e,Vc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ci(n,e),n=n.sibling;return T(M,M.current&1|2),k&&Bi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Re()>ru&&(t.flags|=128,i=!0,Hc(r,!1),t.lanes=4194304)}}else{if(!i){if(e=yo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Vc(t,e),Hc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!k)return z(t),null}else 2*Re()-r.renderingStartTime>ru&&n!==536870912&&(t.flags|=128,i=!0,Hc(r,!1),t.lanes=4194304)}r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(z(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Re(),e.sibling=null,n=M.current,T(M,i?n&1|2:n&1),k&&Bi(t,r.treeForkCount),e);case 22:case 23:return vo(t),uo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(z(t),t.subtreeFlags&6&&(t.flags|=8192)):z(t),n=t.updateQueue,n!==null&&Vc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&w(Ea),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),aa(j),z(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Wc(e,t){switch(Ui(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return aa(j),Ce(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Te(t),null;case 31:if(t.memoizedState!==null){if(vo(t),t.alternate===null)throw Error(s(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return w(M),null;case 4:return Ce(),null;case 10:return aa(t.type),null;case 22:case 23:return vo(t),uo(),e!==null&&w(Ea),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return aa(j),null;case 25:return null;default:return null}}function Gc(e,t){switch(Ui(t),t.tag){case 3:aa(j),Ce();break;case 26:case 27:case 5:Te(t);break;case 4:Ce();break;case 31:t.memoizedState!==null&&vo(t);break;case 13:vo(t);break;case 19:w(M);break;case 10:aa(t.type);break;case 22:case 23:vo(t),uo(),e!==null&&w(Ea);break;case 24:aa(j)}}function Kc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){X(t,t.return,e)}}function qc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){X(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){X(t,t.return,e)}}function Jc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ao(t,n)}catch(t){X(e,e.return,t)}}}function Yc(e,t,n){n.props=Qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){X(e,t,n)}}function Xc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){X(e,t,n)}}function Zc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){X(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){X(e,t,n)}else n.current=null}}function Qc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){X(e,e.return,t)}}function $c(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[bt]=t}catch(t){X(e,e.return,t)}}function el(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function tl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||el(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.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=fn));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(rl(e,t,n),e=e.sibling;e!==null;)rl(e,t,n),e=e.sibling}function il(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);$(t,r,n),t[yt]=e,t[bt]=n}catch(t){X(e,e.return,t)}}var al=!1,B=!1,ol=!1,sl=typeof WeakSet==`function`?WeakSet:Set,V=null;function cl(e,t){if(e=e.containerInfo,Rd=sp,e=zr(e),Br(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var o=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=o),p===a&&++d===r&&(l=o),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,V=t;V!==null;)if(t=V,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,V=e;else for(;V!==null;){switch(t=V,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),$(a,r,n),a[yt]=e,E(a),r=a;break a;case`link`:var o=Vf(`link`,`href`,i).get(r+(n.href||``));if(o){for(var c=0;cg&&(o=g,g=h,h=o);var _=Lr(s,h),v=Lr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,S.T=null,n=uu,uu=null;var a=ou,o=cu;if(Y=0,su=ou=null,cu=0,U&6)throw Error(s(331));var c=U;if(U|=4,Ll(a.current),kl(a,a.current,o,n),U=c,ad(0,!1),Je&&typeof Je.onPostCommitFiberRoot==`function`)try{Je.onPostCommitFiberRoot(qe,a)}catch{}return!0}finally{C.p=i,S.T=r,Hu(e,t)}}function Gu(e,t,n){t=Ai(n,t),t=ic(e.stateNode,t,2),e=Qa(e,t,2),e!==null&&(lt(e,2),id(e))}function X(e,t,n){if(e.tag===3)Gu(e,e,n);else for(;t!==null;){if(t.tag===3){Gu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(au===null||!au.has(r))){e=Ai(n,e),n=ac(2),r=Qa(t,n,2),r!==null&&(oc(n,r,t,e),lt(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Vl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Gl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,W===e&&(K&n)===n&&(J===4||J===3&&(K&62914560)===K&&300>Re()-tu?!(U&2)&&Cu(e,0):Yl|=n,Zl===K&&(Zl=0)),id(e)}function Ju(e,t){t===0&&(t=st()),e=hi(e,t),e!==null&&(lt(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return Pe(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Xe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=K,a=it(r,r===W?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||at(r,a)||(n=!0,ud(r,a))}r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Gd()&&(e=rd);for(var t=Re(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}Y!==0&&Y!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Xt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),$(t,`link`,e),E(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Xt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Xt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Xt(n.imageSizes)+`"]`)):i+=`[href="`+Xt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),$(t,`link`,e),E(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Xt(r)+`"][href="`+Xt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),$(r,`link`,e),E(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=jt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);E(c),$(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=jt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),E(a),$(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=jt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),E(a),$(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=be.current)?gf(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=jt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=jt(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(jf(e)))&&!a._p&&(o.instance=a,o.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=jt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Af(e){return`href="`+Xt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),$(t,`link`,n),E(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Xt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Xt(n.href)+`"]`);if(r)return t.instance=r,E(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),E(r),$(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,E(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),E(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,E(i),i):(r=n,(i=mf.get(a))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),E(i),$(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,E(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),E(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=o()}));export{a as n,s as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-react-DL0_5iWL.js b/frontend/dashboard/assets/vendor-react-DL0_5iWL.js deleted file mode 100644 index ecd598561..000000000 --- a/frontend/dashboard/assets/vendor-react-DL0_5iWL.js +++ /dev/null @@ -1,9 +0,0 @@ -import{t as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t}from"./vendor-lucide-tZ8AzO6l.js";var n=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,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 c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,ee||(ee=!0,oe());else{var t=n(l);t!==null&&le(x,t.startTime-e)}}var ee=!1,te=-1,ne=5,re=-1;function ie(){return g?!0:!(e.unstable_now()-ret&&ie());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&le(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?oe():ee=!1}}}var oe;if(typeof y==`function`)oe=function(){y(ae)};else if(typeof MessageChannel<`u`){var se=new MessageChannel,ce=se.port2;se.port1.onmessage=ae,oe=function(){ce.postMessage(null)}}else oe=function(){_(ae,0)};function le(t,n){te=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(te),te=-1):h=!0,le(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,oe()))),r},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),r=e(((e,t)=>{t.exports=n()})),i=e((e=>{var n=t();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=i()})),o=e((e=>{var n=r(),i=t(),o=a();function s(e){var t=`https://react.dev/errors/`+e;if(1ge||(e.current=he[ge],he[ge]=null,ge--)}function T(e,t){ge++,he[ge]=e.current,e.current=t}var ve=_e(null),ye=_e(null),be=_e(null),xe=_e(null);function Se(e,t){switch(T(be,t),T(ye,e),T(ve,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}w(ve),T(ve,e)}function Ce(){w(ve),w(ye),w(be)}function we(e){e.memoizedState!==null&&T(xe,e);var t=ve.current,n=Hd(t,e.type);t!==n&&(T(ye,e),T(ve,n))}function Te(e){ye.current===e&&(w(ve),w(ye)),xe.current===e&&(w(xe),Qf._currentValue=me)}var Ee,De;function Oe(e){if(Ee===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ee=t&&t[1]||``,De=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ke=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Oe(n):``}function je(e,t){switch(e.tag){case 26:case 27:case 5:return Oe(e.type);case 16:return Oe(`Lazy`);case 13:return e.child!==t&&t!==null?Oe(`Suspense Fallback`):Oe(`Suspense`);case 19:return Oe(`SuspenseList`);case 0:case 15:return Ae(e.type,!1);case 11:return Ae(e.type.render,!1);case 1:return Ae(e.type,!0);case 31:return Oe(`Activity`);default:return``}}function Me(e){try{var t=``,n=null;do t+=je(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var Ne=Object.prototype.hasOwnProperty,Pe=n.unstable_scheduleCallback,Fe=n.unstable_cancelCallback,Ie=n.unstable_shouldYield,Le=n.unstable_requestPaint,Re=n.unstable_now,ze=n.unstable_getCurrentPriorityLevel,Be=n.unstable_ImmediatePriority,Ve=n.unstable_UserBlockingPriority,He=n.unstable_NormalPriority,Ue=n.unstable_LowPriority,We=n.unstable_IdlePriority,Ge=n.log,Ke=n.unstable_setDisableYieldValue,qe=null,Je=null;function Ye(e){if(typeof Ge==`function`&&Ke(e),Je&&typeof Je.setStrictMode==`function`)try{Je.setStrictMode(qe,e)}catch{}}var Xe=Math.clz32?Math.clz32:$e,Ze=Math.log,Qe=Math.LN2;function $e(e){return e>>>=0,e===0?32:31-(Ze(e)/Qe|0)|0}var et=256,tt=262144,nt=4194304;function rt(e){var t=e&42;if(t!==0)return t;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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function it(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=rt(n))):i=rt(o):i=rt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=rt(n))):i=rt(o)):i=rt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function at(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ot(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function st(){var e=nt;return nt<<=1,!(nt&62914560)&&(nt=4194304),e}function ct(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function lt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ut(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),Sn=!1;if(xn)try{var Cn={};Object.defineProperty(Cn,"passive",{get:function(){Sn=!0}}),window.addEventListener(`test`,Cn,Cn),window.removeEventListener(`test`,Cn,Cn)}catch{Sn=!1}var wn=null,Tn=null,En=null;function Dn(){if(En)return En;var e,t=Tn,n=t.length,r,i=`value`in wn?wn.value:wn.textContent,a=i.length;for(e=0;e=ar),cr=` `,lr=!1;function ur(e,t){switch(e){case`keyup`:return rr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function dr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var fr=!1;function pr(e,t){switch(e){case`compositionend`:return dr(t);case`keypress`:return t.which===32?(lr=!0,cr):null;case`textInput`:return e=t.data,e===cr&&lr?null:e;default:return null}}function mr(e,t){if(fr)return e===`compositionend`||!ir&&ur(e,t)?(e=Dn(),En=Tn=wn=null,fr=!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:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Ir(n)}}function Rr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Rr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function zr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Jt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Jt(e.document)}return t}function Br(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`)}var Vr=xn&&`documentMode`in document&&11>=document.documentMode,Hr=null,Ur=null,Wr=null,Gr=!1;function Kr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gr||Hr==null||Hr!==Jt(r)||(r=Hr,`selectionStart`in r&&Br(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Wr&&Fr(Wr,r)||(Wr=r,r=Dd(Ur,`onSelect`),0>=o,i-=o,Ri=1<<32-Xe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),k&&Bi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),k&&Bi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return k&&Bi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),k&&Bi(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===y&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case _:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===y){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===oe&&Ia(l)===r.type){n(e,r.sibling),c=i(r,a.props),Ua(c,a),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}a.type===y?(c=Ti(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=wi(a.type,a.key,a.props,null,e.mode,c),Ua(c,a),c.return=e,e=c)}return o(e);case v:a:{for(l=a.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Oi(a,e.mode,c),c.return=e,e=c}return o(e);case oe:return a=Ia(a),b(e,r,a,c)}if(pe(a))return h(e,r,a,c);if(ue(a)){if(l=ue(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Ha(a),c);if(a.$$typeof===te)return b(e,r,da(e,a),c);Wa(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=Ei(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{Va=0;var i=b(e,t,n,r);return Ba=null,i}catch(t){if(t===Aa||t===Ma)throw t;var a=bi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ka=Ga(!0),qa=Ga(!1),Ja=!1;function Ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Qa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,U&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=_i(e),gi(e,null,n),t}return pi(e,r,t,n),_i(e)}function $a(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}function eo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var to=!1;function no(){if(to){var e=xa;if(e!==null)throw e}}function ro(e,t,n,r){to=!1;var i=e.updateQueue;Ja=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(K&f)===f:(r&f)===f){f!==0&&f===ba&&(to=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ja=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),ql|=o,e.lanes=o,e.memoizedState=d}}function io(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function ao(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=S.T,s={};S.T=s,Bs(e,!1,t,n);try{var c=i(),l=S.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?zs(e,t,wa(c,r),mu(e)):zs(e,t,r,mu(e))}catch(n){zs(e,t,{then:function(){},status:`rejected`,reason:n},mu())}finally{C.p=a,o!==null&&s.types!==null&&(o.types=s.types),S.T=o}}function ks(){}function As(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=js(e).queue;Os(e,i,t,me,n===null?ks:function(){return Ms(e),n(r)})}function js(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:me,baseState:me,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:me},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ms(e){var t=js(e);t.next===null&&(t=e.alternate.memoizedState),zs(e,t.next.queue,{},mu())}function Ns(){return A(Qf)}function Ps(){return L().memoizedState}function Fs(){return L().memoizedState}function Is(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=mu();e=Za(n);var r=Qa(t,e,n);r!==null&&(gu(r,t,n),$a(r,t,n)),t={cache:ga()},e.payload=t;return}t=t.return}}function Ls(e,t,n){var r=mu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Vs(e)?Hs(t,n):(n=mi(e,t,n,r),n!==null&&(gu(n,e,r),Us(n,t,r)))}function Rs(e,t,n){zs(e,t,n,mu())}function zs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Vs(e))Hs(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,n);if(i.hasEagerState=!0,i.eagerState=s,Pr(s,o))return pi(e,t,i,0),W===null&&fi(),!1}catch{}if(n=mi(e,t,i,r),n!==null)return gu(n,e,r),Us(n,t,r),!0}return!1}function Bs(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Vs(e)){if(t)throw Error(s(479))}else t=mi(e,n,r,2),t!==null&&gu(t,e,2)}function Vs(e){var t=e.alternate;return e===N||t!==null&&t===N}function Hs(e,t){So=xo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Us(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ft(e,n)}}var Ws={readContext:A,use:zo,useCallback:I,useContext:I,useEffect:I,useImperativeHandle:I,useLayoutEffect:I,useInsertionEffect:I,useMemo:I,useReducer:I,useRef:I,useState:I,useDebugValue:I,useDeferredValue:I,useTransition:I,useSyncExternalStore:I,useId:I,useHostTransitionStatus:I,useFormState:I,useActionState:I,useOptimistic:I,useMemoCache:I,useCacheRefresh:I};Ws.useEffectEvent=I;var Gs={readContext:A,use:zo,useCallback:function(e,t){return Io().memoizedState=[e,t===void 0?null:t],e},useContext:A,useEffect:hs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ps(4194308,4,xs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ps(4194308,4,e,t)},useInsertionEffect:function(e,t){ps(4,2,e,t)},useMemo:function(e,t){var n=Io();t=t===void 0?null:t;var r=e();if(Co){Ye(!0);try{e()}finally{Ye(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Io();if(n!==void 0){var i=n(t);if(Co){Ye(!0);try{n(t)}finally{Ye(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ls.bind(null,N,e),[r.memoizedState,e]},useRef:function(e){var t=Io();return e={current:e},t.memoizedState=e},useState:function(e){e=Zo(e);var t=e.queue,n=Rs.bind(null,N,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Cs,useDeferredValue:function(e,t){return Es(Io(),e,t)},useTransition:function(){var e=Zo(!1);return e=Os.bind(null,N,e.queue,!0,!1),Io().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=N,i=Io();if(k){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),W===null)throw Error(s(349));K&127||Ko(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,hs(Jo.bind(null,r,a,e),[e]),r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,a,n,t),null),n},useId:function(){var e=Io(),t=W.identifierPrefix;if(k){var n=zi,r=Ri;n=(r&~(1<<32-Xe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=wo++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[yt]=t,a[bt]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch($(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Rc(t)}}return z(t),zc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Rc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=be.current,Zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=D,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[yt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||Ji(t,!0)}else e=Bd(e).createTextNode(r),e[yt]=t,t.stateNode=e}return z(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Zi(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[yt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),e=!1}else n=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(vo(t),t):(vo(t),null);if(t.flags&128)throw Error(s(558))}return z(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[yt]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),i=!1}else i=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(vo(t),t):(vo(t),null)}return vo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Vc(t,t.updateQueue),z(t),null);case 4:return Ce(),e===null&&Cd(t.stateNode.containerInfo),z(t),null;case 10:return aa(t.type),z(t),null;case 19:if(w(M),r=t.memoizedState,r===null)return z(t),null;if(i=(t.flags&128)!=0,a=r.rendering,a===null)if(i)Hc(r,!1);else{if(J!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=yo(e),a!==null){for(t.flags|=128,Hc(r,!1),e=a.updateQueue,t.updateQueue=e,Vc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ci(n,e),n=n.sibling;return T(M,M.current&1|2),k&&Bi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Re()>ru&&(t.flags|=128,i=!0,Hc(r,!1),t.lanes=4194304)}else{if(!i)if(e=yo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Vc(t,e),Hc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!k)return z(t),null}else 2*Re()-r.renderingStartTime>ru&&n!==536870912&&(t.flags|=128,i=!0,Hc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(z(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Re(),e.sibling=null,n=M.current,T(M,i?n&1|2:n&1),k&&Bi(t,r.treeForkCount),e);case 22:case 23:return vo(t),uo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(z(t),t.subtreeFlags&6&&(t.flags|=8192)):z(t),n=t.updateQueue,n!==null&&Vc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&w(Ea),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),aa(j),z(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Wc(e,t){switch(Ui(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return aa(j),Ce(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Te(t),null;case 31:if(t.memoizedState!==null){if(vo(t),t.alternate===null)throw Error(s(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return w(M),null;case 4:return Ce(),null;case 10:return aa(t.type),null;case 22:case 23:return vo(t),uo(),e!==null&&w(Ea),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return aa(j),null;case 25:return null;default:return null}}function Gc(e,t){switch(Ui(t),t.tag){case 3:aa(j),Ce();break;case 26:case 27:case 5:Te(t);break;case 4:Ce();break;case 31:t.memoizedState!==null&&vo(t);break;case 13:vo(t);break;case 19:w(M);break;case 10:aa(t.type);break;case 22:case 23:vo(t),uo(),e!==null&&w(Ea);break;case 24:aa(j)}}function Kc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){X(t,t.return,e)}}function qc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){X(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){X(t,t.return,e)}}function Jc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ao(t,n)}catch(t){X(e,e.return,t)}}}function Yc(e,t,n){n.props=Qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){X(e,t,n)}}function Xc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){X(e,t,n)}}function Zc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){X(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){X(e,t,n)}else n.current=null}function Qc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){X(e,e.return,t)}}function $c(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[bt]=t}catch(t){X(e,e.return,t)}}function el(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function tl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||el(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.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=fn));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(rl(e,t,n),e=e.sibling;e!==null;)rl(e,t,n),e=e.sibling}function il(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);$(t,r,n),t[yt]=e,t[bt]=n}catch(t){X(e,e.return,t)}}var al=!1,B=!1,ol=!1,sl=typeof WeakSet==`function`?WeakSet:Set,V=null;function cl(e,t){if(e=e.containerInfo,Rd=sp,e=zr(e),Br(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var o=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=o+i),f!==a||r!==0&&f.nodeType!==3||(l=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=o),p===a&&++d===r&&(l=o),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,V=t;V!==null;)if(t=V,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,V=e;else for(;V!==null;){switch(t=V,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),$(a,r,n),a[yt]=e,E(a),r=a;break a;case`link`:var o=Vf(`link`,`href`,i).get(r+(n.href||``));if(o){for(var c=0;cg&&(o=g,g=h,h=o);var _=Lr(s,h),v=Lr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,S.T=null,n=uu,uu=null;var a=ou,o=cu;if(Y=0,su=ou=null,cu=0,U&6)throw Error(s(331));var c=U;if(U|=4,Ll(a.current),kl(a,a.current,o,n),U=c,ad(0,!1),Je&&typeof Je.onPostCommitFiberRoot==`function`)try{Je.onPostCommitFiberRoot(qe,a)}catch{}return!0}finally{C.p=i,S.T=r,Hu(e,t)}}function Gu(e,t,n){t=Ai(n,t),t=ic(e.stateNode,t,2),e=Qa(e,t,2),e!==null&&(lt(e,2),id(e))}function X(e,t,n){if(e.tag===3)Gu(e,e,n);else for(;t!==null;){if(t.tag===3){Gu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(au===null||!au.has(r))){e=Ai(n,e),n=ac(2),r=Qa(t,n,2),r!==null&&(oc(n,r,t,e),lt(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Vl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Gl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,W===e&&(K&n)===n&&(J===4||J===3&&(K&62914560)===K&&300>Re()-tu?!(U&2)&&Cu(e,0):Yl|=n,Zl===K&&(Zl=0)),id(e)}function Ju(e,t){t===0&&(t=st()),e=hi(e,t),e!==null&&(lt(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return Pe(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Xe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=K,a=it(r,r===W?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||at(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Gd()&&(e=rd);for(var t=Re(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}Y!==0&&Y!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Xt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),$(t,`link`,e),E(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Xt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Xt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Xt(n.imageSizes)+`"]`)):i+=`[href="`+Xt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),$(t,`link`,e),E(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Xt(r)+`"][href="`+Xt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),$(r,`link`,e),E(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=jt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);E(c),$(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=jt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),E(a),$(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=jt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),E(a),$(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=be.current)?gf(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=jt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=jt(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(jf(e)))&&!a._p&&(o.instance=a,o.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=jt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Af(e){return`href="`+Xt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),$(t,`link`,n),E(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Xt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Xt(n.href)+`"]`);if(r)return t.instance=r,E(r),r;var i=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),E(r),$(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,E(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),E(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,E(i),i):(r=n,(i=mf.get(a))&&(r=h({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),E(i),$(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,E(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),E(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=o()}));export{a as n,s as t}; \ No newline at end of file diff --git a/frontend/dashboard/assets/vendor-recharts-BvkoFyWX.js b/frontend/dashboard/assets/vendor-recharts-BvkoFyWX.js deleted file mode 100644 index 751a3e507..000000000 --- a/frontend/dashboard/assets/vendor-recharts-BvkoFyWX.js +++ /dev/null @@ -1,53 +0,0 @@ -import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";import{$t as r}from"./vendor-lucide-tZ8AzO6l.js";import{n as i}from"./vendor-react-DL0_5iWL.js";var a=e(r()),o=i();function s(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t{var n=e.children,r=e.width,i=e.height,o=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=b(e,v),p=o||{width:r,height:i,x:0,y:0},m=c(`recharts-surface`,s);return a.createElement(`svg`,y({},g(f),{className:m,width:r,height:i,style:l,viewBox:`${p.x} ${p.y} ${p.width} ${p.height}`,ref:t}),a.createElement(`title`,null,u),a.createElement(`desc`,null,d),n)}),C=[`children`,`className`];function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var n=e.children,r=e.className,i=T(e,C),o=c(`recharts-layer`,r);return a.createElement(`g`,w({className:o},g(i),{ref:t}),n)});function O(e){return e===`__proto__`}var k=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function A(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:k.test(e);default:return!1}}function j(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function M(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(M).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function N(e){if(Array.isArray(e))return e.map(j);if(typeof e==`symbol`)return[e];e=M(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r1&&arguments[1]!==void 0?arguments[1]:ne),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function P(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+re(i)+n},``)}var ie=e=>e===0?0:e>0?1:-1,ae=e=>typeof e==`number`&&e!=+e,oe=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,F=e=>(typeof e==`number`||e instanceof Number)&&!ae(e),se=e=>F(e)||typeof e==`string`,ce=0,le=e=>{var t=++ce;return`${e||``}${t}`},ue=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!F(e)&&typeof e!=`string`)return n;var i;if(oe(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ae(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},de=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;re&&(typeof t==`function`?t(e):ee(e,t))===n)}var me=e=>e==null,he=e=>me(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function ge(e){return e!=null}function _e(){}function ve(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function be(e){for(var t=1;t{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=ve(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?be({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?be({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?be({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?be({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?be({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?be({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?be({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?be({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(F(n.x)||oe(n.x))&&(F(n.y)||oe(n.y))?be({x:c+ue(n.x,g),y:l+ue(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):be({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},Te=[`top`,`left`,`right`,`bottom`];function Ee(e){return e==null?!1:typeof e==`object`||Te.includes(e)}var De=(0,a.createContext)(null);function I(e){return function(){return e}}var Oe=Math.PI,ke=2*Oe,Ae=1e-6,je=ke-Ae;function Me(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw Error(`invalid digits: ${e}`);if(t>15)return Me;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;tAe)if(!(Math.abs(u*s-c*l)>Ae)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((Oe-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>Ae&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>Ae||Math.abs(this._y1-l)>Ae)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%ke+ke),d>je?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>Ae&&this._append`A${n},${n},0,${+(d>=Oe)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Fe(){return new Pe}Fe.prototype=Pe.prototype;function Ie(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new Pe(t)}Array.prototype.slice;function Le(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Re(e){this._context=e}Re.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 ze(e){return new Re(e)}function Be(e){return e[0]}function Ve(e){return e[1]}function He(e,t){var n=I(!0),r=null,i=ze,a=null,o=Ie(s);e=typeof e==`function`?e:e===void 0?Be:I(e),t=typeof t==`function`?t:t===void 0?Ve:I(t);function s(s){var c,l=(s=Le(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return He().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:I(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:I(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:I(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:I(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:I(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:I(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:I(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var We=class{constructor(e,t){this._context=e,this._x=t}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(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._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t);break}this._x0=e,this._y0=t}};function Ge(e){return new We(e,!0)}function Ke(e){return new We(e,!1)}function qe(){}function Je(e,t,n){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+n)/6)}function Ye(e){this._context=e}Ye.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:Je(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:Je(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Xe(e){return new Ye(e)}function Ze(e){this._context=e}Ze.prototype={areaStart:qe,areaEnd:qe,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:Je(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Qe(e){return new Ze(e)}function $e(e){this._context=e}$e.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 n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Je(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function et(e){return new $e(e)}function tt(e){this._context=e}tt.prototype={areaStart:qe,areaEnd:qe,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 nt(e){return new tt(e)}function rt(e){return e<0?-1:1}function it(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(rt(a)+rt(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function at(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function ot(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function st(e){this._context=e}st.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:ot(this,this._t0,at(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 n=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,ot(this,at(this,n=it(this,e,t)),n);break;default:ot(this,this._t0,n=it(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function ct(e){this._context=new lt(e)}(ct.prototype=Object.create(st.prototype)).point=function(e,t){st.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,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function ut(e){return new st(e)}function dt(e){return new ct(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,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=pt(e),i=pt(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-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 n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}this._x=e,this._y=t}};function gt(e){return new ht(e,.5)}function _t(e){return new ht(e,0)}function vt(e){return new ht(e,1)}function yt(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n=0;)n[t]=t;return n}function xt(e,t){return e[t]}function St(e){let t=[];return t.key=e,t}function Ct(){var e=I([]),t=bt,n=yt,r=xt;function i(i){var a=Array.from(e.apply(this,arguments),St),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o0){for(var n,r,i=0,a=e[0].length,o;i0){for(var n=0,r=e[t[0]],i,a=r.length;n0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r`radius`in e&&`startAngle`in e&&`endAngle`in e,Ot=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,a.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{u(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},kt=(e,t,n)=>r=>(e(t,n,r),null),At=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];u(i)&&typeof a==`function`&&(r||={},r[i]=kt(a,t,n))}),r};function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mt(e){for(var t=1;t(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Lt(e,t){let n=new Map;for(let r=0;rObject.prototype.propertyIsEnumerable.call(e,t))}function Wt(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Gt=`[object RegExp]`,Kt=`[object String]`,qt=`[object Number]`,Jt=`[object Boolean]`,Yt=`[object Arguments]`,Xt=`[object Symbol]`,Zt=`[object Date]`,Qt=`[object Map]`,$t=`[object Set]`,en=`[object Array]`,tn=`[object Function]`,nn=`[object ArrayBuffer]`,rn=`[object Object]`,an=`[object Error]`,on=`[object DataView]`,sn=`[object Uint8Array]`,cn=`[object Uint8ClampedArray]`,ln=`[object Uint16Array]`,un=`[object Uint32Array]`,dn=`[object BigUint64Array]`,fn=`[object Int8Array]`,pn=`[object Int16Array]`,mn=`[object Int32Array]`,hn=`[object BigInt64Array]`,gn=`[object Float32Array]`,_n=`[object Float64Array]`,vn=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function yn(e){return vn.Buffer!==void 0&&vn.Buffer.isBuffer(e)}function bn(e,t){return xn(e,void 0,e,new Map,t)}function xn(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(Vt(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;avoid 0)}function On(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return kn(e,t,n,r);case`function`:return Object.keys(t).length>0?On(e,{...t},n,r,i):Tn(e,t);default:return En(e)&&i?typeof t!=`string`||t===``:Tn(e,t)}}function kn(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return jn(e,t,n,r);if(t instanceof Map)return An(e,t,n,r);if(t instanceof Set)return Mn(e,t,n,r);let i=Object.keys(t);if(e==null||Vt(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;avoid 0)}function Pn(e){return e=wn(e),t=>Nn(t,e)}function Fn(e,t){return bn(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!==void 0)return o;if(typeof e==`object`){if(Wt(e)===`[object Object]`&&typeof e.constructor!=`function`){let t={};return a.set(e,t),Sn(t,e,i,a),t}switch(Object.prototype.toString.call(e)){case qt:case Kt:case Jt:{let t=new e.constructor(e?.valueOf());return Sn(t,e),t}case Yt:{let t={};return Sn(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}})}function In(e){return Fn(e)}var Ln=/^(?:0|[1-9]\d*)$/;function Rn(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e=0}function Wn(e){return e!=null&&typeof e!=`function`&&Un(e.length)}function Gn(e){return typeof e==`object`&&!!e}function Kn(e){return Gn(e)&&Wn(e)}function qn(e,t=zt){return Kn(e)?Lt(Array.from(e),Rt(Hn(t),1)):[]}function Jn(e,t,n){return t===!0?qn(e,n):typeof t==`function`?qn(e,t):e}var Yn=n((e=>{var t=r();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:n,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Xn=n(((e,t)=>{t.exports=Yn()})),Zn=n((e=>{var t=r(),n=Xn();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Qn=n(((e,t)=>{t.exports=Zn()})),$n=e(Qn()),er=(0,a.createContext)(null),tr=e=>e,L=()=>{var e=(0,a.useContext)(er);return e?e.store.dispatch:tr},nr=()=>{},rr=()=>nr,ir=(e,t)=>e===t;function R(e){var t=(0,a.useContext)(er),n=(0,a.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:nr,[t,e]);return(0,$n.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:rr,t?t.store.getState:nr,t?t.store.getState:nr,n,ir)}function ar(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function or(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var sr=e=>Array.isArray(e)?e:[e];function cr(e){let t=Array.isArray(e[0])?e[0]:e;return or(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function lr(e,t){let n=[],{length:r}=e;for(let i=0;i`u`?ur:WeakRef,fr=0,pr=1;function mr(){return{s:fr,v:void 0,o:null,p:null}}function hr(e){return e instanceof dr?e.deref():e}function gr(e,t={}){let n=mr(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e{n=mr(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function _r(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),ar(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=gr,argsMemoizeOptions:u=[]}={...n,...a},d=sr(c),f=sr(u),p=cr(e),m=s(function(){return t++,o.apply(null,arguments)},...d),h=l(function(){r++;let e=lr(p,arguments);return i=m.apply(null,e),i},...f);return Object.assign(h,{resultFunc:o,memoizedResultFunc:m,dependencies:p,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var z=_r(gr);function vr(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a{if(e!==t){let r=br(e),i=br(t);if(r===i&&r===0){if(et)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0};function Sr(e){return typeof e==`symbol`||e instanceof Symbol}var Cr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wr=/^\w*$/;function Tr(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||Sr(e)?!0:typeof e==`string`&&(wr.test(e)||!Cr.test(e))||t!=null&&Object.hasOwn(t,e)}function Er(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;et==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||Tr(e)?e:{key:e,path:N(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;re.original)}function Dr(e,...t){let n=t.length;return n>1&&yr(e,t[0],t[1])?t=[]:n>2&&yr(t[0],t[1],t[2])&&(t=[t[0]]),Er(e,vr(t),[`asc`])}var Or=e=>e.legend.settings,kr=e=>e.legend.size;z([e=>e.legend.payload,Or],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?Dr(r,n):r});function Ar(e,t){return Fr(e)||Pr(e,t)||Mr(e,t)||jr()}function jr(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mr(e,t){if(e){if(typeof e==`string`)return Nr(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Nr(e,t):void 0}}function Nr(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nIr||Math.abs(e.left-t.left)>Ir||Math.abs(e.top-t.top)>Ir||Math.abs(e.width-t.width)>Ir}function Rr(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function zr(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=Ar((0,a.useState)({height:0,left:0,top:0,width:0}),2),n=t[0],r=t[1],i=(0,a.useRef)(null),o=(0,a.useRef)(n);o.current=n;var s=(0,a.useCallback)(e=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),e!=null){var t=Rr(e);if(Lr(t,o.current)&&r(t),typeof ResizeObserver<`u`){var n=new ResizeObserver(()=>{var t=Rr(e);Lr(t,o.current)&&r(t)});n.observe(e),i.current=n}}},[...e]);return(0,a.useEffect)(()=>()=>{var e;(e=i.current)==null||e.disconnect()},[]),[n,s]}function Br(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Vr=typeof Symbol==`function`&&Symbol.observable||`@@observable`,Hr=()=>Math.random().toString(36).substring(7).split(``).join(`.`),Ur={INIT:`@@redux/INIT${Hr()}`,REPLACE:`@@redux/REPLACE${Hr()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Hr()}`};function Wr(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Gr(e,t,n){if(typeof e!=`function`)throw Error(Br(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(Br(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(Br(1));return n(Gr)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(Br(3));return i}function d(e){if(typeof e!=`function`)throw Error(Br(4));if(c)throw Error(Br(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(Br(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!Wr(e))throw Error(Br(7));if(e.type===void 0)throw Error(Br(8));if(typeof e.type!=`string`)throw Error(Br(17));if(c)throw Error(Br(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(Br(10));r=e,f({type:Ur.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(Br(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[Vr](){return this}}}return f({type:Ur.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[Vr]:m}}function Kr(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:Ur.INIT})===void 0)throw Error(Br(12));if(n(void 0,{type:Ur.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(Br(13))})}function qr(e){let t=Object.keys(e),n={};for(let r=0;re:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function Yr(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(Br(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=Jr(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function Xr(e){return Wr(e)&&`type`in e&&typeof e.type==`string`}var Zr=Symbol.for(`immer-nothing`),Qr=Symbol.for(`immer-draftable`),$r=Symbol.for(`immer-state`);function ei(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ti=Object,ni=ti.getPrototypeOf,ri=`constructor`,ii=`prototype`,ai=`configurable`,oi=`enumerable`,si=`writable`,ci=`value`,li=e=>!!e&&!!e[$r];function ui(e){return e?pi(e)||bi(e)||!!e[Qr]||!!e[ri]?.[Qr]||xi(e)||Si(e):!1}var di=ti[ii][ri].toString(),fi=new WeakMap;function pi(e){if(!e||!Ci(e))return!1;let t=ni(e);if(t===null||t===ti[ii])return!0;let n=ti.hasOwnProperty.call(t,ri)&&t[ri];if(n===Object)return!0;if(!wi(n))return!1;let r=fi.get(n);return r===void 0&&(r=Function.toString.call(n),fi.set(n,r)),r===di}function mi(e,t,n=!0){hi(e)===0?(n?Reflect.ownKeys(e):ti.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function hi(e){let t=e[$r];return t?t.type_:bi(e)?1:xi(e)?2:Si(e)?3:0}var gi=(e,t,n=hi(e))=>n===2?e.has(t):ti[ii].hasOwnProperty.call(e,t),_i=(e,t,n=hi(e))=>n===2?e.get(t):e[t],vi=(e,t,n,r=hi(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function yi(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var bi=Array.isArray,xi=e=>e instanceof Map,Si=e=>e instanceof Set,Ci=e=>typeof e==`object`,wi=e=>typeof e==`function`,Ti=e=>typeof e==`boolean`;function Ei(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Di=e=>e.copy_||e.base_,Oi=e=>e.modified_?e.copy_:e.base_;function ki(e,t){if(xi(e))return new Map(e);if(Si(e))return new Set(e);if(bi(e))return Array[ii].slice.call(e);let n=pi(e);if(t===!0||t===`class_only`&&!n){let t=ti.getOwnPropertyDescriptors(e);delete t[$r];let n=Reflect.ownKeys(t);for(let r=0;r1&&ti.defineProperties(e,{set:Mi,add:Mi,clear:Mi,delete:Mi}),ti.freeze(e),t&&mi(e,(e,t)=>{Ai(t,!0)},!1),e)}function ji(){ei(2)}var Mi={[ci]:ji};function Ni(e){return e===null||!Ci(e)||ti.isFrozen(e)}var Pi=`MapSet`,Fi=`Patches`,Ii=`ArrayMethods`,Li={};function Ri(e){let t=Li[e];return t||ei(0,e),t}var zi=e=>!!Li[e],Bi,Vi=()=>Bi,Hi=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:zi(Pi)?Ri(Pi):void 0,arrayMethodsPlugin_:zi(Ii)?Ri(Ii):void 0});function Ui(e,t){t&&(e.patchPlugin_=Ri(Fi),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Wi(e){Gi(e),e.drafts_.forEach(qi),e.drafts_=null}function Gi(e){e===Bi&&(Bi=e.parent_)}var Ki=e=>Bi=Hi(Bi,e);function qi(e){let t=e[$r];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ji(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[$r].modified_&&(Wi(t),ei(4)),ui(e)&&(e=Yi(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[$r].base_,e,t)}else e=Yi(t,n);return Xi(t,e,!0),Wi(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===Zr?void 0:e}function Yi(e,t){if(Ni(t))return t;let n=t[$r];if(!n)return ia(t,e.handledSet_,e);if(!Qi(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);na(n,e)}return n.copy_}function Xi(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Ai(t,n)}function Zi(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Qi=(e,t)=>e.scope_===t,$i=[];function ea(e,t,n,r){let i=Di(e),a=e.type_;if(r!==void 0&&_i(i,r,a)===t){vi(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;mi(i,(e,n)=>{if(li(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??$i;for(let e of o)vi(i,e,n,a)}function ta(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Qi(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Oi(i);ea(e,i.draft_??i,a,n),na(i,r)})}function na(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Zi(e)}}function ra(e,t,n){let{scope_:r}=e;if(li(n)){let i=n[$r];Qi(i,r)&&i.callbacks_.push(function(){pa(e),ea(e,n,Oi(i),t)})}else ui(n)&&e.callbacks_.push(function(){let i=Di(e);e.type_===3?i.has(n)&&ia(n,r.handledSet_,r):_i(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&ia(_i(e.copy_,t,e.type_),r.handledSet_,r)})}function ia(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||li(e)||t.has(e)||!ui(e)||Ni(e)?e:(t.add(e),mi(e,(r,i)=>{if(li(i)){let t=i[$r];Qi(t,n)&&(vi(e,r,Oi(t),e.type_),Zi(t))}else ui(i)&&ia(i,t,n)}),e)}function aa(e,t){let n=bi(e),r={type_:+!!n,scope_:t?t.scope_:Vi(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=oa;n&&(i=[r],a=sa);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var oa={get(e,t){if(t===$r)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Di(e);if(!gi(i,t,e.type_))return ua(e,i,t);let a=i[t];if(e.finalized_||!ui(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Ei(t))return a;if(a===ca(e.base_,t)||la(e,t,a)){pa(e);let n=e.type_===1?+t:t,r=ha(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Di(e)},ownKeys(e){return Reflect.ownKeys(Di(e))},set(e,t,n){let r=da(Di(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=ca(Di(e),t),i=r?.[$r];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(yi(n,r)&&(n!==void 0||gi(e.base_,t,e.type_)))return!0;pa(e),fa(e)}return e.copy_[t]===n&&(n!==void 0||gi(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ra(e,t,n),!0)},deleteProperty(e,t){return pa(e),ca(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),fa(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Di(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[si]:!0,[ai]:e.type_!==1||t!==`length`,[oi]:r[oi],[ci]:n[t]}},defineProperty(){ei(11)},getPrototypeOf(e){return ni(e.base_)},setPrototypeOf(){ei(12)}},sa={};for(let e in oa){let t=oa[e];sa[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}sa.deleteProperty=function(e,t){return sa.set.call(this,e,t,void 0)},sa.set=function(e,t,n){return oa.set.call(this,e[0],t,n,e[0])};function ca(e,t){let n=e[$r];return(n?Di(n):e)[t]}function la(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!ui(n)||n[$r]?!1:e.baseRefs_.has(n)}function ua(e,t,n){let r=da(t,n);return r?ci in r?r[ci]:r.get?.call(e.draft_):void 0}function da(e,t){if(!(t in e))return;let n=ni(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ni(n)}}function fa(e){e.modified_||(e.modified_=!0,e.parent_&&fa(e.parent_))}function pa(e){e.copy_||=(e.assigned_=new Map,ki(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ma=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(wi(e)&&!wi(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}wi(t)||ei(6),n!==void 0&&!wi(n)&&ei(7);let r;if(ui(e)){let i=Ki(this),a=ha(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Wi(i):Gi(i)}return Ui(i,n),Ji(r,i)}else if(!e||!Ci(e)){if(r=t(e),r===void 0&&(r=e),r===Zr&&(r=void 0),this.autoFreeze_&&Ai(r,!0),n){let t=[],i=[];Ri(Fi).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else ei(1,e)},this.produceWithPatches=(e,t)=>{if(wi(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Ti(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Ti(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Ti(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){ui(e)||ei(8),li(e)&&(e=ga(e));let t=Ki(this),n=ha(t,e,void 0);return n[$r].isManual_=!0,Gi(t),n}finishDraft(e,t){let n=e&&e[$r];(!n||!n.isManual_)&&ei(9);let{scope_:r}=n;return Ui(r,t),Ji(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Ri(Fi).applyPatches_;return li(e)?r(e,t):this.produce(e,e=>r(e,t))}};function ha(e,t,n,r){let[i,a]=xi(t)?Ri(Pi).proxyMap_(t,n):Si(t)?Ri(Pi).proxySet_(t,n):aa(t,n);return(n?.scope_??Vi()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?ta(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function ga(e){return li(e)||ei(10,e),_a(e)}function _a(e){if(!ui(e)||Ni(e))return e;let t=e[$r],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=ki(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=ki(e,!0);return mi(n,(e,t)=>{vi(n,e,_a(t))},r),t&&(t.finalized_=!1),n}var va=new ma().produce,B=e=>e;function ya(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var ba=ya(),xa=ya,Sa=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?Jr:Jr.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function Ca(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(Mo(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>Xr(t)&&t.type===e,n}var wa=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Ta(e){return ui(e)?va(e,()=>{}):e}function Ea(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function Da(e){return typeof e==`boolean`}var Oa=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new wa;return t&&(Da(t)?a.push(ba):a.push(xa(t.extraArgument))),a},ka=`RTK_autoBatch`,V=()=>e=>({payload:e,meta:{[ka]:!0}}),Aa=e=>t=>{setTimeout(t,e)},ja=(e,t)=>n=>{let r=!1,i=()=>{r||(r=!0,cancelAnimationFrame(a),clearTimeout(o),n())},a=e(i),o=setTimeout(i,t)},Ma=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?ja(window.requestAnimationFrame,100):Aa(10):e.type===`callback`?e.queueNotification:Aa(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[ka],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},Na=e=>function(t){let{autoBatch:n=!0}=t??{},r=new wa(e);return n&&r.push(Ma(typeof n==`object`?n:void 0)),r};function Pa(e){let t=Oa(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(Wr(n))c=qr(n);else throw Error(Mo(1));let l;l=typeof r==`function`?r(t):t();let u=Jr;i&&(u=Sa({trace:!1,...typeof i==`object`&&i}));let d=Na(Yr(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return Gr(c,o,p)}function Fa(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(Mo(28));if(r in t)throw Error(Mo(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function Ia(e){return typeof e==`function`}function La(e,t){let[n,r,i]=Fa(t),a;if(Ia(e))a=()=>Ta(e());else{let t=Ta(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n)if(li(e)){let r=n(e,t);return r===void 0?e:r}else if(ui(e))return va(e,e=>n(e,t));else{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(`A case reducer on a non-draftable value must not return undefined`)}return r}return e},e)}return o.getInitialState=a,o}var Ra=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,za=(e=21)=>{let t=``,n=e;for(;n--;)t+=Ra[Math.random()*64|0];return t},Ba=Symbol.for(`rtk-slice-createasyncthunk`);function Va(e,t){return`${e}/${t}`}function Ha({creators:e}={}){let t=e?.asyncThunk?.[Ba];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(Mo(11));let i=(typeof e.reducers==`function`?e.reducers(Ga()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(Mo(12));if(n in o.sliceCaseReducersByType)throw Error(Mo(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:Va(n,r),createNotation:typeof e.reducers==`function`};qa(a)?Ya(o,a,s,t):Ka(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?Fa(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return La(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=Ea(d,r,m)),i}function i(t=l){return Ea(Ea(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=Ua(a,t,()=>Ea(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function Ua(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var Wa=Ha();function Ga(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function Ka({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!Ja(r))throw Error(Mo(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?Ca(e,o):Ca(e))}function qa(e){return e._reducerDefinitionType===`asyncThunk`}function Ja(e){return e._reducerDefinitionType===`reducerWithPrepare`}function Ya({type:e,reducerName:t},n,r,i){if(!i)throw Error(Mo(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||Xa,pending:s||Xa,rejected:c||Xa,settled:l||Xa})}function Xa(){}var Za=`task`,Qa=`listener`,$a=`completed`,eo=`cancelled`,to=`task-${eo}`,no=`task-${$a}`,ro=`${Qa}-${eo}`,io=`${Qa}-${$a}`,ao=class{constructor(e){this.code=e,this.message=`${Za} ${eo} (reason: ${e})`}code;name=`TaskAbortError`;message},oo=(e,t)=>{if(typeof e!=`function`)throw TypeError(Mo(32))},so=()=>{},co=(e,t=so)=>(e.catch(t),e),lo=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),uo=e=>{if(e.aborted)throw new ao(e.reason)};function fo(e,t){let n=so;return new Promise((r,i)=>{let a=()=>i(new ao(e.reason));if(e.aborted){a();return}n=lo(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=so})}var po=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof ao?`cancelled`:`rejected`,error:e}}finally{t?.()}},mo=e=>t=>co(fo(e,t).then(t=>(uo(e),t))),ho=e=>{let t=mo(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:go}=Object,_o={},vo=`listenerMiddleware`,yo=(e,t)=>{let n=t=>lo(e,()=>t.abort(e.reason));return(r,i)=>{oo(r,`taskExecutor`);let a=new AbortController;n(a);let o=po(async()=>{uo(e),uo(a.signal);let t=await r({pause:mo(a.signal),delay:ho(a.signal),signal:a.signal});return uo(a.signal),t},()=>a.abort(no));return i?.autoJoin&&t.push(o.catch(so)),{result:mo(e)(o),cancel(){a.abort(to)}}}},bo=(e,t)=>{let n=async(n,r)=>{uo(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await fo(t,Promise.race(a));return uo(t),e}finally{i()}};return((e,t)=>co(n(e,t)))},xo=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=Ca(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(Mo(21));return oo(a,`options.listener`),{predicate:i,type:t,effect:a}},So=go(e=>{let{type:t,predicate:n,effect:r}=xo(e);return{id:za(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(Mo(22))}}},{withTypes:()=>So}),Co=(e,t)=>{let{type:n,effect:r,predicate:i}=xo(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},wo=e=>{e.pending.forEach(e=>{e.abort(ro)})},To=(e,t)=>()=>{for(let e of t.keys())wo(e);e.clear()},Eo=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},Do=go(Ca(`${vo}/add`),{withTypes:()=>Do}),Oo=Ca(`${vo}/removeAll`),ko=go(Ca(`${vo}/remove`),{withTypes:()=>ko}),Ao=(...e)=>{console.error(`${vo}/error`,...e)},jo=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=Ao}=e;oo(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&wo(e)}),c=(e=>{let n=Co(t,e)??So(e);return s(n)});go(c,{withTypes:()=>c});let l=e=>{let n=Co(t,e);return n&&(n.unsubscribe(),e.cancelActive&&wo(n)),!!n};go(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=bo(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,go({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:ho(u.signal),pause:mo(u.signal),extra:a,signal:u.signal,fork:yo(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(ro),n.delete(e))})},cancel:()=>{u.abort(ro),e.pending.delete(u)},throwIfCancelled:()=>{uo(u.signal)}})))}catch(e){e instanceof ao||Eo(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(io),i(e),e.pending.delete(u)}},d=To(t,n);return{middleware:e=>n=>r=>{if(!Xr(r))return n(r);if(Do.match(r))return c(r.payload);if(Oo.match(r)){d();return}if(ko.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===_o)throw Error(Mo(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,Eo(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=_o}return s},startListening:c,stopListening:l,clearListeners:d}};function Mo(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var No=Wa({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),Po=No.actions,Fo=Po.setMargin,Io=Po.setLayout,Lo=Po.setChartSize,Ro=Po.setScale,zo=No.reducer;function Bo(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function H(e){return Number.isFinite(e)}function Vo(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function Ho(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uo(e){for(var t=1;t{if(t&&n){var r=n.width,i=n.height,a=t.align,o=t.verticalAlign,s=t.layout,c=t.position,l=t.offset,u=l===void 0?0:l;if(c!=null){if(Ee(c)){if(c===`top`&&F(e.top))return Uo(Uo({},e),{},{top:e.top+(i||0)+u});if(c===`bottom`&&F(e.bottom))return Uo(Uo({},e),{},{bottom:e.bottom+(i||0)+u});if(c===`left`&&F(e.left))return Uo(Uo({},e),{},{left:e.left+(r||0)+u});if(c===`right`&&F(e.right))return Uo(Uo({},e),{},{right:e.right+(r||0)+u})}return e}if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&F(e[a]))return Uo(Uo({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&F(e[o]))return Uo(Uo({},e),{},{[o]:e[o]+(i||0)})}return e},Jo=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,Yo={sign:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:wt,none:yt,silhouette:Tt,wiggle:Et,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},Xo=(e,t,n)=>{var r=Yo[n]??yt,i=Ct().keys(t).value((e,t)=>Number(U(e,t,0))).order(bt).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=U(e[i],t[r],0);Array.isArray(a)&&a.length===2&&F(a[0])&&F(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function Zo(e){return e==null?void 0:String(e)}function Qo(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type===`category`){if(!t.allowDuplicatedCategory&&t.dataKey&&!me(i[t.dataKey])){var s=pe(n,`value`,i[t.dataKey]);if(s)return s.coordinate+r/2}return n!=null&&n[a]?n[a].coordinate+r/2:null}var c=U(i,me(o)?t.dataKey:o),l=t.scale.map(c);return F(l)?l:null}var $o=e=>{var t=e.flat(2).filter(F);return[Math.min(...t),Math.max(...t)]},es=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],ts=(e,t,n)=>{if(!(e==null||Object.keys(e).length===0))return es(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var o=a.stackedData.reduce((e,r)=>{var i=$o(Bo(r,t,n));return!H(i[0])||!H(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(o[0],r[0]),Math.max(o[1],r[1])]},[1/0,-1/0]))},ns=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rs=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,is=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=Dr(t,e=>e.coordinate),a=[],o=0,s=1,c=i.length;su&&(d=Math.min(f,d));return d===1/0?0:d}return n?void 0:0};function as(e){var t=e.tooltipEntrySettings,n=e.dataKey,r=e.payload,i=e.value,a=e.name;return Uo(Uo({},t),{},{dataKey:n,payload:r,value:i,name:a})}function os(e,t){if(e!=null)return String(e);if(typeof t==`string`)return t}var ss=(e,t)=>{if(t===`horizontal`)return e.relativeX;if(t===`vertical`)return e.relativeY},cs=(e,t)=>t===`centric`?e.angle:e.radius,ls=e=>e.layout.width,us=e=>e.layout.height,ds=e=>e.layout.scale,fs=e=>e.layout.margin,ps=z(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),ms=z(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),hs=`data-recharts-item-index`;function gs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _s(e){for(var t=1;te.brush.height;function Ss(e){return ms(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function Cs(e){return ms(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function ws(e){return ps(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}function Ts(e){return ps(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}var Es=z([ls,us,fs,xs,Ss,Cs,ws,Ts,Or,kr],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=_s(_s({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=qo(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return _s(_s({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),Ds=z(Es,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Os=z(ls,us,(e,t)=>({x:0,y:0,width:e,height:t})),ks=(0,a.createContext)(null),As=()=>(0,a.useContext)(ks)!=null,js=e=>e.brush,Ms=z([js,Es,fs],(e,t,n)=>({height:e.height,x:F(e.x)?e.x:t.left,y:F(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:F(e.width)?e.width:t.width}));function Ns(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function Ps(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=Ns(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function Fs(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return Ps(e,t,{leading:r,maxWait:t,trailing:i})}var Is=function(e,t){var n=[...arguments].slice(2);if(typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e))if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}},Ls={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},Rs=(e,t,n)=>{var r=n.width,i=r===void 0?Ls.width:r,a=n.height,o=a===void 0?Ls.height:a,s=n.aspect,c=n.maxHeight,l=oe(i)?e:Number(i),u=oe(o)?t:Number(o);return s&&s>0&&(l?u=l/s:u&&(l=u*s),c&&u!=null&&u>c&&(u=c)),{calculatedWidth:l,calculatedHeight:u}},zs={width:0,height:0,overflow:`visible`},Bs={width:0,overflowX:`visible`},Vs={height:0,overflowY:`visible`},Hs={},Us=e=>{var t=e.width,n=e.height,r=oe(t),i=oe(n);return r&&i?zs:r?Bs:i?Vs:Hs};function Ws(e){var t=e.width,n=e.height,r=e.aspect,i=t,a=n;return i===void 0&&a===void 0?(i=Ls.width,a=Ls.height):i===void 0?i=r&&r>0?void 0:Ls.width:a===void 0&&(a=r&&r>0?void 0:Ls.height),{width:i,height:a}}var Gs=[`aspect`,`initialDimension`,`width`,`height`,`minWidth`,`minHeight`,`maxHeight`,`children`,`debounce`,`id`,`className`,`onResize`,`style`];function Ks(){return Ks=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n({width:n,height:r}),[n,r]);return sc(i)?a.createElement(oc.Provider,{value:i},t):null}var lc=()=>(0,a.useContext)(oc),uc=(0,a.forwardRef)((e,t)=>{var n=e.aspect,r=e.initialDimension,i=r===void 0?Ls.initialDimension:r,o=e.width,s=e.height,l=e.minWidth,u=l===void 0?Ls.minWidth:l,d=e.minHeight,f=e.maxHeight,p=e.children,m=e.debounce,h=m===void 0?Ls.debounce:m,g=e.id,_=e.className,v=e.onResize,y=e.style,b=y===void 0?{}:y,x=ic(e,Gs),S=(0,a.useRef)(null),C=(0,a.useRef)();C.current=v,(0,a.useImperativeHandle)(t,()=>S.current);var w=Qs((0,a.useState)({containerWidth:i.width,containerHeight:i.height}),2),T=w[0],E=w[1],D=(0,a.useCallback)((e,t)=>{E(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,a.useEffect)(()=>{if(S.current==null||typeof ResizeObserver>`u`)return _e;var e=e=>{var t,n=e[0];if(n!=null){var r=n.contentRect,i=r.width,a=r.height;D(i,a),(t=C.current)==null||t.call(C,i,a)}};h>0&&(e=Fs(e,h,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),n=S.current.getBoundingClientRect(),r=n.width,i=n.height;return D(r,i),t.observe(S.current),()=>{t.disconnect()}},[D,h]);var O=T.containerWidth,k=T.containerHeight;Is(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var A=Rs(O,k,{width:o,height:s,aspect:n,maxHeight:f}),j=A.calculatedWidth,M=A.calculatedHeight;return Is(O<0||k<0||j!=null&&j>0||M!=null&&M>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.`,j,M,o,s,u,d,n),a.createElement(`div`,Ks({id:g?`${g}`:void 0,className:c(`recharts-responsive-container`,_),style:Js(Js({},b),{},{width:o,height:s,minWidth:u,minHeight:d,maxHeight:f}),ref:S},x),a.createElement(`div`,{style:Us({width:o,height:s})},a.createElement(cc,{width:j,height:M},p)))}),dc=(0,a.forwardRef)((e,t)=>{var n=lc();if(Vo(n.width)&&Vo(n.height))return e.children;var r=Ws({width:e.width,height:e.height,aspect:e.aspect}),i=r.width,o=r.height,s=Rs(void 0,void 0,{width:i,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),c=s.calculatedWidth,l=s.calculatedHeight;return F(c)&&F(l)?a.createElement(cc,{width:c,height:l},e.children):a.createElement(uc,Ks({},e,{width:i,height:o,ref:t}))}),fc=()=>{var e=As(),t=R(Ds),n=R(Ms),r=R(js)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},pc={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},mc=()=>R(Es)??pc,hc=()=>R(ls),gc=()=>R(us),W=e=>e.layout.layoutType,_c=()=>R(W),vc=()=>{var e=_c();if(e===`horizontal`||e===`vertical`)return e},yc=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},bc=()=>_c()!==void 0,xc=e=>{var t=L(),n=As(),r=e.width,i=e.height,o=lc(),s=r,c=i;return o&&(s=o.width>0?o.width:r,c=o.height>0?o.height:i),(0,a.useEffect)(()=>{!n&&Vo(s)&&Vo(c)&&t(Lo({width:s,height:c}))},[t,n,s,c]),null},Sc=Wa({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`bottom`,itemSorter:`value`,position:void 0,offset:0},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(B(t.payload))},prepare:V()},replaceLegendPayload:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ga(e).payload.indexOf(B(r));a>-1&&(e.payload[a]=B(i))},prepare:V()},removeLegendPayload:{reducer(e,t){var n=ga(e).payload.indexOf(B(t.payload));n>-1&&e.payload.splice(n,1)},prepare:V()}}}),Cc=Sc.actions;Cc.setLegendSize,Cc.setLegendSettings;var wc=Cc.addLegendPayload,Tc=Cc.replaceLegendPayload,Ec=Cc.removeLegendPayload,Dc=Sc.reducer,Oc=n((e=>{var t=r();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));n(((e,t)=>{t.exports=Oc()}))();function kc(e){e()}function Ac(){let e=null,t=null;return{clear(){e=null,t=null},notify(){kc(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var jc={notify(){},get:()=>[]};function Mc(e,t){let n,r=jc,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=Ac())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=jc)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var Nc=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Pc=typeof navigator<`u`&&navigator.product===`ReactNative`,Fc=Nc||Pc?a.useLayoutEffect:a.useEffect;function Ic(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function Lc(e,t){if(Ic(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r{let e=Mc(i);return{store:i,subscription:e,getServerState:r?()=>r:void 0}},[i,r]),s=a.useMemo(()=>i.getState(),[i]);Fc(()=>{let{subscription:e}=o;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),s!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[o,s]);let c=n||Vc;return a.createElement(c.Provider,{value:o},t)}var Uc=Hc,Wc=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`,`throttledEvents`]);function Gc(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function Kc(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(Wc.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Lc(e[n],t[n]))return!1}else if(!Gc(e[n],t[n]))return!1;return!0}function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.separator,n=t===void 0?ol.separator:t,r=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?ol.labelStyle:o,l=e.payload,u=e.formatter,d=e.itemSorter,f=e.wrapperClassName,p=e.labelClassName,m=e.label,h=e.labelFormatter,g=e.accessibilityLayer,_=g===void 0?ol.accessibilityLayer:g,v=()=>{if(l&&l.length){var e={padding:0,margin:0},t=sl(l,d).map((e,t)=>{if(!e||e.type===`none`)return null;var r=e.formatter||u||al,o=e.value,s=e.name,c=o,d=s;if(r){var f=r(o,s,e,t,l);if(Array.isArray(f)){var p=$c(f,2);c=p[0],d=p[1]}else if(f!=null)c=f;else return null}var m=Yc(Yc({},ol.itemStyle),{},{color:e.color||ol.itemStyle.color},i);return a.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${t}`,style:m},se(d)?a.createElement(`span`,{className:`recharts-tooltip-item-name`},d):null,se(d)?a.createElement(`span`,{className:`recharts-tooltip-item-separator`},n):null,a.createElement(`span`,{className:`recharts-tooltip-item-value`},c),a.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return a.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},t)}return null},y=Yc(Yc({},ol.contentStyle),r),b=Yc({margin:0},s),x=!me(m),S=x?m:``,C=c(`recharts-default-tooltip`,f),w=c(`recharts-tooltip-label`,p);x&&h&&l!=null&&(S=h(m,l));var T=_?{role:`status`,"aria-live":`assertive`}:{};return a.createElement(`div`,qc({className:C,style:y},T),a.createElement(`p`,{className:w,style:b},a.isValidElement(S)?S:`${S}`),v())},ll=`recharts-tooltip-wrapper`,ul={visibility:`hidden`};function dl(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return c(ll,{[`${ll}-right`]:F(n)&&t&&F(t.x)&&n>=t.x,[`${ll}-left`]:F(n)&&t&&F(t.x)&&n=t.y,[`${ll}-top`]:F(r)&&t&&F(t.y)&&r0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(uf+l?Math.max(u,f):Math.max(d,f)}function pl(e){var t=e.translateX,n=e.translateY;return{transform:e.useTranslate3d?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function ml(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTop,i=e.offsetLeft,a=e.position,o=e.reverseDirection,s=e.tooltipBox,c=e.useTranslate3d,l=e.viewBox,u,d,f;return s&&s.height>0&&s.width>0&&n?(d=fl({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=fl({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=pl({translateX:d,translateY:f,useTranslate3d:c})):u=ul,{cssProperties:u,cssClasses:dl({translateX:d,translateY:f,coordinate:n})}}var hl={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)};function gl(e,t){return xl(e)||bl(e,t)||vl(e,t)||_l()}function _l(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vl(e,t){if(e){if(typeof e==`string`)return yl(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yl(e,t):void 0}}function yl(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nhl.isSsr||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches),2),t=e[0],n=e[1];return(0,a.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>{n(e.matches)};return e.addEventListener(`change`,t),()=>{e.removeEventListener(`change`,t)}}},[]),t}function Cl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wl(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),2),r=n[0],i=n[1];a.useEffect(()=>{var t=t=>{t.key===`Escape`&&i({dismissed:!0,dismissedAtCoordinate:{x:e.coordinate?.x??0,y:e.coordinate?.y??0}})};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e.coordinate?.x,e.coordinate?.y]),r.dismissed&&((e.coordinate?.x??0)!==r.dismissedAtCoordinate.x||(e.coordinate?.y??0)!==r.dismissedAtCoordinate.y)&&i(wl(wl({},r),{},{dismissed:!1}));var o=ml({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset==`number`?e.offset:e.offset.x,offsetTop:typeof e.offset==`number`?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),s=o.cssClasses,c=o.cssProperties,l=wl(wl({},e.hasPortalFromProps?{}:wl(wl({transition:Pl({prefersReducedMotion:t,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},c),{},{pointerEvents:`none`,position:`absolute`,top:0,left:0})),{},{visibility:!r.dismissed&&e.active&&e.hasPayload?`visible`:`hidden`},e.wrapperStyle);return a.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:s,style:l,ref:e.innerRef},e.children)}var Il=a.memo(Fl),Ll=()=>R(e=>e.rootProps.accessibilityLayer)??!0;function Rl(){return Rl=Object.assign?Object.assign.bind():function(e){for(var t=1;tH(e.x)&&H(e.y),Kl=e=>e.base!=null&&Gl(e.base)&&Gl(e),ql=e=>e.x,Jl=e=>e.y,Yl=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${he(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=Wl[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return Wl[n]||ze},Xl={connectNulls:!1,type:`linear`},Zl=e=>{var t=e.type,n=t===void 0?Xl.type:t,r=e.points,i=r===void 0?[]:r,a=e.baseLine,o=e.layout,s=e.connectNulls,c=s===void 0?Xl.connectNulls:s,l=Yl(n,o),u=c?i.filter(Gl):i;if(Array.isArray(a)){var d,f=i.map((e,t)=>Bl(Bl({},e),{},{base:a[t]}));return d=o===`vertical`?Ue().y(Jl).x1(ql).x0(e=>e.base.x):Ue().x(ql).y1(Jl).y0(e=>e.base.y),d.defined(Kl).curve(l)(c?f.filter(Kl):f)}return(o===`vertical`&&F(a)?Ue().y(Jl).x1(ql).x0(a):F(a)?Ue().x(ql).y1(Jl).y0(a):He().x(ql).y(Jl)).defined(Gl).curve(l)(u)},Ql=e=>{var t=e.className,n=e.points,r=e.path,i=e.pathRef,o=_c();if((!n||!n.length)&&!r)return null;var s={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},l=n&&n.length?Zl(s):r;return a.createElement(`path`,Rl({},m(e),Ot(e),{className:c(`recharts-curve`,t),d:l===null?void 0:l,ref:i}))},$l=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function eu(){return eu=Object.assign?Object.assign.bind():function(e){for(var t=1;t`M${e},${i}v${r}M${a},${t}h${n}`,lu=e=>{var t=e.x,n=t===void 0?0:t,r=e.y,i=r===void 0?0:r,o=e.top,s=o===void 0?0:o,l=e.left,u=l===void 0?0:l,d=e.width,f=d===void 0?0:d,p=e.height,m=p===void 0?0:p,h=e.className,_=ou(e,$l),v=nu({x:n,y:i,top:s,left:u,width:f,height:m},_);return!F(n)||!F(i)||!F(f)||!F(m)||!F(s)||!F(u)?null:a.createElement(`path`,eu({},g(v),{className:c(`recharts-cross`,h),d:cu(n,i,f,m,s,u)}))};function uu(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}var du=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],fu=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),pu=(e,t)=>n=>fu(du(e,t),n),mu=(e,t)=>n=>fu([...du(e,t).map((e,t)=>e*t).slice(1),0],n),hu=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},gu=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=hu(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},_u=(e,t,n,r)=>{var i=pu(e,n),a=pu(t,r),o=mu(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},vu=function(){return _u(...gu(...arguments))},yu=function(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.stiff,n=t===void 0?100:t,r=e.damping,i=r===void 0?8:r,a=e.dt,o=a===void 0?16.67:a,s=1,c=[0],l=0,u=0,d=1e4,f=0;f{if(e<=0)return 0;if(e>=1)return s;var t=e*h,n=Math.floor(t),r=t-n;return(c[n]??0)+((c[n+1]??0)-(c[n]??0))*r}},bu=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return vu(e);case`spring`:return yu();default:if(e.split(`(`)[0]===`cubic-bezier`)return vu(e)}return typeof e==`function`?e:null},xu=(0,a.createContext)((e,t,n)=>{var r,i=a=>{var o=t.tick(a);if(t.getState()===`active`){if(n(t.getInterpolated()),t.getProgress()===1){t.complete(),r=void 0;return}r=e.setTimeout(i,o);return}r=e.setTimeout(i,o)};return r=e.setTimeout(i,0),()=>r?.()});xu.Provider;function Su(e){var t=(0,a.useContext)(xu);return(0,a.useMemo)(()=>e??t,[e,t])}function Cu(e,t,n){return(t=wu(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wu(e){var t=Tu(e,`string`);return typeof t==`symbol`?t:t+``}function Tu(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Eu=`init`,Du=`pending`,Ou=`active`,ku=`completed`;function Au(e){return Math.max(0,e)}var ju=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(e){var t;Cu(this,`state`,Eu),this.animationId=e.animationId,this.onAnimationEnd=e.onAnimationEnd,this.animationDuration=Au(e.animationDuration),this.animationBegin=Au(e.animationBegin),this.progress=0,this.from=e.from,this.to=e.to,this.easing=e.easing,(t=e.onAnimationStart)==null||t.call(e)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(e){if(this.getState()===Eu)return this.state=Du,this.beginStartedTime=e,this.animationBegin;if(this.getState()===Du){if(this.beginStartedTime==null)throw Error();var t=e-this.beginStartedTime;return t>=this.animationBegin?(this.state=Ou,this.animationStartedTime=e,this.nextAnimationUpdate(0)):Au(this.animationBegin-t)}if(this.getState()===Ou){if(this.animationStartedTime==null)throw Error();var n=e-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(e){this.progress=Math.min(1,Math.max(0,e))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state===`active`){var e;(e=this.onAnimationEnd)==null||e.call(this)}this.state=ku}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},Mu=class extends ju{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(fe(this.getFrom(),this.getTo(),this.getProgress()))}},Nu=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function Pu(e,t){return zu(e)||Ru(e,t)||Iu(e,t)||Fu()}function Fu(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Iu(e,t){if(e){if(typeof e==`string`)return Lu(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Lu(e,t):void 0}}function Lu(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{},onAnimationStart:()=>{}},Vu=0,Hu=1;function Uu(e){var t=It(e,Bu),n=t.animationId,r=t.isActive,i=t.canBegin,o=t.duration,s=t.easing,c=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,d=t.children,f=Sl(),p=r===`auto`?!hl.isSsr&&!f:r,m=Su(t.animationController),h=Pu((0,a.useState)(p?Vu:Hu),2),g=h[0],_=h[1];return(0,a.useEffect)(()=>{p||_(Hu)},[p]),(0,a.useEffect)(()=>{var e=bu(s);return!p||!i||e==null?_e:m(new Nu,new Mu({animationId:n,easing:e,animationDuration:o,animationBegin:c,onAnimationStart:u,onAnimationEnd:l,from:Vu,to:Hu}),_)},[m,n,p,i,o,s,c,u,l]),d(Number(g))}function Wu(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,a.useRef)(le(t)),r=(0,a.useRef)(e);return r.current!==e&&(n.current=le(t),r.current=e),n.current}var Gu=e=>e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),Ku=(e,t,n)=>e.map(e=>`${Gu(e)} ${t}ms ${n}`).join(`,`),qu=[`radius`],Ju=[`radius`],Yu,Xu,Zu,Qu,$u,ed,td,nd,rd,id;function ad(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function od(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{var a=re(n),o=re(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;ps?s:h}d=P(Yu||=yd([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=P(Xu||=yd([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=P(Zu||=yd([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=P(Qu||=yd([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=P($u||=yd([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=P(ed||=yd([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=P(td||=yd([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=P(nd||=yd([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=P(rd||=yd(`M .,. - A .,.,0,0,.,.,. - L .,. - A .,.,0,0,.,.,. - L .,. - A .,.,0,0,.,.,. - L .,. - A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=P(id||=yd([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},xd={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},Sd=e=>{var t=It(e,xd),n=(0,a.useRef)(null),r=pd((0,a.useState)(-1),2),i=r[0],o=r[1];(0,a.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&o(e)}catch{}},[]);var s=t.x,l=t.y,u=t.width,d=t.height,f=t.radius,p=t.className,m=t.animationEasing,h=t.animationDuration,_=t.animationBegin,v=t.isAnimationActive,y=t.isUpdateAnimationActive,b=(0,a.useRef)(u),x=(0,a.useRef)(d),S=(0,a.useRef)(s),C=(0,a.useRef)(l),w=Wu((0,a.useMemo)(()=>({x:s,y:l,width:u,height:d,radius:f}),[s,l,u,d,f]),`rectangle-`);if(s!==+s||l!==+l||u!==+u||d!==+d||u===0||d===0)return null;var T=c(`recharts-rectangle`,p);if(!y){var E=g(t);E.radius;var D=dd(E,qu);return a.createElement(`path`,ud({},D,{x:re(s),y:re(l),width:re(u),height:re(d),radius:typeof f==`number`?f:void 0,className:T,d:bd(s,l,u,d,f)}))}var O=b.current,k=x.current,A=S.current,j=C.current,M=`0px ${i===-1?1:i}px`,N=`${i}px ${i}px`,ee=Ku([`strokeDasharray`],h,typeof m==`string`?m:xd.animationEasing);return a.createElement(Uu,{animationId:w,key:w,canBegin:i>0,duration:h,easing:m,isActive:y,begin:_},e=>{var r=fe(O,u,e),i=fe(k,d,e),o=fe(A,s,e),c=fe(j,l,e);n.current&&(b.current=r,x.current=i,S.current=o,C.current=c);var p=v?e>0?{transition:ee,strokeDasharray:N}:{strokeDasharray:M}:{strokeDasharray:N},m=g(t);m.radius;var h=dd(m,Ju);return a.createElement(`path`,ud({},h,{radius:typeof f==`number`?f:void 0,className:T,d:bd(o,c,r,i,f),ref:n,style:od(od({},p),t.style)}))})};function Cd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wd(e){for(var t=1;te*180/Math.PI,Ad=(e,t,n,r)=>({x:e+Math.cos(-Od*r)*n,y:t+Math.sin(-Od*r)*n}),jd=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},Md=(e,t)=>{var n=e.x,r=e.y,i=t.x,a=t.y;return Math.sqrt((n-i)**2+(r-a)**2)},Nd=(e,t)=>{var n=e.x,r=e.y,i=t.cx,a=t.cy,o=Md({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:kd(c),angleInRadian:c}},Pd=e=>{var t=e.startAngle,n=e.endAngle,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},Fd=(e,t)=>{var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},Id=(e,t)=>{var n=e.relativeX,r=e.relativeY,i=Nd({x:n,y:r},t),a=i.radius,o=i.angle,s=t.innerRadius,c=t.outerRadius;if(ac||a===0)return null;var l=Pd(t),u=l.startAngle,d=l.endAngle,f=o,p;if(u<=d){for(;f>d;)f-=360;for(;f=u&&f<=d}else{for(;f>u;)f-=360;for(;f=d&&f<=u}return p?wd(wd({},t),{},{radius:a,angle:Fd(f,t)}):null};function Ld(e){var t=e.cx,n=e.cy,r=e.radius,i=e.startAngle,a=e.endAngle;return{points:[Ad(t,n,r,i),Ad(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var Rd,zd,Bd,Vd,Hd,Ud,Wd;function Gd(){return Gd=Object.assign?Object.assign.bind():function(e){for(var t=1;tie(t-e)*Math.min(Math.abs(t-e),359.999),Jd=e=>{var t=e.cx,n=e.cy,r=e.radius,i=e.angle,a=e.sign,o=e.isExternal,s=e.cornerRadius,c=e.cornerIsExternal,l=s*(o?1:-1)+r,u=Math.asin(s/l)/Od,d=c?i:i+a*u,f=Ad(t,n,l,d),p=Ad(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:Ad(t,n,l*Math.cos(u*Od),m),theta:u}},Yd=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.startAngle,o=e.endAngle,s=qd(a,o),c=a+s,l=Ad(t,n,i,a),u=Ad(t,n,i,c),d=P(Rd||=Kd([`M `,`,`,` - A `,`,`,`,0, - `,`,`,`, - `,`,`,` - `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=Ad(t,n,r,a),p=Ad(t,n,r,c);d+=P(zd||=Kd([`L `,`,`,` - A `,`,`,`,0, - `,`,`,`, - `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=P(Bd||=Kd([`L `,`,`,` Z`]),t,n);return d},Xd=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.cornerRadius,o=e.forceCornerRadius,s=e.cornerIsExternal,c=e.startAngle,l=e.endAngle,u=ie(l-c),d=Jd({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),f=d.circleTangency,p=d.lineTangency,m=d.theta,h=Jd({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),g=h.circleTangency,_=h.lineTangency,v=h.theta,y=s?Math.abs(c-l):Math.abs(c-l)-m-v;if(y<0)return o?P(Vd||=Kd([`M `,`,`,` - a`,`,`,`,0,0,1,`,`,0 - a`,`,`,`,0,0,1,`,`,0 - `]),p.x,p.y,a,a,a*2,a,a,-a*2):Yd({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var b=P(Hd||=Kd([`M `,`,`,` - A`,`,`,`,0,0,`,`,`,`,`,` - A`,`,`,`,0,`,`,`,`,`,`,`,` - A`,`,`,`,0,0,`,`,`,`,`,` - `]),p.x,p.y,a,a,+(u<0),f.x,f.y,i,i,+(y>180),+(u<0),g.x,g.y,a,a,+(u<0),_.x,_.y);if(r>0){var x=Jd({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),S=x.circleTangency,C=x.lineTangency,w=x.theta,T=Jd({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),E=T.circleTangency,D=T.lineTangency,O=T.theta,k=s?Math.abs(c-l):Math.abs(c-l)-w-O;if(k<0&&a===0)return`${b}L${t},${n}Z`;b+=P(Ud||=Kd([`L`,`,`,` - A`,`,`,`,0,0,`,`,`,`,`,` - A`,`,`,`,0,`,`,`,`,`,`,`,` - A`,`,`,`,0,0,`,`,`,`,`,`Z`]),D.x,D.y,a,a,+(u<0),E.x,E.y,r,r,+(k>180),+(u>0),S.x,S.y,a,a,+(u<0),C.x,C.y)}else b+=P(Wd||=Kd([`L`,`,`,`Z`]),t,n);return b},Zd={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Qd=e=>{var t=It(e,Zd),n=t.cx,r=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.cornerRadius,l=t.forceCornerRadius,u=t.cornerIsExternal,d=t.startAngle,f=t.endAngle,p=t.className;if(o0&&Math.abs(d-f)<360?Xd({cx:n,cy:r,innerRadius:i,outerRadius:o,cornerRadius:Math.min(_,h/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:d,endAngle:f}):Yd({cx:n,cy:r,innerRadius:i,outerRadius:o,startAngle:d,endAngle:f});return a.createElement(`path`,Gd({},g(t),{className:m,d:v}))};function $d(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(Dt(t)){if(e===`centric`){var r=t.cx,i=t.cy,a=t.innerRadius,o=t.outerRadius,s=t.angle,c=Ad(r,i,a,s),l=Ad(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return Ld(t)}}function ef(e){return Sr(e)?NaN:Number(e)}function tf(e){return e?(e=ef(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function nf(e,t,n){n&&typeof n!=`number`&&yr(e,t,n)&&(t=n=void 0),e=tf(e),t===void 0?(t=e,e=0):t=tf(t),n=n===void 0?ee.chartData,af=z([rf],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),of=(e,t,n,r)=>r?af(e):rf(e),sf=(e,t,n)=>n?af(e):rf(e),cf=z([of],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});z([af],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});var lf=z([rf],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});function uf(e,t){return hf(e)||mf(e,t)||ff(e,t)||df()}function df(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ff(e,t){if(e){if(typeof e==`string`)return pf(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pf(e,t):void 0}}function pf(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=re.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||en)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;tr?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),rh||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}else if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,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=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i);if((i=e[r=`LN10`])!==void 0)if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i);return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function bf(e){return e===0?1:Math.floor(new G.default(e).abs().log(10).toNumber())+1}function xf(e,t,n){for(var r=new G.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}function Sf(e,t){return Df(e)||Ef(e,t)||wf(e,t)||Cf()}function Cf(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wf(e,t){if(e){if(typeof e==`string`)return Tf(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Tf(e,t):void 0}}function Tf(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=Sf(e,2),n=t[0],r=t[1],i=n,a=r;return n>r&&(i=r,a=n),[i,a]},kf=(e,t,n)=>{if(e.lte(0))return new G.default(0);var r=bf(e.toNumber()),i=new G.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new G.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new G.default(s.toNumber()):new G.default(Math.ceil(s.toNumber()))},Af=(e,t,n)=>{if(e.lte(0))return new G.default(0);var r=[1,2,2.5,5],i=e.toNumber(),a=Math.floor(new G.default(i).abs().log(10).toNumber()),o=new G.default(10).pow(a),s=e.div(o).toNumber(),c=r.findIndex(e=>e>=s-1e-10);if(c===-1&&(o=o.mul(10),c=0),c+=n,c>=r.length){var l=Math.floor(c/r.length);c%=r.length,o=o.mul(new G.default(10).pow(l))}var u=new G.default(r[c]??1).mul(o);return t?u:new G.default(Math.ceil(u.toNumber()))},jf=(e,t,n)=>{var r=new G.default(1),i=new G.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new G.default(10).pow(bf(e)-1),i=new G.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new G.default(Math.floor(e)))}else e===0?i=new G.default(Math.floor((t-1)/2)):n||(i=new G.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:kf;if(!Number.isFinite((t-e)/(n-1)))return{step:new G.default(0),tickMin:new G.default(0),tickMax:new G.default(0)};var o=a(new G.default(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new G.default(0):(s=new G.default(e).add(t).div(2),s=s.sub(new G.default(s).mod(o)));var c=Math.ceil(s.sub(e).div(o).toNumber()),l=Math.ceil(new G.default(t).sub(s).div(o).toNumber()),u=c+l+1;return u>n?Mf(e,t,n,r,i+1,a):(u0?l+(n-u):l,c=t>0?c:c+(n-u)),{step:o,tickMin:s.sub(new G.default(c).mul(o)),tickMax:s.add(new G.default(l).mul(o))})},Nf=function(e){var t=Sf(e,2),n=t[0],r=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=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=Math.max(i,2),c=Sf(Of([n,r]),2),l=c[0],u=c[1];if(l===-1/0||u===1/0){var d=u===1/0?[l,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),u];return n>r?d.reverse():d}if(l===u)return jf(l,i,a);var f=Mf(l,u,s,a,0,o===`snap125`?Af:kf),p=f.step,m=f.tickMin,h=f.tickMax,g=xf(m,h.add(new G.default(.1).mul(p)),p);return n>r?g.reverse():g},Pf=function(e,t){var n=Sf(e,2),r=n[0],i=n[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=Sf(Of([r,i]),2),c=s[0],l=s[1];if(c===-1/0||l===1/0)return[r,i];if(c===l)return[c];var u=o===`snap125`?Af:kf,d=Math.max(t,2),f=u(new G.default(l).sub(c).div(d-1),a,0),p=[...xf(new G.default(c),new G.default(l),f),l];if(a===!1){p=p.map(e=>Math.round(e));var m=p.length-1;m>0&&p[m]===p[m-1]&&(p=p.slice(0,m))}return r>i?p.reverse():p},Ff=e=>e.rootProps.barCategoryGap,If=e=>e.rootProps.stackOffset,Lf=e=>e.rootProps.reverseStackOrder,Rf=e=>e.options.chartName,zf=e=>e.rootProps.syncId,Bf=e=>e.rootProps.syncMethod,Vf=e=>e.options.eventEmitter,Hf=e=>e.rootProps.baseValue,Uf={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},Wf={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:`auto`,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:Uf.axis},Gf={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:`auto`,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:Uf.axis},Kf=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function qf(e,t,n){if(n!==`auto`)return n;if(e!=null)return Jo(e,t)?`category`:`number`}function Jf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Yf(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},yc],(e,t)=>{if(e!=null)return e;var n=qf(t,`angleAxis`,$f.type)??`category`;return Yf(Yf({},$f),{},{type:n})}),np=z([(e,t)=>e.polarAxis.radiusAxis[t],yc],(e,t)=>{if(e!=null)return e;var n=qf(t,`radiusAxis`,ep.type)??`category`;return Yf(Yf({},ep),{},{type:n})}),rp=e=>e.polarOptions,ip=z([ls,us,Es],jd),ap=z([rp,ip],(e,t)=>{if(e!=null)return ue(e.innerRadius,t,0)}),op=z([rp,ip],(e,t)=>{if(e!=null)return ue(e.outerRadius,t,t*.8)}),sp=z([rp],e=>e==null?[0,0]:[e.startAngle,e.endAngle]);z([tp,sp],Kf);var cp=z([ip,ap,op],(e,t,n)=>{if(!(e==null||t==null||n==null))return[t,n]});z([np,cp],Kf);var lp=z([W,rp,ap,op,ls,us],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var o=t.cx,s=t.cy,c=t.startAngle,l=t.endAngle;return{cx:ue(o,i,i/2),cy:ue(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),K=(e,t)=>t,up=(e,t,n)=>n;function dp(e){return e?.id}function fp(e,t,n){var r=t.chartData,i=r===void 0?[]:r,a=n.allowDuplicatedCategory,o=n.dataKey,s=new Map;return e.forEach(e=>{var t=e.data??i;if(!(t==null||t.length===0)){var n=dp(e);t.forEach((t,r)=>{var i=o==null||a?r:String(U(t,o,null)),c=U(t,e.dataKey,0),l=s.has(i)?s.get(i):{};Object.assign(l,{[n]:c}),s.set(i,l)})}}),Array.from(s.values())}function pp(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var mp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function hp(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function gp(e,t){if(e.length===t.length){for(var n=0;n{var t=W(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},_p=e=>e.tooltip.settings.axisId;function vp(e){if(e!=null){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i;break;default:break}}return r}}}}}var yp=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!gf(t)){for(var n,r,i=0;ir)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}};function bp(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function xp(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Sp(e){let t,n,r;e.length===2?(t=e===bp||e===xp?e:Cp,n=e,r=e):(t=bp,n=(t,n)=>bp(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i>>1;n(e[t],r)<0?i=t+1:a=t}while(i>>1;n(e[t],r)<=0?i=t+1:a=t}while(in&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function Cp(){return 0}function wp(e){return e===null?NaN:+e}function*Tp(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var Ep=Sp(bp),Dp=Ep.right;Ep.left,Sp(wp).center;var Op=class extends Map{constructor(e,t=Mp){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(kp(this,e))}has(e){return super.has(kp(this,e))}set(e,t){return super.set(Ap(this,e),t)}delete(e){return super.delete(jp(this,e))}};function kp({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function Ap({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function jp({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Mp(e){return typeof e==`object`&&e?e.valueOf():e}function Np(e=bp){if(e===bp)return Pp;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Pp(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et))}var Fp=Math.sqrt(50),Ip=Math.sqrt(10),Lp=Math.sqrt(2);function Rp(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=Fp?10:a>=Ip?5:a>=Lp?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/lt&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*lt&&--c),c0))return[];if(e===t)return[e];let r=t=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function Up(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Wp(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?Pp:Np(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));Wp(e,t,u,d,i)}let a=e[t],o=n,s=r;for(Gp(e,n,t),i(e[r],a)>0&&Gp(e,n,r);o0;)--s}i(e[n],a)===0?Gp(e,n,s):(++s,Gp(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Gp(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Kp(e,t,n){if(e=Float64Array.from(Tp(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Up(e);if(t>=1)return Hp(e);var r,i=(r-1)*t,a=Math.floor(i),o=Hp(Wp(e,a).subarray(0,a+1));return o+(Up(e.subarray(a+1))-o)*(i-a)}}function qp(e,t,n=wp){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function Jp(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?wm(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?wm(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=dm.exec(e))?new Dm(t[1],t[2],t[3],1):(t=fm.exec(e))?new Dm(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=pm.exec(e))?wm(t[1],t[2],t[3],t[4]):(t=mm.exec(e))?wm(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=hm.exec(e))?Pm(t[1],t[2]/100,t[3]/100,1):(t=gm.exec(e))?Pm(t[1],t[2]/100,t[3]/100,t[4]):_m.hasOwnProperty(e)?Cm(_m[e]):e===`transparent`?new Dm(NaN,NaN,NaN,0):null}function Cm(e){return new Dm(e>>16&255,e>>8&255,e&255,1)}function wm(e,t,n,r){return r<=0&&(e=t=n=NaN),new Dm(e,t,n,r)}function Tm(e){return e instanceof im||(e=Sm(e)),e?(e=e.rgb(),new Dm(e.r,e.g,e.b,e.opacity)):new Dm}function Em(e,t,n,r){return arguments.length===1?Tm(e):new Dm(e,t,n,r??1)}function Dm(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}nm(Dm,Em,rm(im,{brighter(e){return e=e==null?om:om**+e,new Dm(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?am:am**+e,new Dm(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Dm(Mm(this.r),Mm(this.g),Mm(this.b),jm(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:Om,formatHex:Om,formatHex8:km,formatRgb:Am,toString:Am}));function Om(){return`#${Nm(this.r)}${Nm(this.g)}${Nm(this.b)}`}function km(){return`#${Nm(this.r)}${Nm(this.g)}${Nm(this.b)}${Nm((isNaN(this.opacity)?1:this.opacity)*255)}`}function Am(){let e=jm(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Mm(this.r)}, ${Mm(this.g)}, ${Mm(this.b)}${e===1?`)`:`, ${e})`}`}function jm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Mm(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Nm(e){return e=Mm(e),(e<16?`0`:``)+e.toString(16)}function Pm(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Lm(e,t,n,r)}function Fm(e){if(e instanceof Lm)return new Lm(e.h,e.s,e.l,e.opacity);if(e instanceof im||(e=Sm(e)),!e)return new Lm;if(e instanceof Lm)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new Lm(o,s,c,e.opacity)}function Im(e,t,n,r){return arguments.length===1?Fm(e):new Lm(e,t,n,r??1)}function Lm(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}nm(Lm,Im,rm(im,{brighter(e){return e=e==null?om:om**+e,new Lm(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?am:am**+e,new Lm(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,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Dm(Bm(e>=240?e-240:e+120,i,r),Bm(e,i,r),Bm(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Lm(Rm(this.h),zm(this.s),zm(this.l),jm(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(){let e=jm(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Rm(this.h)}, ${zm(this.s)*100}%, ${zm(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Rm(e){return e=(e||0)%360,e<0?e+360:e}function zm(e){return Math.max(0,Math.min(1,e||0))}function Bm(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Vm=e=>()=>e;function Hm(e,t){return function(n){return e+n*t}}function Um(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Wm(e){return(e=+e)==1?Gm:function(t,n){return n-t?Um(t,n,e):Vm(isNaN(t)?n:t)}}function Gm(e,t){var n=t-e;return n?Hm(e,n):Vm(isNaN(e)?t:e)}var Km=(function e(t){var n=Wm(t);function r(e,t){var r=n((e=Em(e)).r,(t=Em(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Gm(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function qm(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Zm(r,i)})),n=eh.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Zm(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Zm(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Zm(e,n)},{i:s-2,x:Zm(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++tt&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function Dh(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i2?Oh:Dh,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),Zm))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,Sh),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=ah,u()},d.clamp=function(e){return arguments.length?(o=e?!0:wh,u()):o!==wh},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function jh(){return Ah()(wh,wh)}function Mh(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Nh(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ph(e){return e=Nh(Math.abs(e)),e?e[1]:NaN}function Fh(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Ih(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Lh=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Rh(e){if(!(t=Lh.exec(e)))throw Error(`invalid format: `+e);var t;return new zh({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]})}Rh.prototype=zh.prototype;function zh(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+``}zh.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 Bh(e){out:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Vh;function Hh(e,t){var n=Nh(e,t);if(!n)return Vh=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Vh=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+Nh(e,Math.max(0,t+a-1))[0]}function Uh(e,t){var n=Nh(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var Wh={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:Mh,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)=>Uh(e*100,t),r:Uh,s:Hh,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Gh(e){return e}var Kh=Array.prototype.map,qh=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function Jh(e){var t=e.grouping===void 0||e.thousands===void 0?Gh:Fh(Kh.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?Gh:Ih(Kh.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=Rh(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):Wh[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=Wh[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=Bh(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Vh!==void 0?qh[8+Vh/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++op||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(Ph(t)/3)))*3,r=10**-n,i=l((e=Rh(e),e.type=`f`,e),{suffix:qh[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var Yh,Xh,Zh;Qh({thousands:`,`,grouping:[3],currency:[`$`,``]});function Qh(e){return Yh=Jh(e),Xh=Yh.format,Zh=Yh.formatPrefix,Yh}function $h(e){return Math.max(0,-Ph(Math.abs(e)))}function eg(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ph(t)/3)))*3-Ph(Math.abs(e)))}function tg(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ph(t)-Ph(e))+1}function ng(e,t,n,r){var i=Vp(e,t,n),a;switch(r=Rh(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=eg(i,o))&&(r.precision=a),Zh(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=tg(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=$h(i))&&(r.precision=a-(r.type===`%`)*2);break}return Xh(r)}function rg(e){var t=e.domain;return e.ticks=function(e){var n=t();return zp(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return ng(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s0;){if(l=Bp(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function ig(){var e=jh();return e.copy=function(){return kh(e,ig())},Yp.apply(e,arguments),rg(e)}function ag(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,Sh),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return ag(e).unknown(t)},e=arguments.length?Array.from(e,Sh):[0,1],rg(n)}function og(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return ae**+t}function pg(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 mg(e){return(t,n)=>-e(-t,n)}function hg(e){let t=e(sg,cg),n=t.domain,r=10,i,a;function o(){return i=pg(r),a=fg(r),n()[0]<0?(i=mg(i),a=mg(a),e(lg,ug)):e(sg,cg),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s0){for(;l<=u;++l)for(d=1;ds)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(fs)break;m.push(f)}m.length*2{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=Rh(n)).precision==null&&(n.trim=!0),n=Xh(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*rn(og(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function gg(){let e=hg(Ah()).domain([1,10]);return e.copy=()=>kh(e,gg()).base(e.base()),Yp.apply(e,arguments),e}function _g(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function vg(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function yg(e){var t=1,n=e(_g(t),vg(t));return n.constant=function(n){return arguments.length?e(_g(t=+n),vg(t)):t},rg(n)}function bg(){var e=yg(Ah());return e.copy=function(){return kh(e,bg()).constant(e.constant())},Yp.apply(e,arguments)}function xg(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Sg(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Cg(e){return e<0?-e*e:e*e}function wg(e){var t=e(wh,wh),n=1;function r(){return n===1?e(wh,wh):n===.5?e(Sg,Cg):e(xg(n),xg(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},rg(t)}function Tg(){var e=wg(Ah());return e.copy=function(){return kh(e,Tg()).exponent(e.exponent())},Yp.apply(e,arguments),e}function Eg(){return Tg.apply(null,arguments).exponent(.5)}function Dg(e){return Math.sign(e)*e*e}function Og(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function kg(){var e=jh(),t=[0,1],n=!1,r;function i(t){var i=Og(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Dg(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,Sh)).map(Dg)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return kg(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Yp.apply(i,arguments),rg(i)}function Ag(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r0?n[i-1]:e[0],i=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return jg().domain([e,t]).range(i).unknown(a)},Yp.apply(rg(o),arguments)}function Mg(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Dp(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return Mg().domain(e).range(t).unknown(n)},Yp.apply(i,arguments)}var Ng=new Date,Pg=new Date;function J(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(sJ(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(i.count=(t,r)=>(Ng.setTime(+t),Pg.setTime(+r),e(Ng),e(Pg),Math.floor(n(Ng,Pg))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var Fg=J(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Fg.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?J(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Fg),Fg.range;var Ig=1e3,Lg=Ig*60,Rg=Lg*60,zg=Rg*24,Bg=zg*7,Vg=zg*30,Hg=zg*365,Ug=J(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Ig)},(e,t)=>(t-e)/Ig,e=>e.getUTCSeconds());Ug.range;var Wg=J(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ig)},(e,t)=>{e.setTime(+e+t*Lg)},(e,t)=>(t-e)/Lg,e=>e.getMinutes());Wg.range;var Gg=J(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Lg)},(e,t)=>(t-e)/Lg,e=>e.getUTCMinutes());Gg.range;var Kg=J(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ig-e.getMinutes()*Lg)},(e,t)=>{e.setTime(+e+t*Rg)},(e,t)=>(t-e)/Rg,e=>e.getHours());Kg.range;var qg=J(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Rg)},(e,t)=>(t-e)/Rg,e=>e.getUTCHours());qg.range;var Jg=J(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Lg)/zg,e=>e.getDate()-1);Jg.range;var Yg=J(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zg,e=>e.getUTCDate()-1);Yg.range;var Xg=J(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zg,e=>Math.floor(e/zg));Xg.range;function Zg(e){return J(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Lg)/Bg)}var Qg=Zg(0),$g=Zg(1),e_=Zg(2),t_=Zg(3),n_=Zg(4),r_=Zg(5),i_=Zg(6);Qg.range,$g.range,e_.range,t_.range,n_.range,r_.range,i_.range;function a_(e){return J(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/Bg)}var o_=a_(0),s_=a_(1),c_=a_(2),l_=a_(3),u_=a_(4),d_=a_(5),f_=a_(6);o_.range,s_.range,c_.range,l_.range,u_.range,d_.range,f_.range;var p_=J(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());p_.range;var m_=J(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());m_.range;var h_=J(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());h_.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:J(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),h_.range;var g_=J(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());g_.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:J(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),g_.range;function __(e,t,n,r,i,a){let o=[[Ug,1,Ig],[Ug,5,5*Ig],[Ug,15,15*Ig],[Ug,30,30*Ig],[a,1,Lg],[a,5,5*Lg],[a,15,15*Lg],[a,30,30*Lg],[i,1,Rg],[i,3,3*Rg],[i,6,6*Rg],[i,12,12*Rg],[r,1,zg],[r,2,2*zg],[n,1,Bg],[t,1,Vg],[t,3,3*Vg],[e,1,Hg]];function s(e,t,n){let r=te).right(o,i);if(a===o.length)return e.every(Vp(t/Hg,n/Hg,r));if(a===0)return Fg.every(Math.max(Vp(t,n,r),1));let[s,c]=o[i/o[a-1][2]53)return null;`w`in r||(r.w=1),`Z`in r?(a=C_(w_(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?s_.ceil(a):s_(a),a=Yg.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=S_(w_(r.y,0,1)),o=a.getDay(),a=o>4||o===0?$g.ceil(a):$g(a),a=Jg.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?C_(w_(r.y,0,1)).getUTCDay():S_(w_(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,C_(r)):S_(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in E_?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function ee(e){return a[e.getDay()]}function te(e){return c[e.getMonth()]}function ne(e){return s[e.getMonth()]}function re(e){return i[+(e.getHours()>=12)]}function P(e){return 1+~~(e.getMonth()/3)}function ie(e){return o[e.getUTCDay()]}function ae(e){return a[e.getUTCDay()]}function oe(e){return c[e.getUTCMonth()]}function F(e){return s[e.getUTCMonth()]}function se(e){return i[+(e.getUTCHours()>=12)]}function ce(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var E_={"-":``,_:` `,0:`0`},D_=/^\s*\d+/,O_=/^%/,k_=/[\\^$*+?|[\]().{}]/g;function Y(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a[e.toLowerCase(),t]))}function N_(e,t,n){var r=D_.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function P_(e,t,n){var r=D_.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function F_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function I_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function L_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function R_(e,t,n){var r=D_.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function z_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function B_(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function V_(e,t,n){var r=D_.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function H_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function U_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function W_(e,t,n){var r=D_.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function G_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function K_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function q_(e,t,n){var r=D_.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function J_(e,t,n){var r=D_.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Y_(e,t,n){var r=D_.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function X_(e,t,n){var r=O_.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Z_(e,t,n){var r=D_.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Q_(e,t,n){var r=D_.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function $_(e,t){return Y(e.getDate(),t,2)}function ev(e,t){return Y(e.getHours(),t,2)}function tv(e,t){return Y(e.getHours()%12||12,t,2)}function nv(e,t){return Y(1+Jg.count(h_(e),e),t,3)}function rv(e,t){return Y(e.getMilliseconds(),t,3)}function iv(e,t){return rv(e,t)+`000`}function av(e,t){return Y(e.getMonth()+1,t,2)}function ov(e,t){return Y(e.getMinutes(),t,2)}function sv(e,t){return Y(e.getSeconds(),t,2)}function cv(e){var t=e.getDay();return t===0?7:t}function lv(e,t){return Y(Qg.count(h_(e)-1,e),t,2)}function uv(e){var t=e.getDay();return t>=4||t===0?n_(e):n_.ceil(e)}function dv(e,t){return e=uv(e),Y(n_.count(h_(e),e)+(h_(e).getDay()===4),t,2)}function fv(e){return e.getDay()}function pv(e,t){return Y($g.count(h_(e)-1,e),t,2)}function mv(e,t){return Y(e.getFullYear()%100,t,2)}function hv(e,t){return e=uv(e),Y(e.getFullYear()%100,t,2)}function gv(e,t){return Y(e.getFullYear()%1e4,t,4)}function _v(e,t){var n=e.getDay();return e=n>=4||n===0?n_(e):n_.ceil(e),Y(e.getFullYear()%1e4,t,4)}function vv(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Y(t/60|0,`0`,2)+Y(t%60,`0`,2)}function yv(e,t){return Y(e.getUTCDate(),t,2)}function bv(e,t){return Y(e.getUTCHours(),t,2)}function xv(e,t){return Y(e.getUTCHours()%12||12,t,2)}function Sv(e,t){return Y(1+Yg.count(g_(e),e),t,3)}function Cv(e,t){return Y(e.getUTCMilliseconds(),t,3)}function wv(e,t){return Cv(e,t)+`000`}function Tv(e,t){return Y(e.getUTCMonth()+1,t,2)}function Ev(e,t){return Y(e.getUTCMinutes(),t,2)}function Dv(e,t){return Y(e.getUTCSeconds(),t,2)}function Ov(e){var t=e.getUTCDay();return t===0?7:t}function kv(e,t){return Y(o_.count(g_(e)-1,e),t,2)}function Av(e){var t=e.getUTCDay();return t>=4||t===0?u_(e):u_.ceil(e)}function jv(e,t){return e=Av(e),Y(u_.count(g_(e),e)+(g_(e).getUTCDay()===4),t,2)}function Mv(e){return e.getUTCDay()}function Nv(e,t){return Y(s_.count(g_(e)-1,e),t,2)}function Pv(e,t){return Y(e.getUTCFullYear()%100,t,2)}function Fv(e,t){return e=Av(e),Y(e.getUTCFullYear()%100,t,2)}function Iv(e,t){return Y(e.getUTCFullYear()%1e4,t,4)}function Lv(e,t){var n=e.getUTCDay();return e=n>=4||n===0?u_(e):u_.ceil(e),Y(e.getUTCFullYear()%1e4,t,4)}function Rv(){return`+0000`}function zv(){return`%`}function Bv(e){return+e}function Vv(e){return Math.floor(e/1e3)}var Hv,Uv,Wv;Gv({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 Gv(e){return Hv=T_(e),Uv=Hv.format,Hv.parse,Wv=Hv.utcFormat,Hv.utcParse,Hv}function Kv(e){return new Date(e)}function qv(e){return e instanceof Date?+e:+new Date(+e)}function Jv(e,t,n,r,i,a,o,s,c,l){var u=jh(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Kp(e,r/t))},n.copy=function(){return iy(t).domain(e)},Xp.apply(n,arguments)}function ay(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=wh,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e$p,scaleDiverging:()=>oy,scaleDivergingLog:()=>sy,scaleDivergingPow:()=>ly,scaleDivergingSqrt:()=>uy,scaleDivergingSymlog:()=>cy,scaleIdentity:()=>ag,scaleImplicit:()=>Zp,scaleLinear:()=>ig,scaleLog:()=>gg,scaleOrdinal:()=>Qp,scalePoint:()=>tm,scalePow:()=>Tg,scaleQuantile:()=>Ag,scaleQuantize:()=>jg,scaleRadial:()=>kg,scaleSequential:()=>$v,scaleSequentialLog:()=>ey,scaleSequentialPow:()=>ny,scaleSequentialQuantile:()=>iy,scaleSequentialSqrt:()=>ry,scaleSequentialSymlog:()=>ty,scaleSqrt:()=>Eg,scaleSymlog:()=>bg,scaleThreshold:()=>Mg,scaleTime:()=>Yv,scaleUtc:()=>Xv,tickFormat:()=>ng});function fy(e){var t=dy;if(e in t&&typeof t[e]==`function`)return t[e]();var n=`scale${he(e)}`;if(n in t&&typeof t[n]==`function`)return t[n]()}function py(e,t,n){if(typeof e==`function`)return e.copy().domain(t).range(n);if(e!=null){var r=fy(e);if(r!=null)return r.domain(t).range(n),r}}function my(e,t,n,r){if(!(n==null||r==null))return typeof e.scale==`function`?py(e.scale,n,r):py(t,n,r)}function hy(e){return`scale${he(e)}`}function gy(e){return hy(e)in dy}var _y=(e,t,n)=>{if(e!=null){var r=e.scale,i=e.type;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`)return gy(r)?r:`point`}};function vy(e,t){for(var n=0,r=e.length,i=e[0]t)?n=a+1:r=a}return n}function yy(e,t){if(e){var n=t??e.domain(),r=n.map(t=>e(t)??0),i=e.range();if(!(n.length===0||i.length<2))return e=>{var t=vy(r,e);if(t<=0)return n[0];if(t>=n.length)return n[n.length-1];var i=r[t-1]??0,a=r[t]??0;return Math.abs(e-i)<=Math.abs(e-a)?n[t-1]:n[t]}}}function by(e){if(e!=null)return`invert`in e&&typeof e.invert==`function`?e.invert.bind(e):yy(e,void 0)}function xy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sy(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.cartesianAxis.xAxis[t],Py=(e,t)=>Ny(e,t)??X,Z={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:My,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,niceTicks:`auto`,width:60},Fy=(e,t)=>e.cartesianAxis.yAxis[t],Iy=(e,t)=>Fy(e,t)??Z,Ly={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},Ry=(e,t)=>e.cartesianAxis.zAxis[t]??Ly,zy=(e,t,n)=>{switch(t){case`xAxis`:return Py(e,n);case`yAxis`:return Iy(e,n);case`zAxis`:return Ry(e,n);case`angleAxis`:return tp(e,n);case`radiusAxis`:return np(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},By=(e,t,n)=>{switch(t){case`xAxis`:return Py(e,n);case`yAxis`:return Iy(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},Vy=(e,t,n)=>{switch(t){case`xAxis`:return Py(e,n);case`yAxis`:return Iy(e,n);case`angleAxis`:return tp(e,n);case`radiusAxis`:return np(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},Hy=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function Uy(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var Wy=e=>e.graphicalItems.cartesianItems,Gy=z([K,up],Uy),Ky=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0||!e.hide),qy=z([Wy,zy,Gy],Ky,{memoizeOptions:{resultEqualityCheck:hp}}),Jy=z([qy],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(pp)),Yy=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),Xy=z([qy],Yy),Zy=e=>e.map(e=>e.data).filter(Boolean).flat(1),Qy=z([qy],e=>e.some(e=>!e.data)),$y=z([qy],Zy,{memoizeOptions:{resultEqualityCheck:hp}}),eb=(e,t)=>{var n=t.chartData,r=n===void 0?[]:n,i=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:r.slice(i,a+1)},tb=z([$y,of],eb),nb=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:U(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:U(e,t.dataKey)})),rb=(e,t,n,r,i,a)=>{var o=r.chartData,s=o===void 0?[]:o,c=r.dataStartIndex,l=r.dataEndIndex,u=nb(e,t,n);return i&&t?.dataKey!=null&&a.length>0?[...s.slice(c,l+1).map(e=>({value:U(e,t.dataKey)})).filter(e=>e.value!=null),...u]:u},ib=z([tb,zy,qy,of,Qy,$y],rb);function ab(e){if(se(e)||e instanceof Date){var t=Number(e);if(H(t))return t}}function ob(e){if(Array.isArray(e)){var t=[ab(e[0]),ab(e[1])];return gf(t)?t:void 0}var n=ab(e);if(n!=null)return[n,n]}function sb(e){return e.map(ab).filter(ge)}function cb(e,t){var n=ab(e),r=ab(t);return n==null&&r==null?0:n==null?-1:r==null?1:n-r}var lb=z([ib],e=>e?.map(e=>e.value).sort(cb));function ub(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function db(e,t,n){if(!n||!n.length)return[];var r;if(typeof t==`number`&&!ae(t))r=t;else if(Array.isArray(t)){var i=sb(t);i.length>0&&(r=Math.max(...i))}return r==null?[]:sb(n.flatMap(t=>{var n=U(e,t.dataKey),i,a;if(Array.isArray(n)){var o=Ey(n,2);i=o[0],a=o[1]}else i=a=n;if(!(!H(i)||!H(a)))return[r-i,r+a]}))}var Q=e=>Vy(e,q(e),_p(e)),fb=z([Q],e=>e?.dataKey),pb=z([Jy,of,Q],fp),mb=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var i=Ey(t,2),a=i[0],o=i[1],s=r?[...o].reverse():o;return[a,{stackedData:Xo(e,s.map(dp),n),graphicalItems:s}]}))},hb=z([pb,Jy,If,Lf],mb),gb=(e,t,n,r)=>{var i=t.dataStartIndex,a=t.dataEndIndex;if(r==null&&n!==`zAxis`)return ts(e,i,a)},_b=z([zy],e=>e.allowDataOverflow),vb=e=>{if(e==null||!(`domain`in e))return My;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=sb(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??My},yb=z([zy],vb),bb=z([yb,_b],vf),xb=z([hb,rf,K,bb],gb,{memoizeOptions:{resultEqualityCheck:mp}}),Sb=e=>e.errorBars,Cb=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>ub(n,e)),wb=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},Tb=function(e,t,n,r,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],o,s;if(n.length>0&&n.forEach(e=>{var n=e.data==null?a:[...e.data],c=r[e.id]?.filter(e=>ub(i,e));n.forEach(n=>{var r=U(n,t.dataKey??e.dataKey),i=db(n,r,c);if(i.length>=2){var a=Math.min(...i),l=Math.max(...i);(o==null||as)&&(s=l)}var u=ob(r);u!=null&&(o=o==null?u[0]:Math.min(o,u[0]),s=s==null?u[1]:Math.max(s,u[1]))})}),t?.dataKey!=null&&n.length===0&&e.forEach(e=>{var n=ob(U(e,t.dataKey));n!=null&&(o=o==null?n[0]:Math.min(o,n[0]),s=s==null?n[1]:Math.max(s,n[1]))}),H(o)&&H(s))return[o,s]},Eb=z([tb,zy,Xy,Sb,K,cf],Tb,{memoizeOptions:{resultEqualityCheck:mp}});function Db(e){var t=e.value;if(se(t)||t instanceof Date)return t}var Ob=(e,t,n)=>{var r=e.map(Db).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&de(r))?nf(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},kb=e=>e.referenceElements.dots,Ab=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),jb=z([kb,K,up],Ab),Mb=e=>e.referenceElements.areas,Nb=z([Mb,K,up],Ab),Pb=e=>e.referenceElements.lines,Fb=z([Pb,K,up],Ab),Ib=(e,t)=>{if(e!=null){var n=sb(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Lb=z(jb,K,Ib),Rb=(e,t)=>{if(e!=null){var n=sb(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},zb=z([Nb,K],Rb);function Bb(e){if(e.x!=null)return sb([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:sb(t)}function Vb(e){if(e.y!=null)return sb([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:sb(t)}var Hb=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?Bb(e):Vb(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Ub=z(Lb,z([Fb,K],Hb),zb,(e,t,n)=>wb(e,n,t)),Wb=(e,t,n,r,i,a,o,s,c)=>{if(n!=null)return n;var l=o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?wb(r,a,i):wb(a,i),u=yf(t,l,e.allowDataOverflow);return u==null&&e.allowDataOverflow&&l==null&&c!=null?c:u},Gb=z([zy,yb,bb,xb,Eb,Ub,W,K,z([zy],e=>{if(!(e==null||e.type!==`number`||!(`ticks`in e)||e.ticks==null)){var t=sb(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},{memoizeOptions:{resultEqualityCheck:mp}})],Wb,{memoizeOptions:{resultEqualityCheck:mp}}),Kb=[0,1],qb=(e,t,n,r,i,a,o)=>{if(!((e==null||n==null||n.length===0)&&o===void 0)){var s=e.dataKey,c=e.type,l=Jo(t,a);return l&&s==null?nf(0,n?.length??0):c===`category`?Ob(r,e,l):i===`expand`&&!l?Kb:o}},Jb=z([zy,W,tb,ib,If,K,Gb],qb),Yb=z([zy,Hy,Rf],_y),Xb=(e,t,n)=>{var r=t.niceTicks;if(r!==`none`){var i=vb(t),a=Array.isArray(i)&&(i[0]===`auto`||i[1]===`auto`);if((r===`snap125`||r===`adaptive`)&&t!=null&&t.tickCount&&gf(e)){if(a)return Nf(e,t.tickCount,t.allowDecimals,r);if(t.type===`number`)return Pf(e,t.tickCount,t.allowDecimals,r)}if(r===`auto`&&n===`linear`&&t!=null&&t.tickCount){if(a&&gf(e))return Nf(e,t.tickCount,t.allowDecimals,`adaptive`);if(t.type===`number`&&gf(e))return Pf(e,t.tickCount,t.allowDecimals,`adaptive`)}}},Zb=z([Jb,Vy,Yb],Xb),Qb=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&gf(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},$b=z([zy,Jb,Zb,K],Qb),ex=z(z(ib,zy,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(sb(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;si,(e,t,n,r,i)=>{if(!H(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=ue(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),tx=(e,t,n)=>{var r=Py(e,t);return r==null||typeof r.padding!=`string`?0:ex(e,`xAxis`,t,n,r.padding)},nx=(e,t,n)=>{var r=Iy(e,t);return r==null||typeof r.padding!=`string`?0:ex(e,`yAxis`,t,n,r.padding)},rx=z(Py,tx,(e,t)=>{if(e==null)return{left:0,right:0};var n=e.padding;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),ix=z(Iy,nx,(e,t)=>{if(e==null)return{top:0,bottom:0};var n=e.padding;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),ax=z([Es,rx,Ms,js,(e,t,n)=>n],(e,t,n,r,i)=>{var a=r.padding;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),ox=z([Es,W,ix,Ms,js,(e,t,n)=>n],(e,t,n,r,i,a)=>{var o=i.padding;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),sx=(e,t,n,r)=>{switch(t){case`xAxis`:return ax(e,n,r);case`yAxis`:return ox(e,n,r);case`zAxis`:return Ry(e,n)?.range;case`angleAxis`:return sp(e);case`radiusAxis`:return cp(e,n);default:return}},cx=z([zy,sx],Kf),lx=z([zy,Yb,z([Yb,$b],yp),cx],my),ux=(e,t,n,r)=>{if(!(n==null||n.dataKey==null)){var i=n.type,a=n.scale;if(Jo(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},dx=z([W,ib,Vy,K],ux),fx=z([lx],vp);z([lx],by),z([lx,lb],yy),z([qy,Sb,K],Cb);function px(e,t){return e.idt.id)}var mx=(e,t)=>t,hx=(e,t,n)=>n,gx=z(ps,mx,hx,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(px)),_x=z(ms,mx,hx,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(px)),vx=(e,t)=>{var n=typeof t.height==`number`?t.height:30;return{width:e.width,height:n}},yx=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),bx=z(Es,Py,vx),xx=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},Sx=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},Cx=z(us,Es,gx,mx,hx,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=vx(t,n);o??=xx(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),wx=z(ls,Es,_x,mx,hx,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=yx(t,n);o??=Sx(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),Tx=z([Es,Py,(e,t)=>{var n=Py(e,t);if(n!=null)return Cx(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),Ex=z([Es,Iy,(e,t)=>{var n=Iy(e,t);if(n!=null)return wx(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),Dx=z(Es,Iy,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),Ox=(e,t,n,r)=>{if(n!=null){var i=n.allowDuplicatedCategory,a=n.type,o=n.dataKey,s=Jo(e,r),c=t.map(e=>e.value),l=c.filter(e=>e!=null);if(o&&s&&a===`category`&&i&&de(l))return c}},kx=z([W,ib,zy,K],Ox);z([W,By,Yb,fx,kx,dx,sx,Zb,K],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=Jo(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}});var Ax=z([W,Vy,Yb,fx,Zb,sx,kx,dx,K],(e,t,n,r,i,a,o,s,c)=>{if(!(t==null||r==null)){var l=Jo(e,c),u=t.type,d=t.ticks,f=t.tickCount,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?ie(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return H(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(ge):l&&s?s.map((e,t)=>{var n=r.map(e);return H(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(ge):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return H(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(ge):r.domain().map((e,t)=>{var n=r.map(e);return H(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(ge)}}),jx=z([W,Vy,fx,sx,kx,dx,K],(e,t,n,r,i,a,o)=>{if(!(t==null||n==null||r==null||r[0]===r[1])){var s=Jo(e,o),c=t.tickCount,l=0;return l=o===`angleAxis`&&r?.length>=2?ie(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return H(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(ge):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return H(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(ge):n.domain().map((e,t)=>{var r=n.map(e);return H(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(ge)}}),Mx=z(zy,fx,(e,t)=>{if(!(e==null||t==null))return Sy(Sy({},e),{},{scale:t})});z((e,t,n)=>Ry(e,n),z([z([zy,Yb,Jb,cx],my)],vp),(e,t)=>{if(!(e==null||t==null))return Sy(Sy({},e),{},{scale:t})});var Nx=z([W,ps,ms],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}});z([(e,t,n)=>e.renderedTicks[t]?.[n]],e=>{if(!(!e||e.length===0))return t=>{var n=1/0,r=e[0];for(var i of e){var a=Math.abs(i.coordinate-t);ae.options.defaultTooltipEventType,Fx=e=>e.options.validateTooltipEventTypes;function Ix(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function Lx(e,t){return Ix(t,Px(e),Fx(e))}function Rx(e){return R(t=>Lx(t,e))}var zx=(e,t)=>{var n,r=Number(t);if(!(ae(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},Bx=e=>e.tooltip.settings,Vx={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Hx=Wa({name:`tooltip`,initialState:{itemInteraction:{click:Vx,hover:Vx},axisInteraction:{click:Vx,hover:Vx},keyboardInteraction:Vx,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(B(t.payload))},prepare:V()},replaceTooltipEntrySettings:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ga(e).tooltipItemPayloads.indexOf(B(r));a>-1&&(e.tooltipItemPayloads[a]=B(i))},prepare:V()},removeTooltipEntrySettings:{reducer(e,t){var n=ga(e).tooltipItemPayloads.indexOf(B(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:V()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Ux=Hx.actions,Wx=Ux.addTooltipEntrySettings,Gx=Ux.replaceTooltipEntrySettings,Kx=Ux.removeTooltipEntrySettings,qx=Ux.setTooltipSettingsState,Jx=Ux.setActiveMouseOverItemIndex;Ux.mouseLeaveItem;var Yx=Ux.mouseLeaveChart;Ux.setActiveClickItemIndex;var Xx=Ux.setMouseOverAxisIndex,Zx=Ux.setMouseClickAxisIndex,Qx=Ux.setSyncInteraction,$x=Ux.setKeyboardInteraction,eS=Hx.reducer;function tS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nS(e){for(var t=1;t{if(t==null)return Vx;var i=oS(e,t,n);if(i==null)return Vx;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(sS(i)){if(a)return nS(nS({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return nS(nS({},Vx),{},{coordinate:i.coordinate})};function lS(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function uS(e,t){var n=lS(e),r=t[0],i=t[1];return n!==void 0&&n>=Math.min(r,i)&&n<=Math.max(r,i)}function dS(e,t,n){if(n==null||t==null)return!0;var r=U(e,t);return r==null||!gf(n)||uS(r,n)}var fS=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!H(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||dS(l,n,r)?String(c):null},pS=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},mS=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(r!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},hS=e=>e.options.tooltipPayloadSearcher,gS=e=>e.tooltip;function _S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vS(e){for(var t=1;te(t)}function TS(e){if(typeof e==`string`)return e}function ES(e){if(!(typeof e!=`object`||!e))return{name:`name`in e?SS(e.name):void 0,unit:`unit`in e?CS(e.unit):void 0,dataKey:`dataKey`in e?wS(e.dataKey):void 0,payload:`payload`in e?e.payload:void 0,color:`color`in e?TS(e.color):void 0,fill:`fill`in e?TS(e.fill):void 0}}function DS(e,t){return e??t}var OS=(e,t,n,r,i,a,o)=>{if(!(t==null||a==null)){var s=n.chartData,c=n.computedData,l=n.dataStartIndex,u=n.dataEndIndex;return e.reduce((e,n)=>{var d=n.dataDefinedOnItem,f=n.settings,p=DS(d,s),m=Array.isArray(p)?Bo(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_;return r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?(_=pe(m,r,i),_??=a(m,t,c,g)):_=a(m,t,c,g),Array.isArray(_)?_.forEach(t=>{var n=ES(t),r=n?.name,i=n?.dataKey,a=n?.payload,o=vS(vS({},f),{},{name:r,unit:n?.unit,color:n?.color??f?.color,fill:n?.fill??f?.fill});e.push(as({tooltipEntrySettings:o,dataKey:i,payload:a,value:U(a,i),name:r==null?void 0:String(r)}))}):e.push(as({tooltipEntrySettings:f,dataKey:h,payload:_,value:U(_,h),name:U(_,g)??f?.name})),e},[])}},kS=z([Q,Hy,Rf],_y),AS=z([z([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),Q,z([q,_p],Uy)],Ky,{memoizeOptions:{resultEqualityCheck:hp}}),jS=z([AS],e=>e.filter(pp)),MS=z([AS],Zy,{memoizeOptions:{resultEqualityCheck:hp}}),NS=z([AS],e=>e.some(e=>!e.data)),PS=z([MS,rf],eb),FS=z([jS,rf,Q],fp),IS=z([PS,Q,AS,rf,NS,MS],rb),LS=z([Q],vb),RS=z([LS,z([Q],e=>e.allowDataOverflow)],vf),zS=z([z([FS,z([AS],e=>e.filter(pp)),If,Lf],mb),rf,q,RS],gb),BS=z([PS,Q,z([AS],Yy),Sb,q,lf],Tb,{memoizeOptions:{resultEqualityCheck:mp}}),VS=z([z([kb,q,_p],Ab),q],Ib),HS=z([z([Mb,q,_p],Ab),q],Rb),US=z([Q,W,PS,IS,If,q,z([Q,LS,RS,zS,BS,z([VS,z([z([Pb,q,_p],Ab),q],Hb),HS],wb),W,q],Wb)],qb),WS=z([Q,US,z([US,Q,kS],Xb),q],Qb),GS=e=>sx(e,q(e),_p(e),!1),KS=z([Q,GS],Kf),qS=z([z([Q,kS,WS,KS],my)],vp),JS=z([W,Q,kS,qS,GS,z([W,IS,Q,q],Ox),z([W,IS,Q,q],ux),q],(e,t,n,r,i,a,o,s)=>{if(t){var c=t.type,l=Jo(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?ie(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return H(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(ge):r.domain().map((e,t)=>{var n=r.map(e);return H(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(ge)}}}),YS=z([Px,Fx,Bx],(e,t,n)=>Ix(n.shared,e,t)),XS=e=>e.tooltip.settings.trigger,ZS=e=>e.tooltip.settings.defaultIndex,QS=z([gS,YS,XS,ZS],cS),$S=z([QS,PS,fb,US],fS),eC=z([JS,$S],zx),tC=z([QS],e=>{if(e)return e.dataKey}),nC=z([QS],e=>{if(e)return e.graphicalItemId}),rC=z([gS,YS,XS,ZS],mS),iC=z([QS,z([ls,us,W,Es,JS,ZS,rC],pS)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),aC=z([QS],e=>e?.active??!1),oC=z([z([rC,$S,rf,fb,eC,hS,YS],OS)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function sC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cC(e){for(var t=1;tR(Q),pC=()=>{var e=fC(),t=R(JS),n=R(qS);return is(!e||!n?void 0:cC(cC({},e),{},{scale:n}),t)};function mC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hC(e){for(var t=1;t{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.relativeY};if(e===`vertical`)return{x:r.relativeX,y:i.coordinate}}return{x:0,y:0}},bC=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,o=r.radius;return hC(hC(hC({},r),Ad(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,c=r.angle;return hC(hC(hC({},r),Ad(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function xC(e,t){var n=e.relativeX,r=e.relativeY;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var SC=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=i[1]-i[0],s=(t,n,r)=>[e,e+o,e-o].some(e=>(r?e>=t:e>t)&&e<=n),c=0;c0?n[c-1]?.coordinate:n[a-1]?.coordinate,u=n[c]?.coordinate,d=c>=a-1?n[0]?.coordinate:n[c+1]?.coordinate,f=void 0;if(!(l==null||u==null||d==null))if(ie(u-l)!==ie(d-u)){var p=[];if(ie(d-u)===ie(i[1]-i[0])){f=d;var m=u+i[1]-i[0];p[0]=Math.min(m,(m+l)/2),p[1]=Math.max(m,(m+l)/2)}else{f=l;var h=d+i[1]-i[0];p[0]=Math.min(u,(h+u)/2),p[1]=Math.max(u,(h+u)/2)}var g=[Math.min(u,(f+u)/2),Math.max(u,(f+u)/2)];if(s(g[0],g[1],!1)||s(p[0],p[1],!0))return n[c]?.index}else{var _=Math.min(l,d),v=Math.max(l,d);if(s((_+u)/2,(v+u)/2,!1))return n[c]?.index}}else if(t)for(var y=0;y(b.coordinate+S.coordinate)/2||y>0&&y(b.coordinate+S.coordinate)/2&&e<=(b.coordinate+x.coordinate)/2)return b.index}}return-1},CC=()=>R(Rf),wC=(e,t)=>t,TC=(e,t,n)=>n,EC=(e,t,n,r)=>r,DC=z(JS,e=>Dr(e,e=>e.coordinate)),OC=z([gS,wC,TC,EC],cS),kC=z([OC,PS,fb,US],fS),AC=(e,t,n)=>{if(t!=null){var r=gS(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},jC=z([gS,wC,TC,EC],mS),MC=z([ls,us,W,Es,JS,EC,jC],pS),NC=z([OC,MC],(e,t)=>e.coordinate??t),PC=z([JS,kC],zx),FC=z([jC,kC,rf,fb,PC,hS,wC],OS),IC=z([OC,kC],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),LC=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&xC(e,o)){var s=SC(ss(e,t),a,i,n,r),c=yC(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},RC=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=Id(e,n);if(s){var c=SC(cs(s,t),o,a,r,i),l=bC(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},zC=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?LC(e,t,r,i,a,o,s):RC(e,t,n,r,i,a,o)},BC=z(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),VC=z(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(Uf));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:gp}});function HC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UC(e){for(var t=1;tUC(UC({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},JC=new Set(Object.values(Uf));function YC(e){return JC.has(e)}var XC=Wa({name:`zIndex`,initialState:qC,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:V()},unregisterZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!YC(n)&&delete e.zIndexMap[n])},prepare:V()},registerZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload,r=n.zIndex,i=n.element,a=n.isPanorama;e.zIndexMap[r]?a?e.zIndexMap[r].panoramaElement=B(i):e.zIndexMap[r].element=B(i):e.zIndexMap[r]={consumers:0,element:a?void 0:B(i),panoramaElement:a?B(i):void 0}},prepare:V()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:V()}}}),ZC=XC.actions,QC=ZC.registerZIndexPortal,$C=ZC.unregisterZIndexPortal,ew=ZC.registerZIndexPortalElement,tw=ZC.unregisterZIndexPortalElement,nw=XC.reducer;function rw(e){var t=e.zIndex,n=e.children,r=bc()&&t!==void 0&&t!==0,i=As(),s=(0,a.useRef)(void 0),c=(0,a.useRef)(new Set),l=L(),u=R(e=>BC(e,t,i));if((0,a.useLayoutEffect)(()=>{if(!r){var e=c.current;e.forEach(e=>{l($C({zIndex:e}))}),e.clear(),s.current=void 0;return}if(c.current.has(t)||(l(QC({zIndex:t})),c.current.add(t)),u){s.current=u;var n=c.current;n.forEach(e=>{e!==t&&(l($C({zIndex:e})),n.delete(e))})}},[l,t,r,u]),(0,a.useLayoutEffect)(()=>{var e=c.current;return()=>{e.forEach(e=>{l($C({zIndex:e}))}),e.clear()}},[l]),!r)return n;var d=u??s.current;return d?(0,o.createPortal)(n,d):null}function iw(){return iw=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,a.useContext)(pw),hw=e(n(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!ae(n))return e[n]}},bw=Wa({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),xw=bw.reducer,Sw=bw.actions.createEventEmitter;function Cw(e){return e.tooltip.syncInteraction}var ww=Wa({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=B(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var n=t.payload,r=n.startIndex,i=n.endIndex;r!=null&&(e.dataStartIndex=r),i!=null&&(e.dataEndIndex=i)}}}),Tw=ww.actions,Ew=Tw.setChartData,Dw=Tw.setDataStartEndIndexes;Tw.setComputedData;var Ow=ww.reducer,kw=[`x`,`y`];function Aw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jw(e){for(var t=1;t{if(e==null)return _e;var a=(a,c,l)=>{if(t!==l&&e===a){if(c.payload.active===!1){n(Qx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(r===`index`){var u;if(s&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,f=d.x,p=d.y,m=Fw(d,kw),h=c.payload.sourceViewBox,g=h.x,_=h.y,v=h.width,y=h.height,b=jw(jw({},m),{},{x:s.x+(v?(f-g)/v:0)*s.width,y:s.y+(y?(p-_)/y:0)*s.height});n(jw(jw({},c),{},{payload:jw(jw({},c.payload),{},{coordinate:b})}))}else n(c);return}if(i!=null){var x;typeof r==`function`?x=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(x=i.find(e=>String(e.value)===c.payload.label));var S=c.payload.coordinate;if(S==null||s==null){n(Qx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(x==null){n(Qx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var C=S.x,w=S.y,T=Math.min(C,s.x+s.width),E=Math.min(w,s.y+s.height),D={x:o===`horizontal`?x.coordinate:T,y:o===`horizontal`?E:x.coordinate};n(Qx({active:c.payload.active,coordinate:D,dataKey:c.payload.dataKey,index:String(x.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return gw.on(_w,a),()=>{gw.off(_w,a)}},[R(e=>e.rootProps.className),n,t,e,r,i,o,s])}function Rw(){var e=R(zf),t=R(Vf),n=L();(0,a.useEffect)(()=>{if(e==null)return _e;var r=(r,i,a)=>{t!==a&&e===r&&n(Dw(i))};return gw.on(vw,r),()=>{gw.off(vw,r)}},[n,t,e])}function zw(){var e=L();(0,a.useEffect)(()=>{e(Sw())},[e]),Lw(),Rw()}function Bw(e,t,n,r,i,o){var s=R(n=>AC(n,e,t)),c=R(nC),l=R(Vf),u=R(zf),d=R(Bf),f=R(Cw)?.sourceViewBox!=null,p=fc();(0,a.useEffect)(()=>{if(!f&&u!=null&&l!=null){var e=Qx({active:o,coordinate:n,dataKey:s,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:p,graphicalItemId:c});gw.emit(_w,u,e,l)}},[f,n,s,c,i,r,l,u,d,o,p])}function Vw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hw(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{C(qx({shared:v,trigger:y,axisId:S,active:n,defaultIndex:w}))},[C,v,y,S,n,w]);var T=fc(),E=Ll(),D=Rx(v),O=R(e=>IC(e,D,y,w))??{},k=O.activeIndex,A=O.isActive,j=R(e=>FC(e,D,y,w)),M=R(e=>PC(e,D,y,w)),N=R(e=>NC(e,D,y,w)),ee=j,te=mw(),ne=n??A??!1,re=Kw(zr([ee,ne]),2),P=re[0],ie=re[1],ae=D===`axis`?M:void 0;Bw(D,y,N,ae,k,ne);var oe=x??te;if(oe==null||T==null||D==null)return null;var F=ee??eT;ne||(F=eT),l&&F.length&&(F=Jn(F.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),f,Qw));var se=F.length>0,ce=Hw(Hw({},t),{},{payload:F,label:ae,active:ne,activeIndex:k,coordinate:N,accessibilityLayer:E}),le=a.createElement(Il,{allowEscapeViewBox:r,animationDuration:i,animationEasing:s,isAnimationActive:u,active:ne,coordinate:N,hasPayload:se,offset:d,position:p,reverseDirection:m,useTranslate3d:h,viewBox:T,wrapperStyle:g,lastBoundingBox:P,innerRef:ie,hasPortalFromProps:!!x},$w(c,ce));return a.createElement(a.Fragment,null,(0,o.createPortal)(le,oe),ne&&a.createElement(fw,{cursor:_,tooltipEventType:D,coordinate:N,payload:F,index:k}))}function rT(e,t,n){return(t=iT(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iT(e){var t=aT(e,`string`);return typeof t==`symbol`?t:t+``}function aT(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var oT=class{constructor(e){rT(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function sT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cT(e){for(var t=1;t{try{var n=document.getElementById(hT);n||(n=document.createElement(`span`),n.setAttribute(`id`,hT),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,mT,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},vT=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||hl.isSsr)return{width:0,height:0};if(!fT.enableCache)return _T(e,t);var n=gT(e,t),r=pT.get(n);if(r)return r;var i=_T(e,t);return pT.set(n,i),i},yT;function bT(e,t){return TT(e)||wT(e,t)||ST(e,t)||xT()}function xT(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ST(e,t){if(e){if(typeof e==`string`)return CT(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?CT(e,t):void 0}}function CT(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.children,n=e.breakAll,r=e.style;try{var i=[];return me(t)||(i=n?t.toString().split(``):t.toString().split(nE)),{wordsWithComputedWidth:i.map(e=>({word:e,width:vT(e,r).width})),spaceWidth:n?0:vT(`\xA0`,r).width}}catch{return null}};function iE(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}function aE(e){return me(e)||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var oE=(e,t,n,r)=>e.reduce((e,i)=>{var a=i.word,o=i.width,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+ne.reduce((e,t)=>e.width>t.width?e:t),cE=`…`,lE=(e,t,n,r,i,a,o,s)=>{var c=rE({breakAll:n,style:r,children:e.slice(0,t)+cE});if(!c)return[!1,[]];var l=oE(c.wordsWithComputedWidth,a,o,s);return[l.length>i||sE(l).width>Number(a),l]},uE=(e,t,n,r,i)=>{var a=e.maxLines,o=e.children,s=e.style,c=e.breakAll,l=F(a),u=String(o),d=oE(t,r,n,i);if(!l||i||!(d.length>a||sE(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),_=XT(lE(u,g-1,c,s,a,r,n,i),2),v=_[0],y=_[1],b=XT(lE(u,g,c,s,a,r,n,i),1)[0];if(!v&&!b&&(f=g+1),v&&b&&(p=g-1),!v&&b){h=y;break}m++}return h||d},dE=e=>[{words:me(e)?[]:e.toString().split(nE),width:void 0}],fE=e=>{var t=e.width,n=e.scaleToFit,r=e.children,i=e.style,a=e.breakAll,o=e.maxLines;if((t||n)&&!hl.isSsr){var s,c,l=rE({breakAll:a,children:r,style:i});if(l){var u=l.wordsWithComputedWidth,d=l.spaceWidth;s=u,c=d}else return dE(r);return uE({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return dE(r)},pE=`#808080`,mE={angle:0,breakAll:!1,capHeight:`0.71em`,fill:pE,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},hE=(0,a.forwardRef)((e,t)=>{var n=It(e,mE),r=n.x,i=n.y,o=n.lineHeight,s=n.capHeight,l=n.fill,u=n.scaleToFit,d=n.textAnchor,f=n.verticalAnchor,p=JT(n,GT),m=(0,a.useMemo)(()=>fE({breakAll:p.breakAll,children:p.children,maxLines:p.maxLines,scaleToFit:u,style:p.style,width:p.width}),[p.breakAll,p.children,p.maxLines,u,p.style,p.width]),h=p.dx,_=p.dy,v=p.angle,y=p.className,b=p.breakAll,x=JT(p,KT);if(!se(r)||!se(i)||m.length===0)return null;var S=Number(r)+(F(h)?h:0),C=Number(i)+(F(_)?_:0);if(!H(S)||!H(C))return null;var w;switch(f){case`start`:w=WT(`calc(${s})`);break;case`middle`:w=WT(`calc(${(m.length-1)/2} * -${o} + (${s} / 2))`);break;default:w=WT(`calc(${m.length-1} * -${o})`);break}var T=[],E=m[0];if(u&&E!=null){var D=E.width,O=p.width;T.push(`scale(${F(O)&&F(D)?O/D:1})`)}return v&&T.push(`rotate(${v}, ${S}, ${C})`),T.length&&(x.transform=T.join(` `)),a.createElement(`text`,qT({},g(x),{ref:t,x:S,y:C,className:c(`recharts-text`,y),textAnchor:d,fill:l.includes(`url`)?pE:l}),m.map((e,t)=>{var n=e.words.join(b?``:` `);return a.createElement(`tspan`,{x:S,dy:t===0?w:o,key:`${n}-${t}`},n)}))});hE.displayName=`Text`;var gE=[`labelRef`],_E=[`content`];function vE(e,t){if(e==null)return{};var n,r,i=yE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var t=e.x,n=e.y,r=e.upperWidth,i=e.lowerWidth,o=e.width,s=e.height,c=e.children,l=(0,a.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:o,height:s}),[t,n,r,i,o,s]);return a.createElement(EE.Provider,{value:l},c)},OE=()=>{var e=(0,a.useContext)(EE),t=fc();return e||(t?ve(t):void 0)},kE=(0,a.createContext)(null),AE=()=>{var e=(0,a.useContext)(kE),t=R(lp);return e||t},jE=e=>{var t=e.value,n=e.formatter,r=me(e.children)?t:e.children;return typeof n==`function`?n(r):r},ME=e=>e!=null&&typeof e==`function`,NE=(e,t)=>ie(t-e)*Math.min(Math.abs(t-e),360),PE=(e,t,n,r,i)=>{var o=e.offset,s=e.className,l=i.cx,u=i.cy,d=i.innerRadius,f=i.outerRadius,p=i.startAngle,m=i.endAngle,h=i.clockWise,g=(d+f)/2,_=NE(p,m),v=_>=0?1:-1,y,b;switch(t){case`insideStart`:y=p+v*o,b=h;break;case`insideEnd`:y=m-v*o,b=!h;break;case`end`:y=m+v*o,b=h;break;default:throw Error(`Unsupported position ${t}`)}b=_<=0?b:!b;var x=Ad(l,u,g,y),S=Ad(l,u,g,y+(b?1:-1)*359),C=`M${x.x},${x.y} - A${g},${g},0,1,${+!b}, - ${S.x},${S.y}`,w=me(e.id)?le(`recharts-radial-line-`):e.id;return a.createElement(`text`,TE({},r,{dominantBaseline:`central`,className:c(`recharts-radial-bar-label`,s)}),a.createElement(`defs`,null,a.createElement(`path`,{id:w,d:C})),a.createElement(`textPath`,{xlinkHref:`#${w}`},n))},FE=(e,t,n)=>{var r=e.cx,i=e.cy,a=e.innerRadius,o=e.outerRadius,s=(e.startAngle+e.endAngle)/2;if(n===`outside`){var c=Ad(r,i,o+t,s),l=c.x;return{x:l,y:c.y,textAnchor:l>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var u=Ad(r,i,(a+o)/2,s);return{x:u.x,y:u.y,textAnchor:`middle`,verticalAnchor:`middle`}},IE=e=>e!=null&&`cx`in e&&F(e.cx),LE={angle:0,offset:5,zIndex:Uf.label,position:`middle`,textBreakAll:!1};function RE(e){if(!IE(e))return e;var t=e.cx,n=e.cy,r=e.outerRadius,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function zE(e){var t=It(e,LE),n=t.viewBox,r=t.parentViewBox,i=t.position,o=t.value,s=t.children,l=t.content,u=t.className,d=u===void 0?``:u,f=t.textBreakAll,p=t.labelRef,m=AE(),h=OE(),_=n==null?i===`center`?h:m??h:IE(n)?n:ve(n),v,y,b=RE(_);if(!_||me(o)&&me(s)&&!(0,a.isValidElement)(l)&&typeof l!=`function`)return null;var x=IE(_)&&(i===`insideStart`||i===`insideEnd`||i===`end`);if(IE(_))x||(y=FE(_,t.offset,t.position));else if(b){var S=we({viewBox:b,position:i,offset:t.offset,parentViewBox:IE(r)?void 0:r,clamp:!0});y=xE(xE({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width===void 0?{}:{width:S.width}),S.height===void 0?{}:{height:S.height})}var C=xE(xE(xE(xE({},y?.x===void 0?{}:{x:y.x}),y?.y===void 0?{}:{y:y.y}),t),{},{viewBox:_});if((0,a.isValidElement)(l))return C.labelRef,(0,a.cloneElement)(l,vE(C,gE));if(typeof l==`function`){if(C.content,v=(0,a.createElement)(l,vE(C,_E)),(0,a.isValidElement)(v))return v}else v=jE(t);var w=g(t);return x&&IE(_)?PE(t,i,v,w,_):y==null?null:a.createElement(rw,{zIndex:t.zIndex},a.createElement(hE,TE({ref:p,className:c(`recharts-label`,d)},w,y,{textAnchor:iE(w.textAnchor)?w.textAnchor:y.textAnchor,breakAll:f}),v))}zE.displayName=`Label`;var BE=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?a.createElement(zE,TE({key:`label-implicit`},r)):se(e)?a.createElement(zE,TE({key:`label-implicit`,value:e},r)):(0,a.isValidElement)(e)?e.type===zE?(0,a.cloneElement)(e,xE({key:`label-implicit`},r)):a.createElement(zE,TE({key:`label-implicit`,content:e},r)):ME(e)?a.createElement(zE,TE({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?a.createElement(zE,TE({},e,{key:`label-implicit`},r)):null};function VE(e){var t=e.label,n=e.labelRef;return BE(t,OE(),n)||null}var HE=[`valueAccessor`],UE=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function WE(){return WE=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(aE(t))return t},JE=(0,a.createContext)(void 0),YE=JE.Provider,XE=(0,a.createContext)(void 0);XE.Provider;function ZE(){return(0,a.useContext)(JE)}function QE(){return(0,a.useContext)(XE)}function $E(e){var t=e.valueAccessor,n=t===void 0?qE:t,r=GE(e,HE),i=r.dataKey;r.clockWise;var o=r.id,s=r.textBreakAll,c=r.zIndex,l=GE(r,UE),u=ZE(),d=QE(),f=u||d;return!f||!f.length?null:a.createElement(rw,{zIndex:c??Uf.label},a.createElement(D,{className:`recharts-label-list`},f.map((e,t)=>{var c=me(i)?n(e,t):U(e.payload,i),u=me(o)?{}:{id:`${o}-${t}`};return a.createElement(zE,WE({key:`label-${t}`},g(e),l,u,{fill:r.fill??e.fill,parentViewBox:e.parentViewBox,value:c,textBreakAll:s,viewBox:e.viewBox,index:t,zIndex:0}))})))}$E.displayName=`LabelList`;function eD(e){var t=e.label;return t?t===!0?a.createElement($E,{key:`labelList-implicit`}):a.isValidElement(t)||ME(t)?a.createElement($E,{key:`labelList-implicit`,content:t}):typeof t==`object`?a.createElement($E,WE({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}function tD(){return tD=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,n=e.cy,r=e.r,i=e.className,o=c(`recharts-dot`,i);return F(t)&&F(n)&&F(r)?a.createElement(`circle`,tD({},m(e),Ot(e),{className:o,cx:t,cy:n,r})):null},rD=Wa({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=B(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=B(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),iD=rD.actions;iD.addRadiusAxis,iD.removeRadiusAxis,iD.addAngleAxis,iD.removeAngleAxis;var aD=rD.reducer;function oD(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}var sD=e=>e&&typeof e==`object`&&`clipDot`in e?!!e.clipDot:!0;function cD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lD(e){for(var t=1;t{r||(i.current===null?n(Wx(t)):i.current!==t&&n(Gx({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,a.useLayoutEffect)(()=>()=>{i.current&&=(n(Kx(i.current)),null)},[n]),null}function bD(e){var t=e.legendPayload,n=L(),r=As(),i=(0,a.useRef)(null);return(0,a.useLayoutEffect)(()=>{r||(i.current===null?n(wc(t)):i.current!==t&&n(Tc({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,a.useLayoutEffect)(()=>()=>{i.current&&=(n(Ec(i.current)),null)},[n]),null}function xD(e,t){return ED(e)||TD(e,t)||CD(e,t)||SD()}function SD(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CD(e,t){if(e){if(typeof e==`string`)return wD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wD(e,t):void 0}}function wD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n2&&arguments[2]!==void 0?arguments[2]:[],r=[];for(var i of n)r.push({status:`removed`,prev:i});for(var a=0;ae[Math.floor(r*n)]),t)}function AD(e,t){return OD(t.map((t,n)=>e[n]),t)}function jD(e,t){for(var n=new Map,r=0;r{var a=n(e,t);if(a!=null){var o=r.get(a);if(o!==void 0)return i.add(a),o}}),o=[];for(var s of r){var c=xD(s,2),l=c[0],u=c[1];i.has(l)||o.push(u)}return OD(a,t,o)}function ND(e,t,n){return t==null?null:e==null?t.map(e=>({status:`added`,next:e})):n===`index`?kD(e,t):n===`append`?AD(e,t):MD(e,t,n)}function PD(e,t){var n=(0,a.useRef)(e),r=(0,a.useRef)(t.current),i=(0,a.useRef)(!0);n.current!==e&&(n.current=e,r.current=t.current,i.current=!1);var o=(0,a.useCallback)(function(e,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(n===0){i.current=!0;return}n===1&&(r.current=e),n>0&&i.current&&a&&(t.current=e)},[t]);return{startValue:r.current,syncStepValue:o}}function FD(e,t){return BD(e)||zD(e,t)||LD(e,t)||ID()}function ID(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LD(e,t){if(e){if(typeof e==`string`)return RD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?RD(e,t):void 0}}function RD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{typeof e==`function`&&e(),i(!0)},[e]),handleAnimationEnd:(0,a.useCallback)(()=>{typeof t==`function`&&t(),i(!1)},[t])}}function HD(e){var t=e.animationInput,n=e.animationIdPrefix,r=e.items,i=e.previousItemsRef,o=e.isAnimationActive,s=e.animationBegin,c=e.animationDuration,l=e.animationEasing,u=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,m=e.shouldUpdatePreviousRef,h=e.children,g=e.layout,_=Wu(t,n),v=PD(_,i),y=v.startValue??null,b=ND(y,r,p??DD);return a.createElement(Uu,{animationId:_,begin:s,duration:c,isActive:o,easing:l,onAnimationEnd:d,onAnimationStart:u,key:_},e=>{var t=y==null,n=r==null?r:f(b,e,g),i=m?m(e):e>0;return v.syncStepValue(n,e,i),n==null?null:h(n,e,t)})}function UD(e,t){return JD(e)||qD(e,t)||GD(e,t)||WD()}function WD(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function GD(e,t){if(e){if(typeof e==`string`)return KD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?KD(e,t):void 0}}function KD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nUD(a.useState(()=>le(`uid-`)),1)[0]);function XD(e,t){var n=YD();return t||(e?`${e}-${n}`:n)}var ZD=(0,a.createContext)(void 0),QD=e=>{var t=e.id,n=e.type,r=e.children,i=XD(`recharts-${n}`,t);return a.createElement(ZD.Provider,{value:i},r(i))},$D=Wa({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(B(t.payload))},prepare:V()},replaceCartesianGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ga(e).cartesianItems.indexOf(B(r));a>-1&&(e.cartesianItems[a]=B(i))},prepare:V()},removeCartesianGraphicalItem:{reducer(e,t){var n=ga(e).cartesianItems.indexOf(B(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:V()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(B(t.payload))},prepare:V()},removePolarGraphicalItem:{reducer(e,t){var n=ga(e).polarItems.indexOf(B(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:V()},replacePolarGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ga(e).polarItems.indexOf(B(r));a>-1&&(e.polarItems[a]=B(i))},prepare:V()}}}),eO=$D.actions,tO=eO.addCartesianGraphicalItem,nO=eO.replaceCartesianGraphicalItem,rO=eO.removeCartesianGraphicalItem;eO.addPolarGraphicalItem,eO.removePolarGraphicalItem,eO.replacePolarGraphicalItem;var iO=$D.reducer,aO=(0,a.memo)(e=>{var t=L(),n=(0,a.useRef)(null);return(0,a.useLayoutEffect)(()=>{n.current===null?t(tO(e)):n.current!==e&&t(nO({prev:n.current,next:e})),n.current=e},[t,e]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(rO(n.current)),null)},[t]),null}),oO=[`points`];function sO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cO(e){for(var t=1;t{var c=cO(cO(cO({r:3},s),p),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:o,value:e.value,payload:e.payload,points:t});return a.createElement(hO,{key:`dot-${r}`,option:n,dotProps:c,className:i})}),h={};return c&&l!=null&&(h.clipPath=`url(#clipPath-${f?``:`dots-`}${l})`),a.createElement(rw,{zIndex:d},a.createElement(D,fO({className:r},h),m))}function vO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yO(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),ls,us],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),FO=()=>R(PO),IO=()=>R(oC);function LO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RO(e){for(var t=1;t{var t=e.point,n=e.childIndex,r=e.mainColor,i=e.activeDot,o=e.dataKey,s=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var c=RO(RO(RO({},{index:n,dataKey:o,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),h(i)),Ot(i)),l=(0,a.isValidElement)(i)?(0,a.cloneElement)(i,c):typeof i==`function`?i(c):a.createElement(nD,c);return a.createElement(D,{className:`recharts-active-dot`,clipPath:s},l)};function UO(e){var t=e.points,n=e.mainColor,r=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,c=s===void 0?Uf.activeDot:s,l=R($S),u=IO();if(t==null||u==null)return null;var d=t.find(e=>u.includes(e.payload));return me(d)?null:a.createElement(rw,{zIndex:c},a.createElement(HO,{point:d,childIndex:Number(l),mainColor:n,dataKey:i,activeDot:r,clipPath:o}))}var WO=e=>{var t=e.chartData,n=L(),r=As();return(0,a.useEffect)(()=>r?()=>{}:(n(Ew(t)),()=>{n(Ew(void 0))}),[t,n,r]),null},GO={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},KO=Wa({name:`brush`,initialState:GO,reducers:{setBrushSettings(e,t){return t.payload==null?GO:t.payload}}});KO.actions.setBrushSettings;var qO=KO.reducer;function JO(e){return(e%180+180)%180}var YO=function(e){var t=e.width,n=e.height,r=JO(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=ga(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=ga(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(B(t.payload))},removeLine:(e,t)=>{var n=ga(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),ZO=XO.actions;ZO.addDot,ZO.removeDot,ZO.addArea,ZO.removeArea,ZO.addLine,ZO.removeLine;var QO=XO.reducer;function $O(e,t){return ik(e)||rk(e,t)||tk(e,t)||ek()}function ek(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tk(e,t){if(e){if(typeof e==`string`)return nk(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?nk(e,t):void 0}}function nk(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.children,n=$O((0,a.useState)(`${le(`recharts`)}-clip`),1)[0],r=FO();if(r==null)return null;var i=r.x,o=r.y,s=r.width,c=r.height;return a.createElement(ak.Provider,{value:n},a.createElement(`defs`,null,a.createElement(`clipPath`,{id:n},a.createElement(`rect`,{x:i,y:o,height:c,width:s}))),t)};function sk(){}function ck(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)===`[object Object]`:!1}function lk(e,t,n){return uk(e,t,void 0,void 0,void 0,void 0,n)}function uk(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return dk(e,t,a,o)}return dk(e,t,a,o)}function dk(e,t,n,r){if(Object.is(e,t))return!0;let i=Wt(e),a=Wt(t);if(i===`[object Arguments]`&&(i=rn),a===`[object Arguments]`&&(a=rn),i!==a)return!1;switch(i){case Kt:return e.toString()===t.toString();case qt:return Tn(e.valueOf(),t.valueOf());case Jt:case Zt:case Xt:return Object.is(e.valueOf(),t.valueOf());case Gt:return e.source===t.source&&e.flags===t.flags;case tn:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case Qt:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!uk(a,t.get(i),i,e,t,n,r))return!1;return!0;case $t:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;ouk(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case en:case sn:case cn:case ln:case un:case dn:case fn:case pn:case mn:case hn:case gn:case _n:if(yn(e)!==yn(t)||e.length!==t.length)return!1;for(let i=0;ie*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function _k(e,t){return pk(e,t+1)}function vk(e,t,n,r,i){for(var a=(r||[]).slice(),o=t.start,s=t.end,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:pk(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||gk(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function yk(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var o=t.start,s=t.end,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||gk(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=xk(xk({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=xk(xk({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&gk(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=xk(xk({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function Ek(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,c=t.start,l=t.end;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=xk(xk({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&gk(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=xk(xk({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=xk(xk({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=xk(xk({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&gk(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=xk(xk({},a),{},{isShow:!0}))},h=0;h{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?mk(vT(i,{fontSize:t,letterSpacing:n}),m,d):vT(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?ie(_.coordinate-g.coordinate):1,y=hk(a,v,p);return c===`equidistantPreserveStart`?vk(v,y,h,i,o):c===`equidistantPreserveEnd`?yk(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?Ek(v,y,h,i,o,c===`preserveStartEnd`):Tk(v,y,h,i,o),f.filter(e=>e.isShow))}var Ok=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>l&&(l=t.width)}});var u=n?n.getBoundingClientRect().width:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},kk=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.height>l&&(l=t.height)}});var u=n?n.getBoundingClientRect().height:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},Ak=Wa({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId,a=n.ticks;e[r][i]=B(a)},removeRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId;delete e[r][i]}}}),jk=Ak.actions,Mk=jk.setRenderedTicks,Nk=jk.removeRenderedTicks,Pk=Ak.reducer,Fk=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function Ik(e,t){return Vk(e)||Bk(e,t)||Rk(e,t)||Lk()}function Lk(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rk(e,t){if(e){if(typeof e==`string`)return zk(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zk(e,t):void 0}}function zk(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{if(!(r==null||n==null)){var e=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),a=o.current;a!=null&&a.axisId===r&&a.axisType===n&&fk(a.ticks,e)||(o.current={ticks:e,axisId:r,axisType:n},i(Mk({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,a.useEffect)(()=>r==null||n==null?_e:()=>{i(Nk({axisId:r,axisType:n}))},[i,r,n]),null}var nA=(0,a.forwardRef)((e,t)=>{var n=e.ticks,r=n===void 0?[]:n,i=e.tick,o=e.tickLine,s=e.stroke,l=e.tickFormatter,u=e.unit,d=e.padding,f=e.tickTextProps,p=e.orientation,g=e.mirror,_=e.x,v=e.y,y=e.width,b=e.height,x=e.tickSize,S=e.tickMargin,C=e.fontSize,w=e.letterSpacing,T=e.getTicksConfig,E=e.events,O=e.axisType,k=e.axisId,A=Dk($($({},T),{},{ticks:r}),C,w),j=m(T),M=h(i),N=iE(j.textAnchor)?j.textAnchor:Qk(p,g),te=$k(p,g),ne={};typeof o==`object`&&(ne=o);var re=$($({},j),{},{fill:`none`},ne),P=A.map(e=>$({entry:e},Zk(e,_,v,y,b,p,x,g,S))),ie=P.map(e=>{var t=e.entry,n=e.line;return a.createElement(D,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},o&&a.createElement(`line`,Wk({},re,n,{className:c(`recharts-cartesian-axis-tick-line`,ee(o,`className`))})))}),ae=P.map((e,t)=>{var n=e.entry,r=e.tick,o=$($({},$($($($({verticalAnchor:te},j),{},{textAnchor:N,stroke:`none`,fill:s},r),{},{index:t,payload:n,visibleTicksCount:A.length,tickFormatter:l,padding:d},f),{},{angle:f?.angle??j.angle??0})),M);return a.createElement(D,Wk({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},At(E,n,t)),i&&a.createElement(eA,{option:i,tickProps:o,value:`${typeof l==`function`?l(n.value,t):n.value}${u||``}`}))});return a.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${O}-ticks`},a.createElement(tA,{ticks:A,axisId:k,axisType:O}),ae.length>0&&a.createElement(rw,{zIndex:Uf.label},a.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${O}-tick-labels`,ref:t},ae)),ie.length>0&&a.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${O}-tick-lines`},ie))}),rA=(0,a.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,i=e.height,o=e.className,s=e.hide,l=e.ticks,u=e.axisType,d=e.axisId,f=Hk(e,Fk),p=Ik((0,a.useState)(``),2),h=p[0],g=p[1],_=Ik((0,a.useState)(``),2),v=_[0],y=_[1],b=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>Ok({ticks:b.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>kk({ticks:b.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var x=(0,a.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);b.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==h||a!==v)&&(g(i),y(a))}}},[h,v]);return s||r!=null&&r<=0||i!=null&&i<=0?null:a.createElement(rw,{zIndex:e.zIndex},a.createElement(D,{className:c(`recharts-cartesian-axis`,o)},a.createElement(Xk,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:m(e)}),a.createElement(nA,{ref:x,axisType:u,events:f,fontSize:h,getTicksConfig:e,height:e.height,letterSpacing:v,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:d}),a.createElement(DE,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},a.createElement(VE,{label:e.label,labelRef:e.labelRef}),e.children)))}),iA=a.forwardRef((e,t)=>{var n=It(e,Yk);return a.createElement(rA,Wk({},n,{ref:t}))});iA.displayName=`CartesianAxis`;var aA=Wa({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),oA=aA.actions;oA.addErrorBar,oA.replaceErrorBar,oA.removeErrorBar;var sA=aA.reducer;function cA(e,t){var n=R(t=>Py(t,e)),r=R(e=>Iy(e,t)),i=n?.allowDataOverflow??X.allowDataOverflow,a=r?.allowDataOverflow??Z.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function lA(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=FO(),o=cA(t,n),s=o.needClipX,c=o.needClipY,l=o.needClip,u=R(e=>ax(e,t,!1)),d=R(e=>ox(e,n,!1));if(!l||!i)return null;var f=i.x,p=i.y,m=i.width,h=i.height,g=s&&u?Math.min(u[0],u[1]):f-m/2,_=c&&d?Math.min(d[0],d[1]):p-h/2,v=s&&u?Math.abs(u[1]-u[0]):m*2,y=c&&d?Math.abs(d[1]-d[0]):h*2;return a.createElement(`clipPath`,{id:`clipPath-${r}`},a.createElement(`rect`,{x:g,y:_,width:v,height:y}))}function uA(e){var t=h(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}function dA(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function fA(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var pA=(e,t,n)=>Mx(e,`xAxis`,dA(e,t),n),mA=(e,t,n)=>jx(e,`xAxis`,dA(e,t),n),hA=(e,t,n)=>Mx(e,`yAxis`,fA(e,t),n),gA=(e,t,n)=>jx(e,`yAxis`,fA(e,t),n),_A=z([W,pA,hA,mA,gA],(e,t,n,r,i)=>Jo(e,`xAxis`)?is(t,r,!1):is(n,i,!1)),vA=z([Wy,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),yA=e=>Jo(W(e),`xAxis`)?`yAxis`:`xAxis`,bA=(e,t)=>yA(e)===`yAxis`?fA(e,t):dA(e,t),xA=(e,t,n)=>hb(e,yA(e),bA(e,t),n),SA=z([W,pA,hA,mA,gA,z([vA,xA],(e,t)=>{if(!(e==null||t==null)){var n=e.stackId,r=dp(e);if(!(n==null||r==null)){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),sf,_A,vA,Hf,z([vA,xA],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var n=t[e.stackId];if(n!=null)return n.graphicalItems.map(e=>e.dataKey).filter(ge)}})],(e,t,n,r,i,a,o,s,c,l,u)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var m=c.data,h=m&&m.length>0?m:d?.slice(f,p+1);if(h!=null)return tj({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:f,areaSettings:c,stackedData:a,displayedData:h,chartBaseValue:l,bandSize:s,stackDataKeys:u})}}),CA=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`layout`,`isRange`,`stroke`,`connectNulls`],wA=[`id`,`baseLine`];function TA(){return TA=Object.assign?Object.assign.bind():function(e){for(var t=1;te.y||0));return F(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(e=>e.y||0),l)),F(l)?a.createElement(`rect`,{x:oe.x||0));return F(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(e=>e.x||0),l)),F(l)?a.createElement(`rect`,{x:0,y:oe==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>e.status===`matched`?[RA(RA({},e.next),{},{x:fe(e.prev.x,e.next.x,t),y:fe(e.prev.y,e.next.y,t)})]:e.status===`added`?[e.next]:[]),connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,shape:jA,xAxisId:0,yAxisId:0,zIndex:Uf.area};function UA(e,t){return e&&e!==`none`?e:t}var WA=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.fill,a=e.legendType;return[{inactive:e.hide,dataKey:t,type:a,color:UA(r,i),value:os(n,t),payload:e}]},GA=a.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,o=e.fill,s=e.name,c=e.hide,l=e.unit,u=e.formatter,d=e.tooltipType,f=e.id,p={dataDefinedOnItem:n,getPosition:_e,settings:{stroke:r,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:os(s,t),hide:c,type:d,color:UA(r,o),unit:l,formatter:u,graphicalItemId:f}};return a.createElement(yD,{tooltipEntrySettings:p})});function KA(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.needClip,o=r.dot,s=r.dataKey,c=m(r);return a.createElement(_O,{points:n,dot:o,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:s,baseProps:c,needClip:i,clipPathId:t})}function qA(e){var t=e.showLabels,n=e.children,r=e.points.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return RA(RA({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return a.createElement(YE,{value:t?r:void 0},n)}function JA(e){var t=e.points,n=e.baseLine,r=e.needClip,i=e.clipPathId,o=e.props,s=e.animationElapsedTime,c=e.isAnimating,l=e.isEntrance,u=o.layout,d=o.type,f=o.stroke,p=o.connectNulls,m=o.isRange,h=o.shape,_=o.id,v=FA(o,MA),y=RA(RA({},g(v)),{},{id:_,points:t,connectNulls:p,type:d,baseLine:n,layout:u,stroke:f,isRange:m,animationElapsedTime:s,isAnimating:c,isEntrance:l});return a.createElement(a.Fragment,null,t?.length>1&&a.createElement(D,{clipPath:r?`url(#clipPath-${i})`:void 0},a.createElement(vD,{option:h,DefaultShape:HA.shape,shapeProps:y})),a.createElement(KA,{points:t,props:v,clipPathId:i}))}function YA(e,t,n){return F(e)?fe(F(t)?t:void 0,e,n):me(e)||ae(e)?fe(F(t)?t:void 0,0,n):e}function XA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=e.previousPointsRef,o=e.previousBaselineRef,s=r.points,c=r.baseLine,l=r.isAnimationActive,u=r.animationBegin,d=r.animationDuration,f=r.animationEasing,p=r.animationMatchBy,m=r.animationInterpolateFn,h=(0,a.useMemo)(()=>({points:s,baseLine:c}),[s,c]),g=PD(h,o),_=vc(),v=VD(r.onAnimationStart,r.onAnimationEnd),y=v.isAnimating,b=v.handleAnimationStart,x=v.handleAnimationEnd,S=g.startValue;if(_==null)return null;var C=Array.isArray(c)&&Array.isArray(S)?ND(S,c,p):Array.isArray(c)?ND(null,c,p):null;return a.createElement(HD,{animationInput:h,animationIdPrefix:`recharts-area-`,items:s,previousItemsRef:i,isAnimationActive:l,animationBegin:u,animationDuration:d,animationEasing:f,onAnimationStart:b,onAnimationEnd:x,animationInterpolateFn:m,animationMatchBy:p,layout:_},(e,i,o)=>{var l=i===1?c:Array.isArray(c)?m(C,i,_):o?c:YA(c,S,i);return g.syncStepValue(l,i),a.createElement(qA,{showLabels:!y,points:s},r.children,a.createElement(JA,{points:e,baseLine:l,needClip:t,clipPathId:n,props:r,animationElapsedTime:i,isAnimating:y||i<1,isEntrance:o}),a.createElement(eD,{label:r.label}))})}function ZA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=(0,a.useRef)(null),o=(0,a.useRef)();return a.createElement(XA,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:o})}var QA=class extends a.PureComponent{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,o=e.top,s=e.left,l=e.needClip,u=e.xAxisId,d=e.yAxisId,f=e.width,p=e.height,m=e.id,h=e.baseLine,g=e.zIndex;if(t)return null;var _=c(`recharts-area`,i),v=m,y=uA(n),b=y.r,x=y.strokeWidth,S=sD(n),C=b*2+x,w=l?`url(#clipPath-${S?``:`dots-`}${v})`:void 0;return a.createElement(rw,{zIndex:g},a.createElement(D,{className:_},l&&a.createElement(`defs`,null,a.createElement(lA,{clipPathId:v,xAxisId:u,yAxisId:d}),!S&&a.createElement(`clipPath`,{id:`clipPath-dots-${v}`},a.createElement(`rect`,{x:s-C/2,y:o-C/2,width:f+C,height:p+C}))),a.createElement(ZA,{needClip:l,clipPathId:v,props:this.props})),a.createElement(UO,{points:r,mainColor:UA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(h)&&a.createElement(UO,{points:h,mainColor:UA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function $A(e){var t=e.activeDot,n=e.animationBegin,r=e.animationDuration,i=e.animationEasing,o=e.connectNulls,s=e.dot,c=e.fill,l=e.fillOpacity,u=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,m=e.xAxisId,h=e.yAxisId,g=FA(e,NA),_=_c(),v=CC(),y=cA(m,h).needClip,b=As(),x=R(t=>SA(t,e.id,b))??{},S=x.points,C=x.isRange,w=x.baseLine,T=FO();if(_!==`horizontal`&&_!==`vertical`||T==null||v!==`AreaChart`&&v!==`ComposedChart`)return null;var E=T.height,D=T.width,O=T.x,k=T.y;return!S||!S.length?null:a.createElement(QA,PA({},g,{activeDot:t,animationBegin:n,animationDuration:r,animationEasing:i,baseLine:w,connectNulls:o,dot:s,fill:c,fillOpacity:l,height:E,hide:u,layout:_,isAnimationActive:d,isRange:C,legendType:f,needClip:y,points:S,stroke:p,width:D,left:O,top:k,xAxisId:m,yAxisId:h}))}var ej=(e,t,n,r,i)=>{var a=n??t;if(F(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function tj(e){var t=e.areaSettings,n=t.connectNulls,r=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,s=e.chartBaseValue,c=e.xAxis,l=e.yAxis,u=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,h=e.stackDataKeys,g=a&&a.length,_=ej(o,s,r,c,l),v=o===`horizontal`,y=!1,b=u.map((e,t)=>{var r;if(g)r=a[d+t];else{var o=U(e,i);Array.isArray(o)?(r=o,y=!0):r=[_,o]}var s=r?.[1]??null,u=U(e,i),b=g&&u==null&&h!=null&&h.length>0&&h.every(t=>U(e,t)==null),x=s==null||g&&!n&&u==null||b;return v?{x:Qo({axis:c,ticks:f,bandSize:m,entry:e,index:t}),y:x?null:l.scale.map(s)??null,value:r,payload:e}:{x:x?null:c.scale.map(s)??null,y:Qo({axis:l,ticks:p,bandSize:m,entry:e,index:t}),value:r,payload:e}});return{points:b,baseLine:(g||y?b.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return v?{x:e.x,y:t!=null&&e.y!=null?l.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:c.scale.map(t)??null,y:e.y,payload:e.payload}}):v?l.scale.map(_):c.scale.map(_))??0,isRange:y}}function nj(e){var t=It(e,HA),n=As();return a.createElement(QD,{id:t.id,type:`area`},e=>a.createElement(a.Fragment,null,a.createElement(bD,{legendPayload:WA(t)}),a.createElement(GA,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),a.createElement(aO,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Zo(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),a.createElement($A,PA({},t,{id:e}))))}var rj=a.memo(nj,Kc);rj.displayName=`Area`;var ij=[`domain`,`range`],aj=[`domain`,`range`];function oj(e,t){if(e==null)return{};var n,r,i=sj(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{if(s!=null)return hj(hj({},o),{},{type:s})},[o,s]);return(0,a.useLayoutEffect)(()=>{c!=null&&(n.current===null?t(TO(c)):n.current!==c&&t(EO({prev:n.current,next:c})),n.current=c)},[c,t]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(DO(n.current)),null)},[t]),null}var Sj=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,o=(0,a.useRef)(null),s=(0,a.useRef)(null),l=R(Os),u=As(),d=L(),f=`xAxis`,p=R(e=>Ax(e,f,t,u)),m=R(e=>bx(e,t)),h=R(e=>Tx(e,t)),g=R(e=>Ny(e,t));if((0,a.useLayoutEffect)(()=>{if(!(r!==`auto`||!m||ME(i)||(0,a.isValidElement)(i)||g==null)){var e=o.current;if(e){var n=e.getCalculatedHeight();Math.round(m.height)!==Math.round(n)&&d(MO({id:t,height:n}))}}},[p,m,d,i,t,r,g]),m==null||h==null||g==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var _=yj(e,dj);g.id,g.scale;var v=yj(g,fj);return a.createElement(iA,pj({},_,v,{ref:o,labelRef:s,x:h.x,y:h.y,width:m.width,height:m.height,className:c(`recharts-${f} ${f}`,n),viewBox:l,ticks:p,axisType:f,axisId:t}))},Cj={allowDataOverflow:X.allowDataOverflow,allowDecimals:X.allowDecimals,allowDuplicatedCategory:X.allowDuplicatedCategory,angle:X.angle,axisLine:Yk.axisLine,height:X.height,hide:!1,includeHidden:X.includeHidden,interval:X.interval,label:!1,minTickGap:X.minTickGap,mirror:X.mirror,orientation:X.orientation,padding:X.padding,reversed:X.reversed,scale:X.scale,tick:X.tick,tickCount:X.tickCount,tickLine:Yk.tickLine,tickSize:Yk.tickSize,type:X.type,niceTicks:X.niceTicks,xAxisId:0},wj=a.memo(e=>{var t=It(e,Cj);return a.createElement(a.Fragment,null,a.createElement(xj,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),a.createElement(Sj,t))},lj);wj.displayName=`XAxis`;var Tj=[`type`],Ej=[`dangerouslySetInnerHTML`,`ticks`,`scale`],Dj=[`id`,`scale`];function Oj(){return Oj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return Aj(Aj({},o),{},{type:s})},[s,o]);return(0,a.useLayoutEffect)(()=>{c!=null&&(n.current===null?t(OO(c)):n.current!==c&&t(kO({prev:n.current,next:c})),n.current=c)},[c,t]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(AO(n.current)),null)},[t]),null}function Lj(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,o=(0,a.useRef)(null),s=(0,a.useRef)(null),l=R(Os),u=As(),d=L(),f=`yAxis`,p=R(e=>Dx(e,t)),m=R(e=>Ex(e,t)),h=R(e=>Ax(e,f,t,u)),g=R(e=>Fy(e,t));if((0,a.useLayoutEffect)(()=>{if(!(r!==`auto`||!p||ME(i)||(0,a.isValidElement)(i)||g==null)){var e=o.current;if(e){var n=e.getCalculatedWidth();Math.round(p.width)!==Math.round(n)&&d(jO({id:t,width:n}))}}},[h,p,d,i,t,r,g]),p==null||m==null||g==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var _=Pj(e,Ej);g.id,g.scale;var v=Pj(g,Dj);return a.createElement(iA,Oj({},_,v,{ref:o,labelRef:s,x:m.x,y:m.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:p.width,height:p.height,className:c(`recharts-${f} ${f}`,n),viewBox:l,ticks:h,axisType:f,axisId:t}))}var Rj={allowDataOverflow:Z.allowDataOverflow,allowDecimals:Z.allowDecimals,allowDuplicatedCategory:Z.allowDuplicatedCategory,angle:Z.angle,axisLine:Yk.axisLine,hide:!1,includeHidden:Z.includeHidden,interval:Z.interval,label:!1,minTickGap:Z.minTickGap,mirror:Z.mirror,orientation:Z.orientation,padding:Z.padding,reversed:Z.reversed,scale:Z.scale,tick:Z.tick,tickCount:Z.tickCount,tickLine:Yk.tickLine,tickSize:Yk.tickSize,type:Z.type,niceTicks:Z.niceTicks,width:Z.width,yAxisId:0},zj=a.memo(e=>{var t=It(e,Rj);return a.createElement(a.Fragment,null,a.createElement(Ij,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),a.createElement(Lj,t))},lj);zj.displayName=`YAxis`;var Bj=z([(e,t)=>t,W,lp,q,KS,JS,DC,Es],zC);function Vj(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function Hj(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(Vj(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var Uj=Ca(`mouseClick`),Wj=jo();Wj.startListening({actionCreator:Uj,effect:(e,t)=>{var n=e.payload,r=Bj(t.getState(),Hj(n));r?.activeIndex!=null&&t.dispatch(Zx({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var Gj=Ca(`mouseMove`),Kj=jo(),qj=null,Jj=null,Yj=null;Kj.startListening({actionCreator:Gj,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);qj!==null&&(cancelAnimationFrame(qj),qj=null),Jj!==null&&(typeof i!=`number`||!o)&&(clearTimeout(Jj),Jj=null),Yj=Hj(n);var s=()=>{var e=t.getState(),n=Lx(e,e.tooltip.settings.shared);if(!Yj){qj=null,Jj=null;return}if(n===`axis`){var r=Bj(e,Yj);r?.activeIndex==null?t.dispatch(Yx()):t.dispatch(Xx({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}qj=null,Jj=null};if(!o){s();return}i===`raf`?qj=requestAnimationFrame(s):typeof i==`number`&&Jj===null&&(Jj=setTimeout(s,i))}});function Xj(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<>`:t}var Zj={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},Qj=Wa({name:`rootProps`,initialState:Zj,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??Zj.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),$j=Qj.reducer,eM=Qj.actions.updateOptions,tM=Wa({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});tM.actions.updatePolarOptions;var nM=tM.reducer,rM=Ca(`keyDown`),iM=Ca(`focus`),aM=Ca(`blur`),oM=jo(),sM=null,cM=null,lM=null;oM.startListening({actionCreator:rM,effect:(e,t)=>{lM=e.payload,sM!==null&&(cancelAnimationFrame(sM),sM=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);cM!==null&&(typeof r!=`number`||!a)&&(clearTimeout(cM),cM=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=lM;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=fS(n,PS(e),fb(e),US(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=JS(e),c=PS(e),l=Lx(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=MC(e,l,`hover`,String(n.index));t.dispatch($x({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=Nx(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=fb(e),h=US(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v=0;y--)if(fS(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=MC(e,l,`hover`,String(p));t.dispatch($x({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{sM=null,cM=null}};if(!a){o();return}r===`raf`?sM=requestAnimationFrame(o):typeof r==`number`&&cM===null&&(o(),lM=null,cM=setTimeout(()=>{lM?o():(cM=null,sM=null)},r))}}),oM.startListening({actionCreator:iM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=MC(n,Lx(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch($x({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),oM.startListening({actionCreator:aM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch($x({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function uM(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var dM=Ca(`externalEvent`),fM=jo(),pM=new Map,mM=new Map,hM=new Map;fM.startListening({actionCreator:dM,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=uM(i);hM.set(a,{handler:r,reactEvent:o});var s=pM.get(a);s!==void 0&&(cancelAnimationFrame(s),pM.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=mM.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),mM.delete(a));var p=()=>{var e=hM.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:iC(i),activeDataKey:tC(i),activeIndex:$S(i),activeLabel:eC(i),activeTooltipIndex:$S(i),isTooltipActive:aC(i)};n&&n(o,r)}finally{pM.delete(a),mM.delete(a),hM.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);pM.set(a,m)}else if(typeof l==`number`){if(!mM.has(a)){p();var h=setTimeout(p,l);mM.set(a,h)}}else p()}}});var gM=z([z([gS],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),_M=Ca(`touchMove`),vM=jo(),yM=null,bM=null,xM=null,SM=null;vM.startListening({actionCreator:_M,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){SM=uM(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);yM!==null&&(cancelAnimationFrame(yM),yM=null),bM!==null&&(typeof i!=`number`||!o)&&(clearTimeout(bM),bM=null),xM=Array.from(n.touches).map(e=>Hj({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(SM!=null){var e=t.getState(),n=Lx(e,e.tooltip.settings.shared);if(n===`axis`){var r=xM?.[0];if(r==null){yM=null,bM=null;return}var i=Bj(e,r);i?.activeIndex!=null&&t.dispatch(Xx({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=SM.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(hs),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=AS(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=gM(e,s,c);t.dispatch(Jx({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}yM=null,bM=null}};if(!o){s();return}i===`raf`?yM=requestAnimationFrame(s):typeof i==`number`&&bM===null&&(s(),SM=null,bM=setTimeout(()=>{SM?s():(bM=null,yM=null)},i))}}});var CM={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},wM=Wa({name:`eventSettings`,initialState:CM,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=B(t.payload.throttledEvents))}}}),TM=wM.actions.setEventSettings,EM=wM.reducer,DM=qr({brush:qO,cartesianAxis:NO,chartData:Ow,errorBars:sA,eventSettings:EM,graphicalItems:iO,layout:zo,legend:Dc,options:xw,polarAxis:aD,polarOptions:nM,referenceElements:QO,renderedTicks:Pk,rootProps:$j,tooltip:eS,zIndex:nw}),OM=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Pa({reducer:DM,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([Wj.middleware,Kj.middleware,oM.middleware,fM.middleware,vM.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Ma({type:`raf`}))},devTools:hl.devToolsEnabled&&{serialize:{replacer:Xj},name:`recharts-${t}`}})};function kM(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=As(),o=(0,a.useRef)(null);if(i)return n;o.current??=OM(t,r);var s=er;return a.createElement(Uc,{context:s,store:o.current},n)}function AM(e){var t=e.layout,n=e.margin,r=L(),i=As();return(0,a.useEffect)(()=>{i||(r(Io(t)),r(Fo(n)))},[r,i,t,n]),null}var jM=(0,a.memo)(AM,Kc);function MM(e){var t=L();return(0,a.useEffect)(()=>{t(eM(e))},[t,e]),null}var NM=(0,a.memo)(e=>{var t=L();return(0,a.useEffect)(()=>{t(TM(e))},[t,e]),null},Kc);function PM(e){var t=e.zIndex,n=e.isPanorama,r=(0,a.useRef)(null),i=L();return(0,a.useLayoutEffect)(()=>(r.current&&i(ew({zIndex:t,element:r.current,isPanorama:n})),()=>{i(tw({zIndex:t,isPanorama:n}))}),[i,t,n]),a.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function FM(e){var t=e.children,n=e.isPanorama,r=R(VC);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),o=r.filter(e=>e>0);return a.createElement(a.Fragment,null,i.map(e=>a.createElement(PM,{key:e,zIndex:e,isPanorama:n})),t,o.map(e=>a.createElement(PM,{key:e,zIndex:e,isPanorama:n})))}var IM=[`children`];function LM(e,t){if(e==null)return{};var n,r,i=RM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=hc(),r=gc(),i=Ll();if(!Vo(n)||!Vo(r))return null;var o=e.children,s=e.otherAttributes,c=e.title,l=e.desc,u,d;return s!=null&&(u=typeof s.tabIndex==`number`?s.tabIndex:i?0:void 0,d=typeof s.role==`string`?s.role:i?`application`:void 0),a.createElement(S,zM({},s,{title:c,desc:l,role:d,tabIndex:u,width:n,height:r,style:BM,ref:t}),o)}),HM=e=>{var t=e.children,n=R(Ms);if(!n)return null;var r=n.width,i=n.height,o=n.y,s=n.x;return a.createElement(S,{width:r,height:i,x:s,y:o},t)},UM=(0,a.forwardRef)((e,t)=>{var n=e.children,r=LM(e,IM);return As()?a.createElement(HM,null,a.createElement(FM,{isPanorama:!0},n)):a.createElement(VM,zM({ref:t},r),a.createElement(FM,{isPanorama:!1},n))});function WM(e,t){return YM(e)||JM(e,t)||KM(e,t)||GM()}function GM(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function KM(e,t){if(e){if(typeof e==`string`)return qM(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qM(e,t):void 0}}function qM(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;H(t)&&t!==i&&e(Ro(t))}},[n,e,i]),r}function ZM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function QM(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n(zw(),null);function uN(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var dN=(0,a.forwardRef)((e,t)=>{var n=(0,a.useRef)(null),r=rN((0,a.useState)({containerWidth:uN(e.style?.width),containerHeight:uN(e.style?.height)}),2),i=r[0],o=r[1],s=(0,a.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,a.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;s(i,a);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;s(r,i)}});o.observe(e),n.current=o}},[t,s]);return(0,a.useEffect)(()=>()=>{n.current?.disconnect()},[s]),a.createElement(a.Fragment,null,a.createElement(xc,{width:i.containerWidth,height:i.containerHeight}),a.createElement(`div`,nN({ref:c},e)))}),fN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=rN((0,a.useState)({containerWidth:uN(n),containerHeight:uN(r)}),2),o=i[0],s=i[1],c=(0,a.useCallback)((e,t)=>{s(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),l=(0,a.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;c(r,i)}},[t,c]);return a.createElement(a.Fragment,null,a.createElement(xc,{width:o.containerWidth,height:o.containerHeight}),a.createElement(`div`,nN({ref:l},e)))}),pN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height;return a.createElement(a.Fragment,null,a.createElement(xc,{width:n,height:r}),a.createElement(`div`,nN({ref:t},e)))}),mN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?a.createElement(fN,nN({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?a.createElement(pN,nN({},e,{width:n,height:r,ref:t})):a.createElement(a.Fragment,null,a.createElement(xc,{width:n,height:r}),a.createElement(`div`,nN({ref:t},e)))});function hN(e){return e?dN:mN}var gN=(0,a.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,l=e.onDoubleClick,u=e.onMouseDown,d=e.onMouseEnter,f=e.onMouseLeave,p=e.onMouseMove,m=e.onMouseUp,h=e.onTouchEnd,g=e.onTouchMove,_=e.onTouchStart,v=e.style,y=e.width,b=e.responsive,x=e.dispatchTouchEvents,S=x===void 0||x,C=(0,a.useRef)(null),w=L(),T=rN((0,a.useState)(null),2),E=T[0],D=T[1],O=rN((0,a.useState)(null),2),k=O[0],A=O[1],j=XM(),M=lc(),N=M?.width>0?M.width:y,ee=M?.height>0?M.height:i,te=(0,a.useCallback)(e=>{j(e),typeof t==`function`&&t(e),D(e),A(e),e!=null&&(C.current=e)},[j,t,D,A]),ne=(0,a.useCallback)(e=>{w(Uj(e)),w(dM({handler:o,reactEvent:e}))},[w,o]),re=(0,a.useCallback)(e=>{w(Gj(e)),w(dM({handler:d,reactEvent:e}))},[w,d]),P=(0,a.useCallback)(e=>{w(Yx()),w(dM({handler:f,reactEvent:e}))},[w,f]),ie=(0,a.useCallback)(e=>{w(Gj(e)),w(dM({handler:p,reactEvent:e}))},[w,p]),ae=(0,a.useCallback)(()=>{w(iM())},[w]),oe=(0,a.useCallback)(()=>{w(aM())},[w]),F=(0,a.useCallback)(e=>{w(rM(e.key))},[w]),se=(0,a.useCallback)(e=>{w(dM({handler:s,reactEvent:e}))},[w,s]),ce=(0,a.useCallback)(e=>{w(dM({handler:l,reactEvent:e}))},[w,l]),le=(0,a.useCallback)(e=>{w(dM({handler:u,reactEvent:e}))},[w,u]),ue=(0,a.useCallback)(e=>{w(dM({handler:m,reactEvent:e}))},[w,m]),de=(0,a.useCallback)(e=>{w(dM({handler:_,reactEvent:e}))},[w,_]),fe=(0,a.useCallback)(e=>{S&&w(_M(e)),w(dM({handler:g,reactEvent:e}))},[w,S,g]),pe=(0,a.useCallback)(e=>{w(dM({handler:h,reactEvent:e}))},[w,h]),me=hN(b);return a.createElement(pw.Provider,{value:E},a.createElement(De.Provider,{value:k},a.createElement(me,{width:N??v?.width,height:ee??v?.height,className:c(`recharts-wrapper`,r),style:QM({position:`relative`,cursor:`default`,width:N,height:ee},v),onClick:ne,onContextMenu:se,onDoubleClick:ce,onFocus:ae,onBlur:oe,onKeyDown:F,onMouseDown:le,onMouseEnter:re,onMouseLeave:P,onMouseMove:ie,onMouseUp:ue,onTouchEnd:pe,onTouchMove:fe,onTouchStart:de,ref:te},a.createElement(lN,null),n)))}),_N=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function vN(e,t){if(e==null)return{};var n,r,i=yN(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=e.width,r=e.height,i=e.responsive,o=e.children,s=e.className,c=e.style,l=e.compact,u=e.title,d=e.desc,f=m(vN(e,_N));return l?a.createElement(a.Fragment,null,a.createElement(xc,{width:n,height:r}),a.createElement(UM,{otherAttributes:f,title:u,desc:d},o)):a.createElement(gN,{className:s,style:c,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},a.createElement(UM,{otherAttributes:f,title:u,desc:d,ref:t},a.createElement(ok,null,o)))});function xN(){return xN=Object.assign?Object.assign.bind():function(e){for(var t=1;ta.createElement(ON,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:kN,tooltipPayloadSearcher:yw,categoricalChartProps:e,ref:t})),jN={value:()=>{}};function MN(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}NN.prototype=MN.prototype={constructor:NN,on:function(e,t){var n=this._,r=PN(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),LN.hasOwnProperty(t)?{space:LN[t],local:e}:e}function zN(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function BN(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function VN(e){var t=RN(e);return(t.local?BN:zN)(t)}function HN(){}function UN(e){return e==null?HN:function(){return this.querySelector(e)}}function WN(e){typeof e!=`function`&&(e=UN(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function bP(e){e||=xP;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function SP(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function CP(){return Array.from(this)}function wP(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?IP:typeof t==`function`?RP:LP)(e,t,n??``)):BP(this.node(),e)}function BP(e,t){return e.style.getPropertyValue(t)||FP(e).getComputedStyle(e,null).getPropertyValue(t)}function VP(e){return function(){delete this[e]}}function HP(e,t){return function(){this[e]=t}}function UP(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function WP(e,t){return arguments.length>1?this.each((t==null?VP:typeof t==`function`?UP:HP)(e,t)):this.node()[e]}function GP(e){return e.trim().split(/^|\s+/)}function KP(e){return e.classList||new qP(e)}function qP(e){this._node=e,this._names=GP(e.getAttribute(`class`)||``)}qP.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function JP(e,t){for(var n=KP(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function CF(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function GF(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}GF.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function KF(e){return!e.ctrlKey&&!e.button}function qF(){return this.parentNode}function JF(e,t){return t??{x:e.x,y:e.y}}function YF(){return navigator.maxTouchPoints||`ontouchstart`in this}function XF(){var e=KF,t=qF,n=JF,r=YF,i={},a=MN(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,RF).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(FF(n.view).on(`mousemove.drag`,m,zF).on(`mouseup.drag`,h,zF),HF(n.view),BF(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(VF(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){FF(e.view).on(`mousemove.drag mouseup.drag`,null),UF(e.view,l),VF(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s=0&&e._call.call(void 0,t),e=e._next;--ZF}function pI(){iI=(rI=oI.now())+aI,ZF=QF=0;try{fI()}finally{ZF=0,hI(),iI=0}}function mI(){var e=oI.now(),t=e-rI;t>eI&&(aI-=t,rI=e)}function hI(){for(var e,t=tI,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:tI=n);nI=e,gI(r)}function gI(e){ZF||(QF&&=clearTimeout(QF),e-iI>24?(e<1/0&&(QF=setTimeout(pI,e-oI.now()-aI)),$F&&=clearInterval($F)):($F||=(rI=oI.now(),setInterval(mI,eI)),ZF=1,sI(pI)))}function _I(e,t,n){var r=new uI;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var vI=MN(`start`,`end`,`cancel`,`interrupt`),yI=[];function bI(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;wI(e,n,{name:t,index:r,group:i,on:vI,tween:yI,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function xI(e,t){var n=CI(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function SI(e,t){var n=CI(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function CI(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function wI(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=dI(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return _I(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function EI(e){return this.each(function(){TI(this,e)})}function DI(e,t){var n,r;return function(){var i=SI(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function rL(e,t,n){var r,i,a=nL(t)?xI:SI;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function iL(e,t){var n=this._id;return arguments.length<2?CI(this.node(),n).on.on(e):this.each(rL(n,e,t))}function aL(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function oL(){return this.on(`end.remove`,aL(this._id))}function sL(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=UN(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function RL(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function zL(e,t,n){this.k=e,this.x=t,this.y=n}zL.prototype={constructor:zL,scale:function(e){return e===1?this:new zL(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new zL(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var BL=new zL(1,0,0);VL.prototype=zL.prototype;function VL(e){for(;!e.__zoom;)if(!(e=e.parentNode))return BL;return e.__zoom}function HL(e){e.stopImmediatePropagation()}function UL(e){e.preventDefault(),e.stopImmediatePropagation()}function WL(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function GL(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function KL(){return this.__zoom||BL}function qL(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function JL(){return navigator.maxTouchPoints||`ontouchstart`in this}function YL(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function XL(){var e=WL,t=GL,n=YL,r=qL,i=JL,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=yh,l=MN(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,KL).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,KL),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(BL.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new zL(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new zL(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new zL(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=FF(this.that).datum();l.call(e,this.that,new RL(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=LF(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],TI(this),s.start();UL(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=FF(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=LF(t,i),l=t.clientX,u=t.clientY;HF(t.view),HL(t),a.mouse=[c,this.__zoom.invert(c)],TI(this),a.start();function d(e){if(UL(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=LF(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),UF(e.view,a.moved),UL(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=LF(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);UL(r),s>0?FF(this).transition().duration(s).call(x,d,c,r):FF(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(HL(t),s=0;s{var n=e.children,r=e.width,i=e.height,o=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=b(e,v),p=o||{width:r,height:i,x:0,y:0},m=c(`recharts-surface`,s);return a.createElement(`svg`,y({},g(f),{className:m,width:r,height:i,style:l,viewBox:`${p.x} ${p.y} ${p.width} ${p.height}`,ref:t}),a.createElement(`title`,null,u),a.createElement(`desc`,null,d),n)}),C=[`children`,`className`];function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var n=e.children,r=e.className,i=T(e,C),o=c(`recharts-layer`,r);return a.createElement(`g`,w({className:o},g(i),{ref:t}),n)});function O(e){return e===`__proto__`}var k=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function A(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:k.test(e);default:return!1}}function j(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function M(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(M).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function N(e){if(Array.isArray(e))return e.map(j);if(typeof e==`symbol`)return[e];e=M(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r1&&arguments[1]!==void 0?arguments[1]:ne),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function P(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+re(i)+n},``)}var ie=e=>e===0?0:e>0?1:-1,ae=e=>typeof e==`number`&&e!=+e,oe=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,F=e=>(typeof e==`number`||e instanceof Number)&&!ae(e),se=e=>F(e)||typeof e==`string`,ce=0,le=e=>{var t=++ce;return`${e||``}${t}`},ue=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!F(e)&&typeof e!=`string`)return n;var i;if(oe(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ae(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},de=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;re&&(typeof t==`function`?t(e):ee(e,t))===n)}var I=e=>e==null,me=e=>I(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function he(e){return e!=null}function ge(){}function _e(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ye(e){for(var t=1;t{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=_e(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?ye({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?ye({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?ye({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?ye({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?ye({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?ye({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?ye({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?ye({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(F(n.x)||oe(n.x))&&(F(n.y)||oe(n.y))?ye({x:c+ue(n.x,g),y:l+ue(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):ye({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},we=[`top`,`left`,`right`,`bottom`];function Te(e){return e==null?!1:typeof e==`object`||we.includes(e)}var Ee=(0,a.createContext)(null);function L(e){return function(){return e}}var De=Math.PI,Oe=2*De,ke=1e-6,Ae=Oe-ke;function je(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw Error(`invalid digits: ${e}`);if(t>15)return je;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;tke){if(!(Math.abs(u*s-c*l)>ke)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((De-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>ke&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>ke||Math.abs(this._y1-l)>ke)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%Oe+Oe),d>Ae?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>ke&&this._append`A${n},${n},0,${+(d>=De)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};Ne.prototype;function Pe(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new Ne(t)}Array.prototype.slice;function Fe(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Ie(e){this._context=e}Ie.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)}}};function Le(e){return new Ie(e)}function Re(e){return e[0]}function ze(e){return e[1]}function Be(e,t){var n=L(!0),r=null,i=Le,a=null,o=Pe(s);e=typeof e==`function`?e:e===void 0?Re:L(e),t=typeof t==`function`?t:t===void 0?ze:L(t);function s(s){var c,l=(s=Fe(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Be().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:L(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:L(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:L(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:L(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:L(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:L(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:L(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var He=class{constructor(e,t){this._context=e,this._x=t}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(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._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}};function Ue(e){return new He(e,!0)}function We(e){return new He(e,!1)}function Ge(){}function Ke(e,t,n){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+n)/6)}function qe(e){this._context=e}qe.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:Ke(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(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:Ke(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Je(e){return new qe(e)}function Ye(e){this._context=e}Ye.prototype={areaStart:Ge,areaEnd:Ge,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)}},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:Ke(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Xe(e){return new Ye(e)}function Ze(e){this._context=e}Ze.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 n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Ke(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Qe(e){return new Ze(e)}function $e(e){this._context=e}$e.prototype={areaStart:Ge,areaEnd:Ge,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 et(e){return new $e(e)}function tt(e){return e<0?-1:1}function nt(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(tt(a)+tt(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function rt(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function it(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function at(e){this._context=e}at.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:it(this,this._t0,rt(this,this._t0))}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=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,it(this,rt(this,n=nt(this,e,t)),n);break;default:it(this,this._t0,n=nt(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function ot(e){this._context=new st(e)}(ot.prototype=Object.create(at.prototype)).point=function(e,t){at.prototype.point.call(this,t,e)};function st(e){this._context=e}st.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,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function ct(e){return new at(e)}function lt(e){return new ot(e)}function ut(e){this._context=e}ut.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,n=e.length;if(n){if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=dt(e),i=dt(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-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 n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};function mt(e){return new pt(e,.5)}function ht(e){return new pt(e,0)}function gt(e){return new pt(e,1)}function _t(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n=0;)n[t]=t;return n}function yt(e,t){return e[t]}function bt(e){let t=[];return t.key=e,t}function xt(){var e=L([]),t=vt,n=_t,r=yt;function i(i){var a=Array.from(e.apply(this,arguments),bt),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o0){for(var n,r,i=0,a=e[0].length,o;i0){for(var n=0,r=e[t[0]],i,a=r.length;n0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r`radius`in e&&`startAngle`in e&&`endAngle`in e,Et=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,a.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{u(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},Dt=(e,t,n)=>r=>(e(t,n,r),null),Ot=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];u(i)&&typeof a==`function`&&(r||={},r[i]=Dt(a,t,n))}),r};function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function At(e){for(var t=1;t(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Ft(e,t){let n=new Map;for(let r=0;rObject.prototype.propertyIsEnumerable.call(e,t))}function Ht(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var Ut=`[object RegExp]`,Wt=`[object String]`,Gt=`[object Number]`,Kt=`[object Boolean]`,qt=`[object Arguments]`,Jt=`[object Symbol]`,Yt=`[object Date]`,Xt=`[object Map]`,Zt=`[object Set]`,Qt=`[object Array]`,$t=`[object Function]`,en=`[object ArrayBuffer]`,tn=`[object Object]`,nn=`[object Error]`,rn=`[object DataView]`,an=`[object Uint8Array]`,on=`[object Uint8ClampedArray]`,sn=`[object Uint16Array]`,cn=`[object Uint32Array]`,ln=`[object BigUint64Array]`,un=`[object Int8Array]`,dn=`[object Int16Array]`,fn=`[object Int32Array]`,pn=`[object BigInt64Array]`,mn=`[object Float32Array]`,hn=`[object Float64Array]`,gn=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function _n(e){return gn.Buffer!==void 0&&gn.Buffer.isBuffer(e)}function vn(e,t){return yn(e,void 0,e,new Map,t)}function yn(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(zt(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;avoid 0)}function En(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Dn(e,t,n,r);case`function`:return Object.keys(t).length>0?En(e,{...t},n,r,i):Cn(e,t);default:return wn(e)&&i?typeof t!=`string`||t===``:Cn(e,t)}}function Dn(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return kn(e,t,n,r);if(t instanceof Map)return On(e,t,n,r);if(t instanceof Set)return An(e,t,n,r);let i=Object.keys(t);if(e==null||zt(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;avoid 0)}function Mn(e){return e=Sn(e),t=>jn(t,e)}function Nn(e,t){return vn(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!==void 0)return o;if(typeof e==`object`){if(Ht(e)===`[object Object]`&&typeof e.constructor!=`function`){let t={};return a.set(e,t),bn(t,e,i,a),t}switch(Object.prototype.toString.call(e)){case Gt:case Wt:case Kt:{let t=new e.constructor(e?.valueOf());return bn(t,e),t}case qt:{let t={};return bn(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}})}function Pn(e){return Nn(e)}var Fn=/^(?:0|[1-9]\d*)$/;function In(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e=0}function Hn(e){return e!=null&&typeof e!=`function`&&Vn(e.length)}function Un(e){return typeof e==`object`&&!!e}function Wn(e){return Un(e)&&Hn(e)}function Gn(e,t=Lt){return Wn(e)?Ft(Array.from(e),It(Bn(t),1)):[]}function Kn(e,t,n){return t===!0?Gn(e,n):typeof t==`function`?Gn(e,t):e}var qn=n((e=>{var t=r();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:n,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Jn=n(((e,t)=>{t.exports=qn()})),Yn=n((e=>{var t=r(),n=Jn();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Xn=n(((e,t)=>{t.exports=Yn()})),Zn=e(Xn()),Qn=(0,a.createContext)(null),$n=e=>e,R=()=>{var e=(0,a.useContext)(Qn);return e?e.store.dispatch:$n},er=()=>{},tr=()=>er,nr=(e,t)=>e===t;function z(e){var t=(0,a.useContext)(Qn),n=(0,a.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:er,[t,e]);return(0,Zn.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:tr,t?t.store.getState:er,t?t.store.getState:er,n,nr)}function rr(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function ir(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var ar=e=>Array.isArray(e)?e:[e];function or(e){let t=Array.isArray(e[0])?e[0]:e;return ir(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function sr(e,t){let n=[],{length:r}=e;for(let i=0;i`u`?cr:WeakRef,ur=0,dr=1;function fr(){return{s:ur,v:void 0,o:null,p:null}}function pr(e){return e instanceof lr?e.deref():e}function mr(e,t={}){let n=fr(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e{n=fr(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function hr(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),rr(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=mr,argsMemoizeOptions:u=[]}={...n,...a},d=ar(c),f=ar(u),p=or(e),m=s(function(){return t++,o.apply(null,arguments)},...d),h=l(function(){r++;let e=sr(p,arguments);return i=m.apply(null,e),i},...f);return Object.assign(h,{resultFunc:o,memoizedResultFunc:m,dependencies:p,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var B=hr(mr);function gr(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a{if(e!==t){let r=vr(e),i=vr(t);if(r===i&&r===0){if(et)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0};function br(e){return typeof e==`symbol`||e instanceof Symbol}var xr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sr=/^\w*$/;function Cr(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||br(e)?!0:typeof e==`string`&&(Sr.test(e)||!xr.test(e))||t!=null&&Object.hasOwn(t,e)}function wr(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;et==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||Cr(e)?e:{key:e,path:N(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;re.original)}function Tr(e,...t){let n=t.length;return n>1&&_r(e,t[0],t[1])?t=[]:n>2&&_r(t[0],t[1],t[2])&&(t=[t[0]]),wr(e,gr(t),[`asc`])}var Er=e=>e.legend.settings,Dr=e=>e.legend.size;B([e=>e.legend.payload,Er],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?Tr(r,n):r});function Or(e,t){return Nr(e)||Mr(e,t)||Ar(e,t)||kr()}function kr(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ar(e,t){if(e){if(typeof e==`string`)return jr(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jr(e,t):void 0}}function jr(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nPr||Math.abs(e.left-t.left)>Pr||Math.abs(e.top-t.top)>Pr||Math.abs(e.width-t.width)>Pr}function Ir(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Lr(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=Or((0,a.useState)({height:0,left:0,top:0,width:0}),2),n=t[0],r=t[1],i=(0,a.useRef)(null),o=(0,a.useRef)(n);o.current=n;var s=(0,a.useCallback)(e=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),e!=null){var t=Ir(e);if(Fr(t,o.current)&&r(t),typeof ResizeObserver<`u`){var n=new ResizeObserver(()=>{var t=Ir(e);Fr(t,o.current)&&r(t)});n.observe(e),i.current=n}}},[...e]);return(0,a.useEffect)(()=>()=>{var e;(e=i.current)==null||e.disconnect()},[]),[n,s]}function Rr(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var zr=typeof Symbol==`function`&&Symbol.observable||`@@observable`,Br=()=>Math.random().toString(36).substring(7).split(``).join(`.`),Vr={INIT:`@@redux/INIT${Br()}`,REPLACE:`@@redux/REPLACE${Br()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Br()}`};function Hr(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function Ur(e,t,n){if(typeof e!=`function`)throw Error(Rr(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(Rr(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(Rr(1));return n(Ur)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(Rr(3));return i}function d(e){if(typeof e!=`function`)throw Error(Rr(4));if(c)throw Error(Rr(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(Rr(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!Hr(e))throw Error(Rr(7));if(e.type===void 0)throw Error(Rr(8));if(typeof e.type!=`string`)throw Error(Rr(17));if(c)throw Error(Rr(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(Rr(10));r=e,f({type:Vr.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(Rr(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[zr](){return this}}}return f({type:Vr.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[zr]:m}}function Wr(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:Vr.INIT})===void 0)throw Error(Rr(12));if(n(void 0,{type:Vr.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(Rr(13))})}function Gr(e){let t=Object.keys(e),n={};for(let r=0;re:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function qr(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(Rr(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=Kr(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function Jr(e){return Hr(e)&&`type`in e&&typeof e.type==`string`}var Yr=Symbol.for(`immer-nothing`),Xr=Symbol.for(`immer-draftable`),Zr=Symbol.for(`immer-state`);function Qr(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var $r=Object,ei=$r.getPrototypeOf,ti=`constructor`,ni=`prototype`,ri=`configurable`,ii=`enumerable`,ai=`writable`,oi=`value`,si=e=>!!e&&!!e[Zr];function ci(e){return e?di(e)||vi(e)||!!e[Xr]||!!e[ti]?.[Xr]||yi(e)||bi(e):!1}var li=$r[ni][ti].toString(),ui=new WeakMap;function di(e){if(!e||!xi(e))return!1;let t=ei(e);if(t===null||t===$r[ni])return!0;let n=$r.hasOwnProperty.call(t,ti)&&t[ti];if(n===Object)return!0;if(!Si(n))return!1;let r=ui.get(n);return r===void 0&&(r=Function.toString.call(n),ui.set(n,r)),r===li}function fi(e,t,n=!0){pi(e)===0?(n?Reflect.ownKeys(e):$r.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function pi(e){let t=e[Zr];return t?t.type_:vi(e)?1:yi(e)?2:bi(e)?3:0}var mi=(e,t,n=pi(e))=>n===2?e.has(t):$r[ni].hasOwnProperty.call(e,t),hi=(e,t,n=pi(e))=>n===2?e.get(t):e[t],gi=(e,t,n,r=pi(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function _i(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var vi=Array.isArray,yi=e=>e instanceof Map,bi=e=>e instanceof Set,xi=e=>typeof e==`object`,Si=e=>typeof e==`function`,Ci=e=>typeof e==`boolean`;function wi(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Ti=e=>e.copy_||e.base_,Ei=e=>e.modified_?e.copy_:e.base_;function Di(e,t){if(yi(e))return new Map(e);if(bi(e))return new Set(e);if(vi(e))return Array[ni].slice.call(e);let n=di(e);if(t===!0||t===`class_only`&&!n){let t=$r.getOwnPropertyDescriptors(e);delete t[Zr];let n=Reflect.ownKeys(t);for(let r=0;r1&&$r.defineProperties(e,{set:Ai,add:Ai,clear:Ai,delete:Ai}),$r.freeze(e),t&&fi(e,(e,t)=>{Oi(t,!0)},!1),e)}function ki(){Qr(2)}var Ai={[oi]:ki};function ji(e){return e===null||!xi(e)||$r.isFrozen(e)}var Mi=`MapSet`,Ni=`Patches`,Pi=`ArrayMethods`,Fi={};function Ii(e){let t=Fi[e];return t||Qr(0,e),t}var Li=e=>!!Fi[e],Ri,zi=()=>Ri,Bi=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Li(Mi)?Ii(Mi):void 0,arrayMethodsPlugin_:Li(Pi)?Ii(Pi):void 0});function Vi(e,t){t&&(e.patchPlugin_=Ii(Ni),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Hi(e){Ui(e),e.drafts_.forEach(Gi),e.drafts_=null}function Ui(e){e===Ri&&(Ri=e.parent_)}var Wi=e=>Ri=Bi(Ri,e);function Gi(e){let t=e[Zr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ki(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[Zr].modified_&&(Hi(t),Qr(4)),ci(e)&&(e=qi(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[Zr].base_,e,t)}else e=qi(t,n);return Ji(t,e,!0),Hi(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===Yr?void 0:e}function qi(e,t){if(ji(t))return t;let n=t[Zr];if(!n)return na(t,e.handledSet_,e);if(!Xi(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);ea(n,e)}return n.copy_}function Ji(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Oi(t,n)}function Yi(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Xi=(e,t)=>e.scope_===t,Zi=[];function Qi(e,t,n,r){let i=Ti(e),a=e.type_;if(r!==void 0&&hi(i,r,a)===t){gi(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;fi(i,(e,n)=>{if(si(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Zi;for(let e of o)gi(i,e,n,a)}function $i(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Xi(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ei(i);Qi(e,i.draft_??i,a,n),ea(i,r)})}function ea(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Yi(e)}}function ta(e,t,n){let{scope_:r}=e;if(si(n)){let i=n[Zr];Xi(i,r)&&i.callbacks_.push(function(){da(e),Qi(e,n,Ei(i),t)})}else ci(n)&&e.callbacks_.push(function(){let i=Ti(e);e.type_===3?i.has(n)&&na(n,r.handledSet_,r):hi(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&na(hi(e.copy_,t,e.type_),r.handledSet_,r)})}function na(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||si(e)||t.has(e)||!ci(e)||ji(e)?e:(t.add(e),fi(e,(r,i)=>{if(si(i)){let t=i[Zr];Xi(t,n)&&(gi(e,r,Ei(t),e.type_),Yi(t))}else ci(i)&&na(i,t,n)}),e)}function ra(e,t){let n=vi(e),r={type_:+!!n,scope_:t?t.scope_:zi(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=ia;n&&(i=[r],a=aa);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var ia={get(e,t){if(t===Zr)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Ti(e);if(!mi(i,t,e.type_))return ca(e,i,t);let a=i[t];if(e.finalized_||!ci(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&wi(t))return a;if(a===oa(e.base_,t)||sa(e,t,a)){da(e);let n=e.type_===1?+t:t,r=pa(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Ti(e)},ownKeys(e){return Reflect.ownKeys(Ti(e))},set(e,t,n){let r=la(Ti(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=oa(Ti(e),t),i=r?.[Zr];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(_i(n,r)&&(n!==void 0||mi(e.base_,t,e.type_)))return!0;da(e),ua(e)}return e.copy_[t]===n&&(n!==void 0||mi(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ta(e,t,n),!0)},deleteProperty(e,t){return da(e),oa(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),ua(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Ti(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[ai]:!0,[ri]:e.type_!==1||t!==`length`,[ii]:r[ii],[oi]:n[t]}},defineProperty(){Qr(11)},getPrototypeOf(e){return ei(e.base_)},setPrototypeOf(){Qr(12)}},aa={};for(let e in ia){let t=ia[e];aa[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}aa.deleteProperty=function(e,t){return aa.set.call(this,e,t,void 0)},aa.set=function(e,t,n){return ia.set.call(this,e[0],t,n,e[0])};function oa(e,t){let n=e[Zr];return(n?Ti(n):e)[t]}function sa(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!ci(n)||n[Zr]?!1:e.baseRefs_.has(n)}function ca(e,t,n){let r=la(t,n);return r?oi in r?r[oi]:r.get?.call(e.draft_):void 0}function la(e,t){if(!(t in e))return;let n=ei(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ei(n)}}function ua(e){e.modified_||(e.modified_=!0,e.parent_&&ua(e.parent_))}function da(e){e.copy_||=(e.assigned_=new Map,Di(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var fa=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Si(e)&&!Si(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Si(t)||Qr(6),n!==void 0&&!Si(n)&&Qr(7);let r;if(ci(e)){let i=Wi(this),a=pa(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Hi(i):Ui(i)}return Vi(i,n),Ki(r,i)}if(!e||!xi(e)){if(r=t(e),r===void 0&&(r=e),r===Yr&&(r=void 0),this.autoFreeze_&&Oi(r,!0),n){let t=[],i=[];Ii(Ni).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}Qr(1,e)},this.produceWithPatches=(e,t)=>{if(Si(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Ci(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Ci(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Ci(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){ci(e)||Qr(8),si(e)&&(e=ma(e));let t=Wi(this),n=pa(t,e,void 0);return n[Zr].isManual_=!0,Ui(t),n}finishDraft(e,t){let n=e&&e[Zr];(!n||!n.isManual_)&&Qr(9);let{scope_:r}=n;return Vi(r,t),Ki(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Ii(Ni).applyPatches_;return si(e)?r(e,t):this.produce(e,e=>r(e,t))}};function pa(e,t,n,r){let[i,a]=yi(t)?Ii(Mi).proxyMap_(t,n):bi(t)?Ii(Mi).proxySet_(t,n):ra(t,n);return(n?.scope_??zi()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?$i(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function ma(e){return si(e)||Qr(10,e),ha(e)}function ha(e){if(!ci(e)||ji(e))return e;let t=e[Zr],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Di(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Di(e,!0);return fi(n,(e,t)=>{gi(n,e,ha(t))},r),t&&(t.finalized_=!1),n}var ga=new fa().produce,V=e=>e;function _a(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var va=_a(),ya=_a,ba=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?Kr:Kr.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function xa(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(Ao(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>Jr(t)&&t.type===e,n}var Sa=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Ca(e){return ci(e)?ga(e,()=>{}):e}function wa(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function Ta(e){return typeof e==`boolean`}var Ea=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new Sa;return t&&(Ta(t)?a.push(va):a.push(ya(t.extraArgument))),a},Da=`RTK_autoBatch`,H=()=>e=>({payload:e,meta:{[Da]:!0}}),Oa=e=>t=>{setTimeout(t,e)},ka=(e,t)=>n=>{let r=!1,i=()=>{r||(r=!0,cancelAnimationFrame(a),clearTimeout(o),n())},a=e(i),o=setTimeout(i,t)},Aa=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?ka(window.requestAnimationFrame,100):Oa(10):e.type===`callback`?e.queueNotification:Oa(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[Da],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},ja=e=>function(t){let{autoBatch:n=!0}=t??{},r=new Sa(e);return n&&r.push(Aa(typeof n==`object`?n:void 0)),r};function Ma(e){let t=Ea(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(Hr(n))c=Gr(n);else throw Error(Ao(1));let l;l=typeof r==`function`?r(t):t();let u=Kr;i&&(u=ba({trace:!1,...typeof i==`object`&&i}));let d=ja(qr(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return Ur(c,o,p)}function Na(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(Ao(28));if(r in t)throw Error(Ao(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function Pa(e){return typeof e==`function`}function Fa(e,t){let[n,r,i]=Na(t),a;if(Pa(e))a=()=>Ca(e());else{let t=Ca(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n){if(si(e)){let r=n(e,t);return r===void 0?e:r}if(ci(e))return ga(e,e=>n(e,t));{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(`A case reducer on a non-draftable value must not return undefined`)}return r}}return e},e)}return o.getInitialState=a,o}var Ia=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,La=(e=21)=>{let t=``,n=e;for(;n--;)t+=Ia[Math.random()*64|0];return t},Ra=Symbol.for(`rtk-slice-createasyncthunk`);function za(e,t){return`${e}/${t}`}function Ba({creators:e}={}){let t=e?.asyncThunk?.[Ra];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(Ao(11));let i=(typeof e.reducers==`function`?e.reducers(Ua()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(Ao(12));if(n in o.sliceCaseReducersByType)throw Error(Ao(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:za(n,r),createNotation:typeof e.reducers==`function`};Ga(a)?qa(o,a,s,t):Wa(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?Na(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return Fa(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=wa(d,r,m)),i}function i(t=l){return wa(wa(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=Va(a,t,()=>wa(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function Va(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var Ha=Ba();function Ua(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function Wa({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!Ka(r))throw Error(Ao(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?xa(e,o):xa(e))}function Ga(e){return e._reducerDefinitionType===`asyncThunk`}function Ka(e){return e._reducerDefinitionType===`reducerWithPrepare`}function qa({type:e,reducerName:t},n,r,i){if(!i)throw Error(Ao(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||Ja,pending:s||Ja,rejected:c||Ja,settled:l||Ja})}function Ja(){}var Ya=`task`,Xa=`listener`,Za=`completed`,Qa=`cancelled`,$a=`task-${Qa}`,eo=`task-${Za}`,to=`${Xa}-${Qa}`,no=`${Xa}-${Za}`,ro=class{constructor(e){this.code=e,this.message=`${Ya} ${Qa} (reason: ${e})`}code;name=`TaskAbortError`;message},io=(e,t)=>{if(typeof e!=`function`)throw TypeError(Ao(32))},ao=()=>{},oo=(e,t=ao)=>(e.catch(t),e),so=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),co=e=>{if(e.aborted)throw new ro(e.reason)};function lo(e,t){let n=ao;return new Promise((r,i)=>{let a=()=>i(new ro(e.reason));if(e.aborted){a();return}n=so(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=ao})}var uo=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof ro?`cancelled`:`rejected`,error:e}}finally{t?.()}},fo=e=>t=>oo(lo(e,t).then(t=>(co(e),t))),po=e=>{let t=fo(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:mo}=Object,ho={},go=`listenerMiddleware`,_o=(e,t)=>{let n=t=>so(e,()=>t.abort(e.reason));return(r,i)=>{io(r,`taskExecutor`);let a=new AbortController;n(a);let o=uo(async()=>{co(e),co(a.signal);let t=await r({pause:fo(a.signal),delay:po(a.signal),signal:a.signal});return co(a.signal),t},()=>a.abort(eo));return i?.autoJoin&&t.push(o.catch(ao)),{result:fo(e)(o),cancel(){a.abort($a)}}}},vo=(e,t)=>{let n=async(n,r)=>{co(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await lo(t,Promise.race(a));return co(t),e}finally{i()}};return((e,t)=>oo(n(e,t)))},yo=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=xa(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(Ao(21));return io(a,`options.listener`),{predicate:i,type:t,effect:a}},bo=mo(e=>{let{type:t,predicate:n,effect:r}=yo(e);return{id:La(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(Ao(22))}}},{withTypes:()=>bo}),xo=(e,t)=>{let{type:n,effect:r,predicate:i}=yo(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},So=e=>{e.pending.forEach(e=>{e.abort(to)})},Co=(e,t)=>()=>{for(let e of t.keys())So(e);e.clear()},wo=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},To=mo(xa(`${go}/add`),{withTypes:()=>To}),Eo=xa(`${go}/removeAll`),Do=mo(xa(`${go}/remove`),{withTypes:()=>Do}),Oo=(...e)=>{console.error(`${go}/error`,...e)},ko=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=Oo}=e;io(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&So(e)}),c=(e=>{let n=xo(t,e)??bo(e);return s(n)});mo(c,{withTypes:()=>c});let l=e=>{let n=xo(t,e);return n&&(n.unsubscribe(),e.cancelActive&&So(n)),!!n};mo(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=vo(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,mo({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:po(u.signal),pause:fo(u.signal),extra:a,signal:u.signal,fork:_o(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(to),n.delete(e))})},cancel:()=>{u.abort(to),e.pending.delete(u)},throwIfCancelled:()=>{co(u.signal)}})))}catch(e){e instanceof ro||wo(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(no),i(e),e.pending.delete(u)}},d=Co(t,n);return{middleware:e=>n=>r=>{if(!Jr(r))return n(r);if(To.match(r))return c(r.payload);if(Eo.match(r)){d();return}if(Do.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===ho)throw Error(Ao(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,wo(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=ho}return s},startListening:c,stopListening:l,clearListeners:d}};function Ao(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var jo=Ha({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),Mo=jo.actions,No=Mo.setMargin,Po=Mo.setLayout,Fo=Mo.setChartSize,Io=Mo.setScale,Lo=jo.reducer;function Ro(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function U(e){return Number.isFinite(e)}function zo(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function Bo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vo(e){for(var t=1;t{if(t&&n){var r=n.width,i=n.height,a=t.align,o=t.verticalAlign,s=t.layout,c=t.position,l=t.offset,u=l===void 0?0:l;if(c!=null){if(Te(c)){if(c===`top`&&F(e.top))return Vo(Vo({},e),{},{top:e.top+(i||0)+u});if(c===`bottom`&&F(e.bottom))return Vo(Vo({},e),{},{bottom:e.bottom+(i||0)+u});if(c===`left`&&F(e.left))return Vo(Vo({},e),{},{left:e.left+(r||0)+u});if(c===`right`&&F(e.right))return Vo(Vo({},e),{},{right:e.right+(r||0)+u})}return e}if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&F(e[a]))return Vo(Vo({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&F(e[o]))return Vo(Vo({},e),{},{[o]:e[o]+(i||0)})}return e},Ko=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,qo={sign:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:St,none:_t,silhouette:Ct,wiggle:wt,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},Jo=(e,t,n)=>{var r=qo[n]??_t,i=xt().keys(t).value((e,t)=>Number(W(e,t,0))).order(vt).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=W(e[i],t[r],0);Array.isArray(a)&&a.length===2&&F(a[0])&&F(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function Yo(e){return e==null?void 0:String(e)}function Xo(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type===`category`){if(!t.allowDuplicatedCategory&&t.dataKey&&!I(i[t.dataKey])){var s=pe(n,`value`,i[t.dataKey]);if(s)return s.coordinate+r/2}return n!=null&&n[a]?n[a].coordinate+r/2:null}var c=W(i,I(o)?t.dataKey:o),l=t.scale.map(c);return F(l)?l:null}var Zo=e=>{var t=e.flat(2).filter(F);return[Math.min(...t),Math.max(...t)]},Qo=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],$o=(e,t,n)=>{if(e!=null&&Object.keys(e).length!==0)return Qo(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var o=a.stackedData.reduce((e,r)=>{var i=Zo(Ro(r,t,n));return!U(i[0])||!U(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(o[0],r[0]),Math.max(o[1],r[1])]},[1/0,-1/0]))},es=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ts=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ns=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=Tr(t,e=>e.coordinate),a=[],o=0,s=1,c=i.length;su&&(d=Math.min(f,d));return d===1/0?0:d}return n?void 0:0};function rs(e){var t=e.tooltipEntrySettings,n=e.dataKey,r=e.payload,i=e.value,a=e.name;return Vo(Vo({},t),{},{dataKey:n,payload:r,value:i,name:a})}function is(e,t){if(e!=null)return String(e);if(typeof t==`string`)return t}var as=(e,t)=>{if(t===`horizontal`)return e.relativeX;if(t===`vertical`)return e.relativeY},os=(e,t)=>t===`centric`?e.angle:e.radius,ss=e=>e.layout.width,cs=e=>e.layout.height,ls=e=>e.layout.scale,us=e=>e.layout.margin,ds=B(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),fs=B(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),ps=`data-recharts-item-index`;function ms(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hs(e){for(var t=1;te.brush.height;function bs(e){return fs(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function xs(e){return fs(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function Ss(e){return ds(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}function Cs(e){return ds(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}var ws=B([ss,cs,us,ys,bs,xs,Ss,Cs,Er,Dr],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=hs(hs({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=Go(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return hs(hs({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),Ts=B(ws,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Es=B(ss,cs,(e,t)=>({x:0,y:0,width:e,height:t})),Ds=(0,a.createContext)(null),Os=()=>(0,a.useContext)(Ds)!=null,ks=e=>e.brush,As=B([ks,ws,us],(e,t,n)=>({height:e.height,x:F(e.x)?e.x:t.left,y:F(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:F(e.width)?e.width:t.width}));function js(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function Ms(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=js(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function Ns(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return Ms(e,t,{leading:r,maxWait:t,trailing:i})}var Ps=function(e,t){var n=[...arguments].slice(2);if(typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e)){if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}}},Fs={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},Is=(e,t,n)=>{var r=n.width,i=r===void 0?Fs.width:r,a=n.height,o=a===void 0?Fs.height:a,s=n.aspect,c=n.maxHeight,l=oe(i)?e:Number(i),u=oe(o)?t:Number(o);return s&&s>0&&(l?u=l/s:u&&(l=u*s),c&&u!=null&&u>c&&(u=c)),{calculatedWidth:l,calculatedHeight:u}},Ls={width:0,height:0,overflow:`visible`},Rs={width:0,overflowX:`visible`},zs={height:0,overflowY:`visible`},Bs={},Vs=e=>{var t=e.width,n=e.height,r=oe(t),i=oe(n);return r&&i?Ls:r?Rs:i?zs:Bs};function Hs(e){var t=e.width,n=e.height,r=e.aspect,i=t,a=n;return i===void 0&&a===void 0?(i=Fs.width,a=Fs.height):i===void 0?i=r&&r>0?void 0:Fs.width:a===void 0&&(a=r&&r>0?void 0:Fs.height),{width:i,height:a}}var Us=[`aspect`,`initialDimension`,`width`,`height`,`minWidth`,`minHeight`,`maxHeight`,`children`,`debounce`,`id`,`className`,`onResize`,`style`];function Ws(){return Ws=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n({width:n,height:r}),[n,r]);return ac(i)?a.createElement(ic.Provider,{value:i},t):null}var sc=()=>(0,a.useContext)(ic),cc=(0,a.forwardRef)((e,t)=>{var n=e.aspect,r=e.initialDimension,i=r===void 0?Fs.initialDimension:r,o=e.width,s=e.height,l=e.minWidth,u=l===void 0?Fs.minWidth:l,d=e.minHeight,f=e.maxHeight,p=e.children,m=e.debounce,h=m===void 0?Fs.debounce:m,g=e.id,_=e.className,v=e.onResize,y=e.style,b=y===void 0?{}:y,x=nc(e,Us),S=(0,a.useRef)(null),C=(0,a.useRef)();C.current=v,(0,a.useImperativeHandle)(t,()=>S.current);var w=Xs((0,a.useState)({containerWidth:i.width,containerHeight:i.height}),2),T=w[0],E=w[1],D=(0,a.useCallback)((e,t)=>{E(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,a.useEffect)(()=>{if(S.current==null||typeof ResizeObserver>`u`)return ge;var e=e=>{var t,n=e[0];if(n!=null){var r=n.contentRect,i=r.width,a=r.height;D(i,a),(t=C.current)==null||t.call(C,i,a)}};h>0&&(e=Ns(e,h,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),n=S.current.getBoundingClientRect(),r=n.width,i=n.height;return D(r,i),t.observe(S.current),()=>{t.disconnect()}},[D,h]);var O=T.containerWidth,k=T.containerHeight;Ps(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var A=Is(O,k,{width:o,height:s,aspect:n,maxHeight:f}),j=A.calculatedWidth,M=A.calculatedHeight;return Ps(O<0||k<0||j!=null&&j>0||M!=null&&M>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.`,j,M,o,s,u,d,n),a.createElement(`div`,Ws({id:g?`${g}`:void 0,className:c(`recharts-responsive-container`,_),style:Ks(Ks({},b),{},{width:o,height:s,minWidth:u,minHeight:d,maxHeight:f}),ref:S},x),a.createElement(`div`,{style:Vs({width:o,height:s})},a.createElement(oc,{width:j,height:M},p)))}),lc=(0,a.forwardRef)((e,t)=>{var n=sc();if(zo(n.width)&&zo(n.height))return e.children;var r=Hs({width:e.width,height:e.height,aspect:e.aspect}),i=r.width,o=r.height,s=Is(void 0,void 0,{width:i,height:o,aspect:e.aspect,maxHeight:e.maxHeight}),c=s.calculatedWidth,l=s.calculatedHeight;return F(c)&&F(l)?a.createElement(oc,{width:c,height:l},e.children):a.createElement(cc,Ws({},e,{width:i,height:o,ref:t}))}),uc=()=>{var e=Os(),t=z(Ts),n=z(As),r=z(ks)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},dc={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},fc=()=>z(ws)??dc,pc=()=>z(ss),mc=()=>z(cs),G=e=>e.layout.layoutType,hc=()=>z(G),gc=()=>{var e=hc();if(e===`horizontal`||e===`vertical`)return e},_c=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},vc=()=>hc()!==void 0,yc=e=>{var t=R(),n=Os(),r=e.width,i=e.height,o=sc(),s=r,c=i;return o&&(s=o.width>0?o.width:r,c=o.height>0?o.height:i),(0,a.useEffect)(()=>{!n&&zo(s)&&zo(c)&&t(Fo({width:s,height:c}))},[t,n,s,c]),null},bc=Ha({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`bottom`,itemSorter:`value`,position:void 0,offset:0},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(V(t.payload))},prepare:H()},replaceLegendPayload:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ma(e).payload.indexOf(V(r));a>-1&&(e.payload[a]=V(i))},prepare:H()},removeLegendPayload:{reducer(e,t){var n=ma(e).payload.indexOf(V(t.payload));n>-1&&e.payload.splice(n,1)},prepare:H()}}}),xc=bc.actions;xc.setLegendSize,xc.setLegendSettings;var Sc=xc.addLegendPayload,Cc=xc.replaceLegendPayload,wc=xc.removeLegendPayload,Tc=bc.reducer,Ec=n((e=>{var t=r();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));n(((e,t)=>{t.exports=Ec()}))();function Dc(e){e()}function Oc(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Dc(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var kc={notify(){},get:()=>[]};function Ac(e,t){let n,r=kc,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=Oc())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=kc)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var jc=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Mc=typeof navigator<`u`&&navigator.product===`ReactNative`,Nc=jc||Mc?a.useLayoutEffect:a.useEffect;function Pc(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function Fc(e,t){if(Pc(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r{let e=Ac(i);return{store:i,subscription:e,getServerState:r?()=>r:void 0}},[i,r]),s=a.useMemo(()=>i.getState(),[i]);Nc(()=>{let{subscription:e}=o;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),s!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[o,s]);let c=n||zc;return a.createElement(c.Provider,{value:o},t)}var Vc=Bc,Hc=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`,`throttledEvents`]);function Uc(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function Wc(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(Hc.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Fc(e[n],t[n]))return!1}else if(!Uc(e[n],t[n]))return!1;return!0}function Gc(){return Gc=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.separator,n=t===void 0?il.separator:t,r=e.contentStyle,i=e.itemStyle,o=e.labelStyle,s=o===void 0?il.labelStyle:o,l=e.payload,u=e.formatter,d=e.itemSorter,f=e.wrapperClassName,p=e.labelClassName,m=e.label,h=e.labelFormatter,g=e.accessibilityLayer,_=g===void 0?il.accessibilityLayer:g,v=()=>{if(l&&l.length){var e={padding:0,margin:0},t=al(l,d).map((e,t)=>{if(!e||e.type===`none`)return null;var r=e.formatter||u||rl,o=e.value,s=e.name,c=o,d=s;if(r){var f=r(o,s,e,t,l);if(Array.isArray(f)){var p=Zc(f,2);c=p[0],d=p[1]}else if(f!=null)c=f;else return null}var m=qc(qc({},il.itemStyle),{},{color:e.color||il.itemStyle.color},i);return a.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${t}`,style:m},se(d)?a.createElement(`span`,{className:`recharts-tooltip-item-name`},d):null,se(d)?a.createElement(`span`,{className:`recharts-tooltip-item-separator`},n):null,a.createElement(`span`,{className:`recharts-tooltip-item-value`},c),a.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return a.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},t)}return null},y=qc(qc({},il.contentStyle),r),b=qc({margin:0},s),x=!I(m),S=x?m:``,C=c(`recharts-default-tooltip`,f),w=c(`recharts-tooltip-label`,p);x&&h&&l!=null&&(S=h(m,l));var T=_?{role:`status`,"aria-live":`assertive`}:{};return a.createElement(`div`,Gc({className:C,style:y},T),a.createElement(`p`,{className:w,style:b},a.isValidElement(S)?S:`${S}`),v())},sl=`recharts-tooltip-wrapper`,cl={visibility:`hidden`};function ll(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return c(sl,{[`${sl}-right`]:F(n)&&t&&F(t.x)&&n>=t.x,[`${sl}-left`]:F(n)&&t&&F(t.x)&&n=t.y,[`${sl}-top`]:F(r)&&t&&F(t.y)&&r0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(uf+l?Math.max(u,f):Math.max(d,f)}function dl(e){var t=e.translateX,n=e.translateY;return{transform:e.useTranslate3d?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function fl(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTop,i=e.offsetLeft,a=e.position,o=e.reverseDirection,s=e.tooltipBox,c=e.useTranslate3d,l=e.viewBox,u,d,f;return s&&s.height>0&&s.width>0&&n?(d=ul({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=ul({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=dl({translateX:d,translateY:f,useTranslate3d:c})):u=cl,{cssProperties:u,cssClasses:ll({translateX:d,translateY:f,coordinate:n})}}var pl={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)};function ml(e,t){return yl(e)||vl(e,t)||gl(e,t)||hl()}function hl(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gl(e,t){if(e){if(typeof e==`string`)return _l(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_l(e,t):void 0}}function _l(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);npl.isSsr||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches),2),t=e[0],n=e[1];return(0,a.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>{n(e.matches)};return e.addEventListener(`change`,t),()=>{e.removeEventListener(`change`,t)}}},[]),t}function xl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sl(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),2),r=n[0],i=n[1];a.useEffect(()=>{var t=t=>{t.key===`Escape`&&i({dismissed:!0,dismissedAtCoordinate:{x:e.coordinate?.x??0,y:e.coordinate?.y??0}})};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e.coordinate?.x,e.coordinate?.y]),r.dismissed&&((e.coordinate?.x??0)!==r.dismissedAtCoordinate.x||(e.coordinate?.y??0)!==r.dismissedAtCoordinate.y)&&i(Sl(Sl({},r),{},{dismissed:!1}));var o=fl({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset==`number`?e.offset:e.offset.x,offsetTop:typeof e.offset==`number`?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),s=o.cssClasses,c=o.cssProperties,l=Sl(Sl({},e.hasPortalFromProps?{}:Sl(Sl({transition:Ml({prefersReducedMotion:t,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},c),{},{pointerEvents:`none`,position:`absolute`,top:0,left:0})),{},{visibility:!r.dismissed&&e.active&&e.hasPayload?`visible`:`hidden`},e.wrapperStyle);return a.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:s,style:l,ref:e.innerRef},e.children)}var Pl=a.memo(Nl),Fl=()=>z(e=>e.rootProps.accessibilityLayer)??!0;function Il(){return Il=Object.assign?Object.assign.bind():function(e){for(var t=1;tU(e.x)&&U(e.y),Wl=e=>e.base!=null&&Ul(e.base)&&Ul(e),Gl=e=>e.x,Kl=e=>e.y,ql=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${me(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=Hl[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return Hl[n]||Le},Jl={connectNulls:!1,type:`linear`},Yl=e=>{var t=e.type,n=t===void 0?Jl.type:t,r=e.points,i=r===void 0?[]:r,a=e.baseLine,o=e.layout,s=e.connectNulls,c=s===void 0?Jl.connectNulls:s,l=ql(n,o),u=c?i.filter(Ul):i;if(Array.isArray(a)){var d,f=i.map((e,t)=>Rl(Rl({},e),{},{base:a[t]}));return d=o===`vertical`?Ve().y(Kl).x1(Gl).x0(e=>e.base.x):Ve().x(Gl).y1(Kl).y0(e=>e.base.y),d.defined(Wl).curve(l)(c?f.filter(Wl):f)}return(o===`vertical`&&F(a)?Ve().y(Kl).x1(Gl).x0(a):F(a)?Ve().x(Gl).y1(Kl).y0(a):Be().x(Gl).y(Kl)).defined(Ul).curve(l)(u)},Xl=e=>{var t=e.className,n=e.points,r=e.path,i=e.pathRef,o=hc();if((!n||!n.length)&&!r)return null;var s={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||o,connectNulls:e.connectNulls},l=n&&n.length?Yl(s):r;return a.createElement(`path`,Il({},m(e),Et(e),{className:c(`recharts-curve`,t),d:l===null?void 0:l,ref:i}))},Zl=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function Ql(){return Ql=Object.assign?Object.assign.bind():function(e){for(var t=1;t`M${e},${i}v${r}M${a},${t}h${n}`,su=e=>{var t=e.x,n=t===void 0?0:t,r=e.y,i=r===void 0?0:r,o=e.top,s=o===void 0?0:o,l=e.left,u=l===void 0?0:l,d=e.width,f=d===void 0?0:d,p=e.height,m=p===void 0?0:p,h=e.className,_=iu(e,Zl),v=eu({x:n,y:i,top:s,left:u,width:f,height:m},_);return!F(n)||!F(i)||!F(f)||!F(m)||!F(s)||!F(u)?null:a.createElement(`path`,Ql({},g(v),{className:c(`recharts-cross`,h),d:ou(n,i,f,m,s,u)}))};function cu(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}var lu=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],uu=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),du=(e,t)=>n=>uu(lu(e,t),n),fu=(e,t)=>n=>uu([...lu(e,t).map((e,t)=>e*t).slice(1),0],n),pu=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},mu=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=pu(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},hu=(e,t,n,r)=>{var i=du(e,n),a=du(t,r),o=fu(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},gu=function(){return hu(...mu(...arguments))},_u=function(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.stiff,n=t===void 0?100:t,r=e.damping,i=r===void 0?8:r,a=e.dt,o=a===void 0?16.67:a,s=1,c=[0],l=0,u=0,d=1e4,f=0;f{if(e<=0)return 0;if(e>=1)return s;var t=e*h,n=Math.floor(t),r=t-n;return(c[n]??0)+((c[n+1]??0)-(c[n]??0))*r}},vu=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return gu(e);case`spring`:return _u();default:if(e.split(`(`)[0]===`cubic-bezier`)return gu(e)}return typeof e==`function`?e:null},yu=(0,a.createContext)((e,t,n)=>{var r,i=a=>{var o=t.tick(a);if(t.getState()===`active`){if(n(t.getInterpolated()),t.getProgress()===1){t.complete(),r=void 0;return}r=e.setTimeout(i,o);return}r=e.setTimeout(i,o)};return r=e.setTimeout(i,0),()=>r?.()});yu.Provider;function bu(e){var t=(0,a.useContext)(yu);return(0,a.useMemo)(()=>e??t,[e,t])}function xu(e,t,n){return(t=Su(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Su(e){var t=Cu(e,`string`);return typeof t==`symbol`?t:t+``}function Cu(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var wu=`init`,Tu=`pending`,Eu=`active`,Du=`completed`;function Ou(e){return Math.max(0,e)}var ku=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(e){var t;xu(this,`state`,wu),this.animationId=e.animationId,this.onAnimationEnd=e.onAnimationEnd,this.animationDuration=Ou(e.animationDuration),this.animationBegin=Ou(e.animationBegin),this.progress=0,this.from=e.from,this.to=e.to,this.easing=e.easing,(t=e.onAnimationStart)==null||t.call(e)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(e){if(this.getState()===wu)return this.state=Tu,this.beginStartedTime=e,this.animationBegin;if(this.getState()===Tu){if(this.beginStartedTime==null)throw Error();var t=e-this.beginStartedTime;return t>=this.animationBegin?(this.state=Eu,this.animationStartedTime=e,this.nextAnimationUpdate(0)):Ou(this.animationBegin-t)}if(this.getState()===Eu){if(this.animationStartedTime==null)throw Error();var n=e-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(e){this.progress=Math.min(1,Math.max(0,e))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state===`active`){var e;(e=this.onAnimationEnd)==null||e.call(this)}this.state=Du}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},Au=class extends ku{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(fe(this.getFrom(),this.getTo(),this.getProgress()))}},ju=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function Mu(e,t){return Lu(e)||Iu(e,t)||Pu(e,t)||Nu()}function Nu(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pu(e,t){if(e){if(typeof e==`string`)return Fu(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Fu(e,t):void 0}}function Fu(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{},onAnimationStart:()=>{}},zu=0,Bu=1;function Vu(e){var t=Pt(e,Ru),n=t.animationId,r=t.isActive,i=t.canBegin,o=t.duration,s=t.easing,c=t.begin,l=t.onAnimationEnd,u=t.onAnimationStart,d=t.children,f=bl(),p=r===`auto`?!pl.isSsr&&!f:r,m=bu(t.animationController),h=Mu((0,a.useState)(p?zu:Bu),2),g=h[0],_=h[1];return(0,a.useEffect)(()=>{p||_(Bu)},[p]),(0,a.useEffect)(()=>{var e=vu(s);return!p||!i||e==null?ge:m(new ju,new Au({animationId:n,easing:e,animationDuration:o,animationBegin:c,onAnimationStart:u,onAnimationEnd:l,from:zu,to:Bu}),_)},[m,n,p,i,o,s,c,u,l]),d(Number(g))}function Hu(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,a.useRef)(le(t)),r=(0,a.useRef)(e);return r.current!==e&&(n.current=le(t),r.current=e),n.current}var Uu=e=>e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),Wu=(e,t,n)=>e.map(e=>`${Uu(e)} ${t}ms ${n}`).join(`,`),Gu=[`radius`],Ku=[`radius`],qu,Ju,Yu,Xu,Zu,Qu,$u,ed,td,nd;function rd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function id(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{var a=re(n),o=re(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;ps?s:h}d=P(qu||=_d([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=P(Ju||=_d([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=P(Yu||=_d([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=P(Xu||=_d([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=P(Zu||=_d([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=P(Qu||=_d([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=P($u||=_d([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=P(ed||=_d([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=P(td||=_d(`M .,. + A .,.,0,0,.,.,. + L .,. + A .,.,0,0,.,.,. + L .,. + A .,.,0,0,.,.,. + L .,. + A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=P(nd||=_d([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},yd={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},bd=e=>{var t=Pt(e,yd),n=(0,a.useRef)(null),r=dd((0,a.useState)(-1),2),i=r[0],o=r[1];(0,a.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&o(e)}catch{}},[]);var s=t.x,l=t.y,u=t.width,d=t.height,f=t.radius,p=t.className,m=t.animationEasing,h=t.animationDuration,_=t.animationBegin,v=t.isAnimationActive,y=t.isUpdateAnimationActive,b=(0,a.useRef)(u),x=(0,a.useRef)(d),S=(0,a.useRef)(s),C=(0,a.useRef)(l),w=Hu((0,a.useMemo)(()=>({x:s,y:l,width:u,height:d,radius:f}),[s,l,u,d,f]),`rectangle-`);if(s!==+s||l!==+l||u!==+u||d!==+d||u===0||d===0)return null;var T=c(`recharts-rectangle`,p);if(!y){var E=g(t);E.radius;var D=ld(E,Gu);return a.createElement(`path`,cd({},D,{x:re(s),y:re(l),width:re(u),height:re(d),radius:typeof f==`number`?f:void 0,className:T,d:vd(s,l,u,d,f)}))}var O=b.current,k=x.current,A=S.current,j=C.current,M=`0px ${i===-1?1:i}px`,N=`${i}px ${i}px`,ee=Wu([`strokeDasharray`],h,typeof m==`string`?m:yd.animationEasing);return a.createElement(Vu,{animationId:w,key:w,canBegin:i>0,duration:h,easing:m,isActive:y,begin:_},e=>{var r=fe(O,u,e),i=fe(k,d,e),o=fe(A,s,e),c=fe(j,l,e);n.current&&(b.current=r,x.current=i,S.current=o,C.current=c);var p=v?e>0?{transition:ee,strokeDasharray:N}:{strokeDasharray:M}:{strokeDasharray:N},m=g(t);m.radius;var h=ld(m,Ku);return a.createElement(`path`,cd({},h,{radius:typeof f==`number`?f:void 0,className:T,d:vd(o,c,r,i,f),ref:n,style:id(id({},p),t.style)}))})};function xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sd(e){for(var t=1;te*180/Math.PI,Od=(e,t,n,r)=>({x:e+Math.cos(-Ed*r)*n,y:t+Math.sin(-Ed*r)*n}),kd=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},Ad=(e,t)=>{var n=e.x,r=e.y,i=t.x,a=t.y;return Math.sqrt((n-i)**2+(r-a)**2)},jd=(e,t)=>{var n=e.x,r=e.y,i=t.cx,a=t.cy,o=Ad({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:Dd(c),angleInRadian:c}},Md=e=>{var t=e.startAngle,n=e.endAngle,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},Nd=(e,t)=>{var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},Pd=(e,t)=>{var n=e.relativeX,r=e.relativeY,i=jd({x:n,y:r},t),a=i.radius,o=i.angle,s=t.innerRadius,c=t.outerRadius;if(ac||a===0)return null;var l=Md(t),u=l.startAngle,d=l.endAngle,f=o,p;if(u<=d){for(;f>d;)f-=360;for(;f=u&&f<=d}else{for(;f>u;)f-=360;for(;f=d&&f<=u}return p?Sd(Sd({},t),{},{radius:a,angle:Nd(f,t)}):null};function Fd(e){var t=e.cx,n=e.cy,r=e.radius,i=e.startAngle,a=e.endAngle;return{points:[Od(t,n,r,i),Od(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var Id,Ld,Rd,zd,Bd,Vd,Hd;function Ud(){return Ud=Object.assign?Object.assign.bind():function(e){for(var t=1;tie(t-e)*Math.min(Math.abs(t-e),359.999),Kd=e=>{var t=e.cx,n=e.cy,r=e.radius,i=e.angle,a=e.sign,o=e.isExternal,s=e.cornerRadius,c=e.cornerIsExternal,l=s*(o?1:-1)+r,u=Math.asin(s/l)/Ed,d=c?i:i+a*u,f=Od(t,n,l,d),p=Od(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:Od(t,n,l*Math.cos(u*Ed),m),theta:u}},qd=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.startAngle,o=e.endAngle,s=Gd(a,o),c=a+s,l=Od(t,n,i,a),u=Od(t,n,i,c),d=P(Id||=Wd([`M `,`,`,` + A `,`,`,`,0, + `,`,`,`, + `,`,`,` + `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=Od(t,n,r,a),p=Od(t,n,r,c);d+=P(Ld||=Wd([`L `,`,`,` + A `,`,`,`,0, + `,`,`,`, + `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=P(Rd||=Wd([`L `,`,`,` Z`]),t,n);return d},Jd=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.cornerRadius,o=e.forceCornerRadius,s=e.cornerIsExternal,c=e.startAngle,l=e.endAngle,u=ie(l-c),d=Kd({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),f=d.circleTangency,p=d.lineTangency,m=d.theta,h=Kd({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),g=h.circleTangency,_=h.lineTangency,v=h.theta,y=s?Math.abs(c-l):Math.abs(c-l)-m-v;if(y<0)return o?P(zd||=Wd([`M `,`,`,` + a`,`,`,`,0,0,1,`,`,0 + a`,`,`,`,0,0,1,`,`,0 + `]),p.x,p.y,a,a,a*2,a,a,-a*2):qd({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var b=P(Bd||=Wd([`M `,`,`,` + A`,`,`,`,0,0,`,`,`,`,`,` + A`,`,`,`,0,`,`,`,`,`,`,`,` + A`,`,`,`,0,0,`,`,`,`,`,` + `]),p.x,p.y,a,a,+(u<0),f.x,f.y,i,i,+(y>180),+(u<0),g.x,g.y,a,a,+(u<0),_.x,_.y);if(r>0){var x=Kd({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),S=x.circleTangency,C=x.lineTangency,w=x.theta,T=Kd({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),E=T.circleTangency,D=T.lineTangency,O=T.theta,k=s?Math.abs(c-l):Math.abs(c-l)-w-O;if(k<0&&a===0)return`${b}L${t},${n}Z`;b+=P(Vd||=Wd([`L`,`,`,` + A`,`,`,`,0,0,`,`,`,`,`,` + A`,`,`,`,0,`,`,`,`,`,`,`,` + A`,`,`,`,0,0,`,`,`,`,`,`Z`]),D.x,D.y,a,a,+(u<0),E.x,E.y,r,r,+(k>180),+(u>0),S.x,S.y,a,a,+(u<0),C.x,C.y)}else b+=P(Hd||=Wd([`L`,`,`,`Z`]),t,n);return b},Yd={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Xd=e=>{var t=Pt(e,Yd),n=t.cx,r=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.cornerRadius,l=t.forceCornerRadius,u=t.cornerIsExternal,d=t.startAngle,f=t.endAngle,p=t.className;if(o0&&Math.abs(d-f)<360?Jd({cx:n,cy:r,innerRadius:i,outerRadius:o,cornerRadius:Math.min(_,h/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:d,endAngle:f}):qd({cx:n,cy:r,innerRadius:i,outerRadius:o,startAngle:d,endAngle:f});return a.createElement(`path`,Ud({},g(t),{className:m,d:v}))};function Zd(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(Tt(t)){if(e===`centric`){var r=t.cx,i=t.cy,a=t.innerRadius,o=t.outerRadius,s=t.angle,c=Od(r,i,a,s),l=Od(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return Fd(t)}}function Qd(e){return br(e)?NaN:Number(e)}function $d(e){return e?(e=Qd(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function ef(e,t,n){n&&typeof n!=`number`&&_r(e,t,n)&&(t=n=void 0),e=$d(e),t===void 0?(t=e,e=0):t=$d(t),n=n===void 0?ee.chartData,nf=B([tf],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),rf=(e,t,n,r)=>r?nf(e):tf(e),af=(e,t,n)=>n?nf(e):tf(e),of=B([rf],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});B([nf],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});var sf=B([tf],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});function cf(e,t){return pf(e)||ff(e,t)||uf(e,t)||lf()}function lf(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uf(e,t){if(e){if(typeof e==`string`)return df(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?df(e,t):void 0}}function df(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=re.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||en)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;tr?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),rh||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,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=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i)}if((i=e[r=`LN10`])!==void 0){if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i)}return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function vf(e){return e===0?1:Math.floor(new K.default(e).abs().log(10).toNumber())+1}function yf(e,t,n){for(var r=new K.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}function bf(e,t){return Tf(e)||wf(e,t)||Sf(e,t)||xf()}function xf(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sf(e,t){if(e){if(typeof e==`string`)return Cf(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Cf(e,t):void 0}}function Cf(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=bf(e,2),n=t[0],r=t[1],i=n,a=r;return n>r&&(i=r,a=n),[i,a]},Df=(e,t,n)=>{if(e.lte(0))return new K.default(0);var r=vf(e.toNumber()),i=new K.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new K.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new K.default(s.toNumber()):new K.default(Math.ceil(s.toNumber()))},Of=(e,t,n)=>{if(e.lte(0))return new K.default(0);var r=[1,2,2.5,5],i=e.toNumber(),a=Math.floor(new K.default(i).abs().log(10).toNumber()),o=new K.default(10).pow(a),s=e.div(o).toNumber(),c=r.findIndex(e=>e>=s-1e-10);if(c===-1&&(o=o.mul(10),c=0),c+=n,c>=r.length){var l=Math.floor(c/r.length);c%=r.length,o=o.mul(new K.default(10).pow(l))}var u=r[c]??1,d=new K.default(u).mul(o);return t?d:new K.default(Math.ceil(d.toNumber()))},kf=(e,t,n)=>{var r=new K.default(1),i=new K.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new K.default(10).pow(vf(e)-1),i=new K.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new K.default(Math.floor(e)))}else e===0?i=new K.default(Math.floor((t-1)/2)):n||(i=new K.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Df;if(!Number.isFinite((t-e)/(n-1)))return{step:new K.default(0),tickMin:new K.default(0),tickMax:new K.default(0)};var o=a(new K.default(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new K.default(0):(s=new K.default(e).add(t).div(2),s=s.sub(new K.default(s).mod(o)));var c=Math.ceil(s.sub(e).div(o).toNumber()),l=Math.ceil(new K.default(t).sub(s).div(o).toNumber()),u=c+l+1;return u>n?Af(e,t,n,r,i+1,a):(u0?l+(n-u):l,c=t>0?c:c+(n-u)),{step:o,tickMin:s.sub(new K.default(c).mul(o)),tickMax:s.add(new K.default(l).mul(o))})},jf=function(e){var t=bf(e,2),n=t[0],r=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=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=Math.max(i,2),c=bf(Ef([n,r]),2),l=c[0],u=c[1];if(l===-1/0||u===1/0){var d=u===1/0?[l,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),u];return n>r?d.reverse():d}if(l===u)return kf(l,i,a);var f=Af(l,u,s,a,0,o===`snap125`?Of:Df),p=f.step,m=f.tickMin,h=f.tickMax,g=yf(m,h.add(new K.default(.1).mul(p)),p);return n>r?g.reverse():g},Mf=function(e,t){var n=bf(e,2),r=n[0],i=n[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=bf(Ef([r,i]),2),c=s[0],l=s[1];if(c===-1/0||l===1/0)return[r,i];if(c===l)return[c];var u=o===`snap125`?Of:Df,d=Math.max(t,2),f=u(new K.default(l).sub(c).div(d-1),a,0),p=[...yf(new K.default(c),new K.default(l),f),l];if(a===!1){p=p.map(e=>Math.round(e));var m=p.length-1;m>0&&p[m]===p[m-1]&&(p=p.slice(0,m))}return r>i?p.reverse():p},Nf=e=>e.rootProps.barCategoryGap,Pf=e=>e.rootProps.stackOffset,Ff=e=>e.rootProps.reverseStackOrder,If=e=>e.options.chartName,Lf=e=>e.rootProps.syncId,Rf=e=>e.rootProps.syncMethod,zf=e=>e.options.eventEmitter,Bf=e=>e.rootProps.baseValue,Vf={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},Hf={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:`auto`,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:Vf.axis},Uf={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:`auto`,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:Vf.axis},Wf=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function Gf(e,t,n){if(n!==`auto`)return n;if(e!=null)return Ko(e,t)?`category`:`number`}function Kf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qf(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},_c],(e,t)=>{if(e!=null)return e;var n=Gf(t,`angleAxis`,Zf.type)??`category`;return qf(qf({},Zf),{},{type:n})}),ep=B([(e,t)=>e.polarAxis.radiusAxis[t],_c],(e,t)=>{if(e!=null)return e;var n=Gf(t,`radiusAxis`,Qf.type)??`category`;return qf(qf({},Qf),{},{type:n})}),tp=e=>e.polarOptions,np=B([ss,cs,ws],kd),rp=B([tp,np],(e,t)=>{if(e!=null)return ue(e.innerRadius,t,0)}),ip=B([tp,np],(e,t)=>{if(e!=null)return ue(e.outerRadius,t,t*.8)}),ap=B([tp],e=>e==null?[0,0]:[e.startAngle,e.endAngle]);B([$f,ap],Wf);var op=B([np,rp,ip],(e,t,n)=>{if(e!=null&&t!=null&&n!=null)return[t,n]});B([ep,op],Wf);var sp=B([G,tp,rp,ip,ss,cs],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var o=t.cx,s=t.cy,c=t.startAngle,l=t.endAngle;return{cx:ue(o,i,i/2),cy:ue(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),q=(e,t)=>t,cp=(e,t,n)=>n;function lp(e){return e?.id}function up(e,t,n){var r=t.chartData,i=r===void 0?[]:r,a=n.allowDuplicatedCategory,o=n.dataKey,s=new Map;return e.forEach(e=>{var t=e.data??i;if(t!=null&&t.length!==0){var n=lp(e);t.forEach((t,r)=>{var i=o==null||a?r:String(W(t,o,null)),c=W(t,e.dataKey,0),l=s.has(i)?s.get(i):{};Object.assign(l,{[n]:c}),s.set(i,l)})}}),Array.from(s.values())}function dp(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var fp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function pp(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function mp(e,t){if(e.length===t.length){for(var n=0;n{var t=G(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},gp=e=>e.tooltip.settings.axisId;function _p(e){if(e!=null){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i}}return r}}}}}var vp=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!mf(t)){for(var n,r,i=0;ir)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}};function yp(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function bp(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function xp(e){let t,n,r;e.length===2?(t=e===yp||e===bp?e:Sp,n=e,r=e):(t=yp,n=(t,n)=>yp(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i>>1;n(e[t],r)<0?i=t+1:a=t}while(i>>1;n(e[t],r)<=0?i=t+1:a=t}while(in&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function Sp(){return 0}function Cp(e){return e===null?NaN:+e}function*wp(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var Tp=xp(yp),Ep=Tp.right;Tp.left,xp(Cp).center;var Dp=class extends Map{constructor(e,t=jp){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(Op(this,e))}has(e){return super.has(Op(this,e))}set(e,t){return super.set(kp(this,e),t)}delete(e){return super.delete(Ap(this,e))}};function Op({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function kp({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Ap({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function jp(e){return typeof e==`object`&&e?e.valueOf():e}function Mp(e=yp){if(e===yp)return Np;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Np(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et))}var Pp=Math.sqrt(50),Fp=Math.sqrt(10),Ip=Math.sqrt(2);function Lp(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=Pp?10:a>=Fp?5:a>=Ip?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/lt&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*lt&&--c),c0))return[];if(e===t)return[e];let r=t=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function Hp(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Up(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?Np:Mp(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));Up(e,t,u,d,i)}let a=e[t],o=n,s=r;for(Wp(e,n,t),i(e[r],a)>0&&Wp(e,n,r);o0;)--s}i(e[n],a)===0?Wp(e,n,s):(++s,Wp(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Wp(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Gp(e,t,n){if(e=Float64Array.from(wp(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Hp(e);if(t>=1)return Vp(e);var r,i=(r-1)*t,a=Math.floor(i),o=Vp(Up(e,a).subarray(0,a+1));return o+(Hp(e.subarray(a+1))-o)*(i-a)}}function Kp(e,t,n=Cp){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function qp(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Cm(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Cm(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=um.exec(e))?new Em(t[1],t[2],t[3],1):(t=dm.exec(e))?new Em(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=fm.exec(e))?Cm(t[1],t[2],t[3],t[4]):(t=pm.exec(e))?Cm(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=mm.exec(e))?Nm(t[1],t[2]/100,t[3]/100,1):(t=hm.exec(e))?Nm(t[1],t[2]/100,t[3]/100,t[4]):gm.hasOwnProperty(e)?Sm(gm[e]):e===`transparent`?new Em(NaN,NaN,NaN,0):null}function Sm(e){return new Em(e>>16&255,e>>8&255,e&255,1)}function Cm(e,t,n,r){return r<=0&&(e=t=n=NaN),new Em(e,t,n,r)}function wm(e){return e instanceof rm||(e=xm(e)),e?(e=e.rgb(),new Em(e.r,e.g,e.b,e.opacity)):new Em}function Tm(e,t,n,r){return arguments.length===1?wm(e):new Em(e,t,n,r??1)}function Em(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}tm(Em,Tm,nm(rm,{brighter(e){return e=e==null?am:am**+e,new Em(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?im:im**+e,new Em(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Em(jm(this.r),jm(this.g),jm(this.b),Am(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:Dm,formatHex:Dm,formatHex8:Om,formatRgb:km,toString:km}));function Dm(){return`#${Mm(this.r)}${Mm(this.g)}${Mm(this.b)}`}function Om(){return`#${Mm(this.r)}${Mm(this.g)}${Mm(this.b)}${Mm((isNaN(this.opacity)?1:this.opacity)*255)}`}function km(){let e=Am(this.opacity);return`${e===1?`rgb(`:`rgba(`}${jm(this.r)}, ${jm(this.g)}, ${jm(this.b)}${e===1?`)`:`, ${e})`}`}function Am(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function jm(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Mm(e){return e=jm(e),(e<16?`0`:``)+e.toString(16)}function Nm(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Im(e,t,n,r)}function Pm(e){if(e instanceof Im)return new Im(e.h,e.s,e.l,e.opacity);if(e instanceof rm||(e=xm(e)),!e)return new Im;if(e instanceof Im)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new Im(o,s,c,e.opacity)}function Fm(e,t,n,r){return arguments.length===1?Pm(e):new Im(e,t,n,r??1)}function Im(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}tm(Im,Fm,nm(rm,{brighter(e){return e=e==null?am:am**+e,new Im(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?im:im**+e,new Im(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,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Em(zm(e>=240?e-240:e+120,i,r),zm(e,i,r),zm(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Im(Lm(this.h),Rm(this.s),Rm(this.l),Am(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(){let e=Am(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Lm(this.h)}, ${Rm(this.s)*100}%, ${Rm(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Lm(e){return e=(e||0)%360,e<0?e+360:e}function Rm(e){return Math.max(0,Math.min(1,e||0))}function zm(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Bm=e=>()=>e;function Vm(e,t){return function(n){return e+n*t}}function Hm(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Um(e){return(e=+e)==1?Wm:function(t,n){return n-t?Hm(t,n,e):Bm(isNaN(t)?n:t)}}function Wm(e,t){var n=t-e;return n?Vm(e,n):Bm(isNaN(e)?t:e)}var Gm=(function e(t){var n=Um(t);function r(e,t){var r=n((e=Tm(e)).r,(t=Tm(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Wm(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function Km(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Xm(r,i)})),n=$m.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Xm(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Xm(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Xm(e,n)},{i:s-2,x:Xm(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++tt&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function Eh(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i2?Dh:Eh,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),Xm))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,xh),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=ih,u()},d.clamp=function(e){return arguments.length?(o=e?!0:Ch,u()):o!==Ch},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function Ah(){return kh()(Ch,Ch)}function jh(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function Mh(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Nh(e){return e=Mh(Math.abs(e)),e?e[1]:NaN}function Ph(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Fh(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var Ih=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Lh(e){if(!(t=Ih.exec(e)))throw Error(`invalid format: `+e);var t;return new Rh({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]})}Lh.prototype=Rh.prototype;function Rh(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+``}Rh.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 zh(e){out:for(var t=e.length,n=1,r=-1,i;n0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var Bh;function Vh(e,t){var n=Mh(e,t);if(!n)return Bh=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(Bh=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+Mh(e,Math.max(0,t+a-1))[0]}function Hh(e,t){var n=Mh(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var Uh={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:jh,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)=>Hh(e*100,t),r:Hh,s:Vh,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Wh(e){return e}var Gh=Array.prototype.map,Kh=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function qh(e){var t=e.grouping===void 0||e.thousands===void 0?Wh:Ph(Gh.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?Wh:Fh(Gh.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=Lh(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):Uh[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=Uh[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=zh(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&Bh!==void 0?Kh[8+Bh/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++op||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(Nh(t)/3)))*3,r=10**-n,i=l((e=Lh(e),e.type=`f`,e),{suffix:Kh[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var Jh,Yh,Xh;Zh({thousands:`,`,grouping:[3],currency:[`$`,``]});function Zh(e){return Jh=qh(e),Yh=Jh.format,Xh=Jh.formatPrefix,Jh}function Qh(e){return Math.max(0,-Nh(Math.abs(e)))}function $h(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Nh(t)/3)))*3-Nh(Math.abs(e)))}function eg(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Nh(t)-Nh(e))+1}function tg(e,t,n,r){var i=Bp(e,t,n),a;switch(r=Lh(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=$h(i,o))&&(r.precision=a),Xh(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=eg(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=Qh(i))&&(r.precision=a-(r.type===`%`)*2)}return Yh(r)}function ng(e){var t=e.domain;return e.ticks=function(e){var n=t();return Rp(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return tg(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s0;){if(l=zp(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function rg(){var e=Ah();return e.copy=function(){return Oh(e,rg())},Jp.apply(e,arguments),ng(e)}function ig(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,xh),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return ig(e).unknown(t)},e=arguments.length?Array.from(e,xh):[0,1],ng(n)}function ag(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return ae**+t}function fg(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 pg(e){return(t,n)=>-e(-t,n)}function mg(e){let t=e(og,sg),n=t.domain,r=10,i,a;function o(){return i=fg(r),a=dg(r),n()[0]<0?(i=pg(i),a=pg(a),e(cg,lg)):e(og,sg),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s0){for(;l<=u;++l)for(d=1;ds)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(fs)break;m.push(f)}m.length*2{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=Lh(n)).precision==null&&(n.trim=!0),n=Yh(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*rn(ag(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function hg(){let e=mg(kh()).domain([1,10]);return e.copy=()=>Oh(e,hg()).base(e.base()),Jp.apply(e,arguments),e}function gg(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function _g(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function vg(e){var t=1,n=e(gg(t),_g(t));return n.constant=function(n){return arguments.length?e(gg(t=+n),_g(t)):t},ng(n)}function yg(){var e=vg(kh());return e.copy=function(){return Oh(e,yg()).constant(e.constant())},Jp.apply(e,arguments)}function bg(e){return function(t){return t<0?-((-t)**+e):t**+e}}function xg(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Sg(e){return e<0?-e*e:e*e}function Cg(e){var t=e(Ch,Ch),n=1;function r(){return n===1?e(Ch,Ch):n===.5?e(xg,Sg):e(bg(n),bg(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},ng(t)}function wg(){var e=Cg(kh());return e.copy=function(){return Oh(e,wg()).exponent(e.exponent())},Jp.apply(e,arguments),e}function Tg(){return wg.apply(null,arguments).exponent(.5)}function Eg(e){return Math.sign(e)*e*e}function Dg(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Og(){var e=Ah(),t=[0,1],n=!1,r;function i(t){var i=Dg(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(Eg(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,xh)).map(Eg)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return Og(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Jp.apply(i,arguments),ng(i)}function kg(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r0?n[i-1]:e[0],i=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return Ag().domain([e,t]).range(i).unknown(a)},Jp.apply(ng(o),arguments)}function jg(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Ep(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return jg().domain(e).range(t).unknown(n)},Jp.apply(i,arguments)}var Mg=new Date,Ng=new Date;function J(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(sJ(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(Mg.setTime(+t),Ng.setTime(+r),e(Mg),e(Ng),Math.floor(n(Mg,Ng))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var Pg=J(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Pg.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?J(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Pg),Pg.range;var Fg=1e3,Ig=Fg*60,Lg=Ig*60,Rg=Lg*24,zg=Rg*7,Bg=Rg*30,Vg=Rg*365,Hg=J(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Fg)},(e,t)=>(t-e)/Fg,e=>e.getUTCSeconds());Hg.range;var Ug=J(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Fg)},(e,t)=>{e.setTime(+e+t*Ig)},(e,t)=>(t-e)/Ig,e=>e.getMinutes());Ug.range;var Wg=J(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ig)},(e,t)=>(t-e)/Ig,e=>e.getUTCMinutes());Wg.range;var Gg=J(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Fg-e.getMinutes()*Ig)},(e,t)=>{e.setTime(+e+t*Lg)},(e,t)=>(t-e)/Lg,e=>e.getHours());Gg.range;var Kg=J(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Lg)},(e,t)=>(t-e)/Lg,e=>e.getUTCHours());Kg.range;var qg=J(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ig)/Rg,e=>e.getDate()-1);qg.range;var Jg=J(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Rg,e=>e.getUTCDate()-1);Jg.range;var Yg=J(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Rg,e=>Math.floor(e/Rg));Yg.range;function Xg(e){return J(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ig)/zg)}var Zg=Xg(0),Qg=Xg(1),$g=Xg(2),e_=Xg(3),t_=Xg(4),n_=Xg(5),r_=Xg(6);Zg.range,Qg.range,$g.range,e_.range,t_.range,n_.range,r_.range;function i_(e){return J(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/zg)}var a_=i_(0),o_=i_(1),s_=i_(2),c_=i_(3),l_=i_(4),u_=i_(5),d_=i_(6);a_.range,o_.range,s_.range,c_.range,l_.range,u_.range,d_.range;var f_=J(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());f_.range;var p_=J(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());p_.range;var m_=J(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());m_.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:J(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),m_.range;var h_=J(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());h_.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:J(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),h_.range;function g_(e,t,n,r,i,a){let o=[[Hg,1,Fg],[Hg,5,5*Fg],[Hg,15,15*Fg],[Hg,30,30*Fg],[a,1,Ig],[a,5,5*Ig],[a,15,15*Ig],[a,30,30*Ig],[i,1,Lg],[i,3,3*Lg],[i,6,6*Lg],[i,12,12*Lg],[r,1,Rg],[r,2,2*Rg],[n,1,zg],[t,1,Bg],[t,3,3*Bg],[e,1,Vg]];function s(e,t,n){let r=te).right(o,i);if(a===o.length)return e.every(Bp(t/Vg,n/Vg,r));if(a===0)return Pg.every(Math.max(Bp(t,n,r),1));let[s,c]=o[i/o[a-1][2]53)return null;`w`in r||(r.w=1),`Z`in r?(a=S_(C_(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?o_.ceil(a):o_(a),a=Jg.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=x_(C_(r.y,0,1)),o=a.getDay(),a=o>4||o===0?Qg.ceil(a):Qg(a),a=qg.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?S_(C_(r.y,0,1)).getUTCDay():x_(C_(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,S_(r)):x_(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in T_?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function ee(e){return a[e.getDay()]}function te(e){return c[e.getMonth()]}function ne(e){return s[e.getMonth()]}function re(e){return i[+(e.getHours()>=12)]}function P(e){return 1+~~(e.getMonth()/3)}function ie(e){return o[e.getUTCDay()]}function ae(e){return a[e.getUTCDay()]}function oe(e){return c[e.getUTCMonth()]}function F(e){return s[e.getUTCMonth()]}function se(e){return i[+(e.getUTCHours()>=12)]}function ce(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var T_={"-":``,_:` `,0:`0`},E_=/^\s*\d+/,D_=/^%/,O_=/[\\^$*+?|[\]().{}]/g;function Y(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a[e.toLowerCase(),t]))}function M_(e,t,n){var r=E_.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function N_(e,t,n){var r=E_.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function P_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function F_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function I_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function L_(e,t,n){var r=E_.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function R_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function z_(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function B_(e,t,n){var r=E_.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function V_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function H_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function U_(e,t,n){var r=E_.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function W_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function G_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function K_(e,t,n){var r=E_.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function q_(e,t,n){var r=E_.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function J_(e,t,n){var r=E_.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Y_(e,t,n){var r=D_.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function X_(e,t,n){var r=E_.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Z_(e,t,n){var r=E_.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Q_(e,t){return Y(e.getDate(),t,2)}function $_(e,t){return Y(e.getHours(),t,2)}function ev(e,t){return Y(e.getHours()%12||12,t,2)}function tv(e,t){return Y(1+qg.count(m_(e),e),t,3)}function nv(e,t){return Y(e.getMilliseconds(),t,3)}function rv(e,t){return nv(e,t)+`000`}function iv(e,t){return Y(e.getMonth()+1,t,2)}function av(e,t){return Y(e.getMinutes(),t,2)}function ov(e,t){return Y(e.getSeconds(),t,2)}function sv(e){var t=e.getDay();return t===0?7:t}function cv(e,t){return Y(Zg.count(m_(e)-1,e),t,2)}function lv(e){var t=e.getDay();return t>=4||t===0?t_(e):t_.ceil(e)}function uv(e,t){return e=lv(e),Y(t_.count(m_(e),e)+(m_(e).getDay()===4),t,2)}function dv(e){return e.getDay()}function fv(e,t){return Y(Qg.count(m_(e)-1,e),t,2)}function pv(e,t){return Y(e.getFullYear()%100,t,2)}function mv(e,t){return e=lv(e),Y(e.getFullYear()%100,t,2)}function hv(e,t){return Y(e.getFullYear()%1e4,t,4)}function gv(e,t){var n=e.getDay();return e=n>=4||n===0?t_(e):t_.ceil(e),Y(e.getFullYear()%1e4,t,4)}function _v(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+Y(t/60|0,`0`,2)+Y(t%60,`0`,2)}function vv(e,t){return Y(e.getUTCDate(),t,2)}function yv(e,t){return Y(e.getUTCHours(),t,2)}function bv(e,t){return Y(e.getUTCHours()%12||12,t,2)}function xv(e,t){return Y(1+Jg.count(h_(e),e),t,3)}function Sv(e,t){return Y(e.getUTCMilliseconds(),t,3)}function Cv(e,t){return Sv(e,t)+`000`}function wv(e,t){return Y(e.getUTCMonth()+1,t,2)}function Tv(e,t){return Y(e.getUTCMinutes(),t,2)}function Ev(e,t){return Y(e.getUTCSeconds(),t,2)}function Dv(e){var t=e.getUTCDay();return t===0?7:t}function Ov(e,t){return Y(a_.count(h_(e)-1,e),t,2)}function kv(e){var t=e.getUTCDay();return t>=4||t===0?l_(e):l_.ceil(e)}function Av(e,t){return e=kv(e),Y(l_.count(h_(e),e)+(h_(e).getUTCDay()===4),t,2)}function jv(e){return e.getUTCDay()}function Mv(e,t){return Y(o_.count(h_(e)-1,e),t,2)}function Nv(e,t){return Y(e.getUTCFullYear()%100,t,2)}function Pv(e,t){return e=kv(e),Y(e.getUTCFullYear()%100,t,2)}function Fv(e,t){return Y(e.getUTCFullYear()%1e4,t,4)}function Iv(e,t){var n=e.getUTCDay();return e=n>=4||n===0?l_(e):l_.ceil(e),Y(e.getUTCFullYear()%1e4,t,4)}function Lv(){return`+0000`}function Rv(){return`%`}function zv(e){return+e}function Bv(e){return Math.floor(e/1e3)}var Vv,Hv,Uv;Wv({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 Wv(e){return Vv=w_(e),Hv=Vv.format,Vv.parse,Uv=Vv.utcFormat,Vv.utcParse,Vv}function Gv(e){return new Date(e)}function Kv(e){return e instanceof Date?+e:+new Date(+e)}function qv(e,t,n,r,i,a,o,s,c,l){var u=Ah(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Gp(e,r/t))},n.copy=function(){return ry(t).domain(e)},Yp.apply(n,arguments)}function iy(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=Ch,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*eQp,scaleDiverging:()=>ay,scaleDivergingLog:()=>oy,scaleDivergingPow:()=>cy,scaleDivergingSqrt:()=>ly,scaleDivergingSymlog:()=>sy,scaleIdentity:()=>ig,scaleImplicit:()=>Xp,scaleLinear:()=>rg,scaleLog:()=>hg,scaleOrdinal:()=>Zp,scalePoint:()=>em,scalePow:()=>wg,scaleQuantile:()=>kg,scaleQuantize:()=>Ag,scaleRadial:()=>Og,scaleSequential:()=>Qv,scaleSequentialLog:()=>$v,scaleSequentialPow:()=>ty,scaleSequentialQuantile:()=>ry,scaleSequentialSqrt:()=>ny,scaleSequentialSymlog:()=>ey,scaleSqrt:()=>Tg,scaleSymlog:()=>yg,scaleThreshold:()=>jg,scaleTime:()=>Jv,scaleUtc:()=>Yv,tickFormat:()=>tg});function dy(e){var t=uy;if(e in t&&typeof t[e]==`function`)return t[e]();var n=`scale${me(e)}`;if(n in t&&typeof t[n]==`function`)return t[n]()}function fy(e,t,n){if(typeof e==`function`)return e.copy().domain(t).range(n);if(e!=null){var r=dy(e);if(r!=null)return r.domain(t).range(n),r}}function py(e,t,n,r){if(n!=null&&r!=null)return typeof e.scale==`function`?fy(e.scale,n,r):fy(t,n,r)}function my(e){return`scale${me(e)}`}function hy(e){return my(e)in uy}var gy=(e,t,n)=>{if(e!=null){var r=e.scale,i=e.type;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`)return hy(r)?r:`point`}};function _y(e,t){for(var n=0,r=e.length,i=e[0]t)?n=a+1:r=a}return n}function vy(e,t){if(e){var n=t??e.domain(),r=n.map(t=>e(t)??0),i=e.range();if(!(n.length===0||i.length<2))return e=>{var t=_y(r,e);if(t<=0)return n[0];if(t>=n.length)return n[n.length-1];var i=r[t-1]??0,a=r[t]??0;return Math.abs(e-i)<=Math.abs(e-a)?n[t-1]:n[t]}}}function yy(e){if(e!=null)return`invert`in e&&typeof e.invert==`function`?e.invert.bind(e):vy(e,void 0)}function by(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xy(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.cartesianAxis.xAxis[t],Ny=(e,t)=>My(e,t)??X,Z={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:jy,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,niceTicks:`auto`,width:60},Py=(e,t)=>e.cartesianAxis.yAxis[t],Fy=(e,t)=>Py(e,t)??Z,Iy={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},Ly=(e,t)=>e.cartesianAxis.zAxis[t]??Iy,Ry=(e,t,n)=>{switch(t){case`xAxis`:return Ny(e,n);case`yAxis`:return Fy(e,n);case`zAxis`:return Ly(e,n);case`angleAxis`:return $f(e,n);case`radiusAxis`:return ep(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},zy=(e,t,n)=>{switch(t){case`xAxis`:return Ny(e,n);case`yAxis`:return Fy(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},By=(e,t,n)=>{switch(t){case`xAxis`:return Ny(e,n);case`yAxis`:return Fy(e,n);case`angleAxis`:return $f(e,n);case`radiusAxis`:return ep(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},Vy=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function Hy(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var Uy=e=>e.graphicalItems.cartesianItems,Wy=B([q,cp],Hy),Gy=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0||!e.hide),Ky=B([Uy,Ry,Wy],Gy,{memoizeOptions:{resultEqualityCheck:pp}}),qy=B([Ky],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(dp)),Jy=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),Yy=B([Ky],Jy),Xy=e=>e.map(e=>e.data).filter(Boolean).flat(1),Zy=B([Ky],e=>e.some(e=>!e.data)),Qy=B([Ky],Xy,{memoizeOptions:{resultEqualityCheck:pp}}),$y=(e,t)=>{var n=t.chartData,r=n===void 0?[]:n,i=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:r.slice(i,a+1)},eb=B([Qy,rf],$y),tb=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:W(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:W(e,t.dataKey)})),nb=(e,t,n,r,i,a)=>{var o=r.chartData,s=o===void 0?[]:o,c=r.dataStartIndex,l=r.dataEndIndex,u=tb(e,t,n);return i&&t?.dataKey!=null&&a.length>0?[...s.slice(c,l+1).map(e=>({value:W(e,t.dataKey)})).filter(e=>e.value!=null),...u]:u},rb=B([eb,Ry,Ky,rf,Zy,Qy],nb);function ib(e){if(se(e)||e instanceof Date){var t=Number(e);if(U(t))return t}}function ab(e){if(Array.isArray(e)){var t=[ib(e[0]),ib(e[1])];return mf(t)?t:void 0}var n=ib(e);if(n!=null)return[n,n]}function ob(e){return e.map(ib).filter(he)}function sb(e,t){var n=ib(e),r=ib(t);return n==null&&r==null?0:n==null?-1:r==null?1:n-r}var cb=B([rb],e=>e?.map(e=>e.value).sort(sb));function lb(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function ub(e,t,n){if(!n||!n.length)return[];var r;if(typeof t==`number`&&!ae(t))r=t;else if(Array.isArray(t)){var i=ob(t);i.length>0&&(r=Math.max(...i))}return r==null?[]:ob(n.flatMap(t=>{var n=W(e,t.dataKey),i,a;if(Array.isArray(n)){var o=Ty(n,2);i=o[0],a=o[1]}else i=a=n;if(!(!U(i)||!U(a)))return[r-i,r+a]}))}var Q=e=>By(e,hp(e),gp(e)),db=B([Q],e=>e?.dataKey),fb=B([qy,rf,Q],up),pb=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var i=Ty(t,2),a=i[0],o=i[1],s=r?[...o].reverse():o;return[a,{stackedData:Jo(e,s.map(lp),n),graphicalItems:s}]}))},mb=B([fb,qy,Pf,Ff],pb),hb=(e,t,n,r)=>{var i=t.dataStartIndex,a=t.dataEndIndex;if(r==null&&n!==`zAxis`)return $o(e,i,a)},gb=B([Ry],e=>e.allowDataOverflow),_b=e=>{if(e==null||!(`domain`in e))return jy;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=ob(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??jy},vb=B([Ry],_b),yb=B([vb,gb],gf),bb=B([mb,tf,q,yb],hb,{memoizeOptions:{resultEqualityCheck:fp}}),xb=e=>e.errorBars,Sb=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>lb(n,e)),Cb=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},wb=function(e,t,n,r,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],o,s;if(n.length>0&&n.forEach(e=>{var n=e.data==null?a:[...e.data],c=r[e.id]?.filter(e=>lb(i,e));n.forEach(n=>{var r=W(n,t.dataKey??e.dataKey),i=ub(n,r,c);if(i.length>=2){var a=Math.min(...i),l=Math.max(...i);(o==null||as)&&(s=l)}var u=ab(r);u!=null&&(o=o==null?u[0]:Math.min(o,u[0]),s=s==null?u[1]:Math.max(s,u[1]))})}),t?.dataKey!=null&&n.length===0&&e.forEach(e=>{var n=ab(W(e,t.dataKey));n!=null&&(o=o==null?n[0]:Math.min(o,n[0]),s=s==null?n[1]:Math.max(s,n[1]))}),U(o)&&U(s))return[o,s]},Tb=B([eb,Ry,Yy,xb,q,of],wb,{memoizeOptions:{resultEqualityCheck:fp}});function Eb(e){var t=e.value;if(se(t)||t instanceof Date)return t}var Db=(e,t,n)=>{var r=e.map(Eb).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&de(r))?ef(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},Ob=e=>e.referenceElements.dots,kb=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),Ab=B([Ob,q,cp],kb),jb=e=>e.referenceElements.areas,Mb=B([jb,q,cp],kb),Nb=e=>e.referenceElements.lines,Pb=B([Nb,q,cp],kb),Fb=(e,t)=>{if(e!=null){var n=ob(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Ib=B(Ab,q,Fb),Lb=(e,t)=>{if(e!=null){var n=ob(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Rb=B([Mb,q],Lb);function zb(e){if(e.x!=null)return ob([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:ob(t)}function Bb(e){if(e.y!=null)return ob([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:ob(t)}var Vb=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?zb(e):Bb(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Hb=B(Ib,B([Pb,q],Vb),Rb,(e,t,n)=>Cb(e,n,t)),Ub=(e,t,n,r,i,a,o,s,c)=>{if(n!=null)return n;var l=o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?Cb(r,a,i):Cb(a,i),u=_f(t,l,e.allowDataOverflow);return u==null&&e.allowDataOverflow&&l==null&&c!=null?c:u},Wb=B([Ry,vb,yb,bb,Tb,Hb,G,q,B([Ry],e=>{if(!(e==null||e.type!==`number`||!(`ticks`in e)||e.ticks==null)){var t=ob(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},{memoizeOptions:{resultEqualityCheck:fp}})],Ub,{memoizeOptions:{resultEqualityCheck:fp}}),Gb=[0,1],Kb=(e,t,n,r,i,a,o)=>{if(e!=null&&n!=null&&n.length!==0||o!==void 0){var s=e.dataKey,c=e.type,l=Ko(t,a);return l&&s==null?ef(0,n?.length??0):c===`category`?Db(r,e,l):i===`expand`&&!l?Gb:o}},qb=B([Ry,G,eb,rb,Pf,q,Wb],Kb),Jb=B([Ry,Vy,If],gy),Yb=(e,t,n)=>{var r=t.niceTicks;if(r!==`none`){var i=_b(t),a=Array.isArray(i)&&(i[0]===`auto`||i[1]===`auto`);if((r===`snap125`||r===`adaptive`)&&t!=null&&t.tickCount&&mf(e)){if(a)return jf(e,t.tickCount,t.allowDecimals,r);if(t.type===`number`)return Mf(e,t.tickCount,t.allowDecimals,r)}if(r===`auto`&&n===`linear`&&t!=null&&t.tickCount){if(a&&mf(e))return jf(e,t.tickCount,t.allowDecimals,`adaptive`);if(t.type===`number`&&mf(e))return Mf(e,t.tickCount,t.allowDecimals,`adaptive`)}}},Xb=B([qb,By,Jb],Yb),Zb=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&mf(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},Qb=B([Ry,qb,Xb,q],Zb),$b=B(B(rb,Ry,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(ob(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;si,(e,t,n,r,i)=>{if(!U(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=ue(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),ex=(e,t,n)=>{var r=Ny(e,t);return r==null||typeof r.padding!=`string`?0:$b(e,`xAxis`,t,n,r.padding)},tx=(e,t,n)=>{var r=Fy(e,t);return r==null||typeof r.padding!=`string`?0:$b(e,`yAxis`,t,n,r.padding)},nx=B(Ny,ex,(e,t)=>{if(e==null)return{left:0,right:0};var n=e.padding;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),rx=B(Fy,tx,(e,t)=>{if(e==null)return{top:0,bottom:0};var n=e.padding;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),ix=B([ws,nx,As,ks,(e,t,n)=>n],(e,t,n,r,i)=>{var a=r.padding;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),ax=B([ws,G,rx,As,ks,(e,t,n)=>n],(e,t,n,r,i,a)=>{var o=i.padding;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),ox=(e,t,n,r)=>{switch(t){case`xAxis`:return ix(e,n,r);case`yAxis`:return ax(e,n,r);case`zAxis`:return Ly(e,n)?.range;case`angleAxis`:return ap(e);case`radiusAxis`:return op(e,n);default:return}},sx=B([Ry,ox],Wf),cx=B([Ry,Jb,B([Jb,Qb],vp),sx],py),lx=(e,t,n,r)=>{if(n!=null&&n.dataKey!=null){var i=n.type,a=n.scale;if(Ko(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},ux=B([G,rb,By,q],lx),dx=B([cx],_p);B([cx],yy),B([cx,cb],vy),B([Ky,xb,q],Sb);function fx(e,t){return e.idt.id)}var px=(e,t)=>t,mx=(e,t,n)=>n,hx=B(ds,px,mx,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(fx)),gx=B(fs,px,mx,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(fx)),_x=(e,t)=>{var n=typeof t.height==`number`?t.height:30;return{width:e.width,height:n}},vx=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),yx=B(ws,Ny,_x),bx=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},xx=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},Sx=B(cs,ws,hx,px,mx,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=_x(t,n);o??=bx(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),Cx=B(ss,ws,gx,px,mx,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=vx(t,n);o??=xx(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),wx=B([ws,Ny,(e,t)=>{var n=Ny(e,t);if(n!=null)return Sx(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),Tx=B([ws,Fy,(e,t)=>{var n=Fy(e,t);if(n!=null)return Cx(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),Ex=B(ws,Fy,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),Dx=(e,t,n,r)=>{if(n!=null){var i=n.allowDuplicatedCategory,a=n.type,o=n.dataKey,s=Ko(e,r),c=t.map(e=>e.value),l=c.filter(e=>e!=null);if(o&&s&&a===`category`&&i&&de(l))return c}},Ox=B([G,rb,Ry,q],Dx);B([G,zy,Jb,dx,Ox,ux,ox,Xb,q],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=Ko(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}});var kx=B([G,By,Jb,dx,Xb,ox,Ox,ux,q],(e,t,n,r,i,a,o,s,c)=>{if(t!=null&&r!=null){var l=Ko(e,c),u=t.type,d=t.ticks,f=t.tickCount,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?ie(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return U(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(he):l&&s?s.map((e,t)=>{var n=r.map(e);return U(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(he):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return U(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(he):r.domain().map((e,t)=>{var n=r.map(e);return U(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(he)}}),Ax=B([G,By,dx,ox,Ox,ux,q],(e,t,n,r,i,a,o)=>{if(t!=null&&n!=null&&r!=null&&r[0]!==r[1]){var s=Ko(e,o),c=t.tickCount,l=0;return l=o===`angleAxis`&&r?.length>=2?ie(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return U(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(he):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return U(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(he):n.domain().map((e,t)=>{var r=n.map(e);return U(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(he)}}),jx=B(Ry,dx,(e,t)=>{if(e!=null&&t!=null)return xy(xy({},e),{},{scale:t})});B((e,t,n)=>Ly(e,n),B([B([Ry,Jb,qb,sx],py)],_p),(e,t)=>{if(e!=null&&t!=null)return xy(xy({},e),{},{scale:t})});var Mx=B([G,ds,fs],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}});B([(e,t,n)=>e.renderedTicks[t]?.[n]],e=>{if(!(!e||e.length===0))return t=>{var n=1/0,r=e[0];for(var i of e){var a=Math.abs(i.coordinate-t);ae.options.defaultTooltipEventType,Px=e=>e.options.validateTooltipEventTypes;function Fx(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function Ix(e,t){return Fx(t,Nx(e),Px(e))}function Lx(e){return z(t=>Ix(t,e))}var Rx=(e,t)=>{var n,r=Number(t);if(!(ae(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},zx=e=>e.tooltip.settings,Bx={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},Vx=Ha({name:`tooltip`,initialState:{itemInteraction:{click:Bx,hover:Bx},axisInteraction:{click:Bx,hover:Bx},keyboardInteraction:Bx,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(V(t.payload))},prepare:H()},replaceTooltipEntrySettings:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ma(e).tooltipItemPayloads.indexOf(V(r));a>-1&&(e.tooltipItemPayloads[a]=V(i))},prepare:H()},removeTooltipEntrySettings:{reducer(e,t){var n=ma(e).tooltipItemPayloads.indexOf(V(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:H()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Hx=Vx.actions,Ux=Hx.addTooltipEntrySettings,Wx=Hx.replaceTooltipEntrySettings,Gx=Hx.removeTooltipEntrySettings,Kx=Hx.setTooltipSettingsState,qx=Hx.setActiveMouseOverItemIndex;Hx.mouseLeaveItem;var Jx=Hx.mouseLeaveChart;Hx.setActiveClickItemIndex;var Yx=Hx.setMouseOverAxisIndex,Xx=Hx.setMouseClickAxisIndex,Zx=Hx.setSyncInteraction,Qx=Hx.setKeyboardInteraction,$x=Vx.reducer;function eS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tS(e){for(var t=1;t{if(t==null)return Bx;var i=aS(e,t,n);if(i==null)return Bx;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(oS(i)){if(a)return tS(tS({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return tS(tS({},Bx),{},{coordinate:i.coordinate})};function cS(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function lS(e,t){var n=cS(e),r=t[0],i=t[1];return n!==void 0&&n>=Math.min(r,i)&&n<=Math.max(r,i)}function uS(e,t,n){if(n==null||t==null)return!0;var r=W(e,t);return r==null||!mf(n)||lS(r,n)}var dS=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!U(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||uS(l,n,r)?String(c):null},fS=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},pS=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(r!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},mS=e=>e.options.tooltipPayloadSearcher,hS=e=>e.tooltip;function gS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _S(e){for(var t=1;te(t)}function wS(e){if(typeof e==`string`)return e}function TS(e){if(!(typeof e!=`object`||!e))return{name:`name`in e?xS(e.name):void 0,unit:`unit`in e?SS(e.unit):void 0,dataKey:`dataKey`in e?CS(e.dataKey):void 0,payload:`payload`in e?e.payload:void 0,color:`color`in e?wS(e.color):void 0,fill:`fill`in e?wS(e.fill):void 0}}function ES(e,t){return e??t}var DS=(e,t,n,r,i,a,o)=>{if(t!=null&&a!=null){var s=n.chartData,c=n.computedData,l=n.dataStartIndex,u=n.dataEndIndex;return e.reduce((e,n)=>{var d=n.dataDefinedOnItem,f=n.settings,p=ES(d,s),m=Array.isArray(p)?Ro(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_;return r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?(_=pe(m,r,i),_??=a(m,t,c,g)):_=a(m,t,c,g),Array.isArray(_)?_.forEach(t=>{var n=TS(t),r=n?.name,i=n?.dataKey,a=n?.payload,o=_S(_S({},f),{},{name:r,unit:n?.unit,color:n?.color??f?.color,fill:n?.fill??f?.fill});e.push(rs({tooltipEntrySettings:o,dataKey:i,payload:a,value:W(a,i),name:r==null?void 0:String(r)}))}):e.push(rs({tooltipEntrySettings:f,dataKey:h,payload:_,value:W(_,h),name:W(_,g)??f?.name})),e},[])}},OS=B([Q,Vy,If],gy),kS=B([B([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),Q,B([hp,gp],Hy)],Gy,{memoizeOptions:{resultEqualityCheck:pp}}),AS=B([kS],e=>e.filter(dp)),jS=B([kS],Xy,{memoizeOptions:{resultEqualityCheck:pp}}),MS=B([kS],e=>e.some(e=>!e.data)),NS=B([jS,tf],$y),PS=B([AS,tf,Q],up),FS=B([NS,Q,kS,tf,MS,jS],nb),IS=B([Q],_b),LS=B([IS,B([Q],e=>e.allowDataOverflow)],gf),RS=B([B([PS,B([kS],e=>e.filter(dp)),Pf,Ff],pb),tf,hp,LS],hb),zS=B([NS,Q,B([kS],Jy),xb,hp,sf],wb,{memoizeOptions:{resultEqualityCheck:fp}}),BS=B([B([Ob,hp,gp],kb),hp],Fb),VS=B([B([jb,hp,gp],kb),hp],Lb),HS=B([Q,G,NS,FS,Pf,hp,B([Q,IS,LS,RS,zS,B([BS,B([B([Nb,hp,gp],kb),hp],Vb),VS],Cb),G,hp],Ub)],Kb),US=B([Q,HS,B([HS,Q,OS],Yb),hp],Zb),WS=e=>ox(e,hp(e),gp(e),!1),GS=B([Q,WS],Wf),KS=B([B([Q,OS,US,GS],py)],_p),qS=B([G,Q,OS,KS,WS,B([G,FS,Q,hp],Dx),B([G,FS,Q,hp],lx),hp],(e,t,n,r,i,a,o,s)=>{if(t){var c=t.type,l=Ko(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?ie(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return U(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(he):r.domain().map((e,t)=>{var n=r.map(e);return U(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(he)}}}),JS=B([Nx,Px,zx],(e,t,n)=>Fx(n.shared,e,t)),YS=e=>e.tooltip.settings.trigger,XS=e=>e.tooltip.settings.defaultIndex,ZS=B([hS,JS,YS,XS],sS),QS=B([ZS,NS,db,HS],dS),$S=B([qS,QS],Rx),eC=B([ZS],e=>{if(e)return e.dataKey}),tC=B([ZS],e=>{if(e)return e.graphicalItemId}),nC=B([hS,JS,YS,XS],pS),rC=B([ZS,B([ss,cs,G,ws,qS,XS,nC],fS)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),iC=B([ZS],e=>e?.active??!1),aC=B([B([nC,QS,tf,db,$S,mS,JS],DS)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function oC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sC(e){for(var t=1;tz(Q),fC=()=>{var e=dC(),t=z(qS),n=z(KS);return ns(!e||!n?void 0:sC(sC({},e),{},{scale:n}),t)};function pC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mC(e){for(var t=1;t{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.relativeY};if(e===`vertical`)return{x:r.relativeX,y:i.coordinate}}return{x:0,y:0}},yC=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,o=r.radius;return mC(mC(mC({},r),Od(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,c=r.angle;return mC(mC(mC({},r),Od(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function bC(e,t){var n=e.relativeX,r=e.relativeY;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var xC=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=i[1]-i[0],s=(t,n,r)=>[e,e+o,e-o].some(e=>(r?e>=t:e>t)&&e<=n),c=0;c0?n[c-1]?.coordinate:n[a-1]?.coordinate,u=n[c]?.coordinate,d=c>=a-1?n[0]?.coordinate:n[c+1]?.coordinate,f=void 0;if(l!=null&&u!=null&&d!=null){if(ie(u-l)!==ie(d-u)){var p=[];if(ie(d-u)===ie(i[1]-i[0])){f=d;var m=u+i[1]-i[0];p[0]=Math.min(m,(m+l)/2),p[1]=Math.max(m,(m+l)/2)}else{f=l;var h=d+i[1]-i[0];p[0]=Math.min(u,(h+u)/2),p[1]=Math.max(u,(h+u)/2)}var g=[Math.min(u,(f+u)/2),Math.max(u,(f+u)/2)];if(s(g[0],g[1],!1)||s(p[0],p[1],!0))return n[c]?.index}else{var _=Math.min(l,d),v=Math.max(l,d);if(s((_+u)/2,(v+u)/2,!1))return n[c]?.index}}}else if(t)for(var y=0;y(b.coordinate+S.coordinate)/2||y>0&&y(b.coordinate+S.coordinate)/2&&e<=(b.coordinate+x.coordinate)/2)return b.index}}return-1},SC=()=>z(If),CC=(e,t)=>t,wC=(e,t,n)=>n,TC=(e,t,n,r)=>r,EC=B(qS,e=>Tr(e,e=>e.coordinate)),DC=B([hS,CC,wC,TC],sS),OC=B([DC,NS,db,HS],dS),kC=(e,t,n)=>{if(t!=null){var r=hS(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},AC=B([hS,CC,wC,TC],pS),jC=B([ss,cs,G,ws,qS,TC,AC],fS),MC=B([DC,jC],(e,t)=>e.coordinate??t),NC=B([qS,OC],Rx),PC=B([AC,OC,tf,db,NC,mS,CC],DS),FC=B([DC,OC],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),IC=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&bC(e,o)){var s=xC(as(e,t),a,i,n,r),c=vC(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},LC=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=Pd(e,n);if(s){var c=xC(os(s,t),o,a,r,i),l=yC(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},RC=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?IC(e,t,r,i,a,o,s):LC(e,t,n,r,i,a,o)},zC=B(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),BC=B(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(Vf));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:mp}});function VC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HC(e){for(var t=1;tHC(HC({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},qC=new Set(Object.values(Vf));function JC(e){return qC.has(e)}var YC=Ha({name:`zIndex`,initialState:KC,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:H()},unregisterZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!JC(n)&&delete e.zIndexMap[n])},prepare:H()},registerZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload,r=n.zIndex,i=n.element,a=n.isPanorama;e.zIndexMap[r]?a?e.zIndexMap[r].panoramaElement=V(i):e.zIndexMap[r].element=V(i):e.zIndexMap[r]={consumers:0,element:a?void 0:V(i),panoramaElement:a?V(i):void 0}},prepare:H()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:H()}}}),XC=YC.actions,ZC=XC.registerZIndexPortal,QC=XC.unregisterZIndexPortal,$C=XC.registerZIndexPortalElement,ew=XC.unregisterZIndexPortalElement,tw=YC.reducer;function nw(e){var t=e.zIndex,n=e.children,r=vc()&&t!==void 0&&t!==0,i=Os(),s=(0,a.useRef)(void 0),c=(0,a.useRef)(new Set),l=R(),u=z(e=>zC(e,t,i));if((0,a.useLayoutEffect)(()=>{if(!r){var e=c.current;e.forEach(e=>{l(QC({zIndex:e}))}),e.clear(),s.current=void 0;return}if(c.current.has(t)||(l(ZC({zIndex:t})),c.current.add(t)),u){s.current=u;var n=c.current;n.forEach(e=>{e!==t&&(l(QC({zIndex:e})),n.delete(e))})}},[l,t,r,u]),(0,a.useLayoutEffect)(()=>{var e=c.current;return()=>{e.forEach(e=>{l(QC({zIndex:e}))}),e.clear()}},[l]),!r)return n;var d=u??s.current;return d?(0,o.createPortal)(n,d):null}function rw(){return rw=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,a.useContext)(fw),mw=e(n(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!ae(n))return e[n]}},yw=Ha({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),bw=yw.reducer,xw=yw.actions.createEventEmitter;function Sw(e){return e.tooltip.syncInteraction}var Cw=Ha({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=V(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var n=t.payload,r=n.startIndex,i=n.endIndex;r!=null&&(e.dataStartIndex=r),i!=null&&(e.dataEndIndex=i)}}}),ww=Cw.actions,Tw=ww.setChartData,Ew=ww.setDataStartEndIndexes;ww.setComputedData;var Dw=Cw.reducer,Ow=[`x`,`y`];function kw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Aw(e){for(var t=1;te.rootProps.className);(0,a.useEffect)(()=>{if(e==null)return ge;var a=(a,c,l)=>{if(t!==l&&e===a){if(c.payload.active===!1){n(Zx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(r===`index`){var u;if(s&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,f=d.x,p=d.y,m=Pw(d,Ow),h=c.payload.sourceViewBox,g=h.x,_=h.y,v=h.width,y=h.height,b=Aw(Aw({},m),{},{x:s.x+(v?(f-g)/v:0)*s.width,y:s.y+(y?(p-_)/y:0)*s.height});n(Aw(Aw({},c),{},{payload:Aw(Aw({},c.payload),{},{coordinate:b})}))}else n(c);return}if(i!=null){var x;typeof r==`function`?x=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(x=i.find(e=>String(e.value)===c.payload.label));var S=c.payload.coordinate;if(S==null||s==null){n(Zx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(x==null){n(Zx({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));return}var C=S.x,w=S.y,T=Math.min(C,s.x+s.width),E=Math.min(w,s.y+s.height),D={x:o===`horizontal`?x.coordinate:T,y:o===`horizontal`?E:x.coordinate};n(Zx({active:c.payload.active,coordinate:D,dataKey:c.payload.dataKey,index:String(x.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return hw.on(gw,a),()=>{hw.off(gw,a)}},[c,n,t,e,r,i,o,s])}function Lw(){var e=z(Lf),t=z(zf),n=R();(0,a.useEffect)(()=>{if(e==null)return ge;var r=(r,i,a)=>{t!==a&&e===r&&n(Ew(i))};return hw.on(_w,r),()=>{hw.off(_w,r)}},[n,t,e])}function Rw(){var e=R();(0,a.useEffect)(()=>{e(xw())},[e]),Iw(),Lw()}function zw(e,t,n,r,i,o){var s=z(n=>kC(n,e,t)),c=z(tC),l=z(zf),u=z(Lf),d=z(Rf),f=z(Sw)?.sourceViewBox!=null,p=uc();(0,a.useEffect)(()=>{if(!f&&u!=null&&l!=null){var e=Zx({active:o,coordinate:n,dataKey:s,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:p,graphicalItemId:c});hw.emit(gw,u,e,l)}},[f,n,s,c,i,r,l,u,d,o,p])}function Bw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vw(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n{C(Kx({shared:v,trigger:y,axisId:S,active:n,defaultIndex:w}))},[C,v,y,S,n,w]);var T=uc(),E=Fl(),D=Lx(v),O=z(e=>FC(e,D,y,w))??{},k=O.activeIndex,A=O.isActive,j=z(e=>PC(e,D,y,w)),M=z(e=>NC(e,D,y,w)),N=z(e=>MC(e,D,y,w)),ee=j,te=pw(),ne=n??A??!1,re=Gw(Lr([ee,ne]),2),P=re[0],ie=re[1],ae=D===`axis`?M:void 0;zw(D,y,N,ae,k,ne);var oe=x??te;if(oe==null||T==null||D==null)return null;var F=ee??$w;ne||(F=$w),l&&F.length&&(F=Kn(F.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),f,Zw));var se=F.length>0,ce=Vw(Vw({},t),{},{payload:F,label:ae,active:ne,activeIndex:k,coordinate:N,accessibilityLayer:E}),le=a.createElement(Pl,{allowEscapeViewBox:r,animationDuration:i,animationEasing:s,isAnimationActive:u,active:ne,coordinate:N,hasPayload:se,offset:d,position:p,reverseDirection:m,useTranslate3d:h,viewBox:T,wrapperStyle:g,lastBoundingBox:P,innerRef:ie,hasPortalFromProps:!!x},Qw(c,ce));return a.createElement(a.Fragment,null,(0,o.createPortal)(le,oe),ne&&a.createElement(dw,{cursor:_,tooltipEventType:D,coordinate:N,payload:F,index:k}))}function nT(e,t,n){return(t=rT(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rT(e){var t=iT(e,`string`);return typeof t==`symbol`?t:t+``}function iT(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var aT=class{constructor(e){nT(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function oT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sT(e){for(var t=1;t{try{var n=document.getElementById(mT);n||(n=document.createElement(`span`),n.setAttribute(`id`,mT),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,pT,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},_T=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||pl.isSsr)return{width:0,height:0};if(!dT.enableCache)return gT(e,t);var n=hT(e,t),r=fT.get(n);if(r)return r;var i=gT(e,t);return fT.set(n,i),i},vT;function yT(e,t){return wT(e)||CT(e,t)||xT(e,t)||bT()}function bT(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xT(e,t){if(e){if(typeof e==`string`)return ST(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ST(e,t):void 0}}function ST(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.children,n=e.breakAll,r=e.style;try{var i=[];return I(t)||(i=n?t.toString().split(``):t.toString().split(tE)),{wordsWithComputedWidth:i.map(e=>({word:e,width:_T(e,r).width})),spaceWidth:n?0:_T(`\xA0`,r).width}}catch{return null}};function rE(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}function iE(e){return I(e)||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var aE=(e,t,n,r)=>e.reduce((e,i)=>{var a=i.word,o=i.width,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+ne.reduce((e,t)=>e.width>t.width?e:t),sE=`…`,cE=(e,t,n,r,i,a,o,s)=>{var c=nE({breakAll:n,style:r,children:e.slice(0,t)+sE});if(!c)return[!1,[]];var l=aE(c.wordsWithComputedWidth,a,o,s);return[l.length>i||oE(l).width>Number(a),l]},lE=(e,t,n,r,i)=>{var a=e.maxLines,o=e.children,s=e.style,c=e.breakAll,l=F(a),u=String(o),d=aE(t,r,n,i);if(!l||i||!(d.length>a||oE(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),_=YT(cE(u,g-1,c,s,a,r,n,i),2),v=_[0],y=_[1],b=YT(cE(u,g,c,s,a,r,n,i),1)[0];if(!v&&!b&&(f=g+1),v&&b&&(p=g-1),!v&&b){h=y;break}m++}return h||d},uE=e=>[{words:I(e)?[]:e.toString().split(tE),width:void 0}],dE=e=>{var t=e.width,n=e.scaleToFit,r=e.children,i=e.style,a=e.breakAll,o=e.maxLines;if((t||n)&&!pl.isSsr){var s,c,l=nE({breakAll:a,children:r,style:i});if(l){var u=l.wordsWithComputedWidth,d=l.spaceWidth;s=u,c=d}else return uE(r);return lE({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return uE(r)},fE=`#808080`,pE={angle:0,breakAll:!1,capHeight:`0.71em`,fill:fE,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},mE=(0,a.forwardRef)((e,t)=>{var n=Pt(e,pE),r=n.x,i=n.y,o=n.lineHeight,s=n.capHeight,l=n.fill,u=n.scaleToFit,d=n.textAnchor,f=n.verticalAnchor,p=qT(n,WT),m=(0,a.useMemo)(()=>dE({breakAll:p.breakAll,children:p.children,maxLines:p.maxLines,scaleToFit:u,style:p.style,width:p.width}),[p.breakAll,p.children,p.maxLines,u,p.style,p.width]),h=p.dx,_=p.dy,v=p.angle,y=p.className,b=p.breakAll,x=qT(p,GT);if(!se(r)||!se(i)||m.length===0)return null;var S=Number(r)+(F(h)?h:0),C=Number(i)+(F(_)?_:0);if(!U(S)||!U(C))return null;var w;switch(f){case`start`:w=UT(`calc(${s})`);break;case`middle`:w=UT(`calc(${(m.length-1)/2} * -${o} + (${s} / 2))`);break;default:w=UT(`calc(${m.length-1} * -${o})`)}var T=[],E=m[0];if(u&&E!=null){var D=E.width,O=p.width;T.push(`scale(${F(O)&&F(D)?O/D:1})`)}return v&&T.push(`rotate(${v}, ${S}, ${C})`),T.length&&(x.transform=T.join(` `)),a.createElement(`text`,KT({},g(x),{ref:t,x:S,y:C,className:c(`recharts-text`,y),textAnchor:d,fill:l.includes(`url`)?fE:l}),m.map((e,t)=>{var n=e.words.join(b?``:` `);return a.createElement(`tspan`,{x:S,dy:t===0?w:o,key:`${n}-${t}`},n)}))});mE.displayName=`Text`;var hE=[`labelRef`],gE=[`content`];function _E(e,t){if(e==null)return{};var n,r,i=vE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var t=e.x,n=e.y,r=e.upperWidth,i=e.lowerWidth,o=e.width,s=e.height,c=e.children,l=(0,a.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:o,height:s}),[t,n,r,i,o,s]);return a.createElement(TE.Provider,{value:l},c)},DE=()=>{var e=(0,a.useContext)(TE),t=uc();return e||(t?_e(t):void 0)},OE=(0,a.createContext)(null),kE=()=>{var e=(0,a.useContext)(OE),t=z(sp);return e||t},AE=e=>{var t=e.value,n=e.formatter,r=I(e.children)?t:e.children;return typeof n==`function`?n(r):r},jE=e=>e!=null&&typeof e==`function`,ME=(e,t)=>ie(t-e)*Math.min(Math.abs(t-e),360),NE=(e,t,n,r,i)=>{var o=e.offset,s=e.className,l=i.cx,u=i.cy,d=i.innerRadius,f=i.outerRadius,p=i.startAngle,m=i.endAngle,h=i.clockWise,g=(d+f)/2,_=ME(p,m),v=_>=0?1:-1,y,b;switch(t){case`insideStart`:y=p+v*o,b=h;break;case`insideEnd`:y=m-v*o,b=!h;break;case`end`:y=m+v*o,b=h;break;default:throw Error(`Unsupported position ${t}`)}b=_<=0?b:!b;var x=Od(l,u,g,y),S=Od(l,u,g,y+(b?1:-1)*359),C=`M${x.x},${x.y} + A${g},${g},0,1,${+!b}, + ${S.x},${S.y}`,w=I(e.id)?le(`recharts-radial-line-`):e.id;return a.createElement(`text`,wE({},r,{dominantBaseline:`central`,className:c(`recharts-radial-bar-label`,s)}),a.createElement(`defs`,null,a.createElement(`path`,{id:w,d:C})),a.createElement(`textPath`,{xlinkHref:`#${w}`},n))},PE=(e,t,n)=>{var r=e.cx,i=e.cy,a=e.innerRadius,o=e.outerRadius,s=(e.startAngle+e.endAngle)/2;if(n===`outside`){var c=Od(r,i,o+t,s),l=c.x;return{x:l,y:c.y,textAnchor:l>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var u=Od(r,i,(a+o)/2,s);return{x:u.x,y:u.y,textAnchor:`middle`,verticalAnchor:`middle`}},FE=e=>e!=null&&`cx`in e&&F(e.cx),IE={angle:0,offset:5,zIndex:Vf.label,position:`middle`,textBreakAll:!1};function LE(e){if(!FE(e))return e;var t=e.cx,n=e.cy,r=e.outerRadius,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function RE(e){var t=Pt(e,IE),n=t.viewBox,r=t.parentViewBox,i=t.position,o=t.value,s=t.children,l=t.content,u=t.className,d=u===void 0?``:u,f=t.textBreakAll,p=t.labelRef,m=kE(),h=DE(),_=n==null?i===`center`?h:m??h:FE(n)?n:_e(n),v,y,b=LE(_);if(!_||I(o)&&I(s)&&!(0,a.isValidElement)(l)&&typeof l!=`function`)return null;var x=FE(_)&&(i===`insideStart`||i===`insideEnd`||i===`end`);if(FE(_))x||(y=PE(_,t.offset,t.position));else if(b){var S=Ce({viewBox:b,position:i,offset:t.offset,parentViewBox:FE(r)?void 0:r,clamp:!0});y=bE(bE({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width===void 0?{}:{width:S.width}),S.height===void 0?{}:{height:S.height})}var C=bE(bE(bE(bE({},y?.x===void 0?{}:{x:y.x}),y?.y===void 0?{}:{y:y.y}),t),{},{viewBox:_});if((0,a.isValidElement)(l)){C.labelRef;var w=_E(C,hE);return(0,a.cloneElement)(l,w)}if(typeof l==`function`){C.content;var T=_E(C,gE);if(v=(0,a.createElement)(l,T),(0,a.isValidElement)(v))return v}else v=AE(t);var E=g(t);return x&&FE(_)?NE(t,i,v,E,_):y==null?null:a.createElement(nw,{zIndex:t.zIndex},a.createElement(mE,wE({ref:p,className:c(`recharts-label`,d)},E,y,{textAnchor:rE(E.textAnchor)?E.textAnchor:y.textAnchor,breakAll:f}),v))}RE.displayName=`Label`;var zE=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?a.createElement(RE,wE({key:`label-implicit`},r)):se(e)?a.createElement(RE,wE({key:`label-implicit`,value:e},r)):(0,a.isValidElement)(e)?e.type===RE?(0,a.cloneElement)(e,bE({key:`label-implicit`},r)):a.createElement(RE,wE({key:`label-implicit`,content:e},r)):jE(e)?a.createElement(RE,wE({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?a.createElement(RE,wE({},e,{key:`label-implicit`},r)):null};function BE(e){var t=e.label,n=e.labelRef;return zE(t,DE(),n)||null}var VE=[`valueAccessor`],HE=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function UE(){return UE=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(iE(t))return t},qE=(0,a.createContext)(void 0),JE=qE.Provider,YE=(0,a.createContext)(void 0);YE.Provider;function XE(){return(0,a.useContext)(qE)}function ZE(){return(0,a.useContext)(YE)}function QE(e){var t=e.valueAccessor,n=t===void 0?KE:t,r=WE(e,VE),i=r.dataKey;r.clockWise;var o=r.id,s=r.textBreakAll,c=r.zIndex,l=WE(r,HE),u=XE(),d=ZE(),f=u||d;return!f||!f.length?null:a.createElement(nw,{zIndex:c??Vf.label},a.createElement(D,{className:`recharts-label-list`},f.map((e,t)=>{var c=I(i)?n(e,t):W(e.payload,i),u=I(o)?{}:{id:`${o}-${t}`};return a.createElement(RE,UE({key:`label-${t}`},g(e),l,u,{fill:r.fill??e.fill,parentViewBox:e.parentViewBox,value:c,textBreakAll:s,viewBox:e.viewBox,index:t,zIndex:0}))})))}QE.displayName=`LabelList`;function $E(e){var t=e.label;return t?t===!0?a.createElement(QE,{key:`labelList-implicit`}):a.isValidElement(t)||jE(t)?a.createElement(QE,{key:`labelList-implicit`,content:t}):typeof t==`object`?a.createElement(QE,UE({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}function eD(){return eD=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,n=e.cy,r=e.r,i=e.className,o=c(`recharts-dot`,i);return F(t)&&F(n)&&F(r)?a.createElement(`circle`,eD({},m(e),Et(e),{className:o,cx:t,cy:n,r})):null},nD=Ha({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=V(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=V(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),rD=nD.actions;rD.addRadiusAxis,rD.removeRadiusAxis,rD.addAngleAxis,rD.removeAngleAxis;var iD=nD.reducer;function aD(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}var oD=e=>e&&typeof e==`object`&&`clipDot`in e?!!e.clipDot:!0;function sD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cD(e){for(var t=1;t{r||(i.current===null?n(Ux(t)):i.current!==t&&n(Wx({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,a.useLayoutEffect)(()=>()=>{i.current&&=(n(Gx(i.current)),null)},[n]),null}function yD(e){var t=e.legendPayload,n=R(),r=Os(),i=(0,a.useRef)(null);return(0,a.useLayoutEffect)(()=>{r||(i.current===null?n(Sc(t)):i.current!==t&&n(Cc({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,a.useLayoutEffect)(()=>()=>{i.current&&=(n(wc(i.current)),null)},[n]),null}function bD(e,t){return TD(e)||wD(e,t)||SD(e,t)||xD()}function xD(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function SD(e,t){if(e){if(typeof e==`string`)return CD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?CD(e,t):void 0}}function CD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n2&&arguments[2]!==void 0?arguments[2]:[],r=[];for(var i of n)r.push({status:`removed`,prev:i});for(var a=0;ae[Math.floor(r*n)]),t)}function kD(e,t){return DD(t.map((t,n)=>e[n]),t)}function AD(e,t){for(var n=new Map,r=0;r{var a=n(e,t);if(a!=null){var o=r.get(a);if(o!==void 0)return i.add(a),o}}),o=[];for(var s of r){var c=bD(s,2),l=c[0],u=c[1];i.has(l)||o.push(u)}return DD(a,t,o)}function MD(e,t,n){return t==null?null:e==null?t.map(e=>({status:`added`,next:e})):n===`index`?OD(e,t):n===`append`?kD(e,t):jD(e,t,n)}function ND(e,t){var n=(0,a.useRef)(e),r=(0,a.useRef)(t.current),i=(0,a.useRef)(!0);n.current!==e&&(n.current=e,r.current=t.current,i.current=!1);var o=(0,a.useCallback)(function(e,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(n===0){i.current=!0;return}n===1&&(r.current=e),n>0&&i.current&&a&&(t.current=e)},[t]);return{startValue:r.current,syncStepValue:o}}function PD(e,t){return zD(e)||RD(e,t)||ID(e,t)||FD()}function FD(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ID(e,t){if(e){if(typeof e==`string`)return LD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?LD(e,t):void 0}}function LD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{typeof e==`function`&&e(),i(!0)},[e]),handleAnimationEnd:(0,a.useCallback)(()=>{typeof t==`function`&&t(),i(!1)},[t])}}function VD(e){var t=e.animationInput,n=e.animationIdPrefix,r=e.items,i=e.previousItemsRef,o=e.isAnimationActive,s=e.animationBegin,c=e.animationDuration,l=e.animationEasing,u=e.onAnimationStart,d=e.onAnimationEnd,f=e.animationInterpolateFn,p=e.animationMatchBy,m=e.shouldUpdatePreviousRef,h=e.children,g=e.layout,_=Hu(t,n),v=ND(_,i),y=v.startValue??null,b=MD(y,r,p??ED);return a.createElement(Vu,{animationId:_,begin:s,duration:c,isActive:o,easing:l,onAnimationEnd:d,onAnimationStart:u,key:_},e=>{var t=y==null,n=r==null?r:f(b,e,g),i=m?m(e):e>0;return v.syncStepValue(n,e,i),n==null?null:h(n,e,t)})}function HD(e,t){return qD(e)||KD(e,t)||WD(e,t)||UD()}function UD(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WD(e,t){if(e){if(typeof e==`string`)return GD(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?GD(e,t):void 0}}function GD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nHD(a.useState(()=>le(`uid-`)),1)[0]);function YD(e,t){var n=JD();return t||(e?`${e}-${n}`:n)}var XD=(0,a.createContext)(void 0),ZD=e=>{var t=e.id,n=e.type,r=e.children,i=YD(`recharts-${n}`,t);return a.createElement(XD.Provider,{value:i},r(i))},QD=Ha({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(V(t.payload))},prepare:H()},replaceCartesianGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ma(e).cartesianItems.indexOf(V(r));a>-1&&(e.cartesianItems[a]=V(i))},prepare:H()},removeCartesianGraphicalItem:{reducer(e,t){var n=ma(e).cartesianItems.indexOf(V(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:H()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(V(t.payload))},prepare:H()},removePolarGraphicalItem:{reducer(e,t){var n=ma(e).polarItems.indexOf(V(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:H()},replacePolarGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=ma(e).polarItems.indexOf(V(r));a>-1&&(e.polarItems[a]=V(i))},prepare:H()}}}),$D=QD.actions,eO=$D.addCartesianGraphicalItem,tO=$D.replaceCartesianGraphicalItem,nO=$D.removeCartesianGraphicalItem;$D.addPolarGraphicalItem,$D.removePolarGraphicalItem,$D.replacePolarGraphicalItem;var rO=QD.reducer,iO=(0,a.memo)(e=>{var t=R(),n=(0,a.useRef)(null);return(0,a.useLayoutEffect)(()=>{n.current===null?t(eO(e)):n.current!==e&&t(tO({prev:n.current,next:e})),n.current=e},[t,e]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(nO(n.current)),null)},[t]),null}),aO=[`points`];function oO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sO(e){for(var t=1;t{var c=sO(sO(sO({r:3},s),p),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:o,value:e.value,payload:e.payload,points:t});return a.createElement(mO,{key:`dot-${r}`,option:n,dotProps:c,className:i})}),h={};return c&&l!=null&&(h.clipPath=`url(#clipPath-${f?``:`dots-`}${l})`),a.createElement(nw,{zIndex:d},a.createElement(D,dO({className:r},h),m))}function _O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vO(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),ss,cs],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),PO=()=>z(NO),FO=()=>z(aC);function IO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LO(e){for(var t=1;t{var t=e.point,n=e.childIndex,r=e.mainColor,i=e.activeDot,o=e.dataKey,s=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var c=LO(LO(LO({},{index:n,dataKey:o,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),h(i)),Et(i)),l=(0,a.isValidElement)(i)?(0,a.cloneElement)(i,c):typeof i==`function`?i(c):a.createElement(tD,c);return a.createElement(D,{className:`recharts-active-dot`,clipPath:s},l)};function HO(e){var t=e.points,n=e.mainColor,r=e.activeDot,i=e.itemDataKey,o=e.clipPath,s=e.zIndex,c=s===void 0?Vf.activeDot:s,l=z(QS),u=FO();if(t==null||u==null)return null;var d=t.find(e=>u.includes(e.payload));return I(d)?null:a.createElement(nw,{zIndex:c},a.createElement(VO,{point:d,childIndex:Number(l),mainColor:n,dataKey:i,activeDot:r,clipPath:o}))}var UO=e=>{var t=e.chartData,n=R(),r=Os();return(0,a.useEffect)(()=>r?()=>{}:(n(Tw(t)),()=>{n(Tw(void 0))}),[t,n,r]),null},WO={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},GO=Ha({name:`brush`,initialState:WO,reducers:{setBrushSettings(e,t){return t.payload==null?WO:t.payload}}});GO.actions.setBrushSettings;var KO=GO.reducer;function qO(e){return(e%180+180)%180}var JO=function(e){var t=e.width,n=e.height,r=qO(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=ma(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=ma(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(V(t.payload))},removeLine:(e,t)=>{var n=ma(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),XO=YO.actions;XO.addDot,XO.removeDot,XO.addArea,XO.removeArea,XO.addLine,XO.removeLine;var ZO=YO.reducer;function QO(e,t){return rk(e)||nk(e,t)||ek(e,t)||$O()}function $O(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ek(e,t){if(e){if(typeof e==`string`)return tk(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?tk(e,t):void 0}}function tk(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var t=e.children,n=QO((0,a.useState)(`${le(`recharts`)}-clip`),1)[0],r=PO();if(r==null)return null;var i=r.x,o=r.y,s=r.width,c=r.height;return a.createElement(ik.Provider,{value:n},a.createElement(`defs`,null,a.createElement(`clipPath`,{id:n},a.createElement(`rect`,{x:i,y:o,height:c,width:s}))),t)};function ok(){}function sk(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:Object.prototype.toString.call(e)===`[object Object]`}function ck(e,t,n){return lk(e,t,void 0,void 0,void 0,void 0,n)}function lk(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return uk(e,t,a,o)}return uk(e,t,a,o)}function uk(e,t,n,r){if(Object.is(e,t))return!0;let i=Ht(e),a=Ht(t);if(i===`[object Arguments]`&&(i=tn),a===`[object Arguments]`&&(a=tn),i!==a)return!1;switch(i){case Wt:return e.toString()===t.toString();case Gt:return Cn(e.valueOf(),t.valueOf());case Kt:case Yt:case Jt:return Object.is(e.valueOf(),t.valueOf());case Ut:return e.source===t.source&&e.flags===t.flags;case $t:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case Xt:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!lk(a,t.get(i),i,e,t,n,r))return!1;return!0;case Zt:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;olk(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case Qt:case an:case on:case sn:case cn:case ln:case un:case dn:case fn:case pn:case mn:case hn:if(_n(e)!==_n(t)||e.length!==t.length)return!1;for(let i=0;ie*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function gk(e,t){return fk(e,t+1)}function _k(e,t,n,r,i){for(var a=(r||[]).slice(),o=t.start,s=t.end,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:fk(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||hk(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function vk(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var o=t.start,s=t.end,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||hk(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=bk(bk({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=bk(bk({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&hk(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=bk(bk({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function Tk(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,c=t.start,l=t.end;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=bk(bk({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&hk(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=bk(bk({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=bk(bk({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=bk(bk({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&hk(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=bk(bk({},a),{},{isShow:!0}))},h=0;h{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?pk(_T(i,{fontSize:t,letterSpacing:n}),m,d):_T(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?ie(_.coordinate-g.coordinate):1,y=mk(a,v,p);return c===`equidistantPreserveStart`?_k(v,y,h,i,o):c===`equidistantPreserveEnd`?vk(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?Tk(v,y,h,i,o,c===`preserveStartEnd`):wk(v,y,h,i,o),f.filter(e=>e.isShow))}var Dk=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>l&&(l=t.width)}});var u=n?n.getBoundingClientRect().width:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},Ok=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.height>l&&(l=t.height)}});var u=n?n.getBoundingClientRect().height:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},kk=Ha({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId,a=n.ticks;e[r][i]=V(a)},removeRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId;delete e[r][i]}}}),Ak=kk.actions,jk=Ak.setRenderedTicks,Mk=Ak.removeRenderedTicks,Nk=kk.reducer,Pk=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function Fk(e,t){return Bk(e)||zk(e,t)||Lk(e,t)||Ik()}function Ik(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lk(e,t){if(e){if(typeof e==`string`)return Rk(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Rk(e,t):void 0}}function Rk(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{if(r!=null&&n!=null){var e=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),a=o.current;a!=null&&a.axisId===r&&a.axisType===n&&dk(a.ticks,e)||(o.current={ticks:e,axisId:r,axisType:n},i(jk({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,a.useEffect)(()=>r==null||n==null?ge:()=>{i(Mk({axisId:r,axisType:n}))},[i,r,n]),null}var tA=(0,a.forwardRef)((e,t)=>{var n=e.ticks,r=n===void 0?[]:n,i=e.tick,o=e.tickLine,s=e.stroke,l=e.tickFormatter,u=e.unit,d=e.padding,f=e.tickTextProps,p=e.orientation,g=e.mirror,_=e.x,v=e.y,y=e.width,b=e.height,x=e.tickSize,S=e.tickMargin,C=e.fontSize,w=e.letterSpacing,T=e.getTicksConfig,E=e.events,O=e.axisType,k=e.axisId,A=Ek($($({},T),{},{ticks:r}),C,w),j=m(T),M=h(i),N=rE(j.textAnchor)?j.textAnchor:Zk(p,g),te=Qk(p,g),ne={};typeof o==`object`&&(ne=o);var re=$($({},j),{},{fill:`none`},ne),P=A.map(e=>$({entry:e},Xk(e,_,v,y,b,p,x,g,S))),ie=P.map(e=>{var t=e.entry,n=e.line;return a.createElement(D,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},o&&a.createElement(`line`,Uk({},re,n,{className:c(`recharts-cartesian-axis-tick-line`,ee(o,`className`))})))}),ae=P.map((e,t)=>{var n=e.entry,r=e.tick,o=$($({},$($($($({verticalAnchor:te},j),{},{textAnchor:N,stroke:`none`,fill:s},r),{},{index:t,payload:n,visibleTicksCount:A.length,tickFormatter:l,padding:d},f),{},{angle:f?.angle??j.angle??0})),M);return a.createElement(D,Uk({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},Ot(E,n,t)),i&&a.createElement($k,{option:i,tickProps:o,value:`${typeof l==`function`?l(n.value,t):n.value}${u||``}`}))});return a.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${O}-ticks`},a.createElement(eA,{ticks:A,axisId:k,axisType:O}),ae.length>0&&a.createElement(nw,{zIndex:Vf.label},a.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${O}-tick-labels`,ref:t},ae)),ie.length>0&&a.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${O}-tick-lines`},ie))}),nA=(0,a.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,i=e.height,o=e.className,s=e.hide,l=e.ticks,u=e.axisType,d=e.axisId,f=Vk(e,Pk),p=Fk((0,a.useState)(``),2),h=p[0],g=p[1],_=Fk((0,a.useState)(``),2),v=_[0],y=_[1],b=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>Dk({ticks:b.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>Ok({ticks:b.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var x=(0,a.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);b.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==h||a!==v)&&(g(i),y(a))}}},[h,v]);return s||r!=null&&r<=0||i!=null&&i<=0?null:a.createElement(nw,{zIndex:e.zIndex},a.createElement(D,{className:c(`recharts-cartesian-axis`,o)},a.createElement(Yk,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:m(e)}),a.createElement(tA,{ref:x,axisType:u,events:f,fontSize:h,getTicksConfig:e,height:e.height,letterSpacing:v,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:d}),a.createElement(EE,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},a.createElement(BE,{label:e.label,labelRef:e.labelRef}),e.children)))}),rA=a.forwardRef((e,t)=>{var n=Pt(e,Jk);return a.createElement(nA,Uk({},n,{ref:t}))});rA.displayName=`CartesianAxis`;var iA=Ha({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),aA=iA.actions;aA.addErrorBar,aA.replaceErrorBar,aA.removeErrorBar;var oA=iA.reducer;function sA(e,t){var n=z(t=>Ny(t,e)),r=z(e=>Fy(e,t)),i=n?.allowDataOverflow??X.allowDataOverflow,a=r?.allowDataOverflow??Z.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function cA(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=PO(),o=sA(t,n),s=o.needClipX,c=o.needClipY,l=o.needClip,u=z(e=>ix(e,t,!1)),d=z(e=>ax(e,n,!1));if(!l||!i)return null;var f=i.x,p=i.y,m=i.width,h=i.height,g=s&&u?Math.min(u[0],u[1]):f-m/2,_=c&&d?Math.min(d[0],d[1]):p-h/2,v=s&&u?Math.abs(u[1]-u[0]):m*2,y=c&&d?Math.abs(d[1]-d[0]):h*2;return a.createElement(`clipPath`,{id:`clipPath-${r}`},a.createElement(`rect`,{x:g,y:_,width:v,height:y}))}function lA(e){var t=h(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}function uA(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function dA(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var fA=(e,t,n)=>jx(e,`xAxis`,uA(e,t),n),pA=(e,t,n)=>Ax(e,`xAxis`,uA(e,t),n),mA=(e,t,n)=>jx(e,`yAxis`,dA(e,t),n),hA=(e,t,n)=>Ax(e,`yAxis`,dA(e,t),n),gA=B([G,fA,mA,pA,hA],(e,t,n,r,i)=>Ko(e,`xAxis`)?ns(t,r,!1):ns(n,i,!1)),_A=B([Uy,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),vA=e=>Ko(G(e),`xAxis`)?`yAxis`:`xAxis`,yA=(e,t)=>vA(e)===`yAxis`?dA(e,t):uA(e,t),bA=(e,t,n)=>mb(e,vA(e),yA(e,t),n),xA=B([G,fA,mA,pA,hA,B([_A,bA],(e,t)=>{if(e!=null&&t!=null){var n=e.stackId,r=lp(e);if(n!=null&&r!=null){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),af,gA,_A,Bf,B([_A,bA],(e,t)=>{if(e!=null&&e.stackId!=null&&t!=null){var n=t[e.stackId];if(n!=null)return n.graphicalItems.map(e=>e.dataKey).filter(he)}})],(e,t,n,r,i,a,o,s,c,l,u)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var m=c.data,h=m&&m.length>0?m:d?.slice(f,p+1);if(h!=null)return ej({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:f,areaSettings:c,stackedData:a,displayedData:h,chartBaseValue:l,bandSize:s,stackDataKeys:u})}}),SA=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`layout`,`isRange`,`stroke`,`connectNulls`],CA=[`id`,`baseLine`];function wA(){return wA=Object.assign?Object.assign.bind():function(e){for(var t=1;te.y||0));return F(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(e=>e.y||0),l)),F(l)?a.createElement(`rect`,{x:oe.x||0));return F(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(e=>e.x||0),l)),F(l)?a.createElement(`rect`,{x:0,y:oe==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>e.status===`matched`?[LA(LA({},e.next),{},{x:fe(e.prev.x,e.next.x,t),y:fe(e.prev.y,e.next.y,t)})]:e.status===`added`?[e.next]:[]),connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,shape:AA,xAxisId:0,yAxisId:0,zIndex:Vf.area};function HA(e,t){return e&&e!==`none`?e:t}var UA=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.fill,a=e.legendType;return[{inactive:e.hide,dataKey:t,type:a,color:HA(r,i),value:is(n,t),payload:e}]},WA=a.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,o=e.fill,s=e.name,c=e.hide,l=e.unit,u=e.formatter,d=e.tooltipType,f=e.id,p={dataDefinedOnItem:n,getPosition:ge,settings:{stroke:r,strokeWidth:i,fill:o,dataKey:t,nameKey:void 0,name:is(s,t),hide:c,type:d,color:HA(r,o),unit:l,formatter:u,graphicalItemId:f}};return a.createElement(vD,{tooltipEntrySettings:p})});function GA(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.needClip,o=r.dot,s=r.dataKey,c=m(r);return a.createElement(gO,{points:n,dot:o,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:s,baseProps:c,needClip:i,clipPathId:t})}function KA(e){var t=e.showLabels,n=e.children,r=e.points.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return LA(LA({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return a.createElement(JE,{value:t?r:void 0},n)}function qA(e){var t=e.points,n=e.baseLine,r=e.needClip,i=e.clipPathId,o=e.props,s=e.animationElapsedTime,c=e.isAnimating,l=e.isEntrance,u=o.layout,d=o.type,f=o.stroke,p=o.connectNulls,m=o.isRange,h=o.shape,_=o.id,v=PA(o,jA),y=LA(LA({},g(v)),{},{id:_,points:t,connectNulls:p,type:d,baseLine:n,layout:u,stroke:f,isRange:m,animationElapsedTime:s,isAnimating:c,isEntrance:l});return a.createElement(a.Fragment,null,t?.length>1&&a.createElement(D,{clipPath:r?`url(#clipPath-${i})`:void 0},a.createElement(_D,{option:h,DefaultShape:VA.shape,shapeProps:y})),a.createElement(GA,{points:t,props:v,clipPathId:i}))}function JA(e,t,n){return F(e)?fe(F(t)?t:void 0,e,n):I(e)||ae(e)?fe(F(t)?t:void 0,0,n):e}function YA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=e.previousPointsRef,o=e.previousBaselineRef,s=r.points,c=r.baseLine,l=r.isAnimationActive,u=r.animationBegin,d=r.animationDuration,f=r.animationEasing,p=r.animationMatchBy,m=r.animationInterpolateFn,h=(0,a.useMemo)(()=>({points:s,baseLine:c}),[s,c]),g=ND(h,o),_=gc(),v=BD(r.onAnimationStart,r.onAnimationEnd),y=v.isAnimating,b=v.handleAnimationStart,x=v.handleAnimationEnd,S=g.startValue;if(_==null)return null;var C=Array.isArray(c)&&Array.isArray(S)?MD(S,c,p):Array.isArray(c)?MD(null,c,p):null;return a.createElement(VD,{animationInput:h,animationIdPrefix:`recharts-area-`,items:s,previousItemsRef:i,isAnimationActive:l,animationBegin:u,animationDuration:d,animationEasing:f,onAnimationStart:b,onAnimationEnd:x,animationInterpolateFn:m,animationMatchBy:p,layout:_},(e,i,o)=>{var l=i===1?c:Array.isArray(c)?m(C,i,_):o?c:JA(c,S,i);return g.syncStepValue(l,i),a.createElement(KA,{showLabels:!y,points:s},r.children,a.createElement(qA,{points:e,baseLine:l,needClip:t,clipPathId:n,props:r,animationElapsedTime:i,isAnimating:y||i<1,isEntrance:o}),a.createElement($E,{label:r.label}))})}function XA(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=(0,a.useRef)(null),o=(0,a.useRef)();return a.createElement(YA,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:o})}var ZA=class extends a.PureComponent{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,o=e.top,s=e.left,l=e.needClip,u=e.xAxisId,d=e.yAxisId,f=e.width,p=e.height,m=e.id,h=e.baseLine,g=e.zIndex;if(t)return null;var _=c(`recharts-area`,i),v=m,y=lA(n),b=y.r,x=y.strokeWidth,S=oD(n),C=b*2+x,w=l?`url(#clipPath-${S?``:`dots-`}${v})`:void 0;return a.createElement(nw,{zIndex:g},a.createElement(D,{className:_},l&&a.createElement(`defs`,null,a.createElement(cA,{clipPathId:v,xAxisId:u,yAxisId:d}),!S&&a.createElement(`clipPath`,{id:`clipPath-dots-${v}`},a.createElement(`rect`,{x:s-C/2,y:o-C/2,width:f+C,height:p+C}))),a.createElement(XA,{needClip:l,clipPathId:v,props:this.props})),a.createElement(HO,{points:r,mainColor:HA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}),this.props.isRange&&Array.isArray(h)&&a.createElement(HO,{points:h,mainColor:HA(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:w}))}};function QA(e){var t=e.activeDot,n=e.animationBegin,r=e.animationDuration,i=e.animationEasing,o=e.connectNulls,s=e.dot,c=e.fill,l=e.fillOpacity,u=e.hide,d=e.isAnimationActive,f=e.legendType,p=e.stroke,m=e.xAxisId,h=e.yAxisId,g=PA(e,MA),_=hc(),v=SC(),y=sA(m,h).needClip,b=Os(),x=z(t=>xA(t,e.id,b))??{},S=x.points,C=x.isRange,w=x.baseLine,T=PO();if(_!==`horizontal`&&_!==`vertical`||T==null||v!==`AreaChart`&&v!==`ComposedChart`)return null;var E=T.height,D=T.width,O=T.x,k=T.y;return!S||!S.length?null:a.createElement(ZA,NA({},g,{activeDot:t,animationBegin:n,animationDuration:r,animationEasing:i,baseLine:w,connectNulls:o,dot:s,fill:c,fillOpacity:l,height:E,hide:u,layout:_,isAnimationActive:d,isRange:C,legendType:f,needClip:y,points:S,stroke:p,width:D,left:O,top:k,xAxisId:m,yAxisId:h}))}var $A=(e,t,n,r,i)=>{var a=n??t;if(F(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function ej(e){var t=e.areaSettings,n=t.connectNulls,r=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,s=e.chartBaseValue,c=e.xAxis,l=e.yAxis,u=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,h=e.stackDataKeys,g=a&&a.length,_=$A(o,s,r,c,l),v=o===`horizontal`,y=!1,b=u.map((e,t)=>{var r;if(g)r=a[d+t];else{var o=W(e,i);Array.isArray(o)?(r=o,y=!0):r=[_,o]}var s=r?.[1]??null,u=W(e,i),b=g&&u==null&&h!=null&&h.length>0&&h.every(t=>W(e,t)==null),x=s==null||g&&!n&&u==null||b;return v?{x:Xo({axis:c,ticks:f,bandSize:m,entry:e,index:t}),y:x?null:l.scale.map(s)??null,value:r,payload:e}:{x:x?null:c.scale.map(s)??null,y:Xo({axis:l,ticks:p,bandSize:m,entry:e,index:t}),value:r,payload:e}});return{points:b,baseLine:(g||y?b.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return v?{x:e.x,y:t!=null&&e.y!=null?l.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:c.scale.map(t)??null,y:e.y,payload:e.payload}}):v?l.scale.map(_):c.scale.map(_))??0,isRange:y}}function tj(e){var t=Pt(e,VA),n=Os();return a.createElement(ZD,{id:t.id,type:`area`},e=>a.createElement(a.Fragment,null,a.createElement(yD,{legendPayload:UA(t)}),a.createElement(WA,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),a.createElement(iO,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Yo(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),a.createElement(QA,NA({},t,{id:e}))))}var nj=a.memo(tj,Wc);nj.displayName=`Area`;var rj=[`domain`,`range`],ij=[`domain`,`range`];function aj(e,t){if(e==null)return{};var n,r,i=oj(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{if(s!=null)return mj(mj({},o),{},{type:s})},[o,s]);return(0,a.useLayoutEffect)(()=>{c!=null&&(n.current===null?t(wO(c)):n.current!==c&&t(TO({prev:n.current,next:c})),n.current=c)},[c,t]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(EO(n.current)),null)},[t]),null}var xj=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,o=(0,a.useRef)(null),s=(0,a.useRef)(null),l=z(Es),u=Os(),d=R(),f=`xAxis`,p=z(e=>kx(e,f,t,u)),m=z(e=>yx(e,t)),h=z(e=>wx(e,t)),g=z(e=>My(e,t));if((0,a.useLayoutEffect)(()=>{if(!(r!==`auto`||!m||jE(i)||(0,a.isValidElement)(i)||g==null)){var e=o.current;if(e){var n=e.getCalculatedHeight();Math.round(m.height)!==Math.round(n)&&d(jO({id:t,height:n}))}}},[p,m,d,i,t,r,g]),m==null||h==null||g==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var _=vj(e,uj);g.id,g.scale;var v=vj(g,dj);return a.createElement(rA,fj({},_,v,{ref:o,labelRef:s,x:h.x,y:h.y,width:m.width,height:m.height,className:c(`recharts-${f} ${f}`,n),viewBox:l,ticks:p,axisType:f,axisId:t}))},Sj={allowDataOverflow:X.allowDataOverflow,allowDecimals:X.allowDecimals,allowDuplicatedCategory:X.allowDuplicatedCategory,angle:X.angle,axisLine:Jk.axisLine,height:X.height,hide:!1,includeHidden:X.includeHidden,interval:X.interval,label:!1,minTickGap:X.minTickGap,mirror:X.mirror,orientation:X.orientation,padding:X.padding,reversed:X.reversed,scale:X.scale,tick:X.tick,tickCount:X.tickCount,tickLine:Jk.tickLine,tickSize:Jk.tickSize,type:X.type,niceTicks:X.niceTicks,xAxisId:0},Cj=a.memo(e=>{var t=Pt(e,Sj);return a.createElement(a.Fragment,null,a.createElement(bj,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),a.createElement(xj,t))},cj);Cj.displayName=`XAxis`;var wj=[`type`],Tj=[`dangerouslySetInnerHTML`,`ticks`,`scale`],Ej=[`id`,`scale`];function Dj(){return Dj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(s!=null)return kj(kj({},o),{},{type:s})},[s,o]);return(0,a.useLayoutEffect)(()=>{c!=null&&(n.current===null?t(DO(c)):n.current!==c&&t(OO({prev:n.current,next:c})),n.current=c)},[c,t]),(0,a.useLayoutEffect)(()=>()=>{n.current&&=(t(kO(n.current)),null)},[t]),null}function Ij(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,o=(0,a.useRef)(null),s=(0,a.useRef)(null),l=z(Es),u=Os(),d=R(),f=`yAxis`,p=z(e=>Ex(e,t)),m=z(e=>Tx(e,t)),h=z(e=>kx(e,f,t,u)),g=z(e=>Py(e,t));if((0,a.useLayoutEffect)(()=>{if(!(r!==`auto`||!p||jE(i)||(0,a.isValidElement)(i)||g==null)){var e=o.current;if(e){var n=e.getCalculatedWidth();Math.round(p.width)!==Math.round(n)&&d(AO({id:t,width:n}))}}},[h,p,d,i,t,r,g]),p==null||m==null||g==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var _=Nj(e,Tj);g.id,g.scale;var v=Nj(g,Ej);return a.createElement(rA,Dj({},_,v,{ref:o,labelRef:s,x:m.x,y:m.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:p.width,height:p.height,className:c(`recharts-${f} ${f}`,n),viewBox:l,ticks:h,axisType:f,axisId:t}))}var Lj={allowDataOverflow:Z.allowDataOverflow,allowDecimals:Z.allowDecimals,allowDuplicatedCategory:Z.allowDuplicatedCategory,angle:Z.angle,axisLine:Jk.axisLine,hide:!1,includeHidden:Z.includeHidden,interval:Z.interval,label:!1,minTickGap:Z.minTickGap,mirror:Z.mirror,orientation:Z.orientation,padding:Z.padding,reversed:Z.reversed,scale:Z.scale,tick:Z.tick,tickCount:Z.tickCount,tickLine:Jk.tickLine,tickSize:Jk.tickSize,type:Z.type,niceTicks:Z.niceTicks,width:Z.width,yAxisId:0},Rj=a.memo(e=>{var t=Pt(e,Lj);return a.createElement(a.Fragment,null,a.createElement(Fj,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),a.createElement(Ij,t))},cj);Rj.displayName=`YAxis`;var zj=B([(e,t)=>t,G,sp,hp,GS,qS,EC,ws],RC);function Bj(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function Vj(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(Bj(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var Hj=xa(`mouseClick`),Uj=ko();Uj.startListening({actionCreator:Hj,effect:(e,t)=>{var n=e.payload,r=zj(t.getState(),Vj(n));r?.activeIndex!=null&&t.dispatch(Xx({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var Wj=xa(`mouseMove`),Gj=ko(),Kj=null,qj=null,Jj=null;Gj.startListening({actionCreator:Wj,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);Kj!==null&&(cancelAnimationFrame(Kj),Kj=null),qj!==null&&(typeof i!=`number`||!o)&&(clearTimeout(qj),qj=null),Jj=Vj(n);var s=()=>{var e=t.getState(),n=Ix(e,e.tooltip.settings.shared);if(!Jj){Kj=null,qj=null;return}if(n===`axis`){var r=zj(e,Jj);r?.activeIndex==null?t.dispatch(Jx()):t.dispatch(Yx({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}Kj=null,qj=null};if(!o){s();return}i===`raf`?Kj=requestAnimationFrame(s):typeof i==`number`&&qj===null&&(qj=setTimeout(s,i))}});function Yj(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<>`:t}var Xj={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},Zj=Ha({name:`rootProps`,initialState:Xj,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??Xj.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),Qj=Zj.reducer,$j=Zj.actions.updateOptions,eM=Ha({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});eM.actions.updatePolarOptions;var tM=eM.reducer,nM=xa(`keyDown`),rM=xa(`focus`),iM=xa(`blur`),aM=ko(),oM=null,sM=null,cM=null;aM.startListening({actionCreator:nM,effect:(e,t)=>{cM=e.payload,oM!==null&&(cancelAnimationFrame(oM),oM=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);sM!==null&&(typeof r!=`number`||!a)&&(clearTimeout(sM),sM=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=cM;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=dS(n,NS(e),db(e),HS(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=qS(e),c=NS(e),l=Ix(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=jC(e,l,`hover`,String(n.index));t.dispatch(Qx({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=Mx(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=db(e),h=HS(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v=0;y--)if(dS(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=jC(e,l,`hover`,String(p));t.dispatch(Qx({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{oM=null,sM=null}};if(!a){o();return}r===`raf`?oM=requestAnimationFrame(o):typeof r==`number`&&sM===null&&(o(),cM=null,sM=setTimeout(()=>{cM?o():(sM=null,oM=null)},r))}}),aM.startListening({actionCreator:rM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=jC(n,Ix(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(Qx({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),aM.startListening({actionCreator:iM,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(Qx({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function lM(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var uM=xa(`externalEvent`),dM=ko(),fM=new Map,pM=new Map,mM=new Map;dM.startListening({actionCreator:uM,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=lM(i);mM.set(a,{handler:r,reactEvent:o});var s=fM.get(a);s!==void 0&&(cancelAnimationFrame(s),fM.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=pM.get(a);f!==void 0&&(typeof l!=`number`||!d)&&(clearTimeout(f),pM.delete(a));var p=()=>{var e=mM.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:rC(i),activeDataKey:eC(i),activeIndex:QS(i),activeLabel:$S(i),activeTooltipIndex:QS(i),isTooltipActive:iC(i)};n&&n(o,r)}finally{fM.delete(a),pM.delete(a),mM.delete(a)}};if(!d){p();return}if(l===`raf`){var m=requestAnimationFrame(p);fM.set(a,m)}else if(typeof l==`number`){if(!pM.has(a)){p();var h=setTimeout(p,l);pM.set(a,h)}}else p()}}});var hM=B([B([hS],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),gM=xa(`touchMove`),_M=ko(),vM=null,yM=null,bM=null,xM=null;_M.startListening({actionCreator:gM,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){xM=lM(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);vM!==null&&(cancelAnimationFrame(vM),vM=null),yM!==null&&(typeof i!=`number`||!o)&&(clearTimeout(yM),yM=null),bM=Array.from(n.touches).map(e=>Vj({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(xM!=null){var e=t.getState(),n=Ix(e,e.tooltip.settings.shared);if(n===`axis`){var r=bM?.[0];if(r==null){vM=null,yM=null;return}var i=zj(e,r);i?.activeIndex!=null&&t.dispatch(Yx({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=xM.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(ps),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=kS(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=hM(e,s,c);t.dispatch(qx({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}vM=null,yM=null}};if(!o){s();return}i===`raf`?vM=requestAnimationFrame(s):typeof i==`number`&&yM===null&&(s(),xM=null,yM=setTimeout(()=>{xM?s():(yM=null,vM=null)},i))}}});var SM={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},CM=Ha({name:`eventSettings`,initialState:SM,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=V(t.payload.throttledEvents))}}}),wM=CM.actions.setEventSettings,TM=CM.reducer,EM=Gr({brush:KO,cartesianAxis:MO,chartData:Dw,errorBars:oA,eventSettings:TM,graphicalItems:rO,layout:Lo,legend:Tc,options:bw,polarAxis:iD,polarOptions:tM,referenceElements:ZO,renderedTicks:Nk,rootProps:Qj,tooltip:$x,zIndex:tw}),DM=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Ma({reducer:EM,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([Uj.middleware,Gj.middleware,aM.middleware,dM.middleware,_M.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Aa({type:`raf`}))},devTools:pl.devToolsEnabled&&{serialize:{replacer:Yj},name:`recharts-${t}`}})};function OM(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=Os(),o=(0,a.useRef)(null);if(i)return n;o.current??=DM(t,r);var s=Qn;return a.createElement(Vc,{context:s,store:o.current},n)}function kM(e){var t=e.layout,n=e.margin,r=R(),i=Os();return(0,a.useEffect)(()=>{i||(r(Po(t)),r(No(n)))},[r,i,t,n]),null}var AM=(0,a.memo)(kM,Wc);function jM(e){var t=R();return(0,a.useEffect)(()=>{t($j(e))},[t,e]),null}var MM=(0,a.memo)(e=>{var t=R();return(0,a.useEffect)(()=>{t(wM(e))},[t,e]),null},Wc);function NM(e){var t=e.zIndex,n=e.isPanorama,r=(0,a.useRef)(null),i=R();return(0,a.useLayoutEffect)(()=>(r.current&&i($C({zIndex:t,element:r.current,isPanorama:n})),()=>{i(ew({zIndex:t,isPanorama:n}))}),[i,t,n]),a.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function PM(e){var t=e.children,n=e.isPanorama,r=z(BC);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),o=r.filter(e=>e>0);return a.createElement(a.Fragment,null,i.map(e=>a.createElement(NM,{key:e,zIndex:e,isPanorama:n})),t,o.map(e=>a.createElement(NM,{key:e,zIndex:e,isPanorama:n})))}var FM=[`children`];function IM(e,t){if(e==null)return{};var n,r,i=LM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=pc(),r=mc(),i=Fl();if(!zo(n)||!zo(r))return null;var o=e.children,s=e.otherAttributes,c=e.title,l=e.desc,u,d;return s!=null&&(u=typeof s.tabIndex==`number`?s.tabIndex:i?0:void 0,d=typeof s.role==`string`?s.role:i?`application`:void 0),a.createElement(S,RM({},s,{title:c,desc:l,role:d,tabIndex:u,width:n,height:r,style:zM,ref:t}),o)}),VM=e=>{var t=e.children,n=z(As);if(!n)return null;var r=n.width,i=n.height,o=n.y,s=n.x;return a.createElement(S,{width:r,height:i,x:s,y:o},t)},HM=(0,a.forwardRef)((e,t)=>{var n=e.children,r=IM(e,FM);return Os()?a.createElement(VM,null,a.createElement(PM,{isPanorama:!0},n)):a.createElement(BM,RM({ref:t},r),a.createElement(PM,{isPanorama:!1},n))});function UM(e,t){return JM(e)||qM(e,t)||GM(e,t)||WM()}function WM(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function GM(e,t){if(e){if(typeof e==`string`)return KM(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?KM(e,t):void 0}}function KM(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;U(t)&&t!==i&&e(Io(t))}},[n,e,i]),r}function XM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ZM(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n(Rw(),null);function lN(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var uN=(0,a.forwardRef)((e,t)=>{var n=(0,a.useRef)(null),r=nN((0,a.useState)({containerWidth:lN(e.style?.width),containerHeight:lN(e.style?.height)}),2),i=r[0],o=r[1],s=(0,a.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,a.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;s(i,a);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;s(r,i)}});o.observe(e),n.current=o}},[t,s]);return(0,a.useEffect)(()=>()=>{n.current?.disconnect()},[s]),a.createElement(a.Fragment,null,a.createElement(yc,{width:i.containerWidth,height:i.containerHeight}),a.createElement(`div`,tN({ref:c},e)))}),dN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=nN((0,a.useState)({containerWidth:lN(n),containerHeight:lN(r)}),2),o=i[0],s=i[1],c=(0,a.useCallback)((e,t)=>{s(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),l=(0,a.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;c(r,i)}},[t,c]);return a.createElement(a.Fragment,null,a.createElement(yc,{width:o.containerWidth,height:o.containerHeight}),a.createElement(`div`,tN({ref:l},e)))}),fN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height;return a.createElement(a.Fragment,null,a.createElement(yc,{width:n,height:r}),a.createElement(`div`,tN({ref:t},e)))}),pN=(0,a.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?a.createElement(dN,tN({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?a.createElement(fN,tN({},e,{width:n,height:r,ref:t})):a.createElement(a.Fragment,null,a.createElement(yc,{width:n,height:r}),a.createElement(`div`,tN({ref:t},e)))});function mN(e){return e?uN:pN}var hN=(0,a.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,o=e.onClick,s=e.onContextMenu,l=e.onDoubleClick,u=e.onMouseDown,d=e.onMouseEnter,f=e.onMouseLeave,p=e.onMouseMove,m=e.onMouseUp,h=e.onTouchEnd,g=e.onTouchMove,_=e.onTouchStart,v=e.style,y=e.width,b=e.responsive,x=e.dispatchTouchEvents,S=x===void 0||x,C=(0,a.useRef)(null),w=R(),T=nN((0,a.useState)(null),2),E=T[0],D=T[1],O=nN((0,a.useState)(null),2),k=O[0],A=O[1],j=YM(),M=sc(),N=M?.width>0?M.width:y,ee=M?.height>0?M.height:i,te=(0,a.useCallback)(e=>{j(e),typeof t==`function`&&t(e),D(e),A(e),e!=null&&(C.current=e)},[j,t,D,A]),ne=(0,a.useCallback)(e=>{w(Hj(e)),w(uM({handler:o,reactEvent:e}))},[w,o]),re=(0,a.useCallback)(e=>{w(Wj(e)),w(uM({handler:d,reactEvent:e}))},[w,d]),P=(0,a.useCallback)(e=>{w(Jx()),w(uM({handler:f,reactEvent:e}))},[w,f]),ie=(0,a.useCallback)(e=>{w(Wj(e)),w(uM({handler:p,reactEvent:e}))},[w,p]),ae=(0,a.useCallback)(()=>{w(rM())},[w]),oe=(0,a.useCallback)(()=>{w(iM())},[w]),F=(0,a.useCallback)(e=>{w(nM(e.key))},[w]),se=(0,a.useCallback)(e=>{w(uM({handler:s,reactEvent:e}))},[w,s]),ce=(0,a.useCallback)(e=>{w(uM({handler:l,reactEvent:e}))},[w,l]),le=(0,a.useCallback)(e=>{w(uM({handler:u,reactEvent:e}))},[w,u]),ue=(0,a.useCallback)(e=>{w(uM({handler:m,reactEvent:e}))},[w,m]),de=(0,a.useCallback)(e=>{w(uM({handler:_,reactEvent:e}))},[w,_]),fe=(0,a.useCallback)(e=>{S&&w(gM(e)),w(uM({handler:g,reactEvent:e}))},[w,S,g]),pe=(0,a.useCallback)(e=>{w(uM({handler:h,reactEvent:e}))},[w,h]),I=mN(b);return a.createElement(fw.Provider,{value:E},a.createElement(Ee.Provider,{value:k},a.createElement(I,{width:N??v?.width,height:ee??v?.height,className:c(`recharts-wrapper`,r),style:ZM({position:`relative`,cursor:`default`,width:N,height:ee},v),onClick:ne,onContextMenu:se,onDoubleClick:ce,onFocus:ae,onBlur:oe,onKeyDown:F,onMouseDown:le,onMouseEnter:re,onMouseLeave:P,onMouseMove:ie,onMouseUp:ue,onTouchEnd:pe,onTouchMove:fe,onTouchStart:de,ref:te},a.createElement(cN,null),n)))}),gN=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function _N(e,t){if(e==null)return{};var n,r,i=vN(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=e.width,r=e.height,i=e.responsive,o=e.children,s=e.className,c=e.style,l=e.compact,u=e.title,d=e.desc,f=m(_N(e,gN));return l?a.createElement(a.Fragment,null,a.createElement(yc,{width:n,height:r}),a.createElement(HM,{otherAttributes:f,title:u,desc:d},o)):a.createElement(hN,{className:s,style:c,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},a.createElement(HM,{otherAttributes:f,title:u,desc:d,ref:t},a.createElement(ak,null,o)))});function bN(){return bN=Object.assign?Object.assign.bind():function(e){for(var t=1;ta.createElement(DN,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:ON,tooltipPayloadSearcher:vw,categoricalChartProps:e,ref:t})),AN={value:()=>{}};function jN(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}MN.prototype=jN.prototype={constructor:MN,on:function(e,t){var n=this._,r=NN(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),IN.hasOwnProperty(t)?{space:IN[t],local:e}:e}function RN(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function zN(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function BN(e){var t=LN(e);return(t.local?zN:RN)(t)}function VN(){}function HN(e){return e==null?VN:function(){return this.querySelector(e)}}function UN(e){typeof e!=`function`&&(e=HN(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function yP(e){e||=bP;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function xP(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function SP(){return Array.from(this)}function CP(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?FP:typeof t==`function`?LP:IP)(e,t,n??``)):zP(this.node(),e)}function zP(e,t){return e.style.getPropertyValue(t)||PP(e).getComputedStyle(e,null).getPropertyValue(t)}function BP(e){return function(){delete this[e]}}function VP(e,t){return function(){this[e]=t}}function HP(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function UP(e,t){return arguments.length>1?this.each((t==null?BP:typeof t==`function`?HP:VP)(e,t)):this.node()[e]}function WP(e){return e.trim().split(/^|\s+/)}function GP(e){return e.classList||new KP(e)}function KP(e){this._node=e,this._names=WP(e.getAttribute(`class`)||``)}KP.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function qP(e,t){for(var n=GP(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function SF(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function WF(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}WF.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function GF(e){return!e.ctrlKey&&!e.button}function KF(){return this.parentNode}function qF(e,t){return t??{x:e.x,y:e.y}}function JF(){return navigator.maxTouchPoints||`ontouchstart`in this}function YF(){var e=GF,t=KF,n=qF,r=JF,i={},a=jN(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,LF).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(PF(n.view).on(`mousemove.drag`,m,RF).on(`mouseup.drag`,h,RF),VF(n.view),zF(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(BF(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){PF(e.view).on(`mousemove.drag mouseup.drag`,null),HF(e.view,l),BF(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s=0&&e._call.call(void 0,t),e=e._next;--XF}function fI(){rI=(nI=aI.now())+iI,XF=ZF=0;try{dI()}finally{XF=0,mI(),rI=0}}function pI(){var e=aI.now(),t=e-nI;t>$F&&(iI-=t,nI=e)}function mI(){for(var e,t=eI,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:eI=n);tI=e,hI(r)}function hI(e){XF||(ZF&&=clearTimeout(ZF),e-rI>24?(e<1/0&&(ZF=setTimeout(fI,e-aI.now()-iI)),QF&&=clearInterval(QF)):(QF||=(nI=aI.now(),setInterval(pI,$F)),XF=1,oI(fI)))}function gI(e,t,n){var r=new lI;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var _I=jN(`start`,`end`,`cancel`,`interrupt`),vI=[];function yI(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;CI(e,n,{name:t,index:r,group:i,on:_I,tween:vI,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function bI(e,t){var n=SI(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function xI(e,t){var n=SI(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function SI(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function CI(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=uI(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return gI(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function TI(e){return this.each(function(){wI(this,e)})}function EI(e,t){var n,r;return function(){var i=xI(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function nL(e,t,n){var r,i,a=tL(t)?bI:xI;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function rL(e,t){var n=this._id;return arguments.length<2?SI(this.node(),n).on.on(e):this.each(nL(n,e,t))}function iL(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function aL(){return this.on(`end.remove`,iL(this._id))}function oL(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=HN(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function IL(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function LL(e,t,n){this.k=e,this.x=t,this.y=n}LL.prototype={constructor:LL,scale:function(e){return e===1?this:new LL(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new LL(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var RL=new LL(1,0,0);zL.prototype=LL.prototype;function zL(e){for(;!e.__zoom;)if(!(e=e.parentNode))return RL;return e.__zoom}function BL(e){e.stopImmediatePropagation()}function VL(e){e.preventDefault(),e.stopImmediatePropagation()}function HL(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function UL(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function WL(){return this.__zoom||RL}function GL(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function KL(){return navigator.maxTouchPoints||`ontouchstart`in this}function qL(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function JL(){var e=HL,t=UL,n=qL,r=GL,i=KL,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=vh,l=jN(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,WL).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,WL),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(RL.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new LL(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new LL(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new LL(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=PF(this.that).datum();l.call(e,this.that,new IL(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=IF(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],wI(this),s.start();VL(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=PF(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=IF(t,i),l=t.clientX,u=t.clientY;VF(t.view),BL(t),a.mouse=[c,this.__zoom.invert(c)],wI(this),a.start();function d(e){if(VL(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=IF(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),HF(e.view,a.moved),VL(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=IF(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);VL(r),s>0?PF(this).transition().duration(s).call(x,d,c,r):PF(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(BL(t),s=0;s