From c827f58211e1d0912d0960b64857d6ee54a2446d Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 18 Nov 2024 17:59:59 -0600 Subject: [PATCH 1/2] feat: advanced config editor --- frontend/neon-hub-config/src/App.tsx | 9 +- .../src/components/Advanced.tsx | 17 + .../src/components/YAMLEditors.tsx | 299 ++++++++++++++++++ .../neon-hub-config/tsconfig.app.tsbuildinfo | 2 +- frontend/package.json | 3 + frontend/pnpm-lock.yaml | 61 ++++ neon_hub_config/main.py | 73 ++++- .../static/assets/index-C-YgbCXr.js | 139 -------- .../static/assets/index-C6uqq5vL.css | 1 - .../static/assets/index-CnXsjVaS.css | 1 + .../static/assets/index-nOs3d6K6.js | 197 ++++++++++++ neon_hub_config/static/index.html | 4 +- 12 files changed, 653 insertions(+), 153 deletions(-) create mode 100644 frontend/neon-hub-config/src/components/Advanced.tsx create mode 100644 frontend/neon-hub-config/src/components/YAMLEditors.tsx delete mode 100644 neon_hub_config/static/assets/index-C-YgbCXr.js delete mode 100644 neon_hub_config/static/assets/index-C6uqq5vL.css create mode 100644 neon_hub_config/static/assets/index-CnXsjVaS.css create mode 100644 neon_hub_config/static/assets/index-nOs3d6K6.js diff --git a/frontend/neon-hub-config/src/App.tsx b/frontend/neon-hub-config/src/App.tsx index 24976ab..af44bc9 100644 --- a/frontend/neon-hub-config/src/App.tsx +++ b/frontend/neon-hub-config/src/App.tsx @@ -9,16 +9,21 @@ import Header from './components/Header'; import { AuthProvider, useAuth } from './context/AuthContext'; import Login from './components/Login'; import LogoutButton from './components/LogoutButton'; +import Advanced from './components/Advanced'; const AppContent: React.FC = () => { const [isDark, setIsDark] = useState(false); - const [activeTab, setActiveTab] = useState('config'); + const [activeTab, setActiveTab] = useState(() => localStorage.getItem('activeTab') || 'config'); useEffect(() => { const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; setIsDark(prefersDark); }, []); + useEffect(() => { + localStorage.setItem('activeTab', activeTab); + }, [activeTab]); + const toggleDarkMode = () => setIsDark(!isDark); const { isAuthenticated } = useAuth(); @@ -37,6 +42,7 @@ const AppContent: React.FC = () => { + @@ -45,6 +51,7 @@ const AppContent: React.FC = () => { {activeTab === 'services' && } {activeTab === 'devices' && } {activeTab === 'updates' && } + {activeTab === 'advanced' && } diff --git a/frontend/neon-hub-config/src/components/Advanced.tsx b/frontend/neon-hub-config/src/components/Advanced.tsx new file mode 100644 index 0000000..c2b8714 --- /dev/null +++ b/frontend/neon-hub-config/src/components/Advanced.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import YAMLEditors from "./YAMLEditors"; + +interface AdvancedProps { + isDark: boolean; +} +const Advanced: React.FC = ({isDark}) => { + console.log("AdvancedProps", isDark); + return ( +
+

Advanced

+ +
+ ); +}; + +export default Advanced; \ No newline at end of file diff --git a/frontend/neon-hub-config/src/components/YAMLEditors.tsx b/frontend/neon-hub-config/src/components/YAMLEditors.tsx new file mode 100644 index 0000000..860e178 --- /dev/null +++ b/frontend/neon-hub-config/src/components/YAMLEditors.tsx @@ -0,0 +1,299 @@ +import React, { useEffect, useState } from "react"; +import Editor from "@monaco-editor/react"; +import { dump, load } from "js-yaml"; +import { RefreshCw, Save } from "lucide-react"; + +interface ConfigEditorProps { + title: string; + endpoint: string; + isDark: boolean; +} + +const ConfigEditor: React.FC = ({ + title, + endpoint, + isDark, +}) => { + const [yamlContent, setYamlContent] = useState(""); + const [loading, setLoading] = useState(true); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + const [saveError, setSaveError] = useState(null); + const [isValid, setIsValid] = useState(true); + const [lastRefresh, setLastRefresh] = useState(null); + const [hasChanges, setHasChanges] = useState(false); + + const fetchConfig = async () => { + setLoading(true); + setError(null); + try { + // Add cache-busting timestamp to prevent caching + const timestamp = new Date().getTime(); + const response = await fetch( + `http://127.0.0.1${endpoint}?_=${timestamp}`, + { + headers: { + Accept: "application/json", + "Content-Type": "application/json", + "Cache-Control": "no-cache, no-store, must-revalidate", + Pragma: "no-cache", + Expires: "0", + }, + } + ); + + if (!response.ok) { + throw new Error(`Failed to fetch ${title} configuration`); + } + + const data = await response.json(); + const yamlString = dump(data, { + indent: 2, + lineWidth: -1, + sortKeys: true, + }); + + setYamlContent(yamlString); + setLastRefresh(new Date()); + setIsValid(true); + setHasChanges(false); + } catch (err) { + setError( + err instanceof Error + ? err.message + : `Failed to fetch ${title} configuration` + ); + console.error("Config fetch error:", err); + } finally { + setLoading(false); + } + }; + + const saveConfig = async () => { + if (!isValid) { + setSaveError("Cannot save invalid YAML"); + return; + } + + setSaving(true); + setSaveError(null); + try { + const jsonData = load(yamlContent); + + const saveResponse = await fetch(`http://127.0.0.1${endpoint}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache", + }, + body: JSON.stringify(jsonData), + }); + + if (!saveResponse.ok) { + throw new Error(`Failed to save ${title} configuration`); + } + + // Get the updated data from the save response + const updatedData = await saveResponse.json(); + const updatedYaml = dump(updatedData, { + indent: 2, + lineWidth: -1, + sortKeys: true, + }); + + setYamlContent(updatedYaml); + setHasChanges(false); + setLastRefresh(new Date()); + } catch (err) { + setSaveError( + err instanceof Error + ? err.message + : `Failed to save ${title} configuration` + ); + console.error("Config save error:", err); + } finally { + setSaving(false); + } + }; + + useEffect(() => { + fetchConfig(); + }, [endpoint]); + + const handleEditorChange = (value: string | undefined) => { + if (!value) return; + + try { + load(value); // Validate YAML + setIsValid(true); + setYamlContent(value); + setHasChanges(true); + setSaveError(null); + } catch (e) { + setIsValid(false); + } + }; + + return ( +
+
+

+ {title} +

+
+ +
+
+ + + + +
+ + {isValid ? "Valid YAML" : "Invalid YAML"} +
+ + {hasChanges && ( +
+ + Unsaved Changes +
+ )} +
+ + {lastRefresh && ( + + Last refreshed: {lastRefresh.toLocaleString()} + + )} +
+ + {error && ( +
{error}
+ )} + + {saveError && ( +
+ {saveError} +
+ )} + +
+ +
+
+ ); +}; + +const YAMLEditors: React.FC<{ isDark: boolean }> = ({ isDark }) => { + return ( +
+
+
+ + + + + + + For advanced users only - you can directly edit neon.yaml and + diana.yaml. Back up the contents before making changes! + +
+
+
+ + +
+
+ ); +}; + +export default YAMLEditors; diff --git a/frontend/neon-hub-config/tsconfig.app.tsbuildinfo b/frontend/neon-hub-config/tsconfig.app.tsbuildinfo index 273d958..c965ce6 100644 --- a/frontend/neon-hub-config/tsconfig.app.tsbuildinfo +++ b/frontend/neon-hub-config/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/connecteddevices.tsx","./src/components/header.tsx","./src/components/hubmanagementui.tsx","./src/components/hubupdates.tsx","./src/components/login.tsx","./src/components/logoutbutton.tsx","./src/components/nodeservices.tsx","./src/components/secretfield.tsx","./src/components/ui/tooltip.tsx","./src/context/authcontext.tsx","./src/lib/utils.ts"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/advanced.tsx","./src/components/connecteddevices.tsx","./src/components/header.tsx","./src/components/hubmanagementui.tsx","./src/components/hubupdates.tsx","./src/components/login.tsx","./src/components/logoutbutton.tsx","./src/components/nodeservices.tsx","./src/components/secretfield.tsx","./src/components/yamleditors.tsx","./src/components/ui/tooltip.tsx","./src/context/authcontext.tsx","./src/lib/utils.ts"],"version":"5.6.3"} \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 5c7e987..8568d29 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,5 +1,6 @@ { "devDependencies": { + "@types/js-yaml": "^4.0.9", "@types/node": "^22.8.4", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", @@ -7,7 +8,9 @@ "tailwindcss-animate": "^1.0.7" }, "dependencies": { + "@monaco-editor/react": "^4.6.0", "@radix-ui/react-tooltip": "^1.1.3", + "js-yaml": "^4.1.0", "tailwindcss": "^3.4.14" } } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 17f3c90..ca201a2 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -8,13 +8,22 @@ importers: .: dependencies: + '@monaco-editor/react': + specifier: ^4.6.0 + version: 4.6.0(monaco-editor@0.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.3 version: 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 tailwindcss: specifier: ^3.4.14 version: 3.4.14 devDependencies: + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 '@types/node': specifier: ^22.8.4 version: 22.8.4 @@ -74,6 +83,18 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@monaco-editor/loader@1.4.0': + resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==} + peerDependencies: + monaco-editor: '>= 0.21.0 < 1' + + '@monaco-editor/react@4.6.0': + resolution: {integrity: sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==} + peerDependencies: + monaco-editor: '>= 0.25.0 < 1' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -299,6 +320,9 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/node@22.8.4': resolution: {integrity: sha512-SpNNxkftTJOPk0oN+y2bIqurEXHTA2AOZ3EJDDKeJ5VzkvvORSvmQXGQarcOzWV1ac7DCaPBEdMDxBsM+d8jWw==} @@ -328,6 +352,9 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -472,6 +499,10 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -506,6 +537,9 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + monaco-editor@0.52.0: + resolution: {integrity: sha512-OeWhNpABLCeTqubfqLMXGsqf6OmPU6pHM85kF3dhy6kq5hnhuVS1p3VrEW/XhWHc71P2tHyS5JFySD8mgs1crw==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -645,6 +679,9 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + state-local@1.0.7: + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -768,6 +805,18 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@monaco-editor/loader@1.4.0(monaco-editor@0.52.0)': + dependencies: + monaco-editor: 0.52.0 + state-local: 1.0.7 + + '@monaco-editor/react@4.6.0(monaco-editor@0.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@monaco-editor/loader': 1.4.0(monaco-editor@0.52.0) + monaco-editor: 0.52.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -911,6 +960,8 @@ snapshots: '@radix-ui/rect@1.1.0': {} + '@types/js-yaml@4.0.9': {} + '@types/node@22.8.4': dependencies: undici-types: 6.19.8 @@ -934,6 +985,8 @@ snapshots: arg@5.0.2: {} + argparse@2.0.1: {} + balanced-match@1.0.2: {} binary-extensions@2.3.0: {} @@ -1071,6 +1124,10 @@ snapshots: js-tokens@4.0.0: {} + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + lilconfig@2.1.0: {} lilconfig@3.1.2: {} @@ -1096,6 +1153,8 @@ snapshots: minipass@7.1.2: {} + monaco-editor@0.52.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -1212,6 +1271,8 @@ snapshots: source-map-js@1.2.1: {} + state-local@1.0.7: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 diff --git a/neon_hub_config/main.py b/neon_hub_config/main.py index dc70ef7..4847cdb 100644 --- a/neon_hub_config/main.py +++ b/neon_hub_config/main.py @@ -13,7 +13,7 @@ from functools import wraps from os import getenv from os.path import exists, join, realpath, split -from typing import Dict +from typing import Dict, Optional from fastapi import Depends, FastAPI, Header, HTTPException from fastapi.middleware.cors import CORSMiddleware @@ -64,6 +64,8 @@ def __init__(self): # Initialize Neon configuration self.neon_config = Configuration() + self.neon_user_config_path = self.neon_config.xdg_configs[0].path + self.neon_user_config = self._load_neon_user_config() # Initialize Diana config self.logger.info(f"Loading Diana config in {self.neon_config.xdg_configs[0].path}") @@ -72,14 +74,8 @@ def __init__(self): self.diana_config = self._load_diana_config() def _load_diana_config(self) -> Dict: - """ - Load Diana configuration from file, creating it with defaults if needed. - - Returns: - Dict: The loaded configuration or default configuration if loading fails - """ + """Load Diana configuration from file, creating it with defaults if needed.""" if not exists(self.diana_config_path): - # Create the file with default config if it doesn't exist self._save_diana_config(self.default_diana_config) return self.default_diana_config.copy() @@ -89,11 +85,26 @@ def _load_diana_config(self) -> Dict: if config is None: # File exists but is empty config = self.default_diana_config.copy() self._save_diana_config(config) + self.diana_config = config return config except Exception as e: self.logger.exception(f"Error loading config: {e}") return self.default_diana_config.copy() + def _load_neon_user_config(self) -> Optional[Dict]: + """ + Load Neon user configuration from file, creating it with defaults if needed. + + Returns: + Optional[Dict]: The loaded configuration or default configuration if loading fails + """ + try: + with open(self.neon_user_config_path, "r", encoding="utf-8") as file: + config = self.yaml.load(file) + return config + except Exception as e: + self.logger.exception(f"Error loading Neon user config: {e}") + def _save_diana_config(self, config: Dict) -> None: """ Save Diana configuration to file. @@ -119,6 +130,16 @@ def get_neon_config(self) -> Dict: self.neon_config.reload() return self.neon_config + def get_neon_user_config(self) -> Optional[Dict]: + """ + Get the current Neon user configuration. + + Returns: + Dict: Current Neon user configuration + """ + self._load_neon_user_config() + return self.neon_user_config or None + def update_neon_config(self, config: Dict) -> Dict: """ Update the Neon Hub configuration. @@ -141,6 +162,7 @@ def get_diana_config(self) -> Dict: Returns: Dict: Current Diana configuration """ + self._load_diana_config() return self.diana_config def update_diana_config(self, config: Dict) -> Dict: @@ -155,7 +177,7 @@ def update_diana_config(self, config: Dict) -> Dict: """ self.logger.info("Updating Diana config") self._save_diana_config(config) - return self.diana_config + return self._load_diana_config() app = FastAPI( @@ -267,6 +289,39 @@ async def neon_update_config( logger.info("Updating Neon config") return manager.update_neon_config(config) +@app.get("/v1/neon_user_config") +async def neon_get_user_config( + manager: NeonHubConfigManager = Depends(get_config_manager) +): + """ + Get the current Neon Hub configuration. + + Returns: + Dict: Current Neon Hub configuration + """ + config = manager.get_neon_user_config() + if config is None: + return {"error": "Failed to load Neon user config"} + return config + + +# @app.post("/v1/neon_config") +# async def neon_update_user_config( +# config: Dict, +# manager: NeonHubConfigManager = Depends(get_config_manager), +# ): +# """ +# Update the Neon Hub configuration. + +# Args: +# config (Dict): New configuration to apply + +# Returns: +# Dict: Updated configuration +# """ +# logger.info("Updating Neon config") +# return manager.update_neon_user_config(config) + @app.get("/v1/diana_config") async def diana_get_config( diff --git a/neon_hub_config/static/assets/index-C-YgbCXr.js b/neon_hub_config/static/assets/index-C-YgbCXr.js deleted file mode 100644 index 8685741..0000000 --- a/neon_hub_config/static/assets/index-C-YgbCXr.js +++ /dev/null @@ -1,139 +0,0 @@ -function lp(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const i of l.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(o){if(o.ep)return;o.ep=!0;const l=n(o);fetch(o.href,l)}})();function ip(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Wa={exports:{}},qo={},$a={exports:{}},B={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var br=Symbol.for("react.element"),sp=Symbol.for("react.portal"),up=Symbol.for("react.fragment"),ap=Symbol.for("react.strict_mode"),cp=Symbol.for("react.profiler"),fp=Symbol.for("react.provider"),dp=Symbol.for("react.context"),pp=Symbol.for("react.forward_ref"),hp=Symbol.for("react.suspense"),mp=Symbol.for("react.memo"),gp=Symbol.for("react.lazy"),hu=Symbol.iterator;function vp(e){return e===null||typeof e!="object"?null:(e=hu&&e[hu]||e["@@iterator"],typeof e=="function"?e:null)}var Ha={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Qa=Object.assign,Ga={};function Bn(e,t,n){this.props=e,this.context=t,this.refs=Ga,this.updater=n||Ha}Bn.prototype.isReactComponent={};Bn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Bn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ka(){}Ka.prototype=Bn.prototype;function ts(e,t,n){this.props=e,this.context=t,this.refs=Ga,this.updater=n||Ha}var ns=ts.prototype=new Ka;ns.constructor=ts;Qa(ns,Bn.prototype);ns.isPureReactComponent=!0;var mu=Array.isArray,Ya=Object.prototype.hasOwnProperty,rs={current:null},Xa={key:!0,ref:!0,__self:!0,__source:!0};function Za(e,t,n){var r,o={},l=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)Ya.call(t,r)&&!Xa.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1>>1,ne=P[V];if(0>>1;Vo(Kn,D))nto(Vt,Kn)?(P[V]=Vt,P[nt]=D,V=nt):(P[V]=Kn,P[tt]=D,V=tt);else if(nto(Vt,D))P[V]=Vt,P[nt]=D,V=nt;else break e}}return j}function o(P,j){var D=P.sortIndex-j.sortIndex;return D!==0?D:P.id-j.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var i=Date,s=i.now();e.unstable_now=function(){return i.now()-s}}var u=[],a=[],f=1,p=null,h=3,g=!1,v=!1,y=!1,S=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,c=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(P){for(var j=n(a);j!==null;){if(j.callback===null)r(a);else if(j.startTime<=P)r(a),j.sortIndex=j.expirationTime,t(u,j);else break;j=n(a)}}function x(P){if(y=!1,m(P),!v)if(n(u)!==null)v=!0,F(k);else{var j=n(a);j!==null&&$(x,j.startTime-P)}}function k(P,j){v=!1,y&&(y=!1,d(L),L=-1),g=!0;var D=h;try{for(m(j),p=n(u);p!==null&&(!(p.expirationTime>j)||P&&!O());){var V=p.callback;if(typeof V=="function"){p.callback=null,h=p.priorityLevel;var ne=V(p.expirationTime<=j);j=e.unstable_now(),typeof ne=="function"?p.callback=ne:p===n(u)&&r(u),m(j)}else r(u);p=n(u)}if(p!==null)var an=!0;else{var tt=n(a);tt!==null&&$(x,tt.startTime-j),an=!1}return an}finally{p=null,h=D,g=!1}}var N=!1,E=null,L=-1,b=5,_=-1;function O(){return!(e.unstable_now()-_P||125V?(P.sortIndex=D,t(a,P),n(u)===null&&P===n(a)&&(y?(d(L),L=-1):y=!0,$(x,D-V))):(P.sortIndex=ne,t(u,P),v||g||(v=!0,F(k))),P},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(P){var j=h;return function(){var D=h;h=j;try{return P.apply(this,arguments)}finally{h=D}}}})(rc);nc.exports=rc;var Op=nc.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Lp=w,Oe=Op;function T(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ql=Object.prototype.hasOwnProperty,_p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,vu={},yu={};function Ap(e){return ql.call(yu,e)?!0:ql.call(vu,e)?!1:_p.test(e)?yu[e]=!0:(vu[e]=!0,!1)}function jp(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function zp(e,t,n,r){if(t===null||typeof t>"u"||jp(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ye(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var ce={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ce[e]=new ye(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ce[t]=new ye(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ce[e]=new ye(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ce[e]=new ye(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ce[e]=new ye(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ce[e]=new ye(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ce[e]=new ye(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ce[e]=new ye(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ce[e]=new ye(e,5,!1,e.toLowerCase(),null,!1,!1)});var ls=/[\-:]([a-z])/g;function is(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ls,is);ce[t]=new ye(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ls,is);ce[t]=new ye(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ls,is);ce[t]=new ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ce[e]=new ye(e,1,!1,e.toLowerCase(),null,!1,!1)});ce.xlinkHref=new ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ce[e]=new ye(e,1,!1,e.toLowerCase(),null,!0,!0)});function ss(e,t,n,r){var o=ce.hasOwnProperty(t)?ce[t]:null;(o!==null?o.type!==0:r||!(2s||o[i]!==l[s]){var u=` -`+o[i].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=i&&0<=s);break}}}finally{El=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ir(e):""}function Mp(e){switch(e.tag){case 5:return ir(e.type);case 16:return ir("Lazy");case 13:return ir("Suspense");case 19:return ir("SuspenseList");case 0:case 2:case 15:return e=Pl(e.type,!1),e;case 11:return e=Pl(e.type.render,!1),e;case 1:return e=Pl(e.type,!0),e;default:return""}}function ri(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case dn:return"Fragment";case fn:return"Portal";case ei:return"Profiler";case us:return"StrictMode";case ti:return"Suspense";case ni:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ic:return(e.displayName||"Context")+".Consumer";case lc:return(e._context.displayName||"Context")+".Provider";case as:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case cs:return t=e.displayName||null,t!==null?t:ri(e.type)||"Memo";case xt:t=e._payload,e=e._init;try{return ri(e(t))}catch{}}return null}function Ip(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ri(t);case 8:return t===us?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function zt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function uc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Dp(e){var t=uc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Gr(e){e._valueTracker||(e._valueTracker=Dp(e))}function ac(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=uc(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Eo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function oi(e,t){var n=t.checked;return q({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function xu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=zt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function cc(e,t){t=t.checked,t!=null&&ss(e,"checked",t,!1)}function li(e,t){cc(e,t);var n=zt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ii(e,t.type,n):t.hasOwnProperty("defaultValue")&&ii(e,t.type,zt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Su(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ii(e,t,n){(t!=="number"||Eo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var sr=Array.isArray;function kn(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Kr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function xr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var cr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bp=["Webkit","ms","Moz","O"];Object.keys(cr).forEach(function(e){bp.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),cr[t]=cr[e]})});function hc(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||cr.hasOwnProperty(e)&&cr[e]?(""+t).trim():t+"px"}function mc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=hc(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Fp=q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ai(e,t){if(t){if(Fp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(T(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(T(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(T(61))}if(t.style!=null&&typeof t.style!="object")throw Error(T(62))}}function ci(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var fi=null;function fs(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var di=null,En=null,Pn=null;function Eu(e){if(e=Br(e)){if(typeof di!="function")throw Error(T(280));var t=e.stateNode;t&&(t=ol(t),di(e.stateNode,e.type,t))}}function gc(e){En?Pn?Pn.push(e):Pn=[e]:En=e}function vc(){if(En){var e=En,t=Pn;if(Pn=En=null,Eu(e),t)for(e=0;e>>=0,e===0?32:31-(Xp(e)/Zp|0)|0}var Yr=64,Xr=4194304;function ur(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ro(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~o;s!==0?r=ur(s):(l&=i,l!==0&&(r=ur(l)))}else i=n&~o,i!==0?r=ur(i):l!==0&&(r=ur(l));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Fr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ve(t),e[t]=n}function th(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=dr),ju=" ",zu=!1;function Dc(e,t){switch(e){case"keyup":return Oh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pn=!1;function _h(e,t){switch(e){case"compositionend":return bc(t);case"keypress":return t.which!==32?null:(zu=!0,ju);case"textInput":return e=t.data,e===ju&&zu?null:e;default:return null}}function Ah(e,t){if(pn)return e==="compositionend"||!ws&&Dc(e,t)?(e=Mc(),ho=gs=Et=null,pn=!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}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=bu(n)}}function Vc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Vc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Wc(){for(var e=window,t=Eo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Eo(e.document)}return t}function xs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Bh(e){var t=Wc(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Vc(n.ownerDocument.documentElement,n)){if(r!==null&&xs(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=Fu(n,l);var i=Fu(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,hn=null,yi=null,hr=null,wi=!1;function Uu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;wi||hn==null||hn!==Eo(r)||(r=hn,"selectionStart"in r&&xs(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}),hr&&Nr(hr,r)||(hr=r,r=_o(yi,"onSelect"),0vn||(e.current=Pi[vn],Pi[vn]=null,vn--)}function Q(e,t){vn++,Pi[vn]=e.current,e.current=t}var Mt={},he=Ut(Mt),Se=Ut(!1),Zt=Mt;function An(e,t){var n=e.type.contextTypes;if(!n)return Mt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ce(e){return e=e.childContextTypes,e!=null}function jo(){Y(Se),Y(he)}function Gu(e,t,n){if(he.current!==Mt)throw Error(T(168));Q(he,t),Q(Se,n)}function Jc(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(T(108,Ip(e)||"Unknown",o));return q({},n,r)}function zo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Mt,Zt=he.current,Q(he,e),Q(Se,Se.current),!0}function Ku(e,t,n){var r=e.stateNode;if(!r)throw Error(T(169));n?(e=Jc(e,t,Zt),r.__reactInternalMemoizedMergedChildContext=e,Y(Se),Y(he),Q(he,e)):Y(Se),Q(Se,n)}var lt=null,ll=!1,Fl=!1;function qc(e){lt===null?lt=[e]:lt.push(e)}function qh(e){ll=!0,qc(e)}function Bt(){if(!Fl&<!==null){Fl=!0;var e=0,t=H;try{var n=lt;for(H=1;e>=i,o-=i,st=1<<32-Ve(t)+o|n<L?(b=E,E=null):b=E.sibling;var _=h(d,E,m[L],x);if(_===null){E===null&&(E=b);break}e&&E&&_.alternate===null&&t(d,E),c=l(_,c,L),N===null?k=_:N.sibling=_,N=_,E=b}if(L===m.length)return n(d,E),X&&Wt(d,L),k;if(E===null){for(;LL?(b=E,E=null):b=E.sibling;var O=h(d,E,_.value,x);if(O===null){E===null&&(E=b);break}e&&E&&O.alternate===null&&t(d,E),c=l(O,c,L),N===null?k=O:N.sibling=O,N=O,E=b}if(_.done)return n(d,E),X&&Wt(d,L),k;if(E===null){for(;!_.done;L++,_=m.next())_=p(d,_.value,x),_!==null&&(c=l(_,c,L),N===null?k=_:N.sibling=_,N=_);return X&&Wt(d,L),k}for(E=r(d,E);!_.done;L++,_=m.next())_=g(E,d,L,_.value,x),_!==null&&(e&&_.alternate!==null&&E.delete(_.key===null?L:_.key),c=l(_,c,L),N===null?k=_:N.sibling=_,N=_);return e&&E.forEach(function(R){return t(d,R)}),X&&Wt(d,L),k}function S(d,c,m,x){if(typeof m=="object"&&m!==null&&m.type===dn&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Qr:e:{for(var k=m.key,N=c;N!==null;){if(N.key===k){if(k=m.type,k===dn){if(N.tag===7){n(d,N.sibling),c=o(N,m.props.children),c.return=d,d=c;break e}}else if(N.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===xt&&Zu(k)===N.type){n(d,N.sibling),c=o(N,m.props),c.ref=tr(d,N,m),c.return=d,d=c;break e}n(d,N);break}else t(d,N);N=N.sibling}m.type===dn?(c=Xt(m.props.children,d.mode,x,m.key),c.return=d,d=c):(x=Co(m.type,m.key,m.props,null,d.mode,x),x.ref=tr(d,c,m),x.return=d,d=x)}return i(d);case fn:e:{for(N=m.key;c!==null;){if(c.key===N)if(c.tag===4&&c.stateNode.containerInfo===m.containerInfo&&c.stateNode.implementation===m.implementation){n(d,c.sibling),c=o(c,m.children||[]),c.return=d,d=c;break e}else{n(d,c);break}else t(d,c);c=c.sibling}c=Gl(m,d.mode,x),c.return=d,d=c}return i(d);case xt:return N=m._init,S(d,c,N(m._payload),x)}if(sr(m))return v(d,c,m,x);if(Xn(m))return y(d,c,m,x);ro(d,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,c!==null&&c.tag===6?(n(d,c.sibling),c=o(c,m),c.return=d,d=c):(n(d,c),c=Ql(m,d.mode,x),c.return=d,d=c),i(d)):n(d,c)}return S}var zn=rf(!0),of=rf(!1),Do=Ut(null),bo=null,xn=null,Es=null;function Ps(){Es=xn=bo=null}function Ns(e){var t=Do.current;Y(Do),e._currentValue=t}function Ri(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Tn(e,t){bo=e,Es=xn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(xe=!0),e.firstContext=null)}function Ie(e){var t=e._currentValue;if(Es!==e)if(e={context:e,memoizedValue:t,next:null},xn===null){if(bo===null)throw Error(T(308));xn=e,bo.dependencies={lanes:0,firstContext:e}}else xn=xn.next=e;return t}var Qt=null;function Ts(e){Qt===null?Qt=[e]:Qt.push(e)}function lf(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ts(t)):(n.next=o.next,o.next=n),t.interleaved=n,dt(e,r)}function dt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var St=!1;function Rs(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sf(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function at(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Lt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,dt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ts(r)):(t.next=o.next,o.next=t),r.interleaved=t,dt(e,n)}function go(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ps(e,n)}}function Ju(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fo(e,t,n,r){var o=e.updateQueue;St=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var u=s,a=u.next;u.next=null,i===null?l=a:i.next=a,i=u;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==i&&(s===null?f.firstBaseUpdate=a:s.next=a,f.lastBaseUpdate=u))}if(l!==null){var p=o.baseState;i=0,f=a=u=null,s=l;do{var h=s.lane,g=s.eventTime;if((r&h)===h){f!==null&&(f=f.next={eventTime:g,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var v=e,y=s;switch(h=t,g=n,y.tag){case 1:if(v=y.payload,typeof v=="function"){p=v.call(g,p,h);break e}p=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=y.payload,h=typeof v=="function"?v.call(g,p,h):v,h==null)break e;p=q({},p,h);break e;case 2:St=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[s]:h.push(s))}else g={eventTime:g,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(a=f=g,u=p):f=f.next=g,i|=h;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;h=s,s=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(!0);if(f===null&&(u=p),o.baseState=u,o.firstBaseUpdate=a,o.lastBaseUpdate=f,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);en|=i,e.lanes=i,e.memoizedState=p}}function qu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Bl.transition;Bl.transition={};try{e(!1),t()}finally{H=n,Bl.transition=r}}function Ef(){return De().memoizedState}function rm(e,t,n){var r=At(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Pf(e))Nf(t,n);else if(n=lf(e,t,n,r),n!==null){var o=ge();We(n,e,r,o),Tf(n,t,r)}}function om(e,t,n){var r=At(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Pf(e))Nf(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,s=l(i,n);if(o.hasEagerState=!0,o.eagerState=s,$e(s,i)){var u=t.interleaved;u===null?(o.next=o,Ts(t)):(o.next=u.next,u.next=o),t.interleaved=o;return}}catch{}finally{}n=lf(e,t,o,r),n!==null&&(o=ge(),We(n,e,r,o),Tf(n,t,r))}}function Pf(e){var t=e.alternate;return e===J||t!==null&&t===J}function Nf(e,t){mr=Bo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Tf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ps(e,n)}}var Vo={readContext:Ie,useCallback:fe,useContext:fe,useEffect:fe,useImperativeHandle:fe,useInsertionEffect:fe,useLayoutEffect:fe,useMemo:fe,useReducer:fe,useRef:fe,useState:fe,useDebugValue:fe,useDeferredValue:fe,useTransition:fe,useMutableSource:fe,useSyncExternalStore:fe,useId:fe,unstable_isNewReconciler:!1},lm={readContext:Ie,useCallback:function(e,t){return Ke().memoizedState=[e,t===void 0?null:t],e},useContext:Ie,useEffect:ta,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,yo(4194308,4,wf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yo(4194308,4,e,t)},useInsertionEffect:function(e,t){return yo(4,2,e,t)},useMemo:function(e,t){var n=Ke();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ke();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=rm.bind(null,J,e),[r.memoizedState,e]},useRef:function(e){var t=Ke();return e={current:e},t.memoizedState=e},useState:ea,useDebugValue:Is,useDeferredValue:function(e){return Ke().memoizedState=e},useTransition:function(){var e=ea(!1),t=e[0];return e=nm.bind(null,e[1]),Ke().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=J,o=Ke();if(X){if(n===void 0)throw Error(T(407));n=n()}else{if(n=t(),se===null)throw Error(T(349));qt&30||ff(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,ta(pf.bind(null,r,l,e),[e]),r.flags|=2048,zr(9,df.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=Ke(),t=se.identifierPrefix;if(X){var n=ut,r=st;n=(r&~(1<<32-Ve(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ar++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Ye]=t,e[Or]=r,Df(e,t,!1,!1),t.stateNode=e;e:{switch(i=ci(n,r),n){case"dialog":K("cancel",e),K("close",e),o=r;break;case"iframe":case"object":case"embed":K("load",e),o=r;break;case"video":case"audio":for(o=0;oDn&&(t.flags|=128,r=!0,nr(l,!1),t.lanes=4194304)}else{if(!r)if(e=Uo(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),nr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!X)return de(t),null}else 2*te()-l.renderingStartTime>Dn&&n!==1073741824&&(t.flags|=128,r=!0,nr(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=te(),t.sibling=null,n=Z.current,Q(Z,r?n&1|2:n&1),t):(de(t),null);case 22:case 23:return Vs(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ee&1073741824&&(de(t),t.subtreeFlags&6&&(t.flags|=8192)):de(t),null;case 24:return null;case 25:return null}throw Error(T(156,t.tag))}function pm(e,t){switch(Cs(t),t.tag){case 1:return Ce(t.type)&&jo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Mn(),Y(Se),Y(he),_s(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ls(t),null;case 13:if(Y(Z),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(T(340));jn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Y(Z),null;case 4:return Mn(),null;case 10:return Ns(t.type._context),null;case 22:case 23:return Vs(),null;case 24:return null;default:return null}}var lo=!1,pe=!1,hm=typeof WeakSet=="function"?WeakSet:Set,A=null;function Sn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ee(e,t,r)}else n.current=null}function Di(e,t,n){try{n()}catch(r){ee(e,t,r)}}var da=!1;function mm(e,t){if(xi=Oo,e=Wc(),xs(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,s=-1,u=-1,a=0,f=0,p=e,h=null;t:for(;;){for(var g;p!==n||o!==0&&p.nodeType!==3||(s=i+o),p!==l||r!==0&&p.nodeType!==3||(u=i+r),p.nodeType===3&&(i+=p.nodeValue.length),(g=p.firstChild)!==null;)h=p,p=g;for(;;){if(p===e)break t;if(h===n&&++a===o&&(s=i),h===l&&++f===r&&(u=i),(g=p.nextSibling)!==null)break;p=h,h=p.parentNode}p=g}n=s===-1||u===-1?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Si={focusedElem:e,selectionRange:n},Oo=!1,A=t;A!==null;)if(t=A,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,A=e;else for(;A!==null;){t=A;try{var v=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var y=v.memoizedProps,S=v.memoizedState,d=t.stateNode,c=d.getSnapshotBeforeUpdate(t.elementType===t.type?y:Fe(t.type,y),S);d.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(T(163))}}catch(x){ee(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,A=e;break}A=t.return}return v=da,da=!1,v}function gr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&Di(t,n,l)}o=o.next}while(o!==r)}}function ul(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function bi(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Uf(e){var t=e.alternate;t!==null&&(e.alternate=null,Uf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ye],delete t[Or],delete t[Ei],delete t[Zh],delete t[Jh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Bf(e){return e.tag===5||e.tag===3||e.tag===4}function pa(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Bf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Fi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ao));else if(r!==4&&(e=e.child,e!==null))for(Fi(e,t,n),e=e.sibling;e!==null;)Fi(e,t,n),e=e.sibling}function Ui(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&&(e=e.child,e!==null))for(Ui(e,t,n),e=e.sibling;e!==null;)Ui(e,t,n),e=e.sibling}var ue=null,Ue=!1;function vt(e,t,n){for(n=n.child;n!==null;)Vf(e,t,n),n=n.sibling}function Vf(e,t,n){if(Xe&&typeof Xe.onCommitFiberUnmount=="function")try{Xe.onCommitFiberUnmount(el,n)}catch{}switch(n.tag){case 5:pe||Sn(n,t);case 6:var r=ue,o=Ue;ue=null,vt(e,t,n),ue=r,Ue=o,ue!==null&&(Ue?(e=ue,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ue.removeChild(n.stateNode));break;case 18:ue!==null&&(Ue?(e=ue,n=n.stateNode,e.nodeType===8?bl(e.parentNode,n):e.nodeType===1&&bl(e,n),Er(e)):bl(ue,n.stateNode));break;case 4:r=ue,o=Ue,ue=n.stateNode.containerInfo,Ue=!0,vt(e,t,n),ue=r,Ue=o;break;case 0:case 11:case 14:case 15:if(!pe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&(l&2||l&4)&&Di(n,t,i),o=o.next}while(o!==r)}vt(e,t,n);break;case 1:if(!pe&&(Sn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ee(n,t,s)}vt(e,t,n);break;case 21:vt(e,t,n);break;case 22:n.mode&1?(pe=(r=pe)||n.memoizedState!==null,vt(e,t,n),pe=r):vt(e,t,n);break;default:vt(e,t,n)}}function ha(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new hm),t.forEach(function(r){var o=Em.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function be(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=te()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vm(r/1960))-r,10e?16:e,Pt===null)var r=!1;else{if(e=Pt,Pt=null,Ho=0,W&6)throw Error(T(331));var o=W;for(W|=4,A=e.current;A!==null;){var l=A,i=l.child;if(A.flags&16){var s=l.deletions;if(s!==null){for(var u=0;ute()-Us?Yt(e,0):Fs|=n),ke(e,t)}function Xf(e,t){t===0&&(e.mode&1?(t=Xr,Xr<<=1,!(Xr&130023424)&&(Xr=4194304)):t=1);var n=ge();e=dt(e,t),e!==null&&(Fr(e,t,n),ke(e,n))}function km(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Xf(e,n)}function Em(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(T(314))}r!==null&&r.delete(t),Xf(e,n)}var Zf;Zf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Se.current)xe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return xe=!1,fm(e,t,n);xe=!!(e.flags&131072)}else xe=!1,X&&t.flags&1048576&&ef(t,Io,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;wo(e,t),e=t.pendingProps;var o=An(t,he.current);Tn(t,n),o=js(null,t,r,e,o,n);var l=zs();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ce(r)?(l=!0,zo(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Rs(t),o.updater=sl,t.stateNode=o,o._reactInternals=t,Li(t,r,e,n),t=ji(null,t,r,!0,l,n)):(t.tag=0,X&&l&&Ss(t),me(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(wo(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=Nm(r),e=Fe(r,e),o){case 0:t=Ai(null,t,r,e,n);break e;case 1:t=aa(null,t,r,e,n);break e;case 11:t=sa(null,t,r,e,n);break e;case 14:t=ua(null,t,r,Fe(r.type,e),n);break e}throw Error(T(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Fe(r,o),Ai(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Fe(r,o),aa(e,t,r,o,n);case 3:e:{if(zf(t),e===null)throw Error(T(387));r=t.pendingProps,l=t.memoizedState,o=l.element,sf(e,t),Fo(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=In(Error(T(423)),t),t=ca(e,t,r,n,o);break e}else if(r!==o){o=In(Error(T(424)),t),t=ca(e,t,r,n,o);break e}else for(Ne=Ot(t.stateNode.containerInfo.firstChild),Te=t,X=!0,Be=null,n=of(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(jn(),r===o){t=pt(e,t,n);break e}me(e,t,r,n)}t=t.child}return t;case 5:return uf(t),e===null&&Ti(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Ci(r,o)?i=null:l!==null&&Ci(r,l)&&(t.flags|=32),jf(e,t),me(e,t,i,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Mf(e,t,n);case 4:return Os(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=zn(t,null,r,n):me(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Fe(r,o),sa(e,t,r,o,n);case 7:return me(e,t,t.pendingProps,n),t.child;case 8:return me(e,t,t.pendingProps.children,n),t.child;case 12:return me(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,Q(Do,r._currentValue),r._currentValue=i,l!==null)if($e(l.value,i)){if(l.children===o.children&&!Se.current){t=pt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var s=l.dependencies;if(s!==null){i=l.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(l.tag===1){u=at(-1,n&-n),u.tag=2;var a=l.updateQueue;if(a!==null){a=a.shared;var f=a.pending;f===null?u.next=u:(u.next=f.next,f.next=u),a.pending=u}}l.lanes|=n,u=l.alternate,u!==null&&(u.lanes|=n),Ri(l.return,n,t),s.lanes|=n;break}u=u.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(T(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Ri(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}me(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Tn(t,n),o=Ie(o),r=r(o),t.flags|=1,me(e,t,r,n),t.child;case 14:return r=t.type,o=Fe(r,t.pendingProps),o=Fe(r.type,o),ua(e,t,r,o,n);case 15:return _f(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Fe(r,o),wo(e,t),t.tag=1,Ce(r)?(e=!0,zo(t)):e=!1,Tn(t,n),Rf(t,r,o),Li(t,r,o,n),ji(null,t,r,!0,e,n);case 19:return If(e,t,n);case 22:return Af(e,t,n)}throw Error(T(156,t.tag))};function Jf(e,t){return Ec(e,t)}function Pm(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ze(e,t,n,r){return new Pm(e,t,n,r)}function $s(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nm(e){if(typeof e=="function")return $s(e)?1:0;if(e!=null){if(e=e.$$typeof,e===as)return 11;if(e===cs)return 14}return 2}function jt(e,t){var n=e.alternate;return n===null?(n=ze(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Co(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")$s(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case dn:return Xt(n.children,o,l,t);case us:i=8,o|=8;break;case ei:return e=ze(12,n,t,o|2),e.elementType=ei,e.lanes=l,e;case ti:return e=ze(13,n,t,o),e.elementType=ti,e.lanes=l,e;case ni:return e=ze(19,n,t,o),e.elementType=ni,e.lanes=l,e;case sc:return cl(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case lc:i=10;break e;case ic:i=9;break e;case as:i=11;break e;case cs:i=14;break e;case xt:i=16,r=null;break e}throw Error(T(130,e==null?e:typeof e,""))}return t=ze(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Xt(e,t,n,r){return e=ze(7,e,r,t),e.lanes=n,e}function cl(e,t,n,r){return e=ze(22,e,r,t),e.elementType=sc,e.lanes=n,e.stateNode={isHidden:!1},e}function Ql(e,t,n){return e=ze(6,e,null,t),e.lanes=n,e}function Gl(e,t,n){return t=ze(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Tm(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tl(0),this.expirationTimes=Tl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Hs(e,t,n,r,o,l,i,s,u){return e=new Tm(e,t,n,s,u),t===1?(t=1,l===!0&&(t|=8)):t=0,l=ze(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rs(l),e}function Rm(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(nd)}catch(e){console.error(e)}}nd(),tc.exports=Le;var Ys=tc.exports,rd,Ca=Ys;rd=Ca.createRoot,Ca.hydrateRoot;/** - * @remix-run/router v1.20.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Ko(){return Ko=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function zm(){return Math.random().toString(36).substr(2,8)}function Ea(e,t){return{usr:e.state,key:e.key,idx:t}}function Hi(e,t,n,r){return n===void 0&&(n=null),Ko({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?id(t):t,{state:n,key:t&&t.key||r||zm()})}function ld(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function id(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Mm(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:l=!1}=r,i=o.history,s=Kt.Pop,u=null,a=f();a==null&&(a=0,i.replaceState(Ko({},i.state,{idx:a}),""));function f(){return(i.state||{idx:null}).idx}function p(){s=Kt.Pop;let S=f(),d=S==null?null:S-a;a=S,u&&u({action:s,location:y.location,delta:d})}function h(S,d){s=Kt.Push;let c=Hi(y.location,S,d);a=f()+1;let m=Ea(c,a),x=y.createHref(c);try{i.pushState(m,"",x)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;o.location.assign(x)}l&&u&&u({action:s,location:y.location,delta:1})}function g(S,d){s=Kt.Replace;let c=Hi(y.location,S,d);a=f();let m=Ea(c,a),x=y.createHref(c);i.replaceState(m,"",x),l&&u&&u({action:s,location:y.location,delta:0})}function v(S){let d=o.location.origin!=="null"?o.location.origin:o.location.href,c=typeof S=="string"?S:ld(S);return c=c.replace(/ $/,"%20"),od(d,"No window.location.(origin|href) available to create URL for href: "+c),new URL(c,d)}let y={get action(){return s},get location(){return e(o,i)},listen(S){if(u)throw new Error("A history only accepts one active listener");return o.addEventListener(ka,p),u=S,()=>{o.removeEventListener(ka,p),u=null}},createHref(S){return t(o,S)},createURL:v,encodeLocation(S){let d=v(S);return{pathname:d.pathname,search:d.search,hash:d.hash}},push:h,replace:g,go(S){return i.go(S)}};return y}var Pa;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Pa||(Pa={}));function Im(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const sd=["post","put","patch","delete"];new Set(sd);const Dm=["get",...sd];new Set(Dm);/** - * React Router v6.27.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Qi(){return Qi=Object.assign?Object.assign.bind():function(e){for(var t=1;t({basename:u,navigator:l,static:i,future:Qi({v7_relativeSplatPath:!1},s)}),[u,s,l,i]);typeof r=="string"&&(r=id(r));let{pathname:f="/",search:p="",hash:h="",state:g=null,key:v="default"}=r,y=w.useMemo(()=>{let S=Im(f,u);return S==null?null:{location:{pathname:S,search:p,hash:h,state:g,key:v},navigationType:o}},[u,f,p,h,g,v,o]);return y==null?null:w.createElement(bm.Provider,{value:a},w.createElement(ud.Provider,{children:n,value:y}))}new Promise(()=>{});/** - * React Router DOM v6.27.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */const Bm="6";try{window.__reactRouterVersion=Bm}catch{}const Vm="startTransition",Na=qa[Vm];function Wm(e){let{basename:t,children:n,future:r,window:o}=e,l=w.useRef();l.current==null&&(l.current=jm({window:o,v5Compat:!0}));let i=l.current,[s,u]=w.useState({action:i.action,location:i.location}),{v7_startTransition:a}=r||{},f=w.useCallback(p=>{a&&Na?Na(()=>u(p)):u(p)},[u,a]);return w.useLayoutEffect(()=>i.listen(f),[i,f]),w.createElement(Um,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:i,future:r})}var Ta;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ta||(Ta={}));var Ra;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ra||(Ra={}));/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const $m=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ad=(...e)=>e.filter((t,n,r)=>!!t&&r.indexOf(t)===n).join(" ");/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var Hm={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qm=w.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:l,iconNode:i,...s},u)=>w.createElement("svg",{ref:u,...Hm,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:ad("lucide",o),...s},[...i.map(([a,f])=>w.createElement(a,f)),...Array.isArray(l)?l:[l]]));/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ln=(e,t)=>{const n=w.forwardRef(({className:r,...o},l)=>w.createElement(Qm,{ref:l,iconNode:t,className:ad(`lucide-${$m(e)}`,r),...o}));return n.displayName=`${e}`,n};/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gm=ln("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Km=ln("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ym=ln("EyeOff",[["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"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Xm=ln("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"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zm=ln("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Kl=ln("RefreshCw",[["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"}]]);/** - * @license lucide-react v0.453.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jm=ln("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function it(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function qm(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function cd(...e){return t=>e.forEach(n=>qm(n,t))}function sn(...e){return w.useCallback(cd(...e),e)}function eg(e,t=[]){let n=[];function r(l,i){const s=w.createContext(i),u=n.length;n=[...n,i];const a=p=>{var d;const{scope:h,children:g,...v}=p,y=((d=h==null?void 0:h[e])==null?void 0:d[u])||s,S=w.useMemo(()=>v,Object.values(v));return C.jsx(y.Provider,{value:S,children:g})};a.displayName=l+"Provider";function f(p,h){var y;const g=((y=h==null?void 0:h[e])==null?void 0:y[u])||s,v=w.useContext(g);if(v)return v;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${l}\``)}return[a,f]}const o=()=>{const l=n.map(i=>w.createContext(i));return function(s){const u=(s==null?void 0:s[e])||l;return w.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return o.scopeName=e,[r,tg(o,...t)]}function tg(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(l){const i=r.reduce((s,{useScope:u,scopeName:a})=>{const p=u(l)[`__scope${a}`];return{...s,...p}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var fd=w.forwardRef((e,t)=>{const{children:n,...r}=e,o=w.Children.toArray(n),l=o.find(ng);if(l){const i=l.props.children,s=o.map(u=>u===l?w.Children.count(i)>1?w.Children.only(null):w.isValidElement(i)?i.props.children:null:u);return C.jsx(Gi,{...r,ref:t,children:w.isValidElement(i)?w.cloneElement(i,void 0,s):null})}return C.jsx(Gi,{...r,ref:t,children:n})});fd.displayName="Slot";var Gi=w.forwardRef((e,t)=>{const{children:n,...r}=e;if(w.isValidElement(n)){const o=og(n);return w.cloneElement(n,{...rg(r,n.props),ref:t?cd(t,o):o})}return w.Children.count(n)>1?w.Children.only(null):null});Gi.displayName="SlotClone";var dd=({children:e})=>C.jsx(C.Fragment,{children:e});function ng(e){return w.isValidElement(e)&&e.type===dd}function rg(e,t){const n={...t};for(const r in t){const o=e[r],l=t[r];/^on[A-Z]/.test(r)?o&&l?n[r]=(...s)=>{l(...s),o(...s)}:o&&(n[r]=o):r==="style"?n[r]={...o,...l}:r==="className"&&(n[r]=[o,l].filter(Boolean).join(" "))}return{...e,...n}}function og(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var lg=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],un=lg.reduce((e,t)=>{const n=w.forwardRef((r,o)=>{const{asChild:l,...i}=r,s=l?fd:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),C.jsx(s,{...i,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function ig(e,t){e&&Ys.flushSync(()=>e.dispatchEvent(t))}function $n(e){const t=w.useRef(e);return w.useEffect(()=>{t.current=e}),w.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function sg(e,t=globalThis==null?void 0:globalThis.document){const n=$n(e);w.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ug="DismissableLayer",Ki="dismissableLayer.update",ag="dismissableLayer.pointerDownOutside",cg="dismissableLayer.focusOutside",Oa,pd=w.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),hd=w.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:i,onDismiss:s,...u}=e,a=w.useContext(pd),[f,p]=w.useState(null),h=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,g]=w.useState({}),v=sn(t,E=>p(E)),y=Array.from(a.layers),[S]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),d=y.indexOf(S),c=f?y.indexOf(f):-1,m=a.layersWithOutsidePointerEventsDisabled.size>0,x=c>=d,k=pg(E=>{const L=E.target,b=[...a.branches].some(_=>_.contains(L));!x||b||(o==null||o(E),i==null||i(E),E.defaultPrevented||s==null||s())},h),N=hg(E=>{const L=E.target;[...a.branches].some(_=>_.contains(L))||(l==null||l(E),i==null||i(E),E.defaultPrevented||s==null||s())},h);return sg(E=>{c===a.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},h),w.useEffect(()=>{if(f)return n&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(Oa=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(f)),a.layers.add(f),La(),()=>{n&&a.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=Oa)}},[f,h,n,a]),w.useEffect(()=>()=>{f&&(a.layers.delete(f),a.layersWithOutsidePointerEventsDisabled.delete(f),La())},[f,a]),w.useEffect(()=>{const E=()=>g({});return document.addEventListener(Ki,E),()=>document.removeEventListener(Ki,E)},[]),C.jsx(un.div,{...u,ref:v,style:{pointerEvents:m?x?"auto":"none":void 0,...e.style},onFocusCapture:it(e.onFocusCapture,N.onFocusCapture),onBlurCapture:it(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:it(e.onPointerDownCapture,k.onPointerDownCapture)})});hd.displayName=ug;var fg="DismissableLayerBranch",dg=w.forwardRef((e,t)=>{const n=w.useContext(pd),r=w.useRef(null),o=sn(t,r);return w.useEffect(()=>{const l=r.current;if(l)return n.branches.add(l),()=>{n.branches.delete(l)}},[n.branches]),C.jsx(un.div,{...e,ref:o})});dg.displayName=fg;function pg(e,t=globalThis==null?void 0:globalThis.document){const n=$n(e),r=w.useRef(!1),o=w.useRef(()=>{});return w.useEffect(()=>{const l=s=>{if(s.target&&!r.current){let u=function(){md(ag,n,a,{discrete:!0})};const a={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=u,t.addEventListener("click",o.current,{once:!0})):u()}else t.removeEventListener("click",o.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",l),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function hg(e,t=globalThis==null?void 0:globalThis.document){const n=$n(e),r=w.useRef(!1);return w.useEffect(()=>{const o=l=>{l.target&&!r.current&&md(cg,n,{originalEvent:l},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function La(){const e=new CustomEvent(Ki);document.dispatchEvent(e)}function md(e,t,n,{discrete:r}){const o=n.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?ig(o,l):o.dispatchEvent(l)}var bn=globalThis!=null&&globalThis.document?w.useLayoutEffect:()=>{},mg=qa.useId||(()=>{}),gg=0;function vg(e){const[t,n]=w.useState(mg());return bn(()=>{n(r=>r??String(gg++))},[e]),t?`radix-${t}`:""}const yg=["top","right","bottom","left"],It=Math.min,Pe=Math.max,Yo=Math.round,uo=Math.floor,Je=e=>({x:e,y:e}),wg={left:"right",right:"left",bottom:"top",top:"bottom"},xg={start:"end",end:"start"};function Yi(e,t,n){return Pe(e,It(t,n))}function ht(e,t){return typeof e=="function"?e(t):e}function mt(e){return e.split("-")[0]}function Hn(e){return e.split("-")[1]}function Xs(e){return e==="x"?"y":"x"}function Zs(e){return e==="y"?"height":"width"}function Dt(e){return["top","bottom"].includes(mt(e))?"y":"x"}function Js(e){return Xs(Dt(e))}function Sg(e,t,n){n===void 0&&(n=!1);const r=Hn(e),o=Js(e),l=Zs(o);let i=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=Xo(i)),[i,Xo(i)]}function Cg(e){const t=Xo(e);return[Xi(e),t,Xi(t)]}function Xi(e){return e.replace(/start|end/g,t=>xg[t])}function kg(e,t,n){const r=["left","right"],o=["right","left"],l=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?l:i;default:return[]}}function Eg(e,t,n,r){const o=Hn(e);let l=kg(mt(e),n==="start",r);return o&&(l=l.map(i=>i+"-"+o),t&&(l=l.concat(l.map(Xi)))),l}function Xo(e){return e.replace(/left|right|bottom|top/g,t=>wg[t])}function Pg(e){return{top:0,right:0,bottom:0,left:0,...e}}function gd(e){return typeof e!="number"?Pg(e):{top:e,right:e,bottom:e,left:e}}function Zo(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function _a(e,t,n){let{reference:r,floating:o}=e;const l=Dt(t),i=Js(t),s=Zs(i),u=mt(t),a=l==="y",f=r.x+r.width/2-o.width/2,p=r.y+r.height/2-o.height/2,h=r[s]/2-o[s]/2;let g;switch(u){case"top":g={x:f,y:r.y-o.height};break;case"bottom":g={x:f,y:r.y+r.height};break;case"right":g={x:r.x+r.width,y:p};break;case"left":g={x:r.x-o.width,y:p};break;default:g={x:r.x,y:r.y}}switch(Hn(t)){case"start":g[i]-=h*(n&&a?-1:1);break;case"end":g[i]+=h*(n&&a?-1:1);break}return g}const Ng=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:l=[],platform:i}=n,s=l.filter(Boolean),u=await(i.isRTL==null?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:p}=_a(a,r,u),h=r,g={},v=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:l,platform:i,elements:s,middlewareData:u}=t,{element:a,padding:f=0}=ht(e,t)||{};if(a==null)return{};const p=gd(f),h={x:n,y:r},g=Js(o),v=Zs(g),y=await i.getDimensions(a),S=g==="y",d=S?"top":"left",c=S?"bottom":"right",m=S?"clientHeight":"clientWidth",x=l.reference[v]+l.reference[g]-h[g]-l.floating[v],k=h[g]-l.reference[g],N=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a));let E=N?N[m]:0;(!E||!await(i.isElement==null?void 0:i.isElement(N)))&&(E=s.floating[m]||l.floating[v]);const L=x/2-k/2,b=E/2-y[v]/2-1,_=It(p[d],b),O=It(p[c],b),R=_,M=E-y[v]-O,I=E/2-y[v]/2+L,z=Yi(R,I,M),F=!u.arrow&&Hn(o)!=null&&I!==z&&l.reference[v]/2-(II<=0)){var O,R;const I=(((O=l.flip)==null?void 0:O.index)||0)+1,z=E[I];if(z)return{data:{index:I,overflows:_},reset:{placement:z}};let F=(R=_.filter($=>$.overflows[0]<=0).sort(($,P)=>$.overflows[1]-P.overflows[1])[0])==null?void 0:R.placement;if(!F)switch(g){case"bestFit":{var M;const $=(M=_.filter(P=>{if(N){const j=Dt(P.placement);return j===c||j==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(j=>j>0).reduce((j,D)=>j+D,0)]).sort((P,j)=>P[1]-j[1])[0])==null?void 0:M[0];$&&(F=$);break}case"initialPlacement":F=s;break}if(o!==F)return{reset:{placement:F}}}return{}}}};function Aa(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ja(e){return yg.some(t=>e[t]>=0)}const Og=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=ht(e,t);switch(r){case"referenceHidden":{const l=await Ir(t,{...o,elementContext:"reference"}),i=Aa(l,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:ja(i)}}}case"escaped":{const l=await Ir(t,{...o,altBoundary:!0}),i=Aa(l,n.floating);return{data:{escapedOffsets:i,escaped:ja(i)}}}default:return{}}}}};async function Lg(e,t){const{placement:n,platform:r,elements:o}=e,l=await(r.isRTL==null?void 0:r.isRTL(o.floating)),i=mt(n),s=Hn(n),u=Dt(n)==="y",a=["left","top"].includes(i)?-1:1,f=l&&u?-1:1,p=ht(t,e);let{mainAxis:h,crossAxis:g,alignmentAxis:v}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return s&&typeof v=="number"&&(g=s==="end"?v*-1:v),u?{x:g*f,y:h*a}:{x:h*a,y:g*f}}const _g=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:l,placement:i,middlewareData:s}=t,u=await Lg(t,e);return i===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:o+u.x,y:l+u.y,data:{...u,placement:i}}}}},Ag=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:l=!0,crossAxis:i=!1,limiter:s={fn:S=>{let{x:d,y:c}=S;return{x:d,y:c}}},...u}=ht(e,t),a={x:n,y:r},f=await Ir(t,u),p=Dt(mt(o)),h=Xs(p);let g=a[h],v=a[p];if(l){const S=h==="y"?"top":"left",d=h==="y"?"bottom":"right",c=g+f[S],m=g-f[d];g=Yi(c,g,m)}if(i){const S=p==="y"?"top":"left",d=p==="y"?"bottom":"right",c=v+f[S],m=v-f[d];v=Yi(c,v,m)}const y=s.fn({...t,[h]:g,[p]:v});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[h]:l,[p]:i}}}}}},jg=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:l,middlewareData:i}=t,{offset:s=0,mainAxis:u=!0,crossAxis:a=!0}=ht(e,t),f={x:n,y:r},p=Dt(o),h=Xs(p);let g=f[h],v=f[p];const y=ht(s,t),S=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(u){const m=h==="y"?"height":"width",x=l.reference[h]-l.floating[m]+S.mainAxis,k=l.reference[h]+l.reference[m]-S.mainAxis;gk&&(g=k)}if(a){var d,c;const m=h==="y"?"width":"height",x=["top","left"].includes(mt(o)),k=l.reference[p]-l.floating[m]+(x&&((d=i.offset)==null?void 0:d[p])||0)+(x?0:S.crossAxis),N=l.reference[p]+l.reference[m]+(x?0:((c=i.offset)==null?void 0:c[p])||0)-(x?S.crossAxis:0);vN&&(v=N)}return{[h]:g,[p]:v}}}},zg=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:l,platform:i,elements:s}=t,{apply:u=()=>{},...a}=ht(e,t),f=await Ir(t,a),p=mt(o),h=Hn(o),g=Dt(o)==="y",{width:v,height:y}=l.floating;let S,d;p==="top"||p==="bottom"?(S=p,d=h===(await(i.isRTL==null?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(d=p,S=h==="end"?"top":"bottom");const c=y-f.top-f.bottom,m=v-f.left-f.right,x=It(y-f[S],c),k=It(v-f[d],m),N=!t.middlewareData.shift;let E=x,L=k;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(L=m),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=c),N&&!h){const _=Pe(f.left,0),O=Pe(f.right,0),R=Pe(f.top,0),M=Pe(f.bottom,0);g?L=v-2*(_!==0||O!==0?_+O:Pe(f.left,f.right)):E=y-2*(R!==0||M!==0?R+M:Pe(f.top,f.bottom))}await u({...t,availableWidth:L,availableHeight:E});const b=await i.getDimensions(s.floating);return v!==b.width||y!==b.height?{reset:{rects:!0}}:{}}}};function ml(){return typeof window<"u"}function Qn(e){return vd(e)?(e.nodeName||"").toLowerCase():"#document"}function Re(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function et(e){var t;return(t=(vd(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function vd(e){return ml()?e instanceof Node||e instanceof Re(e).Node:!1}function He(e){return ml()?e instanceof Element||e instanceof Re(e).Element:!1}function qe(e){return ml()?e instanceof HTMLElement||e instanceof Re(e).HTMLElement:!1}function za(e){return!ml()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Re(e).ShadowRoot}function Wr(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Qe(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Mg(e){return["table","td","th"].includes(Qn(e))}function gl(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch{return!1}})}function qs(e){const t=eu(),n=He(e)?Qe(e):e;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function Ig(e){let t=bt(e);for(;qe(t)&&!Fn(t);){if(qs(t))return t;if(gl(t))return null;t=bt(t)}return null}function eu(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Fn(e){return["html","body","#document"].includes(Qn(e))}function Qe(e){return Re(e).getComputedStyle(e)}function vl(e){return He(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function bt(e){if(Qn(e)==="html")return e;const t=e.assignedSlot||e.parentNode||za(e)&&e.host||et(e);return za(t)?t.host:t}function yd(e){const t=bt(e);return Fn(t)?e.ownerDocument?e.ownerDocument.body:e.body:qe(t)&&Wr(t)?t:yd(t)}function Dr(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=yd(e),l=o===((r=e.ownerDocument)==null?void 0:r.body),i=Re(o);if(l){const s=Zi(i);return t.concat(i,i.visualViewport||[],Wr(o)?o:[],s&&n?Dr(s):[])}return t.concat(o,Dr(o,[],n))}function Zi(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function wd(e){const t=Qe(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=qe(e),l=o?e.offsetWidth:n,i=o?e.offsetHeight:r,s=Yo(n)!==l||Yo(r)!==i;return s&&(n=l,r=i),{width:n,height:r,$:s}}function tu(e){return He(e)?e:e.contextElement}function On(e){const t=tu(e);if(!qe(t))return Je(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:l}=wd(t);let i=(l?Yo(n.width):n.width)/r,s=(l?Yo(n.height):n.height)/o;return(!i||!Number.isFinite(i))&&(i=1),(!s||!Number.isFinite(s))&&(s=1),{x:i,y:s}}const Dg=Je(0);function xd(e){const t=Re(e);return!eu()||!t.visualViewport?Dg:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function bg(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Re(e)?!1:t}function nn(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),l=tu(e);let i=Je(1);t&&(r?He(r)&&(i=On(r)):i=On(e));const s=bg(l,n,r)?xd(l):Je(0);let u=(o.left+s.x)/i.x,a=(o.top+s.y)/i.y,f=o.width/i.x,p=o.height/i.y;if(l){const h=Re(l),g=r&&He(r)?Re(r):r;let v=h,y=Zi(v);for(;y&&r&&g!==v;){const S=On(y),d=y.getBoundingClientRect(),c=Qe(y),m=d.left+(y.clientLeft+parseFloat(c.paddingLeft))*S.x,x=d.top+(y.clientTop+parseFloat(c.paddingTop))*S.y;u*=S.x,a*=S.y,f*=S.x,p*=S.y,u+=m,a+=x,v=Re(y),y=Zi(v)}}return Zo({width:f,height:p,x:u,y:a})}function nu(e,t){const n=vl(e).scrollLeft;return t?t.left+n:nn(et(e)).left+n}function Sd(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),o=r.left+t.scrollLeft-(n?0:nu(e,r)),l=r.top+t.scrollTop;return{x:o,y:l}}function Fg(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const l=o==="fixed",i=et(r),s=t?gl(t.floating):!1;if(r===i||s&&l)return n;let u={scrollLeft:0,scrollTop:0},a=Je(1);const f=Je(0),p=qe(r);if((p||!p&&!l)&&((Qn(r)!=="body"||Wr(i))&&(u=vl(r)),qe(r))){const g=nn(r);a=On(r),f.x=g.x+r.clientLeft,f.y=g.y+r.clientTop}const h=i&&!p&&!l?Sd(i,u,!0):Je(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-u.scrollLeft*a.x+f.x+h.x,y:n.y*a.y-u.scrollTop*a.y+f.y+h.y}}function Ug(e){return Array.from(e.getClientRects())}function Bg(e){const t=et(e),n=vl(e),r=e.ownerDocument.body,o=Pe(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),l=Pe(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+nu(e);const s=-n.scrollTop;return Qe(r).direction==="rtl"&&(i+=Pe(t.clientWidth,r.clientWidth)-o),{width:o,height:l,x:i,y:s}}function Vg(e,t){const n=Re(e),r=et(e),o=n.visualViewport;let l=r.clientWidth,i=r.clientHeight,s=0,u=0;if(o){l=o.width,i=o.height;const a=eu();(!a||a&&t==="fixed")&&(s=o.offsetLeft,u=o.offsetTop)}return{width:l,height:i,x:s,y:u}}function Wg(e,t){const n=nn(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,l=qe(e)?On(e):Je(1),i=e.clientWidth*l.x,s=e.clientHeight*l.y,u=o*l.x,a=r*l.y;return{width:i,height:s,x:u,y:a}}function Ma(e,t,n){let r;if(t==="viewport")r=Vg(e,n);else if(t==="document")r=Bg(et(e));else if(He(t))r=Wg(t,n);else{const o=xd(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Zo(r)}function Cd(e,t){const n=bt(e);return n===t||!He(n)||Fn(n)?!1:Qe(n).position==="fixed"||Cd(n,t)}function $g(e,t){const n=t.get(e);if(n)return n;let r=Dr(e,[],!1).filter(s=>He(s)&&Qn(s)!=="body"),o=null;const l=Qe(e).position==="fixed";let i=l?bt(e):e;for(;He(i)&&!Fn(i);){const s=Qe(i),u=qs(i);!u&&s.position==="fixed"&&(o=null),(l?!u&&!o:!u&&s.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||Wr(i)&&!u&&Cd(e,i))?r=r.filter(f=>f!==i):o=s,i=bt(i)}return t.set(e,r),r}function Hg(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i=[...n==="clippingAncestors"?gl(t)?[]:$g(t,this._c):[].concat(n),r],s=i[0],u=i.reduce((a,f)=>{const p=Ma(t,f,o);return a.top=Pe(p.top,a.top),a.right=It(p.right,a.right),a.bottom=It(p.bottom,a.bottom),a.left=Pe(p.left,a.left),a},Ma(t,s,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function Qg(e){const{width:t,height:n}=wd(e);return{width:t,height:n}}function Gg(e,t,n){const r=qe(t),o=et(t),l=n==="fixed",i=nn(e,!0,l,t);let s={scrollLeft:0,scrollTop:0};const u=Je(0);if(r||!r&&!l)if((Qn(t)!=="body"||Wr(o))&&(s=vl(t)),r){const h=nn(t,!0,l,t);u.x=h.x+t.clientLeft,u.y=h.y+t.clientTop}else o&&(u.x=nu(o));const a=o&&!r&&!l?Sd(o,s):Je(0),f=i.left+s.scrollLeft-u.x-a.x,p=i.top+s.scrollTop-u.y-a.y;return{x:f,y:p,width:i.width,height:i.height}}function Yl(e){return Qe(e).position==="static"}function Ia(e,t){if(!qe(e)||Qe(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return et(e)===n&&(n=n.ownerDocument.body),n}function kd(e,t){const n=Re(e);if(gl(e))return n;if(!qe(e)){let o=bt(e);for(;o&&!Fn(o);){if(He(o)&&!Yl(o))return o;o=bt(o)}return n}let r=Ia(e,t);for(;r&&Mg(r)&&Yl(r);)r=Ia(r,t);return r&&Fn(r)&&Yl(r)&&!qs(r)?n:r||Ig(e)||n}const Kg=async function(e){const t=this.getOffsetParent||kd,n=this.getDimensions,r=await n(e.floating);return{reference:Gg(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Yg(e){return Qe(e).direction==="rtl"}const Xg={convertOffsetParentRelativeRectToViewportRelativeRect:Fg,getDocumentElement:et,getClippingRect:Hg,getOffsetParent:kd,getElementRects:Kg,getClientRects:Ug,getDimensions:Qg,getScale:On,isElement:He,isRTL:Yg};function Zg(e,t){let n=null,r;const o=et(e);function l(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function i(s,u){s===void 0&&(s=!1),u===void 0&&(u=1),l();const{left:a,top:f,width:p,height:h}=e.getBoundingClientRect();if(s||t(),!p||!h)return;const g=uo(f),v=uo(o.clientWidth-(a+p)),y=uo(o.clientHeight-(f+h)),S=uo(a),c={rootMargin:-g+"px "+-v+"px "+-y+"px "+-S+"px",threshold:Pe(0,It(1,u))||1};let m=!0;function x(k){const N=k[0].intersectionRatio;if(N!==u){if(!m)return i();N?i(!1,N):r=setTimeout(()=>{i(!1,1e-7)},1e3)}m=!1}try{n=new IntersectionObserver(x,{...c,root:o.ownerDocument})}catch{n=new IntersectionObserver(x,c)}n.observe(e)}return i(!0),l}function Jg(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:l=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,a=tu(e),f=o||l?[...a?Dr(a):[],...Dr(t)]:[];f.forEach(d=>{o&&d.addEventListener("scroll",n,{passive:!0}),l&&d.addEventListener("resize",n)});const p=a&&s?Zg(a,n):null;let h=-1,g=null;i&&(g=new ResizeObserver(d=>{let[c]=d;c&&c.target===a&&g&&(g.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var m;(m=g)==null||m.observe(t)})),n()}),a&&!u&&g.observe(a),g.observe(t));let v,y=u?nn(e):null;u&&S();function S(){const d=nn(e);y&&(d.x!==y.x||d.y!==y.y||d.width!==y.width||d.height!==y.height)&&n(),y=d,v=requestAnimationFrame(S)}return n(),()=>{var d;f.forEach(c=>{o&&c.removeEventListener("scroll",n),l&&c.removeEventListener("resize",n)}),p==null||p(),(d=g)==null||d.disconnect(),g=null,u&&cancelAnimationFrame(v)}}const qg=_g,ev=Ag,tv=Rg,nv=zg,rv=Og,Da=Tg,ov=jg,lv=(e,t,n)=>{const r=new Map,o={platform:Xg,...n},l={...o.platform,_c:r};return Ng(e,t,{...o,platform:l})};var ko=typeof document<"u"?w.useLayoutEffect:w.useEffect;function Jo(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Jo(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const l=o[r];if(!(l==="_owner"&&e.$$typeof)&&!Jo(e[l],t[l]))return!1}return!0}return e!==e&&t!==t}function Ed(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ba(e,t){const n=Ed(e);return Math.round(t*n)/n}function Xl(e){const t=w.useRef(e);return ko(()=>{t.current=e}),t}function iv(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:l,floating:i}={},transform:s=!0,whileElementsMounted:u,open:a}=e,[f,p]=w.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,g]=w.useState(r);Jo(h,r)||g(r);const[v,y]=w.useState(null),[S,d]=w.useState(null),c=w.useCallback(P=>{P!==N.current&&(N.current=P,y(P))},[]),m=w.useCallback(P=>{P!==E.current&&(E.current=P,d(P))},[]),x=l||v,k=i||S,N=w.useRef(null),E=w.useRef(null),L=w.useRef(f),b=u!=null,_=Xl(u),O=Xl(o),R=Xl(a),M=w.useCallback(()=>{if(!N.current||!E.current)return;const P={placement:t,strategy:n,middleware:h};O.current&&(P.platform=O.current),lv(N.current,E.current,P).then(j=>{const D={...j,isPositioned:R.current!==!1};I.current&&!Jo(L.current,D)&&(L.current=D,Ys.flushSync(()=>{p(D)}))})},[h,t,n,O,R]);ko(()=>{a===!1&&L.current.isPositioned&&(L.current.isPositioned=!1,p(P=>({...P,isPositioned:!1})))},[a]);const I=w.useRef(!1);ko(()=>(I.current=!0,()=>{I.current=!1}),[]),ko(()=>{if(x&&(N.current=x),k&&(E.current=k),x&&k){if(_.current)return _.current(x,k,M);M()}},[x,k,M,_,b]);const z=w.useMemo(()=>({reference:N,floating:E,setReference:c,setFloating:m}),[c,m]),F=w.useMemo(()=>({reference:x,floating:k}),[x,k]),$=w.useMemo(()=>{const P={position:n,left:0,top:0};if(!F.floating)return P;const j=ba(F.floating,f.x),D=ba(F.floating,f.y);return s?{...P,transform:"translate("+j+"px, "+D+"px)",...Ed(F.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:j,top:D}},[n,s,F.floating,f.x,f.y]);return w.useMemo(()=>({...f,update:M,refs:z,elements:F,floatingStyles:$}),[f,M,z,F,$])}const sv=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Da({element:r.current,padding:o}).fn(n):{}:r?Da({element:r,padding:o}).fn(n):{}}}},uv=(e,t)=>({...qg(e),options:[e,t]}),av=(e,t)=>({...ev(e),options:[e,t]}),cv=(e,t)=>({...ov(e),options:[e,t]}),fv=(e,t)=>({...tv(e),options:[e,t]}),dv=(e,t)=>({...nv(e),options:[e,t]}),pv=(e,t)=>({...rv(e),options:[e,t]}),hv=(e,t)=>({...sv(e),options:[e,t]});var mv="Arrow",Pd=w.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...l}=e;return C.jsx(un.svg,{...l,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:C.jsx("polygon",{points:"0,0 30,0 15,10"})})});Pd.displayName=mv;var gv=Pd;function vv(e,t=[]){let n=[];function r(l,i){const s=w.createContext(i),u=n.length;n=[...n,i];function a(p){const{scope:h,children:g,...v}=p,y=(h==null?void 0:h[e][u])||s,S=w.useMemo(()=>v,Object.values(v));return C.jsx(y.Provider,{value:S,children:g})}function f(p,h){const g=(h==null?void 0:h[e][u])||s,v=w.useContext(g);if(v)return v;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${l}\``)}return a.displayName=l+"Provider",[a,f]}const o=()=>{const l=n.map(i=>w.createContext(i));return function(s){const u=(s==null?void 0:s[e])||l;return w.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return o.scopeName=e,[r,yv(o,...t)]}function yv(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(l){const i=r.reduce((s,{useScope:u,scopeName:a})=>{const p=u(l)[`__scope${a}`];return{...s,...p}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function wv(e){const[t,n]=w.useState(void 0);return bn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const l=o[0];let i,s;if("borderBoxSize"in l){const u=l.borderBoxSize,a=Array.isArray(u)?u[0]:u;i=a.inlineSize,s=a.blockSize}else i=e.offsetWidth,s=e.offsetHeight;n({width:i,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var ru="Popper",[Nd,Td]=vv(ru),[xv,Rd]=Nd(ru),Od=e=>{const{__scopePopper:t,children:n}=e,[r,o]=w.useState(null);return C.jsx(xv,{scope:t,anchor:r,onAnchorChange:o,children:n})};Od.displayName=ru;var Ld="PopperAnchor",_d=w.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,l=Rd(Ld,n),i=w.useRef(null),s=sn(t,i);return w.useEffect(()=>{l.onAnchorChange((r==null?void 0:r.current)||i.current)}),r?null:C.jsx(un.div,{...o,ref:s})});_d.displayName=Ld;var ou="PopperContent",[Sv,Cv]=Nd(ou),Ad=w.forwardRef((e,t)=>{var Vt,uu,au,cu,fu,du;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:l="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:u=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:h=!1,updatePositionStrategy:g="optimized",onPlaced:v,...y}=e,S=Rd(ou,n),[d,c]=w.useState(null),m=sn(t,Yn=>c(Yn)),[x,k]=w.useState(null),N=wv(x),E=(N==null?void 0:N.width)??0,L=(N==null?void 0:N.height)??0,b=r+(l!=="center"?"-"+l:""),_=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},O=Array.isArray(a)?a:[a],R=O.length>0,M={padding:_,boundary:O.filter(Ev),altBoundary:R},{refs:I,floatingStyles:z,placement:F,isPositioned:$,middlewareData:P}=iv({strategy:"fixed",placement:b,whileElementsMounted:(...Yn)=>Jg(...Yn,{animationFrame:g==="always"}),elements:{reference:S.anchor},middleware:[uv({mainAxis:o+L,alignmentAxis:i}),u&&av({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?cv():void 0,...M}),u&&fv({...M}),dv({...M,apply:({elements:Yn,rects:pu,availableWidth:tp,availableHeight:np})=>{const{width:rp,height:op}=pu.reference,$r=Yn.floating.style;$r.setProperty("--radix-popper-available-width",`${tp}px`),$r.setProperty("--radix-popper-available-height",`${np}px`),$r.setProperty("--radix-popper-anchor-width",`${rp}px`),$r.setProperty("--radix-popper-anchor-height",`${op}px`)}}),x&&hv({element:x,padding:s}),Pv({arrowWidth:E,arrowHeight:L}),h&&pv({strategy:"referenceHidden",...M})]}),[j,D]=Md(F),V=$n(v);bn(()=>{$&&(V==null||V())},[$,V]);const ne=(Vt=P.arrow)==null?void 0:Vt.x,an=(uu=P.arrow)==null?void 0:uu.y,tt=((au=P.arrow)==null?void 0:au.centerOffset)!==0,[Kn,nt]=w.useState();return bn(()=>{d&&nt(window.getComputedStyle(d).zIndex)},[d]),C.jsx("div",{ref:I.setFloating,"data-radix-popper-content-wrapper":"",style:{...z,transform:$?z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Kn,"--radix-popper-transform-origin":[(cu=P.transformOrigin)==null?void 0:cu.x,(fu=P.transformOrigin)==null?void 0:fu.y].join(" "),...((du=P.hide)==null?void 0:du.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:C.jsx(Sv,{scope:n,placedSide:j,onArrowChange:k,arrowX:ne,arrowY:an,shouldHideArrow:tt,children:C.jsx(un.div,{"data-side":j,"data-align":D,...y,ref:m,style:{...y.style,animation:$?void 0:"none"}})})})});Ad.displayName=ou;var jd="PopperArrow",kv={top:"bottom",right:"left",bottom:"top",left:"right"},zd=w.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,l=Cv(jd,r),i=kv[l.placedSide];return C.jsx("span",{ref:l.onArrowChange,style:{position:"absolute",left:l.arrowX,top:l.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[l.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[l.placedSide],visibility:l.shouldHideArrow?"hidden":void 0},children:C.jsx(gv,{...o,ref:n,style:{...o.style,display:"block"}})})});zd.displayName=jd;function Ev(e){return e!==null}var Pv=e=>({name:"transformOrigin",options:e,fn(t){var S,d,c;const{placement:n,rects:r,middlewareData:o}=t,i=((S=o.arrow)==null?void 0:S.centerOffset)!==0,s=i?0:e.arrowWidth,u=i?0:e.arrowHeight,[a,f]=Md(n),p={start:"0%",center:"50%",end:"100%"}[f],h=(((d=o.arrow)==null?void 0:d.x)??0)+s/2,g=(((c=o.arrow)==null?void 0:c.y)??0)+u/2;let v="",y="";return a==="bottom"?(v=i?p:`${h}px`,y=`${-u}px`):a==="top"?(v=i?p:`${h}px`,y=`${r.floating.height+u}px`):a==="right"?(v=`${-u}px`,y=i?p:`${g}px`):a==="left"&&(v=`${r.floating.width+u}px`,y=i?p:`${g}px`),{data:{x:v,y}}}});function Md(e){const[t,n="center"]=e.split("-");return[t,n]}var Nv=Od,Tv=_d,Rv=Ad,Ov=zd;function Lv(e,t){return w.useReducer((n,r)=>t[n][r]??n,e)}var Id=e=>{const{present:t,children:n}=e,r=_v(t),o=typeof n=="function"?n({present:r.isPresent}):w.Children.only(n),l=sn(r.ref,Av(o));return typeof n=="function"||r.isPresent?w.cloneElement(o,{ref:l}):null};Id.displayName="Presence";function _v(e){const[t,n]=w.useState(),r=w.useRef({}),o=w.useRef(e),l=w.useRef("none"),i=e?"mounted":"unmounted",[s,u]=Lv(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return w.useEffect(()=>{const a=ao(r.current);l.current=s==="mounted"?a:"none"},[s]),bn(()=>{const a=r.current,f=o.current;if(f!==e){const h=l.current,g=ao(a);e?u("MOUNT"):g==="none"||(a==null?void 0:a.display)==="none"?u("UNMOUNT"):u(f&&h!==g?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),bn(()=>{if(t){let a;const f=t.ownerDocument.defaultView??window,p=g=>{const y=ao(r.current).includes(g.animationName);if(g.target===t&&y&&(u("ANIMATION_END"),!o.current)){const S=t.style.animationFillMode;t.style.animationFillMode="forwards",a=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=S)})}},h=g=>{g.target===t&&(l.current=ao(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{f.clearTimeout(a),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:w.useCallback(a=>{a&&(r.current=getComputedStyle(a)),n(a)},[])}}function ao(e){return(e==null?void 0:e.animationName)||"none"}function Av(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function jv({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=zv({defaultProp:t,onChange:n}),l=e!==void 0,i=l?e:r,s=$n(n),u=w.useCallback(a=>{if(l){const p=typeof a=="function"?a(e):a;p!==e&&s(p)}else o(a)},[l,e,o,s]);return[i,u]}function zv({defaultProp:e,onChange:t}){const n=w.useState(e),[r]=n,o=w.useRef(r),l=$n(t);return w.useEffect(()=>{o.current!==r&&(l(r),o.current=r)},[r,o,l]),n}var Mv="VisuallyHidden",Dd=w.forwardRef((e,t)=>C.jsx(un.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));Dd.displayName=Mv;var Iv=Dd,[yl,Yy]=eg("Tooltip",[Td]),wl=Td(),bd="TooltipProvider",Dv=700,Ji="tooltip.open",[bv,lu]=yl(bd),Fd=e=>{const{__scopeTooltip:t,delayDuration:n=Dv,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:l}=e,[i,s]=w.useState(!0),u=w.useRef(!1),a=w.useRef(0);return w.useEffect(()=>{const f=a.current;return()=>window.clearTimeout(f)},[]),C.jsx(bv,{scope:t,isOpenDelayed:i,delayDuration:n,onOpen:w.useCallback(()=>{window.clearTimeout(a.current),s(!1)},[]),onClose:w.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>s(!0),r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:w.useCallback(f=>{u.current=f},[]),disableHoverableContent:o,children:l})};Fd.displayName=bd;var xl="Tooltip",[Fv,Sl]=yl(xl),Ud=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:l,disableHoverableContent:i,delayDuration:s}=e,u=lu(xl,e.__scopeTooltip),a=wl(t),[f,p]=w.useState(null),h=vg(),g=w.useRef(0),v=i??u.disableHoverableContent,y=s??u.delayDuration,S=w.useRef(!1),[d=!1,c]=jv({prop:r,defaultProp:o,onChange:E=>{E?(u.onOpen(),document.dispatchEvent(new CustomEvent(Ji))):u.onClose(),l==null||l(E)}}),m=w.useMemo(()=>d?S.current?"delayed-open":"instant-open":"closed",[d]),x=w.useCallback(()=>{window.clearTimeout(g.current),S.current=!1,c(!0)},[c]),k=w.useCallback(()=>{window.clearTimeout(g.current),c(!1)},[c]),N=w.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>{S.current=!0,c(!0)},y)},[y,c]);return w.useEffect(()=>()=>window.clearTimeout(g.current),[]),C.jsx(Nv,{...a,children:C.jsx(Fv,{scope:t,contentId:h,open:d,stateAttribute:m,trigger:f,onTriggerChange:p,onTriggerEnter:w.useCallback(()=>{u.isOpenDelayed?N():x()},[u.isOpenDelayed,N,x]),onTriggerLeave:w.useCallback(()=>{v?k():window.clearTimeout(g.current)},[k,v]),onOpen:x,onClose:k,disableHoverableContent:v,children:n})})};Ud.displayName=xl;var qi="TooltipTrigger",Bd=w.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Sl(qi,n),l=lu(qi,n),i=wl(n),s=w.useRef(null),u=sn(t,s,o.onTriggerChange),a=w.useRef(!1),f=w.useRef(!1),p=w.useCallback(()=>a.current=!1,[]);return w.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),C.jsx(Tv,{asChild:!0,...i,children:C.jsx(un.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:u,onPointerMove:it(e.onPointerMove,h=>{h.pointerType!=="touch"&&!f.current&&!l.isPointerInTransitRef.current&&(o.onTriggerEnter(),f.current=!0)}),onPointerLeave:it(e.onPointerLeave,()=>{o.onTriggerLeave(),f.current=!1}),onPointerDown:it(e.onPointerDown,()=>{a.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:it(e.onFocus,()=>{a.current||o.onOpen()}),onBlur:it(e.onBlur,o.onClose),onClick:it(e.onClick,o.onClose)})})});Bd.displayName=qi;var Uv="TooltipPortal",[Xy,Bv]=yl(Uv,{forceMount:void 0}),Un="TooltipContent",Vd=w.forwardRef((e,t)=>{const n=Bv(Un,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...l}=e,i=Sl(Un,e.__scopeTooltip);return C.jsx(Id,{present:r||i.open,children:i.disableHoverableContent?C.jsx(Wd,{side:o,...l,ref:t}):C.jsx(Vv,{side:o,...l,ref:t})})}),Vv=w.forwardRef((e,t)=>{const n=Sl(Un,e.__scopeTooltip),r=lu(Un,e.__scopeTooltip),o=w.useRef(null),l=sn(t,o),[i,s]=w.useState(null),{trigger:u,onClose:a}=n,f=o.current,{onPointerInTransitChange:p}=r,h=w.useCallback(()=>{s(null),p(!1)},[p]),g=w.useCallback((v,y)=>{const S=v.currentTarget,d={x:v.clientX,y:v.clientY},c=Qv(d,S.getBoundingClientRect()),m=Gv(d,c),x=Kv(y.getBoundingClientRect()),k=Xv([...m,...x]);s(k),p(!0)},[p]);return w.useEffect(()=>()=>h(),[h]),w.useEffect(()=>{if(u&&f){const v=S=>g(S,f),y=S=>g(S,u);return u.addEventListener("pointerleave",v),f.addEventListener("pointerleave",y),()=>{u.removeEventListener("pointerleave",v),f.removeEventListener("pointerleave",y)}}},[u,f,g,h]),w.useEffect(()=>{if(i){const v=y=>{const S=y.target,d={x:y.clientX,y:y.clientY},c=(u==null?void 0:u.contains(S))||(f==null?void 0:f.contains(S)),m=!Yv(d,i);c?h():m&&(h(),a())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[u,f,i,a,h]),C.jsx(Wd,{...e,ref:l})}),[Wv,$v]=yl(xl,{isInside:!1}),Wd=w.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:l,onPointerDownOutside:i,...s}=e,u=Sl(Un,n),a=wl(n),{onClose:f}=u;return w.useEffect(()=>(document.addEventListener(Ji,f),()=>document.removeEventListener(Ji,f)),[f]),w.useEffect(()=>{if(u.trigger){const p=h=>{const g=h.target;g!=null&&g.contains(u.trigger)&&f()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[u.trigger,f]),C.jsx(hd,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:i,onFocusOutside:p=>p.preventDefault(),onDismiss:f,children:C.jsxs(Rv,{"data-state":u.stateAttribute,...a,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[C.jsx(dd,{children:r}),C.jsx(Wv,{scope:n,isInside:!0,children:C.jsx(Iv,{id:u.contentId,role:"tooltip",children:o||r})})]})})});Vd.displayName=Un;var $d="TooltipArrow",Hv=w.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=wl(n);return $v($d,n).isInside?null:C.jsx(Ov,{...o,...r,ref:t})});Hv.displayName=$d;function Qv(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),l=Math.abs(t.left-e.x);switch(Math.min(n,r,o,l)){case l:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function Gv(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Kv(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function Yv(e,t){const{x:n,y:r}=e;let o=!1;for(let l=0,i=t.length-1;lr!=f>r&&n<(a-s)*(r-u)/(f-u)+s&&(o=!o)}return o}function Xv(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),Zv(t)}function Zv(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const l=t[t.length-1],i=t[t.length-2];if((l.x-i.x)*(o.y-i.y)>=(l.y-i.y)*(o.x-i.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const l=n[n.length-1],i=n[n.length-2];if((l.x-i.x)*(o.y-i.y)>=(l.y-i.y)*(o.x-i.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Jv=Fd,qv=Ud,ey=Bd,Hd=Vd;function Qd(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t{const t=oy(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const s=i.split(iu);return s[0]===""&&s.length!==1&&s.shift(),Gd(s,t)||ry(i)},getConflictingClassGroupIds:(i,s)=>{const u=n[i]||[];return s&&r[i]?[...u,...r[i]]:u}}},Gd=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?Gd(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const l=e.join(iu);return(i=t.validators.find(({validator:s})=>s(l)))==null?void 0:i.classGroupId},Fa=/^\[(.+)\]$/,ry=e=>{if(Fa.test(e)){const t=Fa.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},oy=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return iy(Object.entries(e.classGroups),n).forEach(([l,i])=>{es(i,r,l,t)}),r},es=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const l=o===""?t:Ua(t,o);l.classGroupId=n;return}if(typeof o=="function"){if(ly(o)){es(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([l,i])=>{es(i,Ua(t,l),n,r)})})},Ua=(e,t)=>{let n=e;return t.split(iu).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},ly=e=>e.isThemeGetter,iy=(e,t)=>t?e.map(([n,r])=>{const o=r.map(l=>typeof l=="string"?t+l:typeof l=="object"?Object.fromEntries(Object.entries(l).map(([i,s])=>[t+i,s])):l);return[n,o]}):e,sy=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(l,i)=>{n.set(l,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(l){let i=n.get(l);if(i!==void 0)return i;if((i=r.get(l))!==void 0)return o(l,i),i},set(l,i){n.has(l)?n.set(l,i):o(l,i)}}},Kd="!",uy=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],l=t.length,i=s=>{const u=[];let a=0,f=0,p;for(let S=0;Sf?p-f:void 0;return{modifiers:u,hasImportantModifier:g,baseClassName:v,maybePostfixModifierPosition:y}};return n?s=>n({className:s,parseClassName:i}):i},ay=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},cy=e=>({cache:sy(e.cacheSize),parseClassName:uy(e),...ny(e)}),fy=/\s+/,dy=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,l=[],i=e.trim().split(fy);let s="";for(let u=i.length-1;u>=0;u-=1){const a=i[u],{modifiers:f,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:g}=n(a);let v=!!g,y=r(v?h.substring(0,g):h);if(!y){if(!v){s=a+(s.length>0?" "+s:s);continue}if(y=r(h),!y){s=a+(s.length>0?" "+s:s);continue}v=!1}const S=ay(f).join(":"),d=p?S+Kd:S,c=d+y;if(l.includes(c))continue;l.push(c);const m=o(y,v);for(let x=0;x0?" "+s:s)}return s};function py(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rp(f),e());return n=cy(a),r=n.cache.get,o=n.cache.set,l=s,s(u)}function s(u){const a=r(u);if(a)return a;const f=dy(u,n);return o(u,f),f}return function(){return l(py.apply(null,arguments))}}const G=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Xd=/^\[(?:([a-z-]+):)?(.+)\]$/i,my=/^\d+\/\d+$/,gy=new Set(["px","full","screen"]),vy=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,yy=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,wy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,xy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Sy=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,rt=e=>Ln(e)||gy.has(e)||my.test(e),yt=e=>Gn(e,"length",Oy),Ln=e=>!!e&&!Number.isNaN(Number(e)),Zl=e=>Gn(e,"number",Ln),or=e=>!!e&&Number.isInteger(Number(e)),Cy=e=>e.endsWith("%")&&Ln(e.slice(0,-1)),U=e=>Xd.test(e),wt=e=>vy.test(e),ky=new Set(["length","size","percentage"]),Ey=e=>Gn(e,ky,Zd),Py=e=>Gn(e,"position",Zd),Ny=new Set(["image","url"]),Ty=e=>Gn(e,Ny,_y),Ry=e=>Gn(e,"",Ly),lr=()=>!0,Gn=(e,t,n)=>{const r=Xd.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},Oy=e=>yy.test(e)&&!wy.test(e),Zd=()=>!1,Ly=e=>xy.test(e),_y=e=>Sy.test(e),Ay=()=>{const e=G("colors"),t=G("spacing"),n=G("blur"),r=G("brightness"),o=G("borderColor"),l=G("borderRadius"),i=G("borderSpacing"),s=G("borderWidth"),u=G("contrast"),a=G("grayscale"),f=G("hueRotate"),p=G("invert"),h=G("gap"),g=G("gradientColorStops"),v=G("gradientColorStopPositions"),y=G("inset"),S=G("margin"),d=G("opacity"),c=G("padding"),m=G("saturate"),x=G("scale"),k=G("sepia"),N=G("skew"),E=G("space"),L=G("translate"),b=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",U,t],R=()=>[U,t],M=()=>["",rt,yt],I=()=>["auto",Ln,U],z=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],F=()=>["solid","dashed","dotted","double","none"],$=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],P=()=>["start","end","center","between","around","evenly","stretch"],j=()=>["","0",U],D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>[Ln,U];return{cacheSize:500,separator:":",theme:{colors:[lr],spacing:[rt,yt],blur:["none","",wt,U],brightness:V(),borderColor:[e],borderRadius:["none","","full",wt,U],borderSpacing:R(),borderWidth:M(),contrast:V(),grayscale:j(),hueRotate:V(),invert:j(),gap:R(),gradientColorStops:[e],gradientColorStopPositions:[Cy,yt],inset:O(),margin:O(),opacity:V(),padding:R(),saturate:V(),scale:V(),sepia:j(),skew:V(),space:R(),translate:R()},classGroups:{aspect:[{aspect:["auto","square","video",U]}],container:["container"],columns:[{columns:[wt]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...z(),U]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:b()}],"overscroll-x":[{"overscroll-x":b()}],"overscroll-y":[{"overscroll-y":b()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",or,U]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",U]}],grow:[{grow:j()}],shrink:[{shrink:j()}],order:[{order:["first","last","none",or,U]}],"grid-cols":[{"grid-cols":[lr]}],"col-start-end":[{col:["auto",{span:["full",or,U]},U]}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":[lr]}],"row-start-end":[{row:["auto",{span:[or,U]},U]}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",U]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",U]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...P()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...P(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...P(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[c]}],px:[{px:[c]}],py:[{py:[c]}],ps:[{ps:[c]}],pe:[{pe:[c]}],pt:[{pt:[c]}],pr:[{pr:[c]}],pb:[{pb:[c]}],pl:[{pl:[c]}],m:[{m:[S]}],mx:[{mx:[S]}],my:[{my:[S]}],ms:[{ms:[S]}],me:[{me:[S]}],mt:[{mt:[S]}],mr:[{mr:[S]}],mb:[{mb:[S]}],ml:[{ml:[S]}],"space-x":[{"space-x":[E]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[E]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",U,t]}],"min-w":[{"min-w":[U,t,"min","max","fit"]}],"max-w":[{"max-w":[U,t,"none","full","min","max","fit","prose",{screen:[wt]},wt]}],h:[{h:[U,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[U,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[U,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[U,t,"auto","min","max","fit"]}],"font-size":[{text:["base",wt,yt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Zl]}],"font-family":[{font:[lr]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",U]}],"line-clamp":[{"line-clamp":["none",Ln,Zl]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",rt,U]}],"list-image":[{"list-image":["none",U]}],"list-style-type":[{list:["none","disc","decimal",U]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[d]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[d]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...F(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",rt,yt]}],"underline-offset":[{"underline-offset":["auto",rt,U]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:R()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[d]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...z(),Py]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Ey]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ty]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[g]}],"gradient-via":[{via:[g]}],"gradient-to":[{to:[g]}],rounded:[{rounded:[l]}],"rounded-s":[{"rounded-s":[l]}],"rounded-e":[{"rounded-e":[l]}],"rounded-t":[{"rounded-t":[l]}],"rounded-r":[{"rounded-r":[l]}],"rounded-b":[{"rounded-b":[l]}],"rounded-l":[{"rounded-l":[l]}],"rounded-ss":[{"rounded-ss":[l]}],"rounded-se":[{"rounded-se":[l]}],"rounded-ee":[{"rounded-ee":[l]}],"rounded-es":[{"rounded-es":[l]}],"rounded-tl":[{"rounded-tl":[l]}],"rounded-tr":[{"rounded-tr":[l]}],"rounded-br":[{"rounded-br":[l]}],"rounded-bl":[{"rounded-bl":[l]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[d]}],"border-style":[{border:[...F(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[d]}],"divide-style":[{divide:F()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...F()]}],"outline-offset":[{"outline-offset":[rt,U]}],"outline-w":[{outline:[rt,yt]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:M()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[d]}],"ring-offset-w":[{"ring-offset":[rt,yt]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",wt,Ry]}],"shadow-color":[{shadow:[lr]}],opacity:[{opacity:[d]}],"mix-blend":[{"mix-blend":[...$(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":$()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",wt,U]}],grayscale:[{grayscale:[a]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[p]}],saturate:[{saturate:[m]}],sepia:[{sepia:[k]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[d]}],"backdrop-saturate":[{"backdrop-saturate":[m]}],"backdrop-sepia":[{"backdrop-sepia":[k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",U]}],duration:[{duration:V()}],ease:[{ease:["linear","in","out","in-out",U]}],delay:[{delay:V()}],animate:[{animate:["none","spin","ping","pulse","bounce",U]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[or,U]}],"translate-x":[{"translate-x":[L]}],"translate-y":[{"translate-y":[L]}],"skew-x":[{"skew-x":[N]}],"skew-y":[{"skew-y":[N]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",U]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",U]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":R()}],"scroll-mx":[{"scroll-mx":R()}],"scroll-my":[{"scroll-my":R()}],"scroll-ms":[{"scroll-ms":R()}],"scroll-me":[{"scroll-me":R()}],"scroll-mt":[{"scroll-mt":R()}],"scroll-mr":[{"scroll-mr":R()}],"scroll-mb":[{"scroll-mb":R()}],"scroll-ml":[{"scroll-ml":R()}],"scroll-p":[{"scroll-p":R()}],"scroll-px":[{"scroll-px":R()}],"scroll-py":[{"scroll-py":R()}],"scroll-ps":[{"scroll-ps":R()}],"scroll-pe":[{"scroll-pe":R()}],"scroll-pt":[{"scroll-pt":R()}],"scroll-pr":[{"scroll-pr":R()}],"scroll-pb":[{"scroll-pb":R()}],"scroll-pl":[{"scroll-pl":R()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",U]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[rt,yt,Zl]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},jy=hy(Ay);function zy(...e){return jy(ty(e))}const My=Jv,Iy=qv,Dy=ey,Jd=w.forwardRef(({className:e,sideOffset:t=4,...n},r)=>C.jsx(Hd,{ref:r,sideOffset:t,className:zy("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","bg-gray-900 text-white dark:bg-white dark:text-gray-900",e),...n}));Jd.displayName=Hd.displayName;const by=({value:e,onChange:t,className:n="",isDark:r})=>{const[o,l]=w.useState(!1),i=()=>l(!o),s=`absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded-md - ${r?"text-gray-300 hover:text-white hover:bg-gray-600":"text-orange-600 hover:text-orange-800 hover:bg-orange-50"} - transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-orange-500`;return C.jsxs("div",{className:"relative",children:[C.jsx("input",{type:o?"text":"password",value:e,onChange:t,className:`pr-10 ${n}`}),C.jsx("button",{type:"button",onClick:i,className:s,"aria-label":o?"Hide value":"Show value",children:o?C.jsx(Ym,{className:"h-4 w-4"}):C.jsx(Xm,{className:"h-4 w-4"})})]})},Ba=["LOG_LEVEL","lang","time_format","system_unit"],Va={LOG_LEVEL:"The level of logging to be used by the backend. Supports Python logging levels.",system_unit:"The system of measurement to be used by the backend. Options: metric, imperial (typically U.S.).",time_format:"The format for displaying time. Options: half (12-hour format), full (24-hour format).",lang:"The language/country code to be used by the backend. Must be a language code supported by the Python langcodes library.",default_lang:"The default language to be used by the IRIS web interface.",languages:"The languages supported by the IRIS web interface.",webui_chatbot_label:"The title in the IRIS web interface.",webui_mic_label:"The label for the microphone button in the IRIS web interface.",webui_input_placeholder:"The placeholder text for the chat input in the IRIS web interface.",webui_ws_url:"The WebSocket URL for the IRIS web interface, e.g. wss:///ws. Must be wss for IRIS websat.",fastapi_title:"The title of the HANA instance.",fastapi_summary:"The summary text of the HANA instance.",enable_email:"Whether to enable email functionality in the backend. Requires advanced manual configuration.",node_username:"The username for connecting a Neon Node to your Neon Hub.",node_password:"The password for connecting a Neon Node to your Neon Hub."},Jl=e=>e.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),Fy=({isDark:e})=>{const[t,n]=w.useState({system_unit:"imperial",time_format:"half",lang:"en-us",LOG_LEVEL:"INFO",hana:{},iris:{},skills:{default_skills:[],extra_dependencies:{}}}),[r,o]=w.useState(!0),[l,i]=w.useState(null),[s,u]=w.useState(null),[a,f]=w.useState({}),[p,h]=w.useState({}),[g,v]=w.useState(!1);w.useEffect(()=>{const O=()=>{v(window.scrollY>200)};return window.addEventListener("scroll",O),()=>window.removeEventListener("scroll",O)},[]);const y=()=>{window.scrollTo({top:0,behavior:"smooth"})},S=async()=>{console.debug("Fetching config..."),o(!0),i(null);try{console.debug("Fetching Neon config...");const O=await fetch("http://127.0.0.1/v1/neon_config",{headers:{Accept:"application/json","Content-Type":"application/json"}});console.debug("Neon response status:",O.status);const R=O.headers.get("content-type");if(!(R!=null&&R.includes("application/json")))throw new Error("Server returned non-JSON response. Please check the API endpoint.");if(!O.ok)throw new Error(`Failed to fetch Neon config: ${O.statusText}`);const M=await O.json();console.debug("Neon data received:",M),console.debug("Fetching Diana config...");const I=await fetch("http://127.0.0.1/v1/diana_config",{headers:{Accept:"application/json","Content-Type":"application/json"}});console.debug("Diana response status:",I.status);const z=I.headers.get("content-type");if(!(z!=null&&z.includes("application/json")))throw new Error("Server returned non-JSON response. Please check the API endpoint.");if(!I.ok)throw new Error(`Failed to fetch Diana config: ${I.statusText}`);const F=await I.json();console.debug("Diana data received:",F),n($=>({...$,...F,...M})),u(new Date)}catch(O){i(O instanceof Error?O.message:"Failed to fetch configuration"),console.error("Config fetch error:",O)}finally{o(!1)}},d=async O=>{f(R=>({...R,[O]:!0})),h(R=>({...R,[O]:null}));try{if(O==="iris"||O==="hana"){const R={iris:t.iris,hana:t.hana};if(!(await fetch("http://127.0.0.1/v1/diana_config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).ok)throw new Error("Failed to save IRIS configuration")}else{const R=O==="general"?Ba.reduce((F,$)=>({...F,[$]:t[$]}),{}):{[O]:t[O]};if(console.log("Saving config:",R),!(await fetch("http://127.0.0.1/v1/neon_config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)})).ok)throw new Error(`Failed to save ${O} configuration`);const z=await(await fetch("http://127.0.0.1/v1/neon_config",{headers:{Accept:"application/json","Content-Type":"application/json"}})).json();n(F=>({...F,...z}))}u(new Date)}catch(R){h(M=>({...M,[O]:R instanceof Error?R.message:`Failed to save ${O} configuration`}))}finally{f(R=>({...R,[O]:!1}))}};w.useEffect(()=>{S()},[]);const c=(O,R,M)=>{n(I=>{if(O==="general")return{...I,[R]:M};const z=I[O];return{...I,[O]:{...z,[R]:M}}})},m=(O,R)=>R.includes("password")||R.includes("secret")||R.includes("api_key")||O==="api_keys",x=(O,R,M)=>{const I=`w-full p-2 rounded ${e?"bg-gray-700":"bg-white"} ${e?"text-white":"text-gray-900"} border ${e?"border-orange-400":"border-orange-600"}`;return typeof M=="object"&&M!==null?Array.isArray(M)?C.jsx("input",{type:"text",value:M.join(", "),onChange:z=>c(O,R,z.target.value.split(",").map(F=>F.trim())),className:I}):C.jsx("textarea",{value:JSON.stringify(M,null,2),onChange:z=>{try{const F=JSON.parse(z.target.value);c(O,R,F)}catch(F){console.error(F),c(O,R,z.target.value)}},className:`${I} font-mono text-sm`,rows:Object.keys(M).length+1}):m(O,R)?C.jsx(by,{value:M,onChange:z=>c(O,R,z.target.value),className:I,isDark:e}):R==="LOG_LEVEL"?C.jsx("select",{value:M,onChange:z=>c(O,R,z.target.value),className:I,children:["DEBUG","INFO","WARNING","ERROR","CRITICAL"].map(z=>C.jsx("option",{value:z,children:z},z))}):R==="system_unit"?C.jsxs("select",{value:M,onChange:z=>c(O,R,z.target.value),className:I,children:[C.jsx("option",{value:"metric",children:"Metric"}),C.jsx("option",{value:"imperial",children:"Imperial"})]}):R==="time_format"?C.jsxs("select",{value:M,onChange:z=>c(O,R,z.target.value),className:I,children:[C.jsx("option",{value:"half",children:"12-hour (HH:MM am/pm)"}),C.jsx("option",{value:"full",children:"24-hour (HH:MM)"})]}):C.jsx("input",{type:typeof M=="number"?"number":"text",value:M,onChange:z=>c(O,R,z.target.value),className:I})},k=e?"bg-gray-900":"bg-white",N=e?"text-white":"text-gray-900",E=e?"border-orange-400":"border-orange-600",L=e?"bg-gray-800":"bg-orange-100",b=e?"text-orange-400":"text-orange-600",_=(O,R,M)=>{const I=O.toString();return C.jsxs("div",{className:`mb-4 border ${E} rounded-lg overflow-hidden`,children:[C.jsxs("div",{className:`${L} p-4 flex justify-between items-center`,children:[C.jsx("h2",{className:`text-xl font-semibold ${e?"text-orange-200":"text-orange-800"}`,children:M}),C.jsxs("button",{onClick:()=>d(I),disabled:a[I],className:` - flex items-center gap-2 px-4 py-2 rounded - ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} - text-white transition-colors - disabled:opacity-50 disabled:cursor-not-allowed - focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-opacity-50 - `,children:[C.jsx(Kl,{className:`h-4 w-4 ${a[I]?"animate-spin":""}`}),a[I]?"Saving...":"Save Changes"]})]}),p[O]&&C.jsx("div",{className:"p-4 bg-red-500 text-white",children:p[O]}),C.jsx("div",{className:`${k} p-4`,children:Object.entries(R).map(([z,F])=>C.jsxs("div",{className:"mb-4",children:[Va[z]?C.jsx(My,{children:C.jsxs(Iy,{children:[C.jsx(Dy,{asChild:!0,onClick:$=>$.preventDefault(),children:C.jsxs("label",{className:"block text-sm font-medium mb-1 cursor-help",children:[Jl(z.toLowerCase()),C.jsx("span",{className:"ml-1 text-gray-400",children:"ⓘ"})]})}),C.jsx(Jd,{side:"top",className:"max-w-xs p-2 text-sm",sideOffset:5,children:C.jsx("p",{children:Va[z]})})]})}):C.jsx("label",{className:"block text-sm font-medium mb-1",children:Jl(z.toLowerCase())}),x(O,z,F),(z==="LOG_LEVEL"||z==="lang"||O==="api_keys")&&C.jsxs("a",{href:z==="LOG_LEVEL"?"https://docs.python.org/3/library/logging.html#logging-levels":z==="lang"?"https://langcodes-hickford.readthedocs.io/en/sphinx/index.html#standards-implemented":O==="api_keys"?z==="alpha_vantage"?"https://www.alphavantage.co/support/#api-key":z==="open_weather_map"?"https://home.openweathermap.org/appid":z==="wolfram_alpha"?"https://products.wolframalpha.com/api/":"#":"#",target:"_blank",rel:"noopener noreferrer",className:`text-sm ${b} hover:underline flex items-center mt-1`,children:[z==="LOG_LEVEL"?"View LOG_LEVEL documentation":z==="lang"?"View library documentation for language/country codes":O==="api_keys"?`Get ${Jl(z)} API key`:""," ",C.jsx(Km,{className:"ml-1 h-3 w-3"})]})]},z))})]})};return r&&!s?C.jsx("div",{className:`p-4 ${k} ${N} min-h-screen flex items-center justify-center`,children:C.jsx(Kl,{className:"h-8 w-8 animate-spin"})}):C.jsxs("div",{className:`p-4 ${k} ${N} min-h-screen relative`,children:[C.jsxs("div",{className:"container mx-auto",children:[C.jsxs("div",{className:"mb-4 flex justify-between items-center",children:[C.jsxs("button",{onClick:S,disabled:r,className:`flex items-center p-2 rounded ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} text-white ${r?"opacity-50 cursor-not-allowed":""}`,children:[C.jsx(Kl,{className:`mr-2 h-4 w-4 ${r?"animate-spin":""}`}),"Refresh Configuration"]}),s&&C.jsxs("span",{className:"text-sm",children:["Last refreshed:",s.toLocaleString()]})]}),l&&C.jsx("div",{className:"mb-4 p-4 rounded-lg bg-red-500 text-white",children:l}),_("general",Ba.reduce((O,R)=>({...O,[R]:t[R]}),{}),"General Configuration"),_("api_keys",t.api_keys||{},"External API Keys"),_("hana",t.hana||{},"HANA Configuration"),_("iris",t.iris||{},"IRIS Configuration")]}),C.jsx("button",{onClick:y,className:` - fixed bottom-4 right-4 p-2 rounded-full - ${g?"opacity-100":"opacity-0 pointer-events-none"} - ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} - text-white transition-all duration-300 ease-in-out - focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-opacity-50 - shadow-lg hover:shadow-xl - `,"aria-label":"Scroll to top",children:C.jsx(Gm,{className:"h-4 w-4"})})]})},Uy=({isDark:e})=>(console.debug("NodeServicesProps",e),C.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[C.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"Node Services"}),C.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"This feature is currently under development. It will provide functionality for managing local Neon Node services."})]})),By=({isDark:e})=>(console.debug("ConnectedDevicesProps",e),C.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[C.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"Connected Devices"}),C.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"This feature is currently under development. It will display information about devices connected to the Hub."})]})),Vy=({isDark:e})=>(console.log("SystemUpdatesProps",e),C.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[C.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"System Updates"}),C.jsxs("p",{className:"text-gray-600 dark:text-gray-300",children:["Hub services and updates are managed through Yacht. Please refer to the"," ",C.jsx("a",{href:"https://neongeckocom.github.io/neon-hub-installer/services/",target:"_blank",rel:"noopener noreferrer",children:"Yacht interface"})," ","for enabling and modifying services."]})]})),qd="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABCCAYAAAAfQSsiAAANj0lEQVR42u2beVDUZ5rH8UiyYzLZmtnd2aRqdrdmJjVbO5NU7VaS3WQrqdrZ2nl7QBCTHSVqovGIjvHAJBoTBKGhORoaO2DLjYAiCEIrh6jIDdJyLwgIKHIJAnI1hyf62T/6h3aQU46RCU/VU/zB+7zv259+3vf9vs/v1yYm8zZvc96oLTVDq8nC58sGVJur8NhUisemKny/rCcpKIn6iv+eh9RUs4gIZQHeO1o55ZNAQfJBasu+pvHyH6krX0v+WT+iPSvRWHdTnLrrhw0r0KacE+oUrtf8F3fvLByxzYD+J2TFBqFYc4Pmq3/4YYI6GxrCUUU+Xe2/GLft4L2X8dvTQPSB8z/A5VfyGur1pZTlrJtwTEaMK84fNFMd9B36mh//5UOqDHciY2MlJ2RNqFdDTdE7E44tOPcRjgKKxC3yLFop2ZVFZ97KvzxIFcecSNlSQaLpIOcExAlQWcKlnE0T7iM1cheuMigVj73AbIDyvYW0pGya+5Bqsj8gxbqYhGUPSBCQJPlpAd4CEgMTJtzXMZejaIbBKhVQIoOSFV1ccj7Fnc7n5g6c0sx3KUmz5PqVX1IQ6IXWso+TAuKN/LTkITJQb+qm5+a/Tahvt0+vcEw8CcsYWt66KjpLzZ5dQB0tC4j3j0Fu1Y3L2npc1qYgt6rD3fQBUQJOSh4nebyARAEnBCgElGXvHHeM+/cWYLu8h0QBJWMAKxVw0bKTpsRvnj1QdRWvEmxXS6hDCWVZ67jd9xL37y6ktvT3hDpU4yiDCAHaEYDFC/ASEGJ3Ydxx6ivew8ZikDQB+QKKx4FWbNVAc9LWZ01UXubkoSj0na+OkHGL8PmqCqUMooyAnRRwSoIWKsDe4h5dbf865jiFyZuwM4dsAbkSsIIxgJUIyF9XRVZwBAn+acT5VpIQeBZd4p4/D6gwxwzCHHX09fxkjCX6UxQruvGRQYww+Ekj1wpwkEF69OExx0oOd8HVzAArW0COgItjQMsTECjAbU0bUZ5lJAbmo/UuQvNlE147Wsk5tXEWT7nin2P7QS+NVVbj66Pz63CQDRImHgMzhqYWoNp8HVg8ah/HVVrUMkgTkCEeQ8uWwORJ0IayKkCA+vNqrtfIvn8TGFyCLlHDPks9x1XxswPriNN5QvY3AYsm1D7SPRUPU4gcBkwr4KgAW8v73KgzHWO56/ATcF5AijBAy5R8KMuGoIXLwHNzDVdK3h+1v8aqd/Hc0kFCQPjMw1JuaOfi6cxJVBd+iff2DrxlhlPwhBGwWAEO5pClPTLqSei7u5RgAecEJEvAUo2gZUt/wwS4rW2k/ILlBMpCFmi+6KL8wsweBCjW6KkqODKpmOK07TivvIW/MGz4UUbQVDI46nQJWPBEXG/nz/De0UOYJGjPSNDOG0FLkXSb60eNVBdOSGdx785zJAUXEu+XO7OwPLd0kxlzatJx50IPYSMeEmIELEbajL133EZ/8+0nYrpaf4562wBHjQTtELAhD5GBq1UzNcX/Oan5lF/YSrBt88zCSghIwH1jNQ8e/O1TyA0dcplhrzouATsiQLkB6iusn4TV9g+PYMULSJBEbaKAswIOy0C+oo+K3GWT14nlAv+9fTTX/nrmYPX3vIByfTNRHnHcbP73ScU+fLiAIJtClGaGPea4MAhX9zVw6ULAE+37en6KZlcjQcNErVaArwC3tXoKz294ykrtO/ju0dNU9S8zm11JmiCcl4KPdQUZJ1xoqPzdhGM7W18h4OsK3M0MwjRCgNIKStKCR2wfaq9DLXuszcIFeAhQb62jLGvVU3+Ga+Wm+O/Vz/yJmLQnnUBJJ7mYg+fmfqJUURSn/on+nnGLczTXvEWwzUUcTQ19KD+BqgK7EdvqEnaz3wwOCjggQGEOkW5pNNW8O6XPUJbzFYftZgFW2HI9oQJCBARJS8JVBvIPQfVZJcnh9jwYfHGc5fwSZ0NPolzbQ4JvDvfv/c3IJ9fdJaRGRqPeUk+YQyGVeeu53b9gSvMf0L/MYbtuMmNmtlRNU/mLBIl7BEuwQqR7XqgETiVgnwAbsz4Sgw7Q0fLamP3B8xMaF16clvkP9L5CuHMRvrubaW34xczCqkzdSZB4SJAE5/AwYEPQ1ALkMnBbc5OMaCda69+Y8Yy/UfcK9RWvUV1oweX8deQmuJAVqyAxMBitJoowBx2eW+oIsU+ioer9mV+CJVo5gRIQYz88DJgxNIUMNDuvkZe0b1rncvf281Re3MC5Iz6EO2dyaEczqtV6XM1u4Spl+QFpDocE+C6/TWm63exdpAsivfCXxORwYMEjZFmI1NZTgMP/QkpEwLTMA/6JCGUuyo/Bw9QAI1TScBHi+6WhOEnQxlvpTWbTKIhU4y945CNBCxoFmkaA21qoKXKdIqhFnPLRITfj0Y3ghNF907gUZFzWjrPqnl1YhVGO+BrBGvLRgIUYwQoS4LISilKSpgjrVbx3dKGShG30sIpGrJRV2mEFxzirjtmFVZG8DV9JLvhNEJqfVEaWyyDEoZybzUunnuHJB3FYaug/0ii7TgwrAxkDS9zQOruw6st+jEY8eARsyIdg+UnLzUuqKCgEyJeCZsdVsrUq2hv/eZr2rMVovTJRWBjGjRyhojE805L3/t/sl5X9l/c/AuIpQCnAVYCjDGwF7BMPsDfvwu+rPBKDgqnQWdLe+I8zcE/9EamRITh9MIin0cZuXNUY8mgBBT7+sw8r4ssG5AL2ymCPeIDd8j68tteg9Y4kN8GWxur3uHv7+dnbGnSf4LKmC1sZ36uZGUOLEPe5nmc6u6D6exfjvOYGh766RnG6Fbf6fjRS4W7Wv8DerlfRqk/jvPoBSjPDXnbMCJh2RS9tl56f3UklBkaj3nqXjpaneiOPu7cXUFO0grTjQZwNi6e6yHta53et/PdEq9PxXA9KGfjLDOWg5L1Vs/8Nem7pIjO26Kli2xrfROt9BOXHD1FIm7/b+ns0105rLZzbA89xpcSUpMPH8Vjbj5OAaPsK2ut/NbuwFGtucbXk4KTjqgqXodzQiKOZ4WAYOkXtzSHjROoYp95OqguzqStXAz+b9Lit9a+Tc1KOZlct7hvbifOJpaX2N7MDy/njASrzFJO7T6Zvx36FHsdhMsNf0l5xvqXAc09mYoMfXtu62S1gtwDHVdfJ0jpzZ2DSL7QBC6nI3YBqcwPfmN0lyPYK12vemVlYB617OR2UPuH2utO2KKz0uArwMcqoIUErN4WEgIIRn+6cCbmAo8ywWftLum2/DDTWVTRWi6fUZwupKV7FcfcCVJ/14btbT8aJY7TUvk9f919NL6zU4zGoPutjQD+ubuJCvA0Kq35cpXeyNNLt3xiavQVknEgY4XR7kXDnKlTDykD+wrBx2y+7T1LwUTqa33vqz9LW+CZZMTEccbqGZhdEKDvJO3OUlloxnfvWANknVWO2SY9yR/7H+yikMomX5Jphvs8CyrI8nojvaV9CiP011CNUNQ5L0BXmELK/dKpvMtPb/TLXLq1BlxCLVtOAVtNG/jkdDZfV3BlYPDVYuYleqDZ3UnvpD6OAUmK7fBCF9HDBU6opDfkQNJWAfZYPuVFn+SSsjhcIk1/hwBiXdH8Brqbg+Vkj9RWyaUmEW30L6e18iysl31GSnkZNUeTUO431TsNrRyuNl/+De3cWmJiYmHDn1kLSjhtAOUhXIKUERTUMmrf0f6dVt0Z7b4Joz2zcxqlqBAtwk4GdZS/VheYmz6oR7x+B55ZujipaiPXOx2t7OzZLwV6AowBnAS4C3IZBG6pe2sngmOuol1vOHTmCQvb4MBit4Bgs7WN25v0UJH/x7AKrKfqE9OhMzoZmkxGt45jjDeQWj4E5SdBcJWjuRtC+lUFx6qgvmXHxtBLnD78vNwLGgOa5DDy3DJKb+LXJXDHiNAnYm93HXhigyaV3SF2NlqZCwD7zuwz0/vWo/dSWfoTy00EOjqDPAiQfghW2uovKM3+iIFmF984BLsR9M3eAFZz9HMWKLmwF7BfgIAEagmYvgyCbyjH7GNAvRGPdhHIEffYImgxirMu5WfvoMTxFKQ4o199Bl/iFyVwywhVpOH14l/0yAzC5tDy/FXAh/sC48cc9tDjIDNpsSJ/5CAgwgyOresg5HDhiXP5ZBxxW3kc3h5ak4bqTuZJwx1w81/bhsNSQad/K4Ob1t8aNvXh6M/ssDI/vNQL8LR9ybHMjmX6xNJWO+ZCUvDPOuK57QG6Cs8lcM6oKXiI9wgffL24hXwkdLa+PG1OWY8W3FhC2qZvzHmmUJVnTXPnChMfMP6fEa8cghefm5m8WqS76EPXn/dSVj/vLMOL9j+G1vZ322qeu3ZN35ju8tt+iQrd2bgKLPpCD/94G4O/HqFZsRbG6jwrdlLOC9OijuH3ax+3+3849WG0Nizlo3YbXtn4Kzx/i5vU36Wz5O9qb3qA814Fw5ybcPu0l56TXNF1jlhB9oBL3jd30dr8+NzPsTMh5gmy68N7Zje/uXtTb9PjvbSDON4mrJb+b1rF6u35FmLyTSGUr+o43TOaq0Xh5CVdLNtNY/T8zOk5X2685qWlHl3iROwOLTOZtHGCdLW+Tpa2ludZ6nsZEgPW0v03FxdPzJCYKrL/n5XkK8zZv8zZv8zZvU7X/B4vUgm+O3yRbAAAAAElFTkSuQmCC",Wy=({isDark:e,toggleDarkMode:t})=>C.jsxs("div",{className:"flex justify-between items-center mb-4",children:[C.jsx("img",{src:qd,alt:"Neon AI",className:"h-10"}),C.jsx("h1",{className:`text-2xl font-bold ${e?"text-orange-200":"text-orange-800"}`,children:"Neon Hub Management"}),C.jsx("button",{onClick:t,className:`p-2 rounded-full ${e?"bg-orange-200 text-orange-800":"bg-orange-800 text-orange-200"}`,children:e?C.jsx(Jm,{size:24}):C.jsx(Zm,{size:24})})]}),ep=w.createContext(void 0),$y=({children:e})=>{const[t,n]=w.useState(()=>!!localStorage.getItem("auth_token"));w.useEffect(()=>{localStorage.getItem("auth_token")&&n(!0)},[]);const r=async(l,i)=>{try{return(await fetch("/auth",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Basic "+btoa(`${l}:${i}`)}})).ok?(localStorage.setItem("auth_token",btoa(`${l}:${i}`)),n(!0),!0):!1}catch(s){return console.error("Auth error:",s),!1}},o=()=>{localStorage.removeItem("auth_token"),n(!1)};return C.jsx(ep.Provider,{value:{isAuthenticated:t,login:r,logout:o},children:e})},su=()=>{const e=w.useContext(ep);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e},Hy=()=>{const[e,t]=w.useState(""),[n,r]=w.useState(""),[o,l]=w.useState(""),{login:i}=su(),s=async u=>{u.preventDefault(),l(""),await i(e,n)||l("Invalid credentials")};return C.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-900",children:C.jsxs("div",{className:"max-w-md w-full space-y-8 p-8 bg-gray-800 rounded-lg shadow-lg",children:[C.jsxs("div",{className:"flex flex-col items-center",children:[C.jsx("img",{src:qd,alt:"Neon AI",className:"h-12 mb-4"}),C.jsx("h2",{className:"text-2xl font-bold text-white",children:"Sign in to Neon Hub"})]}),C.jsxs("form",{className:"mt-8 space-y-6",onSubmit:s,children:[o&&C.jsx("div",{className:"text-red-500 text-center text-sm",children:o}),C.jsxs("div",{className:"rounded-md shadow-sm -space-y-px",children:[C.jsx("div",{children:C.jsx("input",{type:"text",required:!0,value:e,onChange:u=>t(u.target.value),className:"appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-600 placeholder-gray-500 text-white bg-gray-700 rounded-t-md focus:outline-none focus:ring-orange-500 focus:border-orange-500 focus:z-10 sm:text-sm",placeholder:"Username"})}),C.jsx("div",{children:C.jsx("input",{type:"password",required:!0,value:n,onChange:u=>r(u.target.value),className:"appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-600 placeholder-gray-500 text-white bg-gray-700 rounded-b-md focus:outline-none focus:ring-orange-500 focus:border-orange-500 focus:z-10 sm:text-sm",placeholder:"Password"})})]}),C.jsx("div",{children:C.jsx("button",{type:"submit",className:"group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-orange-600 hover:bg-orange-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-orange-500",children:"Sign in"})})]})]})})},Qy=()=>{const{logout:e}=su();return C.jsx("button",{onClick:e,className:`px-4 py-2 text-sm font-medium text-white bg-red-600 hover:bg-red-700 - rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 - focus:ring-red-500`,children:"Logout"})},Gy=()=>{const[e,t]=w.useState(!1),[n,r]=w.useState("config");w.useEffect(()=>{const i=window.matchMedia("(prefers-color-scheme: dark)").matches;t(i)},[]);const o=()=>t(!e),{isAuthenticated:l}=su();return l?C.jsx(Wm,{children:C.jsxs("div",{className:`app-container ${e?"dark":""}`,children:[C.jsx(Wy,{isDark:e,toggleDarkMode:o}),C.jsxs("div",{className:"tab-navigation",children:[C.jsx("button",{onClick:()=>r("config"),children:"Configuration"}),C.jsx("button",{onClick:()=>r("services"),children:"Node Services"}),C.jsx("button",{onClick:()=>r("devices"),children:"Connected Devices"}),C.jsx("button",{onClick:()=>r("updates"),children:"System Updates"}),C.jsx(Qy,{})]}),C.jsxs("div",{className:"content-area",children:[n==="config"&&C.jsx(Fy,{isDark:e}),n==="services"&&C.jsx(Uy,{isDark:e}),n==="devices"&&C.jsx(By,{isDark:e}),n==="updates"&&C.jsx(Vy,{isDark:e})]})]})}):C.jsx(Hy,{})},Ky=()=>C.jsx($y,{children:C.jsx(Gy,{})});rd(document.getElementById("root")).render(C.jsx(w.StrictMode,{children:C.jsx(Ky,{})})); diff --git a/neon_hub_config/static/assets/index-C6uqq5vL.css b/neon_hub_config/static/assets/index-C6uqq5vL.css deleted file mode 100644 index 5794cb4..0000000 --- a/neon_hub_config/static/assets/index-C6uqq5vL.css +++ /dev/null @@ -1 +0,0 @@ -#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.card{padding:2em}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-4{bottom:1rem}.right-2{right:.5rem}.right-4{right:1rem}.top-1\/2{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.h-10{height:2.5rem}.h-12{height:3rem}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-3{width:.75rem}.w-4{width:1rem}.w-8{width:2rem}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.-space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(-1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-1px * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-b-md{border-bottom-right-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-t-md{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-orange-400{--tw-border-opacity: 1;border-color:rgb(251 146 60 / var(--tw-border-opacity))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity))}.bg-orange-200{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity))}.bg-orange-800{--tw-bg-opacity: 1;background-color:rgb(154 52 18 / var(--tw-bg-opacity))}.bg-popover{background-color:hsl(var(--popover))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pr-10{padding-right:2.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-orange-200{--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}:root{line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-orange-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity))}.hover\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity))}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.hover\:text-orange-800:hover{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:z-10:focus{z-index:10}.focus\:border-orange-500:focus{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-orange-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:text-sm{font-size:.875rem;line-height:1.25rem}} diff --git a/neon_hub_config/static/assets/index-CnXsjVaS.css b/neon_hub_config/static/assets/index-CnXsjVaS.css new file mode 100644 index 0000000..136e822 --- /dev/null +++ b/neon_hub_config/static/assets/index-CnXsjVaS.css @@ -0,0 +1 @@ +#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.card{padding:2em}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-4{bottom:1rem}.right-2{right:.5rem}.right-4{right:1rem}.top-1\/2{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.contents{display:contents}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-8{width:2rem}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.-space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(-1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-1px * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-b-md{border-bottom-right-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-t-md{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-l-4{border-left-width:4px}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.border-orange-400{--tw-border-opacity: 1;border-color:rgb(251 146 60 / var(--tw-border-opacity))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity))}.bg-current{background-color:currentColor}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity))}.bg-orange-200{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity))}.bg-orange-800{--tw-bg-opacity: 1;background-color:rgb(154 52 18 / var(--tw-bg-opacity))}.bg-popover{background-color:hsl(var(--popover))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pr-10{padding-right:2.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-orange-200{--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity))}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}:root{line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.last\:mb-0:last-child{margin-bottom:0}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.hover\:bg-orange-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity))}.hover\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity))}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.hover\:text-orange-800:hover{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:z-10:focus{z-index:10}.focus\:border-orange-500:focus{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity))}.focus\:ring-orange-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.dark\:border-yellow-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(202 138 4 / var(--tw-border-opacity))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#713f124d}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:text-sm{font-size:.875rem;line-height:1.25rem}} diff --git a/neon_hub_config/static/assets/index-nOs3d6K6.js b/neon_hub_config/static/assets/index-nOs3d6K6.js new file mode 100644 index 0000000..7bb0ff7 --- /dev/null +++ b/neon_hub_config/static/assets/index-nOs3d6K6.js @@ -0,0 +1,197 @@ +function um(e,n){for(var t=0;tr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function t(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=t(o);fetch(o.href,i)}})();function am(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var mf={exports:{}},Di={},gf={exports:{}},V={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ho=Symbol.for("react.element"),cm=Symbol.for("react.portal"),fm=Symbol.for("react.fragment"),dm=Symbol.for("react.strict_mode"),pm=Symbol.for("react.profiler"),hm=Symbol.for("react.provider"),mm=Symbol.for("react.context"),gm=Symbol.for("react.forward_ref"),vm=Symbol.for("react.suspense"),ym=Symbol.for("react.memo"),wm=Symbol.for("react.lazy"),ma=Symbol.iterator;function xm(e){return e===null||typeof e!="object"?null:(e=ma&&e[ma]||e["@@iterator"],typeof e=="function"?e:null)}var vf={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},yf=Object.assign,wf={};function ar(e,n,t){this.props=e,this.context=n,this.refs=wf,this.updater=t||vf}ar.prototype.isReactComponent={};ar.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};ar.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function xf(){}xf.prototype=ar.prototype;function qs(e,n,t){this.props=e,this.context=n,this.refs=wf,this.updater=t||vf}var Js=qs.prototype=new xf;Js.constructor=qs;yf(Js,ar.prototype);Js.isPureReactComponent=!0;var ga=Array.isArray,Sf=Object.prototype.hasOwnProperty,eu={current:null},Cf={key:!0,ref:!0,__self:!0,__source:!0};function Ef(e,n,t){var r,o={},i=null,l=null;if(n!=null)for(r in n.ref!==void 0&&(l=n.ref),n.key!==void 0&&(i=""+n.key),n)Sf.call(n,r)&&!Cf.hasOwnProperty(r)&&(o[r]=n[r]);var s=arguments.length-2;if(s===1)o.children=t;else if(1>>1,B=N[M];if(0>>1;Mo(Be,$))hno(it,Be)?(N[M]=it,N[hn]=$,M=hn):(N[M]=Be,N[Se]=$,M=Se);else if(hno(it,$))N[M]=it,N[hn]=$,M=hn;else break e}}return R}function o(N,R){var $=N.sortIndex-R.sortIndex;return $!==0?$:N.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();e.unstable_now=function(){return l.now()-s}}var u=[],a=[],d=1,c=null,p=3,m=!1,v=!1,w=!1,x=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(N){for(var R=t(a);R!==null;){if(R.callback===null)r(a);else if(R.startTime<=N)r(a),R.sortIndex=R.expirationTime,n(u,R);else break;R=t(a)}}function C(N){if(w=!1,g(N),!v)if(t(u)!==null)v=!0,j(E);else{var R=t(a);R!==null&&H(C,R.startTime-N)}}function E(N,R){v=!1,w&&(w=!1,h(L),L=-1),m=!0;var $=p;try{for(g(R),c=t(u);c!==null&&(!(c.expirationTime>R)||N&&!b());){var M=c.callback;if(typeof M=="function"){c.callback=null,p=c.priorityLevel;var B=M(c.expirationTime<=R);R=e.unstable_now(),typeof B=="function"?c.callback=B:c===t(u)&&r(u),g(R)}else r(u);c=t(u)}if(c!==null)var oe=!0;else{var Se=t(a);Se!==null&&H(C,Se.startTime-R),oe=!1}return oe}finally{c=null,p=$,m=!1}}var k=!1,A=null,L=-1,F=5,P=-1;function b(){return!(e.unstable_now()-PN||125M?(N.sortIndex=$,n(a,N),t(u)===null&&N===t(a)&&(w?(h(L),L=-1):w=!0,H(C,$-M))):(N.sortIndex=B,n(u,N),v||m||(v=!0,j(E))),N},e.unstable_shouldYield=b,e.unstable_wrapCallback=function(N){var R=p;return function(){var $=p;p=R;try{return N.apply(this,arguments)}finally{p=$}}}})(Tf);Pf.exports=Tf;var Lm=Pf.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var bm=y,ze=Lm;function _(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Vl=Object.prototype.hasOwnProperty,Rm=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ya={},wa={};function jm(e){return Vl.call(wa,e)?!0:Vl.call(ya,e)?!1:Rm.test(e)?wa[e]=!0:(ya[e]=!0,!1)}function Mm(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Im(e,n,t,r){if(n===null||typeof n>"u"||Mm(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function Ae(e,n,t,r,o,i,l){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=i,this.removeEmptyString=l}var he={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){he[e]=new Ae(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];he[n]=new Ae(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){he[e]=new Ae(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){he[e]=new Ae(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){he[e]=new Ae(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){he[e]=new Ae(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){he[e]=new Ae(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){he[e]=new Ae(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){he[e]=new Ae(e,5,!1,e.toLowerCase(),null,!1,!1)});var tu=/[\-:]([a-z])/g;function ru(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(tu,ru);he[n]=new Ae(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(tu,ru);he[n]=new Ae(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(tu,ru);he[n]=new Ae(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){he[e]=new Ae(e,1,!1,e.toLowerCase(),null,!1,!1)});he.xlinkHref=new Ae("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){he[e]=new Ae(e,1,!1,e.toLowerCase(),null,!0,!0)});function ou(e,n,t,r){var o=he.hasOwnProperty(n)?he[n]:null;(o!==null?o.type!==0:r||!(2s||o[l]!==i[s]){var u=` +`+o[l].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=l&&0<=s);break}}}finally{fl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?Or(e):""}function Fm(e){switch(e.tag){case 5:return Or(e.type);case 16:return Or("Lazy");case 13:return Or("Suspense");case 19:return Or("SuspenseList");case 0:case 2:case 15:return e=dl(e.type,!1),e;case 11:return e=dl(e.type.render,!1),e;case 1:return e=dl(e.type,!0),e;default:return""}}function Kl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _t:return"Fragment";case Tt:return"Portal";case Yl:return"Profiler";case iu:return"StrictMode";case Ql:return"Suspense";case Gl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case bf:return(e.displayName||"Context")+".Consumer";case Lf:return(e._context.displayName||"Context")+".Provider";case lu:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case su:return n=e.displayName||null,n!==null?n:Kl(e.type)||"Memo";case Rn:n=e._payload,e=e._init;try{return Kl(e(n))}catch{}}return null}function Dm(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Kl(n);case 8:return n===iu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Kn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function jf(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function zm(e){var n=jf(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var o=t.get,i=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return o.call(this)},set:function(l){r=""+l,i.call(this,l)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function ko(e){e._valueTracker||(e._valueTracker=zm(e))}function Mf(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=jf(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function ri(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Xl(e,n){var t=n.checked;return ne({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Sa(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=Kn(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function If(e,n){n=n.checked,n!=null&&ou(e,"checked",n,!1)}function Zl(e,n){If(e,n);var t=Kn(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?ql(e,n.type,t):n.hasOwnProperty("defaultValue")&&ql(e,n.type,Kn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Ca(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function ql(e,n,t){(n!=="number"||ri(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var Pr=Array.isArray;function Wt(e,n,t,r){if(e=e.options,n){n={};for(var o=0;o"+n.valueOf().toString()+"",n=Ao.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Wr(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var Rr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Um=["Webkit","ms","Moz","O"];Object.keys(Rr).forEach(function(e){Um.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Rr[n]=Rr[e]})});function Uf(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||Rr.hasOwnProperty(e)&&Rr[e]?(""+n).trim():n+"px"}function $f(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,o=Uf(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,o):e[t]=o}}var $m=ne({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ns(e,n){if(n){if($m[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(_(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(_(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(_(61))}if(n.style!=null&&typeof n.style!="object")throw Error(_(62))}}function ts(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var rs=null;function uu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var os=null,Vt=null,Yt=null;function Aa(e){if(e=vo(e)){if(typeof os!="function")throw Error(_(280));var n=e.stateNode;n&&(n=Hi(n),os(e.stateNode,e.type,n))}}function Bf(e){Vt?Yt?Yt.push(e):Yt=[e]:Vt=e}function Hf(){if(Vt){var e=Vt,n=Yt;if(Yt=Vt=null,Aa(e),n)for(e=0;e>>=0,e===0?32:31-(qm(e)/Jm|0)|0}var No=64,Oo=4194304;function Tr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function si(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,l=t&268435455;if(l!==0){var s=l&~o;s!==0?r=Tr(s):(i&=l,i!==0&&(r=Tr(i)))}else l=t&~o,l!==0?r=Tr(l):i!==0&&(r=Tr(i));if(r===0)return 0;if(n!==0&&n!==r&&!(n&o)&&(o=r&-r,i=n&-n,o>=i||o===16&&(i&4194240)!==0))return n;if(r&4&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function mo(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Je(n),e[n]=t}function rg(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mr),ja=" ",Ma=!1;function ad(e,n){switch(e){case"keyup":return Lg.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function cd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Lt=!1;function Rg(e,n){switch(e){case"compositionend":return cd(n);case"keypress":return n.which!==32?null:(Ma=!0,ja);case"textInput":return e=n.data,e===ja&&Ma?null:e;default:return null}}function jg(e,n){if(Lt)return e==="compositionend"||!gu&&ad(e,n)?(e=sd(),Yo=pu=Fn=null,Lt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=za(t)}}function hd(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?hd(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function md(){for(var e=window,n=ri();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=ri(e.document)}return n}function vu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Hg(e){var n=md(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&hd(t.ownerDocument.documentElement,t)){if(r!==null&&vu(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var o=t.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Ua(t,i);var l=Ua(t,r);o&&l&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(n=n.createRange(),n.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(n),e.extend(l.node,l.offset)):(n.setEnd(l.node,l.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,bt=null,cs=null,Fr=null,fs=!1;function $a(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;fs||bt==null||bt!==ri(r)||(r=bt,"selectionStart"in r&&vu(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}),Fr&&Xr(Fr,r)||(Fr=r,r=ci(cs,"onSelect"),0Mt||(e.current=vs[Mt],vs[Mt]=null,Mt--)}function G(e,n){Mt++,vs[Mt]=e.current,e.current=n}var Xn={},we=tt(Xn),_e=tt(!1),gt=Xn;function Jt(e,n){var t=e.type.contextTypes;if(!t)return Xn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in t)o[i]=n[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=o),o}function Le(e){return e=e.childContextTypes,e!=null}function di(){Z(_e),Z(we)}function Ga(e,n,t){if(we.current!==Xn)throw Error(_(168));G(we,n),G(_e,t)}function kd(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var o in r)if(!(o in n))throw Error(_(108,Dm(e)||"Unknown",o));return ne({},t,r)}function pi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Xn,gt=we.current,G(we,e),G(_e,_e.current),!0}function Ka(e,n,t){var r=e.stateNode;if(!r)throw Error(_(169));t?(e=kd(e,n,gt),r.__reactInternalMemoizedMergedChildContext=e,Z(_e),Z(we),G(we,e)):Z(_e),G(_e,t)}var vn=null,Wi=!1,Nl=!1;function Ad(e){vn===null?vn=[e]:vn.push(e)}function n0(e){Wi=!0,Ad(e)}function rt(){if(!Nl&&vn!==null){Nl=!0;var e=0,n=Q;try{var t=vn;for(Q=1;e>=l,o-=l,wn=1<<32-Je(n)+o|t<L?(F=A,A=null):F=A.sibling;var P=p(h,A,g[L],C);if(P===null){A===null&&(A=F);break}e&&A&&P.alternate===null&&n(h,A),f=i(P,f,L),k===null?E=P:k.sibling=P,k=P,A=F}if(L===g.length)return t(h,A),q&<(h,L),E;if(A===null){for(;LL?(F=A,A=null):F=A.sibling;var b=p(h,A,P.value,C);if(b===null){A===null&&(A=F);break}e&&A&&b.alternate===null&&n(h,A),f=i(b,f,L),k===null?E=b:k.sibling=b,k=b,A=F}if(P.done)return t(h,A),q&<(h,L),E;if(A===null){for(;!P.done;L++,P=g.next())P=c(h,P.value,C),P!==null&&(f=i(P,f,L),k===null?E=P:k.sibling=P,k=P);return q&<(h,L),E}for(A=r(h,A);!P.done;L++,P=g.next())P=m(A,h,L,P.value,C),P!==null&&(e&&P.alternate!==null&&A.delete(P.key===null?L:P.key),f=i(P,f,L),k===null?E=P:k.sibling=P,k=P);return e&&A.forEach(function(T){return n(h,T)}),q&<(h,L),E}function x(h,f,g,C){if(typeof g=="object"&&g!==null&&g.type===_t&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case Eo:e:{for(var E=g.key,k=f;k!==null;){if(k.key===E){if(E=g.type,E===_t){if(k.tag===7){t(h,k.sibling),f=o(k,g.props.children),f.return=h,h=f;break e}}else if(k.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Rn&&qa(E)===k.type){t(h,k.sibling),f=o(k,g.props),f.ref=Cr(h,k,g),f.return=h,h=f;break e}t(h,k);break}else n(h,k);k=k.sibling}g.type===_t?(f=ht(g.props.children,h.mode,C,g.key),f.return=h,h=f):(C=ei(g.type,g.key,g.props,null,h.mode,C),C.ref=Cr(h,f,g),C.return=h,h=C)}return l(h);case Tt:e:{for(k=g.key;f!==null;){if(f.key===k)if(f.tag===4&&f.stateNode.containerInfo===g.containerInfo&&f.stateNode.implementation===g.implementation){t(h,f.sibling),f=o(f,g.children||[]),f.return=h,h=f;break e}else{t(h,f);break}else n(h,f);f=f.sibling}f=jl(g,h.mode,C),f.return=h,h=f}return l(h);case Rn:return k=g._init,x(h,f,k(g._payload),C)}if(Pr(g))return v(h,f,g,C);if(vr(g))return w(h,f,g,C);jo(h,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,f!==null&&f.tag===6?(t(h,f.sibling),f=o(f,g),f.return=h,h=f):(t(h,f),f=Rl(g,h.mode,C),f.return=h,h=f),l(h)):t(h,f)}return x}var nr=Td(!0),_d=Td(!1),gi=tt(null),vi=null,Dt=null,Su=null;function Cu(){Su=Dt=vi=null}function Eu(e){var n=gi.current;Z(gi),e._currentValue=n}function xs(e,n,t){for(;e!==null;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,r!==null&&(r.childLanes|=n)):r!==null&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Gt(e,n){vi=e,Su=Dt=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(Pe=!0),e.firstContext=null)}function Qe(e){var n=e._currentValue;if(Su!==e)if(e={context:e,memoizedValue:n,next:null},Dt===null){if(vi===null)throw Error(_(308));Dt=e,vi.dependencies={lanes:0,firstContext:e}}else Dt=Dt.next=e;return n}var at=null;function ku(e){at===null?at=[e]:at.push(e)}function Ld(e,n,t,r){var o=n.interleaved;return o===null?(t.next=t,ku(n)):(t.next=o.next,o.next=t),n.interleaved=t,kn(e,r)}function kn(e,n){e.lanes|=n;var t=e.alternate;for(t!==null&&(t.lanes|=n),t=e,e=e.return;e!==null;)e.childLanes|=n,t=e.alternate,t!==null&&(t.childLanes|=n),t=e,e=e.return;return t.tag===3?t.stateNode:null}var jn=!1;function Au(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function bd(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Sn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Hn(e,n,t){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Y&2){var o=r.pending;return o===null?n.next=n:(n.next=o.next,o.next=n),r.pending=n,kn(e,t)}return o=r.interleaved,o===null?(n.next=n,ku(r)):(n.next=o.next,o.next=n),r.interleaved=n,kn(e,t)}function Go(e,n,t){if(n=n.updateQueue,n!==null&&(n=n.shared,(t&4194240)!==0)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,cu(e,t)}}function Ja(e,n){var t=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,t===r)){var o=null,i=null;if(t=t.firstBaseUpdate,t!==null){do{var l={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};i===null?o=i=l:i=i.next=l,t=t.next}while(t!==null);i===null?o=i=n:i=i.next=n}else o=i=n;t={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function yi(e,n,t,r){var o=e.updateQueue;jn=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var u=s,a=u.next;u.next=null,l===null?i=a:l.next=a,l=u;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==l&&(s===null?d.firstBaseUpdate=a:s.next=a,d.lastBaseUpdate=u))}if(i!==null){var c=o.baseState;l=0,d=a=u=null,s=i;do{var p=s.lane,m=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:m,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var v=e,w=s;switch(p=n,m=t,w.tag){case 1:if(v=w.payload,typeof v=="function"){c=v.call(m,c,p);break e}c=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=w.payload,p=typeof v=="function"?v.call(m,c,p):v,p==null)break e;c=ne({},c,p);break e;case 2:jn=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=o.effects,p===null?o.effects=[s]:p.push(s))}else m={eventTime:m,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(a=d=m,u=c):d=d.next=m,l|=p;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;p=s,s=p.next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}while(!0);if(d===null&&(u=c),o.baseState=u,o.firstBaseUpdate=a,o.lastBaseUpdate=d,n=o.shared.interleaved,n!==null){o=n;do l|=o.lane,o=o.next;while(o!==n)}else i===null&&(o.shared.lanes=0);wt|=l,e.lanes=l,e.memoizedState=c}}function ec(e,n,t){if(e=n.effects,n.effects=null,e!==null)for(n=0;nt?t:4,e(!0);var r=Pl.transition;Pl.transition={};try{e(!1),n()}finally{Q=t,Pl.transition=r}}function Kd(){return Ge().memoizedState}function i0(e,n,t){var r=Vn(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},Xd(e))Zd(n,t);else if(t=Ld(e,n,t,r),t!==null){var o=Ee();en(t,e,r,o),qd(t,n,r)}}function l0(e,n,t){var r=Vn(e),o={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(Xd(e))Zd(n,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=n.lastRenderedReducer,i!==null))try{var l=n.lastRenderedState,s=i(l,t);if(o.hasEagerState=!0,o.eagerState=s,nn(s,l)){var u=n.interleaved;u===null?(o.next=o,ku(n)):(o.next=u.next,u.next=o),n.interleaved=o;return}}catch{}finally{}t=Ld(e,n,o,r),t!==null&&(o=Ee(),en(t,e,r,o),qd(t,n,r))}}function Xd(e){var n=e.alternate;return e===ee||n!==null&&n===ee}function Zd(e,n){Dr=xi=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function qd(e,n,t){if(t&4194240){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,cu(e,t)}}var Si={readContext:Qe,useCallback:me,useContext:me,useEffect:me,useImperativeHandle:me,useInsertionEffect:me,useLayoutEffect:me,useMemo:me,useReducer:me,useRef:me,useState:me,useDebugValue:me,useDeferredValue:me,useTransition:me,useMutableSource:me,useSyncExternalStore:me,useId:me,unstable_isNewReconciler:!1},s0={readContext:Qe,useCallback:function(e,n){return ln().memoizedState=[e,n===void 0?null:n],e},useContext:Qe,useEffect:tc,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,Xo(4194308,4,Wd.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Xo(4194308,4,e,n)},useInsertionEffect:function(e,n){return Xo(4,2,e,n)},useMemo:function(e,n){var t=ln();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=ln();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=i0.bind(null,ee,e),[r.memoizedState,e]},useRef:function(e){var n=ln();return e={current:e},n.memoizedState=e},useState:nc,useDebugValue:Ru,useDeferredValue:function(e){return ln().memoizedState=e},useTransition:function(){var e=nc(!1),n=e[0];return e=o0.bind(null,e[1]),ln().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=ee,o=ln();if(q){if(t===void 0)throw Error(_(407));t=t()}else{if(t=n(),fe===null)throw Error(_(349));yt&30||Id(r,n,t)}o.memoizedState=t;var i={value:t,getSnapshot:n};return o.queue=i,tc(Dd.bind(null,r,i,e),[e]),r.flags|=2048,oo(9,Fd.bind(null,r,i,t,n),void 0,null),t},useId:function(){var e=ln(),n=fe.identifierPrefix;if(q){var t=xn,r=wn;t=(r&~(1<<32-Je(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=to++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(t,{is:r.is}):(e=l.createElement(t),t==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,t),e[sn]=n,e[Jr]=r,up(e,n,!1,!1),n.stateNode=e;e:{switch(l=ts(t,r),t){case"dialog":X("cancel",e),X("close",e),o=r;break;case"iframe":case"object":case"embed":X("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)X(_r[o],e);o=r;break;case"source":X("error",e),o=r;break;case"img":case"image":case"link":X("error",e),X("load",e),o=r;break;case"details":X("toggle",e),o=r;break;case"input":Sa(e,r),o=Xl(e,r),X("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=ne({},r,{value:void 0}),X("invalid",e);break;case"textarea":Ea(e,r),o=Jl(e,r),X("invalid",e);break;default:o=r}ns(t,o),s=o;for(i in s)if(s.hasOwnProperty(i)){var u=s[i];i==="style"?$f(e,u):i==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&zf(e,u)):i==="children"?typeof u=="string"?(t!=="textarea"||u!=="")&&Wr(e,u):typeof u=="number"&&Wr(e,""+u):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Hr.hasOwnProperty(i)?u!=null&&i==="onScroll"&&X("scroll",e):u!=null&&ou(e,i,u,l))}switch(t){case"input":ko(e),Ca(e,r,!1);break;case"textarea":ko(e),ka(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Kn(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?Wt(e,!!r.multiple,i,!1):r.defaultValue!=null&&Wt(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=fi)}switch(t){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return ge(n),null;case 6:if(e&&n.stateNode!=null)cp(e,n,e.memoizedProps,r);else{if(typeof r!="string"&&n.stateNode===null)throw Error(_(166));if(t=ct(no.current),ct(an.current),Ro(n)){if(r=n.stateNode,t=n.memoizedProps,r[sn]=n,(i=r.nodeValue!==t)&&(e=Fe,e!==null))switch(e.tag){case 3:bo(r.nodeValue,t,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&bo(r.nodeValue,t,(e.mode&1)!==0)}i&&(n.flags|=4)}else r=(t.nodeType===9?t:t.ownerDocument).createTextNode(r),r[sn]=n,n.stateNode=r}return ge(n),null;case 13:if(Z(J),r=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(q&&Ie!==null&&n.mode&1&&!(n.flags&128))Pd(),er(),n.flags|=98560,i=!1;else if(i=Ro(n),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(_(318));if(i=n.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(_(317));i[sn]=n}else er(),!(n.flags&128)&&(n.memoizedState=null),n.flags|=4;ge(n),i=!1}else qe!==null&&(Is(qe),qe=null),i=!0;if(!i)return n.flags&65536?n:null}return n.flags&128?(n.lanes=t,n):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(n.child.flags|=8192,n.mode&1&&(e===null||J.current&1?ae===0&&(ae=3):Uu())),n.updateQueue!==null&&(n.flags|=4),ge(n),null);case 4:return tr(),Ps(e,n),e===null&&Zr(n.stateNode.containerInfo),ge(n),null;case 10:return Eu(n.type._context),ge(n),null;case 17:return Le(n.type)&&di(),ge(n),null;case 19:if(Z(J),i=n.memoizedState,i===null)return ge(n),null;if(r=(n.flags&128)!==0,l=i.rendering,l===null)if(r)Er(i,!1);else{if(ae!==0||e!==null&&e.flags&128)for(e=n.child;e!==null;){if(l=wi(e),l!==null){for(n.flags|=128,Er(i,!1),r=l.updateQueue,r!==null&&(n.updateQueue=r,n.flags|=4),n.subtreeFlags=0,r=t,t=n.child;t!==null;)i=t,e=r,i.flags&=14680066,l=i.alternate,l===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),t=t.sibling;return G(J,J.current&1|2),n.child}e=e.sibling}i.tail!==null&&re()>or&&(n.flags|=128,r=!0,Er(i,!1),n.lanes=4194304)}else{if(!r)if(e=wi(l),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),Er(i,!0),i.tail===null&&i.tailMode==="hidden"&&!l.alternate&&!q)return ge(n),null}else 2*re()-i.renderingStartTime>or&&t!==1073741824&&(n.flags|=128,r=!0,Er(i,!1),n.lanes=4194304);i.isBackwards?(l.sibling=n.child,n.child=l):(t=i.last,t!==null?t.sibling=l:n.child=l,i.last=l)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.renderingStartTime=re(),n.sibling=null,t=J.current,G(J,r?t&1|2:t&1),n):(ge(n),null);case 22:case 23:return zu(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?Re&1073741824&&(ge(n),n.subtreeFlags&6&&(n.flags|=8192)):ge(n),null;case 24:return null;case 25:return null}throw Error(_(156,n.tag))}function m0(e,n){switch(wu(n),n.tag){case 1:return Le(n.type)&&di(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return tr(),Z(_e),Z(we),Pu(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return Ou(n),null;case 13:if(Z(J),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(_(340));er()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Z(J),null;case 4:return tr(),null;case 10:return Eu(n.type._context),null;case 22:case 23:return zu(),null;case 24:return null;default:return null}}var Io=!1,ve=!1,g0=typeof WeakSet=="function"?WeakSet:Set,I=null;function zt(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){te(e,n,r)}else t.current=null}function Ts(e,n,t){try{t()}catch(r){te(e,n,r)}}var pc=!1;function v0(e,n){if(ds=ui,e=md(),vu(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{t.nodeType,i.nodeType}catch{t=null;break e}var l=0,s=-1,u=-1,a=0,d=0,c=e,p=null;n:for(;;){for(var m;c!==t||o!==0&&c.nodeType!==3||(s=l+o),c!==i||r!==0&&c.nodeType!==3||(u=l+r),c.nodeType===3&&(l+=c.nodeValue.length),(m=c.firstChild)!==null;)p=c,c=m;for(;;){if(c===e)break n;if(p===t&&++a===o&&(s=l),p===i&&++d===r&&(u=l),(m=c.nextSibling)!==null)break;c=p,p=c.parentNode}c=m}t=s===-1||u===-1?null:{start:s,end:u}}else t=null}t=t||{start:0,end:0}}else t=null;for(ps={focusedElem:e,selectionRange:t},ui=!1,I=n;I!==null;)if(n=I,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,I=e;else for(;I!==null;){n=I;try{var v=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var w=v.memoizedProps,x=v.memoizedState,h=n.stateNode,f=h.getSnapshotBeforeUpdate(n.elementType===n.type?w:Xe(n.type,w),x);h.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var g=n.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_(163))}}catch(C){te(n,n.return,C)}if(e=n.sibling,e!==null){e.return=n.return,I=e;break}I=n.return}return v=pc,pc=!1,v}function zr(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&Ts(n,t,i)}o=o.next}while(o!==r)}}function Qi(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function _s(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function fp(e){var n=e.alternate;n!==null&&(e.alternate=null,fp(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[sn],delete n[Jr],delete n[gs],delete n[Jg],delete n[e0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function dp(e){return e.tag===5||e.tag===3||e.tag===4}function hc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||dp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ls(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=fi));else if(r!==4&&(e=e.child,e!==null))for(Ls(e,n,t),e=e.sibling;e!==null;)Ls(e,n,t),e=e.sibling}function bs(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(bs(e,n,t),e=e.sibling;e!==null;)bs(e,n,t),e=e.sibling}var de=null,Ze=!1;function _n(e,n,t){for(t=t.child;t!==null;)pp(e,n,t),t=t.sibling}function pp(e,n,t){if(un&&typeof un.onCommitFiberUnmount=="function")try{un.onCommitFiberUnmount(zi,t)}catch{}switch(t.tag){case 5:ve||zt(t,n);case 6:var r=de,o=Ze;de=null,_n(e,n,t),de=r,Ze=o,de!==null&&(Ze?(e=de,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):de.removeChild(t.stateNode));break;case 18:de!==null&&(Ze?(e=de,t=t.stateNode,e.nodeType===8?Al(e.parentNode,t):e.nodeType===1&&Al(e,t),Gr(e)):Al(de,t.stateNode));break;case 4:r=de,o=Ze,de=t.stateNode.containerInfo,Ze=!0,_n(e,n,t),de=r,Ze=o;break;case 0:case 11:case 14:case 15:if(!ve&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,l=i.destroy;i=i.tag,l!==void 0&&(i&2||i&4)&&Ts(t,n,l),o=o.next}while(o!==r)}_n(e,n,t);break;case 1:if(!ve&&(zt(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(s){te(t,n,s)}_n(e,n,t);break;case 21:_n(e,n,t);break;case 22:t.mode&1?(ve=(r=ve)||t.memoizedState!==null,_n(e,n,t),ve=r):_n(e,n,t);break;default:_n(e,n,t)}}function mc(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new g0),n.forEach(function(r){var o=N0.bind(null,e,r);t.has(r)||(t.add(r),r.then(o,o))})}}function Ke(e,n){var t=n.deletions;if(t!==null)for(var r=0;ro&&(o=l),r&=~i}if(r=o,r=re()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*w0(r/1960))-r,10e?16:e,Dn===null)var r=!1;else{if(e=Dn,Dn=null,ki=0,Y&6)throw Error(_(331));var o=Y;for(Y|=4,I=e.current;I!==null;){var i=I,l=i.child;if(I.flags&16){var s=i.deletions;if(s!==null){for(var u=0;ure()-Fu?pt(e,0):Iu|=t),be(e,n)}function Sp(e,n){n===0&&(e.mode&1?(n=Oo,Oo<<=1,!(Oo&130023424)&&(Oo=4194304)):n=1);var t=Ee();e=kn(e,n),e!==null&&(mo(e,n,t),be(e,t))}function A0(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),Sp(e,t)}function N0(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(t=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(_(314))}r!==null&&r.delete(n),Sp(e,t)}var Cp;Cp=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||_e.current)Pe=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return Pe=!1,p0(e,n,t);Pe=!!(e.flags&131072)}else Pe=!1,q&&n.flags&1048576&&Nd(n,mi,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;Zo(e,n),e=n.pendingProps;var o=Jt(n,we.current);Gt(n,t),o=_u(null,n,r,e,o,t);var i=Lu();return n.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Le(r)?(i=!0,pi(n)):i=!1,n.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Au(n),o.updater=Yi,n.stateNode=o,o._reactInternals=n,Cs(n,r,e,t),n=As(null,n,r,!0,i,t)):(n.tag=0,q&&i&&yu(n),Ce(null,n,o,t),n=n.child),n;case 16:r=n.elementType;e:{switch(Zo(e,n),e=n.pendingProps,o=r._init,r=o(r._payload),n.type=r,o=n.tag=P0(r),e=Xe(r,e),o){case 0:n=ks(null,n,r,e,t);break e;case 1:n=cc(null,n,r,e,t);break e;case 11:n=uc(null,n,r,e,t);break e;case 14:n=ac(null,n,r,Xe(r.type,e),t);break e}throw Error(_(306,r,""))}return n;case 0:return r=n.type,o=n.pendingProps,o=n.elementType===r?o:Xe(r,o),ks(e,n,r,o,t);case 1:return r=n.type,o=n.pendingProps,o=n.elementType===r?o:Xe(r,o),cc(e,n,r,o,t);case 3:e:{if(ip(n),e===null)throw Error(_(387));r=n.pendingProps,i=n.memoizedState,o=i.element,bd(e,n),yi(n,r,null,t);var l=n.memoizedState;if(r=l.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},n.updateQueue.baseState=i,n.memoizedState=i,n.flags&256){o=rr(Error(_(423)),n),n=fc(e,n,r,t,o);break e}else if(r!==o){o=rr(Error(_(424)),n),n=fc(e,n,r,t,o);break e}else for(Ie=Bn(n.stateNode.containerInfo.firstChild),Fe=n,q=!0,qe=null,t=_d(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(er(),r===o){n=An(e,n,t);break e}Ce(e,n,r,t)}n=n.child}return n;case 5:return Rd(n),e===null&&ws(n),r=n.type,o=n.pendingProps,i=e!==null?e.memoizedProps:null,l=o.children,hs(r,o)?l=null:i!==null&&hs(r,i)&&(n.flags|=32),op(e,n),Ce(e,n,l,t),n.child;case 6:return e===null&&ws(n),null;case 13:return lp(e,n,t);case 4:return Nu(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=nr(n,null,r,t):Ce(e,n,r,t),n.child;case 11:return r=n.type,o=n.pendingProps,o=n.elementType===r?o:Xe(r,o),uc(e,n,r,o,t);case 7:return Ce(e,n,n.pendingProps,t),n.child;case 8:return Ce(e,n,n.pendingProps.children,t),n.child;case 12:return Ce(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,o=n.pendingProps,i=n.memoizedProps,l=o.value,G(gi,r._currentValue),r._currentValue=l,i!==null)if(nn(i.value,l)){if(i.children===o.children&&!_e.current){n=An(e,n,t);break e}}else for(i=n.child,i!==null&&(i.return=n);i!==null;){var s=i.dependencies;if(s!==null){l=i.child;for(var u=s.firstContext;u!==null;){if(u.context===r){if(i.tag===1){u=Sn(-1,t&-t),u.tag=2;var a=i.updateQueue;if(a!==null){a=a.shared;var d=a.pending;d===null?u.next=u:(u.next=d.next,d.next=u),a.pending=u}}i.lanes|=t,u=i.alternate,u!==null&&(u.lanes|=t),xs(i.return,t,n),s.lanes|=t;break}u=u.next}}else if(i.tag===10)l=i.type===n.type?null:i.child;else if(i.tag===18){if(l=i.return,l===null)throw Error(_(341));l.lanes|=t,s=l.alternate,s!==null&&(s.lanes|=t),xs(l,t,n),l=i.sibling}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===n){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}Ce(e,n,o.children,t),n=n.child}return n;case 9:return o=n.type,r=n.pendingProps.children,Gt(n,t),o=Qe(o),r=r(o),n.flags|=1,Ce(e,n,r,t),n.child;case 14:return r=n.type,o=Xe(r,n.pendingProps),o=Xe(r.type,o),ac(e,n,r,o,t);case 15:return tp(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,o=n.pendingProps,o=n.elementType===r?o:Xe(r,o),Zo(e,n),n.tag=1,Le(r)?(e=!0,pi(n)):e=!1,Gt(n,t),Jd(n,r,o),Cs(n,r,o,t),As(null,n,r,!0,e,t);case 19:return sp(e,n,t);case 22:return rp(e,n,t)}throw Error(_(156,n.tag))};function Ep(e,n){return Xf(e,n)}function O0(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ve(e,n,t,r){return new O0(e,n,t,r)}function $u(e){return e=e.prototype,!(!e||!e.isReactComponent)}function P0(e){if(typeof e=="function")return $u(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lu)return 11;if(e===su)return 14}return 2}function Yn(e,n){var t=e.alternate;return t===null?(t=Ve(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function ei(e,n,t,r,o,i){var l=2;if(r=e,typeof e=="function")$u(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case _t:return ht(t.children,o,i,n);case iu:l=8,o|=8;break;case Yl:return e=Ve(12,t,n,o|2),e.elementType=Yl,e.lanes=i,e;case Ql:return e=Ve(13,t,n,o),e.elementType=Ql,e.lanes=i,e;case Gl:return e=Ve(19,t,n,o),e.elementType=Gl,e.lanes=i,e;case Rf:return Ki(t,o,i,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Lf:l=10;break e;case bf:l=9;break e;case lu:l=11;break e;case su:l=14;break e;case Rn:l=16,r=null;break e}throw Error(_(130,e==null?e:typeof e,""))}return n=Ve(l,t,n,o),n.elementType=e,n.type=r,n.lanes=i,n}function ht(e,n,t,r){return e=Ve(7,e,r,n),e.lanes=t,e}function Ki(e,n,t,r){return e=Ve(22,e,r,n),e.elementType=Rf,e.lanes=t,e.stateNode={isHidden:!1},e}function Rl(e,n,t){return e=Ve(6,e,null,n),e.lanes=t,e}function jl(e,n,t){return n=Ve(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function T0(e,n,t,r,o){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=hl(0),this.expirationTimes=hl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=hl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Bu(e,n,t,r,o,i,l,s,u){return e=new T0(e,n,t,s,u),n===1?(n=1,i===!0&&(n|=8)):n=0,i=Ve(3,null,null,n),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Au(i),e}function _0(e,n,t){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Op)}catch(e){console.error(e)}}Op(),Of.exports=Ue;var Yu=Of.exports,Pp,Ec=Yu;Pp=Ec.createRoot,Ec.hydrateRoot;/** + * @remix-run/router v1.20.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Oi(){return Oi=Object.assign?Object.assign.bind():function(e){for(var n=1;n"u")throw new Error(n)}function I0(){return Math.random().toString(36).substr(2,8)}function Ac(e,n){return{usr:e.state,key:e.key,idx:n}}function Fs(e,n,t,r){return t===void 0&&(t=null),Oi({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof n=="string"?Lp(n):n,{state:t,key:n&&n.key||r||I0()})}function _p(e){let{pathname:n="/",search:t="",hash:r=""}=e;return t&&t!=="?"&&(n+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(n+=r.charAt(0)==="#"?r:"#"+r),n}function Lp(e){let n={};if(e){let t=e.indexOf("#");t>=0&&(n.hash=e.substr(t),e=e.substr(0,t));let r=e.indexOf("?");r>=0&&(n.search=e.substr(r),e=e.substr(0,r)),e&&(n.pathname=e)}return n}function F0(e,n,t,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,l=o.history,s=ft.Pop,u=null,a=d();a==null&&(a=0,l.replaceState(Oi({},l.state,{idx:a}),""));function d(){return(l.state||{idx:null}).idx}function c(){s=ft.Pop;let x=d(),h=x==null?null:x-a;a=x,u&&u({action:s,location:w.location,delta:h})}function p(x,h){s=ft.Push;let f=Fs(w.location,x,h);a=d()+1;let g=Ac(f,a),C=w.createHref(f);try{l.pushState(g,"",C)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;o.location.assign(C)}i&&u&&u({action:s,location:w.location,delta:1})}function m(x,h){s=ft.Replace;let f=Fs(w.location,x,h);a=d();let g=Ac(f,a),C=w.createHref(f);l.replaceState(g,"",C),i&&u&&u({action:s,location:w.location,delta:0})}function v(x){let h=o.location.origin!=="null"?o.location.origin:o.location.href,f=typeof x=="string"?x:_p(x);return f=f.replace(/ $/,"%20"),Tp(h,"No window.location.(origin|href) available to create URL for href: "+f),new URL(f,h)}let w={get action(){return s},get location(){return e(o,l)},listen(x){if(u)throw new Error("A history only accepts one active listener");return o.addEventListener(kc,c),u=x,()=>{o.removeEventListener(kc,c),u=null}},createHref(x){return n(o,x)},createURL:v,encodeLocation(x){let h=v(x);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:p,replace:m,go(x){return l.go(x)}};return w}var Nc;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Nc||(Nc={}));function D0(e,n){if(n==="/")return e;if(!e.toLowerCase().startsWith(n.toLowerCase()))return null;let t=n.endsWith("/")?n.length-1:n.length,r=e.charAt(t);return r&&r!=="/"?null:e.slice(t)||"/"}const bp=["post","put","patch","delete"];new Set(bp);const z0=["get",...bp];new Set(z0);/** + * React Router v6.27.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Ds(){return Ds=Object.assign?Object.assign.bind():function(e){for(var n=1;n({basename:u,navigator:i,static:l,future:Ds({v7_relativeSplatPath:!1},s)}),[u,s,i,l]);typeof r=="string"&&(r=Lp(r));let{pathname:d="/",search:c="",hash:p="",state:m=null,key:v="default"}=r,w=y.useMemo(()=>{let x=D0(d,u);return x==null?null:{location:{pathname:x,search:c,hash:p,state:m,key:v},navigationType:o}},[u,d,c,p,m,v,o]);return w==null?null:y.createElement(U0.Provider,{value:a},y.createElement(Rp.Provider,{children:t,value:w}))}new Promise(()=>{});/** + * React Router DOM v6.27.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */const H0="6";try{window.__reactRouterVersion=H0}catch{}const W0="startTransition",Oc=Af[W0];function V0(e){let{basename:n,children:t,future:r,window:o}=e,i=y.useRef();i.current==null&&(i.current=M0({window:o,v5Compat:!0}));let l=i.current,[s,u]=y.useState({action:l.action,location:l.location}),{v7_startTransition:a}=r||{},d=y.useCallback(c=>{a&&Oc?Oc(()=>u(c)):u(c)},[u,a]);return y.useLayoutEffect(()=>l.listen(d),[l,d]),y.createElement(B0,{basename:n,children:t,location:s.location,navigationType:s.action,navigator:l,future:r})}var Pc;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Pc||(Pc={}));var Tc;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Tc||(Tc={}));/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Y0=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),jp=(...e)=>e.filter((n,t,r)=>!!n&&r.indexOf(n)===t).join(" ");/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var Q0={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const G0=y.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:t=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:l,...s},u)=>y.createElement("svg",{ref:u,...Q0,width:n,height:n,stroke:e,strokeWidth:r?Number(t)*24/Number(n):t,className:jp("lucide",o),...s},[...l.map(([a,d])=>y.createElement(a,d)),...Array.isArray(i)?i:[i]]));/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ot=(e,n)=>{const t=y.forwardRef(({className:r,...o},i)=>y.createElement(G0,{ref:i,iconNode:n,className:jp(`lucide-${Y0(e)}`,r),...o}));return t.displayName=`${e}`,t};/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K0=ot("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const X0=ot("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Z0=ot("EyeOff",[["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"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const q0=ot("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"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const J0=ot("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ni=ot("RefreshCw",[["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"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ev=ot("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"}]]);/** + * @license lucide-react v0.453.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nv=ot("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);function yn(e,n,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e==null||e(o),t===!1||!o.defaultPrevented)return n==null?void 0:n(o)}}function tv(e,n){typeof e=="function"?e(n):e!=null&&(e.current=n)}function Mp(...e){return n=>e.forEach(t=>tv(t,n))}function kt(...e){return y.useCallback(Mp(...e),e)}function rv(e,n=[]){let t=[];function r(i,l){const s=y.createContext(l),u=t.length;t=[...t,l];const a=c=>{var h;const{scope:p,children:m,...v}=c,w=((h=p==null?void 0:p[e])==null?void 0:h[u])||s,x=y.useMemo(()=>v,Object.values(v));return S.jsx(w.Provider,{value:x,children:m})};a.displayName=i+"Provider";function d(c,p){var w;const m=((w=p==null?void 0:p[e])==null?void 0:w[u])||s,v=y.useContext(m);if(v)return v;if(l!==void 0)return l;throw new Error(`\`${c}\` must be used within \`${i}\``)}return[a,d]}const o=()=>{const i=t.map(l=>y.createContext(l));return function(s){const u=(s==null?void 0:s[e])||i;return y.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return o.scopeName=e,[r,ov(o,...n)]}function ov(...e){const n=e[0];if(e.length===1)return n;const t=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const l=r.reduce((s,{useScope:u,scopeName:a})=>{const c=u(i)[`__scope${a}`];return{...s,...c}},{});return y.useMemo(()=>({[`__scope${n.scopeName}`]:l}),[l])}};return t.scopeName=n.scopeName,t}var Ip=y.forwardRef((e,n)=>{const{children:t,...r}=e,o=y.Children.toArray(t),i=o.find(iv);if(i){const l=i.props.children,s=o.map(u=>u===i?y.Children.count(l)>1?y.Children.only(null):y.isValidElement(l)?l.props.children:null:u);return S.jsx(zs,{...r,ref:n,children:y.isValidElement(l)?y.cloneElement(l,void 0,s):null})}return S.jsx(zs,{...r,ref:n,children:t})});Ip.displayName="Slot";var zs=y.forwardRef((e,n)=>{const{children:t,...r}=e;if(y.isValidElement(t)){const o=sv(t);return y.cloneElement(t,{...lv(r,t.props),ref:n?Mp(n,o):o})}return y.Children.count(t)>1?y.Children.only(null):null});zs.displayName="SlotClone";var Fp=({children:e})=>S.jsx(S.Fragment,{children:e});function iv(e){return y.isValidElement(e)&&e.type===Fp}function lv(e,n){const t={...n};for(const r in n){const o=e[r],i=n[r];/^on[A-Z]/.test(r)?o&&i?t[r]=(...s)=>{i(...s),o(...s)}:o&&(t[r]=o):r==="style"?t[r]={...o,...i}:r==="className"&&(t[r]=[o,i].filter(Boolean).join(" "))}return{...e,...t}}function sv(e){var r,o;let n=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var uv=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],At=uv.reduce((e,n)=>{const t=y.forwardRef((r,o)=>{const{asChild:i,...l}=r,s=i?Ip:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),S.jsx(s,{...l,ref:o})});return t.displayName=`Primitive.${n}`,{...e,[n]:t}},{});function av(e,n){e&&Yu.flushSync(()=>e.dispatchEvent(n))}function dr(e){const n=y.useRef(e);return y.useEffect(()=>{n.current=e}),y.useMemo(()=>(...t)=>{var r;return(r=n.current)==null?void 0:r.call(n,...t)},[])}function cv(e,n=globalThis==null?void 0:globalThis.document){const t=dr(e);y.useEffect(()=>{const r=o=>{o.key==="Escape"&&t(o)};return n.addEventListener("keydown",r,{capture:!0}),()=>n.removeEventListener("keydown",r,{capture:!0})},[t,n])}var fv="DismissableLayer",Us="dismissableLayer.update",dv="dismissableLayer.pointerDownOutside",pv="dismissableLayer.focusOutside",_c,Dp=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),zp=y.forwardRef((e,n)=>{const{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:s,...u}=e,a=y.useContext(Dp),[d,c]=y.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,m]=y.useState({}),v=kt(n,A=>c(A)),w=Array.from(a.layers),[x]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),h=w.indexOf(x),f=d?w.indexOf(d):-1,g=a.layersWithOutsidePointerEventsDisabled.size>0,C=f>=h,E=gv(A=>{const L=A.target,F=[...a.branches].some(P=>P.contains(L));!C||F||(o==null||o(A),l==null||l(A),A.defaultPrevented||s==null||s())},p),k=vv(A=>{const L=A.target;[...a.branches].some(P=>P.contains(L))||(i==null||i(A),l==null||l(A),A.defaultPrevented||s==null||s())},p);return cv(A=>{f===a.layers.size-1&&(r==null||r(A),!A.defaultPrevented&&s&&(A.preventDefault(),s()))},p),y.useEffect(()=>{if(d)return t&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(_c=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(d)),a.layers.add(d),Lc(),()=>{t&&a.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=_c)}},[d,p,t,a]),y.useEffect(()=>()=>{d&&(a.layers.delete(d),a.layersWithOutsidePointerEventsDisabled.delete(d),Lc())},[d,a]),y.useEffect(()=>{const A=()=>m({});return document.addEventListener(Us,A),()=>document.removeEventListener(Us,A)},[]),S.jsx(At.div,{...u,ref:v,style:{pointerEvents:g?C?"auto":"none":void 0,...e.style},onFocusCapture:yn(e.onFocusCapture,k.onFocusCapture),onBlurCapture:yn(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:yn(e.onPointerDownCapture,E.onPointerDownCapture)})});zp.displayName=fv;var hv="DismissableLayerBranch",mv=y.forwardRef((e,n)=>{const t=y.useContext(Dp),r=y.useRef(null),o=kt(n,r);return y.useEffect(()=>{const i=r.current;if(i)return t.branches.add(i),()=>{t.branches.delete(i)}},[t.branches]),S.jsx(At.div,{...e,ref:o})});mv.displayName=hv;function gv(e,n=globalThis==null?void 0:globalThis.document){const t=dr(e),r=y.useRef(!1),o=y.useRef(()=>{});return y.useEffect(()=>{const i=s=>{if(s.target&&!r.current){let u=function(){Up(dv,t,a,{discrete:!0})};const a={originalEvent:s};s.pointerType==="touch"?(n.removeEventListener("click",o.current),o.current=u,n.addEventListener("click",o.current,{once:!0})):u()}else n.removeEventListener("click",o.current);r.current=!1},l=window.setTimeout(()=>{n.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(l),n.removeEventListener("pointerdown",i),n.removeEventListener("click",o.current)}},[n,t]),{onPointerDownCapture:()=>r.current=!0}}function vv(e,n=globalThis==null?void 0:globalThis.document){const t=dr(e),r=y.useRef(!1);return y.useEffect(()=>{const o=i=>{i.target&&!r.current&&Up(pv,t,{originalEvent:i},{discrete:!1})};return n.addEventListener("focusin",o),()=>n.removeEventListener("focusin",o)},[n,t]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Lc(){const e=new CustomEvent(Us);document.dispatchEvent(e)}function Up(e,n,t,{discrete:r}){const o=t.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});n&&o.addEventListener(e,n,{once:!0}),r?av(o,i):o.dispatchEvent(i)}var ir=globalThis!=null&&globalThis.document?y.useLayoutEffect:()=>{},yv=Af.useId||(()=>{}),wv=0;function xv(e){const[n,t]=y.useState(yv());return ir(()=>{t(r=>r??String(wv++))},[e]),n?`radix-${n}`:""}const Sv=["top","right","bottom","left"],Zn=Math.min,Me=Math.max,Pi=Math.round,zo=Math.floor,cn=e=>({x:e,y:e}),Cv={left:"right",right:"left",bottom:"top",top:"bottom"},Ev={start:"end",end:"start"};function $s(e,n,t){return Me(e,Zn(n,t))}function Nn(e,n){return typeof e=="function"?e(n):e}function On(e){return e.split("-")[0]}function pr(e){return e.split("-")[1]}function Qu(e){return e==="x"?"y":"x"}function Gu(e){return e==="y"?"height":"width"}function qn(e){return["top","bottom"].includes(On(e))?"y":"x"}function Ku(e){return Qu(qn(e))}function kv(e,n,t){t===void 0&&(t=!1);const r=pr(e),o=Ku(e),i=Gu(o);let l=o==="x"?r===(t?"end":"start")?"right":"left":r==="start"?"bottom":"top";return n.reference[i]>n.floating[i]&&(l=Ti(l)),[l,Ti(l)]}function Av(e){const n=Ti(e);return[Bs(e),n,Bs(n)]}function Bs(e){return e.replace(/start|end/g,n=>Ev[n])}function Nv(e,n,t){const r=["left","right"],o=["right","left"],i=["top","bottom"],l=["bottom","top"];switch(e){case"top":case"bottom":return t?n?o:r:n?r:o;case"left":case"right":return n?i:l;default:return[]}}function Ov(e,n,t,r){const o=pr(e);let i=Nv(On(e),t==="start",r);return o&&(i=i.map(l=>l+"-"+o),n&&(i=i.concat(i.map(Bs)))),i}function Ti(e){return e.replace(/left|right|bottom|top/g,n=>Cv[n])}function Pv(e){return{top:0,right:0,bottom:0,left:0,...e}}function $p(e){return typeof e!="number"?Pv(e):{top:e,right:e,bottom:e,left:e}}function _i(e){const{x:n,y:t,width:r,height:o}=e;return{width:r,height:o,top:t,left:n,right:n+r,bottom:t+o,x:n,y:t}}function bc(e,n,t){let{reference:r,floating:o}=e;const i=qn(n),l=Ku(n),s=Gu(l),u=On(n),a=i==="y",d=r.x+r.width/2-o.width/2,c=r.y+r.height/2-o.height/2,p=r[s]/2-o[s]/2;let m;switch(u){case"top":m={x:d,y:r.y-o.height};break;case"bottom":m={x:d,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:c};break;case"left":m={x:r.x-o.width,y:c};break;default:m={x:r.x,y:r.y}}switch(pr(n)){case"start":m[l]-=p*(t&&a?-1:1);break;case"end":m[l]+=p*(t&&a?-1:1);break}return m}const Tv=async(e,n,t)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:l}=t,s=i.filter(Boolean),u=await(l.isRTL==null?void 0:l.isRTL(n));let a=await l.getElementRects({reference:e,floating:n,strategy:o}),{x:d,y:c}=bc(a,r,u),p=r,m={},v=0;for(let w=0;w({name:"arrow",options:e,async fn(n){const{x:t,y:r,placement:o,rects:i,platform:l,elements:s,middlewareData:u}=n,{element:a,padding:d=0}=Nn(e,n)||{};if(a==null)return{};const c=$p(d),p={x:t,y:r},m=Ku(o),v=Gu(m),w=await l.getDimensions(a),x=m==="y",h=x?"top":"left",f=x?"bottom":"right",g=x?"clientHeight":"clientWidth",C=i.reference[v]+i.reference[m]-p[m]-i.floating[v],E=p[m]-i.reference[m],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(a));let A=k?k[g]:0;(!A||!await(l.isElement==null?void 0:l.isElement(k)))&&(A=s.floating[g]||i.floating[v]);const L=C/2-E/2,F=A/2-w[v]/2-1,P=Zn(c[h],F),b=Zn(c[f],F),T=P,z=A-w[v]-b,D=A/2-w[v]/2+L,O=$s(T,D,z),j=!u.arrow&&pr(o)!=null&&D!==O&&i.reference[v]/2-(DD<=0)){var b,T;const D=(((b=i.flip)==null?void 0:b.index)||0)+1,O=A[D];if(O)return{data:{index:D,overflows:P},reset:{placement:O}};let j=(T=P.filter(H=>H.overflows[0]<=0).sort((H,N)=>H.overflows[1]-N.overflows[1])[0])==null?void 0:T.placement;if(!j)switch(m){case"bestFit":{var z;const H=(z=P.filter(N=>{if(k){const R=qn(N.placement);return R===f||R==="y"}return!0}).map(N=>[N.placement,N.overflows.filter(R=>R>0).reduce((R,$)=>R+$,0)]).sort((N,R)=>N[1]-R[1])[0])==null?void 0:z[0];H&&(j=H);break}case"initialPlacement":j=s;break}if(o!==j)return{reset:{placement:j}}}return{}}}};function Rc(e,n){return{top:e.top-n.height,right:e.right-n.width,bottom:e.bottom-n.height,left:e.left-n.width}}function jc(e){return Sv.some(n=>e[n]>=0)}const bv=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(n){const{rects:t}=n,{strategy:r="referenceHidden",...o}=Nn(e,n);switch(r){case"referenceHidden":{const i=await lo(n,{...o,elementContext:"reference"}),l=Rc(i,t.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:jc(l)}}}case"escaped":{const i=await lo(n,{...o,altBoundary:!0}),l=Rc(i,t.floating);return{data:{escapedOffsets:l,escaped:jc(l)}}}default:return{}}}}};async function Rv(e,n){const{placement:t,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),l=On(t),s=pr(t),u=qn(t)==="y",a=["left","top"].includes(l)?-1:1,d=i&&u?-1:1,c=Nn(n,e);let{mainAxis:p,crossAxis:m,alignmentAxis:v}=typeof c=="number"?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return s&&typeof v=="number"&&(m=s==="end"?v*-1:v),u?{x:m*d,y:p*a}:{x:p*a,y:m*d}}const jv=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(n){var t,r;const{x:o,y:i,placement:l,middlewareData:s}=n,u=await Rv(n,e);return l===((t=s.offset)==null?void 0:t.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:l}}}}},Mv=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(n){const{x:t,y:r,placement:o}=n,{mainAxis:i=!0,crossAxis:l=!1,limiter:s={fn:x=>{let{x:h,y:f}=x;return{x:h,y:f}}},...u}=Nn(e,n),a={x:t,y:r},d=await lo(n,u),c=qn(On(o)),p=Qu(c);let m=a[p],v=a[c];if(i){const x=p==="y"?"top":"left",h=p==="y"?"bottom":"right",f=m+d[x],g=m-d[h];m=$s(f,m,g)}if(l){const x=c==="y"?"top":"left",h=c==="y"?"bottom":"right",f=v+d[x],g=v-d[h];v=$s(f,v,g)}const w=s.fn({...n,[p]:m,[c]:v});return{...w,data:{x:w.x-t,y:w.y-r,enabled:{[p]:i,[c]:l}}}}}},Iv=function(e){return e===void 0&&(e={}),{options:e,fn(n){const{x:t,y:r,placement:o,rects:i,middlewareData:l}=n,{offset:s=0,mainAxis:u=!0,crossAxis:a=!0}=Nn(e,n),d={x:t,y:r},c=qn(o),p=Qu(c);let m=d[p],v=d[c];const w=Nn(s,n),x=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(u){const g=p==="y"?"height":"width",C=i.reference[p]-i.floating[g]+x.mainAxis,E=i.reference[p]+i.reference[g]-x.mainAxis;mE&&(m=E)}if(a){var h,f;const g=p==="y"?"width":"height",C=["top","left"].includes(On(o)),E=i.reference[c]-i.floating[g]+(C&&((h=l.offset)==null?void 0:h[c])||0)+(C?0:x.crossAxis),k=i.reference[c]+i.reference[g]+(C?0:((f=l.offset)==null?void 0:f[c])||0)-(C?x.crossAxis:0);vk&&(v=k)}return{[p]:m,[c]:v}}}},Fv=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(n){var t,r;const{placement:o,rects:i,platform:l,elements:s}=n,{apply:u=()=>{},...a}=Nn(e,n),d=await lo(n,a),c=On(o),p=pr(o),m=qn(o)==="y",{width:v,height:w}=i.floating;let x,h;c==="top"||c==="bottom"?(x=c,h=p===(await(l.isRTL==null?void 0:l.isRTL(s.floating))?"start":"end")?"left":"right"):(h=c,x=p==="end"?"top":"bottom");const f=w-d.top-d.bottom,g=v-d.left-d.right,C=Zn(w-d[x],f),E=Zn(v-d[h],g),k=!n.middlewareData.shift;let A=C,L=E;if((t=n.middlewareData.shift)!=null&&t.enabled.x&&(L=g),(r=n.middlewareData.shift)!=null&&r.enabled.y&&(A=f),k&&!p){const P=Me(d.left,0),b=Me(d.right,0),T=Me(d.top,0),z=Me(d.bottom,0);m?L=v-2*(P!==0||b!==0?P+b:Me(d.left,d.right)):A=w-2*(T!==0||z!==0?T+z:Me(d.top,d.bottom))}await u({...n,availableWidth:L,availableHeight:A});const F=await l.getDimensions(s.floating);return v!==F.width||w!==F.height?{reset:{rects:!0}}:{}}}};function el(){return typeof window<"u"}function hr(e){return Bp(e)?(e.nodeName||"").toLowerCase():"#document"}function De(e){var n;return(e==null||(n=e.ownerDocument)==null?void 0:n.defaultView)||window}function pn(e){var n;return(n=(Bp(e)?e.ownerDocument:e.document)||window.document)==null?void 0:n.documentElement}function Bp(e){return el()?e instanceof Node||e instanceof De(e).Node:!1}function tn(e){return el()?e instanceof Element||e instanceof De(e).Element:!1}function dn(e){return el()?e instanceof HTMLElement||e instanceof De(e).HTMLElement:!1}function Mc(e){return!el()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof De(e).ShadowRoot}function wo(e){const{overflow:n,overflowX:t,overflowY:r,display:o}=rn(e);return/auto|scroll|overlay|hidden|clip/.test(n+r+t)&&!["inline","contents"].includes(o)}function Dv(e){return["table","td","th"].includes(hr(e))}function nl(e){return[":popover-open",":modal"].some(n=>{try{return e.matches(n)}catch{return!1}})}function Xu(e){const n=Zu(),t=tn(e)?rn(e):e;return t.transform!=="none"||t.perspective!=="none"||(t.containerType?t.containerType!=="normal":!1)||!n&&(t.backdropFilter?t.backdropFilter!=="none":!1)||!n&&(t.filter?t.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(t.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(t.contain||"").includes(r))}function zv(e){let n=Jn(e);for(;dn(n)&&!lr(n);){if(Xu(n))return n;if(nl(n))return null;n=Jn(n)}return null}function Zu(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function lr(e){return["html","body","#document"].includes(hr(e))}function rn(e){return De(e).getComputedStyle(e)}function tl(e){return tn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Jn(e){if(hr(e)==="html")return e;const n=e.assignedSlot||e.parentNode||Mc(e)&&e.host||pn(e);return Mc(n)?n.host:n}function Hp(e){const n=Jn(e);return lr(n)?e.ownerDocument?e.ownerDocument.body:e.body:dn(n)&&wo(n)?n:Hp(n)}function so(e,n,t){var r;n===void 0&&(n=[]),t===void 0&&(t=!0);const o=Hp(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),l=De(o);if(i){const s=Hs(l);return n.concat(l,l.visualViewport||[],wo(o)?o:[],s&&t?so(s):[])}return n.concat(o,so(o,[],t))}function Hs(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Wp(e){const n=rn(e);let t=parseFloat(n.width)||0,r=parseFloat(n.height)||0;const o=dn(e),i=o?e.offsetWidth:t,l=o?e.offsetHeight:r,s=Pi(t)!==i||Pi(r)!==l;return s&&(t=i,r=l),{width:t,height:r,$:s}}function qu(e){return tn(e)?e:e.contextElement}function Xt(e){const n=qu(e);if(!dn(n))return cn(1);const t=n.getBoundingClientRect(),{width:r,height:o,$:i}=Wp(n);let l=(i?Pi(t.width):t.width)/r,s=(i?Pi(t.height):t.height)/o;return(!l||!Number.isFinite(l))&&(l=1),(!s||!Number.isFinite(s))&&(s=1),{x:l,y:s}}const Uv=cn(0);function Vp(e){const n=De(e);return!Zu()||!n.visualViewport?Uv:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function $v(e,n,t){return n===void 0&&(n=!1),!t||n&&t!==De(e)?!1:n}function St(e,n,t,r){n===void 0&&(n=!1),t===void 0&&(t=!1);const o=e.getBoundingClientRect(),i=qu(e);let l=cn(1);n&&(r?tn(r)&&(l=Xt(r)):l=Xt(e));const s=$v(i,t,r)?Vp(i):cn(0);let u=(o.left+s.x)/l.x,a=(o.top+s.y)/l.y,d=o.width/l.x,c=o.height/l.y;if(i){const p=De(i),m=r&&tn(r)?De(r):r;let v=p,w=Hs(v);for(;w&&r&&m!==v;){const x=Xt(w),h=w.getBoundingClientRect(),f=rn(w),g=h.left+(w.clientLeft+parseFloat(f.paddingLeft))*x.x,C=h.top+(w.clientTop+parseFloat(f.paddingTop))*x.y;u*=x.x,a*=x.y,d*=x.x,c*=x.y,u+=g,a+=C,v=De(w),w=Hs(v)}}return _i({width:d,height:c,x:u,y:a})}function Ju(e,n){const t=tl(e).scrollLeft;return n?n.left+t:St(pn(e)).left+t}function Yp(e,n,t){t===void 0&&(t=!1);const r=e.getBoundingClientRect(),o=r.left+n.scrollLeft-(t?0:Ju(e,r)),i=r.top+n.scrollTop;return{x:o,y:i}}function Bv(e){let{elements:n,rect:t,offsetParent:r,strategy:o}=e;const i=o==="fixed",l=pn(r),s=n?nl(n.floating):!1;if(r===l||s&&i)return t;let u={scrollLeft:0,scrollTop:0},a=cn(1);const d=cn(0),c=dn(r);if((c||!c&&!i)&&((hr(r)!=="body"||wo(l))&&(u=tl(r)),dn(r))){const m=St(r);a=Xt(r),d.x=m.x+r.clientLeft,d.y=m.y+r.clientTop}const p=l&&!c&&!i?Yp(l,u,!0):cn(0);return{width:t.width*a.x,height:t.height*a.y,x:t.x*a.x-u.scrollLeft*a.x+d.x+p.x,y:t.y*a.y-u.scrollTop*a.y+d.y+p.y}}function Hv(e){return Array.from(e.getClientRects())}function Wv(e){const n=pn(e),t=tl(e),r=e.ownerDocument.body,o=Me(n.scrollWidth,n.clientWidth,r.scrollWidth,r.clientWidth),i=Me(n.scrollHeight,n.clientHeight,r.scrollHeight,r.clientHeight);let l=-t.scrollLeft+Ju(e);const s=-t.scrollTop;return rn(r).direction==="rtl"&&(l+=Me(n.clientWidth,r.clientWidth)-o),{width:o,height:i,x:l,y:s}}function Vv(e,n){const t=De(e),r=pn(e),o=t.visualViewport;let i=r.clientWidth,l=r.clientHeight,s=0,u=0;if(o){i=o.width,l=o.height;const a=Zu();(!a||a&&n==="fixed")&&(s=o.offsetLeft,u=o.offsetTop)}return{width:i,height:l,x:s,y:u}}function Yv(e,n){const t=St(e,!0,n==="fixed"),r=t.top+e.clientTop,o=t.left+e.clientLeft,i=dn(e)?Xt(e):cn(1),l=e.clientWidth*i.x,s=e.clientHeight*i.y,u=o*i.x,a=r*i.y;return{width:l,height:s,x:u,y:a}}function Ic(e,n,t){let r;if(n==="viewport")r=Vv(e,t);else if(n==="document")r=Wv(pn(e));else if(tn(n))r=Yv(n,t);else{const o=Vp(e);r={x:n.x-o.x,y:n.y-o.y,width:n.width,height:n.height}}return _i(r)}function Qp(e,n){const t=Jn(e);return t===n||!tn(t)||lr(t)?!1:rn(t).position==="fixed"||Qp(t,n)}function Qv(e,n){const t=n.get(e);if(t)return t;let r=so(e,[],!1).filter(s=>tn(s)&&hr(s)!=="body"),o=null;const i=rn(e).position==="fixed";let l=i?Jn(e):e;for(;tn(l)&&!lr(l);){const s=rn(l),u=Xu(l);!u&&s.position==="fixed"&&(o=null),(i?!u&&!o:!u&&s.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||wo(l)&&!u&&Qp(e,l))?r=r.filter(d=>d!==l):o=s,l=Jn(l)}return n.set(e,r),r}function Gv(e){let{element:n,boundary:t,rootBoundary:r,strategy:o}=e;const l=[...t==="clippingAncestors"?nl(n)?[]:Qv(n,this._c):[].concat(t),r],s=l[0],u=l.reduce((a,d)=>{const c=Ic(n,d,o);return a.top=Me(c.top,a.top),a.right=Zn(c.right,a.right),a.bottom=Zn(c.bottom,a.bottom),a.left=Me(c.left,a.left),a},Ic(n,s,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function Kv(e){const{width:n,height:t}=Wp(e);return{width:n,height:t}}function Xv(e,n,t){const r=dn(n),o=pn(n),i=t==="fixed",l=St(e,!0,i,n);let s={scrollLeft:0,scrollTop:0};const u=cn(0);if(r||!r&&!i)if((hr(n)!=="body"||wo(o))&&(s=tl(n)),r){const p=St(n,!0,i,n);u.x=p.x+n.clientLeft,u.y=p.y+n.clientTop}else o&&(u.x=Ju(o));const a=o&&!r&&!i?Yp(o,s):cn(0),d=l.left+s.scrollLeft-u.x-a.x,c=l.top+s.scrollTop-u.y-a.y;return{x:d,y:c,width:l.width,height:l.height}}function Ml(e){return rn(e).position==="static"}function Fc(e,n){if(!dn(e)||rn(e).position==="fixed")return null;if(n)return n(e);let t=e.offsetParent;return pn(e)===t&&(t=t.ownerDocument.body),t}function Gp(e,n){const t=De(e);if(nl(e))return t;if(!dn(e)){let o=Jn(e);for(;o&&!lr(o);){if(tn(o)&&!Ml(o))return o;o=Jn(o)}return t}let r=Fc(e,n);for(;r&&Dv(r)&&Ml(r);)r=Fc(r,n);return r&&lr(r)&&Ml(r)&&!Xu(r)?t:r||zv(e)||t}const Zv=async function(e){const n=this.getOffsetParent||Gp,t=this.getDimensions,r=await t(e.floating);return{reference:Xv(e.reference,await n(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function qv(e){return rn(e).direction==="rtl"}const Jv={convertOffsetParentRelativeRectToViewportRelativeRect:Bv,getDocumentElement:pn,getClippingRect:Gv,getOffsetParent:Gp,getElementRects:Zv,getClientRects:Hv,getDimensions:Kv,getScale:Xt,isElement:tn,isRTL:qv};function ey(e,n){let t=null,r;const o=pn(e);function i(){var s;clearTimeout(r),(s=t)==null||s.disconnect(),t=null}function l(s,u){s===void 0&&(s=!1),u===void 0&&(u=1),i();const{left:a,top:d,width:c,height:p}=e.getBoundingClientRect();if(s||n(),!c||!p)return;const m=zo(d),v=zo(o.clientWidth-(a+c)),w=zo(o.clientHeight-(d+p)),x=zo(a),f={rootMargin:-m+"px "+-v+"px "+-w+"px "+-x+"px",threshold:Me(0,Zn(1,u))||1};let g=!0;function C(E){const k=E[0].intersectionRatio;if(k!==u){if(!g)return l();k?l(!1,k):r=setTimeout(()=>{l(!1,1e-7)},1e3)}g=!1}try{t=new IntersectionObserver(C,{...f,root:o.ownerDocument})}catch{t=new IntersectionObserver(C,f)}t.observe(e)}return l(!0),i}function ny(e,n,t,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,a=qu(e),d=o||i?[...a?so(a):[],...so(n)]:[];d.forEach(h=>{o&&h.addEventListener("scroll",t,{passive:!0}),i&&h.addEventListener("resize",t)});const c=a&&s?ey(a,t):null;let p=-1,m=null;l&&(m=new ResizeObserver(h=>{let[f]=h;f&&f.target===a&&m&&(m.unobserve(n),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var g;(g=m)==null||g.observe(n)})),t()}),a&&!u&&m.observe(a),m.observe(n));let v,w=u?St(e):null;u&&x();function x(){const h=St(e);w&&(h.x!==w.x||h.y!==w.y||h.width!==w.width||h.height!==w.height)&&t(),w=h,v=requestAnimationFrame(x)}return t(),()=>{var h;d.forEach(f=>{o&&f.removeEventListener("scroll",t),i&&f.removeEventListener("resize",t)}),c==null||c(),(h=m)==null||h.disconnect(),m=null,u&&cancelAnimationFrame(v)}}const ty=jv,ry=Mv,oy=Lv,iy=Fv,ly=bv,Dc=_v,sy=Iv,uy=(e,n,t)=>{const r=new Map,o={platform:Jv,...t},i={...o.platform,_c:r};return Tv(e,n,{...o,platform:i})};var ti=typeof document<"u"?y.useLayoutEffect:y.useEffect;function Li(e,n){if(e===n)return!0;if(typeof e!=typeof n)return!1;if(typeof e=="function"&&e.toString()===n.toString())return!0;let t,r,o;if(e&&n&&typeof e=="object"){if(Array.isArray(e)){if(t=e.length,t!==n.length)return!1;for(r=t;r--!==0;)if(!Li(e[r],n[r]))return!1;return!0}if(o=Object.keys(e),t=o.length,t!==Object.keys(n).length)return!1;for(r=t;r--!==0;)if(!{}.hasOwnProperty.call(n,o[r]))return!1;for(r=t;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!Li(e[i],n[i]))return!1}return!0}return e!==e&&n!==n}function Kp(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function zc(e,n){const t=Kp(e);return Math.round(n*t)/t}function Il(e){const n=y.useRef(e);return ti(()=>{n.current=e}),n}function ay(e){e===void 0&&(e={});const{placement:n="bottom",strategy:t="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:l}={},transform:s=!0,whileElementsMounted:u,open:a}=e,[d,c]=y.useState({x:0,y:0,strategy:t,placement:n,middlewareData:{},isPositioned:!1}),[p,m]=y.useState(r);Li(p,r)||m(r);const[v,w]=y.useState(null),[x,h]=y.useState(null),f=y.useCallback(N=>{N!==k.current&&(k.current=N,w(N))},[]),g=y.useCallback(N=>{N!==A.current&&(A.current=N,h(N))},[]),C=i||v,E=l||x,k=y.useRef(null),A=y.useRef(null),L=y.useRef(d),F=u!=null,P=Il(u),b=Il(o),T=Il(a),z=y.useCallback(()=>{if(!k.current||!A.current)return;const N={placement:n,strategy:t,middleware:p};b.current&&(N.platform=b.current),uy(k.current,A.current,N).then(R=>{const $={...R,isPositioned:T.current!==!1};D.current&&!Li(L.current,$)&&(L.current=$,Yu.flushSync(()=>{c($)}))})},[p,n,t,b,T]);ti(()=>{a===!1&&L.current.isPositioned&&(L.current.isPositioned=!1,c(N=>({...N,isPositioned:!1})))},[a]);const D=y.useRef(!1);ti(()=>(D.current=!0,()=>{D.current=!1}),[]),ti(()=>{if(C&&(k.current=C),E&&(A.current=E),C&&E){if(P.current)return P.current(C,E,z);z()}},[C,E,z,P,F]);const O=y.useMemo(()=>({reference:k,floating:A,setReference:f,setFloating:g}),[f,g]),j=y.useMemo(()=>({reference:C,floating:E}),[C,E]),H=y.useMemo(()=>{const N={position:t,left:0,top:0};if(!j.floating)return N;const R=zc(j.floating,d.x),$=zc(j.floating,d.y);return s?{...N,transform:"translate("+R+"px, "+$+"px)",...Kp(j.floating)>=1.5&&{willChange:"transform"}}:{position:t,left:R,top:$}},[t,s,j.floating,d.x,d.y]);return y.useMemo(()=>({...d,update:z,refs:O,elements:j,floatingStyles:H}),[d,z,O,j,H])}const cy=e=>{function n(t){return{}.hasOwnProperty.call(t,"current")}return{name:"arrow",options:e,fn(t){const{element:r,padding:o}=typeof e=="function"?e(t):e;return r&&n(r)?r.current!=null?Dc({element:r.current,padding:o}).fn(t):{}:r?Dc({element:r,padding:o}).fn(t):{}}}},fy=(e,n)=>({...ty(e),options:[e,n]}),dy=(e,n)=>({...ry(e),options:[e,n]}),py=(e,n)=>({...sy(e),options:[e,n]}),hy=(e,n)=>({...oy(e),options:[e,n]}),my=(e,n)=>({...iy(e),options:[e,n]}),gy=(e,n)=>({...ly(e),options:[e,n]}),vy=(e,n)=>({...cy(e),options:[e,n]});var yy="Arrow",Xp=y.forwardRef((e,n)=>{const{children:t,width:r=10,height:o=5,...i}=e;return S.jsx(At.svg,{...i,ref:n,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?t:S.jsx("polygon",{points:"0,0 30,0 15,10"})})});Xp.displayName=yy;var wy=Xp;function xy(e,n=[]){let t=[];function r(i,l){const s=y.createContext(l),u=t.length;t=[...t,l];function a(c){const{scope:p,children:m,...v}=c,w=(p==null?void 0:p[e][u])||s,x=y.useMemo(()=>v,Object.values(v));return S.jsx(w.Provider,{value:x,children:m})}function d(c,p){const m=(p==null?void 0:p[e][u])||s,v=y.useContext(m);if(v)return v;if(l!==void 0)return l;throw new Error(`\`${c}\` must be used within \`${i}\``)}return a.displayName=i+"Provider",[a,d]}const o=()=>{const i=t.map(l=>y.createContext(l));return function(s){const u=(s==null?void 0:s[e])||i;return y.useMemo(()=>({[`__scope${e}`]:{...s,[e]:u}}),[s,u])}};return o.scopeName=e,[r,Sy(o,...n)]}function Sy(...e){const n=e[0];if(e.length===1)return n;const t=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const l=r.reduce((s,{useScope:u,scopeName:a})=>{const c=u(i)[`__scope${a}`];return{...s,...c}},{});return y.useMemo(()=>({[`__scope${n.scopeName}`]:l}),[l])}};return t.scopeName=n.scopeName,t}function Cy(e){const[n,t]=y.useState(void 0);return ir(()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let l,s;if("borderBoxSize"in i){const u=i.borderBoxSize,a=Array.isArray(u)?u[0]:u;l=a.inlineSize,s=a.blockSize}else l=e.offsetWidth,s=e.offsetHeight;t({width:l,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else t(void 0)},[e]),n}var ea="Popper",[Zp,qp]=xy(ea),[Ey,Jp]=Zp(ea),eh=e=>{const{__scopePopper:n,children:t}=e,[r,o]=y.useState(null);return S.jsx(Ey,{scope:n,anchor:r,onAnchorChange:o,children:t})};eh.displayName=ea;var nh="PopperAnchor",th=y.forwardRef((e,n)=>{const{__scopePopper:t,virtualRef:r,...o}=e,i=Jp(nh,t),l=y.useRef(null),s=kt(n,l);return y.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||l.current)}),r?null:S.jsx(At.div,{...o,ref:s})});th.displayName=nh;var na="PopperContent",[ky,Ay]=Zp(na),rh=y.forwardRef((e,n)=>{var it,aa,ca,fa,da,pa;const{__scopePopper:t,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:l=0,arrowPadding:s=0,avoidCollisions:u=!0,collisionBoundary:a=[],collisionPadding:d=0,sticky:c="partial",hideWhenDetached:p=!1,updatePositionStrategy:m="optimized",onPlaced:v,...w}=e,x=Jp(na,t),[h,f]=y.useState(null),g=kt(n,gr=>f(gr)),[C,E]=y.useState(null),k=Cy(C),A=(k==null?void 0:k.width)??0,L=(k==null?void 0:k.height)??0,F=r+(i!=="center"?"-"+i:""),P=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},b=Array.isArray(a)?a:[a],T=b.length>0,z={padding:P,boundary:b.filter(Oy),altBoundary:T},{refs:D,floatingStyles:O,placement:j,isPositioned:H,middlewareData:N}=ay({strategy:"fixed",placement:F,whileElementsMounted:(...gr)=>ny(...gr,{animationFrame:m==="always"}),elements:{reference:x.anchor},middleware:[fy({mainAxis:o+L,alignmentAxis:l}),u&&dy({mainAxis:!0,crossAxis:!1,limiter:c==="partial"?py():void 0,...z}),u&&hy({...z}),my({...z,apply:({elements:gr,rects:ha,availableWidth:om,availableHeight:im})=>{const{width:lm,height:sm}=ha.reference,So=gr.floating.style;So.setProperty("--radix-popper-available-width",`${om}px`),So.setProperty("--radix-popper-available-height",`${im}px`),So.setProperty("--radix-popper-anchor-width",`${lm}px`),So.setProperty("--radix-popper-anchor-height",`${sm}px`)}}),C&&vy({element:C,padding:s}),Py({arrowWidth:A,arrowHeight:L}),p&&gy({strategy:"referenceHidden",...z})]}),[R,$]=lh(j),M=dr(v);ir(()=>{H&&(M==null||M())},[H,M]);const B=(it=N.arrow)==null?void 0:it.x,oe=(aa=N.arrow)==null?void 0:aa.y,Se=((ca=N.arrow)==null?void 0:ca.centerOffset)!==0,[Be,hn]=y.useState();return ir(()=>{h&&hn(window.getComputedStyle(h).zIndex)},[h]),S.jsx("div",{ref:D.setFloating,"data-radix-popper-content-wrapper":"",style:{...O,transform:H?O.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Be,"--radix-popper-transform-origin":[(fa=N.transformOrigin)==null?void 0:fa.x,(da=N.transformOrigin)==null?void 0:da.y].join(" "),...((pa=N.hide)==null?void 0:pa.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:S.jsx(ky,{scope:t,placedSide:R,onArrowChange:E,arrowX:B,arrowY:oe,shouldHideArrow:Se,children:S.jsx(At.div,{"data-side":R,"data-align":$,...w,ref:g,style:{...w.style,animation:H?void 0:"none"}})})})});rh.displayName=na;var oh="PopperArrow",Ny={top:"bottom",right:"left",bottom:"top",left:"right"},ih=y.forwardRef(function(n,t){const{__scopePopper:r,...o}=n,i=Ay(oh,r),l=Ny[i.placedSide];return S.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:S.jsx(wy,{...o,ref:t,style:{...o.style,display:"block"}})})});ih.displayName=oh;function Oy(e){return e!==null}var Py=e=>({name:"transformOrigin",options:e,fn(n){var x,h,f;const{placement:t,rects:r,middlewareData:o}=n,l=((x=o.arrow)==null?void 0:x.centerOffset)!==0,s=l?0:e.arrowWidth,u=l?0:e.arrowHeight,[a,d]=lh(t),c={start:"0%",center:"50%",end:"100%"}[d],p=(((h=o.arrow)==null?void 0:h.x)??0)+s/2,m=(((f=o.arrow)==null?void 0:f.y)??0)+u/2;let v="",w="";return a==="bottom"?(v=l?c:`${p}px`,w=`${-u}px`):a==="top"?(v=l?c:`${p}px`,w=`${r.floating.height+u}px`):a==="right"?(v=`${-u}px`,w=l?c:`${m}px`):a==="left"&&(v=`${r.floating.width+u}px`,w=l?c:`${m}px`),{data:{x:v,y:w}}}});function lh(e){const[n,t="center"]=e.split("-");return[n,t]}var Ty=eh,_y=th,Ly=rh,by=ih;function Ry(e,n){return y.useReducer((t,r)=>n[t][r]??t,e)}var sh=e=>{const{present:n,children:t}=e,r=jy(n),o=typeof t=="function"?t({present:r.isPresent}):y.Children.only(t),i=kt(r.ref,My(o));return typeof t=="function"||r.isPresent?y.cloneElement(o,{ref:i}):null};sh.displayName="Presence";function jy(e){const[n,t]=y.useState(),r=y.useRef({}),o=y.useRef(e),i=y.useRef("none"),l=e?"mounted":"unmounted",[s,u]=Ry(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const a=Uo(r.current);i.current=s==="mounted"?a:"none"},[s]),ir(()=>{const a=r.current,d=o.current;if(d!==e){const p=i.current,m=Uo(a);e?u("MOUNT"):m==="none"||(a==null?void 0:a.display)==="none"?u("UNMOUNT"):u(d&&p!==m?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),ir(()=>{if(n){let a;const d=n.ownerDocument.defaultView??window,c=m=>{const w=Uo(r.current).includes(m.animationName);if(m.target===n&&w&&(u("ANIMATION_END"),!o.current)){const x=n.style.animationFillMode;n.style.animationFillMode="forwards",a=d.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=x)})}},p=m=>{m.target===n&&(i.current=Uo(r.current))};return n.addEventListener("animationstart",p),n.addEventListener("animationcancel",c),n.addEventListener("animationend",c),()=>{d.clearTimeout(a),n.removeEventListener("animationstart",p),n.removeEventListener("animationcancel",c),n.removeEventListener("animationend",c)}}else u("ANIMATION_END")},[n,u]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:y.useCallback(a=>{a&&(r.current=getComputedStyle(a)),t(a)},[])}}function Uo(e){return(e==null?void 0:e.animationName)||"none"}function My(e){var r,o;let n=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function Iy({prop:e,defaultProp:n,onChange:t=()=>{}}){const[r,o]=Fy({defaultProp:n,onChange:t}),i=e!==void 0,l=i?e:r,s=dr(t),u=y.useCallback(a=>{if(i){const c=typeof a=="function"?a(e):a;c!==e&&s(c)}else o(a)},[i,e,o,s]);return[l,u]}function Fy({defaultProp:e,onChange:n}){const t=y.useState(e),[r]=t,o=y.useRef(r),i=dr(n);return y.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),t}var Dy="VisuallyHidden",uh=y.forwardRef((e,n)=>S.jsx(At.span,{...e,ref:n,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));uh.displayName=Dy;var zy=uh,[rl,TC]=rv("Tooltip",[qp]),ol=qp(),ah="TooltipProvider",Uy=700,Ws="tooltip.open",[$y,ta]=rl(ah),ch=e=>{const{__scopeTooltip:n,delayDuration:t=Uy,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:i}=e,[l,s]=y.useState(!0),u=y.useRef(!1),a=y.useRef(0);return y.useEffect(()=>{const d=a.current;return()=>window.clearTimeout(d)},[]),S.jsx($y,{scope:n,isOpenDelayed:l,delayDuration:t,onOpen:y.useCallback(()=>{window.clearTimeout(a.current),s(!1)},[]),onClose:y.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>s(!0),r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(d=>{u.current=d},[]),disableHoverableContent:o,children:i})};ch.displayName=ah;var il="Tooltip",[By,ll]=rl(il),fh=e=>{const{__scopeTooltip:n,children:t,open:r,defaultOpen:o=!1,onOpenChange:i,disableHoverableContent:l,delayDuration:s}=e,u=ta(il,e.__scopeTooltip),a=ol(n),[d,c]=y.useState(null),p=xv(),m=y.useRef(0),v=l??u.disableHoverableContent,w=s??u.delayDuration,x=y.useRef(!1),[h=!1,f]=Iy({prop:r,defaultProp:o,onChange:A=>{A?(u.onOpen(),document.dispatchEvent(new CustomEvent(Ws))):u.onClose(),i==null||i(A)}}),g=y.useMemo(()=>h?x.current?"delayed-open":"instant-open":"closed",[h]),C=y.useCallback(()=>{window.clearTimeout(m.current),x.current=!1,f(!0)},[f]),E=y.useCallback(()=>{window.clearTimeout(m.current),f(!1)},[f]),k=y.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{x.current=!0,f(!0)},w)},[w,f]);return y.useEffect(()=>()=>window.clearTimeout(m.current),[]),S.jsx(Ty,{...a,children:S.jsx(By,{scope:n,contentId:p,open:h,stateAttribute:g,trigger:d,onTriggerChange:c,onTriggerEnter:y.useCallback(()=>{u.isOpenDelayed?k():C()},[u.isOpenDelayed,k,C]),onTriggerLeave:y.useCallback(()=>{v?E():window.clearTimeout(m.current)},[E,v]),onOpen:C,onClose:E,disableHoverableContent:v,children:t})})};fh.displayName=il;var Vs="TooltipTrigger",dh=y.forwardRef((e,n)=>{const{__scopeTooltip:t,...r}=e,o=ll(Vs,t),i=ta(Vs,t),l=ol(t),s=y.useRef(null),u=kt(n,s,o.onTriggerChange),a=y.useRef(!1),d=y.useRef(!1),c=y.useCallback(()=>a.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",c),[c]),S.jsx(_y,{asChild:!0,...l,children:S.jsx(At.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:u,onPointerMove:yn(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!i.isPointerInTransitRef.current&&(o.onTriggerEnter(),d.current=!0)}),onPointerLeave:yn(e.onPointerLeave,()=>{o.onTriggerLeave(),d.current=!1}),onPointerDown:yn(e.onPointerDown,()=>{a.current=!0,document.addEventListener("pointerup",c,{once:!0})}),onFocus:yn(e.onFocus,()=>{a.current||o.onOpen()}),onBlur:yn(e.onBlur,o.onClose),onClick:yn(e.onClick,o.onClose)})})});dh.displayName=Vs;var Hy="TooltipPortal",[_C,Wy]=rl(Hy,{forceMount:void 0}),sr="TooltipContent",ph=y.forwardRef((e,n)=>{const t=Wy(sr,e.__scopeTooltip),{forceMount:r=t.forceMount,side:o="top",...i}=e,l=ll(sr,e.__scopeTooltip);return S.jsx(sh,{present:r||l.open,children:l.disableHoverableContent?S.jsx(hh,{side:o,...i,ref:n}):S.jsx(Vy,{side:o,...i,ref:n})})}),Vy=y.forwardRef((e,n)=>{const t=ll(sr,e.__scopeTooltip),r=ta(sr,e.__scopeTooltip),o=y.useRef(null),i=kt(n,o),[l,s]=y.useState(null),{trigger:u,onClose:a}=t,d=o.current,{onPointerInTransitChange:c}=r,p=y.useCallback(()=>{s(null),c(!1)},[c]),m=y.useCallback((v,w)=>{const x=v.currentTarget,h={x:v.clientX,y:v.clientY},f=Ky(h,x.getBoundingClientRect()),g=Xy(h,f),C=Zy(w.getBoundingClientRect()),E=Jy([...g,...C]);s(E),c(!0)},[c]);return y.useEffect(()=>()=>p(),[p]),y.useEffect(()=>{if(u&&d){const v=x=>m(x,d),w=x=>m(x,u);return u.addEventListener("pointerleave",v),d.addEventListener("pointerleave",w),()=>{u.removeEventListener("pointerleave",v),d.removeEventListener("pointerleave",w)}}},[u,d,m,p]),y.useEffect(()=>{if(l){const v=w=>{const x=w.target,h={x:w.clientX,y:w.clientY},f=(u==null?void 0:u.contains(x))||(d==null?void 0:d.contains(x)),g=!qy(h,l);f?p():g&&(p(),a())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[u,d,l,a,p]),S.jsx(hh,{...e,ref:i})}),[Yy,Qy]=rl(il,{isInside:!1}),hh=y.forwardRef((e,n)=>{const{__scopeTooltip:t,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:l,...s}=e,u=ll(sr,t),a=ol(t),{onClose:d}=u;return y.useEffect(()=>(document.addEventListener(Ws,d),()=>document.removeEventListener(Ws,d)),[d]),y.useEffect(()=>{if(u.trigger){const c=p=>{const m=p.target;m!=null&&m.contains(u.trigger)&&d()};return window.addEventListener("scroll",c,{capture:!0}),()=>window.removeEventListener("scroll",c,{capture:!0})}},[u.trigger,d]),S.jsx(zp,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:c=>c.preventDefault(),onDismiss:d,children:S.jsxs(Ly,{"data-state":u.stateAttribute,...a,...s,ref:n,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[S.jsx(Fp,{children:r}),S.jsx(Yy,{scope:t,isInside:!0,children:S.jsx(zy,{id:u.contentId,role:"tooltip",children:o||r})})]})})});ph.displayName=sr;var mh="TooltipArrow",Gy=y.forwardRef((e,n)=>{const{__scopeTooltip:t,...r}=e,o=ol(t);return Qy(mh,t).isInside?null:S.jsx(by,{...o,...r,ref:n})});Gy.displayName=mh;function Ky(e,n){const t=Math.abs(n.top-e.y),r=Math.abs(n.bottom-e.y),o=Math.abs(n.right-e.x),i=Math.abs(n.left-e.x);switch(Math.min(t,r,o,i)){case i:return"left";case o:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function Xy(e,n,t=5){const r=[];switch(n){case"top":r.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":r.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":r.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":r.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return r}function Zy(e){const{top:n,right:t,bottom:r,left:o}=e;return[{x:o,y:n},{x:t,y:n},{x:t,y:r},{x:o,y:r}]}function qy(e,n){const{x:t,y:r}=e;let o=!1;for(let i=0,l=n.length-1;ir!=d>r&&t<(a-s)*(r-u)/(d-u)+s&&(o=!o)}return o}function Jy(e){const n=e.slice();return n.sort((t,r)=>t.xr.x?1:t.yr.y?1:0),e1(n)}function e1(e){if(e.length<=1)return e.slice();const n=[];for(let r=0;r=2;){const i=n[n.length-1],l=n[n.length-2];if((i.x-l.x)*(o.y-l.y)>=(i.y-l.y)*(o.x-l.x))n.pop();else break}n.push(o)}n.pop();const t=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;t.length>=2;){const i=t[t.length-1],l=t[t.length-2];if((i.x-l.x)*(o.y-l.y)>=(i.y-l.y)*(o.x-l.x))t.pop();else break}t.push(o)}return t.pop(),n.length===1&&t.length===1&&n[0].x===t[0].x&&n[0].y===t[0].y?n:n.concat(t)}var n1=ch,t1=fh,r1=dh,gh=ph;function vh(e){var n,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(n=0;n{const n=s1(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{const s=l.split(ra);return s[0]===""&&s.length!==1&&s.shift(),yh(s,n)||l1(l)},getConflictingClassGroupIds:(l,s)=>{const u=t[l]||[];return s&&r[l]?[...u,...r[l]]:u}}},yh=(e,n)=>{var l;if(e.length===0)return n.classGroupId;const t=e[0],r=n.nextPart.get(t),o=r?yh(e.slice(1),r):void 0;if(o)return o;if(n.validators.length===0)return;const i=e.join(ra);return(l=n.validators.find(({validator:s})=>s(i)))==null?void 0:l.classGroupId},Uc=/^\[(.+)\]$/,l1=e=>{if(Uc.test(e)){const n=Uc.exec(e)[1],t=n==null?void 0:n.substring(0,n.indexOf(":"));if(t)return"arbitrary.."+t}},s1=e=>{const{theme:n,prefix:t}=e,r={nextPart:new Map,validators:[]};return a1(Object.entries(e.classGroups),t).forEach(([i,l])=>{Ys(l,r,i,n)}),r},Ys=(e,n,t,r)=>{e.forEach(o=>{if(typeof o=="string"){const i=o===""?n:$c(n,o);i.classGroupId=t;return}if(typeof o=="function"){if(u1(o)){Ys(o(r),n,t,r);return}n.validators.push({validator:o,classGroupId:t});return}Object.entries(o).forEach(([i,l])=>{Ys(l,$c(n,i),t,r)})})},$c=(e,n)=>{let t=e;return n.split(ra).forEach(r=>{t.nextPart.has(r)||t.nextPart.set(r,{nextPart:new Map,validators:[]}),t=t.nextPart.get(r)}),t},u1=e=>e.isThemeGetter,a1=(e,n)=>n?e.map(([t,r])=>{const o=r.map(i=>typeof i=="string"?n+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([l,s])=>[n+l,s])):i);return[t,o]}):e,c1=e=>{if(e<1)return{get:()=>{},set:()=>{}};let n=0,t=new Map,r=new Map;const o=(i,l)=>{t.set(i,l),n++,n>e&&(n=0,r=t,t=new Map)};return{get(i){let l=t.get(i);if(l!==void 0)return l;if((l=r.get(i))!==void 0)return o(i,l),l},set(i,l){t.has(i)?t.set(i,l):o(i,l)}}},wh="!",f1=e=>{const{separator:n,experimentalParseClassName:t}=e,r=n.length===1,o=n[0],i=n.length,l=s=>{const u=[];let a=0,d=0,c;for(let x=0;xd?c-d:void 0;return{modifiers:u,hasImportantModifier:m,baseClassName:v,maybePostfixModifierPosition:w}};return t?s=>t({className:s,parseClassName:l}):l},d1=e=>{if(e.length<=1)return e;const n=[];let t=[];return e.forEach(r=>{r[0]==="["?(n.push(...t.sort(),r),t=[]):t.push(r)}),n.push(...t.sort()),n},p1=e=>({cache:c1(e.cacheSize),parseClassName:f1(e),...i1(e)}),h1=/\s+/,m1=(e,n)=>{const{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:o}=n,i=[],l=e.trim().split(h1);let s="";for(let u=l.length-1;u>=0;u-=1){const a=l[u],{modifiers:d,hasImportantModifier:c,baseClassName:p,maybePostfixModifierPosition:m}=t(a);let v=!!m,w=r(v?p.substring(0,m):p);if(!w){if(!v){s=a+(s.length>0?" "+s:s);continue}if(w=r(p),!w){s=a+(s.length>0?" "+s:s);continue}v=!1}const x=d1(d).join(":"),h=c?x+wh:x,f=h+w;if(i.includes(f))continue;i.push(f);const g=o(w,v);for(let C=0;C0?" "+s:s)}return s};function g1(){let e=0,n,t,r="";for(;e{if(typeof e=="string")return e;let n,t="";for(let r=0;rc(d),e());return t=p1(a),r=t.cache.get,o=t.cache.set,i=s,s(u)}function s(u){const a=r(u);if(a)return a;const d=m1(u,t);return o(u,d),d}return function(){return i(g1.apply(null,arguments))}}const K=e=>{const n=t=>t[e]||[];return n.isThemeGetter=!0,n},Sh=/^\[(?:([a-z-]+):)?(.+)\]$/i,y1=/^\d+\/\d+$/,w1=new Set(["px","full","screen"]),x1=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,S1=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,C1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,E1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,k1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mn=e=>Zt(e)||w1.has(e)||y1.test(e),Ln=e=>mr(e,"length",b1),Zt=e=>!!e&&!Number.isNaN(Number(e)),Fl=e=>mr(e,"number",Zt),Ar=e=>!!e&&Number.isInteger(Number(e)),A1=e=>e.endsWith("%")&&Zt(e.slice(0,-1)),W=e=>Sh.test(e),bn=e=>x1.test(e),N1=new Set(["length","size","percentage"]),O1=e=>mr(e,N1,Ch),P1=e=>mr(e,"position",Ch),T1=new Set(["image","url"]),_1=e=>mr(e,T1,j1),L1=e=>mr(e,"",R1),Nr=()=>!0,mr=(e,n,t)=>{const r=Sh.exec(e);return r?r[1]?typeof n=="string"?r[1]===n:n.has(r[1]):t(r[2]):!1},b1=e=>S1.test(e)&&!C1.test(e),Ch=()=>!1,R1=e=>E1.test(e),j1=e=>k1.test(e),M1=()=>{const e=K("colors"),n=K("spacing"),t=K("blur"),r=K("brightness"),o=K("borderColor"),i=K("borderRadius"),l=K("borderSpacing"),s=K("borderWidth"),u=K("contrast"),a=K("grayscale"),d=K("hueRotate"),c=K("invert"),p=K("gap"),m=K("gradientColorStops"),v=K("gradientColorStopPositions"),w=K("inset"),x=K("margin"),h=K("opacity"),f=K("padding"),g=K("saturate"),C=K("scale"),E=K("sepia"),k=K("skew"),A=K("space"),L=K("translate"),F=()=>["auto","contain","none"],P=()=>["auto","hidden","clip","visible","scroll"],b=()=>["auto",W,n],T=()=>[W,n],z=()=>["",mn,Ln],D=()=>["auto",Zt,W],O=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],j=()=>["solid","dashed","dotted","double","none"],H=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],N=()=>["start","end","center","between","around","evenly","stretch"],R=()=>["","0",W],$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],M=()=>[Zt,W];return{cacheSize:500,separator:":",theme:{colors:[Nr],spacing:[mn,Ln],blur:["none","",bn,W],brightness:M(),borderColor:[e],borderRadius:["none","","full",bn,W],borderSpacing:T(),borderWidth:z(),contrast:M(),grayscale:R(),hueRotate:M(),invert:R(),gap:T(),gradientColorStops:[e],gradientColorStopPositions:[A1,Ln],inset:b(),margin:b(),opacity:M(),padding:T(),saturate:M(),scale:M(),sepia:R(),skew:M(),space:T(),translate:T()},classGroups:{aspect:[{aspect:["auto","square","video",W]}],container:["container"],columns:[{columns:[bn]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...O(),W]}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[w]}],"inset-x":[{"inset-x":[w]}],"inset-y":[{"inset-y":[w]}],start:[{start:[w]}],end:[{end:[w]}],top:[{top:[w]}],right:[{right:[w]}],bottom:[{bottom:[w]}],left:[{left:[w]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ar,W]}],basis:[{basis:b()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",W]}],grow:[{grow:R()}],shrink:[{shrink:R()}],order:[{order:["first","last","none",Ar,W]}],"grid-cols":[{"grid-cols":[Nr]}],"col-start-end":[{col:["auto",{span:["full",Ar,W]},W]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[Nr]}],"row-start-end":[{row:["auto",{span:[Ar,W]},W]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",W]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",W]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...N()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...N(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...N(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[f]}],px:[{px:[f]}],py:[{py:[f]}],ps:[{ps:[f]}],pe:[{pe:[f]}],pt:[{pt:[f]}],pr:[{pr:[f]}],pb:[{pb:[f]}],pl:[{pl:[f]}],m:[{m:[x]}],mx:[{mx:[x]}],my:[{my:[x]}],ms:[{ms:[x]}],me:[{me:[x]}],mt:[{mt:[x]}],mr:[{mr:[x]}],mb:[{mb:[x]}],ml:[{ml:[x]}],"space-x":[{"space-x":[A]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[A]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",W,n]}],"min-w":[{"min-w":[W,n,"min","max","fit"]}],"max-w":[{"max-w":[W,n,"none","full","min","max","fit","prose",{screen:[bn]},bn]}],h:[{h:[W,n,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[W,n,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[W,n,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[W,n,"auto","min","max","fit"]}],"font-size":[{text:["base",bn,Ln]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Fl]}],"font-family":[{font:[Nr]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",W]}],"line-clamp":[{"line-clamp":["none",Zt,Fl]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",mn,W]}],"list-image":[{"list-image":["none",W]}],"list-style-type":[{list:["none","disc","decimal",W]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[h]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[h]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...j(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",mn,Ln]}],"underline-offset":[{"underline-offset":["auto",mn,W]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",W]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",W]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[h]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...O(),P1]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",O1]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},_1]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[m]}],"gradient-via":[{via:[m]}],"gradient-to":[{to:[m]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[h]}],"border-style":[{border:[...j(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[h]}],"divide-style":[{divide:j()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...j()]}],"outline-offset":[{"outline-offset":[mn,W]}],"outline-w":[{outline:[mn,Ln]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[h]}],"ring-offset-w":[{"ring-offset":[mn,Ln]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",bn,L1]}],"shadow-color":[{shadow:[Nr]}],opacity:[{opacity:[h]}],"mix-blend":[{"mix-blend":[...H(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":H()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",bn,W]}],grayscale:[{grayscale:[a]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[c]}],saturate:[{saturate:[g]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[c]}],"backdrop-opacity":[{"backdrop-opacity":[h]}],"backdrop-saturate":[{"backdrop-saturate":[g]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",W]}],duration:[{duration:M()}],ease:[{ease:["linear","in","out","in-out",W]}],delay:[{delay:M()}],animate:[{animate:["none","spin","ping","pulse","bounce",W]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[C]}],"scale-x":[{"scale-x":[C]}],"scale-y":[{"scale-y":[C]}],rotate:[{rotate:[Ar,W]}],"translate-x":[{"translate-x":[L]}],"translate-y":[{"translate-y":[L]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",W]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",W]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",W]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[mn,Ln,Fl]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},I1=v1(M1);function F1(...e){return I1(o1(e))}const D1=n1,z1=t1,U1=r1,Eh=y.forwardRef(({className:e,sideOffset:n=4,...t},r)=>S.jsx(gh,{ref:r,sideOffset:n,className:F1("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","bg-gray-900 text-white dark:bg-white dark:text-gray-900",e),...t}));Eh.displayName=gh.displayName;const $1=({value:e,onChange:n,className:t="",isDark:r})=>{const[o,i]=y.useState(!1),l=()=>i(!o),s=`absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded-md + ${r?"text-gray-300 hover:text-white hover:bg-gray-600":"text-orange-600 hover:text-orange-800 hover:bg-orange-50"} + transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-orange-500`;return S.jsxs("div",{className:"relative",children:[S.jsx("input",{type:o?"text":"password",value:e,onChange:n,className:`pr-10 ${t}`}),S.jsx("button",{type:"button",onClick:l,className:s,"aria-label":o?"Hide value":"Show value",children:o?S.jsx(Z0,{className:"h-4 w-4"}):S.jsx(q0,{className:"h-4 w-4"})})]})},Bc=["LOG_LEVEL","lang","time_format","system_unit"],Hc={LOG_LEVEL:"The level of logging to be used by the backend. Supports Python logging levels.",system_unit:"The system of measurement to be used by the backend. Options: metric, imperial (typically U.S.).",time_format:"The format for displaying time. Options: half (12-hour format), full (24-hour format).",lang:"The language/country code to be used by the backend. Must be a language code supported by the Python langcodes library.",default_lang:"The default language to be used by the IRIS web interface.",languages:"The languages supported by the IRIS web interface.",webui_chatbot_label:"The title in the IRIS web interface.",webui_mic_label:"The label for the microphone button in the IRIS web interface.",webui_input_placeholder:"The placeholder text for the chat input in the IRIS web interface.",webui_ws_url:"The WebSocket URL for the IRIS web interface, e.g. wss:///ws. Must be wss for IRIS websat.",fastapi_title:"The title of the HANA instance.",fastapi_summary:"The summary text of the HANA instance.",enable_email:"Whether to enable email functionality in the backend. Requires advanced manual configuration.",node_username:"The username for connecting a Neon Node to your Neon Hub.",node_password:"The password for connecting a Neon Node to your Neon Hub."},Dl=e=>e.split("_").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" "),B1=({isDark:e})=>{const[n,t]=y.useState({system_unit:"imperial",time_format:"half",lang:"en-us",LOG_LEVEL:"INFO",hana:{},iris:{},skills:{default_skills:[],extra_dependencies:{}}}),[r,o]=y.useState(!0),[i,l]=y.useState(null),[s,u]=y.useState(null),[a,d]=y.useState({}),[c,p]=y.useState({}),[m,v]=y.useState(!1);y.useEffect(()=>{const b=()=>{v(window.scrollY>200)};return window.addEventListener("scroll",b),()=>window.removeEventListener("scroll",b)},[]);const w=()=>{window.scrollTo({top:0,behavior:"smooth"})},x=async()=>{console.debug("Fetching config..."),o(!0),l(null);try{console.debug("Fetching Neon config...");const b=await fetch("http://127.0.0.1/v1/neon_config",{headers:{Accept:"application/json","Content-Type":"application/json"}});console.debug("Neon response status:",b.status);const T=b.headers.get("content-type");if(!(T!=null&&T.includes("application/json")))throw new Error("Server returned non-JSON response. Please check the API endpoint.");if(!b.ok)throw new Error(`Failed to fetch Neon config: ${b.statusText}`);const z=await b.json();console.debug("Neon data received:",z),console.debug("Fetching Diana config...");const D=await fetch("http://127.0.0.1/v1/diana_config",{headers:{Accept:"application/json","Content-Type":"application/json"}});console.debug("Diana response status:",D.status);const O=D.headers.get("content-type");if(!(O!=null&&O.includes("application/json")))throw new Error("Server returned non-JSON response. Please check the API endpoint.");if(!D.ok)throw new Error(`Failed to fetch Diana config: ${D.statusText}`);const j=await D.json();console.debug("Diana data received:",j),t(H=>({...H,...j,...z})),u(new Date)}catch(b){l(b instanceof Error?b.message:"Failed to fetch configuration"),console.error("Config fetch error:",b)}finally{o(!1)}},h=async b=>{d(T=>({...T,[b]:!0})),p(T=>({...T,[b]:null}));try{if(b==="iris"||b==="hana"){const T={iris:n.iris,hana:n.hana};if(!(await fetch("http://127.0.0.1/v1/diana_config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)})).ok)throw new Error("Failed to save IRIS configuration")}else{const T=b==="general"?Bc.reduce((j,H)=>({...j,[H]:n[H]}),{}):{[b]:n[b]};if(console.log("Saving config:",T),!(await fetch("http://127.0.0.1/v1/neon_config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)})).ok)throw new Error(`Failed to save ${b} configuration`);const O=await(await fetch("http://127.0.0.1/v1/neon_config",{headers:{Accept:"application/json","Content-Type":"application/json"}})).json();t(j=>({...j,...O}))}u(new Date)}catch(T){p(z=>({...z,[b]:T instanceof Error?T.message:`Failed to save ${b} configuration`}))}finally{d(T=>({...T,[b]:!1}))}};y.useEffect(()=>{x()},[]);const f=(b,T,z)=>{t(D=>{if(b==="general")return{...D,[T]:z};const O=D[b];return{...D,[b]:{...O,[T]:z}}})},g=(b,T)=>T.includes("password")||T.includes("secret")||T.includes("api_key")||b==="api_keys",C=(b,T,z)=>{const D=`w-full p-2 rounded ${e?"bg-gray-700":"bg-white"} ${e?"text-white":"text-gray-900"} border ${e?"border-orange-400":"border-orange-600"}`;return typeof z=="object"&&z!==null?Array.isArray(z)?S.jsx("input",{type:"text",value:z.join(", "),onChange:O=>f(b,T,O.target.value.split(",").map(j=>j.trim())),className:D}):S.jsx("textarea",{value:JSON.stringify(z,null,2),onChange:O=>{try{const j=JSON.parse(O.target.value);f(b,T,j)}catch(j){console.error(j),f(b,T,O.target.value)}},className:`${D} font-mono text-sm`,rows:Object.keys(z).length+1}):g(b,T)?S.jsx($1,{value:z,onChange:O=>f(b,T,O.target.value),className:D,isDark:e}):T==="LOG_LEVEL"?S.jsx("select",{value:z,onChange:O=>f(b,T,O.target.value),className:D,children:["DEBUG","INFO","WARNING","ERROR","CRITICAL"].map(O=>S.jsx("option",{value:O,children:O},O))}):T==="system_unit"?S.jsxs("select",{value:z,onChange:O=>f(b,T,O.target.value),className:D,children:[S.jsx("option",{value:"metric",children:"Metric"}),S.jsx("option",{value:"imperial",children:"Imperial"})]}):T==="time_format"?S.jsxs("select",{value:z,onChange:O=>f(b,T,O.target.value),className:D,children:[S.jsx("option",{value:"half",children:"12-hour (HH:MM am/pm)"}),S.jsx("option",{value:"full",children:"24-hour (HH:MM)"})]}):S.jsx("input",{type:typeof z=="number"?"number":"text",value:z,onChange:O=>f(b,T,O.target.value),className:D})},E=e?"bg-gray-900":"bg-white",k=e?"text-white":"text-gray-900",A=e?"border-orange-400":"border-orange-600",L=e?"bg-gray-800":"bg-orange-100",F=e?"text-orange-400":"text-orange-600",P=(b,T,z)=>{const D=b.toString();return S.jsxs("div",{className:`mb-4 border ${A} rounded-lg overflow-hidden`,children:[S.jsxs("div",{className:`${L} p-4 flex justify-between items-center`,children:[S.jsx("h2",{className:`text-xl font-semibold ${e?"text-orange-200":"text-orange-800"}`,children:z}),S.jsxs("button",{onClick:()=>h(D),disabled:a[D],className:` + flex items-center gap-2 px-4 py-2 rounded + ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} + text-white transition-colors + disabled:opacity-50 disabled:cursor-not-allowed + focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-opacity-50 + `,children:[S.jsx(ni,{className:`h-4 w-4 ${a[D]?"animate-spin":""}`}),a[D]?"Saving...":"Save Changes"]})]}),c[b]&&S.jsx("div",{className:"p-4 bg-red-500 text-white",children:c[b]}),S.jsx("div",{className:`${E} p-4`,children:Object.entries(T).map(([O,j])=>S.jsxs("div",{className:"mb-4",children:[Hc[O]?S.jsx(D1,{children:S.jsxs(z1,{children:[S.jsx(U1,{asChild:!0,onClick:H=>H.preventDefault(),children:S.jsxs("label",{className:"block text-sm font-medium mb-1 cursor-help",children:[Dl(O.toLowerCase()),S.jsx("span",{className:"ml-1 text-gray-400",children:"ⓘ"})]})}),S.jsx(Eh,{side:"top",className:"max-w-xs p-2 text-sm",sideOffset:5,children:S.jsx("p",{children:Hc[O]})})]})}):S.jsx("label",{className:"block text-sm font-medium mb-1",children:Dl(O.toLowerCase())}),C(b,O,j),(O==="LOG_LEVEL"||O==="lang"||b==="api_keys")&&S.jsxs("a",{href:O==="LOG_LEVEL"?"https://docs.python.org/3/library/logging.html#logging-levels":O==="lang"?"https://langcodes-hickford.readthedocs.io/en/sphinx/index.html#standards-implemented":b==="api_keys"?O==="alpha_vantage"?"https://www.alphavantage.co/support/#api-key":O==="open_weather_map"?"https://home.openweathermap.org/appid":O==="wolfram_alpha"?"https://products.wolframalpha.com/api/":"#":"#",target:"_blank",rel:"noopener noreferrer",className:`text-sm ${F} hover:underline flex items-center mt-1`,children:[O==="LOG_LEVEL"?"View LOG_LEVEL documentation":O==="lang"?"View library documentation for language/country codes":b==="api_keys"?`Get ${Dl(O)} API key`:""," ",S.jsx(X0,{className:"ml-1 h-3 w-3"})]})]},O))})]})};return r&&!s?S.jsx("div",{className:`p-4 ${E} ${k} min-h-screen flex items-center justify-center`,children:S.jsx(ni,{className:"h-8 w-8 animate-spin"})}):S.jsxs("div",{className:`p-4 ${E} ${k} min-h-screen relative`,children:[S.jsxs("div",{className:"container mx-auto",children:[S.jsxs("div",{className:"mb-4 flex justify-between items-center",children:[S.jsxs("button",{onClick:x,disabled:r,className:`flex items-center p-2 rounded ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} text-white ${r?"opacity-50 cursor-not-allowed":""}`,children:[S.jsx(ni,{className:`mr-2 h-4 w-4 ${r?"animate-spin":""}`}),"Refresh Configuration"]}),s&&S.jsxs("span",{className:"text-sm",children:["Last refreshed:",s.toLocaleString()]})]}),i&&S.jsx("div",{className:"mb-4 p-4 rounded-lg bg-red-500 text-white",children:i}),P("general",Bc.reduce((b,T)=>({...b,[T]:n[T]}),{}),"General Configuration"),P("api_keys",n.api_keys||{},"External API Keys"),P("hana",n.hana||{},"HANA Configuration"),P("iris",n.iris||{},"IRIS Configuration")]}),S.jsx("button",{onClick:w,className:` + fixed bottom-4 right-4 p-2 rounded-full + ${m?"opacity-100":"opacity-0 pointer-events-none"} + ${e?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} + text-white transition-all duration-300 ease-in-out + focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-opacity-50 + shadow-lg hover:shadow-xl + `,"aria-label":"Scroll to top",children:S.jsx(K0,{className:"h-4 w-4"})})]})},H1=({isDark:e})=>(console.debug("NodeServicesProps",e),S.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[S.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"Node Services"}),S.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"This feature is currently under development. It will provide functionality for managing local Neon Node services."})]})),W1=({isDark:e})=>(console.debug("ConnectedDevicesProps",e),S.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[S.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"Connected Devices"}),S.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"This feature is currently under development. It will display information about devices connected to the Hub."})]})),V1=({isDark:e})=>(console.log("SystemUpdatesProps",e),S.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[S.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"System Updates"}),S.jsxs("p",{className:"text-gray-600 dark:text-gray-300",children:["Hub services and updates are managed through Yacht. Please refer to the"," ",S.jsx("a",{href:"https://neongeckocom.github.io/neon-hub-installer/services/",target:"_blank",rel:"noopener noreferrer",children:"Yacht interface"})," ","for enabling and modifying services."]})]})),kh="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABCCAYAAAAfQSsiAAANj0lEQVR42u2beVDUZ5rH8UiyYzLZmtnd2aRqdrdmJjVbO5NU7VaS3WQrqdrZ2nl7QBCTHSVqovGIjvHAJBoTBKGhORoaO2DLjYAiCEIrh6jIDdJyLwgIKHIJAnI1hyf62T/6h3aQU46RCU/VU/zB+7zv259+3vf9vs/v1yYm8zZvc96oLTVDq8nC58sGVJur8NhUisemKny/rCcpKIn6iv+eh9RUs4gIZQHeO1o55ZNAQfJBasu+pvHyH6krX0v+WT+iPSvRWHdTnLrrhw0r0KacE+oUrtf8F3fvLByxzYD+J2TFBqFYc4Pmq3/4YYI6GxrCUUU+Xe2/GLft4L2X8dvTQPSB8z/A5VfyGur1pZTlrJtwTEaMK84fNFMd9B36mh//5UOqDHciY2MlJ2RNqFdDTdE7E44tOPcRjgKKxC3yLFop2ZVFZ97KvzxIFcecSNlSQaLpIOcExAlQWcKlnE0T7iM1cheuMigVj73AbIDyvYW0pGya+5Bqsj8gxbqYhGUPSBCQJPlpAd4CEgMTJtzXMZejaIbBKhVQIoOSFV1ccj7Fnc7n5g6c0sx3KUmz5PqVX1IQ6IXWso+TAuKN/LTkITJQb+qm5+a/Tahvt0+vcEw8CcsYWt66KjpLzZ5dQB0tC4j3j0Fu1Y3L2npc1qYgt6rD3fQBUQJOSh4nebyARAEnBCgElGXvHHeM+/cWYLu8h0QBJWMAKxVw0bKTpsRvnj1QdRWvEmxXS6hDCWVZ67jd9xL37y6ktvT3hDpU4yiDCAHaEYDFC/ASEGJ3Ydxx6ivew8ZikDQB+QKKx4FWbNVAc9LWZ01UXubkoSj0na+OkHGL8PmqCqUMooyAnRRwSoIWKsDe4h5dbf865jiFyZuwM4dsAbkSsIIxgJUIyF9XRVZwBAn+acT5VpIQeBZd4p4/D6gwxwzCHHX09fxkjCX6UxQruvGRQYww+Ekj1wpwkEF69OExx0oOd8HVzAArW0COgItjQMsTECjAbU0bUZ5lJAbmo/UuQvNlE147Wsk5tXEWT7nin2P7QS+NVVbj66Pz63CQDRImHgMzhqYWoNp8HVg8ah/HVVrUMkgTkCEeQ8uWwORJ0IayKkCA+vNqrtfIvn8TGFyCLlHDPks9x1XxswPriNN5QvY3AYsm1D7SPRUPU4gcBkwr4KgAW8v73KgzHWO56/ATcF5AijBAy5R8KMuGoIXLwHNzDVdK3h+1v8aqd/Hc0kFCQPjMw1JuaOfi6cxJVBd+iff2DrxlhlPwhBGwWAEO5pClPTLqSei7u5RgAecEJEvAUo2gZUt/wwS4rW2k/ILlBMpCFmi+6KL8wsweBCjW6KkqODKpmOK07TivvIW/MGz4UUbQVDI46nQJWPBEXG/nz/De0UOYJGjPSNDOG0FLkXSb60eNVBdOSGdx785zJAUXEu+XO7OwPLd0kxlzatJx50IPYSMeEmIELEbajL133EZ/8+0nYrpaf4562wBHjQTtELAhD5GBq1UzNcX/Oan5lF/YSrBt88zCSghIwH1jNQ8e/O1TyA0dcplhrzouATsiQLkB6iusn4TV9g+PYMULSJBEbaKAswIOy0C+oo+K3GWT14nlAv+9fTTX/nrmYPX3vIByfTNRHnHcbP73ScU+fLiAIJtClGaGPea4MAhX9zVw6ULAE+37en6KZlcjQcNErVaArwC3tXoKz294ykrtO/ju0dNU9S8zm11JmiCcl4KPdQUZJ1xoqPzdhGM7W18h4OsK3M0MwjRCgNIKStKCR2wfaq9DLXuszcIFeAhQb62jLGvVU3+Ga+Wm+O/Vz/yJmLQnnUBJJ7mYg+fmfqJUURSn/on+nnGLczTXvEWwzUUcTQ19KD+BqgK7EdvqEnaz3wwOCjggQGEOkW5pNNW8O6XPUJbzFYftZgFW2HI9oQJCBARJS8JVBvIPQfVZJcnh9jwYfHGc5fwSZ0NPolzbQ4JvDvfv/c3IJ9fdJaRGRqPeUk+YQyGVeeu53b9gSvMf0L/MYbtuMmNmtlRNU/mLBIl7BEuwQqR7XqgETiVgnwAbsz4Sgw7Q0fLamP3B8xMaF16clvkP9L5CuHMRvrubaW34xczCqkzdSZB4SJAE5/AwYEPQ1ALkMnBbc5OMaCda69+Y8Yy/UfcK9RWvUV1oweX8deQmuJAVqyAxMBitJoowBx2eW+oIsU+ioer9mV+CJVo5gRIQYz88DJgxNIUMNDuvkZe0b1rncvf281Re3MC5Iz6EO2dyaEczqtV6XM1u4Spl+QFpDocE+C6/TWm63exdpAsivfCXxORwYMEjZFmI1NZTgMP/QkpEwLTMA/6JCGUuyo/Bw9QAI1TScBHi+6WhOEnQxlvpTWbTKIhU4y945CNBCxoFmkaA21qoKXKdIqhFnPLRITfj0Y3ghNF907gUZFzWjrPqnl1YhVGO+BrBGvLRgIUYwQoS4LISilKSpgjrVbx3dKGShG30sIpGrJRV2mEFxzirjtmFVZG8DV9JLvhNEJqfVEaWyyDEoZybzUunnuHJB3FYaug/0ii7TgwrAxkDS9zQOruw6st+jEY8eARsyIdg+UnLzUuqKCgEyJeCZsdVsrUq2hv/eZr2rMVovTJRWBjGjRyhojE805L3/t/sl5X9l/c/AuIpQCnAVYCjDGwF7BMPsDfvwu+rPBKDgqnQWdLe+I8zcE/9EamRITh9MIin0cZuXNUY8mgBBT7+sw8r4ssG5AL2ymCPeIDd8j68tteg9Y4kN8GWxur3uHv7+dnbGnSf4LKmC1sZ36uZGUOLEPe5nmc6u6D6exfjvOYGh766RnG6Fbf6fjRS4W7Wv8DerlfRqk/jvPoBSjPDXnbMCJh2RS9tl56f3UklBkaj3nqXjpaneiOPu7cXUFO0grTjQZwNi6e6yHta53et/PdEq9PxXA9KGfjLDOWg5L1Vs/8Nem7pIjO26Kli2xrfROt9BOXHD1FIm7/b+ns0105rLZzbA89xpcSUpMPH8Vjbj5OAaPsK2ut/NbuwFGtucbXk4KTjqgqXodzQiKOZ4WAYOkXtzSHjROoYp95OqguzqStXAz+b9Lit9a+Tc1KOZlct7hvbifOJpaX2N7MDy/njASrzFJO7T6Zvx36FHsdhMsNf0l5xvqXAc09mYoMfXtu62S1gtwDHVdfJ0jpzZ2DSL7QBC6nI3YBqcwPfmN0lyPYK12vemVlYB617OR2UPuH2utO2KKz0uArwMcqoIUErN4WEgIIRn+6cCbmAo8ywWftLum2/DDTWVTRWi6fUZwupKV7FcfcCVJ/14btbT8aJY7TUvk9f919NL6zU4zGoPutjQD+ubuJCvA0Kq35cpXeyNNLt3xiavQVknEgY4XR7kXDnKlTDykD+wrBx2y+7T1LwUTqa33vqz9LW+CZZMTEccbqGZhdEKDvJO3OUlloxnfvWANknVWO2SY9yR/7H+yikMomX5Jphvs8CyrI8nojvaV9CiP011CNUNQ5L0BXmELK/dKpvMtPb/TLXLq1BlxCLVtOAVtNG/jkdDZfV3BlYPDVYuYleqDZ3UnvpD6OAUmK7fBCF9HDBU6opDfkQNJWAfZYPuVFn+SSsjhcIk1/hwBiXdH8Brqbg+Vkj9RWyaUmEW30L6e18iysl31GSnkZNUeTUO431TsNrRyuNl/+De3cWmJiYmHDn1kLSjhtAOUhXIKUERTUMmrf0f6dVt0Z7b4Joz2zcxqlqBAtwk4GdZS/VheYmz6oR7x+B55ZujipaiPXOx2t7OzZLwV6AowBnAS4C3IZBG6pe2sngmOuol1vOHTmCQvb4MBit4Bgs7WN25v0UJH/x7AKrKfqE9OhMzoZmkxGt45jjDeQWj4E5SdBcJWjuRtC+lUFx6qgvmXHxtBLnD78vNwLGgOa5DDy3DJKb+LXJXDHiNAnYm93HXhigyaV3SF2NlqZCwD7zuwz0/vWo/dSWfoTy00EOjqDPAiQfghW2uovKM3+iIFmF984BLsR9M3eAFZz9HMWKLmwF7BfgIAEagmYvgyCbyjH7GNAvRGPdhHIEffYImgxirMu5WfvoMTxFKQ4o199Bl/iFyVwywhVpOH14l/0yAzC5tDy/FXAh/sC48cc9tDjIDNpsSJ/5CAgwgyOresg5HDhiXP5ZBxxW3kc3h5ak4bqTuZJwx1w81/bhsNSQad/K4Ob1t8aNvXh6M/ssDI/vNQL8LR9ybHMjmX6xNJWO+ZCUvDPOuK57QG6Cs8lcM6oKXiI9wgffL24hXwkdLa+PG1OWY8W3FhC2qZvzHmmUJVnTXPnChMfMP6fEa8cghefm5m8WqS76EPXn/dSVj/vLMOL9j+G1vZ322qeu3ZN35ju8tt+iQrd2bgKLPpCD/94G4O/HqFZsRbG6jwrdlLOC9OijuH3ax+3+3849WG0Nizlo3YbXtn4Kzx/i5vU36Wz5O9qb3qA814Fw5ybcPu0l56TXNF1jlhB9oBL3jd30dr8+NzPsTMh5gmy68N7Zje/uXtTb9PjvbSDON4mrJb+b1rF6u35FmLyTSGUr+o43TOaq0Xh5CVdLNtNY/T8zOk5X2685qWlHl3iROwOLTOZtHGCdLW+Tpa2ludZ6nsZEgPW0v03FxdPzJCYKrL/n5XkK8zZv8zZv8zZvU7X/B4vUgm+O3yRbAAAAAElFTkSuQmCC",Y1=({isDark:e,toggleDarkMode:n})=>S.jsxs("div",{className:"flex justify-between items-center mb-4",children:[S.jsx("img",{src:kh,alt:"Neon AI",className:"h-10"}),S.jsx("h1",{className:`text-2xl font-bold ${e?"text-orange-200":"text-orange-800"}`,children:"Neon Hub Management"}),S.jsx("button",{onClick:n,className:`p-2 rounded-full ${e?"bg-orange-200 text-orange-800":"bg-orange-800 text-orange-200"}`,children:e?S.jsx(nv,{size:24}):S.jsx(J0,{size:24})})]}),Ah=y.createContext(void 0),Q1=({children:e})=>{const[n,t]=y.useState(()=>!!localStorage.getItem("auth_token"));y.useEffect(()=>{localStorage.getItem("auth_token")&&t(!0)},[]);const r=async(i,l)=>{try{return(await fetch("/auth",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Basic "+btoa(`${i}:${l}`)}})).ok?(localStorage.setItem("auth_token",btoa(`${i}:${l}`)),t(!0),!0):!1}catch(s){return console.error("Auth error:",s),!1}},o=()=>{localStorage.removeItem("auth_token"),t(!1)};return S.jsx(Ah.Provider,{value:{isAuthenticated:n,login:r,logout:o},children:e})},oa=()=>{const e=y.useContext(Ah);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e},G1=()=>{const[e,n]=y.useState(""),[t,r]=y.useState(""),[o,i]=y.useState(""),{login:l}=oa(),s=async u=>{u.preventDefault(),i(""),await l(e,t)||i("Invalid credentials")};return S.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-900",children:S.jsxs("div",{className:"max-w-md w-full space-y-8 p-8 bg-gray-800 rounded-lg shadow-lg",children:[S.jsxs("div",{className:"flex flex-col items-center",children:[S.jsx("img",{src:kh,alt:"Neon AI",className:"h-12 mb-4"}),S.jsx("h2",{className:"text-2xl font-bold text-white",children:"Sign in to Neon Hub"})]}),S.jsxs("form",{className:"mt-8 space-y-6",onSubmit:s,children:[o&&S.jsx("div",{className:"text-red-500 text-center text-sm",children:o}),S.jsxs("div",{className:"rounded-md shadow-sm -space-y-px",children:[S.jsx("div",{children:S.jsx("input",{type:"text",required:!0,value:e,onChange:u=>n(u.target.value),className:"appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-600 placeholder-gray-500 text-white bg-gray-700 rounded-t-md focus:outline-none focus:ring-orange-500 focus:border-orange-500 focus:z-10 sm:text-sm",placeholder:"Username"})}),S.jsx("div",{children:S.jsx("input",{type:"password",required:!0,value:t,onChange:u=>r(u.target.value),className:"appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-600 placeholder-gray-500 text-white bg-gray-700 rounded-b-md focus:outline-none focus:ring-orange-500 focus:border-orange-500 focus:z-10 sm:text-sm",placeholder:"Password"})})]}),S.jsx("div",{children:S.jsx("button",{type:"submit",className:"group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-orange-600 hover:bg-orange-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-orange-500",children:"Sign in"})})]})]})})},K1=()=>{const{logout:e}=oa();return S.jsx("button",{onClick:e,className:`px-4 py-2 text-sm font-medium text-white bg-red-600 hover:bg-red-700 + rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 + focus:ring-red-500`,children:"Logout"})};function X1(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Wc(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,r)}return t}function Vc(e){for(var n=1;n=0)&&(t[o]=e[o]);return t}function q1(e,n){if(e==null)return{};var t=Z1(e,n),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}function J1(e,n){return ew(e)||nw(e,n)||tw(e,n)||rw()}function ew(e){if(Array.isArray(e))return e}function nw(e,n){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var t=[],r=!0,o=!1,i=void 0;try{for(var l=e[Symbol.iterator](),s;!(r=(s=l.next()).done)&&(t.push(s.value),!(n&&t.length===n));r=!0);}catch(u){o=!0,i=u}finally{try{!r&&l.return!=null&&l.return()}finally{if(o)throw i}}return t}}function tw(e,n){if(e){if(typeof e=="string")return Yc(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Yc(e,n)}}function Yc(e,n){(n==null||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=e.length?e.apply(this,o):function(){for(var l=arguments.length,s=new Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:{};$o.initial(e),$o.handler(n);var t={current:e},r=Lr(vw)(t,n),o=Lr(gw)(t),i=Lr($o.changes)(e),l=Lr(mw)(t);function s(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return $o.selector(a),a(t.current)}function u(a){iw(r,o,i,l)(a)}return[s,u]}function mw(e,n){return uo(n)?n(e.current):n}function gw(e,n){return e.current=Gc(Gc({},e.current),n),n}function vw(e,n,t){return uo(n)?n(e.current):Object.keys(t).forEach(function(r){var o;return(o=n[r])===null||o===void 0?void 0:o.call(n,e.current[r])}),t}var yw={create:hw},ww={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function xw(e){return function n(){for(var t=this,r=arguments.length,o=new Array(r),i=0;i=e.length?e.apply(this,o):function(){for(var l=arguments.length,s=new Array(l),u=0;u{r.current=!1}:e,n)}var je=Vw;function Br(){}function $t(e,n,t,r){return Yw(e,r)||Qw(e,n,t,r)}function Yw(e,n){return e.editor.getModel(Rh(e,n))}function Qw(e,n,t,r){return e.editor.createModel(n,t,r?Rh(e,r):void 0)}function Rh(e,n){return e.Uri.parse(n)}function Gw({original:e,modified:n,language:t,originalLanguage:r,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:l,keepCurrentOriginalModel:s=!1,keepCurrentModifiedModel:u=!1,theme:a="light",loading:d="Loading...",options:c={},height:p="100%",width:m="100%",className:v,wrapperProps:w={},beforeMount:x=Br,onMount:h=Br}){let[f,g]=y.useState(!1),[C,E]=y.useState(!0),k=y.useRef(null),A=y.useRef(null),L=y.useRef(null),F=y.useRef(h),P=y.useRef(x),b=y.useRef(!1);bh(()=>{let O=_h.init();return O.then(j=>(A.current=j)&&E(!1)).catch(j=>(j==null?void 0:j.type)!=="cancelation"&&console.error("Monaco initialization: error:",j)),()=>k.current?D():O.cancel()}),je(()=>{if(k.current&&A.current){let O=k.current.getOriginalEditor(),j=$t(A.current,e||"",r||t||"text",i||"");j!==O.getModel()&&O.setModel(j)}},[i],f),je(()=>{if(k.current&&A.current){let O=k.current.getModifiedEditor(),j=$t(A.current,n||"",o||t||"text",l||"");j!==O.getModel()&&O.setModel(j)}},[l],f),je(()=>{let O=k.current.getModifiedEditor();O.getOption(A.current.editor.EditorOption.readOnly)?O.setValue(n||""):n!==O.getValue()&&(O.executeEdits("",[{range:O.getModel().getFullModelRange(),text:n||"",forceMoveMarkers:!0}]),O.pushUndoStop())},[n],f),je(()=>{var O,j;(j=(O=k.current)==null?void 0:O.getModel())==null||j.original.setValue(e||"")},[e],f),je(()=>{let{original:O,modified:j}=k.current.getModel();A.current.editor.setModelLanguage(O,r||t||"text"),A.current.editor.setModelLanguage(j,o||t||"text")},[t,r,o],f),je(()=>{var O;(O=A.current)==null||O.editor.setTheme(a)},[a],f),je(()=>{var O;(O=k.current)==null||O.updateOptions(c)},[c],f);let T=y.useCallback(()=>{var H;if(!A.current)return;P.current(A.current);let O=$t(A.current,e||"",r||t||"text",i||""),j=$t(A.current,n||"",o||t||"text",l||"");(H=k.current)==null||H.setModel({original:O,modified:j})},[t,n,o,e,r,i,l]),z=y.useCallback(()=>{var O;!b.current&&L.current&&(k.current=A.current.editor.createDiffEditor(L.current,{automaticLayout:!0,...c}),T(),(O=A.current)==null||O.editor.setTheme(a),g(!0),b.current=!0)},[c,a,T]);y.useEffect(()=>{f&&F.current(k.current,A.current)},[f]),y.useEffect(()=>{!C&&!f&&z()},[C,f,z]);function D(){var j,H,N,R;let O=(j=k.current)==null?void 0:j.getModel();s||((H=O==null?void 0:O.original)==null||H.dispose()),u||((N=O==null?void 0:O.modified)==null||N.dispose()),(R=k.current)==null||R.dispose()}return dt.createElement(Lh,{width:m,height:p,isEditorReady:f,loading:d,_ref:L,className:v,wrapperProps:w})}var Kw=Gw;y.memo(Kw);function Xw(e){let n=y.useRef();return y.useEffect(()=>{n.current=e},[e]),n.current}var Zw=Xw,Bo=new Map;function qw({defaultValue:e,defaultLanguage:n,defaultPath:t,value:r,language:o,path:i,theme:l="light",line:s,loading:u="Loading...",options:a={},overrideServices:d={},saveViewState:c=!0,keepCurrentModel:p=!1,width:m="100%",height:v="100%",className:w,wrapperProps:x={},beforeMount:h=Br,onMount:f=Br,onChange:g,onValidate:C=Br}){let[E,k]=y.useState(!1),[A,L]=y.useState(!0),F=y.useRef(null),P=y.useRef(null),b=y.useRef(null),T=y.useRef(f),z=y.useRef(h),D=y.useRef(),O=y.useRef(r),j=Zw(i),H=y.useRef(!1),N=y.useRef(!1);bh(()=>{let M=_h.init();return M.then(B=>(F.current=B)&&L(!1)).catch(B=>(B==null?void 0:B.type)!=="cancelation"&&console.error("Monaco initialization: error:",B)),()=>P.current?$():M.cancel()}),je(()=>{var B,oe,Se,Be;let M=$t(F.current,e||r||"",n||o||"",i||t||"");M!==((B=P.current)==null?void 0:B.getModel())&&(c&&Bo.set(j,(oe=P.current)==null?void 0:oe.saveViewState()),(Se=P.current)==null||Se.setModel(M),c&&((Be=P.current)==null||Be.restoreViewState(Bo.get(i))))},[i],E),je(()=>{var M;(M=P.current)==null||M.updateOptions(a)},[a],E),je(()=>{!P.current||r===void 0||(P.current.getOption(F.current.editor.EditorOption.readOnly)?P.current.setValue(r):r!==P.current.getValue()&&(N.current=!0,P.current.executeEdits("",[{range:P.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),P.current.pushUndoStop(),N.current=!1))},[r],E),je(()=>{var B,oe;let M=(B=P.current)==null?void 0:B.getModel();M&&o&&((oe=F.current)==null||oe.editor.setModelLanguage(M,o))},[o],E),je(()=>{var M;s!==void 0&&((M=P.current)==null||M.revealLine(s))},[s],E),je(()=>{var M;(M=F.current)==null||M.editor.setTheme(l)},[l],E);let R=y.useCallback(()=>{var M;if(!(!b.current||!F.current)&&!H.current){z.current(F.current);let B=i||t,oe=$t(F.current,r||e||"",n||o||"",B||"");P.current=(M=F.current)==null?void 0:M.editor.create(b.current,{model:oe,automaticLayout:!0,...a},d),c&&P.current.restoreViewState(Bo.get(B)),F.current.editor.setTheme(l),s!==void 0&&P.current.revealLine(s),k(!0),H.current=!0}},[e,n,t,r,o,i,a,d,c,l,s]);y.useEffect(()=>{E&&T.current(P.current,F.current)},[E]),y.useEffect(()=>{!A&&!E&&R()},[A,E,R]),O.current=r,y.useEffect(()=>{var M,B;E&&g&&((M=D.current)==null||M.dispose(),D.current=(B=P.current)==null?void 0:B.onDidChangeModelContent(oe=>{N.current||g(P.current.getValue(),oe)}))},[E,g]),y.useEffect(()=>{if(E){let M=F.current.editor.onDidChangeMarkers(B=>{var Se;let oe=(Se=P.current.getModel())==null?void 0:Se.uri;if(oe&&B.find(Be=>Be.path===oe.path)){let Be=F.current.editor.getModelMarkers({resource:oe});C==null||C(Be)}});return()=>{M==null||M.dispose()}}return()=>{}},[E,C]);function $(){var M,B;(M=D.current)==null||M.dispose(),p?c&&Bo.set(i,P.current.saveViewState()):(B=P.current.getModel())==null||B.dispose(),P.current.dispose()}return dt.createElement(Lh,{width:m,height:v,isEditorReady:E,loading:u,_ref:b,className:w,wrapperProps:x})}var Jw=qw,ex=y.memo(Jw),nx=ex;/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function jh(e){return typeof e>"u"||e===null}function tx(e){return typeof e=="object"&&e!==null}function rx(e){return Array.isArray(e)?e:jh(e)?[]:[e]}function ox(e,n){var t,r,o,i;if(n)for(i=Object.keys(n),t=0,r=i.length;ts&&(i=" ... ",n=r-s+i.length),t-r>s&&(l=" ...",t=r+s-l.length),{str:i+e.slice(n,t).replace(/\t/g,"→")+l,pos:r-n+i.length}}function Hl(e,n){return ue.repeat(" ",n-e.length)+e}function px(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var t=/\r?\n|\r|\0/g,r=[0],o=[],i,l=-1;i=t.exec(e.buffer);)o.push(i.index),r.push(i.index+i[0].length),e.position<=i.index&&l<0&&(l=r.length-2);l<0&&(l=r.length-1);var s="",u,a,d=Math.min(e.line+n.linesAfter,o.length).toString().length,c=n.maxLength-(n.indent+d+3);for(u=1;u<=n.linesBefore&&!(l-u<0);u++)a=Bl(e.buffer,r[l-u],o[l-u],e.position-(r[l]-r[l-u]),c),s=ue.repeat(" ",n.indent)+Hl((e.line-u+1).toString(),d)+" | "+a.str+` +`+s;for(a=Bl(e.buffer,r[l],o[l],e.position,c),s+=ue.repeat(" ",n.indent)+Hl((e.line+1).toString(),d)+" | "+a.str+` +`,s+=ue.repeat("-",n.indent+d+3+a.pos)+`^ +`,u=1;u<=n.linesAfter&&!(l+u>=o.length);u++)a=Bl(e.buffer,r[l+u],o[l+u],e.position-(r[l]-r[l+u]),c),s+=ue.repeat(" ",n.indent)+Hl((e.line+u+1).toString(),d)+" | "+a.str+` +`;return s.replace(/\n$/,"")}var hx=px,mx=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],gx=["scalar","sequence","mapping"];function vx(e){var n={};return e!==null&&Object.keys(e).forEach(function(t){e[t].forEach(function(r){n[String(r)]=t})}),n}function yx(e,n){if(n=n||{},Object.keys(n).forEach(function(t){if(mx.indexOf(t)===-1)throw new Oe('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(t){return t},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=vx(n.styleAliases||null),gx.indexOf(this.kind)===-1)throw new Oe('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var ye=yx;function Xc(e,n){var t=[];return e[n].forEach(function(r){var o=t.length;t.forEach(function(i,l){i.tag===r.tag&&i.kind===r.kind&&i.multi===r.multi&&(o=l)}),t[o]=r}),t}function wx(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,t;function r(o){o.multi?(e.multi[o.kind].push(o),e.multi.fallback.push(o)):e[o.kind][o.tag]=e.fallback[o.tag]=o}for(n=0,t=arguments.length;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Ux=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function $x(e){return!(e===null||!Ux.test(e)||e[e.length-1]==="_")}function Bx(e){var n,t;return n=e.replace(/_/g,"").toLowerCase(),t=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:t*parseFloat(n,10)}var Hx=/^[-+]?[0-9]+e/;function Wx(e,n){var t;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ue.isNegativeZero(e))return"-0.0";return t=e.toString(10),Hx.test(t)?t.replace("e",".e"):t}function Vx(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ue.isNegativeZero(e))}var Yx=new ye("tag:yaml.org,2002:float",{kind:"scalar",resolve:$x,construct:Bx,predicate:Vx,represent:Wx,defaultStyle:"lowercase"}),Qx=kx.extend({implicit:[Px,bx,zx,Yx]}),Gx=Qx,Ih=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Fh=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Kx(e){return e===null?!1:Ih.exec(e)!==null||Fh.exec(e)!==null}function Xx(e){var n,t,r,o,i,l,s,u=0,a=null,d,c,p;if(n=Ih.exec(e),n===null&&(n=Fh.exec(e)),n===null)throw new Error("Date resolve error");if(t=+n[1],r=+n[2]-1,o=+n[3],!n[4])return new Date(Date.UTC(t,r,o));if(i=+n[4],l=+n[5],s=+n[6],n[7]){for(u=n[7].slice(0,3);u.length<3;)u+="0";u=+u}return n[9]&&(d=+n[10],c=+(n[11]||0),a=(d*60+c)*6e4,n[9]==="-"&&(a=-a)),p=new Date(Date.UTC(t,r,o,i,l,s,u)),a&&p.setTime(p.getTime()-a),p}function Zx(e){return e.toISOString()}var qx=new ye("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Kx,construct:Xx,instanceOf:Date,represent:Zx});function Jx(e){return e==="<<"||e===null}var eS=new ye("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Jx}),ia=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function nS(e){if(e===null)return!1;var n,t,r=0,o=e.length,i=ia;for(t=0;t64)){if(n<0)return!1;r+=6}return r%8===0}function tS(e){var n,t,r=e.replace(/[\r\n=]/g,""),o=r.length,i=ia,l=0,s=[];for(n=0;n>16&255),s.push(l>>8&255),s.push(l&255)),l=l<<6|i.indexOf(r.charAt(n));return t=o%4*6,t===0?(s.push(l>>16&255),s.push(l>>8&255),s.push(l&255)):t===18?(s.push(l>>10&255),s.push(l>>2&255)):t===12&&s.push(l>>4&255),new Uint8Array(s)}function rS(e){var n="",t=0,r,o,i=e.length,l=ia;for(r=0;r>18&63],n+=l[t>>12&63],n+=l[t>>6&63],n+=l[t&63]),t=(t<<8)+e[r];return o=i%3,o===0?(n+=l[t>>18&63],n+=l[t>>12&63],n+=l[t>>6&63],n+=l[t&63]):o===2?(n+=l[t>>10&63],n+=l[t>>4&63],n+=l[t<<2&63],n+=l[64]):o===1&&(n+=l[t>>2&63],n+=l[t<<4&63],n+=l[64],n+=l[64]),n}function oS(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var iS=new ye("tag:yaml.org,2002:binary",{kind:"scalar",resolve:nS,construct:tS,predicate:oS,represent:rS}),lS=Object.prototype.hasOwnProperty,sS=Object.prototype.toString;function uS(e){if(e===null)return!0;var n=[],t,r,o,i,l,s=e;for(t=0,r=s.length;t>10)+55296,(e-65536&1023)+56320)}var Hh=new Array(256),Wh=new Array(256);for(var Ot=0;Ot<256;Ot++)Hh[Ot]=Jc(Ot)?1:0,Wh[Ot]=Jc(Ot);function OS(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||Dh,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Vh(e,n){var t={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return t.snippet=hx(t),new Oe(n,t)}function U(e,n){throw Vh(e,n)}function Mi(e,n){e.onWarning&&e.onWarning.call(null,Vh(e,n))}var ef={YAML:function(n,t,r){var o,i,l;n.version!==null&&U(n,"duplication of %YAML directive"),r.length!==1&&U(n,"YAML directive accepts exactly one argument"),o=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),o===null&&U(n,"ill-formed argument of the YAML directive"),i=parseInt(o[1],10),l=parseInt(o[2],10),i!==1&&U(n,"unacceptable YAML version of the document"),n.version=r[0],n.checkLineBreaks=l<2,l!==1&&l!==2&&Mi(n,"unsupported YAML version of the document")},TAG:function(n,t,r){var o,i;r.length!==2&&U(n,"TAG directive accepts exactly two arguments"),o=r[0],i=r[1],$h.test(o)||U(n,"ill-formed tag handle (first argument) of the TAG directive"),et.call(n.tagMap,o)&&U(n,'there is a previously declared suffix for "'+o+'" tag handle'),Bh.test(i)||U(n,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch{U(n,"tag prefix is malformed: "+i)}n.tagMap[o]=i}};function Gn(e,n,t,r){var o,i,l,s;if(n1&&(e.result+=ue.repeat(` +`,n-1))}function PS(e,n,t){var r,o,i,l,s,u,a,d,c=e.kind,p=e.result,m;if(m=e.input.charCodeAt(e.position),Te(m)||Bt(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(o=e.input.charCodeAt(e.position+1),Te(o)||t&&Bt(o)))return!1;for(e.kind="scalar",e.result="",i=l=e.position,s=!1;m!==0;){if(m===58){if(o=e.input.charCodeAt(e.position+1),Te(o)||t&&Bt(o))break}else if(m===35){if(r=e.input.charCodeAt(e.position-1),Te(r))break}else{if(e.position===e.lineStart&&ul(e)||t&&Bt(m))break;if(fn(m))if(u=e.line,a=e.lineStart,d=e.lineIndent,le(e,!1,-1),e.lineIndent>=n){s=!0,m=e.input.charCodeAt(e.position);continue}else{e.position=l,e.line=u,e.lineStart=a,e.lineIndent=d;break}}s&&(Gn(e,i,l,!1),sa(e,e.line-u),i=l=e.position,s=!1),mt(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return Gn(e,i,l,!1),e.result?!0:(e.kind=c,e.result=p,!1)}function TS(e,n){var t,r,o;if(t=e.input.charCodeAt(e.position),t!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;(t=e.input.charCodeAt(e.position))!==0;)if(t===39)if(Gn(e,r,e.position,!0),t=e.input.charCodeAt(++e.position),t===39)r=e.position,e.position++,o=e.position;else return!0;else fn(t)?(Gn(e,r,o,!0),sa(e,le(e,!1,n)),r=o=e.position):e.position===e.lineStart&&ul(e)?U(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);U(e,"unexpected end of the stream within a single quoted scalar")}function _S(e,n){var t,r,o,i,l,s;if(s=e.input.charCodeAt(e.position),s!==34)return!1;for(e.kind="scalar",e.result="",e.position++,t=r=e.position;(s=e.input.charCodeAt(e.position))!==0;){if(s===34)return Gn(e,t,e.position,!0),e.position++,!0;if(s===92){if(Gn(e,t,e.position,!0),s=e.input.charCodeAt(++e.position),fn(s))le(e,!1,n);else if(s<256&&Hh[s])e.result+=Wh[s],e.position++;else if((l=kS(s))>0){for(o=l,i=0;o>0;o--)s=e.input.charCodeAt(++e.position),(l=ES(s))>=0?i=(i<<4)+l:U(e,"expected hexadecimal character");e.result+=NS(i),e.position++}else U(e,"unknown escape sequence");t=r=e.position}else fn(s)?(Gn(e,t,r,!0),sa(e,le(e,!1,n)),t=r=e.position):e.position===e.lineStart&&ul(e)?U(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}U(e,"unexpected end of the stream within a double quoted scalar")}function LS(e,n){var t=!0,r,o,i,l=e.tag,s,u=e.anchor,a,d,c,p,m,v=Object.create(null),w,x,h,f;if(f=e.input.charCodeAt(e.position),f===91)d=93,m=!1,s=[];else if(f===123)d=125,m=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),f=e.input.charCodeAt(++e.position);f!==0;){if(le(e,!0,n),f=e.input.charCodeAt(e.position),f===d)return e.position++,e.tag=l,e.anchor=u,e.kind=m?"mapping":"sequence",e.result=s,!0;t?f===44&&U(e,"expected the node content, but found ','"):U(e,"missed comma between flow collection entries"),x=w=h=null,c=p=!1,f===63&&(a=e.input.charCodeAt(e.position+1),Te(a)&&(c=p=!0,e.position++,le(e,!0,n))),r=e.line,o=e.lineStart,i=e.position,ur(e,n,Ri,!1,!0),x=e.tag,w=e.result,le(e,!0,n),f=e.input.charCodeAt(e.position),(p||e.line===r)&&f===58&&(c=!0,f=e.input.charCodeAt(++e.position),le(e,!0,n),ur(e,n,Ri,!1,!0),h=e.result),m?Ht(e,s,v,x,w,h,r,o,i):c?s.push(Ht(e,null,v,x,w,h,r,o,i)):s.push(w),le(e,!0,n),f=e.input.charCodeAt(e.position),f===44?(t=!0,f=e.input.charCodeAt(++e.position)):t=!1}U(e,"unexpected end of the stream within a flow collection")}function bS(e,n){var t,r,o=Wl,i=!1,l=!1,s=n,u=0,a=!1,d,c;if(c=e.input.charCodeAt(e.position),c===124)r=!1;else if(c===62)r=!0;else return!1;for(e.kind="scalar",e.result="";c!==0;)if(c=e.input.charCodeAt(++e.position),c===43||c===45)Wl===o?o=c===43?Zc:wS:U(e,"repeat of a chomping mode identifier");else if((d=AS(c))>=0)d===0?U(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?U(e,"repeat of an indentation width identifier"):(s=n+d-1,l=!0);else break;if(mt(c)){do c=e.input.charCodeAt(++e.position);while(mt(c));if(c===35)do c=e.input.charCodeAt(++e.position);while(!fn(c)&&c!==0)}for(;c!==0;){for(la(e),e.lineIndent=0,c=e.input.charCodeAt(e.position);(!l||e.lineIndents&&(s=e.lineIndent),fn(c)){u++;continue}if(e.lineIndentn)&&u!==0)U(e,"bad indentation of a sequence entry");else if(e.lineIndentn)&&(x&&(l=e.line,s=e.lineStart,u=e.position),ur(e,n,ji,!0,o)&&(x?v=e.result:w=e.result),x||(Ht(e,c,p,m,v,w,l,s,u),m=v=w=null),le(e,!0,-1),f=e.input.charCodeAt(e.position)),(e.line===i||e.lineIndent>n)&&f!==0)U(e,"bad indentation of a mapping entry");else if(e.lineIndentn?u=1:e.lineIndent===n?u=0:e.lineIndentn?u=1:e.lineIndent===n?u=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),c=0,p=e.implicitTypes.length;c"),e.result!==null&&v.kind!==e.kind&&U(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+v.kind+'", not "'+e.kind+'"'),v.resolve(e.result,e.tag)?(e.result=v.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):U(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||d}function FS(e){var n=e.position,t,r,o,i=!1,l;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(l=e.input.charCodeAt(e.position))!==0&&(le(e,!0,-1),l=e.input.charCodeAt(e.position),!(e.lineIndent>0||l!==37));){for(i=!0,l=e.input.charCodeAt(++e.position),t=e.position;l!==0&&!Te(l);)l=e.input.charCodeAt(++e.position);for(r=e.input.slice(t,e.position),o=[],r.length<1&&U(e,"directive name must not be less than one character in length");l!==0;){for(;mt(l);)l=e.input.charCodeAt(++e.position);if(l===35){do l=e.input.charCodeAt(++e.position);while(l!==0&&!fn(l));break}if(fn(l))break;for(t=e.position;l!==0&&!Te(l);)l=e.input.charCodeAt(++e.position);o.push(e.input.slice(t,e.position))}l!==0&&la(e),et.call(ef,r)?ef[r](e,r,o):Mi(e,'unknown document directive "'+r+'"')}if(le(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,le(e,!0,-1)):i&&U(e,"directives end mark is expected"),ur(e,e.lineIndent-1,ji,!1,!0),le(e,!0,-1),e.checkLineBreaks&&SS.test(e.input.slice(n,e.position))&&Mi(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&ul(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,le(e,!0,-1));return}if(e.position"u"&&(t=n,n=null);var r=Yh(e,t);if(typeof n!="function")return r;for(var o=0,i=r.length;o=55296&&t<=56319&&n+1=56320&&r<=57343)?(t-55296)*1024+r-56320+65536:t}function em(e){var n=/^\n* /;return n.test(e)}var nm=1,Xs=2,tm=3,rm=4,Pt=5;function hC(e,n,t,r,o,i,l,s){var u,a=0,d=null,c=!1,p=!1,m=r!==-1,v=-1,w=dC(br(e,0))&&pC(br(e,e.length-1));if(n||l)for(u=0;u=65536?u+=2:u++){if(a=br(e,u),!po(a))return Pt;w=w&&lf(a,d,s),d=a}else{for(u=0;u=65536?u+=2:u++){if(a=br(e,u),a===co)c=!0,m&&(p=p||u-v-1>r&&e[v+1]!==" ",v=u);else if(!po(a))return Pt;w=w&&lf(a,d,s),d=a}p=p||m&&u-v-1>r&&e[v+1]!==" "}return!c&&!p?w&&!l&&!o(e)?nm:i===fo?Pt:Xs:t>9&&em(e)?Pt:l?i===fo?Pt:Xs:p?rm:tm}function mC(e,n,t,r,o){e.dump=function(){if(n.length===0)return e.quotingType===fo?'""':"''";if(!e.noCompatMode&&(iC.indexOf(n)!==-1||lC.test(n)))return e.quotingType===fo?'"'+n+'"':"'"+n+"'";var i=e.indent*Math.max(1,t),l=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),s=r||e.flowLevel>-1&&t>=e.flowLevel;function u(a){return fC(e,a)}switch(hC(n,s,e.indent,l,u,e.quotingType,e.forceQuotes&&!r,o)){case nm:return n;case Xs:return"'"+n.replace(/'/g,"''")+"'";case tm:return"|"+sf(n,e.indent)+uf(rf(n,i));case rm:return">"+sf(n,e.indent)+uf(rf(gC(n,l),i));case Pt:return'"'+vC(n)+'"';default:throw new Oe("impossible error: invalid scalar style")}}()}function sf(e,n){var t=em(e)?String(n):"",r=e[e.length-1]===` +`,o=r&&(e[e.length-2]===` +`||e===` +`),i=o?"+":r?"":"-";return t+i+` +`}function uf(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function gC(e,n){for(var t=/(\n+)([^\n]*)/g,r=function(){var a=e.indexOf(` +`);return a=a!==-1?a:e.length,t.lastIndex=a,af(e.slice(0,a),n)}(),o=e[0]===` +`||e[0]===" ",i,l;l=t.exec(e);){var s=l[1],u=l[2];i=u[0]===" ",r+=s+(!o&&!i&&u!==""?` +`:"")+af(u,n),o=i}return r}function af(e,n){if(e===""||e[0]===" ")return e;for(var t=/ [^ ]/g,r,o=0,i,l=0,s=0,u="";r=t.exec(e);)s=r.index,s-o>n&&(i=l>o?l:s,u+=` +`+e.slice(o,i),o=i+1),l=s;return u+=` +`,e.length-o>n&&l>o?u+=e.slice(o,l)+` +`+e.slice(l+1):u+=e.slice(o),u.slice(1)}function vC(e){for(var n="",t=0,r,o=0;o=65536?o+=2:o++)t=br(e,o),r=xe[t],!r&&po(t)?(n+=e[o],t>=65536&&(n+=e[o+1])):n+=r||uC(t);return n}function yC(e,n,t){var r="",o=e.tag,i,l,s;for(i=0,l=t.length;i"u"&&Pn(e,n,null,!1,!1))&&(r!==""&&(r+=","+(e.condenseFlow?"":" ")),r+=e.dump);e.tag=o,e.dump="["+r+"]"}function cf(e,n,t,r){var o="",i=e.tag,l,s,u;for(l=0,s=t.length;l"u"&&Pn(e,n+1,null,!0,!0,!1,!0))&&((!r||o!=="")&&(o+=Ks(e,n)),e.dump&&co===e.dump.charCodeAt(0)?o+="-":o+="- ",o+=e.dump);e.tag=i,e.dump=o||"[]"}function wC(e,n,t){var r="",o=e.tag,i=Object.keys(t),l,s,u,a,d;for(l=0,s=i.length;l1024&&(d+="? "),d+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Pn(e,n,a,!1,!1)&&(d+=e.dump,r+=d));e.tag=o,e.dump="{"+r+"}"}function xC(e,n,t,r){var o="",i=e.tag,l=Object.keys(t),s,u,a,d,c,p;if(e.sortKeys===!0)l.sort();else if(typeof e.sortKeys=="function")l.sort(e.sortKeys);else if(e.sortKeys)throw new Oe("sortKeys must be a boolean or a function");for(s=0,u=l.length;s1024,c&&(e.dump&&co===e.dump.charCodeAt(0)?p+="?":p+="? "),p+=e.dump,c&&(p+=Ks(e,n)),Pn(e,n+1,d,!0,c)&&(e.dump&&co===e.dump.charCodeAt(0)?p+=":":p+=": ",p+=e.dump,o+=p));e.tag=i,e.dump=o||"{}"}function ff(e,n,t){var r,o,i,l,s,u;for(o=t?e.explicitTypes:e.implicitTypes,i=0,l=o.length;i tag resolver accepts not "'+u+'" style');e.dump=r}return!0}return!1}function Pn(e,n,t,r,o,i,l){e.tag=null,e.dump=t,ff(e,t,!1)||ff(e,t,!0);var s=Qh.call(e.dump),u=r,a;r&&(r=e.flowLevel<0||e.flowLevel>n);var d=s==="[object Object]"||s==="[object Array]",c,p;if(d&&(c=e.duplicates.indexOf(t),p=c!==-1),(e.tag!==null&&e.tag!=="?"||p||e.indent!==2&&n>0)&&(o=!1),p&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(d&&p&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),s==="[object Object]")r&&Object.keys(e.dump).length!==0?(xC(e,n,e.dump,o),p&&(e.dump="&ref_"+c+e.dump)):(wC(e,n,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump));else if(s==="[object Array]")r&&e.dump.length!==0?(e.noArrayIndent&&!l&&n>0?cf(e,n-1,e.dump,o):cf(e,n,e.dump,o),p&&(e.dump="&ref_"+c+e.dump)):(yC(e,n,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump));else if(s==="[object String]")e.tag!=="?"&&mC(e,e.dump,n,i,u);else{if(s==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new Oe("unacceptable kind of an object to dump "+s)}e.tag!==null&&e.tag!=="?"&&(a=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?a="!"+a:a.slice(0,18)==="tag:yaml.org,2002:"?a="!!"+a.slice(18):a="!<"+a+">",e.dump=a+" "+e.dump)}return!0}function SC(e,n){var t=[],r=[],o,i;for(Zs(e,t,r),o=0,i=r.length;o{const[r,o]=y.useState(""),[i,l]=y.useState(!0),[s,u]=y.useState(!1),[a,d]=y.useState(null),[c,p]=y.useState(null),[m,v]=y.useState(!0),[w,x]=y.useState(null),[h,f]=y.useState(!1),g=async()=>{l(!0),d(null);try{const k=new Date().getTime(),A=await fetch(`http://127.0.0.1${n}?_=${k}`,{headers:{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache, no-store, must-revalidate",Pragma:"no-cache",Expires:"0"}});if(!A.ok)throw new Error(`Failed to fetch ${e} configuration`);const L=await A.json(),F=pf(L,{indent:2,lineWidth:-1,sortKeys:!0});o(F),x(new Date),v(!0),f(!1)}catch(k){d(k instanceof Error?k.message:`Failed to fetch ${e} configuration`),console.error("Config fetch error:",k)}finally{l(!1)}},C=async()=>{if(!m){p("Cannot save invalid YAML");return}u(!0),p(null);try{const k=df(r),A=await fetch(`http://127.0.0.1${n}`,{method:"POST",headers:{"Content-Type":"application/json","Cache-Control":"no-cache"},body:JSON.stringify(k)});if(!A.ok)throw new Error(`Failed to save ${e} configuration`);const L=await A.json(),F=pf(L,{indent:2,lineWidth:-1,sortKeys:!0});o(F),f(!1),x(new Date)}catch(k){p(k instanceof Error?k.message:`Failed to save ${e} configuration`),console.error("Config save error:",k)}finally{u(!1)}};y.useEffect(()=>{g()},[n]);const E=k=>{if(k)try{df(k),v(!0),o(k),f(!0),p(null)}catch{v(!1)}};return S.jsxs("div",{className:"mb-8 last:mb-0",children:[S.jsx("div",{className:"mb-4 flex justify-between items-center",children:S.jsx("h2",{className:`text-xl font-semibold ${t?"text-orange-200":"text-orange-800"}`,children:e})}),S.jsxs("div",{className:"mb-4 flex justify-between items-center",children:[S.jsxs("div",{className:"flex items-center gap-4",children:[S.jsxs("button",{onClick:g,disabled:i,className:` + flex items-center gap-2 px-4 py-2 rounded + ${t?"bg-orange-600 hover:bg-orange-700":"bg-orange-500 hover:bg-orange-600"} + text-white transition-colors + disabled:opacity-50 disabled:cursor-not-allowed + focus:outline-none focus:ring-2 focus:ring-orange-500 focus:ring-opacity-50 + `,children:[S.jsx(ni,{className:`h-4 w-4 ${i?"animate-spin":""}`}),"Refresh"]}),S.jsxs("button",{onClick:C,disabled:s||!m||!h,className:` + flex items-center gap-2 px-4 py-2 rounded + ${t?"bg-green-600 hover:bg-green-700":"bg-green-500 hover:bg-green-600"} + text-white transition-colors + disabled:opacity-50 disabled:cursor-not-allowed + focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-opacity-50 + `,children:[S.jsx(ev,{className:`h-4 w-4 ${s?"animate-spin":""}`}),s?"Saving...":"Save Changes"]}),S.jsxs("div",{className:`flex items-center gap-2 ${m?"text-green-500":"text-red-500"}`,children:[S.jsx("span",{className:"h-2 w-2 rounded-full bg-current"}),m?"Valid YAML":"Invalid YAML"]}),h&&S.jsxs("div",{className:"text-yellow-500 flex items-center gap-2",children:[S.jsx("span",{className:"h-2 w-2 rounded-full bg-current"}),"Unsaved Changes"]})]}),w&&S.jsxs("span",{className:`text-sm ${t?"text-gray-300":"text-gray-600"}`,children:["Last refreshed: ",w.toLocaleString()]})]}),a&&S.jsx("div",{className:"mb-4 p-4 rounded-lg bg-red-500 text-white",children:a}),c&&S.jsx("div",{className:"mb-4 p-4 rounded-lg bg-red-500 text-white",children:c}),S.jsx("div",{className:`border rounded-lg overflow-hidden shadow-lg ${t?"border-orange-400":"border-orange-600"}`,children:S.jsx(nx,{height:"50vh",defaultLanguage:"yaml",value:r,theme:t?"vs-dark":"vs-light",onChange:E,options:{minimap:{enabled:!0},lineNumbers:"on",fontSize:14,wordWrap:"on",wrappingIndent:"indent",automaticLayout:!0,scrollBeyondLastLine:!1,tabSize:2}})})]})},AC=({isDark:e})=>S.jsxs("div",{className:`p-4 ${e?"bg-gray-900":"bg-white"} ${e?"text-white":"text-gray-900"} min-h-screen`,children:[S.jsx("div",{className:"mb-4",children:S.jsxs("div",{className:"flex items-center p-4 text-yellow-800 bg-yellow-100 border-l-4 border-yellow-500 dark:bg-yellow-900/30 dark:border-yellow-600 dark:text-yellow-200",children:[S.jsxs("svg",{className:"flex-shrink-0 w-4 h-4 mr-2",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",children:[S.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),S.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),S.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),S.jsxs("span",{children:["For advanced users only - you can directly edit neon.yaml and diana.yaml. ",S.jsx("strong",{children:" Back up the contents before making changes!"})]})]})}),S.jsxs("div",{className:"container mx-auto",children:[S.jsx(hf,{title:"Neon Configuration",endpoint:"/v1/neon_user_config",isDark:e}),S.jsx(hf,{title:"Diana Configuration",endpoint:"/v1/diana_config",isDark:e})]})]}),NC=({isDark:e})=>(console.log("AdvancedProps",e),S.jsxs("div",{className:"p-4 bg-white dark:bg-gray-800 rounded-lg shadow",children:[S.jsx("h2",{className:"text-2xl font-bold mb-4 text-gray-800 dark:text-white",children:"Advanced"}),S.jsx(AC,{isDark:e})]})),OC=()=>{const[e,n]=y.useState(!1),[t,r]=y.useState(()=>localStorage.getItem("activeTab")||"config");y.useEffect(()=>{const l=window.matchMedia("(prefers-color-scheme: dark)").matches;n(l)},[]),y.useEffect(()=>{localStorage.setItem("activeTab",t)},[t]);const o=()=>n(!e),{isAuthenticated:i}=oa();return i?S.jsx(V0,{children:S.jsxs("div",{className:`app-container ${e?"dark":""}`,children:[S.jsx(Y1,{isDark:e,toggleDarkMode:o}),S.jsxs("div",{className:"tab-navigation",children:[S.jsx("button",{onClick:()=>r("config"),children:"Configuration"}),S.jsx("button",{onClick:()=>r("services"),children:"Node Services"}),S.jsx("button",{onClick:()=>r("devices"),children:"Connected Devices"}),S.jsx("button",{onClick:()=>r("updates"),children:"System Updates"}),S.jsx("button",{onClick:()=>r("advanced"),children:"Advanced"}),S.jsx(K1,{})]}),S.jsxs("div",{className:"content-area",children:[t==="config"&&S.jsx(B1,{isDark:e}),t==="services"&&S.jsx(H1,{isDark:e}),t==="devices"&&S.jsx(W1,{isDark:e}),t==="updates"&&S.jsx(V1,{isDark:e}),t==="advanced"&&S.jsx(NC,{isDark:e})]})]})}):S.jsx(G1,{})},PC=()=>S.jsx(Q1,{children:S.jsx(OC,{})});Pp(document.getElementById("root")).render(S.jsx(y.StrictMode,{children:S.jsx(PC,{})})); diff --git a/neon_hub_config/static/index.html b/neon_hub_config/static/index.html index f9987db..4a65d6a 100644 --- a/neon_hub_config/static/index.html +++ b/neon_hub_config/static/index.html @@ -5,8 +5,8 @@ Neon Hub Configuration Tool - - + +
From 1972123db6f080d918b1615270376a36144beb36 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 19 Nov 2024 20:53:25 -0600 Subject: [PATCH 2/2] chore: add sbom for each portion of the code --- Taskfile.yml | 7 +++++++ frontend/sbom.json | 2 ++ sbom.json | 2 ++ 3 files changed, 11 insertions(+) create mode 100644 frontend/sbom.json create mode 100644 sbom.json diff --git a/Taskfile.yml b/Taskfile.yml index f542ae7..b85f6ed 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -2,6 +2,13 @@ version: "3" tasks: + sbom: + desc: Generate a software bill of materials for the project + cmds: + - snyk sbom --format spdx2.3+json > sbom.json + - cd frontend + - snyk sbom --format spdx2.3+json > sbom.json + - cd .. build-fe: dir: frontend/neon-hub-config desc: Build the frontend diff --git a/frontend/sbom.json b/frontend/sbom.json new file mode 100644 index 0000000..2f61ded --- /dev/null +++ b/frontend/sbom.json @@ -0,0 +1,2 @@ +{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"frontend@","documentNamespace":"https://snyk.io/spdx/sbom-69c55be9-aec4-4ba8-a243-1a92d8bffbb4","creationInfo":{"licenseListVersion":"3.19","creators":["Tool: Snyk SBOM Export API v1.102.1","Organization: Snyk","Tool: Snyk snyk-cli 1.1294.0"],"created":"2024-11-20T02:46:54Z"},"packages":[{"name":"frontend","SPDXID":"SPDXRef-1-frontend","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/frontend"}]},{"name":"@monaco-editor/react","SPDXID":"SPDXRef-2-monaco-editor-react-4.6.0","versionInfo":"4.6.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40monaco-editor/react@4.6.0"}]},{"name":"@radix-ui/react-tooltip","SPDXID":"SPDXRef-3-radix-ui-react-tooltip-1.1.3","versionInfo":"1.1.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40radix-ui/react-tooltip@1.1.3"}]},{"name":"js-yaml","SPDXID":"SPDXRef-4-js-yaml-4.1.0","versionInfo":"4.1.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/js-yaml@4.1.0"}]},{"name":"tailwindcss","SPDXID":"SPDXRef-5-tailwindcss-3.4.14","versionInfo":"3.4.14","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/tailwindcss@3.4.14"}]}],"relationships":[{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-1-frontend","relationshipType":"DESCRIBES"},{"spdxElementId":"SPDXRef-2-monaco-editor-react-4.6.0","relatedSpdxElement":"SPDXRef-1-frontend","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-3-radix-ui-react-tooltip-1.1.3","relatedSpdxElement":"SPDXRef-1-frontend","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-4-js-yaml-4.1.0","relatedSpdxElement":"SPDXRef-1-frontend","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-5-tailwindcss-3.4.14","relatedSpdxElement":"SPDXRef-1-frontend","relationshipType":"DEPENDENCY_OF"}]} + diff --git a/sbom.json b/sbom.json new file mode 100644 index 0000000..e52fbe2 --- /dev/null +++ b/sbom.json @@ -0,0 +1,2 @@ +{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"neon-hub-config@0.1.0","documentNamespace":"https://snyk.io/spdx/sbom-bea44667-da1f-4fe2-967a-e276b8524dc0","creationInfo":{"licenseListVersion":"3.19","creators":["Tool: Snyk SBOM Export API v1.102.1","Organization: Snyk","Tool: Snyk snyk-cli 1.1294.0"],"created":"2024-11-20T02:48:23Z"},"packages":[{"name":"neon-hub-config","SPDXID":"SPDXRef-1-neon-hub-config-0.1.0","versionInfo":"0.1.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/neon-hub-config@0.1.0"}]},{"name":"fastapi","SPDXID":"SPDXRef-2-fastapi-0.115.2","versionInfo":"0.115.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi@0.115.2"}]},{"name":"pydantic","SPDXID":"SPDXRef-3-pydantic-2.9.2","versionInfo":"2.9.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic@2.9.2"}]},{"name":"annotated-types","SPDXID":"SPDXRef-4-annotated-types-0.7.0","versionInfo":"0.7.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/annotated-types@0.7.0"}]},{"name":"pydantic-core","SPDXID":"SPDXRef-5-pydantic-core-2.23.4","versionInfo":"2.23.4","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-core@2.23.4"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-6-typing-extensions-4.12.2","versionInfo":"4.12.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-extensions@4.12.2"}]},{"name":"starlette","SPDXID":"SPDXRef-7-starlette-0.40.0","versionInfo":"0.40.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/starlette@0.40.0"}]},{"name":"anyio","SPDXID":"SPDXRef-8-anyio-4.6.2.post1","versionInfo":"4.6.2.post1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/anyio@4.6.2.post1"}]},{"name":"exceptiongroup","SPDXID":"SPDXRef-9-exceptiongroup-1.2.2","versionInfo":"1.2.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/exceptiongroup@1.2.2"}]},{"name":"idna","SPDXID":"SPDXRef-10-idna-3.10","versionInfo":"3.10","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/idna@3.10"}]},{"name":"sniffio","SPDXID":"SPDXRef-11-sniffio-1.3.1","versionInfo":"1.3.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sniffio@1.3.1"}]},{"name":"ovos-bus-client","SPDXID":"SPDXRef-12-ovos-bus-client-0.1.4","versionInfo":"0.1.4","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-bus-client@0.1.4"}]},{"name":"orjson","SPDXID":"SPDXRef-13-orjson-3.10.9","versionInfo":"3.10.9","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/orjson@3.10.9"}]},{"name":"ovos-config","SPDXID":"SPDXRef-14-ovos-config-0.4.3","versionInfo":"0.4.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-config@0.4.3"}]},{"name":"combo-lock","SPDXID":"SPDXRef-15-combo-lock-0.2.6","versionInfo":"0.2.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/combo-lock@0.2.6"}]},{"name":"filelock","SPDXID":"SPDXRef-16-filelock-3.16.1","versionInfo":"3.16.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/filelock@3.16.1"}]},{"name":"memory-tempfile","SPDXID":"SPDXRef-17-memory-tempfile-2.2.3","versionInfo":"2.2.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/memory-tempfile@2.2.3"}]},{"name":"ovos-utils","SPDXID":"SPDXRef-18-ovos-utils-0.3.5","versionInfo":"0.3.5","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-utils@0.3.5"}]},{"name":"json-database","SPDXID":"SPDXRef-19-json-database-0.7.0","versionInfo":"0.7.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/json-database@0.7.0"}]},{"name":"kthread","SPDXID":"SPDXRef-20-kthread-0.2.3","versionInfo":"0.2.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/kthread@0.2.3"}]},{"name":"langcodes","SPDXID":"SPDXRef-21-langcodes-3.4.1","versionInfo":"3.4.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/langcodes@3.4.1"}]},{"name":"language-data","SPDXID":"SPDXRef-22-language-data-1.2.0","versionInfo":"1.2.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/language-data@1.2.0"}]},{"name":"marisa-trie","SPDXID":"SPDXRef-23-marisa-trie-1.2.1","versionInfo":"1.2.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/marisa-trie@1.2.1"}]},{"name":"pexpect","SPDXID":"SPDXRef-24-pexpect-4.9.0","versionInfo":"4.9.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pexpect@4.9.0"}]},{"name":"ptyprocess","SPDXID":"SPDXRef-25-ptyprocess-0.7.0","versionInfo":"0.7.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ptyprocess@0.7.0"}]},{"name":"pyee","SPDXID":"SPDXRef-26-pyee-11.1.1","versionInfo":"11.1.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyee@11.1.1"}]},{"name":"requests","SPDXID":"SPDXRef-27-requests-2.32.3","versionInfo":"2.32.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/requests@2.32.3"}]},{"name":"certifi","SPDXID":"SPDXRef-28-certifi-2024.8.30","versionInfo":"2024.8.30","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/certifi@2024.8.30"}]},{"name":"charset-normalizer","SPDXID":"SPDXRef-29-charset-normalizer-3.4.0","versionInfo":"3.4.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/charset-normalizer@3.4.0"}]},{"name":"urllib3","SPDXID":"SPDXRef-30-urllib3-2.2.3","versionInfo":"2.2.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/urllib3@2.2.3"}]},{"name":"rich","SPDXID":"SPDXRef-31-rich-13.9.2","versionInfo":"13.9.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/rich@13.9.2"}]},{"name":"markdown-it-py","SPDXID":"SPDXRef-32-markdown-it-py-3.0.0","versionInfo":"3.0.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/markdown-it-py@3.0.0"}]},{"name":"mdurl","SPDXID":"SPDXRef-33-mdurl-0.1.2","versionInfo":"0.1.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mdurl@0.1.2"}]},{"name":"pygments","SPDXID":"SPDXRef-34-pygments-2.18.0","versionInfo":"2.18.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pygments@2.18.0"}]},{"name":"rich-click","SPDXID":"SPDXRef-35-rich-click-1.8.3","versionInfo":"1.8.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/rich-click@1.8.3"}]},{"name":"click","SPDXID":"SPDXRef-36-click-8.1.7","versionInfo":"8.1.7","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@8.1.7"}]},{"name":"colorama","SPDXID":"SPDXRef-37-colorama-0.4.6","versionInfo":"0.4.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/colorama@0.4.6"}]},{"name":"watchdog","SPDXID":"SPDXRef-38-watchdog-5.0.3","versionInfo":"5.0.3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/watchdog@5.0.3"}]},{"name":"python-dateutil","SPDXID":"SPDXRef-39-python-dateutil-2.9.0.post0","versionInfo":"2.9.0.post0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-dateutil@2.9.0.post0"}]},{"name":"six","SPDXID":"SPDXRef-40-six-1.16.0","versionInfo":"1.16.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/six@1.16.0"}]},{"name":"pyyaml","SPDXID":"SPDXRef-41-pyyaml-6.0.2","versionInfo":"6.0.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyyaml@6.0.2"}]},{"name":"websocket-client","SPDXID":"SPDXRef-42-websocket-client-1.8.0","versionInfo":"1.8.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/websocket-client@1.8.0"}]},{"name":"ovos-workshop","SPDXID":"SPDXRef-43-ovos-workshop-1.0.2","versionInfo":"1.0.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-workshop@1.0.2"}]},{"name":"ovos-backend-client","SPDXID":"SPDXRef-44-ovos-backend-client-1.0.0","versionInfo":"1.0.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-backend-client@1.0.0"}]},{"name":"oauthlib","SPDXID":"SPDXRef-45-oauthlib-3.2.2","versionInfo":"3.2.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/oauthlib@3.2.2"}]},{"name":"ovos-lingua-franca","SPDXID":"SPDXRef-46-ovos-lingua-franca-0.4.7","versionInfo":"0.4.7","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ovos-lingua-franca@0.4.7"}]},{"name":"colour","SPDXID":"SPDXRef-47-colour-0.1.5","versionInfo":"0.1.5","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/colour@0.1.5"}]},{"name":"quebra-frases","SPDXID":"SPDXRef-48-quebra-frases-0.3.7","versionInfo":"0.3.7","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/quebra-frases@0.3.7"}]},{"name":"regex","SPDXID":"SPDXRef-49-regex-2024.9.11","versionInfo":"2024.9.11","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/regex@2024.9.11"}]},{"name":"rapidfuzz","SPDXID":"SPDXRef-50-rapidfuzz-3.10.0","versionInfo":"3.10.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/rapidfuzz@3.10.0"}]},{"name":"webcolors","SPDXID":"SPDXRef-51-webcolors-24.8.0","versionInfo":"24.8.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/webcolors@24.8.0"}]},{"name":"padacioso","SPDXID":"SPDXRef-52-padacioso-1.0.0","versionInfo":"1.0.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/padacioso@1.0.0"}]},{"name":"simplematch","SPDXID":"SPDXRef-53-simplematch-1.4","versionInfo":"1.4","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/simplematch@1.4"}]},{"name":"uvicorn","SPDXID":"SPDXRef-54-uvicorn-0.32.0","versionInfo":"0.32.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uvicorn@0.32.0"}]},{"name":"h11","SPDXID":"SPDXRef-55-h11-0.14.0","versionInfo":"0.14.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/h11@0.14.0"}]},{"name":"ruamel-yaml","SPDXID":"SPDXRef-56-ruamel-yaml-0.18.6","versionInfo":"0.18.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ruamel-yaml@0.18.6"}]}],"relationships":[{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DESCRIBES"},{"spdxElementId":"SPDXRef-2-fastapi-0.115.2","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-12-ovos-bus-client-0.1.4","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-43-ovos-workshop-1.0.2","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-18-ovos-utils-0.3.5","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-54-uvicorn-0.32.0","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-19-json-database-0.7.0","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-56-ruamel-yaml-0.18.6","relatedSpdxElement":"SPDXRef-1-neon-hub-config-0.1.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-3-pydantic-2.9.2","relatedSpdxElement":"SPDXRef-2-fastapi-0.115.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-7-starlette-0.40.0","relatedSpdxElement":"SPDXRef-2-fastapi-0.115.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-2-fastapi-0.115.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-4-annotated-types-0.7.0","relatedSpdxElement":"SPDXRef-3-pydantic-2.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-5-pydantic-core-2.23.4","relatedSpdxElement":"SPDXRef-3-pydantic-2.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-3-pydantic-2.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-5-pydantic-core-2.23.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-8-anyio-4.6.2.post1","relatedSpdxElement":"SPDXRef-7-starlette-0.40.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-7-starlette-0.40.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-9-exceptiongroup-1.2.2","relatedSpdxElement":"SPDXRef-8-anyio-4.6.2.post1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-10-idna-3.10","relatedSpdxElement":"SPDXRef-8-anyio-4.6.2.post1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-11-sniffio-1.3.1","relatedSpdxElement":"SPDXRef-8-anyio-4.6.2.post1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-8-anyio-4.6.2.post1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-13-orjson-3.10.9","relatedSpdxElement":"SPDXRef-12-ovos-bus-client-0.1.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-14-ovos-config-0.4.3","relatedSpdxElement":"SPDXRef-12-ovos-bus-client-0.1.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-18-ovos-utils-0.3.5","relatedSpdxElement":"SPDXRef-12-ovos-bus-client-0.1.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-26-pyee-11.1.1","relatedSpdxElement":"SPDXRef-12-ovos-bus-client-0.1.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-42-websocket-client-1.8.0","relatedSpdxElement":"SPDXRef-12-ovos-bus-client-0.1.4","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-15-combo-lock-0.2.6","relatedSpdxElement":"SPDXRef-14-ovos-config-0.4.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-18-ovos-utils-0.3.5","relatedSpdxElement":"SPDXRef-14-ovos-config-0.4.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-39-python-dateutil-2.9.0.post0","relatedSpdxElement":"SPDXRef-14-ovos-config-0.4.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-41-pyyaml-6.0.2","relatedSpdxElement":"SPDXRef-14-ovos-config-0.4.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-35-rich-click-1.8.3","relatedSpdxElement":"SPDXRef-14-ovos-config-0.4.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-16-filelock-3.16.1","relatedSpdxElement":"SPDXRef-15-combo-lock-0.2.6","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-17-memory-tempfile-2.2.3","relatedSpdxElement":"SPDXRef-15-combo-lock-0.2.6","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-15-combo-lock-0.2.6","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-19-json-database-0.7.0","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-20-kthread-0.2.3","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-21-langcodes-3.4.1","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-13-orjson-3.10.9","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-24-pexpect-4.9.0","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-26-pyee-11.1.1","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-27-requests-2.32.3","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-31-rich-13.9.2","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-35-rich-click-1.8.3","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-38-watchdog-5.0.3","relatedSpdxElement":"SPDXRef-18-ovos-utils-0.3.5","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-15-combo-lock-0.2.6","relatedSpdxElement":"SPDXRef-19-json-database-0.7.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-22-language-data-1.2.0","relatedSpdxElement":"SPDXRef-21-langcodes-3.4.1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-23-marisa-trie-1.2.1","relatedSpdxElement":"SPDXRef-22-language-data-1.2.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-25-ptyprocess-0.7.0","relatedSpdxElement":"SPDXRef-24-pexpect-4.9.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-26-pyee-11.1.1","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-28-certifi-2024.8.30","relatedSpdxElement":"SPDXRef-27-requests-2.32.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-29-charset-normalizer-3.4.0","relatedSpdxElement":"SPDXRef-27-requests-2.32.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-10-idna-3.10","relatedSpdxElement":"SPDXRef-27-requests-2.32.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-30-urllib3-2.2.3","relatedSpdxElement":"SPDXRef-27-requests-2.32.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-32-markdown-it-py-3.0.0","relatedSpdxElement":"SPDXRef-31-rich-13.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-34-pygments-2.18.0","relatedSpdxElement":"SPDXRef-31-rich-13.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-31-rich-13.9.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-33-mdurl-0.1.2","relatedSpdxElement":"SPDXRef-32-markdown-it-py-3.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-36-click-8.1.7","relatedSpdxElement":"SPDXRef-35-rich-click-1.8.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-31-rich-13.9.2","relatedSpdxElement":"SPDXRef-35-rich-click-1.8.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-35-rich-click-1.8.3","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-37-colorama-0.4.6","relatedSpdxElement":"SPDXRef-36-click-8.1.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-40-six-1.16.0","relatedSpdxElement":"SPDXRef-39-python-dateutil-2.9.0.post0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-21-langcodes-3.4.1","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-44-ovos-backend-client-1.0.0","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-12-ovos-bus-client-0.1.4","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-14-ovos-config-0.4.3","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-46-ovos-lingua-franca-0.4.7","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-18-ovos-utils-0.3.5","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-52-padacioso-1.0.0","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-50-rapidfuzz-3.10.0","relatedSpdxElement":"SPDXRef-43-ovos-workshop-1.0.2","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-19-json-database-0.7.0","relatedSpdxElement":"SPDXRef-44-ovos-backend-client-1.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-45-oauthlib-3.2.2","relatedSpdxElement":"SPDXRef-44-ovos-backend-client-1.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-14-ovos-config-0.4.3","relatedSpdxElement":"SPDXRef-44-ovos-backend-client-1.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-18-ovos-utils-0.3.5","relatedSpdxElement":"SPDXRef-44-ovos-backend-client-1.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-47-colour-0.1.5","relatedSpdxElement":"SPDXRef-46-ovos-lingua-franca-0.4.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-39-python-dateutil-2.9.0.post0","relatedSpdxElement":"SPDXRef-46-ovos-lingua-franca-0.4.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-48-quebra-frases-0.3.7","relatedSpdxElement":"SPDXRef-46-ovos-lingua-franca-0.4.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-50-rapidfuzz-3.10.0","relatedSpdxElement":"SPDXRef-46-ovos-lingua-franca-0.4.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-51-webcolors-24.8.0","relatedSpdxElement":"SPDXRef-46-ovos-lingua-franca-0.4.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-49-regex-2024.9.11","relatedSpdxElement":"SPDXRef-48-quebra-frases-0.3.7","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-53-simplematch-1.4","relatedSpdxElement":"SPDXRef-52-padacioso-1.0.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-36-click-8.1.7","relatedSpdxElement":"SPDXRef-54-uvicorn-0.32.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-55-h11-0.14.0","relatedSpdxElement":"SPDXRef-54-uvicorn-0.32.0","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-6-typing-extensions-4.12.2","relatedSpdxElement":"SPDXRef-54-uvicorn-0.32.0","relationshipType":"DEPENDENCY_OF"}]} +