diff --git a/.env.example b/.env.example index 008adefe..4e0fc4c7 100644 --- a/.env.example +++ b/.env.example @@ -79,11 +79,25 @@ SIGNED_URL_EXPIRY_MINUTES=30 RUNPOD_API_KEY=your-runpod-api-key RUNPOD_ENDPOINT_ID=your-runpod-endpoint-id -# Sunflower chat/inference endpoint (RunPod, OpenAI-compatible). -# SUNFLOWER_ENDPOINT_ID is preferred; if unset, the app falls back to the -# legacy QWEN_ENDPOINT_ID so existing deployments keep working. -# SUNFLOWER_ENDPOINT_ID=your-sunflower-endpoint-id -# QWEN_ENDPOINT_ID=your-legacy-endpoint-id # deprecated alias, still honored +# Sunflower chat/inference endpoints (RunPod, OpenAI-compatible). +# The /tasks/chat/completions endpoint serves two models: +# - sunflower-14b (default) -> SUNFLOWER_14B_ENDPOINT_ID +# - sunflower-9b -> SUNFLOWER_9B_ENDPOINT_ID +# +# For sunflower-14b the app resolves the endpoint id in this order: +# SUNFLOWER_14B_ENDPOINT_ID -> SUNFLOWER_ENDPOINT_ID -> QWEN_ENDPOINT_ID +# so existing single-model deployments keep working with no config change. +# SUNFLOWER_14B_ENDPOINT_ID=your-sunflower-14b-endpoint-id +# SUNFLOWER_9B_ENDPOINT_ID=your-sunflower-9b-endpoint-id +# SUNFLOWER_ENDPOINT_ID=your-sunflower-endpoint-id # legacy 14B id, still honored +# QWEN_ENDPOINT_ID=your-legacy-endpoint-id # deprecated alias, still honored +# +# Optional: override the upstream served `model=` name per endpoint. These must +# match each RunPod endpoint's --served-model-name. Defaults are the short names +# below (what the deployed endpoints serve); override only if an endpoint serves +# a different name. +# SUNFLOWER_14B_MODEL_NAME=sunflower-14b +# SUNFLOWER_9B_MODEL_NAME=sunflower-9b # ---------------------------------------------------------------------------- # Rate Limiting diff --git a/.github/workflows/deploy-api.yml b/.github/workflows/deploy-api.yml index bcac0243..4fb2b2b0 100644 --- a/.github/workflows/deploy-api.yml +++ b/.github/workflows/deploy-api.yml @@ -56,3 +56,11 @@ jobs: image: ${{ secrets.GCP_REGION }}-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_PROJECT_REPO }}/${{ secrets.APP_NAME }}:${{ github.sha }} region: ${{ secrets.GCP_REGION }} project_id: ${{ secrets.GCP_PROJECT_ID }} + # Sunflower chat/completions endpoints. `merge` preserves all other + # env vars already configured on the Cloud Run service; it only + # adds/updates the keys listed here. Set these two values as GitHub + # Actions repository secrets (RunPod serverless endpoint IDs). + env_vars_update_strategy: merge + env_vars: |- + SUNFLOWER_14B_ENDPOINT_ID=${{ secrets.SUNFLOWER_14B_ENDPOINT_ID }} + SUNFLOWER_9B_ENDPOINT_ID=${{ secrets.SUNFLOWER_9B_ENDPOINT_ID }} diff --git a/.gitignore b/.gitignore index 99f97112..63309b89 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,7 @@ dynamodb_exports/ bin/runpod-modal-usage.md bin/show-charges-vastai.md bin/Runpod-State-of-AI-dark.pdf +endpoint_usage.csv +user_usage.csv +users_organizations.csv +api_user_usage.md diff --git a/app/docs.py b/app/docs.py index c1760974..f7439c38 100644 --- a/app/docs.py +++ b/app/docs.py @@ -76,9 +76,18 @@ - `GET /tasks/modal/tts/refresh-url` → `GET /tasks/audio/speech/url` ### Inference (Sunflower Chat) -- **`POST /tasks/chat/completions`** - OpenAI-compatible chat completions (Sunflower model). +- **`POST /tasks/chat/completions`** - OpenAI-compatible chat completions (Sunflower models). Supports single instructions, multi-turn conversations, and SSE streaming (`stream: true`). - Use model `Sunbird/Sunflower-14B`. + - Select a model with the `model` field: + - **`sunflower-14b`** (default) — Sunbird's flagship 14B model. Covers **English + plus 31 Ugandan and regional languages** (32 total). Best for high-accuracy + translation, factual Q&A, summarization, and explanation across Ugandan languages. + - **`sunflower-9b`** — broader pan-African coverage: **67 African languages** across + good/moderate/basic tiers. Optimized for translation, instruction-following, and + multi-turn chat. + - `sunflower-14b` is the default when `model` is omitted. The old identifier + `Sunbird/Sunflower-14B` is **no longer accepted** — requests using it return + `400` with a message to use `sunflower-14b` instead. - **Deprecated** → superseded by the unified endpoint above: - `POST /tasks/sunflower_inference` → `POST /tasks/chat/completions` - `POST /tasks/sunflower_simple` → `POST /tasks/chat/completions` (send the instruction as a single user message) @@ -123,7 +132,7 @@ }, { "name": "Chat", - "description": "OpenAI-compatible chat completions powered by the Sunflower model. Supports single instructions, multi-turn conversations, and SSE streaming.", # noqa: E501 + "description": "OpenAI-compatible chat completions powered by Sunbird's Sunflower models. Choose `sunflower-14b` (default; English + 31 Ugandan/regional languages) or `sunflower-9b` (67 African languages). The old `Sunbird/Sunflower-14B` identifier is no longer accepted — use `sunflower-14b`. Supports single instructions, multi-turn conversations, and SSE streaming.", # noqa: E501 }, { "name": "Upload", diff --git a/app/routers/chat.py b/app/routers/chat.py index a4b22f61..e52548c3 100644 --- a/app/routers/chat.py +++ b/app/routers/chat.py @@ -33,6 +33,7 @@ ) from app.deps import CurrentUserDep, DbDep, InferenceServiceDep, QuotaServiceDep from app.schemas.chat import ( + RENAMED_MODELS, SUPPORTED_MODELS, ChatCompletionChoice, ChatCompletionChunk, @@ -42,6 +43,7 @@ ChatCompletionResponse, ChatCompletionResponseMessage, ChatCompletionUsage, + resolve_model, ) from app.services.inference_service import ( InferenceService, @@ -56,10 +58,6 @@ router = APIRouter() -# RunPod endpoint key that serves Sunbird/Sunflower-14B (see -# InferenceService.endpoints). -INTERNAL_MODEL_TYPE = "qwen" - def _completion_id() -> str: """Generate an OpenAI-style completion id.""" @@ -80,15 +78,30 @@ def _prepare_messages(chat_request: ChatCompletionRequest) -> List[Dict[str, str def _validate_model(chat_request: ChatCompletionRequest) -> None: - """Strict model validation: only models in SUPPORTED_MODELS are accepted.""" - if chat_request.model not in SUPPORTED_MODELS: + """Reject models not in the registry. + + A renamed identifier (e.g. the old ``Sunbird/Sunflower-14B``) gets a + targeted error pointing the client at its replacement name. + """ + if resolve_model(chat_request.model) is not None: + return + + replacement = RENAMED_MODELS.get(chat_request.model) + if replacement is not None: raise BadRequestError( message=( - f"Model '{chat_request.model}' is not supported. " - f"Supported models: {', '.join(SUPPORTED_MODELS)}" + f"Model '{chat_request.model}' is no longer accepted. " + f"Use '{replacement}' as the model instead." ) ) + raise BadRequestError( + message=( + f"Model '{chat_request.model}' is not supported. " + f"Supported models: {', '.join(SUPPORTED_MODELS)}" + ) + ) + @router.post( "/chat/completions", @@ -139,12 +152,13 @@ async def _create_chat_completion( ) -> ChatCompletionResponse: """Non-streaming path: run inference and build a chat.completion object.""" start_time = time.time() + model_key = resolve_model(chat_request.model) try: result = await run_in_threadpool( lambda: service.run_inference( messages=messages, - model_type=INTERNAL_MODEL_TYPE, + model_type=model_key, temperature=chat_request.temperature, max_tokens=chat_request.max_tokens, top_p=chat_request.top_p, @@ -377,10 +391,11 @@ async def _stream_chat_completion( completion_id = _completion_id() created = int(time.time()) start_time = time.time() + model_key = resolve_model(chat_request.model) stream_gen = service.run_inference_stream( messages=messages, - model_type=INTERNAL_MODEL_TYPE, + model_type=model_key, temperature=chat_request.temperature, max_tokens=chat_request.max_tokens, top_p=chat_request.top_p, diff --git a/app/schemas/chat.py b/app/schemas/chat.py index 8716ef24..ed25e031 100644 --- a/app/schemas/chat.py +++ b/app/schemas/chat.py @@ -13,11 +13,23 @@ from pydantic import BaseModel, Field, field_validator -# The only model served today. The legacy "qwen" alias is accepted solely by -# the deprecated /tasks/sunflower_* endpoints. -SUPPORTED_MODELS = ("Sunbird/Sunflower-14B",) +# Public model names accepted in the `model` field. +SUPPORTED_MODELS = ("sunflower-14b", "sunflower-9b") -DEFAULT_MODEL = SUPPORTED_MODELS[0] +DEFAULT_MODEL = "sunflower-14b" + +# Old identifiers that are no longer accepted, mapped to the name that +# replaces them. Used only to return a helpful error pointing the client at +# the new name (these do NOT resolve to a usable model). +RENAMED_MODELS = {"Sunbird/Sunflower-14B": "sunflower-14b"} + + +def resolve_model(name: str) -> Optional[str]: + """Resolve a requested model name to its canonical name. + + Returns None if the model is not recognised. No aliases are applied. + """ + return name if name in SUPPORTED_MODELS else None class ChatMessage(BaseModel): @@ -120,6 +132,8 @@ class ChatCompletionChunk(BaseModel): __all__ = [ "SUPPORTED_MODELS", "DEFAULT_MODEL", + "RENAMED_MODELS", + "resolve_model", "ChatMessage", "ChatCompletionRequest", "ChatCompletionResponseMessage", diff --git a/app/services/inference_service.py b/app/services/inference_service.py index efbacfa5..93cfa692 100644 --- a/app/services/inference_service.py +++ b/app/services/inference_service.py @@ -494,27 +494,44 @@ def __init__( super().__init__() self.runpod_api_key = runpod_api_key or os.getenv("RUNPOD_API_KEY") - # Prefer the new SUNFLOWER_ENDPOINT_ID; fall back to the legacy - # QWEN_ENDPOINT_ID so existing production environments keep working. + # Prefer the new SUNFLOWER_14B_ENDPOINT_ID; fall back to the legacy + # SUNFLOWER_ENDPOINT_ID / QWEN_ENDPOINT_ID so existing production + # environments keep working with no config change. self.sunflower_endpoint_id = ( sunflower_endpoint_id or qwen_endpoint_id + or os.getenv("SUNFLOWER_14B_ENDPOINT_ID") or os.getenv("SUNFLOWER_ENDPOINT_ID") or os.getenv("QWEN_ENDPOINT_ID") ) # Backward-compatible attribute alias (some callers/tests read this). self.qwen_endpoint_id = self.sunflower_endpoint_id - # Single shared config; expose under both the canonical "sunflower" - # key and the legacy "qwen" alias so existing internal routes and - # OpenAI-compatible clients that send model="qwen" keep working. - sunflower_config = { + self.sunflower_9b_endpoint_id = os.getenv("SUNFLOWER_9B_ENDPOINT_ID") + + # Upstream served model names (the `model=` value vLLM expects). These + # must match each RunPod endpoint's `--served-model-name`. The deployed + # endpoints serve the short names (see docs/sunflower-multi-models.md); + # override per endpoint via env if a deployment serves a different name. + sunflower_14b_model_name = os.getenv( + "SUNFLOWER_14B_MODEL_NAME", "sunflower-14b" + ) + sunflower_9b_model_name = os.getenv("SUNFLOWER_9B_MODEL_NAME", "sunflower-9b") + + sunflower_14b_config = { "endpoint_id": self.sunflower_endpoint_id, - "model_name": "Sunbird/Sunflower-14B", + "model_name": sunflower_14b_model_name, } self.endpoints = { - "sunflower": sunflower_config, - "qwen": sunflower_config, + "sunflower-14b": sunflower_14b_config, + "sunflower-9b": { + "endpoint_id": self.sunflower_9b_endpoint_id, + "model_name": sunflower_9b_model_name, + }, + # Legacy internal aliases -> 14B (translation service, older + # callers, and OpenAI clients sending model="qwen"). + "sunflower": sunflower_14b_config, + "qwen": sunflower_14b_config, } if not self.runpod_api_key: diff --git a/app/static/react_build/assets/index-6CbN5_w4.css b/app/static/react_build/assets/index-6CbN5_w4.css new file mode 100644 index 00000000..a7ef5e67 --- /dev/null +++ b/app/static/react_build/assets/index-6CbN5_w4.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--black: 240, 10%, 4%;--secondary: 240, 5%, 8% }.dark{--background: 0 0% 0%;--foreground: 210 40% 98%;--secondary: 240 5% 8%;--border: 240 5% 15%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-full{left:100%}.right-0{right:0}.right-3{right:.75rem}.right-full{right:100%}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-24{top:6rem}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.h-full{height:100%}.h-px{height:1px}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[240px\]{min-width:240px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-primary-200{--tw-border-opacity: 1;border-color:rgb(250 208 165 / var(--tw-border-opacity, 1))}.border-primary-500{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.border-primary-500\/20{border-color:#ef682033}.border-primary-600{--tw-border-opacity: 1;border-color:rgb(220 120 40 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-r-gray-900{--tw-border-opacity: 1;border-right-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:hsl(var(--black) / .5)}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-neutral-200{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-primary-100{--tw-bg-opacity: 1;background-color:rgb(253 233 211 / var(--tw-bg-opacity, 1))}.bg-primary-50{--tw-bg-opacity: 1;background-color:rgb(254 246 238 / var(--tw-bg-opacity, 1))}.bg-primary-50\/60{background-color:#fef6ee99}.bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.bg-primary-500\/10{background-color:#ef68201a}.bg-primary-500\/15{background-color:#ef682026}.bg-primary-600{--tw-bg-opacity: 1;background-color:rgb(220 120 40 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-teal-500{--tw-bg-opacity: 1;background-color:rgb(20 184 166 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/80{background-color:#fffc}.bg-opacity-10{--tw-bg-opacity: .1}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-primary-50{--tw-gradient-from: #fef6ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 246 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-500\/10{--tw-gradient-from: rgb(239 104 32 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 104 32 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-primary-100\/40{--tw-gradient-to: rgb(253 233 211 / .4) var(--tw-gradient-to-position)}.to-primary-500\/5{--tw-gradient-to: rgb(239 104 32 / .05) var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-16{padding-bottom:4rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-primary-500{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity: 1;color:rgb(220 120 40 / var(--tw-text-opacity, 1))}.text-primary-700{--tw-text-opacity: 1;color:rgb(184 83 26 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary-500\/20{--tw-shadow-color: rgb(239 104 32 / .2);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:is(.dark *){background-color:hsl(var(--black));--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}body{font-family:Google Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.selection\:bg-primary-500 *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500 *::selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-primary-500::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500::selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;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))}.hover\:border-primary-500:hover{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.hover\:border-primary-500\/20:hover{border-color:#ef682033}.hover\:border-primary-500\/30:hover{border-color:#ef68204d}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-500:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-700:hover{--tw-bg-opacity: 1;background-color:rgb(184 83 26 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-primary-500:hover{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.hover\:text-primary-600:hover{--tw-text-opacity: 1;color:rgb(220 120 40 / var(--tw-text-opacity, 1))}.hover\:text-primary-700:hover{--tw-text-opacity: 1;color:rgb(184 83 26 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-primary-500\/30:hover{--tw-shadow-color: rgb(239 104 32 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1: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(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\: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-primary-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 104 32 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;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))}.group:hover .group-hover\:border-primary-500{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:text-primary-500{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-primary-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(147 66 27 / var(--tw-border-opacity, 1))}.dark\:border-primary-900\/40:is(.dark *){border-color:#77381a66}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/5:is(.dark *){border-color:#ffffff0d}.dark\:border-r-white:is(.dark *){--tw-border-opacity: 1;border-right-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-black:is(.dark *){background-color:hsl(var(--black))}.dark\:bg-black\/20:is(.dark *){background-color:hsl(var(--black) / .2)}.dark\:bg-black\/30:is(.dark *){background-color:hsl(var(--black) / .3)}.dark\:bg-black\/50:is(.dark *){background-color:hsl(var(--black) / .5)}.dark\:bg-black\/80:is(.dark *){background-color:hsl(var(--black) / .8)}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900\/20:is(.dark *){background-color:#11182733}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-primary-900\/10:is(.dark *){background-color:#77381a1a}.dark\:bg-primary-900\/20:is(.dark *){background-color:#77381a33}.dark\:bg-primary-900\/30:is(.dark *){background-color:#77381a4d}.dark\:bg-primary-900\/40:is(.dark *){background-color:#77381a66}.dark\:bg-primary-900\/50:is(.dark *){background-color:#77381a80}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-secondary:is(.dark *){background-color:hsl(var(--secondary))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}.dark\:bg-white\/5:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.02\]:is(.dark *){background-color:#ffffff05}.dark\:bg-opacity-20:is(.dark *){--tw-bg-opacity: .2}.dark\:from-primary-900\/20:is(.dark *){--tw-gradient-from: rgb(119 56 26 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(119 56 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-primary-900\/5:is(.dark *){--tw-gradient-to: rgb(119 56 26 / .05) var(--tw-gradient-to-position)}.dark\:text-amber-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-200\/90:is(.dark *){color:#fde68ae6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){color:hsl(var(--black))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity: 1;color:rgb(246 174 109 / var(--tw-text-opacity, 1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity: 1;color:rgb(242 132 51 / var(--tw-text-opacity, 1))}.dark\:text-primary-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:placeholder-gray-600:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity, 1))}.dark\:placeholder-gray-600:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity, 1))}.dark\:shadow-lg:is(.dark *){--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)}.dark\:shadow-md:is(.dark *){--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)}.dark\:shadow-black\/10:is(.dark *){--tw-shadow-color: hsl(var(--black) / .1);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-black\/20:is(.dark *){--tw-shadow-color: hsl(var(--black) / .2);--tw-shadow: var(--tw-shadow-colored)}.dark\:hover\:border-primary-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.dark\:hover\:border-primary-500\/50:hover:is(.dark *){border-color:#ef682080}.dark\:hover\:bg-gray-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:hover\:text-primary-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(246 174 109 / var(--tw-text-opacity, 1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(242 132 51 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:block{display:block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-24{padding-bottom:6rem}.sm\:pt-40{padding-top:10rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media(min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-64{width:16rem}.md\:w-72{width:18rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:ml-20{margin-left:5rem}.lg\:ml-64{margin-left:16rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x: 0px;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))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pb-32{padding-bottom:8rem}.lg\:pl-20{padding-left:5rem}.lg\:pl-64{padding-left:16rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/app/static/react_build/assets/index-BCYAYHKo.css b/app/static/react_build/assets/index-BCYAYHKo.css deleted file mode 100644 index 5d7bc6f8..00000000 --- a/app/static/react_build/assets/index-BCYAYHKo.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;600;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--black: 240, 10%, 4%;--secondary: 240, 5%, 8% }.dark{--background: 0 0% 0%;--foreground: 210 40% 98%;--secondary: 240 5% 8%;--border: 240 5% 15%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-full{left:100%}.right-0{right:0}.right-3{right:.75rem}.right-full{right:100%}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-24{top:6rem}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.h-full{height:100%}.h-px{height:1px}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[240px\]{min-width:240px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-primary-200{--tw-border-opacity: 1;border-color:rgb(250 208 165 / var(--tw-border-opacity, 1))}.border-primary-500{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.border-primary-500\/20{border-color:#ef682033}.border-primary-600{--tw-border-opacity: 1;border-color:rgb(220 120 40 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-r-gray-900{--tw-border-opacity: 1;border-right-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:hsl(var(--black) / .5)}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-neutral-200{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-primary-100{--tw-bg-opacity: 1;background-color:rgb(253 233 211 / var(--tw-bg-opacity, 1))}.bg-primary-50{--tw-bg-opacity: 1;background-color:rgb(254 246 238 / var(--tw-bg-opacity, 1))}.bg-primary-50\/60{background-color:#fef6ee99}.bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.bg-primary-500\/10{background-color:#ef68201a}.bg-primary-500\/15{background-color:#ef682026}.bg-primary-600{--tw-bg-opacity: 1;background-color:rgb(220 120 40 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-teal-500{--tw-bg-opacity: 1;background-color:rgb(20 184 166 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/80{background-color:#fffc}.bg-opacity-10{--tw-bg-opacity: .1}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-primary-50{--tw-gradient-from: #fef6ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 246 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-500\/10{--tw-gradient-from: rgb(239 104 32 / .1) var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 104 32 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-primary-100\/40{--tw-gradient-to: rgb(253 233 211 / .4) var(--tw-gradient-to-position)}.to-primary-500\/5{--tw-gradient-to: rgb(239 104 32 / .05) var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-16{padding-bottom:4rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-12{padding-right:3rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.9em\]{font-size:.9em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-primary-500{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity: 1;color:rgb(220 120 40 / var(--tw-text-opacity, 1))}.text-primary-700{--tw-text-opacity: 1;color:rgb(184 83 26 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary-500\/20{--tw-shadow-color: rgb(239 104 32 / .2);--tw-shadow: var(--tw-shadow-colored)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:is(.dark *){background-color:hsl(var(--black));--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}body{font-family:Google Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.selection\:bg-primary-500 *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500 *::selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-primary-500::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500::selection{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;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))}.hover\:border-primary-500:hover{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.hover\:border-primary-500\/20:hover{border-color:#ef682033}.hover\:border-primary-500\/30:hover{border-color:#ef68204d}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-500:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-700:hover{--tw-bg-opacity: 1;background-color:rgb(184 83 26 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-primary-500:hover{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.hover\:text-primary-600:hover{--tw-text-opacity: 1;color:rgb(220 120 40 / var(--tw-text-opacity, 1))}.hover\:text-primary-700:hover{--tw-text-opacity: 1;color:rgb(184 83 26 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-primary-500\/30:hover{--tw-shadow-color: rgb(239 104 32 / .3);--tw-shadow: var(--tw-shadow-colored)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1: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(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\: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-primary-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 104 32 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;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))}.group:hover .group-hover\:border-primary-500{--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:text-primary-500{--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-800\/40:is(.dark *){border-color:#92400e66}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-primary-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(147 66 27 / var(--tw-border-opacity, 1))}.dark\:border-primary-900\/40:is(.dark *){border-color:#77381a66}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/5:is(.dark *){border-color:#ffffff0d}.dark\:border-r-white:is(.dark *){--tw-border-opacity: 1;border-right-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-black:is(.dark *){background-color:hsl(var(--black))}.dark\:bg-black\/20:is(.dark *){background-color:hsl(var(--black) / .2)}.dark\:bg-black\/30:is(.dark *){background-color:hsl(var(--black) / .3)}.dark\:bg-black\/50:is(.dark *){background-color:hsl(var(--black) / .5)}.dark\:bg-black\/80:is(.dark *){background-color:hsl(var(--black) / .8)}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900\/20:is(.dark *){background-color:#11182733}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-primary-900\/10:is(.dark *){background-color:#77381a1a}.dark\:bg-primary-900\/20:is(.dark *){background-color:#77381a33}.dark\:bg-primary-900\/30:is(.dark *){background-color:#77381a4d}.dark\:bg-primary-900\/40:is(.dark *){background-color:#77381a66}.dark\:bg-primary-900\/50:is(.dark *){background-color:#77381a80}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-secondary:is(.dark *){background-color:hsl(var(--secondary))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-white:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}.dark\:bg-white\/5:is(.dark *){background-color:#ffffff0d}.dark\:bg-white\/\[0\.02\]:is(.dark *){background-color:#ffffff05}.dark\:bg-opacity-20:is(.dark *){--tw-bg-opacity: .2}.dark\:from-primary-900\/20:is(.dark *){--tw-gradient-from: rgb(119 56 26 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(119 56 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-primary-900\/5:is(.dark *){--tw-gradient-to: rgb(119 56 26 / .05) var(--tw-gradient-to-position)}.dark\:text-amber-100:is(.dark *){--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-amber-200\/90:is(.dark *){color:#fde68ae6}.dark\:text-amber-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-black:is(.dark *){color:hsl(var(--black))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity: 1;color:rgb(246 174 109 / var(--tw-text-opacity, 1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity: 1;color:rgb(242 132 51 / var(--tw-text-opacity, 1))}.dark\:text-primary-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 104 32 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:placeholder-gray-600:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity, 1))}.dark\:placeholder-gray-600:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity, 1))}.dark\:shadow-lg:is(.dark *){--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)}.dark\:shadow-md:is(.dark *){--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)}.dark\:shadow-black\/10:is(.dark *){--tw-shadow-color: hsl(var(--black) / .1);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-black\/20:is(.dark *){--tw-shadow-color: hsl(var(--black) / .2);--tw-shadow: var(--tw-shadow-colored)}.dark\:hover\:border-primary-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 104 32 / var(--tw-border-opacity, 1))}.dark\:hover\:border-primary-500\/50:hover:is(.dark *){border-color:#ef682080}.dark\:hover\:bg-gray-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(239 104 32 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:hover\:text-primary-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(246 174 109 / var(--tw-text-opacity, 1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(242 132 51 / var(--tw-text-opacity, 1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:block{display:block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-24{padding-bottom:6rem}.sm\:pt-40{padding-top:10rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media(min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-64{width:16rem}.md\:w-72{width:18rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:ml-20{margin-left:5rem}.lg\:ml-64{margin-left:16rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:translate-x-0{--tw-translate-x: 0px;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))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pb-32{padding-bottom:8rem}.lg\:pl-20{padding-left:5rem}.lg\:pl-64{padding-left:16rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-7xl{font-size:4.5rem;line-height:1}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/app/static/react_build/assets/index-Sk8NKe7P.js b/app/static/react_build/assets/index-DzWNs9MT.js similarity index 86% rename from app/static/react_build/assets/index-Sk8NKe7P.js rename to app/static/react_build/assets/index-DzWNs9MT.js index 4d1786d8..cc5f9303 100644 --- a/app/static/react_build/assets/index-Sk8NKe7P.js +++ b/app/static/react_build/assets/index-DzWNs9MT.js @@ -1,4 +1,4 @@ -var b_=Object.defineProperty;var v_=(e,t,n)=>t in e?b_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Z=(e,t,n)=>v_(e,typeof t!="symbol"?t+"":t,n);function w_(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Gb(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qb={exports:{}},Yc={},Kb={exports:{}},de={};/** +var b_=Object.defineProperty;var v_=(e,t,n)=>t in e?b_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Z=(e,t,n)=>v_(e,typeof t!="symbol"?t+"":t,n);function w_(e,t){for(var n=0;nr[s]})}}}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 s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Gb(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qb={exports:{}},Xc={},Kb={exports:{}},de={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var b_=Object.defineProperty;var v_=(e,t,n)=>t in e?b_(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Ca=Symbol.for("react.element"),k_=Symbol.for("react.portal"),S_=Symbol.for("react.fragment"),__=Symbol.for("react.strict_mode"),j_=Symbol.for("react.profiler"),C_=Symbol.for("react.provider"),N_=Symbol.for("react.context"),P_=Symbol.for("react.forward_ref"),R_=Symbol.for("react.suspense"),E_=Symbol.for("react.memo"),T_=Symbol.for("react.lazy"),am=Symbol.iterator;function A_(e){return e===null||typeof e!="object"?null:(e=am&&e[am]||e["@@iterator"],typeof e=="function"?e:null)}var Yb={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Xb=Object.assign,Qb={};function Bo(e,t,n){this.props=e,this.context=t,this.refs=Qb,this.updater=n||Yb}Bo.prototype.isReactComponent={};Bo.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")};Bo.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Jb(){}Jb.prototype=Bo.prototype;function ep(e,t,n){this.props=e,this.context=t,this.refs=Qb,this.updater=n||Yb}var tp=ep.prototype=new Jb;tp.constructor=ep;Xb(tp,Bo.prototype);tp.isPureReactComponent=!0;var lm=Array.isArray,Zb=Object.prototype.hasOwnProperty,np={current:null},ev={key:!0,ref:!0,__self:!0,__source:!0};function tv(e,t,n){var r,s={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)Zb.call(t,r)&&!ev.hasOwnProperty(r)&&(s[r]=t[r]);var a=arguments.length-2;if(a===1)s.children=n;else if(1t in e?b_(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var F_=S,z_=Symbol.for("react.element"),V_=Symbol.for("react.fragment"),B_=Object.prototype.hasOwnProperty,$_=F_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H_={key:!0,ref:!0,__self:!0,__source:!0};function rv(e,t,n){var r,s={},o=null,i=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)B_.call(t,r)&&!H_.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:z_,type:e,key:o,ref:i,props:s,_owner:$_.current}}Yc.Fragment=V_;Yc.jsx=rv;Yc.jsxs=rv;qb.exports=Yc;var c=qb.exports,lh={},sv={exports:{}},Xt={},ov={exports:{}},iv={};/** + */var F_=S,z_=Symbol.for("react.element"),V_=Symbol.for("react.fragment"),B_=Object.prototype.hasOwnProperty,$_=F_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H_={key:!0,ref:!0,__self:!0,__source:!0};function rv(e,t,n){var r,s={},o=null,i=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)B_.call(t,r)&&!H_.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)s[r]===void 0&&(s[r]=t[r]);return{$$typeof:z_,type:e,key:o,ref:i,props:s,_owner:$_.current}}Xc.Fragment=V_;Xc.jsx=rv;Xc.jsxs=rv;qb.exports=Xc;var c=qb.exports,lh={},sv={exports:{}},Xt={},ov={exports:{}},iv={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var b_=Object.defineProperty;var v_=(e,t,n)=>t in e?b_(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(e){function t(C,L){var E=C.length;C.push(L);e:for(;0>>1,K=C[I];if(0>>1;Is(G,E))nes(ce,G)?(C[I]=ce,C[ne]=E,I=ne):(C[I]=G,C[$]=E,I=$);else if(nes(ce,E))C[I]=ce,C[ne]=E,I=ne;else break e}}return L}function s(C,L){var E=C.sortIndex-L.sortIndex;return E!==0?E:C.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var l=[],u=[],d=1,h=null,f=3,p=!1,g=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(C){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=C)r(u),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(u)}}function k(C){if(m=!1,b(C),!g)if(n(l)!==null)g=!0,M(w);else{var L=n(u);L!==null&&H(k,L.startTime-C)}}function w(C,L){g=!1,m&&(m=!1,x(_),_=-1),p=!0;var E=f;try{for(b(L),h=n(l);h!==null&&(!(h.expirationTime>L)||C&&!O());){var I=h.callback;if(typeof I=="function"){h.callback=null,f=h.priorityLevel;var K=I(h.expirationTime<=L);L=e.unstable_now(),typeof K=="function"?h.callback=K:h===n(l)&&r(l),b(L)}else r(l);h=n(l)}if(h!==null)var T=!0;else{var $=n(u);$!==null&&H(k,$.startTime-L),T=!1}return T}finally{h=null,f=E,p=!1}}var j=!1,N=null,_=-1,P=5,A=-1;function O(){return!(e.unstable_now()-AC||125I?(C.sortIndex=E,t(u,C),n(l)===null&&C===n(u)&&(m?(x(_),_=-1):m=!0,H(k,E-I))):(C.sortIndex=K,t(l,C),g||p||(g=!0,M(w))),C},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(C){var L=f;return function(){var E=f;f=L;try{return C.apply(this,arguments)}finally{f=E}}}})(iv);ov.exports=iv;var U_=ov.exports;/** + */(function(e){function t(C,L){var E=C.length;C.push(L);e:for(;0>>1,Y=C[I];if(0>>1;Is(q,E))nes(ce,q)?(C[I]=ce,C[ne]=E,I=ne):(C[I]=q,C[$]=E,I=$);else if(nes(ce,E))C[I]=ce,C[ne]=E,I=ne;else break e}}return L}function s(C,L){var E=C.sortIndex-L.sortIndex;return E!==0?E:C.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var l=[],u=[],d=1,h=null,f=3,p=!1,g=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(C){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=C)r(u),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(u)}}function k(C){if(m=!1,b(C),!g)if(n(l)!==null)g=!0,M(w);else{var L=n(u);L!==null&&H(k,L.startTime-C)}}function w(C,L){g=!1,m&&(m=!1,x(_),_=-1),p=!0;var E=f;try{for(b(L),h=n(l);h!==null&&(!(h.expirationTime>L)||C&&!O());){var I=h.callback;if(typeof I=="function"){h.callback=null,f=h.priorityLevel;var Y=I(h.expirationTime<=L);L=e.unstable_now(),typeof Y=="function"?h.callback=Y:h===n(l)&&r(l),b(L)}else r(l);h=n(l)}if(h!==null)var T=!0;else{var $=n(u);$!==null&&H(k,$.startTime-L),T=!1}return T}finally{h=null,f=E,p=!1}}var j=!1,N=null,_=-1,P=5,A=-1;function O(){return!(e.unstable_now()-AC||125I?(C.sortIndex=E,t(u,C),n(l)===null&&C===n(u)&&(m?(x(_),_=-1):m=!0,H(k,E-I))):(C.sortIndex=Y,t(l,C),g||p||(g=!0,M(w))),C},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(C){var L=f;return function(){var E=f;f=L;try{return C.apply(this,arguments)}finally{f=E}}}})(iv);ov.exports=iv;var U_=ov.exports;/** * @license React * react-dom.production.min.js * @@ -30,14 +30,14 @@ var b_=Object.defineProperty;var v_=(e,t,n)=>t in e?b_(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var W_=S,qt=U_;function V(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"),ch=Object.prototype.hasOwnProperty,G_=/^[: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]*$/,um={},dm={};function q_(e){return ch.call(dm,e)?!0:ch.call(um,e)?!1:G_.test(e)?dm[e]=!0:(um[e]=!0,!1)}function K_(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 Y_(e,t,n,r){if(t===null||typeof t>"u"||K_(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 Ct(e,t,n,r,s,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var it={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){it[e]=new Ct(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];it[t]=new Ct(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){it[e]=new Ct(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){it[e]=new Ct(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){it[e]=new Ct(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){it[e]=new Ct(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){it[e]=new Ct(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){it[e]=new Ct(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){it[e]=new Ct(e,5,!1,e.toLowerCase(),null,!1,!1)});var sp=/[\-:]([a-z])/g;function op(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(sp,op);it[t]=new Ct(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(sp,op);it[t]=new Ct(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(sp,op);it[t]=new Ct(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){it[e]=new Ct(e,1,!1,e.toLowerCase(),null,!1,!1)});it.xlinkHref=new Ct("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){it[e]=new Ct(e,1,!1,e.toLowerCase(),null,!0,!0)});function ip(e,t,n,r){var s=it.hasOwnProperty(t)?it[t]:null;(s!==null?s.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ch=Object.prototype.hasOwnProperty,G_=/^[: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]*$/,um={},dm={};function q_(e){return ch.call(dm,e)?!0:ch.call(um,e)?!1:G_.test(e)?dm[e]=!0:(um[e]=!0,!1)}function K_(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 Y_(e,t,n,r){if(t===null||typeof t>"u"||K_(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 Nt(e,t,n,r,s,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var at={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){at[e]=new Nt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];at[t]=new Nt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){at[e]=new Nt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){at[e]=new Nt(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){at[e]=new Nt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){at[e]=new Nt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){at[e]=new Nt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){at[e]=new Nt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){at[e]=new Nt(e,5,!1,e.toLowerCase(),null,!1,!1)});var sp=/[\-:]([a-z])/g;function op(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(sp,op);at[t]=new Nt(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(sp,op);at[t]=new Nt(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(sp,op);at[t]=new Nt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){at[e]=new Nt(e,1,!1,e.toLowerCase(),null,!1,!1)});at.xlinkHref=new Nt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){at[e]=new Nt(e,1,!1,e.toLowerCase(),null,!0,!0)});function ip(e,t,n,r){var s=at.hasOwnProperty(t)?at[t]:null;(s!==null?s.type!==0:r||!(2a||s[i]!==o[a]){var l=` -`+s[i].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=i&&0<=a);break}}}finally{Ku=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?xi(e):""}function X_(e){switch(e.tag){case 5:return xi(e.type);case 16:return xi("Lazy");case 13:return xi("Suspense");case 19:return xi("SuspenseList");case 0:case 2:case 15:return e=Yu(e.type,!1),e;case 11:return e=Yu(e.type.render,!1),e;case 1:return e=Yu(e.type,!0),e;default:return""}}function fh(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 Qs:return"Fragment";case Xs:return"Portal";case uh:return"Profiler";case ap:return"StrictMode";case dh:return"Suspense";case hh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case cv:return(e.displayName||"Context")+".Consumer";case lv:return(e._context.displayName||"Context")+".Provider";case lp:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case cp:return t=e.displayName||null,t!==null?t:fh(e.type)||"Memo";case pr:t=e._payload,e=e._init;try{return fh(e(t))}catch{}}return null}function Q_(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 fh(t);case 8:return t===ap?"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 Vr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function dv(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function J_(e){var t=dv(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 s=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(i){r=""+i,o.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 Ya(e){e._valueTracker||(e._valueTracker=J_(e))}function hv(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=dv(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function oc(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 ph(e,t){var n=t.checked;return Le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function fm(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Vr(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 fv(e,t){t=t.checked,t!=null&&ip(e,"checked",t,!1)}function gh(e,t){fv(e,t);var n=Vr(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")?mh(e,t.type,n):t.hasOwnProperty("defaultValue")&&mh(e,t.type,Vr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function pm(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 mh(e,t,n){(t!=="number"||oc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var bi=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Xa.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Yi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pi={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},Z_=["Webkit","ms","Moz","O"];Object.keys(Pi).forEach(function(e){Z_.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pi[t]=Pi[e]})});function yv(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pi.hasOwnProperty(e)&&Pi[e]?(""+t).trim():t+"px"}function xv(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=yv(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var ej=Le({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 bh(e,t){if(t){if(ej[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function vh(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 wh=null;function up(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var kh=null,go=null,mo=null;function ym(e){if(e=Ra(e)){if(typeof kh!="function")throw Error(V(280));var t=e.stateNode;t&&(t=eu(t),kh(e.stateNode,e.type,t))}}function bv(e){go?mo?mo.push(e):mo=[e]:go=e}function vv(){if(go){var e=go,t=mo;if(mo=go=null,ym(e),t)for(e=0;e>>=0,e===0?32:31-(dj(e)/hj|0)|0}var Qa=64,Ja=4194304;function vi(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 cc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~s;a!==0?r=vi(a):(o&=i,o!==0&&(r=vi(o)))}else i=n&~s,i!==0?r=vi(i):o!==0&&(r=vi(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&s)===0&&(s=r&-r,o=t&-t,s>=o||s===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Na(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-vn(t),e[t]=n}function mj(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=Ei),Cm=" ",Nm=!1;function Vv(e,t){switch(e){case"keyup":return Uj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bv(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Js=!1;function Gj(e,t){switch(e){case"compositionend":return Bv(t);case"keypress":return t.which!==32?null:(Nm=!0,Cm);case"textInput":return e=t.data,e===Cm&&Nm?null:e;default:return null}}function qj(e,t){if(Js)return e==="compositionend"||!xp&&Vv(e,t)?(e=Fv(),zl=gp=vr=null,Js=!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=Tm(n)}}function Wv(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Wv(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Gv(){for(var e=window,t=oc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=oc(e.document)}return t}function bp(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 nC(e){var t=Gv(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Wv(n.ownerDocument.documentElement,n)){if(r!==null&&bp(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 s=n.textContent.length,o=Math.min(r.start,s);r=r.end===void 0?o:Math.min(r.end,s),!e.extend&&o>r&&(s=r,r=o,o=s),s=Am(n,o);var i=Am(n,r);s&&i&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),o>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,Zs=null,Ph=null,Ai=null,Rh=!1;function Mm(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Rh||Zs==null||Zs!==oc(r)||(r=Zs,"selectionStart"in r&&bp(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}),Ai&&ta(Ai,r)||(Ai=r,r=hc(Ph,"onSelect"),0no||(e.current=Oh[no],Oh[no]=null,no--)}function we(e,t){no++,Oh[no]=e.current,e.current=t}var Br={},xt=qr(Br),At=qr(!1),Ns=Br;function _o(e,t){var n=e.type.contextTypes;if(!n)return Br;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},o;for(o in n)s[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Mt(e){return e=e.childContextTypes,e!=null}function pc(){Ce(At),Ce(xt)}function Vm(e,t,n){if(xt.current!==Br)throw Error(V(168));we(xt,t),we(At,n)}function tw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(V(108,Q_(e)||"Unknown",s));return Le({},n,r)}function gc(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Br,Ns=xt.current,we(xt,e),we(At,At.current),!0}function Bm(e,t,n){var r=e.stateNode;if(!r)throw Error(V(169));n?(e=tw(e,t,Ns),r.__reactInternalMemoizedMergedChildContext=e,Ce(At),Ce(xt),we(xt,e)):Ce(At),we(At,n)}var Un=null,tu=!1,cd=!1;function nw(e){Un===null?Un=[e]:Un.push(e)}function pC(e){tu=!0,nw(e)}function Kr(){if(!cd&&Un!==null){cd=!0;var e=0,t=xe;try{var n=Un;for(xe=1;e>=i,s-=i,Gn=1<<32-vn(t)+s|n<_?(P=N,N=null):P=N.sibling;var A=f(x,N,b[_],k);if(A===null){N===null&&(N=P);break}e&&N&&A.alternate===null&&t(x,N),v=o(A,v,_),j===null?w=A:j.sibling=A,j=A,N=P}if(_===b.length)return n(x,N),Ne&&as(x,_),w;if(N===null){for(;__?(P=N,N=null):P=N.sibling;var O=f(x,N,A.value,k);if(O===null){N===null&&(N=P);break}e&&N&&O.alternate===null&&t(x,N),v=o(O,v,_),j===null?w=O:j.sibling=O,j=O,N=P}if(A.done)return n(x,N),Ne&&as(x,_),w;if(N===null){for(;!A.done;_++,A=b.next())A=h(x,A.value,k),A!==null&&(v=o(A,v,_),j===null?w=A:j.sibling=A,j=A);return Ne&&as(x,_),w}for(N=r(x,N);!A.done;_++,A=b.next())A=p(N,x,_,A.value,k),A!==null&&(e&&A.alternate!==null&&N.delete(A.key===null?_:A.key),v=o(A,v,_),j===null?w=A:j.sibling=A,j=A);return e&&N.forEach(function(F){return t(x,F)}),Ne&&as(x,_),w}function y(x,v,b,k){if(typeof b=="object"&&b!==null&&b.type===Qs&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case Ka:e:{for(var w=b.key,j=v;j!==null;){if(j.key===w){if(w=b.type,w===Qs){if(j.tag===7){n(x,j.sibling),v=s(j,b.props.children),v.return=x,x=v;break e}}else if(j.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===pr&&Um(w)===j.type){n(x,j.sibling),v=s(j,b.props),v.ref=si(x,j,b),v.return=x,x=v;break e}n(x,j);break}else t(x,j);j=j.sibling}b.type===Qs?(v=ks(b.props.children,x.mode,k,b.key),v.return=x,x=v):(k=ql(b.type,b.key,b.props,null,x.mode,k),k.ref=si(x,v,b),k.return=x,x=k)}return i(x);case Xs:e:{for(j=b.key;v!==null;){if(v.key===j)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){n(x,v.sibling),v=s(v,b.children||[]),v.return=x,x=v;break e}else{n(x,v);break}else t(x,v);v=v.sibling}v=yd(b,x.mode,k),v.return=x,x=v}return i(x);case pr:return j=b._init,y(x,v,j(b._payload),k)}if(bi(b))return g(x,v,b,k);if(Zo(b))return m(x,v,b,k);ol(x,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(n(x,v.sibling),v=s(v,b),v.return=x,x=v):(n(x,v),v=md(b,x.mode,k),v.return=x,x=v),i(x)):n(x,v)}return y}var Co=iw(!0),aw=iw(!1),xc=qr(null),bc=null,oo=null,Sp=null;function _p(){Sp=oo=bc=null}function jp(e){var t=xc.current;Ce(xc),e._currentValue=t}function Fh(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 xo(e,t){bc=e,Sp=oo=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Tt=!0),e.firstContext=null)}function un(e){var t=e._currentValue;if(Sp!==e)if(e={context:e,memoizedValue:t,next:null},oo===null){if(bc===null)throw Error(V(308));oo=e,bc.dependencies={lanes:0,firstContext:e}}else oo=oo.next=e;return t}var gs=null;function Cp(e){gs===null?gs=[e]:gs.push(e)}function lw(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,Cp(t)):(n.next=s.next,s.next=n),t.interleaved=n,nr(e,r)}function nr(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 gr=!1;function Np(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cw(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 Xn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Tr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(pe&2)!==0){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,nr(e,n)}return s=r.interleaved,s===null?(t.next=t,Cp(r)):(t.next=s.next,s.next=t),r.interleaved=t,nr(e,n)}function Bl(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,hp(e,n)}}function Wm(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,o=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};o===null?s=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?s=o=t:o=o.next=t}else s=o=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:o,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 vc(e,t,n,r){var s=e.updateQueue;gr=!1;var o=s.firstBaseUpdate,i=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var l=a,u=l.next;l.next=null,i===null?o=u:i.next=u,i=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==i&&(a===null?d.firstBaseUpdate=u:a.next=u,d.lastBaseUpdate=l))}if(o!==null){var h=s.baseState;i=0,d=u=l=null,a=o;do{var f=a.lane,p=a.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,m=a;switch(f=t,p=n,m.tag){case 1:if(g=m.payload,typeof g=="function"){h=g.call(p,h,f);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,f=typeof g=="function"?g.call(p,h,f):g,f==null)break e;h=Le({},h,f);break e;case 2:gr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[a]:f.push(a))}else p={eventTime:p,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(u=d=p,l=h):d=d.next=p,i|=f;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;f=a,a=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(l=h),s.baseState=l,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do i|=s.lane,s=s.next;while(s!==t)}else o===null&&(s.shared.lanes=0);Es|=i,e.lanes=i,e.memoizedState=h}}function Gm(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=dd.transition;dd.transition={};try{e(!1),t()}finally{xe=n,dd.transition=r}}function Cw(){return dn().memoizedState}function xC(e,t,n){var r=Mr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Nw(e))Pw(t,n);else if(n=lw(e,t,n,r),n!==null){var s=_t();wn(n,e,r,s),Rw(n,t,r)}}function bC(e,t,n){var r=Mr(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Nw(e))Pw(t,s);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(s.hasEagerState=!0,s.eagerState=a,Sn(a,i)){var l=t.interleaved;l===null?(s.next=s,Cp(t)):(s.next=l.next,l.next=s),t.interleaved=s;return}}catch{}finally{}n=lw(e,t,s,r),n!==null&&(s=_t(),wn(n,e,r,s),Rw(n,t,r))}}function Nw(e){var t=e.alternate;return e===Me||t!==null&&t===Me}function Pw(e,t){Mi=kc=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rw(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,hp(e,n)}}var Sc={readContext:un,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useInsertionEffect:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useDeferredValue:ct,useTransition:ct,useMutableSource:ct,useSyncExternalStore:ct,useId:ct,unstable_isNewReconciler:!1},vC={readContext:un,useCallback:function(e,t){return Tn().memoizedState=[e,t===void 0?null:t],e},useContext:un,useEffect:Km,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Hl(4194308,4,ww.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Hl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Hl(4,2,e,t)},useMemo:function(e,t){var n=Tn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Tn();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=xC.bind(null,Me,e),[r.memoizedState,e]},useRef:function(e){var t=Tn();return e={current:e},t.memoizedState=e},useState:qm,useDebugValue:Op,useDeferredValue:function(e){return Tn().memoizedState=e},useTransition:function(){var e=qm(!1),t=e[0];return e=yC.bind(null,e[1]),Tn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Me,s=Tn();if(Ne){if(n===void 0)throw Error(V(407));n=n()}else{if(n=t(),et===null)throw Error(V(349));(Rs&30)!==0||fw(r,t,n)}s.memoizedState=n;var o={value:n,getSnapshot:t};return s.queue=o,Km(gw.bind(null,r,o,e),[e]),r.flags|=2048,ca(9,pw.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Tn(),t=et.identifierPrefix;if(Ne){var n=qn,r=Gn;n=(r&~(1<<32-vn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=aa++,0")&&(l=l.replace("",e.displayName)),l}while(1<=i&&0<=a);break}}}finally{Yu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?xi(e):""}function X_(e){switch(e.tag){case 5:return xi(e.type);case 16:return xi("Lazy");case 13:return xi("Suspense");case 19:return xi("SuspenseList");case 0:case 2:case 15:return e=Xu(e.type,!1),e;case 11:return e=Xu(e.type.render,!1),e;case 1:return e=Xu(e.type,!0),e;default:return""}}function fh(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 Qs:return"Fragment";case Xs:return"Portal";case uh:return"Profiler";case ap:return"StrictMode";case dh:return"Suspense";case hh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case cv:return(e.displayName||"Context")+".Consumer";case lv:return(e._context.displayName||"Context")+".Provider";case lp:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case cp:return t=e.displayName||null,t!==null?t:fh(e.type)||"Memo";case pr:t=e._payload,e=e._init;try{return fh(e(t))}catch{}}return null}function Q_(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 fh(t);case 8:return t===ap?"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 Vr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function dv(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function J_(e){var t=dv(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 s=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(i){r=""+i,o.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 Ya(e){e._valueTracker||(e._valueTracker=J_(e))}function hv(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=dv(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ic(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 ph(e,t){var n=t.checked;return Le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function fm(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Vr(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 fv(e,t){t=t.checked,t!=null&&ip(e,"checked",t,!1)}function gh(e,t){fv(e,t);var n=Vr(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")?mh(e,t.type,n):t.hasOwnProperty("defaultValue")&&mh(e,t.type,Vr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function pm(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 mh(e,t,n){(t!=="number"||ic(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var bi=Array.isArray;function po(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Xa.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Yi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pi={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},Z_=["Webkit","ms","Moz","O"];Object.keys(Pi).forEach(function(e){Z_.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pi[t]=Pi[e]})});function yv(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pi.hasOwnProperty(e)&&Pi[e]?(""+t).trim():t+"px"}function xv(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=yv(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var ej=Le({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 bh(e,t){if(t){if(ej[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function vh(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 wh=null;function up(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var kh=null,go=null,mo=null;function ym(e){if(e=Ra(e)){if(typeof kh!="function")throw Error(V(280));var t=e.stateNode;t&&(t=tu(t),kh(e.stateNode,e.type,t))}}function bv(e){go?mo?mo.push(e):mo=[e]:go=e}function vv(){if(go){var e=go,t=mo;if(mo=go=null,ym(e),t)for(e=0;e>>=0,e===0?32:31-(dj(e)/hj|0)|0}var Qa=64,Ja=4194304;function vi(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 uc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~s;a!==0?r=vi(a):(o&=i,o!==0&&(r=vi(o)))}else i=n&~s,i!==0?r=vi(i):o!==0&&(r=vi(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&s)===0&&(s=r&-r,o=t&-t,s>=o||s===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Na(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-vn(t),e[t]=n}function mj(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=Ei),Cm=" ",Nm=!1;function Vv(e,t){switch(e){case"keyup":return Uj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bv(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Js=!1;function Gj(e,t){switch(e){case"compositionend":return Bv(t);case"keypress":return t.which!==32?null:(Nm=!0,Cm);case"textInput":return e=t.data,e===Cm&&Nm?null:e;default:return null}}function qj(e,t){if(Js)return e==="compositionend"||!xp&&Vv(e,t)?(e=Fv(),Vl=gp=vr=null,Js=!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=Tm(n)}}function Wv(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Wv(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Gv(){for(var e=window,t=ic();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ic(e.document)}return t}function bp(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 nC(e){var t=Gv(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Wv(n.ownerDocument.documentElement,n)){if(r!==null&&bp(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 s=n.textContent.length,o=Math.min(r.start,s);r=r.end===void 0?o:Math.min(r.end,s),!e.extend&&o>r&&(s=r,r=o,o=s),s=Am(n,o);var i=Am(n,r);s&&i&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),o>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,Zs=null,Ph=null,Ai=null,Rh=!1;function Mm(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Rh||Zs==null||Zs!==ic(r)||(r=Zs,"selectionStart"in r&&bp(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}),Ai&&ta(Ai,r)||(Ai=r,r=fc(Ph,"onSelect"),0no||(e.current=Oh[no],Oh[no]=null,no--)}function we(e,t){no++,Oh[no]=e.current,e.current=t}var Br={},xt=qr(Br),Mt=qr(!1),Ns=Br;function _o(e,t){var n=e.type.contextTypes;if(!n)return Br;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},o;for(o in n)s[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Lt(e){return e=e.childContextTypes,e!=null}function gc(){Ce(Mt),Ce(xt)}function Vm(e,t,n){if(xt.current!==Br)throw Error(V(168));we(xt,t),we(Mt,n)}function tw(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(V(108,Q_(e)||"Unknown",s));return Le({},n,r)}function mc(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Br,Ns=xt.current,we(xt,e),we(Mt,Mt.current),!0}function Bm(e,t,n){var r=e.stateNode;if(!r)throw Error(V(169));n?(e=tw(e,t,Ns),r.__reactInternalMemoizedMergedChildContext=e,Ce(Mt),Ce(xt),we(xt,e)):Ce(Mt),we(Mt,n)}var Un=null,nu=!1,ud=!1;function nw(e){Un===null?Un=[e]:Un.push(e)}function pC(e){nu=!0,nw(e)}function Kr(){if(!ud&&Un!==null){ud=!0;var e=0,t=be;try{var n=Un;for(be=1;e>=i,s-=i,Gn=1<<32-vn(t)+s|n<_?(P=N,N=null):P=N.sibling;var A=f(x,N,b[_],k);if(A===null){N===null&&(N=P);break}e&&N&&A.alternate===null&&t(x,N),v=o(A,v,_),j===null?w=A:j.sibling=A,j=A,N=P}if(_===b.length)return n(x,N),Ne&&as(x,_),w;if(N===null){for(;__?(P=N,N=null):P=N.sibling;var O=f(x,N,A.value,k);if(O===null){N===null&&(N=P);break}e&&N&&O.alternate===null&&t(x,N),v=o(O,v,_),j===null?w=O:j.sibling=O,j=O,N=P}if(A.done)return n(x,N),Ne&&as(x,_),w;if(N===null){for(;!A.done;_++,A=b.next())A=h(x,A.value,k),A!==null&&(v=o(A,v,_),j===null?w=A:j.sibling=A,j=A);return Ne&&as(x,_),w}for(N=r(x,N);!A.done;_++,A=b.next())A=p(N,x,_,A.value,k),A!==null&&(e&&A.alternate!==null&&N.delete(A.key===null?_:A.key),v=o(A,v,_),j===null?w=A:j.sibling=A,j=A);return e&&N.forEach(function(F){return t(x,F)}),Ne&&as(x,_),w}function y(x,v,b,k){if(typeof b=="object"&&b!==null&&b.type===Qs&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case Ka:e:{for(var w=b.key,j=v;j!==null;){if(j.key===w){if(w=b.type,w===Qs){if(j.tag===7){n(x,j.sibling),v=s(j,b.props.children),v.return=x,x=v;break e}}else if(j.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===pr&&Um(w)===j.type){n(x,j.sibling),v=s(j,b.props),v.ref=si(x,j,b),v.return=x,x=v;break e}n(x,j);break}else t(x,j);j=j.sibling}b.type===Qs?(v=ks(b.props.children,x.mode,k,b.key),v.return=x,x=v):(k=Kl(b.type,b.key,b.props,null,x.mode,k),k.ref=si(x,v,b),k.return=x,x=k)}return i(x);case Xs:e:{for(j=b.key;v!==null;){if(v.key===j)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){n(x,v.sibling),v=s(v,b.children||[]),v.return=x,x=v;break e}else{n(x,v);break}else t(x,v);v=v.sibling}v=xd(b,x.mode,k),v.return=x,x=v}return i(x);case pr:return j=b._init,y(x,v,j(b._payload),k)}if(bi(b))return g(x,v,b,k);if(Zo(b))return m(x,v,b,k);ol(x,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(n(x,v.sibling),v=s(v,b),v.return=x,x=v):(n(x,v),v=yd(b,x.mode,k),v.return=x,x=v),i(x)):n(x,v)}return y}var Co=iw(!0),aw=iw(!1),bc=qr(null),vc=null,oo=null,Sp=null;function _p(){Sp=oo=vc=null}function jp(e){var t=bc.current;Ce(bc),e._currentValue=t}function Fh(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 xo(e,t){vc=e,Sp=oo=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(At=!0),e.firstContext=null)}function un(e){var t=e._currentValue;if(Sp!==e)if(e={context:e,memoizedValue:t,next:null},oo===null){if(vc===null)throw Error(V(308));oo=e,vc.dependencies={lanes:0,firstContext:e}}else oo=oo.next=e;return t}var gs=null;function Cp(e){gs===null?gs=[e]:gs.push(e)}function lw(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,Cp(t)):(n.next=s.next,s.next=n),t.interleaved=n,nr(e,r)}function nr(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 gr=!1;function Np(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cw(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 Xn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Tr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(pe&2)!==0){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,nr(e,n)}return s=r.interleaved,s===null?(t.next=t,Cp(r)):(t.next=s.next,s.next=t),r.interleaved=t,nr(e,n)}function $l(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,hp(e,n)}}function Wm(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,o=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};o===null?s=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?s=o=t:o=o.next=t}else s=o=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:o,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 wc(e,t,n,r){var s=e.updateQueue;gr=!1;var o=s.firstBaseUpdate,i=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var l=a,u=l.next;l.next=null,i===null?o=u:i.next=u,i=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==i&&(a===null?d.firstBaseUpdate=u:a.next=u,d.lastBaseUpdate=l))}if(o!==null){var h=s.baseState;i=0,d=u=l=null,a=o;do{var f=a.lane,p=a.eventTime;if((r&f)===f){d!==null&&(d=d.next={eventTime:p,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,m=a;switch(f=t,p=n,m.tag){case 1:if(g=m.payload,typeof g=="function"){h=g.call(p,h,f);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,f=typeof g=="function"?g.call(p,h,f):g,f==null)break e;h=Le({},h,f);break e;case 2:gr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=s.effects,f===null?s.effects=[a]:f.push(a))}else p={eventTime:p,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(u=d=p,l=h):d=d.next=p,i|=f;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;f=a,a=f.next,f.next=null,s.lastBaseUpdate=f,s.shared.pending=null}}while(!0);if(d===null&&(l=h),s.baseState=l,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do i|=s.lane,s=s.next;while(s!==t)}else o===null&&(s.shared.lanes=0);Es|=i,e.lanes=i,e.memoizedState=h}}function Gm(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=hd.transition;hd.transition={};try{e(!1),t()}finally{be=n,hd.transition=r}}function Cw(){return dn().memoizedState}function xC(e,t,n){var r=Mr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Nw(e))Pw(t,n);else if(n=lw(e,t,n,r),n!==null){var s=jt();wn(n,e,r,s),Rw(n,t,r)}}function bC(e,t,n){var r=Mr(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Nw(e))Pw(t,s);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(s.hasEagerState=!0,s.eagerState=a,Sn(a,i)){var l=t.interleaved;l===null?(s.next=s,Cp(t)):(s.next=l.next,l.next=s),t.interleaved=s;return}}catch{}finally{}n=lw(e,t,s,r),n!==null&&(s=jt(),wn(n,e,r,s),Rw(n,t,r))}}function Nw(e){var t=e.alternate;return e===Me||t!==null&&t===Me}function Pw(e,t){Mi=Sc=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rw(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,hp(e,n)}}var _c={readContext:un,useCallback:ut,useContext:ut,useEffect:ut,useImperativeHandle:ut,useInsertionEffect:ut,useLayoutEffect:ut,useMemo:ut,useReducer:ut,useRef:ut,useState:ut,useDebugValue:ut,useDeferredValue:ut,useTransition:ut,useMutableSource:ut,useSyncExternalStore:ut,useId:ut,unstable_isNewReconciler:!1},vC={readContext:un,useCallback:function(e,t){return Tn().memoizedState=[e,t===void 0?null:t],e},useContext:un,useEffect:Km,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ul(4194308,4,ww.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ul(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ul(4,2,e,t)},useMemo:function(e,t){var n=Tn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Tn();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=xC.bind(null,Me,e),[r.memoizedState,e]},useRef:function(e){var t=Tn();return e={current:e},t.memoizedState=e},useState:qm,useDebugValue:Op,useDeferredValue:function(e){return Tn().memoizedState=e},useTransition:function(){var e=qm(!1),t=e[0];return e=yC.bind(null,e[1]),Tn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Me,s=Tn();if(Ne){if(n===void 0)throw Error(V(407));n=n()}else{if(n=t(),et===null)throw Error(V(349));(Rs&30)!==0||fw(r,t,n)}s.memoizedState=n;var o={value:n,getSnapshot:t};return s.queue=o,Km(gw.bind(null,r,o,e),[e]),r.flags|=2048,ca(9,pw.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Tn(),t=et.identifierPrefix;if(Ne){var n=qn,r=Gn;n=(r&~(1<<32-vn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=aa++,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[Mn]=t,e[sa]=r,zw(e,t,!1,!1),t.stateNode=e;e:{switch(i=vh(n,r),n){case"dialog":_e("cancel",e),_e("close",e),s=r;break;case"iframe":case"object":case"embed":_e("load",e),s=r;break;case"video":case"audio":for(s=0;sRo&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304)}else{if(!r)if(e=wc(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Ne)return ut(t),null}else 2*De()-o.renderingStartTime>Ro&&n!==1073741824&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=De(),t.sibling=null,n=Re.current,we(Re,r?n&1|2:n&1),t):(ut(t),null);case 22:case 23:return Bp(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(Ht&1073741824)!==0&&(ut(t),t.subtreeFlags&6&&(t.flags|=8192)):ut(t),null;case 24:return null;case 25:return null}throw Error(V(156,t.tag))}function PC(e,t){switch(wp(t),t.tag){case 1:return Mt(t.type)&&pc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return No(),Ce(At),Ce(xt),Ep(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Rp(t),null;case 13:if(Ce(Re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(V(340));jo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ce(Re),null;case 4:return No(),null;case 10:return jp(t.type._context),null;case 22:case 23:return Bp(),null;case 24:return null;default:return null}}var al=!1,gt=!1,RC=typeof WeakSet=="function"?WeakSet:Set,q=null;function io(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Oe(e,t,r)}else n.current=null}function qh(e,t,n){try{n()}catch(r){Oe(e,t,r)}}var o0=!1;function EC(e,t){if(Eh=uc,e=Gv(),bp(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 s=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,l=-1,u=0,d=0,h=e,f=null;t:for(;;){for(var p;h!==n||s!==0&&h.nodeType!==3||(a=i+s),h!==o||r!==0&&h.nodeType!==3||(l=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(p=h.firstChild)!==null;)f=h,h=p;for(;;){if(h===e)break t;if(f===n&&++u===s&&(a=i),f===o&&++d===r&&(l=i),(p=h.nextSibling)!==null)break;h=f,f=h.parentNode}h=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Th={focusedElem:e,selectionRange:n},uc=!1,q=t;q!==null;)if(t=q,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,q=e;else for(;q!==null;){t=q;try{var g=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,y=g.memoizedState,x=t.stateNode,v=x.getSnapshotBeforeUpdate(t.elementType===t.type?m:mn(t.type,m),y);x.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(k){Oe(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,q=e;break}q=t.return}return g=o0,o0=!1,g}function Li(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var o=s.destroy;s.destroy=void 0,o!==void 0&&qh(t,n,o)}s=s.next}while(s!==r)}}function su(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 Kh(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 $w(e){var t=e.alternate;t!==null&&(e.alternate=null,$w(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Mn],delete t[sa],delete t[Lh],delete t[hC],delete t[fC])),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 Hw(e){return e.tag===5||e.tag===3||e.tag===4}function i0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Hw(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 Yh(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=fc));else if(r!==4&&(e=e.child,e!==null))for(Yh(e,t,n),e=e.sibling;e!==null;)Yh(e,t,n),e=e.sibling}function Xh(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(Xh(e,t,n),e=e.sibling;e!==null;)Xh(e,t,n),e=e.sibling}var st=null,yn=!1;function cr(e,t,n){for(n=n.child;n!==null;)Uw(e,t,n),n=n.sibling}function Uw(e,t,n){if(Ln&&typeof Ln.onCommitFiberUnmount=="function")try{Ln.onCommitFiberUnmount(Xc,n)}catch{}switch(n.tag){case 5:gt||io(n,t);case 6:var r=st,s=yn;st=null,cr(e,t,n),st=r,yn=s,st!==null&&(yn?(e=st,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):st.removeChild(n.stateNode));break;case 18:st!==null&&(yn?(e=st,n=n.stateNode,e.nodeType===8?ld(e.parentNode,n):e.nodeType===1&&ld(e,n),Zi(e)):ld(st,n.stateNode));break;case 4:r=st,s=yn,st=n.stateNode.containerInfo,yn=!0,cr(e,t,n),st=r,yn=s;break;case 0:case 11:case 14:case 15:if(!gt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var o=s,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&qh(n,t,i),s=s.next}while(s!==r)}cr(e,t,n);break;case 1:if(!gt&&(io(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){Oe(n,t,a)}cr(e,t,n);break;case 21:cr(e,t,n);break;case 22:n.mode&1?(gt=(r=gt)||n.memoizedState!==null,cr(e,t,n),gt=r):cr(e,t,n);break;default:cr(e,t,n)}}function a0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new RC),t.forEach(function(r){var s=zC.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function gn(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=i),r&=~o}if(r=s,r=De()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AC(r/1960))-r,10e?16:e,wr===null)var r=!1;else{if(e=wr,wr=null,Cc=0,(pe&6)!==0)throw Error(V(331));var s=pe;for(pe|=4,q=e.current;q!==null;){var o=q,i=o.child;if((q.flags&16)!==0){var a=o.deletions;if(a!==null){for(var l=0;lDe()-zp?ws(e,0):Fp|=n),Lt(e,t)}function Jw(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ja,Ja<<=1,(Ja&130023424)===0&&(Ja=4194304)));var n=_t();e=nr(e,t),e!==null&&(Na(e,t,n),Lt(e,n))}function FC(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Jw(e,n)}function zC(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(V(314))}r!==null&&r.delete(t),Jw(e,n)}var Zw;Zw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||At.current)Tt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Tt=!1,CC(e,t,n);Tt=(e.flags&131072)!==0}else Tt=!1,Ne&&(t.flags&1048576)!==0&&rw(t,yc,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ul(e,t),e=t.pendingProps;var s=_o(t,xt.current);xo(t,n),s=Ap(null,t,r,e,s,n);var o=Mp();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Mt(r)?(o=!0,gc(t)):o=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Np(t),s.updater=ru,t.stateNode=s,s._reactInternals=t,Vh(t,r,e,n),t=Hh(null,t,r,!0,o,n)):(t.tag=0,Ne&&o&&vp(t),wt(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ul(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=BC(r),e=mn(r,e),s){case 0:t=$h(null,t,r,e,n);break e;case 1:t=n0(null,t,r,e,n);break e;case 11:t=e0(null,t,r,e,n);break e;case 14:t=t0(null,t,r,mn(r.type,e),n);break e}throw Error(V(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),$h(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),n0(e,t,r,s,n);case 3:e:{if(Dw(t),e===null)throw Error(V(387));r=t.pendingProps,o=t.memoizedState,s=o.element,cw(e,t),vc(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){s=Po(Error(V(423)),t),t=r0(e,t,r,n,s);break e}else if(r!==s){s=Po(Error(V(424)),t),t=r0(e,t,r,n,s);break e}else for(Wt=Er(t.stateNode.containerInfo.firstChild),Gt=t,Ne=!0,xn=null,n=aw(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(jo(),r===s){t=rr(e,t,n);break e}wt(e,t,r,n)}t=t.child}return t;case 5:return uw(t),e===null&&Ih(t),r=t.type,s=t.pendingProps,o=e!==null?e.memoizedProps:null,i=s.children,Ah(r,s)?i=null:o!==null&&Ah(r,o)&&(t.flags|=32),Ow(e,t),wt(e,t,i,n),t.child;case 6:return e===null&&Ih(t),null;case 13:return Iw(e,t,n);case 4:return Pp(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Co(t,null,r,n):wt(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),e0(e,t,r,s,n);case 7:return wt(e,t,t.pendingProps,n),t.child;case 8:return wt(e,t,t.pendingProps.children,n),t.child;case 12:return wt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,o=t.memoizedProps,i=s.value,we(xc,r._currentValue),r._currentValue=i,o!==null)if(Sn(o.value,i)){if(o.children===s.children&&!At.current){t=rr(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Xn(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Fh(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(V(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Fh(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}wt(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=un(s),r=r(s),t.flags|=1,wt(e,t,r,n),t.child;case 14:return r=t.type,s=mn(r,t.pendingProps),s=mn(r.type,s),t0(e,t,r,s,n);case 15:return Mw(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),Ul(e,t),t.tag=1,Mt(r)?(e=!0,gc(t)):e=!1,xo(t,n),Ew(t,r,s),Vh(t,r,s,n),Hh(null,t,r,!0,e,n);case 19:return Fw(e,t,n);case 22:return Lw(e,t,n)}throw Error(V(156,t.tag))};function e1(e,t){return Nv(e,t)}function VC(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 an(e,t,n,r){return new VC(e,t,n,r)}function Hp(e){return e=e.prototype,!(!e||!e.isReactComponent)}function BC(e){if(typeof e=="function")return Hp(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lp)return 11;if(e===cp)return 14}return 2}function Lr(e,t){var n=e.alternate;return n===null?(n=an(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 ql(e,t,n,r,s,o){var i=2;if(r=e,typeof e=="function")Hp(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Qs:return ks(n.children,s,o,t);case ap:i=8,s|=8;break;case uh:return e=an(12,n,t,s|2),e.elementType=uh,e.lanes=o,e;case dh:return e=an(13,n,t,s),e.elementType=dh,e.lanes=o,e;case hh:return e=an(19,n,t,s),e.elementType=hh,e.lanes=o,e;case uv:return iu(n,s,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case lv:i=10;break e;case cv:i=9;break e;case lp:i=11;break e;case cp:i=14;break e;case pr:i=16,r=null;break e}throw Error(V(130,e==null?e:typeof e,""))}return t=an(i,n,t,s),t.elementType=e,t.type=r,t.lanes=o,t}function ks(e,t,n,r){return e=an(7,e,r,t),e.lanes=n,e}function iu(e,t,n,r){return e=an(22,e,r,t),e.elementType=uv,e.lanes=n,e.stateNode={isHidden:!1},e}function md(e,t,n){return e=an(6,e,null,t),e.lanes=n,e}function yd(e,t,n){return t=an(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $C(e,t,n,r,s){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=Qu(0),this.expirationTimes=Qu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qu(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Up(e,t,n,r,s,o,i,a,l){return e=new $C(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=an(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Np(o),e}function HC(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s1)}catch(e){console.error(e)}}s1(),sv.exports=Xt;var o1=sv.exports;const KC=Gb(o1);var g0=o1;lh.createRoot=g0.createRoot,lh.hydrateRoot=g0.hydrateRoot;/** +`+o.stack}return{value:e,source:t,stack:s,digest:null}}function gd(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Bh(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var SC=typeof WeakMap=="function"?WeakMap:Map;function Tw(e,t,n){n=Xn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Cc||(Cc=!0,Qh=r),Bh(e,t)},n}function Aw(e,t,n){n=Xn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var s=t.value;n.payload=function(){return r(s)},n.callback=function(){Bh(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){Bh(e,t),typeof r!="function"&&(Ar===null?Ar=new Set([this]):Ar.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function Qm(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new SC;var s=new Set;r.set(t,s)}else s=r.get(t),s===void 0&&(s=new Set,r.set(t,s));s.has(n)||(s.add(n),e=IC.bind(null,e,t,n),t.then(e,e))}function Jm(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Zm(e,t,n,r,s){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Xn(-1,1),t.tag=2,Tr(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=s,e)}var _C=or.ReactCurrentOwner,At=!1;function kt(e,t,n,r){t.child=e===null?aw(t,null,n,r):Co(t,e.child,n,r)}function e0(e,t,n,r,s){n=n.render;var o=t.ref;return xo(t,s),r=Ap(e,t,n,r,o,s),n=Mp(),e!==null&&!At?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,rr(e,t,s)):(Ne&&n&&vp(t),t.flags|=1,kt(e,t,r,s),t.child)}function t0(e,t,n,r,s){if(e===null){var o=n.type;return typeof o=="function"&&!Hp(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,Mw(e,t,o,r,s)):(e=Kl(n.type,null,r,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&s)===0){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:ta,n(i,r)&&e.ref===t.ref)return rr(e,t,s)}return t.flags|=1,e=Lr(o,r),e.ref=t.ref,e.return=t,t.child=e}function Mw(e,t,n,r,s){if(e!==null){var o=e.memoizedProps;if(ta(o,r)&&e.ref===t.ref)if(At=!1,t.pendingProps=r=o,(e.lanes&s)!==0)(e.flags&131072)!==0&&(At=!0);else return t.lanes=e.lanes,rr(e,t,s)}return $h(e,t,n,r,s)}function Lw(e,t,n){var r=t.pendingProps,s=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},we(ao,Ht),Ht|=n;else{if((n&1073741824)===0)return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,we(ao,Ht),Ht|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,we(ao,Ht),Ht|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,we(ao,Ht),Ht|=r;return kt(e,t,s,n),t.child}function Ow(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function $h(e,t,n,r,s){var o=Lt(n)?Ns:xt.current;return o=_o(t,o),xo(t,s),n=Ap(e,t,n,r,o,s),r=Mp(),e!==null&&!At?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,rr(e,t,s)):(Ne&&r&&vp(t),t.flags|=1,kt(e,t,n,s),t.child)}function n0(e,t,n,r,s){if(Lt(n)){var o=!0;mc(t)}else o=!1;if(xo(t,s),t.stateNode===null)Wl(e,t),Ew(t,n,r),Vh(t,n,r,s),r=!0;else if(e===null){var i=t.stateNode,a=t.memoizedProps;i.props=a;var l=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=un(u):(u=Lt(n)?Ns:xt.current,u=_o(t,u));var d=n.getDerivedStateFromProps,h=typeof d=="function"||typeof i.getSnapshotBeforeUpdate=="function";h||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==r||l!==u)&&Xm(t,i,r,u),gr=!1;var f=t.memoizedState;i.state=f,wc(t,r,i,s),l=t.memoizedState,a!==r||f!==l||Mt.current||gr?(typeof d=="function"&&(zh(t,n,d,r),l=t.memoizedState),(a=gr||Ym(t,n,a,r,f,l,u))?(h||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=a):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,cw(e,t),a=t.memoizedProps,u=t.type===t.elementType?a:mn(t.type,a),i.props=u,h=t.pendingProps,f=i.context,l=n.contextType,typeof l=="object"&&l!==null?l=un(l):(l=Lt(n)?Ns:xt.current,l=_o(t,l));var p=n.getDerivedStateFromProps;(d=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==h||f!==l)&&Xm(t,i,r,l),gr=!1,f=t.memoizedState,i.state=f,wc(t,r,i,s);var g=t.memoizedState;a!==h||f!==g||Mt.current||gr?(typeof p=="function"&&(zh(t,n,p,r),g=t.memoizedState),(u=gr||Ym(t,n,u,r,f,g,l)||!1)?(d||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,g,l),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,g,l)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=g),i.props=r,i.state=g,i.context=l,r=u):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Hh(e,t,n,r,o,s)}function Hh(e,t,n,r,s,o){Ow(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return s&&Bm(t,n,!1),rr(e,t,o);r=t.stateNode,_C.current=t;var a=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,a,o)):kt(e,t,a,o),t.memoizedState=r.state,s&&Bm(t,n,!0),t.child}function Dw(e){var t=e.stateNode;t.pendingContext?Vm(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Vm(e,t.context,!1),Pp(e,t.containerInfo)}function r0(e,t,n,r,s){return jo(),kp(s),t.flags|=256,kt(e,t,n,r),t.child}var Uh={dehydrated:null,treeContext:null,retryLane:0};function Wh(e){return{baseLanes:e,cachePool:null,transitions:null}}function Iw(e,t,n){var r=t.pendingProps,s=Re.current,o=!1,i=(t.flags&128)!==0,a;if((a=i)||(a=e!==null&&e.memoizedState===null?!1:(s&2)!==0),a?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(s|=1),we(Re,s&1),e===null)return Ih(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},(r&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=i):o=au(i,r,0,null),e=ks(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=Wh(n),t.memoizedState=Uh,e):Dp(t,i));if(s=e.memoizedState,s!==null&&(a=s.dehydrated,a!==null))return jC(e,t,i,r,a,s,n);if(o){o=r.fallback,i=t.mode,s=e.child,a=s.sibling;var l={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==s?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=Lr(s,l),r.subtreeFlags=s.subtreeFlags&14680064),a!==null?o=Lr(a,o):(o=ks(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?Wh(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=Uh,r}return o=e.child,e=o.sibling,r=Lr(o,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Dp(e,t){return t=au({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function il(e,t,n,r){return r!==null&&kp(r),Co(t,e.child,null,n),e=Dp(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function jC(e,t,n,r,s,o,i){if(n)return t.flags&256?(t.flags&=-257,r=gd(Error(V(422))),il(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,s=t.mode,r=au({mode:"visible",children:r.children},s,0,null),o=ks(o,s,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,(t.mode&1)!==0&&Co(t,e.child,null,i),t.child.memoizedState=Wh(i),t.memoizedState=Uh,o);if((t.mode&1)===0)return il(e,t,i,null);if(s.data==="$!"){if(r=s.nextSibling&&s.nextSibling.dataset,r)var a=r.dgst;return r=a,o=Error(V(419)),r=gd(o,r,void 0),il(e,t,i,r)}if(a=(i&e.childLanes)!==0,At||a){if(r=et,r!==null){switch(i&-i){case 4:s=2;break;case 16:s=8;break;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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=(s&(r.suspendedLanes|i))!==0?0:s,s!==0&&s!==o.retryLane&&(o.retryLane=s,nr(e,s),wn(r,e,s,-1))}return $p(),r=gd(Error(V(421))),il(e,t,i,r)}return s.data==="$?"?(t.flags|=128,t.child=e.child,t=FC.bind(null,e),s._reactRetry=t,null):(e=o.treeContext,Wt=Er(s.nextSibling),Gt=t,Ne=!0,xn=null,e!==null&&(sn[on++]=Gn,sn[on++]=qn,sn[on++]=Ps,Gn=e.id,qn=e.overflow,Ps=t),t=Dp(t,r.children),t.flags|=4096,t)}function s0(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Fh(e.return,t,n)}function md(e,t,n,r,s){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:s}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=s)}function Fw(e,t,n){var r=t.pendingProps,s=r.revealOrder,o=r.tail;if(kt(e,t,r.children,n),r=Re.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&s0(e,n,t);else if(e.tag===19)s0(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(we(Re,r),(t.mode&1)===0)t.memoizedState=null;else switch(s){case"forwards":for(n=t.child,s=null;n!==null;)e=n.alternate,e!==null&&kc(e)===null&&(s=n),n=n.sibling;n=s,n===null?(s=t.child,t.child=null):(s=n.sibling,n.sibling=null),md(t,!1,s,n,o);break;case"backwards":for(n=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&kc(e)===null){t.child=s;break}e=s.sibling,s.sibling=n,n=s,s=e}md(t,!0,n,null,o);break;case"together":md(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Wl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function rr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Es|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(V(153));if(t.child!==null){for(e=t.child,n=Lr(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Lr(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function CC(e,t,n){switch(t.tag){case 3:Dw(t),jo();break;case 5:uw(t);break;case 1:Lt(t.type)&&mc(t);break;case 4:Pp(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,s=t.memoizedProps.value;we(bc,r._currentValue),r._currentValue=s;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(we(Re,Re.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Iw(e,t,n):(we(Re,Re.current&1),e=rr(e,t,n),e!==null?e.sibling:null);we(Re,Re.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return Fw(e,t,n);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),we(Re,Re.current),r)break;return null;case 22:case 23:return t.lanes=0,Lw(e,t,n)}return rr(e,t,n)}var zw,Gh,Vw,Bw;zw=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Gh=function(){};Vw=function(e,t,n,r){var s=e.memoizedProps;if(s!==r){e=t.stateNode,ms(On.current);var o=null;switch(n){case"input":s=ph(e,s),r=ph(e,r),o=[];break;case"select":s=Le({},s,{value:void 0}),r=Le({},r,{value:void 0}),o=[];break;case"textarea":s=yh(e,s),r=yh(e,r),o=[];break;default:typeof s.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=pc)}bh(n,r);var i;n=null;for(u in s)if(!r.hasOwnProperty(u)&&s.hasOwnProperty(u)&&s[u]!=null)if(u==="style"){var a=s[u];for(i in a)a.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(Ki.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in r){var l=r[u];if(a=s!=null?s[u]:void 0,r.hasOwnProperty(u)&&l!==a&&(l!=null||a!=null))if(u==="style")if(a){for(i in a)!a.hasOwnProperty(i)||l&&l.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in l)l.hasOwnProperty(i)&&a[i]!==l[i]&&(n||(n={}),n[i]=l[i])}else n||(o||(o=[]),o.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,a=a?a.__html:void 0,l!=null&&a!==l&&(o=o||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(o=o||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(Ki.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&_e("scroll",e),o||a===l||(o=[])):(o=o||[]).push(u,l))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}};Bw=function(e,t,n,r){n!==r&&(t.flags|=4)};function oi(e,t){if(!Ne)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function dt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags&14680064,r|=s.flags&14680064,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)n|=s.lanes|s.childLanes,r|=s.subtreeFlags,r|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function NC(e,t,n){var r=t.pendingProps;switch(wp(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return dt(t),null;case 1:return Lt(t.type)&&gc(),dt(t),null;case 3:return r=t.stateNode,No(),Ce(Mt),Ce(xt),Ep(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(sl(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,xn!==null&&(ef(xn),xn=null))),Gh(e,t),dt(t),null;case 5:Rp(t);var s=ms(ia.current);if(n=t.type,e!==null&&t.stateNode!=null)Vw(e,t,n,r,s),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(V(166));return dt(t),null}if(e=ms(On.current),sl(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[Mn]=t,r[sa]=o,e=(t.mode&1)!==0,n){case"dialog":_e("cancel",r),_e("close",r);break;case"iframe":case"object":case"embed":_e("load",r);break;case"video":case"audio":for(s=0;s<\/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[Mn]=t,e[sa]=r,zw(e,t,!1,!1),t.stateNode=e;e:{switch(i=vh(n,r),n){case"dialog":_e("cancel",e),_e("close",e),s=r;break;case"iframe":case"object":case"embed":_e("load",e),s=r;break;case"video":case"audio":for(s=0;sRo&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304)}else{if(!r)if(e=kc(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Ne)return dt(t),null}else 2*De()-o.renderingStartTime>Ro&&n!==1073741824&&(t.flags|=128,r=!0,oi(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=De(),t.sibling=null,n=Re.current,we(Re,r?n&1|2:n&1),t):(dt(t),null);case 22:case 23:return Bp(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(Ht&1073741824)!==0&&(dt(t),t.subtreeFlags&6&&(t.flags|=8192)):dt(t),null;case 24:return null;case 25:return null}throw Error(V(156,t.tag))}function PC(e,t){switch(wp(t),t.tag){case 1:return Lt(t.type)&&gc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return No(),Ce(Mt),Ce(xt),Ep(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Rp(t),null;case 13:if(Ce(Re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(V(340));jo()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ce(Re),null;case 4:return No(),null;case 10:return jp(t.type._context),null;case 22:case 23:return Bp(),null;case 24:return null;default:return null}}var al=!1,gt=!1,RC=typeof WeakSet=="function"?WeakSet:Set,K=null;function io(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Oe(e,t,r)}else n.current=null}function qh(e,t,n){try{n()}catch(r){Oe(e,t,r)}}var o0=!1;function EC(e,t){if(Eh=dc,e=Gv(),bp(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 s=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,l=-1,u=0,d=0,h=e,f=null;t:for(;;){for(var p;h!==n||s!==0&&h.nodeType!==3||(a=i+s),h!==o||r!==0&&h.nodeType!==3||(l=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(p=h.firstChild)!==null;)f=h,h=p;for(;;){if(h===e)break t;if(f===n&&++u===s&&(a=i),f===o&&++d===r&&(l=i),(p=h.nextSibling)!==null)break;h=f,f=h.parentNode}h=p}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Th={focusedElem:e,selectionRange:n},dc=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var g=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,y=g.memoizedState,x=t.stateNode,v=x.getSnapshotBeforeUpdate(t.elementType===t.type?m:mn(t.type,m),y);x.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(k){Oe(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return g=o0,o0=!1,g}function Li(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var o=s.destroy;s.destroy=void 0,o!==void 0&&qh(t,n,o)}s=s.next}while(s!==r)}}function ou(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 Kh(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 $w(e){var t=e.alternate;t!==null&&(e.alternate=null,$w(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Mn],delete t[sa],delete t[Lh],delete t[hC],delete t[fC])),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 Hw(e){return e.tag===5||e.tag===3||e.tag===4}function i0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Hw(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 Yh(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=pc));else if(r!==4&&(e=e.child,e!==null))for(Yh(e,t,n),e=e.sibling;e!==null;)Yh(e,t,n),e=e.sibling}function Xh(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(Xh(e,t,n),e=e.sibling;e!==null;)Xh(e,t,n),e=e.sibling}var ot=null,yn=!1;function cr(e,t,n){for(n=n.child;n!==null;)Uw(e,t,n),n=n.sibling}function Uw(e,t,n){if(Ln&&typeof Ln.onCommitFiberUnmount=="function")try{Ln.onCommitFiberUnmount(Qc,n)}catch{}switch(n.tag){case 5:gt||io(n,t);case 6:var r=ot,s=yn;ot=null,cr(e,t,n),ot=r,yn=s,ot!==null&&(yn?(e=ot,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ot.removeChild(n.stateNode));break;case 18:ot!==null&&(yn?(e=ot,n=n.stateNode,e.nodeType===8?cd(e.parentNode,n):e.nodeType===1&&cd(e,n),Zi(e)):cd(ot,n.stateNode));break;case 4:r=ot,s=yn,ot=n.stateNode.containerInfo,yn=!0,cr(e,t,n),ot=r,yn=s;break;case 0:case 11:case 14:case 15:if(!gt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var o=s,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&qh(n,t,i),s=s.next}while(s!==r)}cr(e,t,n);break;case 1:if(!gt&&(io(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){Oe(n,t,a)}cr(e,t,n);break;case 21:cr(e,t,n);break;case 22:n.mode&1?(gt=(r=gt)||n.memoizedState!==null,cr(e,t,n),gt=r):cr(e,t,n);break;default:cr(e,t,n)}}function a0(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new RC),t.forEach(function(r){var s=zC.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function gn(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=i),r&=~o}if(r=s,r=De()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*AC(r/1960))-r,10e?16:e,wr===null)var r=!1;else{if(e=wr,wr=null,Nc=0,(pe&6)!==0)throw Error(V(331));var s=pe;for(pe|=4,K=e.current;K!==null;){var o=K,i=o.child;if((K.flags&16)!==0){var a=o.deletions;if(a!==null){for(var l=0;lDe()-zp?ws(e,0):Fp|=n),Ot(e,t)}function Jw(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ja,Ja<<=1,(Ja&130023424)===0&&(Ja=4194304)));var n=jt();e=nr(e,t),e!==null&&(Na(e,t,n),Ot(e,n))}function FC(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Jw(e,n)}function zC(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(V(314))}r!==null&&r.delete(t),Jw(e,n)}var Zw;Zw=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Mt.current)At=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return At=!1,CC(e,t,n);At=(e.flags&131072)!==0}else At=!1,Ne&&(t.flags&1048576)!==0&&rw(t,xc,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Wl(e,t),e=t.pendingProps;var s=_o(t,xt.current);xo(t,n),s=Ap(null,t,r,e,s,n);var o=Mp();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Lt(r)?(o=!0,mc(t)):o=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Np(t),s.updater=su,t.stateNode=s,s._reactInternals=t,Vh(t,r,e,n),t=Hh(null,t,r,!0,o,n)):(t.tag=0,Ne&&o&&vp(t),kt(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Wl(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=BC(r),e=mn(r,e),s){case 0:t=$h(null,t,r,e,n);break e;case 1:t=n0(null,t,r,e,n);break e;case 11:t=e0(null,t,r,e,n);break e;case 14:t=t0(null,t,r,mn(r.type,e),n);break e}throw Error(V(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),$h(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),n0(e,t,r,s,n);case 3:e:{if(Dw(t),e===null)throw Error(V(387));r=t.pendingProps,o=t.memoizedState,s=o.element,cw(e,t),wc(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){s=Po(Error(V(423)),t),t=r0(e,t,r,n,s);break e}else if(r!==s){s=Po(Error(V(424)),t),t=r0(e,t,r,n,s);break e}else for(Wt=Er(t.stateNode.containerInfo.firstChild),Gt=t,Ne=!0,xn=null,n=aw(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(jo(),r===s){t=rr(e,t,n);break e}kt(e,t,r,n)}t=t.child}return t;case 5:return uw(t),e===null&&Ih(t),r=t.type,s=t.pendingProps,o=e!==null?e.memoizedProps:null,i=s.children,Ah(r,s)?i=null:o!==null&&Ah(r,o)&&(t.flags|=32),Ow(e,t),kt(e,t,i,n),t.child;case 6:return e===null&&Ih(t),null;case 13:return Iw(e,t,n);case 4:return Pp(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Co(t,null,r,n):kt(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),e0(e,t,r,s,n);case 7:return kt(e,t,t.pendingProps,n),t.child;case 8:return kt(e,t,t.pendingProps.children,n),t.child;case 12:return kt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,o=t.memoizedProps,i=s.value,we(bc,r._currentValue),r._currentValue=i,o!==null)if(Sn(o.value,i)){if(o.children===s.children&&!Mt.current){t=rr(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Xn(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Fh(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(V(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Fh(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}kt(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,xo(t,n),s=un(s),r=r(s),t.flags|=1,kt(e,t,r,n),t.child;case 14:return r=t.type,s=mn(r,t.pendingProps),s=mn(r.type,s),t0(e,t,r,s,n);case 15:return Mw(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:mn(r,s),Wl(e,t),t.tag=1,Lt(r)?(e=!0,mc(t)):e=!1,xo(t,n),Ew(t,r,s),Vh(t,r,s,n),Hh(null,t,r,!0,e,n);case 19:return Fw(e,t,n);case 22:return Lw(e,t,n)}throw Error(V(156,t.tag))};function e1(e,t){return Nv(e,t)}function VC(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 an(e,t,n,r){return new VC(e,t,n,r)}function Hp(e){return e=e.prototype,!(!e||!e.isReactComponent)}function BC(e){if(typeof e=="function")return Hp(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lp)return 11;if(e===cp)return 14}return 2}function Lr(e,t){var n=e.alternate;return n===null?(n=an(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 Kl(e,t,n,r,s,o){var i=2;if(r=e,typeof e=="function")Hp(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Qs:return ks(n.children,s,o,t);case ap:i=8,s|=8;break;case uh:return e=an(12,n,t,s|2),e.elementType=uh,e.lanes=o,e;case dh:return e=an(13,n,t,s),e.elementType=dh,e.lanes=o,e;case hh:return e=an(19,n,t,s),e.elementType=hh,e.lanes=o,e;case uv:return au(n,s,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case lv:i=10;break e;case cv:i=9;break e;case lp:i=11;break e;case cp:i=14;break e;case pr:i=16,r=null;break e}throw Error(V(130,e==null?e:typeof e,""))}return t=an(i,n,t,s),t.elementType=e,t.type=r,t.lanes=o,t}function ks(e,t,n,r){return e=an(7,e,r,t),e.lanes=n,e}function au(e,t,n,r){return e=an(22,e,r,t),e.elementType=uv,e.lanes=n,e.stateNode={isHidden:!1},e}function yd(e,t,n){return e=an(6,e,null,t),e.lanes=n,e}function xd(e,t,n){return t=an(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $C(e,t,n,r,s){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=Ju(0),this.expirationTimes=Ju(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ju(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Up(e,t,n,r,s,o,i,a,l){return e=new $C(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=an(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Np(o),e}function HC(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s1)}catch(e){console.error(e)}}s1(),sv.exports=Xt;var o1=sv.exports;const KC=Gb(o1);var g0=o1;lh.createRoot=g0.createRoot,lh.hydrateRoot=g0.hydrateRoot;/** * @remix-run/router v1.23.2 * * Copyright (c) Remix Software Inc. @@ -46,7 +46,7 @@ Error generating stack: `+o.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function da(){return da=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Kp(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function XC(){return Math.random().toString(36).substr(2,8)}function y0(e,t){return{usr:e.state,key:e.key,idx:t}}function tf(e,t,n,r){return n===void 0&&(n=null),da({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Uo(t):t,{state:n,key:t&&t.key||r||XC()})}function Rc(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 Uo(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 QC(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:o=!1}=r,i=s.history,a=kr.Pop,l=null,u=d();u==null&&(u=0,i.replaceState(da({},i.state,{idx:u}),""));function d(){return(i.state||{idx:null}).idx}function h(){a=kr.Pop;let y=d(),x=y==null?null:y-u;u=y,l&&l({action:a,location:m.location,delta:x})}function f(y,x){a=kr.Push;let v=tf(m.location,y,x);u=d()+1;let b=y0(v,u),k=m.createHref(v);try{i.pushState(b,"",k)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;s.location.assign(k)}o&&l&&l({action:a,location:m.location,delta:1})}function p(y,x){a=kr.Replace;let v=tf(m.location,y,x);u=d();let b=y0(v,u),k=m.createHref(v);i.replaceState(b,"",k),o&&l&&l({action:a,location:m.location,delta:0})}function g(y){let x=s.location.origin!=="null"?s.location.origin:s.location.href,v=typeof y=="string"?y:Rc(y);return v=v.replace(/ $/,"%20"),ze(x,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,x)}let m={get action(){return a},get location(){return e(s,i)},listen(y){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(m0,h),l=y,()=>{s.removeEventListener(m0,h),l=null}},createHref(y){return t(s,y)},createURL:g,encodeLocation(y){let x=g(y);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:p,go(y){return i.go(y)}};return m}var x0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(x0||(x0={}));function JC(e,t,n){return n===void 0&&(n="/"),ZC(e,t,n)}function ZC(e,t,n,r){let s=typeof t=="string"?Uo(t):t,o=Yp(s.pathname||"/",n);if(o==null)return null;let i=i1(e);eN(i);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(ze(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=Or([r,l.relativePath]),d=n.concat(l);o.children&&o.children.length>0&&(ze(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),i1(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:aN(u,o.index),routesMeta:d})};return e.forEach((o,i)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))s(o,i);else for(let l of a1(o.path))s(o,i,l)}),t}function a1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return s?[o,""]:[o];let i=a1(r.join("/")),a=[];return a.push(...i.map(l=>l===""?o:[o,l].join("/"))),s&&a.push(...i),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function eN(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:lN(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const tN=/^:[\w-]+$/,nN=3,rN=2,sN=1,oN=10,iN=-2,b0=e=>e==="*";function aN(e,t){let n=e.split("/"),r=n.length;return n.some(b0)&&(r+=iN),t&&(r+=rN),n.filter(s=>!b0(s)).reduce((s,o)=>s+(tN.test(o)?nN:o===""?sN:oN),r)}function lN(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function cN(e,t,n){let{routesMeta:r}=e,s={},o="/",i=[];for(let a=0;a{let{paramName:f,isOptional:p}=d;if(f==="*"){let m=a[h]||"";i=o.slice(0,o.length-m.length).replace(/(.)\/+$/,"$1")}const g=a[h];return p&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function dN(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Kp(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function hN(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Kp(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Yp(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 fN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,pN=e=>fN.test(e);function gN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Uo(e):e,o;if(n)if(pN(n))o=n;else{if(n.includes("//")){let i=n;n=n.replace(/\/\/+/g,"/"),Kp(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?o=v0(n.substring(1),"/"):o=v0(n,t)}else o=t;return{pathname:o,search:xN(r),hash:bN(s)}}function v0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function xd(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function mN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Xp(e,t){let n=mN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Qp(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Uo(e):(s=da({},e),ze(!s.pathname||!s.pathname.includes("?"),xd("?","pathname","search",s)),ze(!s.pathname||!s.pathname.includes("#"),xd("#","pathname","hash",s)),ze(!s.search||!s.search.includes("#"),xd("#","search","hash",s)));let o=e===""||s.pathname==="",i=o?"/":s.pathname,a;if(i==null)a=n;else{let h=t.length-1;if(!r&&i.startsWith("..")){let f=i.split("/");for(;f[0]==="..";)f.shift(),h-=1;s.pathname=f.join("/")}a=h>=0?t[h]:"/"}let l=gN(s,a),u=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||d)&&(l.pathname+="/"),l}const Or=e=>e.join("/").replace(/\/\/+/g,"/"),yN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),xN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function vN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const l1=["post","put","patch","delete"];new Set(l1);const wN=["get",...l1];new Set(wN);/** + */function da(){return da=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Kp(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function XC(){return Math.random().toString(36).substr(2,8)}function y0(e,t){return{usr:e.state,key:e.key,idx:t}}function tf(e,t,n,r){return n===void 0&&(n=null),da({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Uo(t):t,{state:n,key:t&&t.key||r||XC()})}function Ec(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 Uo(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 QC(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:o=!1}=r,i=s.history,a=kr.Pop,l=null,u=d();u==null&&(u=0,i.replaceState(da({},i.state,{idx:u}),""));function d(){return(i.state||{idx:null}).idx}function h(){a=kr.Pop;let y=d(),x=y==null?null:y-u;u=y,l&&l({action:a,location:m.location,delta:x})}function f(y,x){a=kr.Push;let v=tf(m.location,y,x);u=d()+1;let b=y0(v,u),k=m.createHref(v);try{i.pushState(b,"",k)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;s.location.assign(k)}o&&l&&l({action:a,location:m.location,delta:1})}function p(y,x){a=kr.Replace;let v=tf(m.location,y,x);u=d();let b=y0(v,u),k=m.createHref(v);i.replaceState(b,"",k),o&&l&&l({action:a,location:m.location,delta:0})}function g(y){let x=s.location.origin!=="null"?s.location.origin:s.location.href,v=typeof y=="string"?y:Ec(y);return v=v.replace(/ $/,"%20"),ze(x,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,x)}let m={get action(){return a},get location(){return e(s,i)},listen(y){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(m0,h),l=y,()=>{s.removeEventListener(m0,h),l=null}},createHref(y){return t(s,y)},createURL:g,encodeLocation(y){let x=g(y);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:f,replace:p,go(y){return i.go(y)}};return m}var x0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(x0||(x0={}));function JC(e,t,n){return n===void 0&&(n="/"),ZC(e,t,n)}function ZC(e,t,n,r){let s=typeof t=="string"?Uo(t):t,o=Yp(s.pathname||"/",n);if(o==null)return null;let i=i1(e);eN(i);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(ze(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=Or([r,l.relativePath]),d=n.concat(l);o.children&&o.children.length>0&&(ze(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),i1(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:aN(u,o.index),routesMeta:d})};return e.forEach((o,i)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))s(o,i);else for(let l of a1(o.path))s(o,i,l)}),t}function a1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return s?[o,""]:[o];let i=a1(r.join("/")),a=[];return a.push(...i.map(l=>l===""?o:[o,l].join("/"))),s&&a.push(...i),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function eN(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:lN(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const tN=/^:[\w-]+$/,nN=3,rN=2,sN=1,oN=10,iN=-2,b0=e=>e==="*";function aN(e,t){let n=e.split("/"),r=n.length;return n.some(b0)&&(r+=iN),t&&(r+=rN),n.filter(s=>!b0(s)).reduce((s,o)=>s+(tN.test(o)?nN:o===""?sN:oN),r)}function lN(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function cN(e,t,n){let{routesMeta:r}=e,s={},o="/",i=[];for(let a=0;a{let{paramName:f,isOptional:p}=d;if(f==="*"){let m=a[h]||"";i=o.slice(0,o.length-m.length).replace(/(.)\/+$/,"$1")}const g=a[h];return p&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function dN(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Kp(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function hN(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Kp(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Yp(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 fN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,pN=e=>fN.test(e);function gN(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Uo(e):e,o;if(n)if(pN(n))o=n;else{if(n.includes("//")){let i=n;n=n.replace(/\/\/+/g,"/"),Kp(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?o=v0(n.substring(1),"/"):o=v0(n,t)}else o=t;return{pathname:o,search:xN(r),hash:bN(s)}}function v0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function bd(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function mN(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Xp(e,t){let n=mN(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Qp(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Uo(e):(s=da({},e),ze(!s.pathname||!s.pathname.includes("?"),bd("?","pathname","search",s)),ze(!s.pathname||!s.pathname.includes("#"),bd("#","pathname","hash",s)),ze(!s.search||!s.search.includes("#"),bd("#","search","hash",s)));let o=e===""||s.pathname==="",i=o?"/":s.pathname,a;if(i==null)a=n;else{let h=t.length-1;if(!r&&i.startsWith("..")){let f=i.split("/");for(;f[0]==="..";)f.shift(),h-=1;s.pathname=f.join("/")}a=h>=0?t[h]:"/"}let l=gN(s,a),u=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||d)&&(l.pathname+="/"),l}const Or=e=>e.join("/").replace(/\/\/+/g,"/"),yN=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),xN=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bN=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function vN(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const l1=["post","put","patch","delete"];new Set(l1);const wN=["get",...l1];new Set(wN);/** * React Router v6.30.3 * * Copyright (c) Remix Software Inc. @@ -55,7 +55,7 @@ Error generating stack: `+o.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function ha(){return ha=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),S.useCallback(function(u,d){if(d===void 0&&(d={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let h=Qp(u,JSON.parse(i),o,d.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Or([t,h.pathname])),(d.replace?r.replace:r.push)(h,d.state,d)},[t,r,i,o,e])}function d1(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=S.useContext(Yr),{matches:s}=S.useContext(Xr),{pathname:o}=ir(),i=JSON.stringify(Xp(s,r.v7_relativeSplatPath));return S.useMemo(()=>Qp(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function jN(e,t){return CN(e,t)}function CN(e,t,n,r){Wo()||ze(!1);let{navigator:s}=S.useContext(Yr),{matches:o}=S.useContext(Xr),i=o[o.length-1],a=i?i.params:{};i&&i.pathname;let l=i?i.pathnameBase:"/";i&&i.route;let u=ir(),d;if(t){var h;let y=typeof t=="string"?Uo(t):t;l==="/"||(h=y.pathname)!=null&&h.startsWith(l)||ze(!1),d=y}else d=u;let f=d.pathname||"/",p=f;if(l!=="/"){let y=l.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=JC(e,{pathname:p}),m=TN(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},a,y.params),pathname:Or([l,s.encodeLocation?s.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:Or([l,s.encodeLocation?s.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),o,n,r);return t&&m?S.createElement(du.Provider,{value:{location:ha({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:kr.Pop}},m):m}function NN(){let e=ON(),t=vN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},t),n?S.createElement("pre",{style:s},n):null,null)}const PN=S.createElement(NN,null);class RN extends S.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?S.createElement(Xr.Provider,{value:this.props.routeContext},S.createElement(c1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function EN(e){let{routeContext:t,match:n,children:r}=e,s=S.useContext(Jp);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),S.createElement(Xr.Provider,{value:t},r)}function TN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,a=(s=n)==null?void 0:s.errors;if(a!=null){let d=i.findIndex(h=>h.route.id&&(a==null?void 0:a[h.route.id])!==void 0);d>=0||ze(!1),i=i.slice(0,Math.min(i.length,d+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,u+1):i=[i[0]];break}}}return i.reduceRight((d,h,f)=>{let p,g=!1,m=null,y=null;n&&(p=a&&h.route.id?a[h.route.id]:void 0,m=h.route.errorElement||PN,l&&(u<0&&f===0?(IN("route-fallback"),g=!0,y=null):u===f&&(g=!0,y=h.route.hydrateFallbackElement||null)));let x=t.concat(i.slice(0,f+1)),v=()=>{let b;return p?b=m:g?b=y:h.route.Component?b=S.createElement(h.route.Component,null):h.route.element?b=h.route.element:b=d,S.createElement(EN,{match:h,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:b})};return n&&(h.route.ErrorBoundary||h.route.errorElement||f===0)?S.createElement(RN,{location:n.location,revalidation:n.revalidation,component:m,error:p,children:v(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):v()},null)}var h1=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(h1||{}),f1=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(f1||{});function AN(e){let t=S.useContext(Jp);return t||ze(!1),t}function MN(e){let t=S.useContext(kN);return t||ze(!1),t}function LN(e){let t=S.useContext(Xr);return t||ze(!1),t}function p1(e){let t=LN(),n=t.matches[t.matches.length-1];return n.route.id||ze(!1),n.route.id}function ON(){var e;let t=S.useContext(c1),n=MN(),r=p1();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function DN(){let{router:e}=AN(h1.UseNavigateStable),t=p1(f1.UseNavigateStable),n=S.useRef(!1);return u1(()=>{n.current=!0}),S.useCallback(function(s,o){o===void 0&&(o={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,ha({fromRouteId:t},o)))},[e,t])}const w0={};function IN(e,t,n){w0[e]||(w0[e]=!0)}function FN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function g1(e){let{to:t,replace:n,state:r,relative:s}=e;Wo()||ze(!1);let{future:o,static:i}=S.useContext(Yr),{matches:a}=S.useContext(Xr),{pathname:l}=ir(),u=Is(),d=Qp(t,Xp(a,o.v7_relativeSplatPath),l,s==="path"),h=JSON.stringify(d);return S.useEffect(()=>u(JSON.parse(h),{replace:n,state:r,relative:s}),[u,h,s,n,r]),null}function Qe(e){ze(!1)}function zN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=kr.Pop,navigator:o,static:i=!1,future:a}=e;Wo()&&ze(!1);let l=t.replace(/^\/*/,"/"),u=S.useMemo(()=>({basename:l,navigator:o,static:i,future:ha({v7_relativeSplatPath:!1},a)}),[l,a,o,i]);typeof r=="string"&&(r=Uo(r));let{pathname:d="/",search:h="",hash:f="",state:p=null,key:g="default"}=r,m=S.useMemo(()=>{let y=Yp(d,l);return y==null?null:{location:{pathname:y,search:h,hash:f,state:p,key:g},navigationType:s}},[l,d,h,f,p,g,s]);return m==null?null:S.createElement(Yr.Provider,{value:u},S.createElement(du.Provider,{children:n,value:m}))}function VN(e){let{children:t,location:n}=e;return jN(nf(t),n)}new Promise(()=>{});function nf(e,t){t===void 0&&(t=[]);let n=[];return S.Children.forEach(e,(r,s)=>{if(!S.isValidElement(r))return;let o=[...t,s];if(r.type===S.Fragment){n.push.apply(n,nf(r.props.children,o));return}r.type!==Qe&&ze(!1),!r.props.index||!r.props.children||ze(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=nf(r.props.children,o)),n.push(i)}),n}/** + */function ha(){return ha=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),S.useCallback(function(u,d){if(d===void 0&&(d={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let h=Qp(u,JSON.parse(i),o,d.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Or([t,h.pathname])),(d.replace?r.replace:r.push)(h,d.state,d)},[t,r,i,o,e])}function d1(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=S.useContext(Yr),{matches:s}=S.useContext(Xr),{pathname:o}=ir(),i=JSON.stringify(Xp(s,r.v7_relativeSplatPath));return S.useMemo(()=>Qp(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function jN(e,t){return CN(e,t)}function CN(e,t,n,r){Wo()||ze(!1);let{navigator:s}=S.useContext(Yr),{matches:o}=S.useContext(Xr),i=o[o.length-1],a=i?i.params:{};i&&i.pathname;let l=i?i.pathnameBase:"/";i&&i.route;let u=ir(),d;if(t){var h;let y=typeof t=="string"?Uo(t):t;l==="/"||(h=y.pathname)!=null&&h.startsWith(l)||ze(!1),d=y}else d=u;let f=d.pathname||"/",p=f;if(l!=="/"){let y=l.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=JC(e,{pathname:p}),m=TN(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},a,y.params),pathname:Or([l,s.encodeLocation?s.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:Or([l,s.encodeLocation?s.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),o,n,r);return t&&m?S.createElement(hu.Provider,{value:{location:ha({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:kr.Pop}},m):m}function NN(){let e=ON(),t=vN(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},t),n?S.createElement("pre",{style:s},n):null,null)}const PN=S.createElement(NN,null);class RN extends S.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?S.createElement(Xr.Provider,{value:this.props.routeContext},S.createElement(c1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function EN(e){let{routeContext:t,match:n,children:r}=e,s=S.useContext(Jp);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),S.createElement(Xr.Provider,{value:t},r)}function TN(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,a=(s=n)==null?void 0:s.errors;if(a!=null){let d=i.findIndex(h=>h.route.id&&(a==null?void 0:a[h.route.id])!==void 0);d>=0||ze(!1),i=i.slice(0,Math.min(i.length,d+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,u+1):i=[i[0]];break}}}return i.reduceRight((d,h,f)=>{let p,g=!1,m=null,y=null;n&&(p=a&&h.route.id?a[h.route.id]:void 0,m=h.route.errorElement||PN,l&&(u<0&&f===0?(IN("route-fallback"),g=!0,y=null):u===f&&(g=!0,y=h.route.hydrateFallbackElement||null)));let x=t.concat(i.slice(0,f+1)),v=()=>{let b;return p?b=m:g?b=y:h.route.Component?b=S.createElement(h.route.Component,null):h.route.element?b=h.route.element:b=d,S.createElement(EN,{match:h,routeContext:{outlet:d,matches:x,isDataRoute:n!=null},children:b})};return n&&(h.route.ErrorBoundary||h.route.errorElement||f===0)?S.createElement(RN,{location:n.location,revalidation:n.revalidation,component:m,error:p,children:v(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):v()},null)}var h1=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(h1||{}),f1=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(f1||{});function AN(e){let t=S.useContext(Jp);return t||ze(!1),t}function MN(e){let t=S.useContext(kN);return t||ze(!1),t}function LN(e){let t=S.useContext(Xr);return t||ze(!1),t}function p1(e){let t=LN(),n=t.matches[t.matches.length-1];return n.route.id||ze(!1),n.route.id}function ON(){var e;let t=S.useContext(c1),n=MN(),r=p1();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function DN(){let{router:e}=AN(h1.UseNavigateStable),t=p1(f1.UseNavigateStable),n=S.useRef(!1);return u1(()=>{n.current=!0}),S.useCallback(function(s,o){o===void 0&&(o={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,ha({fromRouteId:t},o)))},[e,t])}const w0={};function IN(e,t,n){w0[e]||(w0[e]=!0)}function FN(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function g1(e){let{to:t,replace:n,state:r,relative:s}=e;Wo()||ze(!1);let{future:o,static:i}=S.useContext(Yr),{matches:a}=S.useContext(Xr),{pathname:l}=ir(),u=Is(),d=Qp(t,Xp(a,o.v7_relativeSplatPath),l,s==="path"),h=JSON.stringify(d);return S.useEffect(()=>u(JSON.parse(h),{replace:n,state:r,relative:s}),[u,h,s,n,r]),null}function Qe(e){ze(!1)}function zN(e){let{basename:t="/",children:n=null,location:r,navigationType:s=kr.Pop,navigator:o,static:i=!1,future:a}=e;Wo()&&ze(!1);let l=t.replace(/^\/*/,"/"),u=S.useMemo(()=>({basename:l,navigator:o,static:i,future:ha({v7_relativeSplatPath:!1},a)}),[l,a,o,i]);typeof r=="string"&&(r=Uo(r));let{pathname:d="/",search:h="",hash:f="",state:p=null,key:g="default"}=r,m=S.useMemo(()=>{let y=Yp(d,l);return y==null?null:{location:{pathname:y,search:h,hash:f,state:p,key:g},navigationType:s}},[l,d,h,f,p,g,s]);return m==null?null:S.createElement(Yr.Provider,{value:u},S.createElement(hu.Provider,{children:n,value:m}))}function VN(e){let{children:t,location:n}=e;return jN(nf(t),n)}new Promise(()=>{});function nf(e,t){t===void 0&&(t=[]);let n=[];return S.Children.forEach(e,(r,s)=>{if(!S.isValidElement(r))return;let o=[...t,s];if(r.type===S.Fragment){n.push.apply(n,nf(r.props.children,o));return}r.type!==Qe&&ze(!1),!r.props.index||!r.props.children||ze(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=nf(r.props.children,o)),n.push(i)}),n}/** * React Router DOM v6.30.3 * * Copyright (c) Remix Software Inc. @@ -64,12 +64,12 @@ Error generating stack: `+o.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function rf(){return rf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function $N(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function HN(e,t){return e.button===0&&(!t||t==="_self")&&!$N(e)}function sf(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(s=>[n,s]):[[n,r]])},[]))}function UN(e,t){let n=sf(e);return t&&t.forEach((r,s)=>{n.has(s)||t.getAll(s).forEach(o=>{n.append(s,o)})}),n}const WN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],GN="6";try{window.__reactRouterVersion=GN}catch{}const qN="startTransition",k0=I_[qN];function KN(e){let{basename:t,children:n,future:r,window:s}=e,o=S.useRef();o.current==null&&(o.current=YC({window:s,v5Compat:!0}));let i=o.current,[a,l]=S.useState({action:i.action,location:i.location}),{v7_startTransition:u}=r||{},d=S.useCallback(h=>{u&&k0?k0(()=>l(h)):l(h)},[l,u]);return S.useLayoutEffect(()=>i.listen(d),[i,d]),S.useEffect(()=>FN(r),[r]),S.createElement(zN,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i,future:r})}const YN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",XN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ee=S.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:o,replace:i,state:a,target:l,to:u,preventScrollReset:d,viewTransition:h}=t,f=BN(t,WN),{basename:p}=S.useContext(Yr),g,m=!1;if(typeof u=="string"&&XN.test(u)&&(g=u,YN))try{let b=new URL(window.location.href),k=u.startsWith("//")?new URL(b.protocol+u):new URL(u),w=Yp(k.pathname,p);k.origin===b.origin&&w!=null?u=w+k.search+k.hash:m=!0}catch{}let y=SN(u,{relative:s}),x=QN(u,{replace:i,state:a,target:l,preventScrollReset:d,relative:s,viewTransition:h});function v(b){r&&r(b),b.defaultPrevented||x(b)}return S.createElement("a",rf({},f,{href:g||y,onClick:m||o?r:v,ref:n,target:l}))});var S0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(S0||(S0={}));var _0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(_0||(_0={}));function QN(e,t){let{target:n,replace:r,state:s,preventScrollReset:o,relative:i,viewTransition:a}=t===void 0?{}:t,l=Is(),u=ir(),d=d1(e,{relative:i});return S.useCallback(h=>{if(HN(h,n)){h.preventDefault();let f=r!==void 0?r:Rc(u)===Rc(d);l(e,{replace:f,state:s,preventScrollReset:o,relative:i,viewTransition:a})}},[u,l,d,r,s,n,e,o,i,a])}function m1(e){let t=S.useRef(sf(e)),n=S.useRef(!1),r=ir(),s=S.useMemo(()=>UN(r.search,n.current?null:t.current),[r.search]),o=Is(),i=S.useCallback((a,l)=>{const u=sf(typeof a=="function"?a(s):a);n.current=!0,o("?"+u,l)},[o,s]);return[s,i]}function JN(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const ZN=e=>{switch(e){case"success":return nP;case"info":return sP;case"warning":return rP;case"error":return oP;default:return null}},eP=Array(12).fill(0),tP=({visible:e,className:t})=>z.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},z.createElement("div",{className:"sonner-spinner"},eP.map((n,r)=>z.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),nP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),rP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),sP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),oP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),iP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},z.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),z.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),aP=()=>{const[e,t]=z.useState(document.hidden);return z.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let of=1;class lP{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:r,...s}=t,o=typeof(t==null?void 0:t.id)=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:of++,i=this.toasts.find(l=>l.id===o),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),i?this.toasts=this.toasts.map(l=>l.id===o?(this.publish({...l,...t,id:o,title:r}),{...l,...t,id:o,dismissible:a,title:r}):l):this.addToast({title:r,...s,dismissible:a,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(r=>r({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const s=Promise.resolve(t instanceof Function?t():t);let o=r!==void 0,i;const a=s.then(async u=>{if(i=["resolve",u],z.isValidElement(u))o=!1,this.create({id:r,type:"default",message:u});else if(uP(u)&&!u.ok){o=!1;const h=typeof n.error=="function"?await n.error(`HTTP error! status: ${u.status}`):n.error,f=typeof n.description=="function"?await n.description(`HTTP error! status: ${u.status}`):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"error",description:f,...g})}else if(u instanceof Error){o=!1;const h=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"error",description:f,...g})}else if(n.success!==void 0){o=!1;const h=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"success",description:f,...g})}}).catch(async u=>{if(i=["reject",u],n.error!==void 0){o=!1;const d=typeof n.error=="function"?await n.error(u):n.error,h=typeof n.description=="function"?await n.description(u):n.description,p=typeof d=="object"&&!z.isValidElement(d)?d:{message:d};this.create({id:r,type:"error",description:h,...p})}}).finally(()=>{o&&(this.dismiss(r),r=void 0),n.finally==null||n.finally.call(n)}),l=()=>new Promise((u,d)=>a.then(()=>i[0]==="reject"?d(i[1]):u(i[1])).catch(d));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,n)=>{const r=(n==null?void 0:n.id)||of++;return this.create({jsx:t(r),id:r,...n}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Pt=new lP,cP=(e,t)=>{const n=(t==null?void 0:t.id)||of++;return Pt.addToast({title:e,...t,id:n}),n},uP=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",dP=cP,hP=()=>Pt.toasts,fP=()=>Pt.getActiveToasts(),_n=Object.assign(dP,{success:Pt.success,info:Pt.info,warning:Pt.warning,error:Pt.error,custom:Pt.custom,message:Pt.message,promise:Pt.promise,dismiss:Pt.dismiss,loading:Pt.loading},{getHistory:hP,getToasts:fP});JN("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function ul(e){return e.label!==void 0}const pP=3,gP="24px",mP="16px",j0=4e3,yP=356,xP=14,bP=45,vP=200;function Nn(...e){return e.filter(Boolean).join(" ")}function wP(e){const[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}const kP=e=>{var t,n,r,s,o,i,a,l,u;const{invert:d,toast:h,unstyled:f,interacting:p,setHeights:g,visibleToasts:m,heights:y,index:x,toasts:v,expanded:b,removeToast:k,defaultRichColors:w,closeButton:j,style:N,cancelButtonStyle:_,actionButtonStyle:P,className:A="",descriptionClassName:O="",duration:F,position:D,gap:U,expandByDefault:W,classNames:M,icons:H,closeButtonAriaLabel:C="Close toast"}=e,[L,E]=z.useState(null),[I,K]=z.useState(null),[T,$]=z.useState(!1),[G,ne]=z.useState(!1),[ce,fe]=z.useState(!1),[tt,at]=z.useState(!1),[Ye,Jt]=z.useState(!1),[a_,Hu]=z.useState(0),[l_,Jg]=z.useState(0),Jo=z.useRef(h.duration||F||j0),Zg=z.useRef(null),In=z.useRef(null),c_=x===0,u_=x+1<=m,zt=h.type,Hs=h.dismissible!==!1,d_=h.className||"",h_=h.descriptionClassName||"",Ua=z.useMemo(()=>y.findIndex(oe=>oe.toastId===h.id)||0,[y,h.id]),f_=z.useMemo(()=>{var oe;return(oe=h.closeButton)!=null?oe:j},[h.closeButton,j]),em=z.useMemo(()=>h.duration||F||j0,[h.duration,F]),Uu=z.useRef(0),Us=z.useRef(0),tm=z.useRef(0),Ws=z.useRef(null),[p_,g_]=D.split("-"),nm=z.useMemo(()=>y.reduce((oe,Xe,lt)=>lt>=Ua?oe:oe+Xe.height,0),[y,Ua]),rm=aP(),m_=h.invert||d,Wu=zt==="loading";Us.current=z.useMemo(()=>Ua*U+nm,[Ua,nm]),z.useEffect(()=>{Jo.current=em},[em]),z.useEffect(()=>{$(!0)},[]),z.useEffect(()=>{const oe=In.current;if(oe){const Xe=oe.getBoundingClientRect().height;return Jg(Xe),g(lt=>[{toastId:h.id,height:Xe,position:h.position},...lt]),()=>g(lt=>lt.filter(Vt=>Vt.toastId!==h.id))}},[g,h.id]),z.useLayoutEffect(()=>{if(!T)return;const oe=In.current,Xe=oe.style.height;oe.style.height="auto";const lt=oe.getBoundingClientRect().height;oe.style.height=Xe,Jg(lt),g(Vt=>Vt.find(nt=>nt.toastId===h.id)?Vt.map(nt=>nt.toastId===h.id?{...nt,height:lt}:nt):[{toastId:h.id,height:lt,position:h.position},...Vt])},[T,h.title,h.description,g,h.id,h.jsx,h.action,h.cancel]);const lr=z.useCallback(()=>{ne(!0),Hu(Us.current),g(oe=>oe.filter(Xe=>Xe.toastId!==h.id)),setTimeout(()=>{k(h)},vP)},[h,k,g,Us]);z.useEffect(()=>{if(h.promise&&zt==="loading"||h.duration===1/0||h.type==="loading")return;let oe;return b||p||rm?(()=>{if(tm.current{Jo.current!==1/0&&(Uu.current=new Date().getTime(),oe=setTimeout(()=>{h.onAutoClose==null||h.onAutoClose.call(h,h),lr()},Jo.current))})(),()=>clearTimeout(oe)},[b,p,h,zt,rm,lr]),z.useEffect(()=>{h.delete&&(lr(),h.onDismiss==null||h.onDismiss.call(h,h))},[lr,h.delete]);function y_(){var oe;if(H!=null&&H.loading){var Xe;return z.createElement("div",{className:Nn(M==null?void 0:M.loader,h==null||(Xe=h.classNames)==null?void 0:Xe.loader,"sonner-loader"),"data-visible":zt==="loading"},H.loading)}return z.createElement(tP,{className:Nn(M==null?void 0:M.loader,h==null||(oe=h.classNames)==null?void 0:oe.loader),visible:zt==="loading"})}const x_=h.icon||(H==null?void 0:H[zt])||ZN(zt);var sm,om;return z.createElement("li",{tabIndex:0,ref:In,className:Nn(A,d_,M==null?void 0:M.toast,h==null||(t=h.classNames)==null?void 0:t.toast,M==null?void 0:M.default,M==null?void 0:M[zt],h==null||(n=h.classNames)==null?void 0:n[zt]),"data-sonner-toast":"","data-rich-colors":(sm=h.richColors)!=null?sm:w,"data-styled":!(h.jsx||h.unstyled||f),"data-mounted":T,"data-promise":!!h.promise,"data-swiped":Ye,"data-removed":G,"data-visible":u_,"data-y-position":p_,"data-x-position":g_,"data-index":x,"data-front":c_,"data-swiping":ce,"data-dismissible":Hs,"data-type":zt,"data-invert":m_,"data-swipe-out":tt,"data-swipe-direction":I,"data-expanded":!!(b||W&&T),"data-testid":h.testId,style:{"--index":x,"--toasts-before":x,"--z-index":v.length-x,"--offset":`${G?a_:Us.current}px`,"--initial-height":W?"auto":`${l_}px`,...N,...h.style},onDragEnd:()=>{fe(!1),E(null),Ws.current=null},onPointerDown:oe=>{oe.button!==2&&(Wu||!Hs||(Zg.current=new Date,Hu(Us.current),oe.target.setPointerCapture(oe.pointerId),oe.target.tagName!=="BUTTON"&&(fe(!0),Ws.current={x:oe.clientX,y:oe.clientY})))},onPointerUp:()=>{var oe,Xe,lt;if(tt||!Hs)return;Ws.current=null;const Vt=Number(((oe=In.current)==null?void 0:oe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Wa=Number(((Xe=In.current)==null?void 0:Xe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),nt=new Date().getTime()-((lt=Zg.current)==null?void 0:lt.getTime()),Zt=L==="x"?Vt:Wa,Ga=Math.abs(Zt)/nt;if(Math.abs(Zt)>=bP||Ga>.11){Hu(Us.current),h.onDismiss==null||h.onDismiss.call(h,h),K(L==="x"?Vt>0?"right":"left":Wa>0?"down":"up"),lr(),at(!0);return}else{var fn,pn;(fn=In.current)==null||fn.style.setProperty("--swipe-amount-x","0px"),(pn=In.current)==null||pn.style.setProperty("--swipe-amount-y","0px")}Jt(!1),fe(!1),E(null)},onPointerMove:oe=>{var Xe,lt,Vt;if(!Ws.current||!Hs||((Xe=window.getSelection())==null?void 0:Xe.toString().length)>0)return;const nt=oe.clientY-Ws.current.y,Zt=oe.clientX-Ws.current.x;var Ga;const fn=(Ga=e.swipeDirections)!=null?Ga:wP(D);!L&&(Math.abs(Zt)>1||Math.abs(nt)>1)&&E(Math.abs(Zt)>Math.abs(nt)?"x":"y");let pn={x:0,y:0};const im=es=>1/(1.5+Math.abs(es)/20);if(L==="y"){if(fn.includes("top")||fn.includes("bottom"))if(fn.includes("top")&&nt<0||fn.includes("bottom")&&nt>0)pn.y=nt;else{const es=nt*im(nt);pn.y=Math.abs(es)0)pn.x=Zt;else{const es=Zt*im(Zt);pn.x=Math.abs(es)0||Math.abs(pn.y)>0)&&Jt(!0),(lt=In.current)==null||lt.style.setProperty("--swipe-amount-x",`${pn.x}px`),(Vt=In.current)==null||Vt.style.setProperty("--swipe-amount-y",`${pn.y}px`)}},f_&&!h.jsx&&zt!=="loading"?z.createElement("button",{"aria-label":C,"data-disabled":Wu,"data-close-button":!0,onClick:Wu||!Hs?()=>{}:()=>{lr(),h.onDismiss==null||h.onDismiss.call(h,h)},className:Nn(M==null?void 0:M.closeButton,h==null||(r=h.classNames)==null?void 0:r.closeButton)},(om=H==null?void 0:H.close)!=null?om:iP):null,(zt||h.icon||h.promise)&&h.icon!==null&&((H==null?void 0:H[zt])!==null||h.icon)?z.createElement("div",{"data-icon":"",className:Nn(M==null?void 0:M.icon,h==null||(s=h.classNames)==null?void 0:s.icon)},h.promise||h.type==="loading"&&!h.icon?h.icon||y_():null,h.type!=="loading"?x_:null):null,z.createElement("div",{"data-content":"",className:Nn(M==null?void 0:M.content,h==null||(o=h.classNames)==null?void 0:o.content)},z.createElement("div",{"data-title":"",className:Nn(M==null?void 0:M.title,h==null||(i=h.classNames)==null?void 0:i.title)},h.jsx?h.jsx:typeof h.title=="function"?h.title():h.title),h.description?z.createElement("div",{"data-description":"",className:Nn(O,h_,M==null?void 0:M.description,h==null||(a=h.classNames)==null?void 0:a.description)},typeof h.description=="function"?h.description():h.description):null),z.isValidElement(h.cancel)?h.cancel:h.cancel&&ul(h.cancel)?z.createElement("button",{"data-button":!0,"data-cancel":!0,style:h.cancelButtonStyle||_,onClick:oe=>{ul(h.cancel)&&Hs&&(h.cancel.onClick==null||h.cancel.onClick.call(h.cancel,oe),lr())},className:Nn(M==null?void 0:M.cancelButton,h==null||(l=h.classNames)==null?void 0:l.cancelButton)},h.cancel.label):null,z.isValidElement(h.action)?h.action:h.action&&ul(h.action)?z.createElement("button",{"data-button":!0,"data-action":!0,style:h.actionButtonStyle||P,onClick:oe=>{ul(h.action)&&(h.action.onClick==null||h.action.onClick.call(h.action,oe),!oe.defaultPrevented&&lr())},className:Nn(M==null?void 0:M.actionButton,h==null||(u=h.classNames)==null?void 0:u.actionButton)},h.action.label):null)};function C0(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function SP(e,t){const n={};return[e,t].forEach((r,s)=>{const o=s===1,i=o?"--mobile-offset":"--offset",a=o?mP:gP;function l(u){["top","right","bottom","left"].forEach(d=>{n[`${i}-${d}`]=typeof u=="number"?`${u}px`:u})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(u=>{r[u]===void 0?n[`${i}-${u}`]=a:n[`${i}-${u}`]=typeof r[u]=="number"?`${r[u]}px`:r[u]}):l(a)}),n}const _P=z.forwardRef(function(t,n){const{id:r,invert:s,position:o="bottom-right",hotkey:i=["altKey","KeyT"],expand:a,closeButton:l,className:u,offset:d,mobileOffset:h,theme:f="light",richColors:p,duration:g,style:m,visibleToasts:y=pP,toastOptions:x,dir:v=C0(),gap:b=xP,icons:k,containerAriaLabel:w="Notifications"}=t,[j,N]=z.useState([]),_=z.useMemo(()=>r?j.filter(T=>T.toasterId===r):j.filter(T=>!T.toasterId),[j,r]),P=z.useMemo(()=>Array.from(new Set([o].concat(_.filter(T=>T.position).map(T=>T.position)))),[_,o]),[A,O]=z.useState([]),[F,D]=z.useState(!1),[U,W]=z.useState(!1),[M,H]=z.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),C=z.useRef(null),L=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),E=z.useRef(null),I=z.useRef(!1),K=z.useCallback(T=>{N($=>{var G;return(G=$.find(ne=>ne.id===T.id))!=null&&G.delete||Pt.dismiss(T.id),$.filter(({id:ne})=>ne!==T.id)})},[]);return z.useEffect(()=>Pt.subscribe(T=>{if(T.dismiss){requestAnimationFrame(()=>{N($=>$.map(G=>G.id===T.id?{...G,delete:!0}:G))});return}setTimeout(()=>{KC.flushSync(()=>{N($=>{const G=$.findIndex(ne=>ne.id===T.id);return G!==-1?[...$.slice(0,G),{...$[G],...T},...$.slice(G+1)]:[T,...$]})})})}),[j]),z.useEffect(()=>{if(f!=="system"){H(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?H("dark"):H("light")),typeof window>"u")return;const T=window.matchMedia("(prefers-color-scheme: dark)");try{T.addEventListener("change",({matches:$})=>{H($?"dark":"light")})}catch{T.addListener(({matches:G})=>{try{H(G?"dark":"light")}catch(ne){console.error(ne)}})}},[f]),z.useEffect(()=>{j.length<=1&&D(!1)},[j]),z.useEffect(()=>{const T=$=>{var G;if(i.every(fe=>$[fe]||$.code===fe)){var ce;D(!0),(ce=C.current)==null||ce.focus()}$.code==="Escape"&&(document.activeElement===C.current||(G=C.current)!=null&&G.contains(document.activeElement))&&D(!1)};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[i]),z.useEffect(()=>{if(C.current)return()=>{E.current&&(E.current.focus({preventScroll:!0}),E.current=null,I.current=!1)}},[C.current]),z.createElement("section",{ref:n,"aria-label":`${w} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},P.map((T,$)=>{var G;const[ne,ce]=T.split("-");return _.length?z.createElement("ol",{key:T,dir:v==="auto"?C0():v,tabIndex:-1,ref:C,className:u,"data-sonner-toaster":!0,"data-sonner-theme":M,"data-y-position":ne,"data-x-position":ce,style:{"--front-toast-height":`${((G=A[0])==null?void 0:G.height)||0}px`,"--width":`${yP}px`,"--gap":`${b}px`,...m,...SP(d,h)},onBlur:fe=>{I.current&&!fe.currentTarget.contains(fe.relatedTarget)&&(I.current=!1,E.current&&(E.current.focus({preventScroll:!0}),E.current=null))},onFocus:fe=>{fe.target instanceof HTMLElement&&fe.target.dataset.dismissible==="false"||I.current||(I.current=!0,E.current=fe.relatedTarget)},onMouseEnter:()=>D(!0),onMouseMove:()=>D(!0),onMouseLeave:()=>{U||D(!1)},onDragEnd:()=>D(!1),onPointerDown:fe=>{fe.target instanceof HTMLElement&&fe.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},_.filter(fe=>!fe.position&&$===0||fe.position===T).map((fe,tt)=>{var at,Ye;return z.createElement(kP,{key:fe.id,icons:k,index:tt,toast:fe,defaultRichColors:p,duration:(at=x==null?void 0:x.duration)!=null?at:g,className:x==null?void 0:x.className,descriptionClassName:x==null?void 0:x.descriptionClassName,invert:s,visibleToasts:y,closeButton:(Ye=x==null?void 0:x.closeButton)!=null?Ye:l,interacting:U,position:T,style:x==null?void 0:x.style,unstyled:x==null?void 0:x.unstyled,classNames:x==null?void 0:x.classNames,cancelButtonStyle:x==null?void 0:x.cancelButtonStyle,actionButtonStyle:x==null?void 0:x.actionButtonStyle,closeButtonAriaLabel:x==null?void 0:x.closeButtonAriaLabel,removeToast:K,toasts:_.filter(Jt=>Jt.position==fe.position),heights:A.filter(Jt=>Jt.position==fe.position),setHeights:O,expandByDefault:a,gap:b,expanded:F,swipeDirections:t.swipeDirections})})):null}))});function y1(e,t){return function(){return e.apply(t,arguments)}}const{toString:jP}=Object.prototype,{getPrototypeOf:Zp}=Object,{iterator:hu,toStringTag:x1}=Symbol,fu=(e=>t=>{const n=jP.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),jn=e=>(e=e.toLowerCase(),t=>fu(t)===e),pu=e=>t=>typeof t===e,{isArray:Go}=Array,Eo=pu("undefined");function Ta(e){return e!==null&&!Eo(e)&&e.constructor!==null&&!Eo(e.constructor)&&Ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const b1=jn("ArrayBuffer");function CP(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&b1(e.buffer),t}const NP=pu("string"),Ot=pu("function"),v1=pu("number"),Aa=e=>e!==null&&typeof e=="object",PP=e=>e===!0||e===!1,Kl=e=>{if(fu(e)!=="object")return!1;const t=Zp(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(x1 in e)&&!(hu in e)},RP=e=>{if(!Aa(e)||Ta(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},EP=jn("Date"),TP=jn("File"),AP=e=>!!(e&&typeof e.uri<"u"),MP=e=>e&&typeof e.getParts<"u",LP=jn("Blob"),OP=jn("FileList"),DP=e=>Aa(e)&&Ot(e.pipe);function IP(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const N0=IP(),P0=typeof N0.FormData<"u"?N0.FormData:void 0,FP=e=>{let t;return e&&(P0&&e instanceof P0||Ot(e.append)&&((t=fu(e))==="formdata"||t==="object"&&Ot(e.toString)&&e.toString()==="[object FormData]"))},zP=jn("URLSearchParams"),[VP,BP,$P,HP]=["ReadableStream","Request","Response","Headers"].map(jn),UP=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ma(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Go(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const ys=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,k1=e=>!Eo(e)&&e!==ys;function af(){const{caseless:e,skipUndefined:t}=k1(this)&&this||{},n={},r=(s,o)=>{if(o==="__proto__"||o==="constructor"||o==="prototype")return;const i=e&&w1(n,o)||o;Kl(n[i])&&Kl(s)?n[i]=af(n[i],s):Kl(s)?n[i]=af({},s):Go(s)?n[i]=s.slice():(!t||!Eo(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Ma(t,(s,o)=>{n&&Ot(s)?Object.defineProperty(e,o,{value:y1(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),GP=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qP=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},KP=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Zp(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},YP=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},XP=e=>{if(!e)return null;if(Go(e))return e;let t=e.length;if(!v1(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},QP=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Zp(Uint8Array)),JP=(e,t)=>{const r=(e&&e[hu]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},ZP=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},e5=jn("HTMLFormElement"),t5=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),R0=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),n5=jn("RegExp"),S1=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ma(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},r5=e=>{S1(e,(t,n)=>{if(Ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},s5=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Go(e)?r(e):r(String(e).split(t)),n},o5=()=>{},i5=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function a5(e){return!!(e&&Ot(e.append)&&e[x1]==="FormData"&&e[hu])}const l5=e=>{const t=new Array(10),n=(r,s)=>{if(Aa(r)){if(t.indexOf(r)>=0)return;if(Ta(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Go(r)?[]:{};return Ma(r,(i,a)=>{const l=n(i,s+1);!Eo(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},c5=jn("AsyncFunction"),u5=e=>e&&(Aa(e)||Ot(e))&&Ot(e.then)&&Ot(e.catch),_1=((e,t)=>e?setImmediate:t?((n,r)=>(ys.addEventListener("message",({source:s,data:o})=>{s===ys&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),ys.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ot(ys.postMessage)),d5=typeof queueMicrotask<"u"?queueMicrotask.bind(ys):typeof process<"u"&&process.nextTick||_1,h5=e=>e!=null&&Ot(e[hu]),R={isArray:Go,isArrayBuffer:b1,isBuffer:Ta,isFormData:FP,isArrayBufferView:CP,isString:NP,isNumber:v1,isBoolean:PP,isObject:Aa,isPlainObject:Kl,isEmptyObject:RP,isReadableStream:VP,isRequest:BP,isResponse:$P,isHeaders:HP,isUndefined:Eo,isDate:EP,isFile:TP,isReactNativeBlob:AP,isReactNative:MP,isBlob:LP,isRegExp:n5,isFunction:Ot,isStream:DP,isURLSearchParams:zP,isTypedArray:QP,isFileList:OP,forEach:Ma,merge:af,extend:WP,trim:UP,stripBOM:GP,inherits:qP,toFlatObject:KP,kindOf:fu,kindOfTest:jn,endsWith:YP,toArray:XP,forEachEntry:JP,matchAll:ZP,isHTMLForm:e5,hasOwnProperty:R0,hasOwnProp:R0,reduceDescriptors:S1,freezeMethods:r5,toObjectSet:s5,toCamelCase:t5,noop:o5,toFiniteNumber:i5,findKey:w1,global:ys,isContextDefined:k1,isSpecCompliantForm:a5,toJSONObject:l5,isAsyncFn:c5,isThenable:u5,setImmediate:_1,asap:d5,isIterable:h5};let se=class j1 extends Error{static from(t,n,r,s,o,i){const a=new j1(t.message,n||t.code,r,s,o);return a.cause=t,a.name=t.name,t.status!=null&&a.status==null&&(a.status=t.status),i&&Object.assign(a,i),a}constructor(t,n,r,s,o){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),s&&(this.request=s),o&&(this.response=o,this.status=o.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:R.toJSONObject(this.config),code:this.code,status:this.status}}};se.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";se.ERR_BAD_OPTION="ERR_BAD_OPTION";se.ECONNABORTED="ECONNABORTED";se.ETIMEDOUT="ETIMEDOUT";se.ERR_NETWORK="ERR_NETWORK";se.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";se.ERR_DEPRECATED="ERR_DEPRECATED";se.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";se.ERR_BAD_REQUEST="ERR_BAD_REQUEST";se.ERR_CANCELED="ERR_CANCELED";se.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";se.ERR_INVALID_URL="ERR_INVALID_URL";const f5=null;function lf(e){return R.isPlainObject(e)||R.isArray(e)}function C1(e){return R.endsWith(e,"[]")?e.slice(0,-2):e}function bd(e,t,n){return e?e.concat(t).map(function(s,o){return s=C1(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function p5(e){return R.isArray(e)&&!e.some(lf)}const g5=R.toFlatObject(R,{},null,function(t){return/^is[A-Z]/.test(t)});function gu(e,t,n){if(!R.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=R.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,y){return!R.isUndefined(y[m])});const r=n.metaTokens,s=n.visitor||d,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&R.isSpecCompliantForm(t);if(!R.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(R.isDate(g))return g.toISOString();if(R.isBoolean(g))return g.toString();if(!l&&R.isBlob(g))throw new se("Blob is not supported. Use a Buffer instead.");return R.isArrayBuffer(g)||R.isTypedArray(g)?l&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,m,y){let x=g;if(R.isReactNative(t)&&R.isReactNativeBlob(g))return t.append(bd(y,m,o),u(g)),!1;if(g&&!y&&typeof g=="object"){if(R.endsWith(m,"{}"))m=r?m:m.slice(0,-2),g=JSON.stringify(g);else if(R.isArray(g)&&p5(g)||(R.isFileList(g)||R.endsWith(m,"[]"))&&(x=R.toArray(g)))return m=C1(m),x.forEach(function(b,k){!(R.isUndefined(b)||b===null)&&t.append(i===!0?bd([m],k,o):i===null?m:m+"[]",u(b))}),!1}return lf(g)?!0:(t.append(bd(y,m,o),u(g)),!1)}const h=[],f=Object.assign(g5,{defaultVisitor:d,convertValue:u,isVisitable:lf});function p(g,m){if(!R.isUndefined(g)){if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+m.join("."));h.push(g),R.forEach(g,function(x,v){(!(R.isUndefined(x)||x===null)&&s.call(t,x,R.isString(v)?v.trim():v,m,f))===!0&&p(x,m?m.concat(v):[v])}),h.pop()}}if(!R.isObject(e))throw new TypeError("data must be an object");return p(e),t}function E0(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function eg(e,t){this._pairs=[],e&&gu(e,this,t)}const N1=eg.prototype;N1.append=function(t,n){this._pairs.push([t,n])};N1.toString=function(t){const n=t?function(r){return t.call(this,r,E0)}:E0;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function m5(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function P1(e,t,n){if(!t)return e;const r=n&&n.encode||m5,s=R.isFunction(n)?{serialize:n}:n,o=s&&s.serialize;let i;if(o?i=o(t,s):i=R.isURLSearchParams(t)?t.toString():new eg(t,s).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class T0{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){R.forEach(this.handlers,function(r){r!==null&&t(r)})}}const tg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},y5=typeof URLSearchParams<"u"?URLSearchParams:eg,x5=typeof FormData<"u"?FormData:null,b5=typeof Blob<"u"?Blob:null,v5={isBrowser:!0,classes:{URLSearchParams:y5,FormData:x5,Blob:b5},protocols:["http","https","file","blob","url","data"]},ng=typeof window<"u"&&typeof document<"u",cf=typeof navigator=="object"&&navigator||void 0,w5=ng&&(!cf||["ReactNative","NativeScript","NS"].indexOf(cf.product)<0),k5=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",S5=ng&&window.location.href||"http://localhost",_5=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ng,hasStandardBrowserEnv:w5,hasStandardBrowserWebWorkerEnv:k5,navigator:cf,origin:S5},Symbol.toStringTag,{value:"Module"})),mt={..._5,...v5};function j5(e,t){return gu(e,new mt.classes.URLSearchParams,{visitor:function(n,r,s,o){return mt.isNode&&R.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function C5(e){return R.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function N5(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&R.isArray(s)?s.length:i,l?(R.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!R.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&R.isArray(s[i])&&(s[i]=N5(s[i])),!a)}if(R.isFormData(e)&&R.isFunction(e.entries)){const n={};return R.forEachEntry(e,(r,s)=>{t(C5(r),s,n,0)}),n}return null}function P5(e,t,n){if(R.isString(e))try{return(t||JSON.parse)(e),R.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const La={transitional:tg,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=R.isObject(t);if(o&&R.isHTMLForm(t)&&(t=new FormData(t)),R.isFormData(t))return s?JSON.stringify(R1(t)):t;if(R.isArrayBuffer(t)||R.isBuffer(t)||R.isStream(t)||R.isFile(t)||R.isBlob(t)||R.isReadableStream(t))return t;if(R.isArrayBufferView(t))return t.buffer;if(R.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return j5(t,this.formSerializer).toString();if((a=R.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return gu(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),P5(t)):t}],transformResponse:[function(t){const n=this.transitional||La.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(R.isResponse(t)||R.isReadableStream(t))return t;if(t&&R.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(a){if(i)throw a.name==="SyntaxError"?se.from(a,se.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:mt.classes.FormData,Blob:mt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};R.forEach(["delete","get","head","post","put","patch"],e=>{La.headers[e]={}});const R5=R.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),E5=e=>{const t={};let n,r,s;return e&&e.split(` -`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&R5[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},A0=Symbol("internals");function ai(e){return e&&String(e).trim().toLowerCase()}function Yl(e){return e===!1||e==null?e:R.isArray(e)?e.map(Yl):String(e).replace(/[\r\n]+$/,"")}function T5(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const A5=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vd(e,t,n,r,s){if(R.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!R.isString(t)){if(R.isString(r))return t.indexOf(r)!==-1;if(R.isRegExp(r))return r.test(t)}}function M5(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function L5(e,t){const n=R.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Dt=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,u){const d=ai(l);if(!d)throw new Error("header name must be a non-empty string");const h=R.findKey(s,d);(!h||s[h]===void 0||u===!0||u===void 0&&s[h]!==!1)&&(s[h||l]=Yl(a))}const i=(a,l)=>R.forEach(a,(u,d)=>o(u,d,l));if(R.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(R.isString(t)&&(t=t.trim())&&!A5(t))i(E5(t),n);else if(R.isObject(t)&&R.isIterable(t)){let a={},l,u;for(const d of t){if(!R.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?R.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=ai(t),t){const r=R.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return T5(s);if(R.isFunction(n))return n.call(this,s,r);if(R.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ai(t),t){const r=R.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||vd(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=ai(i),i){const a=R.findKey(r,i);a&&(!n||vd(r,r[a],a,n))&&(delete r[a],s=!0)}}return R.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||vd(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return R.forEach(this,(s,o)=>{const i=R.findKey(r,o);if(i){n[i]=Yl(s),delete n[o];return}const a=t?M5(o):String(o).trim();a!==o&&delete n[o],n[a]=Yl(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return R.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&R.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[A0]=this[A0]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=ai(i);r[a]||(L5(s,i),r[a]=!0)}return R.isArray(t)?t.forEach(o):o(t),this}};Dt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);R.reduceDescriptors(Dt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});R.freezeMethods(Dt);function wd(e,t){const n=this||La,r=t||n,s=Dt.from(r.headers);let o=r.data;return R.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function E1(e){return!!(e&&e.__CANCEL__)}let Oa=class extends se{constructor(t,n,r){super(t??"canceled",se.ERR_CANCELED,n,r),this.name="CanceledError",this.__CANCEL__=!0}};function T1(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new se("Request failed with status code "+n.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function O5(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function D5(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),d=r[o];i||(i=u),n[s]=l,r[s]=u;let h=o,f=0;for(;h!==s;)f+=n[h++],h=h%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=d,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const d=Date.now(),h=d-n;h>=r?i(u,d):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-h)))},()=>s&&i(s)]}const Ec=(e,t,n=3)=>{let r=0;const s=D5(50,250);return I5(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,u=s(l),d=i<=a;r=i;const h={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-i)/u:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(h)},n)},M0=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},L0=e=>(...t)=>R.asap(()=>e(...t)),F5=mt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,mt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(mt.origin),mt.navigator&&/(msie|trident)/i.test(mt.navigator.userAgent)):()=>!0,z5=mt.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];R.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),R.isString(r)&&a.push(`path=${r}`),R.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),R.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function V5(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function B5(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function A1(e,t,n){let r=!V5(t);return e&&(r||n==!1)?B5(e,t):t}const O0=e=>e instanceof Dt?{...e}:e;function As(e,t){t=t||{};const n={};function r(u,d,h,f){return R.isPlainObject(u)&&R.isPlainObject(d)?R.merge.call({caseless:f},u,d):R.isPlainObject(d)?R.merge({},d):R.isArray(d)?d.slice():d}function s(u,d,h,f){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u,h,f)}else return r(u,d,h,f)}function o(u,d){if(!R.isUndefined(d))return r(void 0,d)}function i(u,d){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,h){if(h in t)return r(u,d);if(h in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,d,h)=>s(O0(u),O0(d),h,!0)};return R.forEach(Object.keys({...e,...t}),function(d){if(d==="__proto__"||d==="constructor"||d==="prototype")return;const h=R.hasOwnProp(l,d)?l[d]:s,f=h(e[d],t[d],d);R.isUndefined(f)&&h!==a||(n[d]=f)}),n}const M1=e=>{const t=As({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;if(t.headers=i=Dt.from(i),t.url=P1(A1(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),R.isFormData(n)){if(mt.hasStandardBrowserEnv||mt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(R.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,h])=>{u.includes(d.toLowerCase())&&i.set(d,h)})}}if(mt.hasStandardBrowserEnv&&(r&&R.isFunction(r)&&(r=r(t)),r||r!==!1&&F5(t.url))){const l=s&&o&&z5.read(o);l&&i.set(s,l)}return t},$5=typeof XMLHttpRequest<"u",H5=$5&&function(e){return new Promise(function(n,r){const s=M1(e);let o=s.data;const i=Dt.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=s,d,h,f,p,g;function m(){p&&p(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let y=new XMLHttpRequest;y.open(s.method.toUpperCase(),s.url,!0),y.timeout=s.timeout;function x(){if(!y)return;const b=Dt.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),w={data:!a||a==="text"||a==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:b,config:e,request:y};T1(function(N){n(N),m()},function(N){r(N),m()},w),y=null}"onloadend"in y?y.onloadend=x:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(x)},y.onabort=function(){y&&(r(new se("Request aborted",se.ECONNABORTED,e,y)),y=null)},y.onerror=function(k){const w=k&&k.message?k.message:"Network Error",j=new se(w,se.ERR_NETWORK,e,y);j.event=k||null,r(j),y=null},y.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const w=s.transitional||tg;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new se(k,w.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,y)),y=null},o===void 0&&i.setContentType(null),"setRequestHeader"in y&&R.forEach(i.toJSON(),function(k,w){y.setRequestHeader(w,k)}),R.isUndefined(s.withCredentials)||(y.withCredentials=!!s.withCredentials),a&&a!=="json"&&(y.responseType=s.responseType),u&&([f,g]=Ec(u,!0),y.addEventListener("progress",f)),l&&y.upload&&([h,p]=Ec(l),y.upload.addEventListener("progress",h),y.upload.addEventListener("loadend",p)),(s.cancelToken||s.signal)&&(d=b=>{y&&(r(!b||b.type?new Oa(null,e,y):b),y.abort(),y=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const v=O5(s.url);if(v&&mt.protocols.indexOf(v)===-1){r(new se("Unsupported protocol "+v+":",se.ERR_BAD_REQUEST,e));return}y.send(o||null)})},U5=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,a();const d=u instanceof Error?u:this.reason;r.abort(d instanceof se?d:new Oa(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,o(new se(`timeout of ${t}ms exceeded`,se.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>R.asap(a),l}},W5=function*(e,t){let n=e.byteLength;if(n{const s=G5(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:d}=await s.next();if(u){a(),l.close();return}let h=d.byteLength;if(n){let f=o+=h;n(f)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},I0=64*1024,{isFunction:dl}=R,K5=(({Request:e,Response:t})=>({Request:e,Response:t}))(R.global),{ReadableStream:F0,TextEncoder:z0}=R.global,V0=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Y5=e=>{e=R.merge.call({skipUndefined:!0},K5,e);const{fetch:t,Request:n,Response:r}=e,s=t?dl(t):typeof fetch=="function",o=dl(n),i=dl(r);if(!s)return!1;const a=s&&dl(F0),l=s&&(typeof z0=="function"?(g=>m=>g.encode(m))(new z0):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&a&&V0(()=>{let g=!1;const m=new F0,y=new n(mt.origin,{body:m,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return m.cancel(),g&&!y}),d=i&&a&&V0(()=>R.isReadableStream(new r("").body)),h={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!h[g]&&(h[g]=(m,y)=>{let x=m&&m[g];if(x)return x.call(m);throw new se(`Response type '${g}' is not supported`,se.ERR_NOT_SUPPORT,y)})});const f=async g=>{if(g==null)return 0;if(R.isBlob(g))return g.size;if(R.isSpecCompliantForm(g))return(await new n(mt.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(R.isArrayBufferView(g)||R.isArrayBuffer(g))return g.byteLength;if(R.isURLSearchParams(g)&&(g=g+""),R.isString(g))return(await l(g)).byteLength},p=async(g,m)=>{const y=R.toFiniteNumber(g.getContentLength());return y??f(m)};return async g=>{let{url:m,method:y,data:x,signal:v,cancelToken:b,timeout:k,onDownloadProgress:w,onUploadProgress:j,responseType:N,headers:_,withCredentials:P="same-origin",fetchOptions:A}=M1(g),O=t||fetch;N=N?(N+"").toLowerCase():"text";let F=U5([v,b&&b.toAbortSignal()],k),D=null;const U=F&&F.unsubscribe&&(()=>{F.unsubscribe()});let W;try{if(j&&u&&y!=="get"&&y!=="head"&&(W=await p(_,x))!==0){let I=new n(m,{method:"POST",body:x,duplex:"half"}),K;if(R.isFormData(x)&&(K=I.headers.get("content-type"))&&_.setContentType(K),I.body){const[T,$]=M0(W,Ec(L0(j)));x=D0(I.body,I0,T,$)}}R.isString(P)||(P=P?"include":"omit");const M=o&&"credentials"in n.prototype,H={...A,signal:F,method:y.toUpperCase(),headers:_.normalize().toJSON(),body:x,duplex:"half",credentials:M?P:void 0};D=o&&new n(m,H);let C=await(o?O(D,A):O(m,H));const L=d&&(N==="stream"||N==="response");if(d&&(w||L&&U)){const I={};["status","statusText","headers"].forEach(G=>{I[G]=C[G]});const K=R.toFiniteNumber(C.headers.get("content-length")),[T,$]=w&&M0(K,Ec(L0(w),!0))||[];C=new r(D0(C.body,I0,T,()=>{$&&$(),U&&U()}),I)}N=N||"text";let E=await h[R.findKey(h,N)||"text"](C,g);return!L&&U&&U(),await new Promise((I,K)=>{T1(I,K,{data:E,headers:Dt.from(C.headers),status:C.status,statusText:C.statusText,config:g,request:D})})}catch(M){throw U&&U(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new se("Network Error",se.ERR_NETWORK,g,D,M&&M.response),{cause:M.cause||M}):se.from(M,M&&M.code,g,D,M&&M.response)}}},X5=new Map,L1=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,a=i,l,u,d=X5;for(;a--;)l=o[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:Y5(t)),d=u;return u};L1();const rg={http:f5,xhr:H5,fetch:{get:L1}};R.forEach(rg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const B0=e=>`- ${e}`,Q5=e=>R.isFunction(e)||e===null||e===!1;function J5(e,t){e=R.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let i=0;i`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since : + */function rf(){return rf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function $N(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function HN(e,t){return e.button===0&&(!t||t==="_self")&&!$N(e)}function sf(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(s=>[n,s]):[[n,r]])},[]))}function UN(e,t){let n=sf(e);return t&&t.forEach((r,s)=>{n.has(s)||t.getAll(s).forEach(o=>{n.append(s,o)})}),n}const WN=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],GN="6";try{window.__reactRouterVersion=GN}catch{}const qN="startTransition",k0=I_[qN];function KN(e){let{basename:t,children:n,future:r,window:s}=e,o=S.useRef();o.current==null&&(o.current=YC({window:s,v5Compat:!0}));let i=o.current,[a,l]=S.useState({action:i.action,location:i.location}),{v7_startTransition:u}=r||{},d=S.useCallback(h=>{u&&k0?k0(()=>l(h)):l(h)},[l,u]);return S.useLayoutEffect(()=>i.listen(d),[i,d]),S.useEffect(()=>FN(r),[r]),S.createElement(zN,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i,future:r})}const YN=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",XN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ee=S.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:o,replace:i,state:a,target:l,to:u,preventScrollReset:d,viewTransition:h}=t,f=BN(t,WN),{basename:p}=S.useContext(Yr),g,m=!1;if(typeof u=="string"&&XN.test(u)&&(g=u,YN))try{let b=new URL(window.location.href),k=u.startsWith("//")?new URL(b.protocol+u):new URL(u),w=Yp(k.pathname,p);k.origin===b.origin&&w!=null?u=w+k.search+k.hash:m=!0}catch{}let y=SN(u,{relative:s}),x=QN(u,{replace:i,state:a,target:l,preventScrollReset:d,relative:s,viewTransition:h});function v(b){r&&r(b),b.defaultPrevented||x(b)}return S.createElement("a",rf({},f,{href:g||y,onClick:m||o?r:v,ref:n,target:l}))});var S0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(S0||(S0={}));var _0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(_0||(_0={}));function QN(e,t){let{target:n,replace:r,state:s,preventScrollReset:o,relative:i,viewTransition:a}=t===void 0?{}:t,l=Is(),u=ir(),d=d1(e,{relative:i});return S.useCallback(h=>{if(HN(h,n)){h.preventDefault();let f=r!==void 0?r:Ec(u)===Ec(d);l(e,{replace:f,state:s,preventScrollReset:o,relative:i,viewTransition:a})}},[u,l,d,r,s,n,e,o,i,a])}function m1(e){let t=S.useRef(sf(e)),n=S.useRef(!1),r=ir(),s=S.useMemo(()=>UN(r.search,n.current?null:t.current),[r.search]),o=Is(),i=S.useCallback((a,l)=>{const u=sf(typeof a=="function"?a(s):a);n.current=!0,o("?"+u,l)},[o,s]);return[s,i]}function JN(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const ZN=e=>{switch(e){case"success":return nP;case"info":return sP;case"warning":return rP;case"error":return oP;default:return null}},eP=Array(12).fill(0),tP=({visible:e,className:t})=>z.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},z.createElement("div",{className:"sonner-spinner"},eP.map((n,r)=>z.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),nP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),rP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),sP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),oP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},z.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),iP=z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},z.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),z.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),aP=()=>{const[e,t]=z.useState(document.hidden);return z.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let of=1;class lP{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:r,...s}=t,o=typeof(t==null?void 0:t.id)=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:of++,i=this.toasts.find(l=>l.id===o),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),i?this.toasts=this.toasts.map(l=>l.id===o?(this.publish({...l,...t,id:o,title:r}),{...l,...t,id:o,dismissible:a,title:r}):l):this.addToast({title:r,...s,dismissible:a,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(r=>r({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const s=Promise.resolve(t instanceof Function?t():t);let o=r!==void 0,i;const a=s.then(async u=>{if(i=["resolve",u],z.isValidElement(u))o=!1,this.create({id:r,type:"default",message:u});else if(uP(u)&&!u.ok){o=!1;const h=typeof n.error=="function"?await n.error(`HTTP error! status: ${u.status}`):n.error,f=typeof n.description=="function"?await n.description(`HTTP error! status: ${u.status}`):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"error",description:f,...g})}else if(u instanceof Error){o=!1;const h=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"error",description:f,...g})}else if(n.success!==void 0){o=!1;const h=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description,g=typeof h=="object"&&!z.isValidElement(h)?h:{message:h};this.create({id:r,type:"success",description:f,...g})}}).catch(async u=>{if(i=["reject",u],n.error!==void 0){o=!1;const d=typeof n.error=="function"?await n.error(u):n.error,h=typeof n.description=="function"?await n.description(u):n.description,p=typeof d=="object"&&!z.isValidElement(d)?d:{message:d};this.create({id:r,type:"error",description:h,...p})}}).finally(()=>{o&&(this.dismiss(r),r=void 0),n.finally==null||n.finally.call(n)}),l=()=>new Promise((u,d)=>a.then(()=>i[0]==="reject"?d(i[1]):u(i[1])).catch(d));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,n)=>{const r=(n==null?void 0:n.id)||of++;return this.create({jsx:t(r),id:r,...n}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Rt=new lP,cP=(e,t)=>{const n=(t==null?void 0:t.id)||of++;return Rt.addToast({title:e,...t,id:n}),n},uP=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",dP=cP,hP=()=>Rt.toasts,fP=()=>Rt.getActiveToasts(),_n=Object.assign(dP,{success:Rt.success,info:Rt.info,warning:Rt.warning,error:Rt.error,custom:Rt.custom,message:Rt.message,promise:Rt.promise,dismiss:Rt.dismiss,loading:Rt.loading},{getHistory:hP,getToasts:fP});JN("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function ul(e){return e.label!==void 0}const pP=3,gP="24px",mP="16px",j0=4e3,yP=356,xP=14,bP=45,vP=200;function Nn(...e){return e.filter(Boolean).join(" ")}function wP(e){const[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}const kP=e=>{var t,n,r,s,o,i,a,l,u;const{invert:d,toast:h,unstyled:f,interacting:p,setHeights:g,visibleToasts:m,heights:y,index:x,toasts:v,expanded:b,removeToast:k,defaultRichColors:w,closeButton:j,style:N,cancelButtonStyle:_,actionButtonStyle:P,className:A="",descriptionClassName:O="",duration:F,position:D,gap:U,expandByDefault:W,classNames:M,icons:H,closeButtonAriaLabel:C="Close toast"}=e,[L,E]=z.useState(null),[I,Y]=z.useState(null),[T,$]=z.useState(!1),[q,ne]=z.useState(!1),[ce,fe]=z.useState(!1),[tt,lt]=z.useState(!1),[Ye,Jt]=z.useState(!1),[a_,Uu]=z.useState(0),[l_,Jg]=z.useState(0),Jo=z.useRef(h.duration||F||j0),Zg=z.useRef(null),In=z.useRef(null),c_=x===0,u_=x+1<=m,Vt=h.type,Hs=h.dismissible!==!1,d_=h.className||"",h_=h.descriptionClassName||"",Ua=z.useMemo(()=>y.findIndex(oe=>oe.toastId===h.id)||0,[y,h.id]),f_=z.useMemo(()=>{var oe;return(oe=h.closeButton)!=null?oe:j},[h.closeButton,j]),em=z.useMemo(()=>h.duration||F||j0,[h.duration,F]),Wu=z.useRef(0),Us=z.useRef(0),tm=z.useRef(0),Ws=z.useRef(null),[p_,g_]=D.split("-"),nm=z.useMemo(()=>y.reduce((oe,Xe,ct)=>ct>=Ua?oe:oe+Xe.height,0),[y,Ua]),rm=aP(),m_=h.invert||d,Gu=Vt==="loading";Us.current=z.useMemo(()=>Ua*U+nm,[Ua,nm]),z.useEffect(()=>{Jo.current=em},[em]),z.useEffect(()=>{$(!0)},[]),z.useEffect(()=>{const oe=In.current;if(oe){const Xe=oe.getBoundingClientRect().height;return Jg(Xe),g(ct=>[{toastId:h.id,height:Xe,position:h.position},...ct]),()=>g(ct=>ct.filter(Bt=>Bt.toastId!==h.id))}},[g,h.id]),z.useLayoutEffect(()=>{if(!T)return;const oe=In.current,Xe=oe.style.height;oe.style.height="auto";const ct=oe.getBoundingClientRect().height;oe.style.height=Xe,Jg(ct),g(Bt=>Bt.find(nt=>nt.toastId===h.id)?Bt.map(nt=>nt.toastId===h.id?{...nt,height:ct}:nt):[{toastId:h.id,height:ct,position:h.position},...Bt])},[T,h.title,h.description,g,h.id,h.jsx,h.action,h.cancel]);const lr=z.useCallback(()=>{ne(!0),Uu(Us.current),g(oe=>oe.filter(Xe=>Xe.toastId!==h.id)),setTimeout(()=>{k(h)},vP)},[h,k,g,Us]);z.useEffect(()=>{if(h.promise&&Vt==="loading"||h.duration===1/0||h.type==="loading")return;let oe;return b||p||rm?(()=>{if(tm.current{Jo.current!==1/0&&(Wu.current=new Date().getTime(),oe=setTimeout(()=>{h.onAutoClose==null||h.onAutoClose.call(h,h),lr()},Jo.current))})(),()=>clearTimeout(oe)},[b,p,h,Vt,rm,lr]),z.useEffect(()=>{h.delete&&(lr(),h.onDismiss==null||h.onDismiss.call(h,h))},[lr,h.delete]);function y_(){var oe;if(H!=null&&H.loading){var Xe;return z.createElement("div",{className:Nn(M==null?void 0:M.loader,h==null||(Xe=h.classNames)==null?void 0:Xe.loader,"sonner-loader"),"data-visible":Vt==="loading"},H.loading)}return z.createElement(tP,{className:Nn(M==null?void 0:M.loader,h==null||(oe=h.classNames)==null?void 0:oe.loader),visible:Vt==="loading"})}const x_=h.icon||(H==null?void 0:H[Vt])||ZN(Vt);var sm,om;return z.createElement("li",{tabIndex:0,ref:In,className:Nn(A,d_,M==null?void 0:M.toast,h==null||(t=h.classNames)==null?void 0:t.toast,M==null?void 0:M.default,M==null?void 0:M[Vt],h==null||(n=h.classNames)==null?void 0:n[Vt]),"data-sonner-toast":"","data-rich-colors":(sm=h.richColors)!=null?sm:w,"data-styled":!(h.jsx||h.unstyled||f),"data-mounted":T,"data-promise":!!h.promise,"data-swiped":Ye,"data-removed":q,"data-visible":u_,"data-y-position":p_,"data-x-position":g_,"data-index":x,"data-front":c_,"data-swiping":ce,"data-dismissible":Hs,"data-type":Vt,"data-invert":m_,"data-swipe-out":tt,"data-swipe-direction":I,"data-expanded":!!(b||W&&T),"data-testid":h.testId,style:{"--index":x,"--toasts-before":x,"--z-index":v.length-x,"--offset":`${q?a_:Us.current}px`,"--initial-height":W?"auto":`${l_}px`,...N,...h.style},onDragEnd:()=>{fe(!1),E(null),Ws.current=null},onPointerDown:oe=>{oe.button!==2&&(Gu||!Hs||(Zg.current=new Date,Uu(Us.current),oe.target.setPointerCapture(oe.pointerId),oe.target.tagName!=="BUTTON"&&(fe(!0),Ws.current={x:oe.clientX,y:oe.clientY})))},onPointerUp:()=>{var oe,Xe,ct;if(tt||!Hs)return;Ws.current=null;const Bt=Number(((oe=In.current)==null?void 0:oe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Wa=Number(((Xe=In.current)==null?void 0:Xe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),nt=new Date().getTime()-((ct=Zg.current)==null?void 0:ct.getTime()),Zt=L==="x"?Bt:Wa,Ga=Math.abs(Zt)/nt;if(Math.abs(Zt)>=bP||Ga>.11){Uu(Us.current),h.onDismiss==null||h.onDismiss.call(h,h),Y(L==="x"?Bt>0?"right":"left":Wa>0?"down":"up"),lr(),lt(!0);return}else{var fn,pn;(fn=In.current)==null||fn.style.setProperty("--swipe-amount-x","0px"),(pn=In.current)==null||pn.style.setProperty("--swipe-amount-y","0px")}Jt(!1),fe(!1),E(null)},onPointerMove:oe=>{var Xe,ct,Bt;if(!Ws.current||!Hs||((Xe=window.getSelection())==null?void 0:Xe.toString().length)>0)return;const nt=oe.clientY-Ws.current.y,Zt=oe.clientX-Ws.current.x;var Ga;const fn=(Ga=e.swipeDirections)!=null?Ga:wP(D);!L&&(Math.abs(Zt)>1||Math.abs(nt)>1)&&E(Math.abs(Zt)>Math.abs(nt)?"x":"y");let pn={x:0,y:0};const im=es=>1/(1.5+Math.abs(es)/20);if(L==="y"){if(fn.includes("top")||fn.includes("bottom"))if(fn.includes("top")&&nt<0||fn.includes("bottom")&&nt>0)pn.y=nt;else{const es=nt*im(nt);pn.y=Math.abs(es)0)pn.x=Zt;else{const es=Zt*im(Zt);pn.x=Math.abs(es)0||Math.abs(pn.y)>0)&&Jt(!0),(ct=In.current)==null||ct.style.setProperty("--swipe-amount-x",`${pn.x}px`),(Bt=In.current)==null||Bt.style.setProperty("--swipe-amount-y",`${pn.y}px`)}},f_&&!h.jsx&&Vt!=="loading"?z.createElement("button",{"aria-label":C,"data-disabled":Gu,"data-close-button":!0,onClick:Gu||!Hs?()=>{}:()=>{lr(),h.onDismiss==null||h.onDismiss.call(h,h)},className:Nn(M==null?void 0:M.closeButton,h==null||(r=h.classNames)==null?void 0:r.closeButton)},(om=H==null?void 0:H.close)!=null?om:iP):null,(Vt||h.icon||h.promise)&&h.icon!==null&&((H==null?void 0:H[Vt])!==null||h.icon)?z.createElement("div",{"data-icon":"",className:Nn(M==null?void 0:M.icon,h==null||(s=h.classNames)==null?void 0:s.icon)},h.promise||h.type==="loading"&&!h.icon?h.icon||y_():null,h.type!=="loading"?x_:null):null,z.createElement("div",{"data-content":"",className:Nn(M==null?void 0:M.content,h==null||(o=h.classNames)==null?void 0:o.content)},z.createElement("div",{"data-title":"",className:Nn(M==null?void 0:M.title,h==null||(i=h.classNames)==null?void 0:i.title)},h.jsx?h.jsx:typeof h.title=="function"?h.title():h.title),h.description?z.createElement("div",{"data-description":"",className:Nn(O,h_,M==null?void 0:M.description,h==null||(a=h.classNames)==null?void 0:a.description)},typeof h.description=="function"?h.description():h.description):null),z.isValidElement(h.cancel)?h.cancel:h.cancel&&ul(h.cancel)?z.createElement("button",{"data-button":!0,"data-cancel":!0,style:h.cancelButtonStyle||_,onClick:oe=>{ul(h.cancel)&&Hs&&(h.cancel.onClick==null||h.cancel.onClick.call(h.cancel,oe),lr())},className:Nn(M==null?void 0:M.cancelButton,h==null||(l=h.classNames)==null?void 0:l.cancelButton)},h.cancel.label):null,z.isValidElement(h.action)?h.action:h.action&&ul(h.action)?z.createElement("button",{"data-button":!0,"data-action":!0,style:h.actionButtonStyle||P,onClick:oe=>{ul(h.action)&&(h.action.onClick==null||h.action.onClick.call(h.action,oe),!oe.defaultPrevented&&lr())},className:Nn(M==null?void 0:M.actionButton,h==null||(u=h.classNames)==null?void 0:u.actionButton)},h.action.label):null)};function C0(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function SP(e,t){const n={};return[e,t].forEach((r,s)=>{const o=s===1,i=o?"--mobile-offset":"--offset",a=o?mP:gP;function l(u){["top","right","bottom","left"].forEach(d=>{n[`${i}-${d}`]=typeof u=="number"?`${u}px`:u})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(u=>{r[u]===void 0?n[`${i}-${u}`]=a:n[`${i}-${u}`]=typeof r[u]=="number"?`${r[u]}px`:r[u]}):l(a)}),n}const _P=z.forwardRef(function(t,n){const{id:r,invert:s,position:o="bottom-right",hotkey:i=["altKey","KeyT"],expand:a,closeButton:l,className:u,offset:d,mobileOffset:h,theme:f="light",richColors:p,duration:g,style:m,visibleToasts:y=pP,toastOptions:x,dir:v=C0(),gap:b=xP,icons:k,containerAriaLabel:w="Notifications"}=t,[j,N]=z.useState([]),_=z.useMemo(()=>r?j.filter(T=>T.toasterId===r):j.filter(T=>!T.toasterId),[j,r]),P=z.useMemo(()=>Array.from(new Set([o].concat(_.filter(T=>T.position).map(T=>T.position)))),[_,o]),[A,O]=z.useState([]),[F,D]=z.useState(!1),[U,W]=z.useState(!1),[M,H]=z.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),C=z.useRef(null),L=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),E=z.useRef(null),I=z.useRef(!1),Y=z.useCallback(T=>{N($=>{var q;return(q=$.find(ne=>ne.id===T.id))!=null&&q.delete||Rt.dismiss(T.id),$.filter(({id:ne})=>ne!==T.id)})},[]);return z.useEffect(()=>Rt.subscribe(T=>{if(T.dismiss){requestAnimationFrame(()=>{N($=>$.map(q=>q.id===T.id?{...q,delete:!0}:q))});return}setTimeout(()=>{KC.flushSync(()=>{N($=>{const q=$.findIndex(ne=>ne.id===T.id);return q!==-1?[...$.slice(0,q),{...$[q],...T},...$.slice(q+1)]:[T,...$]})})})}),[j]),z.useEffect(()=>{if(f!=="system"){H(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?H("dark"):H("light")),typeof window>"u")return;const T=window.matchMedia("(prefers-color-scheme: dark)");try{T.addEventListener("change",({matches:$})=>{H($?"dark":"light")})}catch{T.addListener(({matches:q})=>{try{H(q?"dark":"light")}catch(ne){console.error(ne)}})}},[f]),z.useEffect(()=>{j.length<=1&&D(!1)},[j]),z.useEffect(()=>{const T=$=>{var q;if(i.every(fe=>$[fe]||$.code===fe)){var ce;D(!0),(ce=C.current)==null||ce.focus()}$.code==="Escape"&&(document.activeElement===C.current||(q=C.current)!=null&&q.contains(document.activeElement))&&D(!1)};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[i]),z.useEffect(()=>{if(C.current)return()=>{E.current&&(E.current.focus({preventScroll:!0}),E.current=null,I.current=!1)}},[C.current]),z.createElement("section",{ref:n,"aria-label":`${w} ${L}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},P.map((T,$)=>{var q;const[ne,ce]=T.split("-");return _.length?z.createElement("ol",{key:T,dir:v==="auto"?C0():v,tabIndex:-1,ref:C,className:u,"data-sonner-toaster":!0,"data-sonner-theme":M,"data-y-position":ne,"data-x-position":ce,style:{"--front-toast-height":`${((q=A[0])==null?void 0:q.height)||0}px`,"--width":`${yP}px`,"--gap":`${b}px`,...m,...SP(d,h)},onBlur:fe=>{I.current&&!fe.currentTarget.contains(fe.relatedTarget)&&(I.current=!1,E.current&&(E.current.focus({preventScroll:!0}),E.current=null))},onFocus:fe=>{fe.target instanceof HTMLElement&&fe.target.dataset.dismissible==="false"||I.current||(I.current=!0,E.current=fe.relatedTarget)},onMouseEnter:()=>D(!0),onMouseMove:()=>D(!0),onMouseLeave:()=>{U||D(!1)},onDragEnd:()=>D(!1),onPointerDown:fe=>{fe.target instanceof HTMLElement&&fe.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},_.filter(fe=>!fe.position&&$===0||fe.position===T).map((fe,tt)=>{var lt,Ye;return z.createElement(kP,{key:fe.id,icons:k,index:tt,toast:fe,defaultRichColors:p,duration:(lt=x==null?void 0:x.duration)!=null?lt:g,className:x==null?void 0:x.className,descriptionClassName:x==null?void 0:x.descriptionClassName,invert:s,visibleToasts:y,closeButton:(Ye=x==null?void 0:x.closeButton)!=null?Ye:l,interacting:U,position:T,style:x==null?void 0:x.style,unstyled:x==null?void 0:x.unstyled,classNames:x==null?void 0:x.classNames,cancelButtonStyle:x==null?void 0:x.cancelButtonStyle,actionButtonStyle:x==null?void 0:x.actionButtonStyle,closeButtonAriaLabel:x==null?void 0:x.closeButtonAriaLabel,removeToast:Y,toasts:_.filter(Jt=>Jt.position==fe.position),heights:A.filter(Jt=>Jt.position==fe.position),setHeights:O,expandByDefault:a,gap:b,expanded:F,swipeDirections:t.swipeDirections})})):null}))});function y1(e,t){return function(){return e.apply(t,arguments)}}const{toString:jP}=Object.prototype,{getPrototypeOf:Zp}=Object,{iterator:fu,toStringTag:x1}=Symbol,pu=(e=>t=>{const n=jP.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),jn=e=>(e=e.toLowerCase(),t=>pu(t)===e),gu=e=>t=>typeof t===e,{isArray:Go}=Array,Eo=gu("undefined");function Ta(e){return e!==null&&!Eo(e)&&e.constructor!==null&&!Eo(e.constructor)&&Dt(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const b1=jn("ArrayBuffer");function CP(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&b1(e.buffer),t}const NP=gu("string"),Dt=gu("function"),v1=gu("number"),Aa=e=>e!==null&&typeof e=="object",PP=e=>e===!0||e===!1,Yl=e=>{if(pu(e)!=="object")return!1;const t=Zp(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(x1 in e)&&!(fu in e)},RP=e=>{if(!Aa(e)||Ta(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},EP=jn("Date"),TP=jn("File"),AP=e=>!!(e&&typeof e.uri<"u"),MP=e=>e&&typeof e.getParts<"u",LP=jn("Blob"),OP=jn("FileList"),DP=e=>Aa(e)&&Dt(e.pipe);function IP(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const N0=IP(),P0=typeof N0.FormData<"u"?N0.FormData:void 0,FP=e=>{let t;return e&&(P0&&e instanceof P0||Dt(e.append)&&((t=pu(e))==="formdata"||t==="object"&&Dt(e.toString)&&e.toString()==="[object FormData]"))},zP=jn("URLSearchParams"),[VP,BP,$P,HP]=["ReadableStream","Request","Response","Headers"].map(jn),UP=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ma(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),Go(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const ys=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,k1=e=>!Eo(e)&&e!==ys;function af(){const{caseless:e,skipUndefined:t}=k1(this)&&this||{},n={},r=(s,o)=>{if(o==="__proto__"||o==="constructor"||o==="prototype")return;const i=e&&w1(n,o)||o;Yl(n[i])&&Yl(s)?n[i]=af(n[i],s):Yl(s)?n[i]=af({},s):Go(s)?n[i]=s.slice():(!t||!Eo(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Ma(t,(s,o)=>{n&&Dt(s)?Object.defineProperty(e,o,{value:y1(s,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{value:s,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),GP=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),qP=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},KP=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Zp(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},YP=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},XP=e=>{if(!e)return null;if(Go(e))return e;let t=e.length;if(!v1(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},QP=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Zp(Uint8Array)),JP=(e,t)=>{const r=(e&&e[fu]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},ZP=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},e5=jn("HTMLFormElement"),t5=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),R0=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),n5=jn("RegExp"),S1=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ma(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},r5=e=>{S1(e,(t,n)=>{if(Dt(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Dt(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},s5=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return Go(e)?r(e):r(String(e).split(t)),n},o5=()=>{},i5=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function a5(e){return!!(e&&Dt(e.append)&&e[x1]==="FormData"&&e[fu])}const l5=e=>{const t=new Array(10),n=(r,s)=>{if(Aa(r)){if(t.indexOf(r)>=0)return;if(Ta(r))return r;if(!("toJSON"in r)){t[s]=r;const o=Go(r)?[]:{};return Ma(r,(i,a)=>{const l=n(i,s+1);!Eo(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},c5=jn("AsyncFunction"),u5=e=>e&&(Aa(e)||Dt(e))&&Dt(e.then)&&Dt(e.catch),_1=((e,t)=>e?setImmediate:t?((n,r)=>(ys.addEventListener("message",({source:s,data:o})=>{s===ys&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),ys.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dt(ys.postMessage)),d5=typeof queueMicrotask<"u"?queueMicrotask.bind(ys):typeof process<"u"&&process.nextTick||_1,h5=e=>e!=null&&Dt(e[fu]),R={isArray:Go,isArrayBuffer:b1,isBuffer:Ta,isFormData:FP,isArrayBufferView:CP,isString:NP,isNumber:v1,isBoolean:PP,isObject:Aa,isPlainObject:Yl,isEmptyObject:RP,isReadableStream:VP,isRequest:BP,isResponse:$P,isHeaders:HP,isUndefined:Eo,isDate:EP,isFile:TP,isReactNativeBlob:AP,isReactNative:MP,isBlob:LP,isRegExp:n5,isFunction:Dt,isStream:DP,isURLSearchParams:zP,isTypedArray:QP,isFileList:OP,forEach:Ma,merge:af,extend:WP,trim:UP,stripBOM:GP,inherits:qP,toFlatObject:KP,kindOf:pu,kindOfTest:jn,endsWith:YP,toArray:XP,forEachEntry:JP,matchAll:ZP,isHTMLForm:e5,hasOwnProperty:R0,hasOwnProp:R0,reduceDescriptors:S1,freezeMethods:r5,toObjectSet:s5,toCamelCase:t5,noop:o5,toFiniteNumber:i5,findKey:w1,global:ys,isContextDefined:k1,isSpecCompliantForm:a5,toJSONObject:l5,isAsyncFn:c5,isThenable:u5,setImmediate:_1,asap:d5,isIterable:h5};let se=class j1 extends Error{static from(t,n,r,s,o,i){const a=new j1(t.message,n||t.code,r,s,o);return a.cause=t,a.name=t.name,t.status!=null&&a.status==null&&(a.status=t.status),i&&Object.assign(a,i),a}constructor(t,n,r,s,o){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),s&&(this.request=s),o&&(this.response=o,this.status=o.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:R.toJSONObject(this.config),code:this.code,status:this.status}}};se.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";se.ERR_BAD_OPTION="ERR_BAD_OPTION";se.ECONNABORTED="ECONNABORTED";se.ETIMEDOUT="ETIMEDOUT";se.ERR_NETWORK="ERR_NETWORK";se.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";se.ERR_DEPRECATED="ERR_DEPRECATED";se.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";se.ERR_BAD_REQUEST="ERR_BAD_REQUEST";se.ERR_CANCELED="ERR_CANCELED";se.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";se.ERR_INVALID_URL="ERR_INVALID_URL";const f5=null;function lf(e){return R.isPlainObject(e)||R.isArray(e)}function C1(e){return R.endsWith(e,"[]")?e.slice(0,-2):e}function vd(e,t,n){return e?e.concat(t).map(function(s,o){return s=C1(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function p5(e){return R.isArray(e)&&!e.some(lf)}const g5=R.toFlatObject(R,{},null,function(t){return/^is[A-Z]/.test(t)});function mu(e,t,n){if(!R.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=R.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,y){return!R.isUndefined(y[m])});const r=n.metaTokens,s=n.visitor||d,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&R.isSpecCompliantForm(t);if(!R.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(R.isDate(g))return g.toISOString();if(R.isBoolean(g))return g.toString();if(!l&&R.isBlob(g))throw new se("Blob is not supported. Use a Buffer instead.");return R.isArrayBuffer(g)||R.isTypedArray(g)?l&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,m,y){let x=g;if(R.isReactNative(t)&&R.isReactNativeBlob(g))return t.append(vd(y,m,o),u(g)),!1;if(g&&!y&&typeof g=="object"){if(R.endsWith(m,"{}"))m=r?m:m.slice(0,-2),g=JSON.stringify(g);else if(R.isArray(g)&&p5(g)||(R.isFileList(g)||R.endsWith(m,"[]"))&&(x=R.toArray(g)))return m=C1(m),x.forEach(function(b,k){!(R.isUndefined(b)||b===null)&&t.append(i===!0?vd([m],k,o):i===null?m:m+"[]",u(b))}),!1}return lf(g)?!0:(t.append(vd(y,m,o),u(g)),!1)}const h=[],f=Object.assign(g5,{defaultVisitor:d,convertValue:u,isVisitable:lf});function p(g,m){if(!R.isUndefined(g)){if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+m.join("."));h.push(g),R.forEach(g,function(x,v){(!(R.isUndefined(x)||x===null)&&s.call(t,x,R.isString(v)?v.trim():v,m,f))===!0&&p(x,m?m.concat(v):[v])}),h.pop()}}if(!R.isObject(e))throw new TypeError("data must be an object");return p(e),t}function E0(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function eg(e,t){this._pairs=[],e&&mu(e,this,t)}const N1=eg.prototype;N1.append=function(t,n){this._pairs.push([t,n])};N1.toString=function(t){const n=t?function(r){return t.call(this,r,E0)}:E0;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function m5(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function P1(e,t,n){if(!t)return e;const r=n&&n.encode||m5,s=R.isFunction(n)?{serialize:n}:n,o=s&&s.serialize;let i;if(o?i=o(t,s):i=R.isURLSearchParams(t)?t.toString():new eg(t,s).toString(r),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class T0{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){R.forEach(this.handlers,function(r){r!==null&&t(r)})}}const tg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},y5=typeof URLSearchParams<"u"?URLSearchParams:eg,x5=typeof FormData<"u"?FormData:null,b5=typeof Blob<"u"?Blob:null,v5={isBrowser:!0,classes:{URLSearchParams:y5,FormData:x5,Blob:b5},protocols:["http","https","file","blob","url","data"]},ng=typeof window<"u"&&typeof document<"u",cf=typeof navigator=="object"&&navigator||void 0,w5=ng&&(!cf||["ReactNative","NativeScript","NS"].indexOf(cf.product)<0),k5=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",S5=ng&&window.location.href||"http://localhost",_5=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:ng,hasStandardBrowserEnv:w5,hasStandardBrowserWebWorkerEnv:k5,navigator:cf,origin:S5},Symbol.toStringTag,{value:"Module"})),mt={..._5,...v5};function j5(e,t){return mu(e,new mt.classes.URLSearchParams,{visitor:function(n,r,s,o){return mt.isNode&&R.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function C5(e){return R.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function N5(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&R.isArray(s)?s.length:i,l?(R.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!R.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&R.isArray(s[i])&&(s[i]=N5(s[i])),!a)}if(R.isFormData(e)&&R.isFunction(e.entries)){const n={};return R.forEachEntry(e,(r,s)=>{t(C5(r),s,n,0)}),n}return null}function P5(e,t,n){if(R.isString(e))try{return(t||JSON.parse)(e),R.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const La={transitional:tg,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=R.isObject(t);if(o&&R.isHTMLForm(t)&&(t=new FormData(t)),R.isFormData(t))return s?JSON.stringify(R1(t)):t;if(R.isArrayBuffer(t)||R.isBuffer(t)||R.isStream(t)||R.isFile(t)||R.isBlob(t)||R.isReadableStream(t))return t;if(R.isArrayBufferView(t))return t.buffer;if(R.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return j5(t,this.formSerializer).toString();if((a=R.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return mu(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),P5(t)):t}],transformResponse:[function(t){const n=this.transitional||La.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(R.isResponse(t)||R.isReadableStream(t))return t;if(t&&R.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(a){if(i)throw a.name==="SyntaxError"?se.from(a,se.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:mt.classes.FormData,Blob:mt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};R.forEach(["delete","get","head","post","put","patch"],e=>{La.headers[e]={}});const R5=R.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),E5=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&R5[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},A0=Symbol("internals");function ai(e){return e&&String(e).trim().toLowerCase()}function Xl(e){return e===!1||e==null?e:R.isArray(e)?e.map(Xl):String(e).replace(/[\r\n]+$/,"")}function T5(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const A5=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function wd(e,t,n,r,s){if(R.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!R.isString(t)){if(R.isString(r))return t.indexOf(r)!==-1;if(R.isRegExp(r))return r.test(t)}}function M5(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function L5(e,t){const n=R.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let It=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,u){const d=ai(l);if(!d)throw new Error("header name must be a non-empty string");const h=R.findKey(s,d);(!h||s[h]===void 0||u===!0||u===void 0&&s[h]!==!1)&&(s[h||l]=Xl(a))}const i=(a,l)=>R.forEach(a,(u,d)=>o(u,d,l));if(R.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(R.isString(t)&&(t=t.trim())&&!A5(t))i(E5(t),n);else if(R.isObject(t)&&R.isIterable(t)){let a={},l,u;for(const d of t){if(!R.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?R.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=ai(t),t){const r=R.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return T5(s);if(R.isFunction(n))return n.call(this,s,r);if(R.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ai(t),t){const r=R.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||wd(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=ai(i),i){const a=R.findKey(r,i);a&&(!n||wd(r,r[a],a,n))&&(delete r[a],s=!0)}}return R.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||wd(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return R.forEach(this,(s,o)=>{const i=R.findKey(r,o);if(i){n[i]=Xl(s),delete n[o];return}const a=t?M5(o):String(o).trim();a!==o&&delete n[o],n[a]=Xl(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return R.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&R.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[A0]=this[A0]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=ai(i);r[a]||(L5(s,i),r[a]=!0)}return R.isArray(t)?t.forEach(o):o(t),this}};It.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);R.reduceDescriptors(It.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});R.freezeMethods(It);function kd(e,t){const n=this||La,r=t||n,s=It.from(r.headers);let o=r.data;return R.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function E1(e){return!!(e&&e.__CANCEL__)}let Oa=class extends se{constructor(t,n,r){super(t??"canceled",se.ERR_CANCELED,n,r),this.name="CanceledError",this.__CANCEL__=!0}};function T1(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new se("Request failed with status code "+n.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function O5(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function D5(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),d=r[o];i||(i=u),n[s]=l,r[s]=u;let h=o,f=0;for(;h!==s;)f+=n[h++],h=h%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=d,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const d=Date.now(),h=d-n;h>=r?i(u,d):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-h)))},()=>s&&i(s)]}const Tc=(e,t,n=3)=>{let r=0;const s=D5(50,250);return I5(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,u=s(l),d=i<=a;r=i;const h={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-i)/u:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(h)},n)},M0=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},L0=e=>(...t)=>R.asap(()=>e(...t)),F5=mt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,mt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(mt.origin),mt.navigator&&/(msie|trident)/i.test(mt.navigator.userAgent)):()=>!0,z5=mt.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];R.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),R.isString(r)&&a.push(`path=${r}`),R.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),R.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function V5(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function B5(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function A1(e,t,n){let r=!V5(t);return e&&(r||n==!1)?B5(e,t):t}const O0=e=>e instanceof It?{...e}:e;function As(e,t){t=t||{};const n={};function r(u,d,h,f){return R.isPlainObject(u)&&R.isPlainObject(d)?R.merge.call({caseless:f},u,d):R.isPlainObject(d)?R.merge({},d):R.isArray(d)?d.slice():d}function s(u,d,h,f){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u,h,f)}else return r(u,d,h,f)}function o(u,d){if(!R.isUndefined(d))return r(void 0,d)}function i(u,d){if(R.isUndefined(d)){if(!R.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,h){if(h in t)return r(u,d);if(h in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,d,h)=>s(O0(u),O0(d),h,!0)};return R.forEach(Object.keys({...e,...t}),function(d){if(d==="__proto__"||d==="constructor"||d==="prototype")return;const h=R.hasOwnProp(l,d)?l[d]:s,f=h(e[d],t[d],d);R.isUndefined(f)&&h!==a||(n[d]=f)}),n}const M1=e=>{const t=As({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;if(t.headers=i=It.from(i),t.url=P1(A1(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),R.isFormData(n)){if(mt.hasStandardBrowserEnv||mt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(R.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,h])=>{u.includes(d.toLowerCase())&&i.set(d,h)})}}if(mt.hasStandardBrowserEnv&&(r&&R.isFunction(r)&&(r=r(t)),r||r!==!1&&F5(t.url))){const l=s&&o&&z5.read(o);l&&i.set(s,l)}return t},$5=typeof XMLHttpRequest<"u",H5=$5&&function(e){return new Promise(function(n,r){const s=M1(e);let o=s.data;const i=It.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=s,d,h,f,p,g;function m(){p&&p(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let y=new XMLHttpRequest;y.open(s.method.toUpperCase(),s.url,!0),y.timeout=s.timeout;function x(){if(!y)return;const b=It.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),w={data:!a||a==="text"||a==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:b,config:e,request:y};T1(function(N){n(N),m()},function(N){r(N),m()},w),y=null}"onloadend"in y?y.onloadend=x:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(x)},y.onabort=function(){y&&(r(new se("Request aborted",se.ECONNABORTED,e,y)),y=null)},y.onerror=function(k){const w=k&&k.message?k.message:"Network Error",j=new se(w,se.ERR_NETWORK,e,y);j.event=k||null,r(j),y=null},y.ontimeout=function(){let k=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const w=s.transitional||tg;s.timeoutErrorMessage&&(k=s.timeoutErrorMessage),r(new se(k,w.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,y)),y=null},o===void 0&&i.setContentType(null),"setRequestHeader"in y&&R.forEach(i.toJSON(),function(k,w){y.setRequestHeader(w,k)}),R.isUndefined(s.withCredentials)||(y.withCredentials=!!s.withCredentials),a&&a!=="json"&&(y.responseType=s.responseType),u&&([f,g]=Tc(u,!0),y.addEventListener("progress",f)),l&&y.upload&&([h,p]=Tc(l),y.upload.addEventListener("progress",h),y.upload.addEventListener("loadend",p)),(s.cancelToken||s.signal)&&(d=b=>{y&&(r(!b||b.type?new Oa(null,e,y):b),y.abort(),y=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const v=O5(s.url);if(v&&mt.protocols.indexOf(v)===-1){r(new se("Unsupported protocol "+v+":",se.ERR_BAD_REQUEST,e));return}y.send(o||null)})},U5=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,a();const d=u instanceof Error?u:this.reason;r.abort(d instanceof se?d:new Oa(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,o(new se(`timeout of ${t}ms exceeded`,se.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>R.asap(a),l}},W5=function*(e,t){let n=e.byteLength;if(n{const s=G5(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:d}=await s.next();if(u){a(),l.close();return}let h=d.byteLength;if(n){let f=o+=h;n(f)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},I0=64*1024,{isFunction:dl}=R,K5=(({Request:e,Response:t})=>({Request:e,Response:t}))(R.global),{ReadableStream:F0,TextEncoder:z0}=R.global,V0=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Y5=e=>{e=R.merge.call({skipUndefined:!0},K5,e);const{fetch:t,Request:n,Response:r}=e,s=t?dl(t):typeof fetch=="function",o=dl(n),i=dl(r);if(!s)return!1;const a=s&&dl(F0),l=s&&(typeof z0=="function"?(g=>m=>g.encode(m))(new z0):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&a&&V0(()=>{let g=!1;const m=new F0,y=new n(mt.origin,{body:m,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return m.cancel(),g&&!y}),d=i&&a&&V0(()=>R.isReadableStream(new r("").body)),h={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!h[g]&&(h[g]=(m,y)=>{let x=m&&m[g];if(x)return x.call(m);throw new se(`Response type '${g}' is not supported`,se.ERR_NOT_SUPPORT,y)})});const f=async g=>{if(g==null)return 0;if(R.isBlob(g))return g.size;if(R.isSpecCompliantForm(g))return(await new n(mt.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(R.isArrayBufferView(g)||R.isArrayBuffer(g))return g.byteLength;if(R.isURLSearchParams(g)&&(g=g+""),R.isString(g))return(await l(g)).byteLength},p=async(g,m)=>{const y=R.toFiniteNumber(g.getContentLength());return y??f(m)};return async g=>{let{url:m,method:y,data:x,signal:v,cancelToken:b,timeout:k,onDownloadProgress:w,onUploadProgress:j,responseType:N,headers:_,withCredentials:P="same-origin",fetchOptions:A}=M1(g),O=t||fetch;N=N?(N+"").toLowerCase():"text";let F=U5([v,b&&b.toAbortSignal()],k),D=null;const U=F&&F.unsubscribe&&(()=>{F.unsubscribe()});let W;try{if(j&&u&&y!=="get"&&y!=="head"&&(W=await p(_,x))!==0){let I=new n(m,{method:"POST",body:x,duplex:"half"}),Y;if(R.isFormData(x)&&(Y=I.headers.get("content-type"))&&_.setContentType(Y),I.body){const[T,$]=M0(W,Tc(L0(j)));x=D0(I.body,I0,T,$)}}R.isString(P)||(P=P?"include":"omit");const M=o&&"credentials"in n.prototype,H={...A,signal:F,method:y.toUpperCase(),headers:_.normalize().toJSON(),body:x,duplex:"half",credentials:M?P:void 0};D=o&&new n(m,H);let C=await(o?O(D,A):O(m,H));const L=d&&(N==="stream"||N==="response");if(d&&(w||L&&U)){const I={};["status","statusText","headers"].forEach(q=>{I[q]=C[q]});const Y=R.toFiniteNumber(C.headers.get("content-length")),[T,$]=w&&M0(Y,Tc(L0(w),!0))||[];C=new r(D0(C.body,I0,T,()=>{$&&$(),U&&U()}),I)}N=N||"text";let E=await h[R.findKey(h,N)||"text"](C,g);return!L&&U&&U(),await new Promise((I,Y)=>{T1(I,Y,{data:E,headers:It.from(C.headers),status:C.status,statusText:C.statusText,config:g,request:D})})}catch(M){throw U&&U(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new se("Network Error",se.ERR_NETWORK,g,D,M&&M.response),{cause:M.cause||M}):se.from(M,M&&M.code,g,D,M&&M.response)}}},X5=new Map,L1=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,a=i,l,u,d=X5;for(;a--;)l=o[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:Y5(t)),d=u;return u};L1();const rg={http:f5,xhr:H5,fetch:{get:L1}};R.forEach(rg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const B0=e=>`- ${e}`,Q5=e=>R.isFunction(e)||e===null||e===!1;function J5(e,t){e=R.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let i=0;i`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since : `+i.map(B0).join(` -`):" "+B0(i[0]):"as no adapter specified";throw new se("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const O1={getAdapter:J5,adapters:rg};function kd(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Oa(null,e)}function $0(e){return kd(e),e.headers=Dt.from(e.headers),e.data=wd.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),O1.getAdapter(e.adapter||La.adapter,e)(e).then(function(r){return kd(e),r.data=wd.call(e,e.transformResponse,r),r.headers=Dt.from(r.headers),r},function(r){return E1(r)||(kd(e),r&&r.response&&(r.response.data=wd.call(e,e.transformResponse,r.response),r.response.headers=Dt.from(r.response.headers))),Promise.reject(r)})}const D1="1.14.0",mu={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{mu[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const H0={};mu.transitional=function(t,n,r){function s(o,i){return"[Axios v"+D1+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new se(s(i," has been removed"+(n?" in "+n:"")),se.ERR_DEPRECATED);return n&&!H0[i]&&(H0[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};mu.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Z5(e,t,n){if(typeof e!="object")throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new se("option "+o+" must be "+l,se.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new se("Unknown option "+o,se.ERR_BAD_OPTION)}}const Xl={assertOptions:Z5,validators:mu},en=Xl.validators;let Ss=class{constructor(t){this.defaults=t||{},this.interceptors={request:new T0,response:new T0}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=As(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Xl.assertOptions(r,{silentJSONParsing:en.transitional(en.boolean),forcedJSONParsing:en.transitional(en.boolean),clarifyTimeoutError:en.transitional(en.boolean),legacyInterceptorReqResOrdering:en.transitional(en.boolean)},!1),s!=null&&(R.isFunction(s)?n.paramsSerializer={serialize:s}:Xl.assertOptions(s,{encode:en.function,serialize:en.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Xl.assertOptions(n,{baseUrl:en.spelling("baseURL"),withXsrfToken:en.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&R.merge(o.common,o[n.method]);o&&R.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Dt.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;l=l&&m.synchronous;const y=n.transitional||tg;y&&y.legacyInterceptorReqResOrdering?a.unshift(m.fulfilled,m.rejected):a.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let d,h=0,f;if(!l){const g=[$0.bind(this),void 0];for(g.unshift(...a),g.push(...u),f=g.length,d=Promise.resolve(n);h{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new Oa(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new I1(function(s){t=s}),cancel:t}}};function tR(e){return function(n){return e.apply(null,n)}}function nR(e){return R.isObject(e)&&e.isAxiosError===!0}const uf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(uf).forEach(([e,t])=>{uf[t]=e});function F1(e){const t=new Ss(e),n=y1(Ss.prototype.request,t);return R.extend(n,Ss.prototype,t,{allOwnKeys:!0}),R.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return F1(As(e,s))},n}const ae=F1(La);ae.Axios=Ss;ae.CanceledError=Oa;ae.CancelToken=eR;ae.isCancel=E1;ae.VERSION=D1;ae.toFormData=gu;ae.AxiosError=se;ae.Cancel=ae.CanceledError;ae.all=function(t){return Promise.all(t)};ae.spread=tR;ae.isAxiosError=nR;ae.mergeConfig=As;ae.AxiosHeaders=Dt;ae.formToJSON=e=>R1(R.isHTMLForm(e)?new FormData(e):e);ae.getAdapter=O1.getAdapter;ae.HttpStatusCode=uf;ae.default=ae;const{Axios:Hz,AxiosError:Uz,CanceledError:Wz,isCancel:Gz,CancelToken:qz,VERSION:Kz,all:Yz,Cancel:Xz,isAxiosError:Qz,spread:Jz,toFormData:Zz,AxiosHeaders:eV,HttpStatusCode:tV,formToJSON:nV,getAdapter:rV,mergeConfig:sV}=ae,z1=S.createContext(void 0);function rR({children:e}){const[t,n]=S.useState(null),[r,s]=S.useState(!0),o=async()=>{try{const l=await ae.get("/auth/me");n(l.data)}catch{n(null)}finally{s(!1)}};S.useEffect(()=>{const l=localStorage.getItem("access_token");l?(ae.defaults.headers.common.Authorization=`Bearer ${l}`,o()):s(!1)},[]);const i=async(l,u)=>{try{const d=new URLSearchParams;d.append("username",l),d.append("password",u);const h=await ae.post("/auth/token",d,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});localStorage.setItem("access_token",h.data.access_token),ae.defaults.headers.common.Authorization=`Bearer ${h.data.access_token}`,await o()}catch(d){throw d}},a=async()=>{try{localStorage.removeItem("access_token"),delete ae.defaults.headers.common.Authorization,n(null)}catch(l){console.error("Logout error:",l)}};return c.jsx(z1.Provider,{value:{user:t,isAuthenticated:!!t,isLoading:r,login:i,logout:a,checkAuth:o},children:e})}function Qr(){const e=S.useContext(z1);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e}const sR={theme:"system",setTheme:()=>null},V1=S.createContext(sR);function oR({children:e,defaultTheme:t="system",storageKey:n="vite-ui-theme"}){const[r,s]=S.useState(()=>localStorage.getItem(n)||t);S.useEffect(()=>{const i=window.document.documentElement;if(i.classList.remove("light","dark"),r==="system"){const a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";i.classList.add(a);return}i.classList.add(r)},[r]);const o={theme:r,setTheme:i=>{localStorage.setItem(n,i),s(i)}};return c.jsx(V1.Provider,{value:o,children:e})}const B1=()=>{const e=S.useContext(V1);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};/** +`):" "+B0(i[0]):"as no adapter specified";throw new se("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const O1={getAdapter:J5,adapters:rg};function Sd(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Oa(null,e)}function $0(e){return Sd(e),e.headers=It.from(e.headers),e.data=kd.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),O1.getAdapter(e.adapter||La.adapter,e)(e).then(function(r){return Sd(e),r.data=kd.call(e,e.transformResponse,r),r.headers=It.from(r.headers),r},function(r){return E1(r)||(Sd(e),r&&r.response&&(r.response.data=kd.call(e,e.transformResponse,r.response),r.response.headers=It.from(r.response.headers))),Promise.reject(r)})}const D1="1.14.0",yu={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{yu[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const H0={};yu.transitional=function(t,n,r){function s(o,i){return"[Axios v"+D1+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new se(s(i," has been removed"+(n?" in "+n:"")),se.ERR_DEPRECATED);return n&&!H0[i]&&(H0[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};yu.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Z5(e,t,n){if(typeof e!="object")throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new se("option "+o+" must be "+l,se.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new se("Unknown option "+o,se.ERR_BAD_OPTION)}}const Ql={assertOptions:Z5,validators:yu},en=Ql.validators;let Ss=class{constructor(t){this.defaults=t||{},this.interceptors={request:new T0,response:new T0}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=As(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Ql.assertOptions(r,{silentJSONParsing:en.transitional(en.boolean),forcedJSONParsing:en.transitional(en.boolean),clarifyTimeoutError:en.transitional(en.boolean),legacyInterceptorReqResOrdering:en.transitional(en.boolean)},!1),s!=null&&(R.isFunction(s)?n.paramsSerializer={serialize:s}:Ql.assertOptions(s,{encode:en.function,serialize:en.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Ql.assertOptions(n,{baseUrl:en.spelling("baseURL"),withXsrfToken:en.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&R.merge(o.common,o[n.method]);o&&R.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=It.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;l=l&&m.synchronous;const y=n.transitional||tg;y&&y.legacyInterceptorReqResOrdering?a.unshift(m.fulfilled,m.rejected):a.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let d,h=0,f;if(!l){const g=[$0.bind(this),void 0];for(g.unshift(...a),g.push(...u),f=g.length,d=Promise.resolve(n);h{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new Oa(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new I1(function(s){t=s}),cancel:t}}};function tR(e){return function(n){return e.apply(null,n)}}function nR(e){return R.isObject(e)&&e.isAxiosError===!0}const uf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(uf).forEach(([e,t])=>{uf[t]=e});function F1(e){const t=new Ss(e),n=y1(Ss.prototype.request,t);return R.extend(n,Ss.prototype,t,{allOwnKeys:!0}),R.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return F1(As(e,s))},n}const ae=F1(La);ae.Axios=Ss;ae.CanceledError=Oa;ae.CancelToken=eR;ae.isCancel=E1;ae.VERSION=D1;ae.toFormData=mu;ae.AxiosError=se;ae.Cancel=ae.CanceledError;ae.all=function(t){return Promise.all(t)};ae.spread=tR;ae.isAxiosError=nR;ae.mergeConfig=As;ae.AxiosHeaders=It;ae.formToJSON=e=>R1(R.isHTMLForm(e)?new FormData(e):e);ae.getAdapter=O1.getAdapter;ae.HttpStatusCode=uf;ae.default=ae;const{Axios:Gz,AxiosError:qz,CanceledError:Kz,isCancel:Yz,CancelToken:Xz,VERSION:Qz,all:Jz,Cancel:Zz,isAxiosError:eV,spread:tV,toFormData:nV,AxiosHeaders:rV,HttpStatusCode:sV,formToJSON:oV,getAdapter:iV,mergeConfig:aV}=ae,z1=S.createContext(void 0);function rR({children:e}){const[t,n]=S.useState(null),[r,s]=S.useState(!0),o=async()=>{try{const l=await ae.get("/auth/me");n(l.data)}catch{n(null)}finally{s(!1)}};S.useEffect(()=>{const l=localStorage.getItem("access_token");l?(ae.defaults.headers.common.Authorization=`Bearer ${l}`,o()):s(!1)},[]);const i=async(l,u)=>{try{const d=new URLSearchParams;d.append("username",l),d.append("password",u);const h=await ae.post("/auth/token",d,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});localStorage.setItem("access_token",h.data.access_token),ae.defaults.headers.common.Authorization=`Bearer ${h.data.access_token}`,await o()}catch(d){throw d}},a=async()=>{try{localStorage.removeItem("access_token"),delete ae.defaults.headers.common.Authorization,n(null)}catch(l){console.error("Logout error:",l)}};return c.jsx(z1.Provider,{value:{user:t,isAuthenticated:!!t,isLoading:r,login:i,logout:a,checkAuth:o},children:e})}function Qr(){const e=S.useContext(z1);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e}const sR={theme:"system",setTheme:()=>null},V1=S.createContext(sR);function oR({children:e,defaultTheme:t="system",storageKey:n="vite-ui-theme"}){const[r,s]=S.useState(()=>localStorage.getItem(n)||t);S.useEffect(()=>{const i=window.document.documentElement;if(i.classList.remove("light","dark"),r==="system"){const a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";i.classList.add(a);return}i.classList.add(r)},[r]);const o={theme:r,setTheme:i=>{localStorage.setItem(n,i),s(i)}};return c.jsx(V1.Provider,{value:o,children:e})}const B1=()=>{const e=S.useContext(V1);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. @@ -79,312 +79,312 @@ Error generating stack: `+o.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const aR=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),Q=(e,t)=>{const n=S.forwardRef(({color:r="currentColor",size:s=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:a="",children:l,...u},d)=>S.createElement("svg",{ref:d,...iR,width:s,height:s,stroke:r,strokeWidth:i?Number(o)*24/Number(s):o,className:["lucide",`lucide-${aR(e)}`,a].join(" "),...u},[...t.map(([h,f])=>S.createElement(h,f)),...Array.isArray(l)?l:[l]]));return n.displayName=`${e}`,n};/** + */const aR=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),J=(e,t)=>{const n=S.forwardRef(({color:r="currentColor",size:s=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:a="",children:l,...u},d)=>S.createElement("svg",{ref:d,...iR,width:s,height:s,stroke:r,strokeWidth:i?Number(o)*24/Number(s):o,className:["lucide",`lucide-${aR(e)}`,a].join(" "),...u},[...t.map(([h,f])=>S.createElement(h,f)),...Array.isArray(l)?l:[l]]));return n.displayName=`${e}`,n};/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const yu=Q("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** + */const xu=J("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const lR=Q("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + */const lR=J("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const df=Q("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + */const df=J("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const cR=Q("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** + */const cR=J("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Tc=Q("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** + */const Ac=J("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $1=Q("Briefcase",[["rect",{width:"20",height:"14",x:"2",y:"7",rx:"2",ry:"2",key:"eto64e"}],["path",{d:"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"zwj3tp"}]]);/** + */const $1=J("Briefcase",[["rect",{width:"20",height:"14",x:"2",y:"7",rx:"2",ry:"2",key:"eto64e"}],["path",{d:"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"zwj3tp"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const U0=Q("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** + */const U0=J("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const H1=Q("Building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]);/** + */const H1=J("Building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const xu=Q("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + */const bu=J("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const U1=Q("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + */const U1=J("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const W1=Q("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + */const W1=J("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const G1=Q("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + */const G1=J("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bu=Q("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + */const vu=J("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const q1=Q("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + */const q1=J("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const uR=Q("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** + */const uR=J("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const W0=Q("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** + */const W0=J("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const K1=Q("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + */const K1=J("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const mr=Q("ExternalLink",[["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}],["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["line",{x1:"10",x2:"21",y1:"14",y2:"3",key:"18c3s4"}]]);/** + */const mr=J("ExternalLink",[["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}],["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["line",{x1:"10",x2:"21",y1:"14",y2:"3",key:"18c3s4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Dr=Q("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** + */const Dr=J("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ir=Q("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + */const Ir=J("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.294.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=Q("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]);/** + */const G0=J("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const dR=Q("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** + */const dR=J("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Y1=Q("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** + */const Y1=J("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const hR=Q("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + */const hR=J("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const fR=Q("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** + */const fR=J("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const sg=Q("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + */const sg=J("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** * @license lucide-react v0.294.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=Q("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",key:"1kog09"}]]);/** + */const q0=J("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",key:"1kog09"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const X1=Q("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** + */const X1=J("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const pR=Q("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** + */const pR=J("Languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const gR=Q("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]);/** + */const gR=J("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const mR=Q("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + */const mR=J("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Q1=Q("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** + */const Q1=J("LineChart",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const yR=Q("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/** + */const yR=J("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Da=Q("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + */const Da=J("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Qn=Q("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** + */const Qn=J("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const xR=Q("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + */const xR=J("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const vu=Q("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** + */const wu=J("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const J1=Q("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** + */const J1=J("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const hf=Q("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** + */const hf=J("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bR=Q("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** + */const bR=J("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ff=Q("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + */const ff=J("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const vR=Q("PlayCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/** + */const vR=J("PlayCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const wR=Q("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** + */const wR=J("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const kR=Q("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"}]]);/** + */const kR=J("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.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Z1=Q("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + */const Z1=J("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const SR=Q("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** + */const SR=J("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const _R=Q("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + */const _R=J("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.294.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=Q("Sparkles",[["path",{d:"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z",key:"17u4zn"}],["path",{d:"M5 3v4",key:"bklmnn"}],["path",{d:"M19 17v4",key:"iiml17"}],["path",{d:"M3 5h4",key:"nem4j1"}],["path",{d:"M17 19h4",key:"lbex7p"}]]);/** + */const K0=J("Sparkles",[["path",{d:"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z",key:"17u4zn"}],["path",{d:"M5 3v4",key:"bklmnn"}],["path",{d:"M19 17v4",key:"iiml17"}],["path",{d:"M3 5h4",key:"nem4j1"}],["path",{d:"M17 19h4",key:"lbex7p"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const pf=Q("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"}]]);/** + */const pf=J("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"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const jR=Q("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** + */const jR=J("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const CR=Q("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z",key:"y3tblf"}]]);/** + */const CR=J("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2h0a3.13 3.13 0 0 1 3 3.88Z",key:"y3tblf"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const og=Q("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** + */const og=J("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const NR=Q("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + */const NR=J("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const PR=Q("UserCog",[["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m21.7 16.4-.9-.3",key:"12j9ji"}],["path",{d:"m15.2 13.9-.9-.3",key:"1fdjdi"}],["path",{d:"m16.6 18.7.3-.9",key:"heedtr"}],["path",{d:"m19.1 12.2.3-.9",key:"1af3ki"}],["path",{d:"m19.6 18.7-.4-1",key:"1x9vze"}],["path",{d:"m16.8 12.3-.4-1",key:"vqeiwj"}],["path",{d:"m14.3 16.6 1-.4",key:"1qlj63"}],["path",{d:"m20.7 13.8 1-.4",key:"1v5t8k"}]]);/** + */const PR=J("UserCog",[["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m21.7 16.4-.9-.3",key:"12j9ji"}],["path",{d:"m15.2 13.9-.9-.3",key:"1fdjdi"}],["path",{d:"m16.6 18.7.3-.9",key:"heedtr"}],["path",{d:"m19.1 12.2.3-.9",key:"1af3ki"}],["path",{d:"m19.6 18.7-.4-1",key:"1x9vze"}],["path",{d:"m16.8 12.3-.4-1",key:"vqeiwj"}],["path",{d:"m14.3 16.6 1-.4",key:"1qlj63"}],["path",{d:"m20.7 13.8 1-.4",key:"1v5t8k"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const RR=Q("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);/** + */const RR=J("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const To=Q("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + */const To=J("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ek=Q("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + */const ek=J("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ER=Q("Volume2",[["polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5",key:"16drj5"}],["path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07",key:"ltjumu"}],["path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14",key:"1kegas"}]]);/** + */const ER=J("Volume2",[["polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5",key:"16drj5"}],["path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07",key:"ltjumu"}],["path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14",key:"1kegas"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const TR=Q("Wallet",[["path",{d:"M21 12V7H5a2 2 0 0 1 0-4h14v4",key:"195gfw"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h16v-5",key:"195n9w"}],["path",{d:"M18 12a2 2 0 0 0 0 4h4v-4Z",key:"vllfpd"}]]);/** + */const TR=J("Wallet",[["path",{d:"M21 12V7H5a2 2 0 0 1 0-4h14v4",key:"195gfw"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h16v-5",key:"195n9w"}],["path",{d:"M18 12a2 2 0 0 0 0 4h4v-4Z",key:"vllfpd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const wu=Q("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** + */const ku=J("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const AR=Q("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]);function ts({children:e}){const[t,n]=S.useState(!1),[r,s]=S.useState(!1),{user:o,logout:i}=Qr(),a=ir(),u=[...(o==null?void 0:o.account_type)==="Admin"?[{name:"Analytics",href:"/admin/analytics",icon:cR},{name:"Billing",href:"/admin/billing",icon:TR},{name:"Google Analytics",href:"/admin/google-analytics",icon:Q1},{name:"Website & Engagement Funnel",href:"/admin/engagement-insights",icon:Y1}]:[{name:"Dashboard",href:"/dashboard",icon:mR}],{name:"API Keys",href:"/keys",icon:X1},{name:"Account",href:"/account",icon:_R}],d=h=>a.pathname===h;return c.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-black transition-colors duration-300",children:[c.jsxs("header",{className:"fixed top-0 z-40 w-full bg-white dark:bg-black border-b border-gray-200 dark:border-white/10 h-16 flex items-center justify-between px-4 sm:px-6 lg:px-8 transition-colors duration-300",children:[c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsxs("button",{type:"button",className:"lg:hidden p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",onClick:()=>n(!t),children:[c.jsx("span",{className:"sr-only",children:"Open sidebar"}),t?c.jsx(wu,{size:24}):c.jsx(J1,{size:24})]}),c.jsxs("div",{className:"flex items-center gap-2 font-bold text-xl ",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:""}),c.jsx("span",{children:"Sunbird AI"})]})]}),c.jsx("div",{className:"flex items-center gap-4",children:c.jsxs("div",{className:"flex items-center gap-3 pl-4 border-gray-200 dark:border-white/10",children:[c.jsxs("div",{className:"hidden md:block text-right",children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:(o==null?void 0:o.username)||"User"}),c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:(o==null?void 0:o.organization)||"Organization"})]}),c.jsx("div",{className:"h-8 w-8 rounded-full bg-primary-100 dark:bg-primary-900/50 flex items-center justify-center text-primary-700 dark:text-primary-400 border border-primary-200 dark:border-primary-800",children:c.jsx(To,{size:18})})]})})]}),c.jsxs("article",{children:[c.jsx("aside",{className:`fixed top-16 left-0 z-50 h-[calc(100vh-4rem)] bg-white dark:bg-black border-r border-gray-200 dark:border-white/10 transition-all duration-300 lg:translate-x-0 ${t?"translate-x-0":"-translate-x-full"} ${r?"w-16":"w-64"}`,children:c.jsxs("nav",{className:"h-full flex flex-col justify-between p-2",children:[c.jsx("div",{className:"space-y-1",children:u.map(h=>c.jsxs("div",{className:"relative group",children:[c.jsxs(Ee,{to:h.href,className:`flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium transition-colors ${d(h.href)?"bg-primary-50 text-primary-600 dark:bg-primary-900/20 dark:text-primary-400":"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5"} ${r?"justify-center":""}`,onClick:()=>n(!1),children:[c.jsx(h.icon,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:h.name})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white text-white dark:text-black text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:[h.name,c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]},h.name))}),c.jsxs("div",{className:"space-y-1 pt-4 border-t border-gray-200 dark:border-white/10",children:[c.jsxs("div",{className:"relative group",children:[c.jsxs("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5 transition-colors ${r?"justify-center":""}`,children:[c.jsx(Tc,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:"Documentation"})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Documentation",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]}),c.jsxs("div",{className:"relative group",children:[c.jsxs("button",{onClick:i,className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20 transition-colors ${r?"justify-center":""}`,children:[c.jsx(xR,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:"Sign Out"})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Sign Out",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]}),c.jsxs("div",{className:"relative group",children:[c.jsx("button",{onClick:()=>s(!r),className:`hidden lg:flex w-full items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5 transition-colors mt-2 ${r?"justify-center":""}`,children:r?c.jsx(G1,{size:20,className:"flex-shrink-0"}):c.jsxs(c.Fragment,{children:[c.jsx(W1,{size:20,className:"flex-shrink-0"}),c.jsx("span",{children:"Collapse"})]})}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Expand",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]})]})]})}),c.jsxs("main",{className:`pt-16 pb-24 min-h-screen transition-all duration-300 ${r?"lg:pl-20":"lg:pl-64"}`,children:[c.jsx("div",{className:"p-4 sm:p-6 lg:p-8 max-w-7xl mx-auto",children:e}),c.jsx("footer",{className:`border-t border-gray-200 dark:border-white/10 py-6 text-center text-sm text-gray-500 dark:text-gray-400 fixed bottom-0 left-0 right-0 z-40 bg-gray-50 dark:bg-black ${r?"lg:ml-20":"lg:ml-64"}`,children:c.jsxs("p",{children:["© ",new Date().getFullYear()," Sunbird AI. All rights reserved."]})})]})]}),t&&c.jsx("div",{className:"fixed inset-0 bg-black/50 z-20 lg:hidden",onClick:()=>n(!1)})]})}const tk=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),ku=S.createContext({}),Su=S.createContext(null),_u=typeof document<"u",ig=_u?S.useLayoutEffect:S.useEffect,nk=S.createContext({strict:!1}),ag=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),MR="framerAppearId",rk="data-"+ag(MR);function LR(e,t,n,r){const{visualElement:s}=S.useContext(ku),o=S.useContext(nk),i=S.useContext(Su),a=S.useContext(tk).reducedMotion,l=S.useRef();r=r||o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:s,props:n,presenceContext:i,blockInitialAnimation:i?i.initial===!1:!1,reducedMotionConfig:a}));const u=l.current;S.useInsertionEffect(()=>{u&&u.update(n,i)});const d=S.useRef(!!(n[rk]&&!window.HandoffComplete));return ig(()=>{u&&(u.render(),d.current&&u.animationState&&u.animationState.animateChanges())}),S.useEffect(()=>{u&&(u.updateFeatures(),!d.current&&u.animationState&&u.animationState.animateChanges(),d.current&&(d.current=!1,window.HandoffComplete=!0))}),u}function lo(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function OR(e,t,n){return S.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):lo(n)&&(n.current=r))},[t])}function fa(e){return typeof e=="string"||Array.isArray(e)}function ju(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const lg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],cg=["initial",...lg];function Cu(e){return ju(e.animate)||cg.some(t=>fa(e[t]))}function sk(e){return!!(Cu(e)||e.variants)}function DR(e,t){if(Cu(e)){const{initial:n,animate:r}=e;return{initial:n===!1||fa(n)?n:void 0,animate:fa(r)?r:void 0}}return e.inherit!==!1?t:{}}function IR(e){const{initial:t,animate:n}=DR(e,S.useContext(ku));return S.useMemo(()=>({initial:t,animate:n}),[Y0(t),Y0(n)])}function Y0(e){return Array.isArray(e)?e.join(" "):e}const X0={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},pa={};for(const e in X0)pa[e]={isEnabled:t=>X0[e].some(n=>!!t[n])};function FR(e){for(const t in e)pa[t]={...pa[t],...e[t]}}const ug=S.createContext({}),ok=S.createContext({}),zR=Symbol.for("motionComponentSymbol");function VR({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){e&&FR(e);function o(a,l){let u;const d={...S.useContext(tk),...a,layoutId:BR(a)},{isStatic:h}=d,f=IR(a),p=r(a,h);if(!h&&_u){f.visualElement=LR(s,p,d,t);const g=S.useContext(ok),m=S.useContext(nk).strict;f.visualElement&&(u=f.visualElement.loadFeatures(d,m,e,g))}return S.createElement(ku.Provider,{value:f},u&&f.visualElement?S.createElement(u,{visualElement:f.visualElement,...d}):null,n(s,a,OR(p,f.visualElement,l),p,h,f.visualElement))}const i=S.forwardRef(o);return i[zR]=s,i}function BR({layoutId:e}){const t=S.useContext(ug).id;return t&&e!==void 0?t+"-"+e:e}function $R(e){function t(r,s={}){return VR(e(r,s))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,s)=>(n.has(s)||n.set(s,t(s)),n.get(s))})}const HR=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function dg(e){return typeof e!="string"||e.includes("-")?!1:!!(HR.indexOf(e)>-1||/[A-Z]/.test(e))}const Ac={};function UR(e){Object.assign(Ac,e)}const Ia=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Fs=new Set(Ia);function ik(e,{layout:t,layoutId:n}){return Fs.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Ac[e]||e==="opacity")}const It=e=>!!(e&&e.getVelocity),WR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},GR=Ia.length;function qR(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},r,s){let o="";for(let i=0;it=>typeof t=="string"&&t.startsWith(e),lk=ak("--"),gf=ak("var(--"),KR=/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,YR=(e,t)=>t&&typeof e=="number"?t.transform(e):e,$r=(e,t,n)=>Math.min(Math.max(n,e),t),zs={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Ii={...zs,transform:e=>$r(0,1,e)},hl={...zs,default:1},Fi=e=>Math.round(e*1e5)/1e5,Nu=/(-)?([\d]*\.?[\d])+/g,ck=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,XR=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Fa(e){return typeof e=="string"}const za=e=>({test:t=>Fa(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),fr=za("deg"),Dn=za("%"),re=za("px"),QR=za("vh"),JR=za("vw"),Q0={...Dn,parse:e=>Dn.parse(e)/100,transform:e=>Dn.transform(e*100)},J0={...zs,transform:Math.round},uk={borderWidth:re,borderTopWidth:re,borderRightWidth:re,borderBottomWidth:re,borderLeftWidth:re,borderRadius:re,radius:re,borderTopLeftRadius:re,borderTopRightRadius:re,borderBottomRightRadius:re,borderBottomLeftRadius:re,width:re,maxWidth:re,height:re,maxHeight:re,size:re,top:re,right:re,bottom:re,left:re,padding:re,paddingTop:re,paddingRight:re,paddingBottom:re,paddingLeft:re,margin:re,marginTop:re,marginRight:re,marginBottom:re,marginLeft:re,rotate:fr,rotateX:fr,rotateY:fr,rotateZ:fr,scale:hl,scaleX:hl,scaleY:hl,scaleZ:hl,skew:fr,skewX:fr,skewY:fr,distance:re,translateX:re,translateY:re,translateZ:re,x:re,y:re,z:re,perspective:re,transformPerspective:re,opacity:Ii,originX:Q0,originY:Q0,originZ:re,zIndex:J0,fillOpacity:Ii,strokeOpacity:Ii,numOctaves:J0};function hg(e,t,n,r){const{style:s,vars:o,transform:i,transformOrigin:a}=e;let l=!1,u=!1,d=!0;for(const h in t){const f=t[h];if(lk(h)){o[h]=f;continue}const p=uk[h],g=YR(f,p);if(Fs.has(h)){if(l=!0,i[h]=g,!d)continue;f!==(p.default||0)&&(d=!1)}else h.startsWith("origin")?(u=!0,a[h]=g):s[h]=g}if(t.transform||(l||r?s.transform=qR(e.transform,n,d,r):s.transform&&(s.transform="none")),u){const{originX:h="50%",originY:f="50%",originZ:p=0}=a;s.transformOrigin=`${h} ${f} ${p}`}}const fg=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function dk(e,t,n){for(const r in t)!It(t[r])&&!ik(r,n)&&(e[r]=t[r])}function ZR({transformTemplate:e},t,n){return S.useMemo(()=>{const r=fg();return hg(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function e4(e,t,n){const r=e.style||{},s={};return dk(s,r,e),Object.assign(s,ZR(e,t,n)),e.transformValues?e.transformValues(s):s}function t4(e,t,n){const r={},s=e4(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=s,r}const n4=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Mc(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||n4.has(e)}let hk=e=>!Mc(e);function r4(e){e&&(hk=t=>t.startsWith("on")?!Mc(t):e(t))}try{r4(require("@emotion/is-prop-valid").default)}catch{}function s4(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(hk(s)||n===!0&&Mc(s)||!t&&!Mc(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function Z0(e,t,n){return typeof e=="string"?e:re.transform(t+n*e)}function o4(e,t,n){const r=Z0(t,e.x,e.width),s=Z0(n,e.y,e.height);return`${r} ${s}`}const i4={offset:"stroke-dashoffset",array:"stroke-dasharray"},a4={offset:"strokeDashoffset",array:"strokeDasharray"};function l4(e,t,n=1,r=0,s=!0){e.pathLength=1;const o=s?i4:a4;e[o.offset]=re.transform(-r);const i=re.transform(t),a=re.transform(n);e[o.array]=`${i} ${a}`}function pg(e,{attrX:t,attrY:n,attrScale:r,originX:s,originY:o,pathLength:i,pathSpacing:a=1,pathOffset:l=0,...u},d,h,f){if(hg(e,u,d,f),h){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:g,dimensions:m}=e;p.transform&&(m&&(g.transform=p.transform),delete p.transform),m&&(s!==void 0||o!==void 0||g.transform)&&(g.transformOrigin=o4(m,s!==void 0?s:.5,o!==void 0?o:.5)),t!==void 0&&(p.x=t),n!==void 0&&(p.y=n),r!==void 0&&(p.scale=r),i!==void 0&&l4(p,i,a,l,!1)}const fk=()=>({...fg(),attrs:{}}),gg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function c4(e,t,n,r){const s=S.useMemo(()=>{const o=fk();return pg(o,t,{enableHardwareAcceleration:!1},gg(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};dk(o,e.style,e),s.style={...o,...s.style}}return s}function u4(e=!1){return(n,r,s,{latestValues:o},i)=>{const l=(dg(n)?c4:t4)(r,o,i,n),d={...s4(r,typeof n=="string",e),...l,ref:s},{children:h}=r,f=S.useMemo(()=>It(h)?h.get():h,[h]);return S.createElement(n,{...d,children:f})}}function pk(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const gk=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function mk(e,t,n,r){pk(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(gk.has(s)?s:ag(s),t.attrs[s])}function mg(e,t){const{style:n}=e,r={};for(const s in n)(It(n[s])||t.style&&It(t.style[s])||ik(s,e))&&(r[s]=n[s]);return r}function yk(e,t){const n=mg(e,t);for(const r in e)if(It(e[r])||It(t[r])){const s=Ia.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;n[s]=e[r]}return n}function yg(e,t,n,r={},s={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,s)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,s)),t}function xk(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Lc=e=>Array.isArray(e),d4=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),h4=e=>Lc(e)?e[e.length-1]||0:e;function Ql(e){const t=It(e)?e.get():e;return d4(t)?t.toValue():t}function f4({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,s,o){const i={latestValues:p4(r,s,o,e),renderState:t()};return n&&(i.mount=a=>n(r,a,i)),i}const bk=e=>(t,n)=>{const r=S.useContext(ku),s=S.useContext(Su),o=()=>f4(e,t,r,s);return n?o():xk(o)};function p4(e,t,n,r){const s={},o=r(e,{});for(const f in o)s[f]=Ql(o[f]);let{initial:i,animate:a}=e;const l=Cu(e),u=sk(e);t&&u&&!l&&e.inherit!==!1&&(i===void 0&&(i=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||i===!1;const h=d?a:i;return h&&typeof h!="boolean"&&!ju(h)&&(Array.isArray(h)?h:[h]).forEach(p=>{const g=yg(e,p);if(!g)return;const{transitionEnd:m,transition:y,...x}=g;for(const v in x){let b=x[v];if(Array.isArray(b)){const k=d?b.length-1:0;b=b[k]}b!==null&&(s[v]=b)}for(const v in m)s[v]=m[v]}),s}const Ie=e=>e;class ey{constructor(){this.order=[],this.scheduled=new Set}add(t){if(!this.scheduled.has(t))return this.scheduled.add(t),this.order.push(t),!0}remove(t){const n=this.order.indexOf(t);n!==-1&&(this.order.splice(n,1),this.scheduled.delete(t))}clear(){this.order.length=0,this.scheduled.clear()}}function g4(e){let t=new ey,n=new ey,r=0,s=!1,o=!1;const i=new WeakSet,a={schedule:(l,u=!1,d=!1)=>{const h=d&&s,f=h?t:n;return u&&i.add(l),f.add(l)&&h&&s&&(r=t.order.length),l},cancel:l=>{n.remove(l),i.delete(l)},process:l=>{if(s){o=!0;return}if(s=!0,[t,n]=[n,t],n.clear(),r=t.order.length,r)for(let u=0;u(h[f]=g4(()=>n=!0),h),{}),i=h=>o[h].process(s),a=()=>{const h=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(h-s.timestamp,m4),1),s.timestamp=h,s.isProcessing=!0,fl.forEach(i),s.isProcessing=!1,n&&t&&(r=!1,e(a))},l=()=>{n=!0,r=!0,s.isProcessing||e(a)};return{schedule:fl.reduce((h,f)=>{const p=o[f];return h[f]=(g,m=!1,y=!1)=>(n||l(),p.schedule(g,m,y)),h},{}),cancel:h=>fl.forEach(f=>o[f].cancel(h)),state:s,steps:o}}const{schedule:Se,cancel:sr,state:ft,steps:Sd}=y4(typeof requestAnimationFrame<"u"?requestAnimationFrame:Ie,!0),x4={useVisualState:bk({scrapeMotionValuesFromProps:yk,createRenderState:fk,onMount:(e,t,{renderState:n,latestValues:r})=>{Se.read(()=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),Se.render(()=>{pg(n,r,{enableHardwareAcceleration:!1},gg(t.tagName),e.transformTemplate),mk(t,n)})}})},b4={useVisualState:bk({scrapeMotionValuesFromProps:mg,createRenderState:fg})};function v4(e,{forwardMotionProps:t=!1},n,r){return{...dg(e)?x4:b4,preloadedFeatures:n,useRender:u4(t),createVisualElement:r,Component:e}}function Kn(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const vk=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function Pu(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const w4=e=>t=>vk(t)&&e(t,Pu(t));function Jn(e,t,n,r){return Kn(e,t,w4(n),r)}const k4=(e,t)=>n=>t(e(n)),Fr=(...e)=>e.reduce(k4);function wk(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const ty=wk("dragHorizontal"),ny=wk("dragVertical");function kk(e){let t=!1;if(e==="y")t=ny();else if(e==="x")t=ty();else{const n=ty(),r=ny();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function Sk(){const e=kk(!0);return e?(e(),!1):!0}class Jr{constructor(t){this.isMounted=!1,this.node=t}update(){}}function ry(e,t){const n="pointer"+(t?"enter":"leave"),r="onHover"+(t?"Start":"End"),s=(o,i)=>{if(o.pointerType==="touch"||Sk())return;const a=e.getProps();e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",t),a[r]&&Se.update(()=>a[r](o,i))};return Jn(e.current,n,s,{passive:!e.getProps()[r]})}class S4 extends Jr{mount(){this.unmount=Fr(ry(this.node,!0),ry(this.node,!1))}unmount(){}}class _4 extends Jr{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Fr(Kn(this.node.current,"focus",()=>this.onFocus()),Kn(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const _k=(e,t)=>t?e===t?!0:_k(e,t.parentElement):!1;function _d(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,Pu(n))}class j4 extends Jr{constructor(){super(...arguments),this.removeStartListeners=Ie,this.removeEndListeners=Ie,this.removeAccessibleListeners=Ie,this.startPointerPress=(t,n)=>{if(this.isPressing)return;this.removeEndListeners();const r=this.node.getProps(),o=Jn(window,"pointerup",(a,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:d,globalTapTarget:h}=this.node.getProps();Se.update(()=>{!h&&!_k(this.node.current,a.target)?d&&d(a,l):u&&u(a,l)})},{passive:!(r.onTap||r.onPointerUp)}),i=Jn(window,"pointercancel",(a,l)=>this.cancelPress(a,l),{passive:!(r.onTapCancel||r.onPointerCancel)});this.removeEndListeners=Fr(o,i),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=o=>{if(o.key!=="Enter"||this.isPressing)return;const i=a=>{a.key!=="Enter"||!this.checkPressEnd()||_d("up",(l,u)=>{const{onTap:d}=this.node.getProps();d&&Se.update(()=>d(l,u))})};this.removeEndListeners(),this.removeEndListeners=Kn(this.node.current,"keyup",i),_d("down",(a,l)=>{this.startPress(a,l)})},n=Kn(this.node.current,"keydown",t),r=()=>{this.isPressing&&_d("cancel",(o,i)=>this.cancelPress(o,i))},s=Kn(this.node.current,"blur",r);this.removeAccessibleListeners=Fr(n,s)}}startPress(t,n){this.isPressing=!0;const{onTapStart:r,whileTap:s}=this.node.getProps();s&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),r&&Se.update(()=>r(t,n))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!Sk()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:r}=this.node.getProps();r&&Se.update(()=>r(t,n))}mount(){const t=this.node.getProps(),n=Jn(t.globalTapTarget?window:this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),r=Kn(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Fr(n,r)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const mf=new WeakMap,jd=new WeakMap,C4=e=>{const t=mf.get(e.target);t&&t(e)},N4=e=>{e.forEach(C4)};function P4({root:e,...t}){const n=e||document;jd.has(n)||jd.set(n,{});const r=jd.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(N4,{root:e,...t})),r[s]}function R4(e,t,n){const r=P4(t);return mf.set(e,n),r.observe(e),()=>{mf.delete(e),r.unobserve(e)}}const E4={some:0,all:1};class T4 extends Jr{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:o}=t,i={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:E4[s]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:h}=this.node.getProps(),f=u?d:h;f&&f(l)};return R4(this.node.current,i,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(A4(t,n))&&this.startObserver()}unmount(){}}function A4({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const M4={inView:{Feature:T4},tap:{Feature:j4},focus:{Feature:_4},hover:{Feature:S4}};function jk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rt[r]=n.get()),t}function O4(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Ru(e,t,n){const r=e.getProps();return yg(r,t,n!==void 0?n:r.custom,L4(e),O4(e))}let xg=Ie;const _s=e=>e*1e3,Zn=e=>e/1e3,D4={current:!1},Ck=e=>Array.isArray(e)&&typeof e[0]=="number";function Nk(e){return!!(!e||typeof e=="string"&&Pk[e]||Ck(e)||Array.isArray(e)&&e.every(Nk))}const ki=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Pk={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ki([0,.65,.55,1]),circOut:ki([.55,0,1,.45]),backIn:ki([.31,.01,.66,-.59]),backOut:ki([.33,1.53,.69,.99])};function Rk(e){if(e)return Ck(e)?ki(e):Array.isArray(e)?e.map(Rk):Pk[e]}function I4(e,t,n,{delay:r=0,duration:s,repeat:o=0,repeatType:i="loop",ease:a,times:l}={}){const u={[t]:n};l&&(u.offset=l);const d=Rk(a);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:i==="reverse"?"alternate":"normal"})}function F4(e,{repeat:t,repeatType:n="loop"}){const r=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[r]}const Ek=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,z4=1e-7,V4=12;function B4(e,t,n,r,s){let o,i,a=0;do i=t+(n-t)/2,o=Ek(i,r,s)-e,o>0?n=i:t=i;while(Math.abs(o)>z4&&++aB4(o,0,1,e,n);return o=>o===0||o===1?o:Ek(s(o),t,r)}const $4=Va(.42,0,1,1),H4=Va(0,0,.58,1),Tk=Va(.42,0,.58,1),U4=e=>Array.isArray(e)&&typeof e[0]!="number",Ak=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Mk=e=>t=>1-e(1-t),bg=e=>1-Math.sin(Math.acos(e)),Lk=Mk(bg),W4=Ak(bg),Ok=Va(.33,1.53,.69,.99),vg=Mk(Ok),G4=Ak(vg),q4=e=>(e*=2)<1?.5*vg(e):.5*(2-Math.pow(2,-10*(e-1))),K4={linear:Ie,easeIn:$4,easeInOut:Tk,easeOut:H4,circIn:bg,circInOut:W4,circOut:Lk,backIn:vg,backInOut:G4,backOut:Ok,anticipate:q4},sy=e=>{if(Array.isArray(e)){xg(e.length===4);const[t,n,r,s]=e;return Va(t,n,r,s)}else if(typeof e=="string")return K4[e];return e},wg=(e,t)=>n=>!!(Fa(n)&&XR.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Dk=(e,t,n)=>r=>{if(!Fa(r))return r;const[s,o,i,a]=r.match(Nu);return{[e]:parseFloat(s),[t]:parseFloat(o),[n]:parseFloat(i),alpha:a!==void 0?parseFloat(a):1}},Y4=e=>$r(0,255,e),Cd={...zs,transform:e=>Math.round(Y4(e))},xs={test:wg("rgb","red"),parse:Dk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Cd.transform(e)+", "+Cd.transform(t)+", "+Cd.transform(n)+", "+Fi(Ii.transform(r))+")"};function X4(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const yf={test:wg("#"),parse:X4,transform:xs.transform},co={test:wg("hsl","hue"),parse:Dk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Dn.transform(Fi(t))+", "+Dn.transform(Fi(n))+", "+Fi(Ii.transform(r))+")"},vt={test:e=>xs.test(e)||yf.test(e)||co.test(e),parse:e=>xs.test(e)?xs.parse(e):co.test(e)?co.parse(e):yf.parse(e),transform:e=>Fa(e)?e:e.hasOwnProperty("red")?xs.transform(e):co.transform(e)},Te=(e,t,n)=>-n*e+n*t+e;function Nd(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Q4({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,o=0,i=0;if(!t)s=o=i=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;s=Nd(l,a,e+1/3),o=Nd(l,a,e),i=Nd(l,a,e-1/3)}return{red:Math.round(s*255),green:Math.round(o*255),blue:Math.round(i*255),alpha:r}}const Pd=(e,t,n)=>{const r=e*e;return Math.sqrt(Math.max(0,n*(t*t-r)+r))},J4=[yf,xs,co],Z4=e=>J4.find(t=>t.test(e));function oy(e){const t=Z4(e);let n=t.parse(e);return t===co&&(n=Q4(n)),n}const Ik=(e,t)=>{const n=oy(e),r=oy(t),s={...n};return o=>(s.red=Pd(n.red,r.red,o),s.green=Pd(n.green,r.green,o),s.blue=Pd(n.blue,r.blue,o),s.alpha=Te(n.alpha,r.alpha,o),xs.transform(s))};function eE(e){var t,n;return isNaN(e)&&Fa(e)&&(((t=e.match(Nu))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(ck))===null||n===void 0?void 0:n.length)||0)>0}const Fk={regex:KR,countKey:"Vars",token:"${v}",parse:Ie},zk={regex:ck,countKey:"Colors",token:"${c}",parse:vt.parse},Vk={regex:Nu,countKey:"Numbers",token:"${n}",parse:zs.parse};function Rd(e,{regex:t,countKey:n,token:r,parse:s}){const o=e.tokenised.match(t);o&&(e["num"+n]=o.length,e.tokenised=e.tokenised.replace(t,r),e.values.push(...o.map(s)))}function Oc(e){const t=e.toString(),n={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return n.value.includes("var(--")&&Rd(n,Fk),Rd(n,zk),Rd(n,Vk),n}function Bk(e){return Oc(e).values}function $k(e){const{values:t,numColors:n,numVars:r,tokenised:s}=Oc(e),o=t.length;return i=>{let a=s;for(let l=0;ltypeof e=="number"?0:e;function nE(e){const t=Bk(e);return $k(e)(t.map(tE))}const Hr={test:eE,parse:Bk,createTransformer:$k,getAnimatableNone:nE},Hk=(e,t)=>n=>`${n>0?t:e}`;function Uk(e,t){return typeof e=="number"?n=>Te(e,t,n):vt.test(e)?Ik(e,t):e.startsWith("var(")?Hk(e,t):Gk(e,t)}const Wk=(e,t)=>{const n=[...e],r=n.length,s=e.map((o,i)=>Uk(o,t[i]));return o=>{for(let i=0;i{const n={...e,...t},r={};for(const s in n)e[s]!==void 0&&t[s]!==void 0&&(r[s]=Uk(e[s],t[s]));return s=>{for(const o in r)n[o]=r[o](s);return n}},Gk=(e,t)=>{const n=Hr.createTransformer(t),r=Oc(e),s=Oc(t);return r.numVars===s.numVars&&r.numColors===s.numColors&&r.numNumbers>=s.numNumbers?Fr(Wk(r.values,s.values),n):Hk(e,t)},ga=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},iy=(e,t)=>n=>Te(e,t,n);function sE(e){return typeof e=="number"?iy:typeof e=="string"?vt.test(e)?Ik:Gk:Array.isArray(e)?Wk:typeof e=="object"?rE:iy}function oE(e,t,n){const r=[],s=n||sE(e[0]),o=e.length-1;for(let i=0;it[0];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const i=oE(t,r,s),a=i.length,l=u=>{let d=0;if(a>1)for(;dl($r(e[0],e[o-1],u)):l}function iE(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=ga(0,t,r);e.push(Te(n,1,s))}}function aE(e){const t=[0];return iE(t,e.length-1),t}function lE(e,t){return e.map(n=>n*t)}function cE(e,t){return e.map(()=>t||Tk).splice(0,e.length-1)}function Dc({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=U4(r)?r.map(sy):sy(r),o={done:!1,value:t[0]},i=lE(n&&n.length===t.length?n:aE(t),e),a=qk(i,t,{ease:Array.isArray(s)?s:cE(t,s)});return{calculatedDuration:e,next:l=>(o.value=a(l),o.done=l>=e,o)}}function Kk(e,t){return t?e*(1e3/t):0}const uE=5;function Yk(e,t,n){const r=Math.max(t-uE,0);return Kk(n-e(r),t-r)}const Ed=.001,dE=.01,hE=10,fE=.05,pE=1;function gE({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let s,o,i=1-t;i=$r(fE,pE,i),e=$r(dE,hE,Zn(e)),i<1?(s=u=>{const d=u*i,h=d*e,f=d-n,p=xf(u,i),g=Math.exp(-h);return Ed-f/p*g},o=u=>{const h=u*i*e,f=h*n+n,p=Math.pow(i,2)*Math.pow(u,2)*e,g=Math.exp(-h),m=xf(Math.pow(u,2),i);return(-s(u)+Ed>0?-1:1)*((f-p)*g)/m}):(s=u=>{const d=Math.exp(-u*e),h=(u-n)*e+1;return-Ed+d*h},o=u=>{const d=Math.exp(-u*e),h=(n-u)*(e*e);return d*h});const a=5/e,l=yE(s,o,a);if(e=_s(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:i*2*Math.sqrt(r*u),duration:e}}}const mE=12;function yE(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function vE(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!ay(e,bE)&&ay(e,xE)){const n=gE(e);t={...t,...n,mass:1},t.isResolvedFromDuration=!0}return t}function Xk({keyframes:e,restDelta:t,restSpeed:n,...r}){const s=e[0],o=e[e.length-1],i={done:!1,value:s},{stiffness:a,damping:l,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=vE({...r,velocity:-Zn(r.velocity||0)}),p=h||0,g=l/(2*Math.sqrt(a*u)),m=o-s,y=Zn(Math.sqrt(a/u)),x=Math.abs(m)<5;n||(n=x?.01:2),t||(t=x?.005:.5);let v;if(g<1){const b=xf(y,g);v=k=>{const w=Math.exp(-g*y*k);return o-w*((p+g*y*m)/b*Math.sin(b*k)+m*Math.cos(b*k))}}else if(g===1)v=b=>o-Math.exp(-y*b)*(m+(p+y*m)*b);else{const b=y*Math.sqrt(g*g-1);v=k=>{const w=Math.exp(-g*y*k),j=Math.min(b*k,300);return o-w*((p+g*y*m)*Math.sinh(j)+b*m*Math.cosh(j))/b}}return{calculatedDuration:f&&d||null,next:b=>{const k=v(b);if(f)i.done=b>=d;else{let w=p;b!==0&&(g<1?w=Yk(v,b,k):w=0);const j=Math.abs(w)<=n,N=Math.abs(o-k)<=t;i.done=j&&N}return i.value=i.done?o:k,i}}}function ly({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:o=500,modifyTarget:i,min:a,max:l,restDelta:u=.5,restSpeed:d}){const h=e[0],f={done:!1,value:h},p=_=>a!==void 0&&_l,g=_=>a===void 0?l:l===void 0||Math.abs(a-_)-m*Math.exp(-_/r),b=_=>x+v(_),k=_=>{const P=v(_),A=b(_);f.done=Math.abs(P)<=u,f.value=f.done?x:A};let w,j;const N=_=>{p(f.value)&&(w=_,j=Xk({keyframes:[f.value,g(f.value)],velocity:Yk(b,_,f.value),damping:s,stiffness:o,restDelta:u,restSpeed:d}))};return N(0),{calculatedDuration:null,next:_=>{let P=!1;return!j&&w===void 0&&(P=!0,k(_),N(_)),w!==void 0&&_>w?j.next(_-w):(!P&&k(_),f)}}}const wE=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Se.update(t,!0),stop:()=>sr(t),now:()=>ft.isProcessing?ft.timestamp:performance.now()}},cy=2e4;function uy(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=cy?1/0:t}const kE={decay:ly,inertia:ly,tween:Dc,keyframes:Dc,spring:Xk};function Ic({autoplay:e=!0,delay:t=0,driver:n=wE,keyframes:r,type:s="keyframes",repeat:o=0,repeatDelay:i=0,repeatType:a="loop",onPlay:l,onStop:u,onComplete:d,onUpdate:h,...f}){let p=1,g=!1,m,y;const x=()=>{y=new Promise(I=>{m=I})};x();let v;const b=kE[s]||Dc;let k;b!==Dc&&typeof r[0]!="number"&&(k=qk([0,100],r,{clamp:!1}),r=[0,100]);const w=b({...f,keyframes:r});let j;a==="mirror"&&(j=b({...f,keyframes:[...r].reverse(),velocity:-(f.velocity||0)}));let N="idle",_=null,P=null,A=null;w.calculatedDuration===null&&o&&(w.calculatedDuration=uy(w));const{calculatedDuration:O}=w;let F=1/0,D=1/0;O!==null&&(F=O+i,D=F*(o+1)-i);let U=0;const W=I=>{if(P===null)return;p>0&&(P=Math.min(P,I)),p<0&&(P=Math.min(I-D/p,P)),_!==null?U=_:U=Math.round(I-P)*p;const K=U-t*(p>=0?1:-1),T=p>=0?K<0:K>D;U=Math.max(K,0),N==="finished"&&_===null&&(U=D);let $=U,G=w;if(o){const tt=Math.min(U,D)/F;let at=Math.floor(tt),Ye=tt%1;!Ye&&tt>=1&&(Ye=1),Ye===1&&at--,at=Math.min(at,o+1),!!(at%2)&&(a==="reverse"?(Ye=1-Ye,i&&(Ye-=i/F)):a==="mirror"&&(G=j)),$=$r(0,1,Ye)*F}const ne=T?{done:!1,value:r[0]}:G.next($);k&&(ne.value=k(ne.value));let{done:ce}=ne;!T&&O!==null&&(ce=p>=0?U>=D:U<=0);const fe=_===null&&(N==="finished"||N==="running"&&ce);return h&&h(ne.value),fe&&C(),ne},M=()=>{v&&v.stop(),v=void 0},H=()=>{N="idle",M(),m(),x(),P=A=null},C=()=>{N="finished",d&&d(),M(),m()},L=()=>{if(g)return;v||(v=n(W));const I=v.now();l&&l(),_!==null?P=I-_:(!P||N==="finished")&&(P=I),N==="finished"&&x(),A=P,_=null,N="running",v.start()};e&&L();const E={then(I,K){return y.then(I,K)},get time(){return Zn(U)},set time(I){I=_s(I),U=I,_!==null||!v||p===0?_=I:P=v.now()-I/p},get duration(){const I=w.calculatedDuration===null?uy(w):w.calculatedDuration;return Zn(I)},get speed(){return p},set speed(I){I===p||!v||(p=I,E.time=Zn(U))},get state(){return N},play:L,pause:()=>{N="paused",_=U},stop:()=>{g=!0,N!=="idle"&&(N="idle",u&&u(),H())},cancel:()=>{A!==null&&W(A),H()},complete:()=>{N="finished"},sample:I=>(P=0,W(I))};return E}function SE(e){let t;return()=>(t===void 0&&(t=e()),t)}const _E=SE(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),jE=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),pl=10,CE=2e4,NE=(e,t)=>t.type==="spring"||e==="backgroundColor"||!Nk(t.ease);function PE(e,t,{onUpdate:n,onComplete:r,...s}){if(!(_E()&&jE.has(t)&&!s.repeatDelay&&s.repeatType!=="mirror"&&s.damping!==0&&s.type!=="inertia"))return!1;let i=!1,a,l,u=!1;const d=()=>{l=new Promise(b=>{a=b})};d();let{keyframes:h,duration:f=300,ease:p,times:g}=s;if(NE(t,s)){const b=Ic({...s,repeat:0,delay:0});let k={done:!1,value:h[0]};const w=[];let j=0;for(;!k.done&&j{u=!1,m.cancel()},x=()=>{u=!0,Se.update(y),a(),d()};return m.onfinish=()=>{u||(e.set(F4(h,s)),r&&r(),x())},{then(b,k){return l.then(b,k)},attachTimeline(b){return m.timeline=b,m.onfinish=null,Ie},get time(){return Zn(m.currentTime||0)},set time(b){m.currentTime=_s(b)},get speed(){return m.playbackRate},set speed(b){m.playbackRate=b},get duration(){return Zn(f)},play:()=>{i||(m.play(),sr(y))},pause:()=>m.pause(),stop:()=>{if(i=!0,m.playState==="idle")return;const{currentTime:b}=m;if(b){const k=Ic({...s,autoplay:!1});e.setWithVelocity(k.sample(b-pl).value,k.sample(b).value,pl)}x()},complete:()=>{u||m.finish()},cancel:x}}function RE({keyframes:e,delay:t,onUpdate:n,onComplete:r}){const s=()=>(n&&n(e[e.length-1]),r&&r(),{time:0,speed:1,duration:0,play:Ie,pause:Ie,stop:Ie,then:o=>(o(),Promise.resolve()),cancel:Ie,complete:Ie});return t?Ic({keyframes:[0,1],duration:0,delay:t,onComplete:s}):s()}const EE={type:"spring",stiffness:500,damping:25,restSpeed:10},TE=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),AE={type:"keyframes",duration:.8},ME={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},LE=(e,{keyframes:t})=>t.length>2?AE:Fs.has(e)?e.startsWith("scale")?TE(t[1]):EE:ME,bf=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Hr.test(t)||t==="0")&&!t.startsWith("url(")),OE=new Set(["brightness","contrast","saturate","opacity"]);function DE(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Nu)||[];if(!r)return e;const s=n.replace(r,"");let o=OE.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+s+")"}const IE=/([a-z-]*)\(.*?\)/g,vf={...Hr,getAnimatableNone:e=>{const t=e.match(IE);return t?t.map(DE).join(" "):e}},FE={...uk,color:vt,backgroundColor:vt,outlineColor:vt,fill:vt,stroke:vt,borderColor:vt,borderTopColor:vt,borderRightColor:vt,borderBottomColor:vt,borderLeftColor:vt,filter:vf,WebkitFilter:vf},kg=e=>FE[e];function Qk(e,t){let n=kg(e);return n!==vf&&(n=Hr),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const Jk=e=>/^0[^.\s]+$/.test(e);function zE(e){if(typeof e=="number")return e===0;if(e!==null)return e==="none"||e==="0"||Jk(e)}function VE(e,t,n,r){const s=bf(t,n);let o;Array.isArray(n)?o=[...n]:o=[null,n];const i=r.from!==void 0?r.from:e.get();let a;const l=[];for(let u=0;us=>{const o=Sg(r,e)||{},i=o.delay||r.delay||0;let{elapsed:a=0}=r;a=a-_s(i);const l=VE(t,e,n,o),u=l[0],d=l[l.length-1],h=bf(e,u),f=bf(e,d);let p={keyframes:l,velocity:t.getVelocity(),ease:"easeOut",...o,delay:-a,onUpdate:g=>{t.set(g),o.onUpdate&&o.onUpdate(g)},onComplete:()=>{s(),o.onComplete&&o.onComplete()}};if(BE(o)||(p={...p,...LE(e,p)}),p.duration&&(p.duration=_s(p.duration)),p.repeatDelay&&(p.repeatDelay=_s(p.repeatDelay)),!h||!f||D4.current||o.type===!1||$E.skipAnimations)return RE(p);if(!r.isHandoff&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const g=PE(t,e,p);if(g)return g}return Ic(p)};function Fc(e){return!!(It(e)&&e.add)}const Zk=e=>/^\-?\d*\.?\d+$/.test(e);function jg(e,t){e.indexOf(t)===-1&&e.push(t)}function Cg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Ng{constructor(){this.subscriptions=[]}add(t){return jg(this.subscriptions,t),()=>Cg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let o=0;o!isNaN(parseFloat(e));class UE{constructor(t,n={}){this.version="10.18.0",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(r,s=!0)=>{this.prev=this.current,this.current=r;const{delta:o,timestamp:i}=ft;this.lastUpdated!==i&&(this.timeDelta=o,this.lastUpdated=i,Se.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>Se.postRender(this.velocityCheck),this.velocityCheck=({timestamp:r})=>{r!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=HE(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Ng);const r=this.events[t].add(n);return t==="change"?()=>{r(),Se.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=t,this.timeDelta=r}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?Kk(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ao(e,t){return new UE(e,t)}const e2=e=>t=>t.test(e),WE={test:e=>e==="auto",parse:e=>e},t2=[zs,re,Dn,fr,JR,QR,WE],li=e=>t2.find(e2(e)),GE=[...t2,vt,Hr],qE=e=>GE.find(e2(e));function KE(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Ao(n))}function YE(e,t){const n=Ru(e,t);let{transitionEnd:r={},transition:s={},...o}=n?e.makeTargetAnimatable(n,!1):{};o={...o,...r};for(const i in o){const a=h4(o[i]);KE(e,i,a)}}function XE(e,t,n){var r,s;const o=Object.keys(t).filter(a=>!e.hasValue(a)),i=o.length;if(i)for(let a=0;al.remove(h))),u.push(y)}return i&&Promise.all(u).then(()=>{i&&YE(e,i)}),u}function wf(e,t,n={}){const r=Ru(e,t,n.custom);let{transition:s=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(s=n.transitionOverride);const o=r?()=>Promise.all(n2(e,r,n)):()=>Promise.resolve(),i=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=s;return t3(e,t,u+l,d,h,n)}:()=>Promise.resolve(),{when:a}=s;if(a){const[l,u]=a==="beforeChildren"?[o,i]:[i,o];return l().then(()=>u())}else return Promise.all([o(),i(n.delay)])}function t3(e,t,n=0,r=0,s=1,o){const i=[],a=(e.variantChildren.size-1)*r,l=s===1?(u=0)=>u*r:(u=0)=>a-u*r;return Array.from(e.variantChildren).sort(n3).forEach((u,d)=>{u.notify("AnimationStart",t),i.push(wf(u,t,{...o,delay:n+l(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(i)}function n3(e,t){return e.sortNodePosition(t)}function r3(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(o=>wf(e,o,n));r=Promise.all(s)}else if(typeof t=="string")r=wf(e,t,n);else{const s=typeof t=="function"?Ru(e,t,n.custom):t;r=Promise.all(n2(e,s,n))}return r.then(()=>e.notify("AnimationComplete",t))}const s3=[...lg].reverse(),o3=lg.length;function i3(e){return t=>Promise.all(t.map(({animation:n,options:r})=>r3(e,n,r)))}function a3(e){let t=i3(e);const n=c3();let r=!0;const s=(l,u)=>{const d=Ru(e,u);if(d){const{transition:h,transitionEnd:f,...p}=d;l={...l,...p,...f}}return l};function o(l){t=l(e)}function i(l,u){const d=e.getProps(),h=e.getVariantContext(!0)||{},f=[],p=new Set;let g={},m=1/0;for(let x=0;xm&&w,A=!1;const O=Array.isArray(k)?k:[k];let F=O.reduce(s,{});j===!1&&(F={});const{prevResolvedValues:D={}}=b,U={...D,...F},W=M=>{P=!0,p.has(M)&&(A=!0,p.delete(M)),b.needsAnimating[M]=!0};for(const M in U){const H=F[M],C=D[M];if(g.hasOwnProperty(M))continue;let L=!1;Lc(H)&&Lc(C)?L=!jk(H,C):L=H!==C,L?H!==void 0?W(M):p.add(M):H!==void 0&&p.has(M)?W(M):b.protectedKeys[M]=!0}b.prevProp=k,b.prevResolvedValues=F,b.isActive&&(g={...g,...F}),r&&e.blockInitialAnimation&&(P=!1),P&&(!N||A)&&f.push(...O.map(M=>({animation:M,options:{type:v,...l}})))}if(p.size){const x={};p.forEach(v=>{const b=e.getBaseTarget(v);b!==void 0&&(x[v]=b)}),f.push({animation:x})}let y=!!f.length;return r&&(d.initial===!1||d.initial===d.animate)&&!e.manuallyAnimateOnMount&&(y=!1),r=!1,y?t(f):Promise.resolve()}function a(l,u,d){var h;if(n[l].isActive===u)return Promise.resolve();(h=e.variantChildren)===null||h===void 0||h.forEach(p=>{var g;return(g=p.animationState)===null||g===void 0?void 0:g.setActive(l,u)}),n[l].isActive=u;const f=i(d,l);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:i,setActive:a,setAnimateFunction:o,getState:()=>n}}function l3(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!jk(t,e):!1}function ns(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function c3(){return{animate:ns(!0),whileInView:ns(),whileHover:ns(),whileTap:ns(),whileDrag:ns(),whileFocus:ns(),exit:ns()}}class u3 extends Jr{constructor(t){super(t),t.animationState||(t.animationState=a3(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),ju(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let d3=0;class h3 extends Jr{constructor(){super(...arguments),this.id=d3++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:r}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const o=this.node.animationState.setActive("exit",!t,{custom:r??this.node.getProps().custom});n&&!t&&o.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const f3={animation:{Feature:u3},exit:{Feature:h3}},dy=(e,t)=>Math.abs(e-t);function p3(e,t){const n=dy(e.x,t.x),r=dy(e.y,t.y);return Math.sqrt(n**2+r**2)}class r2{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:o=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const h=Ad(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,p=p3(h.offset,{x:0,y:0})>=3;if(!f&&!p)return;const{point:g}=h,{timestamp:m}=ft;this.history.push({...g,timestamp:m});const{onStart:y,onMove:x}=this.handlers;f||(y&&y(this.lastMoveEvent,h),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,h)},this.handlePointerMove=(h,f)=>{this.lastMoveEvent=h,this.lastMoveEventInfo=Td(f,this.transformPagePoint),Se.update(this.updatePoint,!0)},this.handlePointerUp=(h,f)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:m}=this.handlers;if(this.dragSnapToOrigin&&m&&m(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const y=Ad(h.type==="pointercancel"?this.lastMoveEventInfo:Td(f,this.transformPagePoint),this.history);this.startEvent&&p&&p(h,y),g&&g(h,y)},!vk(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const i=Pu(t),a=Td(i,this.transformPagePoint),{point:l}=a,{timestamp:u}=ft;this.history=[{...l,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,Ad(a,this.history)),this.removeListeners=Fr(Jn(this.contextWindow,"pointermove",this.handlePointerMove),Jn(this.contextWindow,"pointerup",this.handlePointerUp),Jn(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),sr(this.updatePoint)}}function Td(e,t){return t?{point:t(e.point)}:e}function hy(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ad({point:e},t){return{point:e,delta:hy(e,s2(t)),offset:hy(e,g3(t)),velocity:m3(t,.1)}}function g3(e){return e[0]}function s2(e){return e[e.length-1]}function m3(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=s2(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const o=Zn(s.timestamp-r.timestamp);if(o===0)return{x:0,y:0};const i={x:(s.x-r.x)/o,y:(s.y-r.y)/o};return i.x===1/0&&(i.x=0),i.y===1/0&&(i.y=0),i}function Kt(e){return e.max-e.min}function kf(e,t=0,n=.01){return Math.abs(e-t)<=n}function fy(e,t,n,r=.5){e.origin=r,e.originPoint=Te(t.min,t.max,e.origin),e.scale=Kt(n)/Kt(t),(kf(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=Te(n.min,n.max,e.origin)-e.originPoint,(kf(e.translate)||isNaN(e.translate))&&(e.translate=0)}function zi(e,t,n,r){fy(e.x,t.x,n.x,r?r.originX:void 0),fy(e.y,t.y,n.y,r?r.originY:void 0)}function py(e,t,n){e.min=n.min+t.min,e.max=e.min+Kt(t)}function y3(e,t,n){py(e.x,t.x,n.x),py(e.y,t.y,n.y)}function gy(e,t,n){e.min=t.min-n.min,e.max=e.min+Kt(t)}function Vi(e,t,n){gy(e.x,t.x,n.x),gy(e.y,t.y,n.y)}function x3(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Te(n,e,r.max):Math.min(e,n)),e}function my(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function b3(e,{top:t,left:n,bottom:r,right:s}){return{x:my(e.x,n,s),y:my(e.y,t,r)}}function yy(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=ga(t.min,t.max-r,e.min):r>s&&(n=ga(e.min,e.max-s,t.min)),$r(0,1,n)}function k3(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Sf=.35;function S3(e=Sf){return e===!1?e=0:e===!0&&(e=Sf),{x:xy(e,"left","right"),y:xy(e,"top","bottom")}}function xy(e,t,n){return{min:by(e,t),max:by(e,n)}}function by(e,t){return typeof e=="number"?e:e[t]||0}const vy=()=>({translate:0,scale:1,origin:0,originPoint:0}),uo=()=>({x:vy(),y:vy()}),wy=()=>({min:0,max:0}),Ve=()=>({x:wy(),y:wy()});function rn(e){return[e("x"),e("y")]}function o2({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function _3({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function j3(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Md(e){return e===void 0||e===1}function _f({scale:e,scaleX:t,scaleY:n}){return!Md(e)||!Md(t)||!Md(n)}function cs(e){return _f(e)||i2(e)||e.z||e.rotate||e.rotateX||e.rotateY}function i2(e){return ky(e.x)||ky(e.y)}function ky(e){return e&&e!=="0%"}function zc(e,t,n){const r=e-n,s=t*r;return n+s}function Sy(e,t,n,r,s){return s!==void 0&&(e=zc(e,s,r)),zc(e,n,r)+t}function jf(e,t=0,n=1,r,s){e.min=Sy(e.min,t,n,r,s),e.max=Sy(e.max,t,n,r,s)}function a2(e,{x:t,y:n}){jf(e.x,t.translate,t.scale,t.originPoint),jf(e.y,n.translate,n.scale,n.originPoint)}function C3(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let o,i;for(let a=0;a1.0000000000001||e<.999999999999?e:1}function yr(e,t){e.min=e.min+t,e.max=e.max+t}function jy(e,t,[n,r,s]){const o=t[s]!==void 0?t[s]:.5,i=Te(e.min,e.max,o);jf(e,t[n],t[r],i,t.scale)}const N3=["x","scaleX","originX"],P3=["y","scaleY","originY"];function ho(e,t){jy(e.x,t,N3),jy(e.y,t,P3)}function l2(e,t){return o2(j3(e.getBoundingClientRect(),t))}function R3(e,t,n){const r=l2(e,n),{scroll:s}=t;return s&&(yr(r.x,s.offset.x),yr(r.y,s.offset.y)),r}const c2=({current:e})=>e?e.ownerDocument.defaultView:null,E3=new WeakMap;class T3{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ve(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:h}=this.getProps();h?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Pu(d,"page").point)},o=(d,h)=>{const{drag:f,dragPropagation:p,onDragStart:g}=this.getProps();if(f&&!p&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=kk(f),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),rn(y=>{let x=this.getAxisMotionValue(y).get()||0;if(Dn.test(x)){const{projection:v}=this.visualElement;if(v&&v.layout){const b=v.layout.layoutBox[y];b&&(x=Kt(b)*(parseFloat(x)/100))}}this.originPoint[y]=x}),g&&Se.update(()=>g(d,h),!1,!0);const{animationState:m}=this.visualElement;m&&m.setActive("whileDrag",!0)},i=(d,h)=>{const{dragPropagation:f,dragDirectionLock:p,onDirectionLock:g,onDrag:m}=this.getProps();if(!f&&!this.openGlobalLock)return;const{offset:y}=h;if(p&&this.currentDirection===null){this.currentDirection=A3(y),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",h.point,y),this.updateAxis("y",h.point,y),this.visualElement.render(),m&&m(d,h)},a=(d,h)=>this.stop(d,h),l=()=>rn(d=>{var h;return this.getAnimationState(d)==="paused"&&((h=this.getAxisMotionValue(d).animation)===null||h===void 0?void 0:h.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new r2(t,{onSessionStart:s,onStart:o,onMove:i,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:c2(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:o}=this.getProps();o&&Se.update(()=>o(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!gl(t,s,this.currentDirection))return;const o=this.getAxisMotionValue(t);let i=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(i=x3(i,this.constraints[t],this.elastic[t])),o.set(i)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,o=this.constraints;n&&lo(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=b3(s.layoutBox,n):this.constraints=!1,this.elastic=S3(r),o!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&rn(i=>{this.getAxisMotionValue(i)&&(this.constraints[i]=k3(s.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!lo(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const o=R3(r,s.root,this.visualElement.getTransformPagePoint());let i=v3(s.layout.layoutBox,o);if(n){const a=n(_3(i));this.hasMutatedConstraints=!!a,a&&(i=o2(a))}return i}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:o,dragSnapToOrigin:i,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=rn(d=>{if(!gl(d,n,this.currentDirection))return;let h=l&&l[d]||{};i&&(h={min:0,max:0});const f=s?200:1e6,p=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...o,...h};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return r.start(_g(t,r,0,n))}stopAnimation(){rn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){rn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){rn(n=>{const{drag:r}=this.getProps();if(!gl(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,o=this.getAxisMotionValue(n);if(s&&s.layout){const{min:i,max:a}=s.layout.layoutBox[n];o.set(t[n]-Te(i,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!lo(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};rn(i=>{const a=this.getAxisMotionValue(i);if(a){const l=a.get();s[i]=w3({min:l,max:l},this.constraints[i])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),rn(i=>{if(!gl(i,t,null))return;const a=this.getAxisMotionValue(i),{min:l,max:u}=this.constraints[i];a.set(Te(l,u,s[i]))})}addListeners(){if(!this.visualElement.current)return;E3.set(this.visualElement,this);const t=this.visualElement.current,n=Jn(t,"pointerdown",l=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();lo(l)&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,o=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),r();const i=Kn(window,"resize",()=>this.scalePositionWithinConstraints()),a=s.addEventListener("didUpdate",(({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(rn(d=>{const h=this.getAxisMotionValue(d);h&&(this.originPoint[d]+=l[d].translate,h.set(h.get()+l[d].translate))}),this.visualElement.render())}));return()=>{i(),n(),o(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:o=!1,dragElastic:i=Sf,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:o,dragElastic:i,dragMomentum:a}}}function gl(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function A3(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class M3 extends Jr{constructor(t){super(t),this.removeGroupControls=Ie,this.removeListeners=Ie,this.controls=new T3(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ie}unmount(){this.removeGroupControls(),this.removeListeners()}}const Cy=e=>(t,n)=>{e&&Se.update(()=>e(t,n))};class L3 extends Jr{constructor(){super(...arguments),this.removePointerDownListener=Ie}onPointerDown(t){this.session=new r2(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:c2(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Cy(t),onStart:Cy(n),onMove:r,onEnd:(o,i)=>{delete this.session,s&&Se.update(()=>s(o,i))}}}mount(){this.removePointerDownListener=Jn(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function O3(){const e=S.useContext(Su);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,s=S.useId();return S.useEffect(()=>r(s),[]),!t&&n?[!1,()=>n&&n(s)]:[!0]}const Jl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Ny(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ci={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(re.test(e))e=parseFloat(e);else return e;const n=Ny(e,t.target.x),r=Ny(e,t.target.y);return`${n}% ${r}%`}},D3={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=Hr.parse(e);if(s.length>5)return r;const o=Hr.createTransformer(e),i=typeof s[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;s[0+i]/=a,s[1+i]/=l;const u=Te(a,l,.5);return typeof s[2+i]=="number"&&(s[2+i]/=u),typeof s[3+i]=="number"&&(s[3+i]/=u),o(s)}};class I3 extends z.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:o}=t;UR(F3),o&&(n.group&&n.group.add(o),r&&r.register&&s&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),Jl.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:o}=this.props,i=r.projection;return i&&(i.isPresent=o,s||t.layoutDependency!==n||n===void 0?i.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?i.promote():i.relegate()||Se.postRender(()=>{const a=i.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),queueMicrotask(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function u2(e){const[t,n]=O3(),r=S.useContext(ug);return z.createElement(I3,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(ok),isPresent:t,safeToRemove:n})}const F3={borderRadius:{...ci,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ci,borderTopRightRadius:ci,borderBottomLeftRadius:ci,borderBottomRightRadius:ci,boxShadow:D3},d2=["TopLeft","TopRight","BottomLeft","BottomRight"],z3=d2.length,Py=e=>typeof e=="string"?parseFloat(e):e,Ry=e=>typeof e=="number"||re.test(e);function V3(e,t,n,r,s,o){s?(e.opacity=Te(0,n.opacity!==void 0?n.opacity:1,B3(r)),e.opacityExit=Te(t.opacity!==void 0?t.opacity:1,0,$3(r))):o&&(e.opacity=Te(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let i=0;irt?1:n(ga(e,t,r))}function Ty(e,t){e.min=t.min,e.max=t.max}function tn(e,t){Ty(e.x,t.x),Ty(e.y,t.y)}function Ay(e,t,n,r,s){return e-=t,e=zc(e,1/n,r),s!==void 0&&(e=zc(e,1/s,r)),e}function H3(e,t=0,n=1,r=.5,s,o=e,i=e){if(Dn.test(t)&&(t=parseFloat(t),t=Te(i.min,i.max,t/100)-i.min),typeof t!="number")return;let a=Te(o.min,o.max,r);e===o&&(a-=t),e.min=Ay(e.min,t,n,a,s),e.max=Ay(e.max,t,n,a,s)}function My(e,t,[n,r,s],o,i){H3(e,t[n],t[r],t[s],t.scale,o,i)}const U3=["x","scaleX","originX"],W3=["y","scaleY","originY"];function Ly(e,t,n,r){My(e.x,t,U3,n?n.x:void 0,r?r.x:void 0),My(e.y,t,W3,n?n.y:void 0,r?r.y:void 0)}function Oy(e){return e.translate===0&&e.scale===1}function f2(e){return Oy(e.x)&&Oy(e.y)}function G3(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function p2(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function Dy(e){return Kt(e.x)/Kt(e.y)}class q3{constructor(){this.members=[]}add(t){jg(this.members,t),t.scheduleRender()}remove(t){if(Cg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const o=this.members[s];if(o.isPresent!==!1){r=o;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function Iy(e,t,n){let r="";const s=e.x.translate/t.x,o=e.y.translate/t.y;if((s||o)&&(r=`translate3d(${s}px, ${o}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:u,rotateY:d}=n;l&&(r+=`rotate(${l}deg) `),u&&(r+=`rotateX(${u}deg) `),d&&(r+=`rotateY(${d}deg) `)}const i=e.x.scale*t.x,a=e.y.scale*t.y;return(i!==1||a!==1)&&(r+=`scale(${i}, ${a})`),r||"none"}const K3=(e,t)=>e.depth-t.depth;class Y3{constructor(){this.children=[],this.isDirty=!1}add(t){jg(this.children,t),this.isDirty=!0}remove(t){Cg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(K3),this.isDirty=!1,this.children.forEach(t)}}function X3(e,t){const n=performance.now(),r=({timestamp:s})=>{const o=s-n;o>=t&&(sr(r),e(o-t))};return Se.read(r,!0),()=>sr(r)}function Q3(e){window.MotionDebug&&window.MotionDebug.record(e)}function J3(e){return e instanceof SVGElement&&e.tagName!=="svg"}function Z3(e,t,n){const r=It(e)?e:Ao(e);return r.start(_g("",r,t,n)),r.animation}const Fy=["","X","Y","Z"],eT={visibility:"hidden"},zy=1e3;let tT=0;const us={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function g2({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(i={},a=t==null?void 0:t()){this.id=tT++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,us.totalNodes=us.resolvedTargetDeltas=us.recalculatedProjection=0,this.nodes.forEach(sT),this.nodes.forEach(cT),this.nodes.forEach(uT),this.nodes.forEach(oT),Q3(us)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=i,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(i,()=>{this.root.updateBlockedByResize=!0,h&&h(),h=X3(f,250),Jl.hasAnimatedSinceResize&&(Jl.hasAnimatedSinceResize=!1,this.nodes.forEach(By))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||u)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:f,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const m=this.options.transition||d.getDefaultTransition()||gT,{onLayoutAnimationStart:y,onLayoutAnimationComplete:x}=d.getProps(),v=!this.targetLayout||!p2(this.targetLayout,g)||p,b=!f&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||b||f&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(h,b);const k={...Sg(m,"layout"),onPlay:y,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||By(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const i=this.getStack();i&&i.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,sr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(dT),this.animationId++)}getTransformTemplate(){const{visualElement:i}=this.options;return i&&i.getProps().transformTemplate}willUpdate(i=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;dthis.update()))}clearAllSnapshots(){this.nodes.forEach(iT),this.sharedNodes.forEach(hT)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Se.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Se.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const w=k/1e3;$y(h.x,i.x,w),$y(h.y,i.y,w),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Vi(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),fT(this.relativeTarget,this.relativeTargetOrigin,f,w),b&&G3(this.relativeTarget,b)&&(this.isProjectionDirty=!1),b||(b=Ve()),tn(b,this.relativeTarget)),m&&(this.animationValues=d,V3(d,u,this.latestValues,w,v,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=w},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(i){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(sr(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Se.update(()=>{Jl.hasAnimatedSinceResize=!0,this.currentAnimation=Z3(0,zy,{...i,onUpdate:a=>{this.mixTargetDelta(a),i.onUpdate&&i.onUpdate(a)},onComplete:()=>{i.onComplete&&i.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const i=this.getStack();i&&i.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zy),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const i=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:d}=i;if(!(!a||!l||!u)){if(this!==i&&this.layout&&u&&m2(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Ve();const h=Kt(this.layout.layoutBox.x);l.x.min=i.target.x.min,l.x.max=l.x.min+h;const f=Kt(this.layout.layoutBox.y);l.y.min=i.target.y.min,l.y.max=l.y.min+f}tn(a,l),ho(a,d),zi(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(i,a){this.sharedNodes.has(i)||this.sharedNodes.set(i,new q3),this.sharedNodes.get(i).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const i=this.getStack();return i?i.lead===this:!0}getLead(){var i;const{layoutId:a}=this.options;return a?((i=this.getStack())===null||i===void 0?void 0:i.lead)||this:this}getPrevLead(){var i;const{layoutId:a}=this.options;return a?(i=this.getStack())===null||i===void 0?void 0:i.prevLead:void 0}getStack(){const{layoutId:i}=this.options;if(i)return this.root.sharedNodes.get(i)}promote({needsReset:i,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),i&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const i=this.getStack();return i?i.relegate(this):!1}resetRotation(){const{visualElement:i}=this.options;if(!i)return;let a=!1;const{latestValues:l}=i;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(a=!0),!a)return;const u={};for(let d=0;d{var a;return(a=i.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Vy),this.root.sharedNodes.clear()}}}function nT(e){e.updateLayout()}function rT(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:o}=e.options,i=n.source!==e.layout.source;o==="size"?rn(h=>{const f=i?n.measuredBox[h]:n.layoutBox[h],p=Kt(f);f.min=r[h].min,f.max=f.min+p}):m2(o,n.layoutBox,r)&&rn(h=>{const f=i?n.measuredBox[h]:n.layoutBox[h],p=Kt(r[h]);f.max=f.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[h].max=e.relativeTarget[h].min+p)});const a=uo();zi(a,r,n.layoutBox);const l=uo();i?zi(l,e.applyTransform(s,!0),n.measuredBox):zi(l,r,n.layoutBox);const u=!f2(a);let d=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:f,layout:p}=h;if(f&&p){const g=Ve();Vi(g,n.layoutBox,f.layoutBox);const m=Ve();Vi(m,r,p.layoutBox),p2(g,m)||(d=!0),h.options.layoutRoot&&(e.relativeTarget=m,e.relativeTargetOrigin=g,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function sT(e){us.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function oT(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function iT(e){e.clearSnapshot()}function Vy(e){e.clearMeasurements()}function aT(e){e.isLayoutDirty=!1}function lT(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function By(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function cT(e){e.resolveTargetDelta()}function uT(e){e.calcProjection()}function dT(e){e.resetRotation()}function hT(e){e.removeLeadSnapshot()}function $y(e,t,n){e.translate=Te(t.translate,0,n),e.scale=Te(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Hy(e,t,n,r){e.min=Te(t.min,n.min,r),e.max=Te(t.max,n.max,r)}function fT(e,t,n,r){Hy(e.x,t.x,n.x,r),Hy(e.y,t.y,n.y,r)}function pT(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const gT={duration:.45,ease:[.4,0,.1,1]},Uy=e=>typeof navigator<"u"&&navigator.userAgent.toLowerCase().includes(e),Wy=Uy("applewebkit/")&&!Uy("chrome/")?Math.round:Ie;function Gy(e){e.min=Wy(e.min),e.max=Wy(e.max)}function mT(e){Gy(e.x),Gy(e.y)}function m2(e,t,n){return e==="position"||e==="preserve-aspect"&&!kf(Dy(t),Dy(n),.2)}const yT=g2({attachResizeListener:(e,t)=>Kn(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Ld={current:void 0},y2=g2({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Ld.current){const e=new yT({});e.mount(window),e.setOptions({layoutScroll:!0}),Ld.current=e}return Ld.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),xT={pan:{Feature:L3},drag:{Feature:M3,ProjectionNode:y2,MeasureLayout:u2}},bT=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function vT(e){const t=bT.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function Cf(e,t,n=1){const[r,s]=vT(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);if(o){const i=o.trim();return Zk(i)?parseFloat(i):i}else return gf(s)?Cf(s,t,n+1):s}function wT(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(s=>{const o=s.get();if(!gf(o))return;const i=Cf(o,r);i&&s.set(i)});for(const s in t){const o=t[s];if(!gf(o))continue;const i=Cf(o,r);i&&(t[s]=i,n||(n={}),n[s]===void 0&&(n[s]=o))}return{target:t,transitionEnd:n}}const kT=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),x2=e=>kT.has(e),ST=e=>Object.keys(e).some(x2),qy=e=>e===zs||e===re,Ky=(e,t)=>parseFloat(e.split(", ")[t]),Yy=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/);if(s)return Ky(s[1],t);{const o=r.match(/^matrix\((.+)\)$/);return o?Ky(o[1],e):0}},_T=new Set(["x","y","z"]),jT=Ia.filter(e=>!_T.has(e));function CT(e){const t=[];return jT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const Mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Yy(4,13),y:Yy(5,14)};Mo.translateX=Mo.x;Mo.translateY=Mo.y;const NT=(e,t,n)=>{const r=t.measureViewportBox(),s=t.current,o=getComputedStyle(s),{display:i}=o,a={};i==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{a[u]=Mo[u](r,o)}),t.render();const l=t.measureViewportBox();return n.forEach(u=>{const d=t.getValue(u);d&&d.jump(a[u]),e[u]=Mo[u](l,o)}),e},PT=(e,t,n={},r={})=>{t={...t},r={...r};const s=Object.keys(t).filter(x2);let o=[],i=!1;const a=[];if(s.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let d=n[l],h=li(d);const f=t[l];let p;if(Lc(f)){const g=f.length,m=f[0]===null?1:0;d=f[m],h=li(d);for(let y=m;y=0?window.pageYOffset:null,u=NT(t,e,a);return o.length&&o.forEach(([d,h])=>{e.getValue(d).set(h)}),e.render(),_u&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function RT(e,t,n,r){return ST(t)?PT(e,t,n,r):{target:t,transitionEnd:r}}const ET=(e,t,n,r)=>{const s=wT(e,t,r);return t=s.target,r=s.transitionEnd,RT(e,t,n,r)},Nf={current:null},b2={current:!1};function TT(){if(b2.current=!0,!!_u)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Nf.current=e.matches;e.addListener(t),t()}else Nf.current=!1}function AT(e,t,n){const{willChange:r}=t;for(const s in t){const o=t[s],i=n[s];if(It(o))e.addValue(s,o),Fc(r)&&r.add(s);else if(It(i))e.addValue(s,Ao(o,{owner:e})),Fc(r)&&r.remove(s);else if(i!==o)if(e.hasValue(s)){const a=e.getValue(s);!a.hasAnimated&&a.set(o)}else{const a=e.getStaticValue(s);e.addValue(s,Ao(a!==void 0?a:o,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const Xy=new WeakMap,v2=Object.keys(pa),MT=v2.length,Qy=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],LT=cg.length;class OT{constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,visualState:o},i={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>Se.render(this.render,!1,!0);const{latestValues:a,renderState:l}=o;this.latestValues=a,this.baseTarget={...a},this.initialValues=n.initial?{...a}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=s,this.options=i,this.isControllingVariants=Cu(n),this.isVariantNode=sk(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:u,...d}=this.scrapeMotionValuesFromProps(n,{});for(const h in d){const f=d[h];a[h]!==void 0&&It(f)&&(f.set(a[h],!1),Fc(u)&&u.add(h))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,Xy.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,r)=>this.bindToMotionValue(r,n)),b2.current||TT(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Nf.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Xy.delete(this.current),this.projection&&this.projection.unmount(),sr(this.notifyUpdate),sr(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const r=Fs.has(t),s=n.on("change",i=>{this.latestValues[t]=i,this.props.onUpdate&&Se.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{s(),o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},r,s,o){let i,a;for(let l=0;lthis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:f,layoutRoot:p})}return a}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update():(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ve()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Ao(n,{owner:this}),this.addValue(t,r)),r}readValue(t){var n;return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(n=this.getBaseTargetFromProps(this.props,t))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,s=typeof r=="string"||typeof r=="object"?(n=yg(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&s!==void 0)return s;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!It(o)?o:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Ng),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class w2 extends OT{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:s},o){let i=JE(r,t||{},this);if(s&&(n&&(n=s(n)),r&&(r=s(r)),i&&(i=s(i))),o){XE(this,r,i);const a=ET(this,r,i,n);n=a.transitionEnd,r=a.target}return{transition:t,transitionEnd:n,...r}}}function DT(e){return window.getComputedStyle(e)}class IT extends w2{constructor(){super(...arguments),this.type="html"}readValueFromInstance(t,n){if(Fs.has(n)){const r=kg(n);return r&&r.default||0}else{const r=DT(t),s=(lk(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return l2(t,n)}build(t,n,r,s){hg(t,n,r,s.transformTemplate)}scrapeMotionValuesFromProps(t,n){return mg(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;It(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,r,s){pk(t,n,r,s)}}class FT extends w2{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Fs.has(n)){const r=kg(n);return r&&r.default||0}return n=gk.has(n)?n:ag(n),t.getAttribute(n)}measureInstanceViewportBox(){return Ve()}scrapeMotionValuesFromProps(t,n){return yk(t,n)}build(t,n,r,s){pg(t,n,r,this.isSVGTag,s.transformTemplate)}renderInstance(t,n,r,s){mk(t,n,r,s)}mount(t){this.isSVGTag=gg(t.tagName),super.mount(t)}}const zT=(e,t)=>dg(e)?new FT(t,{enableHardwareAcceleration:!1}):new IT(t,{enableHardwareAcceleration:!0}),VT={layout:{ProjectionNode:y2,MeasureLayout:u2}},BT={...f3,...M4,...xT,...VT},Lo=$R((e,t)=>v4(e,t,BT,zT));function k2(){const e=S.useRef(!1);return ig(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function $T(){const e=k2(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>Se.postRender(r),[r]),t]}class HT extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function UT({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),s=S.useRef({width:0,height:0,top:0,left:0});return S.useInsertionEffect(()=>{const{width:o,height:i,top:a,left:l}=s.current;if(t||!r.current||!o||!i)return;r.current.dataset.motionPopId=n;const u=document.createElement("style");return document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` + */const AR=J("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]);function ts({children:e}){const[t,n]=S.useState(!1),[r,s]=S.useState(!1),{user:o,logout:i}=Qr(),a=ir(),u=[...(o==null?void 0:o.account_type)==="Admin"?[{name:"Analytics",href:"/admin/analytics",icon:cR},{name:"Billing",href:"/admin/billing",icon:TR},{name:"Google Analytics",href:"/admin/google-analytics",icon:Q1},{name:"Website & Engagement Funnel",href:"/admin/engagement-insights",icon:Y1}]:[{name:"Dashboard",href:"/dashboard",icon:mR}],{name:"API Keys",href:"/keys",icon:X1},{name:"Account",href:"/account",icon:_R}],d=h=>a.pathname===h;return c.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-black transition-colors duration-300",children:[c.jsxs("header",{className:"fixed top-0 z-40 w-full bg-white dark:bg-black border-b border-gray-200 dark:border-white/10 h-16 flex items-center justify-between px-4 sm:px-6 lg:px-8 transition-colors duration-300",children:[c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsxs("button",{type:"button",className:"lg:hidden p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",onClick:()=>n(!t),children:[c.jsx("span",{className:"sr-only",children:"Open sidebar"}),t?c.jsx(ku,{size:24}):c.jsx(J1,{size:24})]}),c.jsxs("div",{className:"flex items-center gap-2 font-bold text-xl ",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:""}),c.jsx("span",{children:"Sunbird AI"})]})]}),c.jsx("div",{className:"flex items-center gap-4",children:c.jsxs("div",{className:"flex items-center gap-3 pl-4 border-gray-200 dark:border-white/10",children:[c.jsxs("div",{className:"hidden md:block text-right",children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:(o==null?void 0:o.username)||"User"}),c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:(o==null?void 0:o.organization)||"Organization"})]}),c.jsx("div",{className:"h-8 w-8 rounded-full bg-primary-100 dark:bg-primary-900/50 flex items-center justify-center text-primary-700 dark:text-primary-400 border border-primary-200 dark:border-primary-800",children:c.jsx(To,{size:18})})]})})]}),c.jsxs("article",{children:[c.jsx("aside",{className:`fixed top-16 left-0 z-50 h-[calc(100vh-4rem)] bg-white dark:bg-black border-r border-gray-200 dark:border-white/10 transition-all duration-300 lg:translate-x-0 ${t?"translate-x-0":"-translate-x-full"} ${r?"w-16":"w-64"}`,children:c.jsxs("nav",{className:"h-full flex flex-col justify-between p-2",children:[c.jsx("div",{className:"space-y-1",children:u.map(h=>c.jsxs("div",{className:"relative group",children:[c.jsxs(Ee,{to:h.href,className:`flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium transition-colors ${d(h.href)?"bg-primary-50 text-primary-600 dark:bg-primary-900/20 dark:text-primary-400":"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5"} ${r?"justify-center":""}`,onClick:()=>n(!1),children:[c.jsx(h.icon,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:h.name})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white text-white dark:text-black text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:[h.name,c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]},h.name))}),c.jsxs("div",{className:"space-y-1 pt-4 border-t border-gray-200 dark:border-white/10",children:[c.jsxs("div",{className:"relative group",children:[c.jsxs("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:`flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5 transition-colors ${r?"justify-center":""}`,children:[c.jsx(Ac,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:"Documentation"})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Documentation",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]}),c.jsxs("div",{className:"relative group",children:[c.jsxs("button",{onClick:i,className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20 transition-colors ${r?"justify-center":""}`,children:[c.jsx(xR,{size:20,className:"flex-shrink-0"}),!r&&c.jsx("span",{children:"Sign Out"})]}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Sign Out",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]}),c.jsxs("div",{className:"relative group",children:[c.jsx("button",{onClick:()=>s(!r),className:`hidden lg:flex w-full items-center gap-3 px-3 py-2 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5 transition-colors mt-2 ${r?"justify-center":""}`,children:r?c.jsx(G1,{size:20,className:"flex-shrink-0"}):c.jsxs(c.Fragment,{children:[c.jsx(W1,{size:20,className:"flex-shrink-0"}),c.jsx("span",{children:"Collapse"})]})}),r&&c.jsxs("div",{className:"absolute left-full ml-2 top-1/2 -translate-y-1/2 px-2 py-1 bg-gray-900 dark:bg-white dark:text-black text-white text-xs rounded opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 whitespace-nowrap z-50 pointer-events-none",children:["Expand",c.jsx("div",{className:"absolute right-full top-1/2 -translate-y-1/2 border-4 border-transparent border-r-gray-900 dark:border-r-white"})]})]})]})]})}),c.jsxs("main",{className:`pt-16 pb-24 min-h-screen transition-all duration-300 ${r?"lg:pl-20":"lg:pl-64"}`,children:[c.jsx("div",{className:"p-4 sm:p-6 lg:p-8 max-w-7xl mx-auto",children:e}),c.jsx("footer",{className:`border-t border-gray-200 dark:border-white/10 py-6 text-center text-sm text-gray-500 dark:text-gray-400 fixed bottom-0 left-0 right-0 z-40 bg-gray-50 dark:bg-black ${r?"lg:ml-20":"lg:ml-64"}`,children:c.jsxs("p",{children:["© ",new Date().getFullYear()," Sunbird AI. All rights reserved."]})})]})]}),t&&c.jsx("div",{className:"fixed inset-0 bg-black/50 z-20 lg:hidden",onClick:()=>n(!1)})]})}const tk=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Su=S.createContext({}),_u=S.createContext(null),ju=typeof document<"u",ig=ju?S.useLayoutEffect:S.useEffect,nk=S.createContext({strict:!1}),ag=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),MR="framerAppearId",rk="data-"+ag(MR);function LR(e,t,n,r){const{visualElement:s}=S.useContext(Su),o=S.useContext(nk),i=S.useContext(_u),a=S.useContext(tk).reducedMotion,l=S.useRef();r=r||o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:s,props:n,presenceContext:i,blockInitialAnimation:i?i.initial===!1:!1,reducedMotionConfig:a}));const u=l.current;S.useInsertionEffect(()=>{u&&u.update(n,i)});const d=S.useRef(!!(n[rk]&&!window.HandoffComplete));return ig(()=>{u&&(u.render(),d.current&&u.animationState&&u.animationState.animateChanges())}),S.useEffect(()=>{u&&(u.updateFeatures(),!d.current&&u.animationState&&u.animationState.animateChanges(),d.current&&(d.current=!1,window.HandoffComplete=!0))}),u}function lo(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function OR(e,t,n){return S.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):lo(n)&&(n.current=r))},[t])}function fa(e){return typeof e=="string"||Array.isArray(e)}function Cu(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const lg=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],cg=["initial",...lg];function Nu(e){return Cu(e.animate)||cg.some(t=>fa(e[t]))}function sk(e){return!!(Nu(e)||e.variants)}function DR(e,t){if(Nu(e)){const{initial:n,animate:r}=e;return{initial:n===!1||fa(n)?n:void 0,animate:fa(r)?r:void 0}}return e.inherit!==!1?t:{}}function IR(e){const{initial:t,animate:n}=DR(e,S.useContext(Su));return S.useMemo(()=>({initial:t,animate:n}),[Y0(t),Y0(n)])}function Y0(e){return Array.isArray(e)?e.join(" "):e}const X0={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},pa={};for(const e in X0)pa[e]={isEnabled:t=>X0[e].some(n=>!!t[n])};function FR(e){for(const t in e)pa[t]={...pa[t],...e[t]}}const ug=S.createContext({}),ok=S.createContext({}),zR=Symbol.for("motionComponentSymbol");function VR({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:s}){e&&FR(e);function o(a,l){let u;const d={...S.useContext(tk),...a,layoutId:BR(a)},{isStatic:h}=d,f=IR(a),p=r(a,h);if(!h&&ju){f.visualElement=LR(s,p,d,t);const g=S.useContext(ok),m=S.useContext(nk).strict;f.visualElement&&(u=f.visualElement.loadFeatures(d,m,e,g))}return S.createElement(Su.Provider,{value:f},u&&f.visualElement?S.createElement(u,{visualElement:f.visualElement,...d}):null,n(s,a,OR(p,f.visualElement,l),p,h,f.visualElement))}const i=S.forwardRef(o);return i[zR]=s,i}function BR({layoutId:e}){const t=S.useContext(ug).id;return t&&e!==void 0?t+"-"+e:e}function $R(e){function t(r,s={}){return VR(e(r,s))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,s)=>(n.has(s)||n.set(s,t(s)),n.get(s))})}const HR=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function dg(e){return typeof e!="string"||e.includes("-")?!1:!!(HR.indexOf(e)>-1||/[A-Z]/.test(e))}const Mc={};function UR(e){Object.assign(Mc,e)}const Ia=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Fs=new Set(Ia);function ik(e,{layout:t,layoutId:n}){return Fs.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Mc[e]||e==="opacity")}const Ft=e=>!!(e&&e.getVelocity),WR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},GR=Ia.length;function qR(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},r,s){let o="";for(let i=0;it=>typeof t=="string"&&t.startsWith(e),lk=ak("--"),gf=ak("var(--"),KR=/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,YR=(e,t)=>t&&typeof e=="number"?t.transform(e):e,$r=(e,t,n)=>Math.min(Math.max(n,e),t),zs={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Ii={...zs,transform:e=>$r(0,1,e)},hl={...zs,default:1},Fi=e=>Math.round(e*1e5)/1e5,Pu=/(-)?([\d]*\.?[\d])+/g,ck=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,XR=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Fa(e){return typeof e=="string"}const za=e=>({test:t=>Fa(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),fr=za("deg"),Dn=za("%"),re=za("px"),QR=za("vh"),JR=za("vw"),Q0={...Dn,parse:e=>Dn.parse(e)/100,transform:e=>Dn.transform(e*100)},J0={...zs,transform:Math.round},uk={borderWidth:re,borderTopWidth:re,borderRightWidth:re,borderBottomWidth:re,borderLeftWidth:re,borderRadius:re,radius:re,borderTopLeftRadius:re,borderTopRightRadius:re,borderBottomRightRadius:re,borderBottomLeftRadius:re,width:re,maxWidth:re,height:re,maxHeight:re,size:re,top:re,right:re,bottom:re,left:re,padding:re,paddingTop:re,paddingRight:re,paddingBottom:re,paddingLeft:re,margin:re,marginTop:re,marginRight:re,marginBottom:re,marginLeft:re,rotate:fr,rotateX:fr,rotateY:fr,rotateZ:fr,scale:hl,scaleX:hl,scaleY:hl,scaleZ:hl,skew:fr,skewX:fr,skewY:fr,distance:re,translateX:re,translateY:re,translateZ:re,x:re,y:re,z:re,perspective:re,transformPerspective:re,opacity:Ii,originX:Q0,originY:Q0,originZ:re,zIndex:J0,fillOpacity:Ii,strokeOpacity:Ii,numOctaves:J0};function hg(e,t,n,r){const{style:s,vars:o,transform:i,transformOrigin:a}=e;let l=!1,u=!1,d=!0;for(const h in t){const f=t[h];if(lk(h)){o[h]=f;continue}const p=uk[h],g=YR(f,p);if(Fs.has(h)){if(l=!0,i[h]=g,!d)continue;f!==(p.default||0)&&(d=!1)}else h.startsWith("origin")?(u=!0,a[h]=g):s[h]=g}if(t.transform||(l||r?s.transform=qR(e.transform,n,d,r):s.transform&&(s.transform="none")),u){const{originX:h="50%",originY:f="50%",originZ:p=0}=a;s.transformOrigin=`${h} ${f} ${p}`}}const fg=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function dk(e,t,n){for(const r in t)!Ft(t[r])&&!ik(r,n)&&(e[r]=t[r])}function ZR({transformTemplate:e},t,n){return S.useMemo(()=>{const r=fg();return hg(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function e4(e,t,n){const r=e.style||{},s={};return dk(s,r,e),Object.assign(s,ZR(e,t,n)),e.transformValues?e.transformValues(s):s}function t4(e,t,n){const r={},s=e4(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=s,r}const n4=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Lc(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||n4.has(e)}let hk=e=>!Lc(e);function r4(e){e&&(hk=t=>t.startsWith("on")?!Lc(t):e(t))}try{r4(require("@emotion/is-prop-valid").default)}catch{}function s4(e,t,n){const r={};for(const s in e)s==="values"&&typeof e.values=="object"||(hk(s)||n===!0&&Lc(s)||!t&&!Lc(s)||e.draggable&&s.startsWith("onDrag"))&&(r[s]=e[s]);return r}function Z0(e,t,n){return typeof e=="string"?e:re.transform(t+n*e)}function o4(e,t,n){const r=Z0(t,e.x,e.width),s=Z0(n,e.y,e.height);return`${r} ${s}`}const i4={offset:"stroke-dashoffset",array:"stroke-dasharray"},a4={offset:"strokeDashoffset",array:"strokeDasharray"};function l4(e,t,n=1,r=0,s=!0){e.pathLength=1;const o=s?i4:a4;e[o.offset]=re.transform(-r);const i=re.transform(t),a=re.transform(n);e[o.array]=`${i} ${a}`}function pg(e,{attrX:t,attrY:n,attrScale:r,originX:s,originY:o,pathLength:i,pathSpacing:a=1,pathOffset:l=0,...u},d,h,f){if(hg(e,u,d,f),h){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:g,dimensions:m}=e;p.transform&&(m&&(g.transform=p.transform),delete p.transform),m&&(s!==void 0||o!==void 0||g.transform)&&(g.transformOrigin=o4(m,s!==void 0?s:.5,o!==void 0?o:.5)),t!==void 0&&(p.x=t),n!==void 0&&(p.y=n),r!==void 0&&(p.scale=r),i!==void 0&&l4(p,i,a,l,!1)}const fk=()=>({...fg(),attrs:{}}),gg=e=>typeof e=="string"&&e.toLowerCase()==="svg";function c4(e,t,n,r){const s=S.useMemo(()=>{const o=fk();return pg(o,t,{enableHardwareAcceleration:!1},gg(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};dk(o,e.style,e),s.style={...o,...s.style}}return s}function u4(e=!1){return(n,r,s,{latestValues:o},i)=>{const l=(dg(n)?c4:t4)(r,o,i,n),d={...s4(r,typeof n=="string",e),...l,ref:s},{children:h}=r,f=S.useMemo(()=>Ft(h)?h.get():h,[h]);return S.createElement(n,{...d,children:f})}}function pk(e,{style:t,vars:n},r,s){Object.assign(e.style,t,s&&s.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const gk=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function mk(e,t,n,r){pk(e,t,void 0,r);for(const s in t.attrs)e.setAttribute(gk.has(s)?s:ag(s),t.attrs[s])}function mg(e,t){const{style:n}=e,r={};for(const s in n)(Ft(n[s])||t.style&&Ft(t.style[s])||ik(s,e))&&(r[s]=n[s]);return r}function yk(e,t){const n=mg(e,t);for(const r in e)if(Ft(e[r])||Ft(t[r])){const s=Ia.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;n[s]=e[r]}return n}function yg(e,t,n,r={},s={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,s)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,s)),t}function xk(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const Oc=e=>Array.isArray(e),d4=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),h4=e=>Oc(e)?e[e.length-1]||0:e;function Jl(e){const t=Ft(e)?e.get():e;return d4(t)?t.toValue():t}function f4({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,s,o){const i={latestValues:p4(r,s,o,e),renderState:t()};return n&&(i.mount=a=>n(r,a,i)),i}const bk=e=>(t,n)=>{const r=S.useContext(Su),s=S.useContext(_u),o=()=>f4(e,t,r,s);return n?o():xk(o)};function p4(e,t,n,r){const s={},o=r(e,{});for(const f in o)s[f]=Jl(o[f]);let{initial:i,animate:a}=e;const l=Nu(e),u=sk(e);t&&u&&!l&&e.inherit!==!1&&(i===void 0&&(i=t.initial),a===void 0&&(a=t.animate));let d=n?n.initial===!1:!1;d=d||i===!1;const h=d?a:i;return h&&typeof h!="boolean"&&!Cu(h)&&(Array.isArray(h)?h:[h]).forEach(p=>{const g=yg(e,p);if(!g)return;const{transitionEnd:m,transition:y,...x}=g;for(const v in x){let b=x[v];if(Array.isArray(b)){const k=d?b.length-1:0;b=b[k]}b!==null&&(s[v]=b)}for(const v in m)s[v]=m[v]}),s}const Ie=e=>e;class ey{constructor(){this.order=[],this.scheduled=new Set}add(t){if(!this.scheduled.has(t))return this.scheduled.add(t),this.order.push(t),!0}remove(t){const n=this.order.indexOf(t);n!==-1&&(this.order.splice(n,1),this.scheduled.delete(t))}clear(){this.order.length=0,this.scheduled.clear()}}function g4(e){let t=new ey,n=new ey,r=0,s=!1,o=!1;const i=new WeakSet,a={schedule:(l,u=!1,d=!1)=>{const h=d&&s,f=h?t:n;return u&&i.add(l),f.add(l)&&h&&s&&(r=t.order.length),l},cancel:l=>{n.remove(l),i.delete(l)},process:l=>{if(s){o=!0;return}if(s=!0,[t,n]=[n,t],n.clear(),r=t.order.length,r)for(let u=0;u(h[f]=g4(()=>n=!0),h),{}),i=h=>o[h].process(s),a=()=>{const h=performance.now();n=!1,s.delta=r?1e3/60:Math.max(Math.min(h-s.timestamp,m4),1),s.timestamp=h,s.isProcessing=!0,fl.forEach(i),s.isProcessing=!1,n&&t&&(r=!1,e(a))},l=()=>{n=!0,r=!0,s.isProcessing||e(a)};return{schedule:fl.reduce((h,f)=>{const p=o[f];return h[f]=(g,m=!1,y=!1)=>(n||l(),p.schedule(g,m,y)),h},{}),cancel:h=>fl.forEach(f=>o[f].cancel(h)),state:s,steps:o}}const{schedule:Se,cancel:sr,state:ft,steps:_d}=y4(typeof requestAnimationFrame<"u"?requestAnimationFrame:Ie,!0),x4={useVisualState:bk({scrapeMotionValuesFromProps:yk,createRenderState:fk,onMount:(e,t,{renderState:n,latestValues:r})=>{Se.read(()=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),Se.render(()=>{pg(n,r,{enableHardwareAcceleration:!1},gg(t.tagName),e.transformTemplate),mk(t,n)})}})},b4={useVisualState:bk({scrapeMotionValuesFromProps:mg,createRenderState:fg})};function v4(e,{forwardMotionProps:t=!1},n,r){return{...dg(e)?x4:b4,preloadedFeatures:n,useRender:u4(t),createVisualElement:r,Component:e}}function Kn(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const vk=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function Ru(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const w4=e=>t=>vk(t)&&e(t,Ru(t));function Jn(e,t,n,r){return Kn(e,t,w4(n),r)}const k4=(e,t)=>n=>t(e(n)),Fr=(...e)=>e.reduce(k4);function wk(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const ty=wk("dragHorizontal"),ny=wk("dragVertical");function kk(e){let t=!1;if(e==="y")t=ny();else if(e==="x")t=ty();else{const n=ty(),r=ny();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function Sk(){const e=kk(!0);return e?(e(),!1):!0}class Jr{constructor(t){this.isMounted=!1,this.node=t}update(){}}function ry(e,t){const n="pointer"+(t?"enter":"leave"),r="onHover"+(t?"Start":"End"),s=(o,i)=>{if(o.pointerType==="touch"||Sk())return;const a=e.getProps();e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",t),a[r]&&Se.update(()=>a[r](o,i))};return Jn(e.current,n,s,{passive:!e.getProps()[r]})}class S4 extends Jr{mount(){this.unmount=Fr(ry(this.node,!0),ry(this.node,!1))}unmount(){}}class _4 extends Jr{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Fr(Kn(this.node.current,"focus",()=>this.onFocus()),Kn(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const _k=(e,t)=>t?e===t?!0:_k(e,t.parentElement):!1;function jd(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,Ru(n))}class j4 extends Jr{constructor(){super(...arguments),this.removeStartListeners=Ie,this.removeEndListeners=Ie,this.removeAccessibleListeners=Ie,this.startPointerPress=(t,n)=>{if(this.isPressing)return;this.removeEndListeners();const r=this.node.getProps(),o=Jn(window,"pointerup",(a,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:d,globalTapTarget:h}=this.node.getProps();Se.update(()=>{!h&&!_k(this.node.current,a.target)?d&&d(a,l):u&&u(a,l)})},{passive:!(r.onTap||r.onPointerUp)}),i=Jn(window,"pointercancel",(a,l)=>this.cancelPress(a,l),{passive:!(r.onTapCancel||r.onPointerCancel)});this.removeEndListeners=Fr(o,i),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=o=>{if(o.key!=="Enter"||this.isPressing)return;const i=a=>{a.key!=="Enter"||!this.checkPressEnd()||jd("up",(l,u)=>{const{onTap:d}=this.node.getProps();d&&Se.update(()=>d(l,u))})};this.removeEndListeners(),this.removeEndListeners=Kn(this.node.current,"keyup",i),jd("down",(a,l)=>{this.startPress(a,l)})},n=Kn(this.node.current,"keydown",t),r=()=>{this.isPressing&&jd("cancel",(o,i)=>this.cancelPress(o,i))},s=Kn(this.node.current,"blur",r);this.removeAccessibleListeners=Fr(n,s)}}startPress(t,n){this.isPressing=!0;const{onTapStart:r,whileTap:s}=this.node.getProps();s&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),r&&Se.update(()=>r(t,n))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!Sk()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:r}=this.node.getProps();r&&Se.update(()=>r(t,n))}mount(){const t=this.node.getProps(),n=Jn(t.globalTapTarget?window:this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),r=Kn(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Fr(n,r)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const mf=new WeakMap,Cd=new WeakMap,C4=e=>{const t=mf.get(e.target);t&&t(e)},N4=e=>{e.forEach(C4)};function P4({root:e,...t}){const n=e||document;Cd.has(n)||Cd.set(n,{});const r=Cd.get(n),s=JSON.stringify(t);return r[s]||(r[s]=new IntersectionObserver(N4,{root:e,...t})),r[s]}function R4(e,t,n){const r=P4(t);return mf.set(e,n),r.observe(e),()=>{mf.delete(e),r.unobserve(e)}}const E4={some:0,all:1};class T4 extends Jr{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:s="some",once:o}=t,i={root:n?n.current:void 0,rootMargin:r,threshold:typeof s=="number"?s:E4[s]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:h}=this.node.getProps(),f=u?d:h;f&&f(l)};return R4(this.node.current,i,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(A4(t,n))&&this.startObserver()}unmount(){}}function A4({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const M4={inView:{Feature:T4},tap:{Feature:j4},focus:{Feature:_4},hover:{Feature:S4}};function jk(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rt[r]=n.get()),t}function O4(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Eu(e,t,n){const r=e.getProps();return yg(r,t,n!==void 0?n:r.custom,L4(e),O4(e))}let xg=Ie;const _s=e=>e*1e3,Zn=e=>e/1e3,D4={current:!1},Ck=e=>Array.isArray(e)&&typeof e[0]=="number";function Nk(e){return!!(!e||typeof e=="string"&&Pk[e]||Ck(e)||Array.isArray(e)&&e.every(Nk))}const ki=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Pk={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ki([0,.65,.55,1]),circOut:ki([.55,0,1,.45]),backIn:ki([.31,.01,.66,-.59]),backOut:ki([.33,1.53,.69,.99])};function Rk(e){if(e)return Ck(e)?ki(e):Array.isArray(e)?e.map(Rk):Pk[e]}function I4(e,t,n,{delay:r=0,duration:s,repeat:o=0,repeatType:i="loop",ease:a,times:l}={}){const u={[t]:n};l&&(u.offset=l);const d=Rk(a);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:r,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:i==="reverse"?"alternate":"normal"})}function F4(e,{repeat:t,repeatType:n="loop"}){const r=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[r]}const Ek=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,z4=1e-7,V4=12;function B4(e,t,n,r,s){let o,i,a=0;do i=t+(n-t)/2,o=Ek(i,r,s)-e,o>0?n=i:t=i;while(Math.abs(o)>z4&&++aB4(o,0,1,e,n);return o=>o===0||o===1?o:Ek(s(o),t,r)}const $4=Va(.42,0,1,1),H4=Va(0,0,.58,1),Tk=Va(.42,0,.58,1),U4=e=>Array.isArray(e)&&typeof e[0]!="number",Ak=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Mk=e=>t=>1-e(1-t),bg=e=>1-Math.sin(Math.acos(e)),Lk=Mk(bg),W4=Ak(bg),Ok=Va(.33,1.53,.69,.99),vg=Mk(Ok),G4=Ak(vg),q4=e=>(e*=2)<1?.5*vg(e):.5*(2-Math.pow(2,-10*(e-1))),K4={linear:Ie,easeIn:$4,easeInOut:Tk,easeOut:H4,circIn:bg,circInOut:W4,circOut:Lk,backIn:vg,backInOut:G4,backOut:Ok,anticipate:q4},sy=e=>{if(Array.isArray(e)){xg(e.length===4);const[t,n,r,s]=e;return Va(t,n,r,s)}else if(typeof e=="string")return K4[e];return e},wg=(e,t)=>n=>!!(Fa(n)&&XR.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Dk=(e,t,n)=>r=>{if(!Fa(r))return r;const[s,o,i,a]=r.match(Pu);return{[e]:parseFloat(s),[t]:parseFloat(o),[n]:parseFloat(i),alpha:a!==void 0?parseFloat(a):1}},Y4=e=>$r(0,255,e),Nd={...zs,transform:e=>Math.round(Y4(e))},xs={test:wg("rgb","red"),parse:Dk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Nd.transform(e)+", "+Nd.transform(t)+", "+Nd.transform(n)+", "+Fi(Ii.transform(r))+")"};function X4(e){let t="",n="",r="",s="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),s=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),s=e.substring(4,5),t+=t,n+=n,r+=r,s+=s),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:s?parseInt(s,16)/255:1}}const yf={test:wg("#"),parse:X4,transform:xs.transform},co={test:wg("hsl","hue"),parse:Dk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Dn.transform(Fi(t))+", "+Dn.transform(Fi(n))+", "+Fi(Ii.transform(r))+")"},wt={test:e=>xs.test(e)||yf.test(e)||co.test(e),parse:e=>xs.test(e)?xs.parse(e):co.test(e)?co.parse(e):yf.parse(e),transform:e=>Fa(e)?e:e.hasOwnProperty("red")?xs.transform(e):co.transform(e)},Te=(e,t,n)=>-n*e+n*t+e;function Pd(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Q4({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let s=0,o=0,i=0;if(!t)s=o=i=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;s=Pd(l,a,e+1/3),o=Pd(l,a,e),i=Pd(l,a,e-1/3)}return{red:Math.round(s*255),green:Math.round(o*255),blue:Math.round(i*255),alpha:r}}const Rd=(e,t,n)=>{const r=e*e;return Math.sqrt(Math.max(0,n*(t*t-r)+r))},J4=[yf,xs,co],Z4=e=>J4.find(t=>t.test(e));function oy(e){const t=Z4(e);let n=t.parse(e);return t===co&&(n=Q4(n)),n}const Ik=(e,t)=>{const n=oy(e),r=oy(t),s={...n};return o=>(s.red=Rd(n.red,r.red,o),s.green=Rd(n.green,r.green,o),s.blue=Rd(n.blue,r.blue,o),s.alpha=Te(n.alpha,r.alpha,o),xs.transform(s))};function e3(e){var t,n;return isNaN(e)&&Fa(e)&&(((t=e.match(Pu))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(ck))===null||n===void 0?void 0:n.length)||0)>0}const Fk={regex:KR,countKey:"Vars",token:"${v}",parse:Ie},zk={regex:ck,countKey:"Colors",token:"${c}",parse:wt.parse},Vk={regex:Pu,countKey:"Numbers",token:"${n}",parse:zs.parse};function Ed(e,{regex:t,countKey:n,token:r,parse:s}){const o=e.tokenised.match(t);o&&(e["num"+n]=o.length,e.tokenised=e.tokenised.replace(t,r),e.values.push(...o.map(s)))}function Dc(e){const t=e.toString(),n={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return n.value.includes("var(--")&&Ed(n,Fk),Ed(n,zk),Ed(n,Vk),n}function Bk(e){return Dc(e).values}function $k(e){const{values:t,numColors:n,numVars:r,tokenised:s}=Dc(e),o=t.length;return i=>{let a=s;for(let l=0;ltypeof e=="number"?0:e;function n3(e){const t=Bk(e);return $k(e)(t.map(t3))}const Hr={test:e3,parse:Bk,createTransformer:$k,getAnimatableNone:n3},Hk=(e,t)=>n=>`${n>0?t:e}`;function Uk(e,t){return typeof e=="number"?n=>Te(e,t,n):wt.test(e)?Ik(e,t):e.startsWith("var(")?Hk(e,t):Gk(e,t)}const Wk=(e,t)=>{const n=[...e],r=n.length,s=e.map((o,i)=>Uk(o,t[i]));return o=>{for(let i=0;i{const n={...e,...t},r={};for(const s in n)e[s]!==void 0&&t[s]!==void 0&&(r[s]=Uk(e[s],t[s]));return s=>{for(const o in r)n[o]=r[o](s);return n}},Gk=(e,t)=>{const n=Hr.createTransformer(t),r=Dc(e),s=Dc(t);return r.numVars===s.numVars&&r.numColors===s.numColors&&r.numNumbers>=s.numNumbers?Fr(Wk(r.values,s.values),n):Hk(e,t)},ga=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},iy=(e,t)=>n=>Te(e,t,n);function s3(e){return typeof e=="number"?iy:typeof e=="string"?wt.test(e)?Ik:Gk:Array.isArray(e)?Wk:typeof e=="object"?r3:iy}function o3(e,t,n){const r=[],s=n||s3(e[0]),o=e.length-1;for(let i=0;it[0];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const i=o3(t,r,s),a=i.length,l=u=>{let d=0;if(a>1)for(;dl($r(e[0],e[o-1],u)):l}function i3(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const s=ga(0,t,r);e.push(Te(n,1,s))}}function a3(e){const t=[0];return i3(t,e.length-1),t}function l3(e,t){return e.map(n=>n*t)}function c3(e,t){return e.map(()=>t||Tk).splice(0,e.length-1)}function Ic({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const s=U4(r)?r.map(sy):sy(r),o={done:!1,value:t[0]},i=l3(n&&n.length===t.length?n:a3(t),e),a=qk(i,t,{ease:Array.isArray(s)?s:c3(t,s)});return{calculatedDuration:e,next:l=>(o.value=a(l),o.done=l>=e,o)}}function Kk(e,t){return t?e*(1e3/t):0}const u3=5;function Yk(e,t,n){const r=Math.max(t-u3,0);return Kk(n-e(r),t-r)}const Td=.001,d3=.01,h3=10,f3=.05,p3=1;function g3({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let s,o,i=1-t;i=$r(f3,p3,i),e=$r(d3,h3,Zn(e)),i<1?(s=u=>{const d=u*i,h=d*e,f=d-n,p=xf(u,i),g=Math.exp(-h);return Td-f/p*g},o=u=>{const h=u*i*e,f=h*n+n,p=Math.pow(i,2)*Math.pow(u,2)*e,g=Math.exp(-h),m=xf(Math.pow(u,2),i);return(-s(u)+Td>0?-1:1)*((f-p)*g)/m}):(s=u=>{const d=Math.exp(-u*e),h=(u-n)*e+1;return-Td+d*h},o=u=>{const d=Math.exp(-u*e),h=(n-u)*(e*e);return d*h});const a=5/e,l=y3(s,o,a);if(e=_s(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:i*2*Math.sqrt(r*u),duration:e}}}const m3=12;function y3(e,t,n){let r=n;for(let s=1;se[n]!==void 0)}function v3(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!ay(e,b3)&&ay(e,x3)){const n=g3(e);t={...t,...n,mass:1},t.isResolvedFromDuration=!0}return t}function Xk({keyframes:e,restDelta:t,restSpeed:n,...r}){const s=e[0],o=e[e.length-1],i={done:!1,value:s},{stiffness:a,damping:l,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=v3({...r,velocity:-Zn(r.velocity||0)}),p=h||0,g=l/(2*Math.sqrt(a*u)),m=o-s,y=Zn(Math.sqrt(a/u)),x=Math.abs(m)<5;n||(n=x?.01:2),t||(t=x?.005:.5);let v;if(g<1){const b=xf(y,g);v=k=>{const w=Math.exp(-g*y*k);return o-w*((p+g*y*m)/b*Math.sin(b*k)+m*Math.cos(b*k))}}else if(g===1)v=b=>o-Math.exp(-y*b)*(m+(p+y*m)*b);else{const b=y*Math.sqrt(g*g-1);v=k=>{const w=Math.exp(-g*y*k),j=Math.min(b*k,300);return o-w*((p+g*y*m)*Math.sinh(j)+b*m*Math.cosh(j))/b}}return{calculatedDuration:f&&d||null,next:b=>{const k=v(b);if(f)i.done=b>=d;else{let w=p;b!==0&&(g<1?w=Yk(v,b,k):w=0);const j=Math.abs(w)<=n,N=Math.abs(o-k)<=t;i.done=j&&N}return i.value=i.done?o:k,i}}}function ly({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:s=10,bounceStiffness:o=500,modifyTarget:i,min:a,max:l,restDelta:u=.5,restSpeed:d}){const h=e[0],f={done:!1,value:h},p=_=>a!==void 0&&_l,g=_=>a===void 0?l:l===void 0||Math.abs(a-_)-m*Math.exp(-_/r),b=_=>x+v(_),k=_=>{const P=v(_),A=b(_);f.done=Math.abs(P)<=u,f.value=f.done?x:A};let w,j;const N=_=>{p(f.value)&&(w=_,j=Xk({keyframes:[f.value,g(f.value)],velocity:Yk(b,_,f.value),damping:s,stiffness:o,restDelta:u,restSpeed:d}))};return N(0),{calculatedDuration:null,next:_=>{let P=!1;return!j&&w===void 0&&(P=!0,k(_),N(_)),w!==void 0&&_>w?j.next(_-w):(!P&&k(_),f)}}}const w3=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Se.update(t,!0),stop:()=>sr(t),now:()=>ft.isProcessing?ft.timestamp:performance.now()}},cy=2e4;function uy(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=cy?1/0:t}const k3={decay:ly,inertia:ly,tween:Ic,keyframes:Ic,spring:Xk};function Fc({autoplay:e=!0,delay:t=0,driver:n=w3,keyframes:r,type:s="keyframes",repeat:o=0,repeatDelay:i=0,repeatType:a="loop",onPlay:l,onStop:u,onComplete:d,onUpdate:h,...f}){let p=1,g=!1,m,y;const x=()=>{y=new Promise(I=>{m=I})};x();let v;const b=k3[s]||Ic;let k;b!==Ic&&typeof r[0]!="number"&&(k=qk([0,100],r,{clamp:!1}),r=[0,100]);const w=b({...f,keyframes:r});let j;a==="mirror"&&(j=b({...f,keyframes:[...r].reverse(),velocity:-(f.velocity||0)}));let N="idle",_=null,P=null,A=null;w.calculatedDuration===null&&o&&(w.calculatedDuration=uy(w));const{calculatedDuration:O}=w;let F=1/0,D=1/0;O!==null&&(F=O+i,D=F*(o+1)-i);let U=0;const W=I=>{if(P===null)return;p>0&&(P=Math.min(P,I)),p<0&&(P=Math.min(I-D/p,P)),_!==null?U=_:U=Math.round(I-P)*p;const Y=U-t*(p>=0?1:-1),T=p>=0?Y<0:Y>D;U=Math.max(Y,0),N==="finished"&&_===null&&(U=D);let $=U,q=w;if(o){const tt=Math.min(U,D)/F;let lt=Math.floor(tt),Ye=tt%1;!Ye&&tt>=1&&(Ye=1),Ye===1&<--,lt=Math.min(lt,o+1),!!(lt%2)&&(a==="reverse"?(Ye=1-Ye,i&&(Ye-=i/F)):a==="mirror"&&(q=j)),$=$r(0,1,Ye)*F}const ne=T?{done:!1,value:r[0]}:q.next($);k&&(ne.value=k(ne.value));let{done:ce}=ne;!T&&O!==null&&(ce=p>=0?U>=D:U<=0);const fe=_===null&&(N==="finished"||N==="running"&&ce);return h&&h(ne.value),fe&&C(),ne},M=()=>{v&&v.stop(),v=void 0},H=()=>{N="idle",M(),m(),x(),P=A=null},C=()=>{N="finished",d&&d(),M(),m()},L=()=>{if(g)return;v||(v=n(W));const I=v.now();l&&l(),_!==null?P=I-_:(!P||N==="finished")&&(P=I),N==="finished"&&x(),A=P,_=null,N="running",v.start()};e&&L();const E={then(I,Y){return y.then(I,Y)},get time(){return Zn(U)},set time(I){I=_s(I),U=I,_!==null||!v||p===0?_=I:P=v.now()-I/p},get duration(){const I=w.calculatedDuration===null?uy(w):w.calculatedDuration;return Zn(I)},get speed(){return p},set speed(I){I===p||!v||(p=I,E.time=Zn(U))},get state(){return N},play:L,pause:()=>{N="paused",_=U},stop:()=>{g=!0,N!=="idle"&&(N="idle",u&&u(),H())},cancel:()=>{A!==null&&W(A),H()},complete:()=>{N="finished"},sample:I=>(P=0,W(I))};return E}function S3(e){let t;return()=>(t===void 0&&(t=e()),t)}const _3=S3(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),j3=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),pl=10,C3=2e4,N3=(e,t)=>t.type==="spring"||e==="backgroundColor"||!Nk(t.ease);function P3(e,t,{onUpdate:n,onComplete:r,...s}){if(!(_3()&&j3.has(t)&&!s.repeatDelay&&s.repeatType!=="mirror"&&s.damping!==0&&s.type!=="inertia"))return!1;let i=!1,a,l,u=!1;const d=()=>{l=new Promise(b=>{a=b})};d();let{keyframes:h,duration:f=300,ease:p,times:g}=s;if(N3(t,s)){const b=Fc({...s,repeat:0,delay:0});let k={done:!1,value:h[0]};const w=[];let j=0;for(;!k.done&&j{u=!1,m.cancel()},x=()=>{u=!0,Se.update(y),a(),d()};return m.onfinish=()=>{u||(e.set(F4(h,s)),r&&r(),x())},{then(b,k){return l.then(b,k)},attachTimeline(b){return m.timeline=b,m.onfinish=null,Ie},get time(){return Zn(m.currentTime||0)},set time(b){m.currentTime=_s(b)},get speed(){return m.playbackRate},set speed(b){m.playbackRate=b},get duration(){return Zn(f)},play:()=>{i||(m.play(),sr(y))},pause:()=>m.pause(),stop:()=>{if(i=!0,m.playState==="idle")return;const{currentTime:b}=m;if(b){const k=Fc({...s,autoplay:!1});e.setWithVelocity(k.sample(b-pl).value,k.sample(b).value,pl)}x()},complete:()=>{u||m.finish()},cancel:x}}function R3({keyframes:e,delay:t,onUpdate:n,onComplete:r}){const s=()=>(n&&n(e[e.length-1]),r&&r(),{time:0,speed:1,duration:0,play:Ie,pause:Ie,stop:Ie,then:o=>(o(),Promise.resolve()),cancel:Ie,complete:Ie});return t?Fc({keyframes:[0,1],duration:0,delay:t,onComplete:s}):s()}const E3={type:"spring",stiffness:500,damping:25,restSpeed:10},T3=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),A3={type:"keyframes",duration:.8},M3={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},L3=(e,{keyframes:t})=>t.length>2?A3:Fs.has(e)?e.startsWith("scale")?T3(t[1]):E3:M3,bf=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Hr.test(t)||t==="0")&&!t.startsWith("url(")),O3=new Set(["brightness","contrast","saturate","opacity"]);function D3(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Pu)||[];if(!r)return e;const s=n.replace(r,"");let o=O3.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+s+")"}const I3=/([a-z-]*)\(.*?\)/g,vf={...Hr,getAnimatableNone:e=>{const t=e.match(I3);return t?t.map(D3).join(" "):e}},F3={...uk,color:wt,backgroundColor:wt,outlineColor:wt,fill:wt,stroke:wt,borderColor:wt,borderTopColor:wt,borderRightColor:wt,borderBottomColor:wt,borderLeftColor:wt,filter:vf,WebkitFilter:vf},kg=e=>F3[e];function Qk(e,t){let n=kg(e);return n!==vf&&(n=Hr),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const Jk=e=>/^0[^.\s]+$/.test(e);function z3(e){if(typeof e=="number")return e===0;if(e!==null)return e==="none"||e==="0"||Jk(e)}function V3(e,t,n,r){const s=bf(t,n);let o;Array.isArray(n)?o=[...n]:o=[null,n];const i=r.from!==void 0?r.from:e.get();let a;const l=[];for(let u=0;us=>{const o=Sg(r,e)||{},i=o.delay||r.delay||0;let{elapsed:a=0}=r;a=a-_s(i);const l=V3(t,e,n,o),u=l[0],d=l[l.length-1],h=bf(e,u),f=bf(e,d);let p={keyframes:l,velocity:t.getVelocity(),ease:"easeOut",...o,delay:-a,onUpdate:g=>{t.set(g),o.onUpdate&&o.onUpdate(g)},onComplete:()=>{s(),o.onComplete&&o.onComplete()}};if(B3(o)||(p={...p,...L3(e,p)}),p.duration&&(p.duration=_s(p.duration)),p.repeatDelay&&(p.repeatDelay=_s(p.repeatDelay)),!h||!f||D4.current||o.type===!1||$3.skipAnimations)return R3(p);if(!r.isHandoff&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const g=P3(t,e,p);if(g)return g}return Fc(p)};function zc(e){return!!(Ft(e)&&e.add)}const Zk=e=>/^\-?\d*\.?\d+$/.test(e);function jg(e,t){e.indexOf(t)===-1&&e.push(t)}function Cg(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Ng{constructor(){this.subscriptions=[]}add(t){return jg(this.subscriptions,t),()=>Cg(this.subscriptions,t)}notify(t,n,r){const s=this.subscriptions.length;if(s)if(s===1)this.subscriptions[0](t,n,r);else for(let o=0;o!isNaN(parseFloat(e));class U3{constructor(t,n={}){this.version="10.18.0",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(r,s=!0)=>{this.prev=this.current,this.current=r;const{delta:o,timestamp:i}=ft;this.lastUpdated!==i&&(this.timeDelta=o,this.lastUpdated=i,Se.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),s&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>Se.postRender(this.velocityCheck),this.velocityCheck=({timestamp:r})=>{r!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=H3(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Ng);const r=this.events[t].add(n);return t==="change"?()=>{r(),Se.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=t,this.timeDelta=r}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?Kk(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ao(e,t){return new U3(e,t)}const e2=e=>t=>t.test(e),W3={test:e=>e==="auto",parse:e=>e},t2=[zs,re,Dn,fr,JR,QR,W3],li=e=>t2.find(e2(e)),G3=[...t2,wt,Hr],q3=e=>G3.find(e2(e));function K3(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Ao(n))}function Y3(e,t){const n=Eu(e,t);let{transitionEnd:r={},transition:s={},...o}=n?e.makeTargetAnimatable(n,!1):{};o={...o,...r};for(const i in o){const a=h4(o[i]);K3(e,i,a)}}function X3(e,t,n){var r,s;const o=Object.keys(t).filter(a=>!e.hasValue(a)),i=o.length;if(i)for(let a=0;al.remove(h))),u.push(y)}return i&&Promise.all(u).then(()=>{i&&Y3(e,i)}),u}function wf(e,t,n={}){const r=Eu(e,t,n.custom);let{transition:s=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(s=n.transitionOverride);const o=r?()=>Promise.all(n2(e,r,n)):()=>Promise.resolve(),i=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=s;return tE(e,t,u+l,d,h,n)}:()=>Promise.resolve(),{when:a}=s;if(a){const[l,u]=a==="beforeChildren"?[o,i]:[i,o];return l().then(()=>u())}else return Promise.all([o(),i(n.delay)])}function tE(e,t,n=0,r=0,s=1,o){const i=[],a=(e.variantChildren.size-1)*r,l=s===1?(u=0)=>u*r:(u=0)=>a-u*r;return Array.from(e.variantChildren).sort(nE).forEach((u,d)=>{u.notify("AnimationStart",t),i.push(wf(u,t,{...o,delay:n+l(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(i)}function nE(e,t){return e.sortNodePosition(t)}function rE(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const s=t.map(o=>wf(e,o,n));r=Promise.all(s)}else if(typeof t=="string")r=wf(e,t,n);else{const s=typeof t=="function"?Eu(e,t,n.custom):t;r=Promise.all(n2(e,s,n))}return r.then(()=>e.notify("AnimationComplete",t))}const sE=[...lg].reverse(),oE=lg.length;function iE(e){return t=>Promise.all(t.map(({animation:n,options:r})=>rE(e,n,r)))}function aE(e){let t=iE(e);const n=cE();let r=!0;const s=(l,u)=>{const d=Eu(e,u);if(d){const{transition:h,transitionEnd:f,...p}=d;l={...l,...p,...f}}return l};function o(l){t=l(e)}function i(l,u){const d=e.getProps(),h=e.getVariantContext(!0)||{},f=[],p=new Set;let g={},m=1/0;for(let x=0;xm&&w,A=!1;const O=Array.isArray(k)?k:[k];let F=O.reduce(s,{});j===!1&&(F={});const{prevResolvedValues:D={}}=b,U={...D,...F},W=M=>{P=!0,p.has(M)&&(A=!0,p.delete(M)),b.needsAnimating[M]=!0};for(const M in U){const H=F[M],C=D[M];if(g.hasOwnProperty(M))continue;let L=!1;Oc(H)&&Oc(C)?L=!jk(H,C):L=H!==C,L?H!==void 0?W(M):p.add(M):H!==void 0&&p.has(M)?W(M):b.protectedKeys[M]=!0}b.prevProp=k,b.prevResolvedValues=F,b.isActive&&(g={...g,...F}),r&&e.blockInitialAnimation&&(P=!1),P&&(!N||A)&&f.push(...O.map(M=>({animation:M,options:{type:v,...l}})))}if(p.size){const x={};p.forEach(v=>{const b=e.getBaseTarget(v);b!==void 0&&(x[v]=b)}),f.push({animation:x})}let y=!!f.length;return r&&(d.initial===!1||d.initial===d.animate)&&!e.manuallyAnimateOnMount&&(y=!1),r=!1,y?t(f):Promise.resolve()}function a(l,u,d){var h;if(n[l].isActive===u)return Promise.resolve();(h=e.variantChildren)===null||h===void 0||h.forEach(p=>{var g;return(g=p.animationState)===null||g===void 0?void 0:g.setActive(l,u)}),n[l].isActive=u;const f=i(d,l);for(const p in n)n[p].protectedKeys={};return f}return{animateChanges:i,setActive:a,setAnimateFunction:o,getState:()=>n}}function lE(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!jk(t,e):!1}function ns(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function cE(){return{animate:ns(!0),whileInView:ns(),whileHover:ns(),whileTap:ns(),whileDrag:ns(),whileFocus:ns(),exit:ns()}}class uE extends Jr{constructor(t){super(t),t.animationState||(t.animationState=aE(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),Cu(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let dE=0;class hE extends Jr{constructor(){super(...arguments),this.id=dE++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:r}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const o=this.node.animationState.setActive("exit",!t,{custom:r??this.node.getProps().custom});n&&!t&&o.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const fE={animation:{Feature:uE},exit:{Feature:hE}},dy=(e,t)=>Math.abs(e-t);function pE(e,t){const n=dy(e.x,t.x),r=dy(e.y,t.y);return Math.sqrt(n**2+r**2)}class r2{constructor(t,n,{transformPagePoint:r,contextWindow:s,dragSnapToOrigin:o=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const h=Md(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,p=pE(h.offset,{x:0,y:0})>=3;if(!f&&!p)return;const{point:g}=h,{timestamp:m}=ft;this.history.push({...g,timestamp:m});const{onStart:y,onMove:x}=this.handlers;f||(y&&y(this.lastMoveEvent,h),this.startEvent=this.lastMoveEvent),x&&x(this.lastMoveEvent,h)},this.handlePointerMove=(h,f)=>{this.lastMoveEvent=h,this.lastMoveEventInfo=Ad(f,this.transformPagePoint),Se.update(this.updatePoint,!0)},this.handlePointerUp=(h,f)=>{this.end();const{onEnd:p,onSessionEnd:g,resumeAnimation:m}=this.handlers;if(this.dragSnapToOrigin&&m&&m(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const y=Md(h.type==="pointercancel"?this.lastMoveEventInfo:Ad(f,this.transformPagePoint),this.history);this.startEvent&&p&&p(h,y),g&&g(h,y)},!vk(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=r,this.contextWindow=s||window;const i=Ru(t),a=Ad(i,this.transformPagePoint),{point:l}=a,{timestamp:u}=ft;this.history=[{...l,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,Md(a,this.history)),this.removeListeners=Fr(Jn(this.contextWindow,"pointermove",this.handlePointerMove),Jn(this.contextWindow,"pointerup",this.handlePointerUp),Jn(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),sr(this.updatePoint)}}function Ad(e,t){return t?{point:t(e.point)}:e}function hy(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Md({point:e},t){return{point:e,delta:hy(e,s2(t)),offset:hy(e,gE(t)),velocity:mE(t,.1)}}function gE(e){return e[0]}function s2(e){return e[e.length-1]}function mE(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const s=s2(e);for(;n>=0&&(r=e[n],!(s.timestamp-r.timestamp>_s(t)));)n--;if(!r)return{x:0,y:0};const o=Zn(s.timestamp-r.timestamp);if(o===0)return{x:0,y:0};const i={x:(s.x-r.x)/o,y:(s.y-r.y)/o};return i.x===1/0&&(i.x=0),i.y===1/0&&(i.y=0),i}function Kt(e){return e.max-e.min}function kf(e,t=0,n=.01){return Math.abs(e-t)<=n}function fy(e,t,n,r=.5){e.origin=r,e.originPoint=Te(t.min,t.max,e.origin),e.scale=Kt(n)/Kt(t),(kf(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=Te(n.min,n.max,e.origin)-e.originPoint,(kf(e.translate)||isNaN(e.translate))&&(e.translate=0)}function zi(e,t,n,r){fy(e.x,t.x,n.x,r?r.originX:void 0),fy(e.y,t.y,n.y,r?r.originY:void 0)}function py(e,t,n){e.min=n.min+t.min,e.max=e.min+Kt(t)}function yE(e,t,n){py(e.x,t.x,n.x),py(e.y,t.y,n.y)}function gy(e,t,n){e.min=t.min-n.min,e.max=e.min+Kt(t)}function Vi(e,t,n){gy(e.x,t.x,n.x),gy(e.y,t.y,n.y)}function xE(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?Te(n,e,r.max):Math.min(e,n)),e}function my(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function bE(e,{top:t,left:n,bottom:r,right:s}){return{x:my(e.x,n,s),y:my(e.y,t,r)}}function yy(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=ga(t.min,t.max-r,e.min):r>s&&(n=ga(e.min,e.max-s,t.min)),$r(0,1,n)}function kE(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Sf=.35;function SE(e=Sf){return e===!1?e=0:e===!0&&(e=Sf),{x:xy(e,"left","right"),y:xy(e,"top","bottom")}}function xy(e,t,n){return{min:by(e,t),max:by(e,n)}}function by(e,t){return typeof e=="number"?e:e[t]||0}const vy=()=>({translate:0,scale:1,origin:0,originPoint:0}),uo=()=>({x:vy(),y:vy()}),wy=()=>({min:0,max:0}),Ve=()=>({x:wy(),y:wy()});function rn(e){return[e("x"),e("y")]}function o2({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function _E({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function jE(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Ld(e){return e===void 0||e===1}function _f({scale:e,scaleX:t,scaleY:n}){return!Ld(e)||!Ld(t)||!Ld(n)}function cs(e){return _f(e)||i2(e)||e.z||e.rotate||e.rotateX||e.rotateY}function i2(e){return ky(e.x)||ky(e.y)}function ky(e){return e&&e!=="0%"}function Vc(e,t,n){const r=e-n,s=t*r;return n+s}function Sy(e,t,n,r,s){return s!==void 0&&(e=Vc(e,s,r)),Vc(e,n,r)+t}function jf(e,t=0,n=1,r,s){e.min=Sy(e.min,t,n,r,s),e.max=Sy(e.max,t,n,r,s)}function a2(e,{x:t,y:n}){jf(e.x,t.translate,t.scale,t.originPoint),jf(e.y,n.translate,n.scale,n.originPoint)}function CE(e,t,n,r=!1){const s=n.length;if(!s)return;t.x=t.y=1;let o,i;for(let a=0;a1.0000000000001||e<.999999999999?e:1}function yr(e,t){e.min=e.min+t,e.max=e.max+t}function jy(e,t,[n,r,s]){const o=t[s]!==void 0?t[s]:.5,i=Te(e.min,e.max,o);jf(e,t[n],t[r],i,t.scale)}const NE=["x","scaleX","originX"],PE=["y","scaleY","originY"];function ho(e,t){jy(e.x,t,NE),jy(e.y,t,PE)}function l2(e,t){return o2(jE(e.getBoundingClientRect(),t))}function RE(e,t,n){const r=l2(e,n),{scroll:s}=t;return s&&(yr(r.x,s.offset.x),yr(r.y,s.offset.y)),r}const c2=({current:e})=>e?e.ownerDocument.defaultView:null,EE=new WeakMap;class TE{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ve(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const s=d=>{const{dragSnapToOrigin:h}=this.getProps();h?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Ru(d,"page").point)},o=(d,h)=>{const{drag:f,dragPropagation:p,onDragStart:g}=this.getProps();if(f&&!p&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=kk(f),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),rn(y=>{let x=this.getAxisMotionValue(y).get()||0;if(Dn.test(x)){const{projection:v}=this.visualElement;if(v&&v.layout){const b=v.layout.layoutBox[y];b&&(x=Kt(b)*(parseFloat(x)/100))}}this.originPoint[y]=x}),g&&Se.update(()=>g(d,h),!1,!0);const{animationState:m}=this.visualElement;m&&m.setActive("whileDrag",!0)},i=(d,h)=>{const{dragPropagation:f,dragDirectionLock:p,onDirectionLock:g,onDrag:m}=this.getProps();if(!f&&!this.openGlobalLock)return;const{offset:y}=h;if(p&&this.currentDirection===null){this.currentDirection=AE(y),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",h.point,y),this.updateAxis("y",h.point,y),this.visualElement.render(),m&&m(d,h)},a=(d,h)=>this.stop(d,h),l=()=>rn(d=>{var h;return this.getAnimationState(d)==="paused"&&((h=this.getAxisMotionValue(d).animation)===null||h===void 0?void 0:h.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new r2(t,{onSessionStart:s,onStart:o,onMove:i,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:c2(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:s}=n;this.startAnimation(s);const{onDragEnd:o}=this.getProps();o&&Se.update(()=>o(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:s}=this.getProps();if(!r||!gl(t,s,this.currentDirection))return;const o=this.getAxisMotionValue(t);let i=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(i=xE(i,this.constraints[t],this.elastic[t])),o.set(i)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,o=this.constraints;n&&lo(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&s?this.constraints=bE(s.layoutBox,n):this.constraints=!1,this.elastic=SE(r),o!==this.constraints&&s&&this.constraints&&!this.hasMutatedConstraints&&rn(i=>{this.getAxisMotionValue(i)&&(this.constraints[i]=kE(s.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!lo(t))return!1;const r=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const o=RE(r,s.root,this.visualElement.getTransformPagePoint());let i=vE(s.layout.layoutBox,o);if(n){const a=n(_E(i));this.hasMutatedConstraints=!!a,a&&(i=o2(a))}return i}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:s,dragTransition:o,dragSnapToOrigin:i,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=rn(d=>{if(!gl(d,n,this.currentDirection))return;let h=l&&l[d]||{};i&&(h={min:0,max:0});const f=s?200:1e6,p=s?40:1e7,g={type:"inertia",velocity:r?t[d]:0,bounceStiffness:f,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...o,...h};return this.startAxisValueAnimation(d,g)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return r.start(_g(t,r,0,n))}stopAnimation(){rn(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){rn(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),r=this.visualElement.getProps(),s=r[n];return s||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){rn(n=>{const{drag:r}=this.getProps();if(!gl(n,r,this.currentDirection))return;const{projection:s}=this.visualElement,o=this.getAxisMotionValue(n);if(s&&s.layout){const{min:i,max:a}=s.layout.layoutBox[n];o.set(t[n]-Te(i,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!lo(n)||!r||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};rn(i=>{const a=this.getAxisMotionValue(i);if(a){const l=a.get();s[i]=wE({min:l,max:l},this.constraints[i])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),rn(i=>{if(!gl(i,t,null))return;const a=this.getAxisMotionValue(i),{min:l,max:u}=this.constraints[i];a.set(Te(l,u,s[i]))})}addListeners(){if(!this.visualElement.current)return;EE.set(this.visualElement,this);const t=this.visualElement.current,n=Jn(t,"pointerdown",l=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();lo(l)&&(this.constraints=this.resolveRefConstraints())},{projection:s}=this.visualElement,o=s.addEventListener("measure",r);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),r();const i=Kn(window,"resize",()=>this.scalePositionWithinConstraints()),a=s.addEventListener("didUpdate",(({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(rn(d=>{const h=this.getAxisMotionValue(d);h&&(this.originPoint[d]+=l[d].translate,h.set(h.get()+l[d].translate))}),this.visualElement.render())}));return()=>{i(),n(),o(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:s=!1,dragConstraints:o=!1,dragElastic:i=Sf,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:s,dragConstraints:o,dragElastic:i,dragMomentum:a}}}function gl(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function AE(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class ME extends Jr{constructor(t){super(t),this.removeGroupControls=Ie,this.removeListeners=Ie,this.controls=new TE(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ie}unmount(){this.removeGroupControls(),this.removeListeners()}}const Cy=e=>(t,n)=>{e&&Se.update(()=>e(t,n))};class LE extends Jr{constructor(){super(...arguments),this.removePointerDownListener=Ie}onPointerDown(t){this.session=new r2(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:c2(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:s}=this.node.getProps();return{onSessionStart:Cy(t),onStart:Cy(n),onMove:r,onEnd:(o,i)=>{delete this.session,s&&Se.update(()=>s(o,i))}}}mount(){this.removePointerDownListener=Jn(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function OE(){const e=S.useContext(_u);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,s=S.useId();return S.useEffect(()=>r(s),[]),!t&&n?[!1,()=>n&&n(s)]:[!0]}const Zl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Ny(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ci={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(re.test(e))e=parseFloat(e);else return e;const n=Ny(e,t.target.x),r=Ny(e,t.target.y);return`${n}% ${r}%`}},DE={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,s=Hr.parse(e);if(s.length>5)return r;const o=Hr.createTransformer(e),i=typeof s[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;s[0+i]/=a,s[1+i]/=l;const u=Te(a,l,.5);return typeof s[2+i]=="number"&&(s[2+i]/=u),typeof s[3+i]=="number"&&(s[3+i]/=u),o(s)}};class IE extends z.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:s}=this.props,{projection:o}=t;UR(FE),o&&(n.group&&n.group.add(o),r&&r.register&&s&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),Zl.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:s,isPresent:o}=this.props,i=r.projection;return i&&(i.isPresent=o,s||t.layoutDependency!==n||n===void 0?i.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?i.promote():i.relegate()||Se.postRender(()=>{const a=i.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),queueMicrotask(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:s}=t;s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),r&&r.deregister&&r.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function u2(e){const[t,n]=OE(),r=S.useContext(ug);return z.createElement(IE,{...e,layoutGroup:r,switchLayoutGroup:S.useContext(ok),isPresent:t,safeToRemove:n})}const FE={borderRadius:{...ci,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ci,borderTopRightRadius:ci,borderBottomLeftRadius:ci,borderBottomRightRadius:ci,boxShadow:DE},d2=["TopLeft","TopRight","BottomLeft","BottomRight"],zE=d2.length,Py=e=>typeof e=="string"?parseFloat(e):e,Ry=e=>typeof e=="number"||re.test(e);function VE(e,t,n,r,s,o){s?(e.opacity=Te(0,n.opacity!==void 0?n.opacity:1,BE(r)),e.opacityExit=Te(t.opacity!==void 0?t.opacity:1,0,$E(r))):o&&(e.opacity=Te(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let i=0;irt?1:n(ga(e,t,r))}function Ty(e,t){e.min=t.min,e.max=t.max}function tn(e,t){Ty(e.x,t.x),Ty(e.y,t.y)}function Ay(e,t,n,r,s){return e-=t,e=Vc(e,1/n,r),s!==void 0&&(e=Vc(e,1/s,r)),e}function HE(e,t=0,n=1,r=.5,s,o=e,i=e){if(Dn.test(t)&&(t=parseFloat(t),t=Te(i.min,i.max,t/100)-i.min),typeof t!="number")return;let a=Te(o.min,o.max,r);e===o&&(a-=t),e.min=Ay(e.min,t,n,a,s),e.max=Ay(e.max,t,n,a,s)}function My(e,t,[n,r,s],o,i){HE(e,t[n],t[r],t[s],t.scale,o,i)}const UE=["x","scaleX","originX"],WE=["y","scaleY","originY"];function Ly(e,t,n,r){My(e.x,t,UE,n?n.x:void 0,r?r.x:void 0),My(e.y,t,WE,n?n.y:void 0,r?r.y:void 0)}function Oy(e){return e.translate===0&&e.scale===1}function f2(e){return Oy(e.x)&&Oy(e.y)}function GE(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function p2(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function Dy(e){return Kt(e.x)/Kt(e.y)}class qE{constructor(){this.members=[]}add(t){jg(this.members,t),t.scheduleRender()}remove(t){if(Cg(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(s=>t===s);if(n===0)return!1;let r;for(let s=n;s>=0;s--){const o=this.members[s];if(o.isPresent!==!1){r=o;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:s}=t.options;s===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function Iy(e,t,n){let r="";const s=e.x.translate/t.x,o=e.y.translate/t.y;if((s||o)&&(r=`translate3d(${s}px, ${o}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:u,rotateY:d}=n;l&&(r+=`rotate(${l}deg) `),u&&(r+=`rotateX(${u}deg) `),d&&(r+=`rotateY(${d}deg) `)}const i=e.x.scale*t.x,a=e.y.scale*t.y;return(i!==1||a!==1)&&(r+=`scale(${i}, ${a})`),r||"none"}const KE=(e,t)=>e.depth-t.depth;class YE{constructor(){this.children=[],this.isDirty=!1}add(t){jg(this.children,t),this.isDirty=!0}remove(t){Cg(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(KE),this.isDirty=!1,this.children.forEach(t)}}function XE(e,t){const n=performance.now(),r=({timestamp:s})=>{const o=s-n;o>=t&&(sr(r),e(o-t))};return Se.read(r,!0),()=>sr(r)}function QE(e){window.MotionDebug&&window.MotionDebug.record(e)}function JE(e){return e instanceof SVGElement&&e.tagName!=="svg"}function ZE(e,t,n){const r=Ft(e)?e:Ao(e);return r.start(_g("",r,t,n)),r.animation}const Fy=["","X","Y","Z"],eT={visibility:"hidden"},zy=1e3;let tT=0;const us={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function g2({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:s}){return class{constructor(i={},a=t==null?void 0:t()){this.id=tT++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,us.totalNodes=us.resolvedTargetDeltas=us.recalculatedProjection=0,this.nodes.forEach(sT),this.nodes.forEach(cT),this.nodes.forEach(uT),this.nodes.forEach(oT),QE(us)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=i,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(i,()=>{this.root.updateBlockedByResize=!0,h&&h(),h=XE(f,250),Zl.hasAnimatedSinceResize&&(Zl.hasAnimatedSinceResize=!1,this.nodes.forEach(By))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&d&&(l||u)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:f,hasRelativeTargetChanged:p,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const m=this.options.transition||d.getDefaultTransition()||gT,{onLayoutAnimationStart:y,onLayoutAnimationComplete:x}=d.getProps(),v=!this.targetLayout||!p2(this.targetLayout,g)||p,b=!f&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||b||f&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(h,b);const k={...Sg(m,"layout"),onPlay:y,onComplete:x};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k)}else f||By(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const i=this.getStack();i&&i.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,sr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(dT),this.animationId++)}getTransformTemplate(){const{visualElement:i}=this.options;return i&&i.getProps().transformTemplate}willUpdate(i=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;dthis.update()))}clearAllSnapshots(){this.nodes.forEach(iT),this.sharedNodes.forEach(hT)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Se.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Se.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const w=k/1e3;$y(h.x,i.x,w),$y(h.y,i.y,w),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Vi(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),fT(this.relativeTarget,this.relativeTargetOrigin,f,w),b&&GE(this.relativeTarget,b)&&(this.isProjectionDirty=!1),b||(b=Ve()),tn(b,this.relativeTarget)),m&&(this.animationValues=d,VE(d,u,this.latestValues,w,v,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=w},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(i){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(sr(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Se.update(()=>{Zl.hasAnimatedSinceResize=!0,this.currentAnimation=ZE(0,zy,{...i,onUpdate:a=>{this.mixTargetDelta(a),i.onUpdate&&i.onUpdate(a)},onComplete:()=>{i.onComplete&&i.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const i=this.getStack();i&&i.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(zy),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const i=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:d}=i;if(!(!a||!l||!u)){if(this!==i&&this.layout&&u&&m2(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Ve();const h=Kt(this.layout.layoutBox.x);l.x.min=i.target.x.min,l.x.max=l.x.min+h;const f=Kt(this.layout.layoutBox.y);l.y.min=i.target.y.min,l.y.max=l.y.min+f}tn(a,l),ho(a,d),zi(this.projectionDeltaWithTransform,this.layoutCorrected,a,d)}}registerSharedNode(i,a){this.sharedNodes.has(i)||this.sharedNodes.set(i,new qE),this.sharedNodes.get(i).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const i=this.getStack();return i?i.lead===this:!0}getLead(){var i;const{layoutId:a}=this.options;return a?((i=this.getStack())===null||i===void 0?void 0:i.lead)||this:this}getPrevLead(){var i;const{layoutId:a}=this.options;return a?(i=this.getStack())===null||i===void 0?void 0:i.prevLead:void 0}getStack(){const{layoutId:i}=this.options;if(i)return this.root.sharedNodes.get(i)}promote({needsReset:i,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),i&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const i=this.getStack();return i?i.relegate(this):!1}resetRotation(){const{visualElement:i}=this.options;if(!i)return;let a=!1;const{latestValues:l}=i;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(a=!0),!a)return;const u={};for(let d=0;d{var a;return(a=i.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Vy),this.root.sharedNodes.clear()}}}function nT(e){e.updateLayout()}function rT(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=e.layout,{animationType:o}=e.options,i=n.source!==e.layout.source;o==="size"?rn(h=>{const f=i?n.measuredBox[h]:n.layoutBox[h],p=Kt(f);f.min=r[h].min,f.max=f.min+p}):m2(o,n.layoutBox,r)&&rn(h=>{const f=i?n.measuredBox[h]:n.layoutBox[h],p=Kt(r[h]);f.max=f.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[h].max=e.relativeTarget[h].min+p)});const a=uo();zi(a,r,n.layoutBox);const l=uo();i?zi(l,e.applyTransform(s,!0),n.measuredBox):zi(l,r,n.layoutBox);const u=!f2(a);let d=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:f,layout:p}=h;if(f&&p){const g=Ve();Vi(g,n.layoutBox,f.layoutBox);const m=Ve();Vi(m,r,p.layoutBox),p2(g,m)||(d=!0),h.options.layoutRoot&&(e.relativeTarget=m,e.relativeTargetOrigin=g,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function sT(e){us.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function oT(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function iT(e){e.clearSnapshot()}function Vy(e){e.clearMeasurements()}function aT(e){e.isLayoutDirty=!1}function lT(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function By(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function cT(e){e.resolveTargetDelta()}function uT(e){e.calcProjection()}function dT(e){e.resetRotation()}function hT(e){e.removeLeadSnapshot()}function $y(e,t,n){e.translate=Te(t.translate,0,n),e.scale=Te(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Hy(e,t,n,r){e.min=Te(t.min,n.min,r),e.max=Te(t.max,n.max,r)}function fT(e,t,n,r){Hy(e.x,t.x,n.x,r),Hy(e.y,t.y,n.y,r)}function pT(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const gT={duration:.45,ease:[.4,0,.1,1]},Uy=e=>typeof navigator<"u"&&navigator.userAgent.toLowerCase().includes(e),Wy=Uy("applewebkit/")&&!Uy("chrome/")?Math.round:Ie;function Gy(e){e.min=Wy(e.min),e.max=Wy(e.max)}function mT(e){Gy(e.x),Gy(e.y)}function m2(e,t,n){return e==="position"||e==="preserve-aspect"&&!kf(Dy(t),Dy(n),.2)}const yT=g2({attachResizeListener:(e,t)=>Kn(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Od={current:void 0},y2=g2({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Od.current){const e=new yT({});e.mount(window),e.setOptions({layoutScroll:!0}),Od.current=e}return Od.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),xT={pan:{Feature:LE},drag:{Feature:ME,ProjectionNode:y2,MeasureLayout:u2}},bT=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function vT(e){const t=bT.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function Cf(e,t,n=1){const[r,s]=vT(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);if(o){const i=o.trim();return Zk(i)?parseFloat(i):i}else return gf(s)?Cf(s,t,n+1):s}function wT(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(s=>{const o=s.get();if(!gf(o))return;const i=Cf(o,r);i&&s.set(i)});for(const s in t){const o=t[s];if(!gf(o))continue;const i=Cf(o,r);i&&(t[s]=i,n||(n={}),n[s]===void 0&&(n[s]=o))}return{target:t,transitionEnd:n}}const kT=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),x2=e=>kT.has(e),ST=e=>Object.keys(e).some(x2),qy=e=>e===zs||e===re,Ky=(e,t)=>parseFloat(e.split(", ")[t]),Yy=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const s=r.match(/^matrix3d\((.+)\)$/);if(s)return Ky(s[1],t);{const o=r.match(/^matrix\((.+)\)$/);return o?Ky(o[1],e):0}},_T=new Set(["x","y","z"]),jT=Ia.filter(e=>!_T.has(e));function CT(e){const t=[];return jT.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const Mo={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Yy(4,13),y:Yy(5,14)};Mo.translateX=Mo.x;Mo.translateY=Mo.y;const NT=(e,t,n)=>{const r=t.measureViewportBox(),s=t.current,o=getComputedStyle(s),{display:i}=o,a={};i==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{a[u]=Mo[u](r,o)}),t.render();const l=t.measureViewportBox();return n.forEach(u=>{const d=t.getValue(u);d&&d.jump(a[u]),e[u]=Mo[u](l,o)}),e},PT=(e,t,n={},r={})=>{t={...t},r={...r};const s=Object.keys(t).filter(x2);let o=[],i=!1;const a=[];if(s.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let d=n[l],h=li(d);const f=t[l];let p;if(Oc(f)){const g=f.length,m=f[0]===null?1:0;d=f[m],h=li(d);for(let y=m;y=0?window.pageYOffset:null,u=NT(t,e,a);return o.length&&o.forEach(([d,h])=>{e.getValue(d).set(h)}),e.render(),ju&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:r}}else return{target:t,transitionEnd:r}};function RT(e,t,n,r){return ST(t)?PT(e,t,n,r):{target:t,transitionEnd:r}}const ET=(e,t,n,r)=>{const s=wT(e,t,r);return t=s.target,r=s.transitionEnd,RT(e,t,n,r)},Nf={current:null},b2={current:!1};function TT(){if(b2.current=!0,!!ju)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Nf.current=e.matches;e.addListener(t),t()}else Nf.current=!1}function AT(e,t,n){const{willChange:r}=t;for(const s in t){const o=t[s],i=n[s];if(Ft(o))e.addValue(s,o),zc(r)&&r.add(s);else if(Ft(i))e.addValue(s,Ao(o,{owner:e})),zc(r)&&r.remove(s);else if(i!==o)if(e.hasValue(s)){const a=e.getValue(s);!a.hasAnimated&&a.set(o)}else{const a=e.getStaticValue(s);e.addValue(s,Ao(a!==void 0?a:o,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const Xy=new WeakMap,v2=Object.keys(pa),MT=v2.length,Qy=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],LT=cg.length;class OT{constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:s,visualState:o},i={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>Se.render(this.render,!1,!0);const{latestValues:a,renderState:l}=o;this.latestValues=a,this.baseTarget={...a},this.initialValues=n.initial?{...a}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=s,this.options=i,this.isControllingVariants=Nu(n),this.isVariantNode=sk(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:u,...d}=this.scrapeMotionValuesFromProps(n,{});for(const h in d){const f=d[h];a[h]!==void 0&&Ft(f)&&(f.set(a[h],!1),zc(u)&&u.add(h))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,Xy.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,r)=>this.bindToMotionValue(r,n)),b2.current||TT(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Nf.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Xy.delete(this.current),this.projection&&this.projection.unmount(),sr(this.notifyUpdate),sr(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const r=Fs.has(t),s=n.on("change",i=>{this.latestValues[t]=i,this.props.onUpdate&&Se.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{s(),o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},r,s,o){let i,a;for(let l=0;lthis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:f,layoutRoot:p})}return a}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update():(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ve()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Ao(n,{owner:this}),this.addValue(t,r)),r}readValue(t){var n;return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(n=this.getBaseTargetFromProps(this.props,t))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,s=typeof r=="string"||typeof r=="object"?(n=yg(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&s!==void 0)return s;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!Ft(o)?o:this.initialValues[t]!==void 0&&s===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Ng),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class w2 extends OT{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:s},o){let i=J3(r,t||{},this);if(s&&(n&&(n=s(n)),r&&(r=s(r)),i&&(i=s(i))),o){X3(this,r,i);const a=ET(this,r,i,n);n=a.transitionEnd,r=a.target}return{transition:t,transitionEnd:n,...r}}}function DT(e){return window.getComputedStyle(e)}class IT extends w2{constructor(){super(...arguments),this.type="html"}readValueFromInstance(t,n){if(Fs.has(n)){const r=kg(n);return r&&r.default||0}else{const r=DT(t),s=(lk(n)?r.getPropertyValue(n):r[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return l2(t,n)}build(t,n,r,s){hg(t,n,r,s.transformTemplate)}scrapeMotionValuesFromProps(t,n){return mg(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Ft(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,r,s){pk(t,n,r,s)}}class FT extends w2{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Fs.has(n)){const r=kg(n);return r&&r.default||0}return n=gk.has(n)?n:ag(n),t.getAttribute(n)}measureInstanceViewportBox(){return Ve()}scrapeMotionValuesFromProps(t,n){return yk(t,n)}build(t,n,r,s){pg(t,n,r,this.isSVGTag,s.transformTemplate)}renderInstance(t,n,r,s){mk(t,n,r,s)}mount(t){this.isSVGTag=gg(t.tagName),super.mount(t)}}const zT=(e,t)=>dg(e)?new FT(t,{enableHardwareAcceleration:!1}):new IT(t,{enableHardwareAcceleration:!0}),VT={layout:{ProjectionNode:y2,MeasureLayout:u2}},BT={...fE,...M4,...xT,...VT},Lo=$R((e,t)=>v4(e,t,BT,zT));function k2(){const e=S.useRef(!1);return ig(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function $T(){const e=k2(),[t,n]=S.useState(0),r=S.useCallback(()=>{e.current&&n(t+1)},[t]);return[S.useCallback(()=>Se.postRender(r),[r]),t]}class HT extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function UT({children:e,isPresent:t}){const n=S.useId(),r=S.useRef(null),s=S.useRef({width:0,height:0,top:0,left:0});return S.useInsertionEffect(()=>{const{width:o,height:i,top:a,left:l}=s.current;if(t||!r.current||!o||!i)return;r.current.dataset.motionPopId=n;const u=document.createElement("style");return document.head.appendChild(u),u.sheet&&u.sheet.insertRule(` [data-motion-pop-id="${n}"] { position: absolute !important; width: ${o}px !important; @@ -392,24 +392,24 @@ Error generating stack: `+o.message+` top: ${a}px !important; left: ${l}px !important; } - `),()=>{document.head.removeChild(u)}},[t]),S.createElement(HT,{isPresent:t,childRef:r,sizeRef:s},S.cloneElement(e,{ref:r}))}const Od=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:o,mode:i})=>{const a=xk(WT),l=S.useId(),u=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:s,onExitComplete:d=>{a.set(d,!0);for(const h of a.values())if(!h)return;r&&r()},register:d=>(a.set(d,!1),()=>a.delete(d))}),o?void 0:[n]);return S.useMemo(()=>{a.forEach((d,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),i==="popLayout"&&(e=S.createElement(UT,{isPresent:n},e)),S.createElement(Su.Provider,{value:u},e)};function WT(){return new Map}function GT(e){return S.useEffect(()=>()=>e(),[])}const ds=e=>e.key||"";function qT(e,t){e.forEach(n=>{const r=ds(n);t.set(r,n)})}function KT(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const YT=({children:e,custom:t,initial:n=!0,onExitComplete:r,exitBeforeEnter:s,presenceAffectsLayout:o=!0,mode:i="sync"})=>{const a=S.useContext(ug).forceRender||$T()[0],l=k2(),u=KT(e);let d=u;const h=S.useRef(new Map).current,f=S.useRef(d),p=S.useRef(new Map).current,g=S.useRef(!0);if(ig(()=>{g.current=!1,qT(u,p),f.current=d}),GT(()=>{g.current=!0,p.clear(),h.clear()}),g.current)return S.createElement(S.Fragment,null,d.map(v=>S.createElement(Od,{key:ds(v),isPresent:!0,initial:n?void 0:!1,presenceAffectsLayout:o,mode:i},v)));d=[...d];const m=f.current.map(ds),y=u.map(ds),x=m.length;for(let v=0;v{if(y.indexOf(b)!==-1)return;const k=p.get(b);if(!k)return;const w=m.indexOf(b);let j=v;if(!j){const N=()=>{h.delete(b);const _=Array.from(p.keys()).filter(P=>!y.includes(P));if(_.forEach(P=>p.delete(P)),f.current=u.filter(P=>{const A=ds(P);return A===b||_.includes(A)}),!h.size){if(l.current===!1)return;a(),r&&r()}};j=S.createElement(Od,{key:ds(k),isPresent:!1,onExitComplete:N,custom:t,presenceAffectsLayout:o,mode:i},k),h.set(b,j)}d.splice(w,0,j)}),d=d.map(v=>{const b=v.key;return h.has(b)?v:S.createElement(Od,{key:ds(v),isPresent:!0,presenceAffectsLayout:o,mode:i},v)}),S.createElement(S.Fragment,null,h.size?d:d.map(v=>S.cloneElement(v)))};function Ms({title:e,description:t,children:n,timeRange:r="7d",onTimeRangeChange:s,showTimeSelector:o=!0,className:i="h-[300px]"}){return c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary p-6 rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5",children:[c.jsxs("div",{className:"flex items-start justify-between mb-6",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:e}),t&&c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:t})]}),o&&s&&c.jsxs("select",{value:r,onChange:a=>s(a.target.value),className:"px-3 py-1.5 text-sm bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",children:[c.jsx("option",{value:"5m",children:"Last 5 Minutes"}),c.jsx("option",{value:"15m",children:"Last 15 Minutes"}),c.jsx("option",{value:"30m",children:"Last 30 Minutes"}),c.jsx("option",{value:"1h",children:"Last 1 Hour"}),c.jsx("option",{value:"2h",children:"Last 2 Hours"}),c.jsx("option",{value:"6h",children:"Last 6 Hours"}),c.jsx("option",{value:"12h",children:"Last 12 Hours"}),c.jsx("option",{value:"24h",children:"Last 24 Hours"}),c.jsx("option",{value:"7d",children:"Last 7 Days"}),c.jsx("option",{value:"30d",children:"Last 30 Days"}),c.jsx("option",{value:"60d",children:"Last 60 Days"}),c.jsx("option",{value:"90d",children:"Last 90 Days"})]})]}),c.jsx("div",{className:`${i} flex flex-col`,children:n})]})}function kt({label:e,value:t,icon:n,color:r,change:s,trend:o="neutral"}){const i={up:"text-green-600 dark:text-green-400 bg-green-50 dark:bg-green-900/20",down:"text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20",neutral:"text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-900/20"};return c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary p-6 rounded-xl shadow-sm border border-gray-100 dark:border-white/5 hover:border-primary-500/20 transition-colors group",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsx("div",{className:`p-2 rounded-lg ${r} bg-opacity-10 dark:bg-opacity-20 group-hover:scale-110 transition-transform`,children:c.jsx(n,{className:`w-5 h-5 ${r.replace("bg-","text-")}`})}),s&&c.jsx("span",{className:`text-xs font-medium px-2 py-1 rounded-full ${i[o]}`,children:s})]}),c.jsx("h3",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:e}),c.jsx("p",{className:"text-2xl font-bold text-gray-900 dark:text-white mt-1",children:t})]})}function S2({label:e,options:t,selected:n,onChange:r,className:s=""}){const[o,i]=S.useState(!1),a=S.useRef(null);S.useEffect(()=>{const h=f=>{a.current&&!a.current.contains(f.target)&&i(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);const l=h=>{const f=n.includes(h)?n.filter(p=>p!==h):[...n,h];r(f)},u=()=>{r(t.map(h=>h.value))},d=()=>{r([])};return c.jsxs("div",{className:`relative ${s}`,ref:a,children:[c.jsxs("button",{onClick:()=>i(!o),className:"flex items-center justify-between w-full md:w-64 px-4 py-2 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg shadow-sm hover:bg-gray-50 dark:hover:bg-white/5 transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500",children:[c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-200 truncate",children:n.length===0?e:n.length===t.length?"All Selected":`${n.length} Selected`}),c.jsx(U1,{className:`w-4 h-4 text-gray-500 transition-transform ${o?"rotate-180":""}`})]}),o&&c.jsxs("div",{className:"absolute z-50 w-full md:w-72 mt-2 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-xl shadow-lg overflow-hidden animate-in fade-in zoom-in-95 duration-100",children:[c.jsxs("div",{className:"p-2 border-b border-gray-200 dark:border-white/10 flex items-center justify-between bg-gray-50 dark:bg-white/5",children:[c.jsx("button",{onClick:u,className:"text-xs font-medium text-primary-600 hover:text-primary-700 dark:text-primary-400",children:"Select All"}),c.jsx("button",{onClick:d,className:"text-xs font-medium text-red-600 hover:text-red-700 dark:text-red-400",children:"Clear"})]}),c.jsx("div",{className:"max-h-64 overflow-y-auto p-2 space-y-1",children:t.map(h=>c.jsxs("button",{onClick:()=>l(h.value),className:"flex items-center w-full px-3 py-2 rounded-lg hover:bg-gray-100 dark:hover:bg-white/10 transition-colors group",children:[c.jsx("div",{className:`w-5 h-5 rounded border flex items-center justify-center mr-3 transition-colors ${n.includes(h.value)?"bg-primary-600 border-primary-600":"border-gray-300 dark:border-gray-600 group-hover:border-primary-500"}`,children:n.includes(h.value)&&c.jsx(xu,{className:"w-3.5 h-3.5 text-white"})}),h.color&&c.jsx("div",{className:"w-3 h-3 rounded-full mr-3 flex-shrink-0",style:{backgroundColor:h.color}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-200 truncate",children:h.label})]},h.value))})]})]})}function XT(e="7d"){const[t,n]=S.useState(null),[r,s]=S.useState(!0),[o,i]=S.useState(null);return S.useEffect(()=>{(async()=>{var l,u;try{const d=await ae.get(`/api/dashboard/usage?time_range=${e}`);console.log("Response from /api/dashboard/usage:",d.data),n(d.data),console.log(d.data)}catch(d){const h=((u=(l=d.response)==null?void 0:l.data)==null?void 0:u.detail)||"Failed to fetch dashboard data";i(h),_n.error(h)}finally{s(!1)}})()},[e]),{data:t,loading:r,error:o}}function _2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),j2=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Vc="-",Jy=[],eA="arbitrary..",tA=e=>{const t=rA(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return nA(i);const a=i.split(Vc),l=a[0]===""&&a.length>1?1:0;return C2(a,l,t)},getConflictingClassGroupIds:(i,a)=>{if(a){const l=r[i],u=n[i];return l?u?JT(u,l):l:u||Jy}return n[i]||Jy}}},C2=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const s=e[t],o=n.nextPart.get(s);if(o){const u=C2(e,t+1,o);if(u)return u}const i=n.validators;if(i===null)return;const a=t===0?e.join(Vc):e.slice(t).join(Vc),l=i.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?eA+r:void 0})(),rA=e=>{const{theme:t,classGroups:n}=e;return sA(n,t)},sA=(e,t)=>{const n=j2();for(const r in e){const s=e[r];Pg(s,n,r,t)}return n},Pg=(e,t,n,r)=>{const s=e.length;for(let o=0;o{if(typeof e=="string"){iA(e,t,n);return}if(typeof e=="function"){aA(e,t,n,r);return}lA(e,t,n,r)},iA=(e,t,n)=>{const r=e===""?t:N2(t,e);r.classGroupId=n},aA=(e,t,n,r)=>{if(cA(e)){Pg(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(ZT(n,e))},lA=(e,t,n,r)=>{const s=Object.entries(e),o=s.length;for(let i=0;i{let n=e;const r=t.split(Vc),s=r.length;for(let o=0;o"isThemeGetter"in e&&e.isThemeGetter===!0,uA=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const s=(o,i)=>{n[o]=i,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let i=n[o];if(i!==void 0)return i;if((i=r[o])!==void 0)return s(o,i),i},set(o,i){o in n?n[o]=i:s(o,i)}}},Pf="!",Zy=":",dA=[],ex=(e,t,n,r,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:s}),hA=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=s=>{const o=[];let i=0,a=0,l=0,u;const d=s.length;for(let m=0;ml?u-l:void 0;return ex(o,p,f,g)};if(t){const s=t+Zy,o=r;r=i=>i.startsWith(s)?o(i.slice(s.length)):ex(dA,!1,i,void 0,!0)}if(n){const s=r;r=o=>n({className:o,parseClassName:s})}return r},fA=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let s=[];for(let o=0;o0&&(s.sort(),r.push(...s),s=[]),r.push(i)):s.push(i)}return s.length>0&&(s.sort(),r.push(...s)),r}},pA=e=>({cache:uA(e.cacheSize),parseClassName:hA(e),sortModifiers:fA(e),...tA(e)}),gA=/\s+/,mA=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:o}=t,i=[],a=e.trim().split(gA);let l="";for(let u=a.length-1;u>=0;u-=1){const d=a[u],{isExternal:h,modifiers:f,hasImportantModifier:p,baseClassName:g,maybePostfixModifierPosition:m}=n(d);if(h){l=d+(l.length>0?" "+l:l);continue}let y=!!m,x=r(y?g.substring(0,m):g);if(!x){if(!y){l=d+(l.length>0?" "+l:l);continue}if(x=r(g),!x){l=d+(l.length>0?" "+l:l);continue}y=!1}const v=f.length===0?"":f.length===1?f[0]:o(f).join(":"),b=p?v+Pf:v,k=b+x;if(i.indexOf(k)>-1)continue;i.push(k);const w=s(x,y);for(let j=0;j0?" "+l:l)}return l},yA=(...e)=>{let t=0,n,r,s="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,s,o;const i=l=>{const u=t.reduce((d,h)=>h(d),e());return n=pA(u),r=n.cache.get,s=n.cache.set,o=a,a(l)},a=l=>{const u=r(l);if(u)return u;const d=mA(l,n);return s(l,d),d};return o=i,(...l)=>o(yA(...l))},bA=[],He=e=>{const t=n=>n[e]||bA;return t.isThemeGetter=!0,t},R2=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,E2=/^\((?:(\w[\w-]*):)?(.+)\)$/i,vA=/^\d+\/\d+$/,wA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,kA=/\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$/,SA=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,_A=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,jA=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qs=e=>vA.test(e),le=e=>!!e&&!Number.isNaN(Number(e)),ur=e=>!!e&&Number.isInteger(Number(e)),Dd=e=>e.endsWith("%")&&le(e.slice(0,-1)),Fn=e=>wA.test(e),CA=()=>!0,NA=e=>kA.test(e)&&!SA.test(e),T2=()=>!1,PA=e=>_A.test(e),RA=e=>jA.test(e),EA=e=>!Y(e)&&!X(e),TA=e=>qo(e,L2,T2),Y=e=>R2.test(e),rs=e=>qo(e,O2,NA),Id=e=>qo(e,DA,le),tx=e=>qo(e,A2,T2),AA=e=>qo(e,M2,RA),ml=e=>qo(e,D2,PA),X=e=>E2.test(e),ui=e=>Ko(e,O2),MA=e=>Ko(e,IA),nx=e=>Ko(e,A2),LA=e=>Ko(e,L2),OA=e=>Ko(e,M2),yl=e=>Ko(e,D2,!0),qo=(e,t,n)=>{const r=R2.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Ko=(e,t,n=!1)=>{const r=E2.exec(e);return r?r[1]?t(r[1]):n:!1},A2=e=>e==="position"||e==="percentage",M2=e=>e==="image"||e==="url",L2=e=>e==="length"||e==="size"||e==="bg-size",O2=e=>e==="length",DA=e=>e==="number",IA=e=>e==="family-name",D2=e=>e==="shadow",FA=()=>{const e=He("color"),t=He("font"),n=He("text"),r=He("font-weight"),s=He("tracking"),o=He("leading"),i=He("breakpoint"),a=He("container"),l=He("spacing"),u=He("radius"),d=He("shadow"),h=He("inset-shadow"),f=He("text-shadow"),p=He("drop-shadow"),g=He("blur"),m=He("perspective"),y=He("aspect"),x=He("ease"),v=He("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...k(),X,Y],j=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto","contain","none"],_=()=>[X,Y,l],P=()=>[qs,"full","auto",..._()],A=()=>[ur,"none","subgrid",X,Y],O=()=>["auto",{span:["full",ur,X,Y]},ur,X,Y],F=()=>[ur,"auto",X,Y],D=()=>["auto","min","max","fr",X,Y],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",..._()],H=()=>[qs,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",..._()],C=()=>[e,X,Y],L=()=>[...k(),nx,tx,{position:[X,Y]}],E=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",LA,TA,{size:[X,Y]}],K=()=>[Dd,ui,rs],T=()=>["","none","full",u,X,Y],$=()=>["",le,ui,rs],G=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[le,Dd,nx,tx],fe=()=>["","none",g,X,Y],tt=()=>["none",le,X,Y],at=()=>["none",le,X,Y],Ye=()=>[le,X,Y],Jt=()=>[qs,"full",..._()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fn],breakpoint:[Fn],color:[CA],container:[Fn],"drop-shadow":[Fn],ease:["in","out","in-out"],font:[EA],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fn],shadow:[Fn],spacing:["px",le],text:[Fn],"text-shadow":[Fn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qs,Y,X,y]}],container:["container"],columns:[{columns:[le,Y,X,a]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{start:P()}],end:[{end:P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[ur,"auto",X,Y]}],basis:[{basis:[qs,"full","auto",a,..._()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[le,qs,"auto","initial","none",Y]}],grow:[{grow:["",le,X,Y]}],shrink:[{shrink:["",le,X,Y]}],order:[{order:[ur,"first","last","none",X,Y]}],"grid-cols":[{"grid-cols":A()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":A()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:_()}],"gap-x":[{"gap-x":_()}],"gap-y":[{"gap-y":_()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:_()}],px:[{px:_()}],py:[{py:_()}],ps:[{ps:_()}],pe:[{pe:_()}],pt:[{pt:_()}],pr:[{pr:_()}],pb:[{pb:_()}],pl:[{pl:_()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":_()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":_()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],w:[{w:[a,"screen",...H()]}],"min-w":[{"min-w":[a,"screen","none",...H()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[i]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",n,ui,rs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,X,Id]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Dd,Y]}],"font-family":[{font:[MA,Y,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,X,Y]}],"line-clamp":[{"line-clamp":[le,"none",X,Id]}],leading:[{leading:[o,..._()]}],"list-image":[{"list-image":["none",X,Y]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",X,Y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:C()}],"text-color":[{text:C()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[le,"from-font","auto",X,rs]}],"text-decoration-color":[{decoration:C()}],"underline-offset":[{"underline-offset":[le,"auto",X,Y]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X,Y]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X,Y]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:E()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ur,X,Y],radial:["",X,Y],conic:[ur,X,Y]},OA,AA]}],"bg-color":[{bg:C()}],"gradient-from-pos":[{from:K()}],"gradient-via-pos":[{via:K()}],"gradient-to-pos":[{to:K()}],"gradient-from":[{from:C()}],"gradient-via":[{via:C()}],"gradient-to":[{to:C()}],rounded:[{rounded:T()}],"rounded-s":[{"rounded-s":T()}],"rounded-e":[{"rounded-e":T()}],"rounded-t":[{"rounded-t":T()}],"rounded-r":[{"rounded-r":T()}],"rounded-b":[{"rounded-b":T()}],"rounded-l":[{"rounded-l":T()}],"rounded-ss":[{"rounded-ss":T()}],"rounded-se":[{"rounded-se":T()}],"rounded-ee":[{"rounded-ee":T()}],"rounded-es":[{"rounded-es":T()}],"rounded-tl":[{"rounded-tl":T()}],"rounded-tr":[{"rounded-tr":T()}],"rounded-br":[{"rounded-br":T()}],"rounded-bl":[{"rounded-bl":T()}],"border-w":[{border:$()}],"border-w-x":[{"border-x":$()}],"border-w-y":[{"border-y":$()}],"border-w-s":[{"border-s":$()}],"border-w-e":[{"border-e":$()}],"border-w-t":[{"border-t":$()}],"border-w-r":[{"border-r":$()}],"border-w-b":[{"border-b":$()}],"border-w-l":[{"border-l":$()}],"divide-x":[{"divide-x":$()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":$()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:C()}],"border-color-x":[{"border-x":C()}],"border-color-y":[{"border-y":C()}],"border-color-s":[{"border-s":C()}],"border-color-e":[{"border-e":C()}],"border-color-t":[{"border-t":C()}],"border-color-r":[{"border-r":C()}],"border-color-b":[{"border-b":C()}],"border-color-l":[{"border-l":C()}],"divide-color":[{divide:C()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[le,X,Y]}],"outline-w":[{outline:["",le,ui,rs]}],"outline-color":[{outline:C()}],shadow:[{shadow:["","none",d,yl,ml]}],"shadow-color":[{shadow:C()}],"inset-shadow":[{"inset-shadow":["none",h,yl,ml]}],"inset-shadow-color":[{"inset-shadow":C()}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:C()}],"ring-offset-w":[{"ring-offset":[le,rs]}],"ring-offset-color":[{"ring-offset":C()}],"inset-ring-w":[{"inset-ring":$()}],"inset-ring-color":[{"inset-ring":C()}],"text-shadow":[{"text-shadow":["none",f,yl,ml]}],"text-shadow-color":[{"text-shadow":C()}],opacity:[{opacity:[le,X,Y]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[le]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":C()}],"mask-image-linear-to-color":[{"mask-linear-to":C()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":C()}],"mask-image-t-to-color":[{"mask-t-to":C()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":C()}],"mask-image-r-to-color":[{"mask-r-to":C()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":C()}],"mask-image-b-to-color":[{"mask-b-to":C()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":C()}],"mask-image-l-to-color":[{"mask-l-to":C()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":C()}],"mask-image-x-to-color":[{"mask-x-to":C()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":C()}],"mask-image-y-to-color":[{"mask-y-to":C()}],"mask-image-radial":[{"mask-radial":[X,Y]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":C()}],"mask-image-radial-to-color":[{"mask-radial-to":C()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[le]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":C()}],"mask-image-conic-to-color":[{"mask-conic-to":C()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:E()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",X,Y]}],filter:[{filter:["","none",X,Y]}],blur:[{blur:fe()}],brightness:[{brightness:[le,X,Y]}],contrast:[{contrast:[le,X,Y]}],"drop-shadow":[{"drop-shadow":["","none",p,yl,ml]}],"drop-shadow-color":[{"drop-shadow":C()}],grayscale:[{grayscale:["",le,X,Y]}],"hue-rotate":[{"hue-rotate":[le,X,Y]}],invert:[{invert:["",le,X,Y]}],saturate:[{saturate:[le,X,Y]}],sepia:[{sepia:["",le,X,Y]}],"backdrop-filter":[{"backdrop-filter":["","none",X,Y]}],"backdrop-blur":[{"backdrop-blur":fe()}],"backdrop-brightness":[{"backdrop-brightness":[le,X,Y]}],"backdrop-contrast":[{"backdrop-contrast":[le,X,Y]}],"backdrop-grayscale":[{"backdrop-grayscale":["",le,X,Y]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[le,X,Y]}],"backdrop-invert":[{"backdrop-invert":["",le,X,Y]}],"backdrop-opacity":[{"backdrop-opacity":[le,X,Y]}],"backdrop-saturate":[{"backdrop-saturate":[le,X,Y]}],"backdrop-sepia":[{"backdrop-sepia":["",le,X,Y]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":_()}],"border-spacing-x":[{"border-spacing-x":_()}],"border-spacing-y":[{"border-spacing-y":_()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",X,Y]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[le,"initial",X,Y]}],ease:[{ease:["linear","initial",x,X,Y]}],delay:[{delay:[le,X,Y]}],animate:[{animate:["none",v,X,Y]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,X,Y]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:tt()}],"rotate-x":[{"rotate-x":tt()}],"rotate-y":[{"rotate-y":tt()}],"rotate-z":[{"rotate-z":tt()}],scale:[{scale:at()}],"scale-x":[{"scale-x":at()}],"scale-y":[{"scale-y":at()}],"scale-z":[{"scale-z":at()}],"scale-3d":["scale-3d"],skew:[{skew:Ye()}],"skew-x":[{"skew-x":Ye()}],"skew-y":[{"skew-y":Ye()}],transform:[{transform:[X,Y,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Jt()}],"translate-x":[{"translate-x":Jt()}],"translate-y":[{"translate-y":Jt()}],"translate-z":[{"translate-z":Jt()}],"translate-none":["translate-none"],accent:[{accent:C()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:C()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X,Y]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"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",X,Y]}],fill:[{fill:["none",...C()]}],"stroke-w":[{stroke:[le,ui,rs,Id]}],stroke:[{stroke:["none",...C()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},zA=xA(FA);function ar(...e){return zA(QT(e))}function ge({className:e,...t}){return c.jsx("div",{className:ar("animate-pulse rounded-md bg-neutral-200 dark:bg-neutral-700",e),...t})}function rx(){const[e,t]=S.useState(!1);return S.useEffect(()=>{(async()=>{try{const r=await ae.get("/auth/profile/status");t(!r.data.is_complete)}catch{t(!1)}})()},[]),e?c.jsxs("div",{className:"bg-gradient-to-r from-primary-500/10 to-primary-500/5 border border-primary-500/20 rounded-xl p-4 mb-6 flex items-center justify-between gap-4",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-9 h-9 rounded-lg bg-primary-500/15 flex items-center justify-center flex-shrink-0",children:c.jsx(To,{className:"w-[18px] h-[18px] text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:"Complete your profile"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Add your organization type and impact sectors to help us understand how Sunbird AI is being used."})]})]}),c.jsx(Ee,{to:"/complete-profile",className:"px-5 py-2 bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium rounded-lg transition-colors shadow-sm shadow-primary-500/20 whitespace-nowrap",children:"Update Profile"})]}):null}/*! + `),()=>{document.head.removeChild(u)}},[t]),S.createElement(HT,{isPresent:t,childRef:r,sizeRef:s},S.cloneElement(e,{ref:r}))}const Dd=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:s,presenceAffectsLayout:o,mode:i})=>{const a=xk(WT),l=S.useId(),u=S.useMemo(()=>({id:l,initial:t,isPresent:n,custom:s,onExitComplete:d=>{a.set(d,!0);for(const h of a.values())if(!h)return;r&&r()},register:d=>(a.set(d,!1),()=>a.delete(d))}),o?void 0:[n]);return S.useMemo(()=>{a.forEach((d,h)=>a.set(h,!1))},[n]),S.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),i==="popLayout"&&(e=S.createElement(UT,{isPresent:n},e)),S.createElement(_u.Provider,{value:u},e)};function WT(){return new Map}function GT(e){return S.useEffect(()=>()=>e(),[])}const ds=e=>e.key||"";function qT(e,t){e.forEach(n=>{const r=ds(n);t.set(r,n)})}function KT(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const YT=({children:e,custom:t,initial:n=!0,onExitComplete:r,exitBeforeEnter:s,presenceAffectsLayout:o=!0,mode:i="sync"})=>{const a=S.useContext(ug).forceRender||$T()[0],l=k2(),u=KT(e);let d=u;const h=S.useRef(new Map).current,f=S.useRef(d),p=S.useRef(new Map).current,g=S.useRef(!0);if(ig(()=>{g.current=!1,qT(u,p),f.current=d}),GT(()=>{g.current=!0,p.clear(),h.clear()}),g.current)return S.createElement(S.Fragment,null,d.map(v=>S.createElement(Dd,{key:ds(v),isPresent:!0,initial:n?void 0:!1,presenceAffectsLayout:o,mode:i},v)));d=[...d];const m=f.current.map(ds),y=u.map(ds),x=m.length;for(let v=0;v{if(y.indexOf(b)!==-1)return;const k=p.get(b);if(!k)return;const w=m.indexOf(b);let j=v;if(!j){const N=()=>{h.delete(b);const _=Array.from(p.keys()).filter(P=>!y.includes(P));if(_.forEach(P=>p.delete(P)),f.current=u.filter(P=>{const A=ds(P);return A===b||_.includes(A)}),!h.size){if(l.current===!1)return;a(),r&&r()}};j=S.createElement(Dd,{key:ds(k),isPresent:!1,onExitComplete:N,custom:t,presenceAffectsLayout:o,mode:i},k),h.set(b,j)}d.splice(w,0,j)}),d=d.map(v=>{const b=v.key;return h.has(b)?v:S.createElement(Dd,{key:ds(v),isPresent:!0,presenceAffectsLayout:o,mode:i},v)}),S.createElement(S.Fragment,null,h.size?d:d.map(v=>S.cloneElement(v)))};function Ms({title:e,description:t,children:n,timeRange:r="7d",onTimeRangeChange:s,showTimeSelector:o=!0,className:i="h-[300px]"}){return c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary p-6 rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5",children:[c.jsxs("div",{className:"flex items-start justify-between mb-6",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:e}),t&&c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:t})]}),o&&s&&c.jsxs("select",{value:r,onChange:a=>s(a.target.value),className:"px-3 py-1.5 text-sm bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",children:[c.jsx("option",{value:"5m",children:"Last 5 Minutes"}),c.jsx("option",{value:"15m",children:"Last 15 Minutes"}),c.jsx("option",{value:"30m",children:"Last 30 Minutes"}),c.jsx("option",{value:"1h",children:"Last 1 Hour"}),c.jsx("option",{value:"2h",children:"Last 2 Hours"}),c.jsx("option",{value:"6h",children:"Last 6 Hours"}),c.jsx("option",{value:"12h",children:"Last 12 Hours"}),c.jsx("option",{value:"24h",children:"Last 24 Hours"}),c.jsx("option",{value:"7d",children:"Last 7 Days"}),c.jsx("option",{value:"30d",children:"Last 30 Days"}),c.jsx("option",{value:"60d",children:"Last 60 Days"}),c.jsx("option",{value:"90d",children:"Last 90 Days"})]})]}),c.jsx("div",{className:`${i} flex flex-col`,children:n})]})}function St({label:e,value:t,icon:n,color:r,change:s,trend:o="neutral"}){const i={up:"text-green-600 dark:text-green-400 bg-green-50 dark:bg-green-900/20",down:"text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20",neutral:"text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-900/20"};return c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary p-6 rounded-xl shadow-sm border border-gray-100 dark:border-white/5 hover:border-primary-500/20 transition-colors group",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsx("div",{className:`p-2 rounded-lg ${r} bg-opacity-10 dark:bg-opacity-20 group-hover:scale-110 transition-transform`,children:c.jsx(n,{className:`w-5 h-5 ${r.replace("bg-","text-")}`})}),s&&c.jsx("span",{className:`text-xs font-medium px-2 py-1 rounded-full ${i[o]}`,children:s})]}),c.jsx("h3",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:e}),c.jsx("p",{className:"text-2xl font-bold text-gray-900 dark:text-white mt-1",children:t})]})}function S2({label:e,options:t,selected:n,onChange:r,className:s=""}){const[o,i]=S.useState(!1),a=S.useRef(null);S.useEffect(()=>{const h=f=>{a.current&&!a.current.contains(f.target)&&i(!1)};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]);const l=h=>{const f=n.includes(h)?n.filter(p=>p!==h):[...n,h];r(f)},u=()=>{r(t.map(h=>h.value))},d=()=>{r([])};return c.jsxs("div",{className:`relative ${s}`,ref:a,children:[c.jsxs("button",{onClick:()=>i(!o),className:"flex items-center justify-between w-full md:w-64 px-4 py-2 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg shadow-sm hover:bg-gray-50 dark:hover:bg-white/5 transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500",children:[c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-200 truncate",children:n.length===0?e:n.length===t.length?"All Selected":`${n.length} Selected`}),c.jsx(U1,{className:`w-4 h-4 text-gray-500 transition-transform ${o?"rotate-180":""}`})]}),o&&c.jsxs("div",{className:"absolute z-50 w-full md:w-72 mt-2 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-xl shadow-lg overflow-hidden animate-in fade-in zoom-in-95 duration-100",children:[c.jsxs("div",{className:"p-2 border-b border-gray-200 dark:border-white/10 flex items-center justify-between bg-gray-50 dark:bg-white/5",children:[c.jsx("button",{onClick:u,className:"text-xs font-medium text-primary-600 hover:text-primary-700 dark:text-primary-400",children:"Select All"}),c.jsx("button",{onClick:d,className:"text-xs font-medium text-red-600 hover:text-red-700 dark:text-red-400",children:"Clear"})]}),c.jsx("div",{className:"max-h-64 overflow-y-auto p-2 space-y-1",children:t.map(h=>c.jsxs("button",{onClick:()=>l(h.value),className:"flex items-center w-full px-3 py-2 rounded-lg hover:bg-gray-100 dark:hover:bg-white/10 transition-colors group",children:[c.jsx("div",{className:`w-5 h-5 rounded border flex items-center justify-center mr-3 transition-colors ${n.includes(h.value)?"bg-primary-600 border-primary-600":"border-gray-300 dark:border-gray-600 group-hover:border-primary-500"}`,children:n.includes(h.value)&&c.jsx(bu,{className:"w-3.5 h-3.5 text-white"})}),h.color&&c.jsx("div",{className:"w-3 h-3 rounded-full mr-3 flex-shrink-0",style:{backgroundColor:h.color}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-200 truncate",children:h.label})]},h.value))})]})]})}function XT(e="7d"){const[t,n]=S.useState(null),[r,s]=S.useState(!0),[o,i]=S.useState(null);return S.useEffect(()=>{(async()=>{var l,u;try{const d=await ae.get(`/api/dashboard/usage?time_range=${e}`);console.log("Response from /api/dashboard/usage:",d.data),n(d.data),console.log(d.data)}catch(d){const h=((u=(l=d.response)==null?void 0:l.data)==null?void 0:u.detail)||"Failed to fetch dashboard data";i(h),_n.error(h)}finally{s(!1)}})()},[e]),{data:t,loading:r,error:o}}function _2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),j2=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Bc="-",Jy=[],eA="arbitrary..",tA=e=>{const t=rA(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return nA(i);const a=i.split(Bc),l=a[0]===""&&a.length>1?1:0;return C2(a,l,t)},getConflictingClassGroupIds:(i,a)=>{if(a){const l=r[i],u=n[i];return l?u?JT(u,l):l:u||Jy}return n[i]||Jy}}},C2=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const s=e[t],o=n.nextPart.get(s);if(o){const u=C2(e,t+1,o);if(u)return u}const i=n.validators;if(i===null)return;const a=t===0?e.join(Bc):e.slice(t).join(Bc),l=i.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?eA+r:void 0})(),rA=e=>{const{theme:t,classGroups:n}=e;return sA(n,t)},sA=(e,t)=>{const n=j2();for(const r in e){const s=e[r];Pg(s,n,r,t)}return n},Pg=(e,t,n,r)=>{const s=e.length;for(let o=0;o{if(typeof e=="string"){iA(e,t,n);return}if(typeof e=="function"){aA(e,t,n,r);return}lA(e,t,n,r)},iA=(e,t,n)=>{const r=e===""?t:N2(t,e);r.classGroupId=n},aA=(e,t,n,r)=>{if(cA(e)){Pg(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(ZT(n,e))},lA=(e,t,n,r)=>{const s=Object.entries(e),o=s.length;for(let i=0;i{let n=e;const r=t.split(Bc),s=r.length;for(let o=0;o"isThemeGetter"in e&&e.isThemeGetter===!0,uA=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const s=(o,i)=>{n[o]=i,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let i=n[o];if(i!==void 0)return i;if((i=r[o])!==void 0)return s(o,i),i},set(o,i){o in n?n[o]=i:s(o,i)}}},Pf="!",Zy=":",dA=[],ex=(e,t,n,r,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:s}),hA=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=s=>{const o=[];let i=0,a=0,l=0,u;const d=s.length;for(let m=0;ml?u-l:void 0;return ex(o,p,f,g)};if(t){const s=t+Zy,o=r;r=i=>i.startsWith(s)?o(i.slice(s.length)):ex(dA,!1,i,void 0,!0)}if(n){const s=r;r=o=>n({className:o,parseClassName:s})}return r},fA=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let s=[];for(let o=0;o0&&(s.sort(),r.push(...s),s=[]),r.push(i)):s.push(i)}return s.length>0&&(s.sort(),r.push(...s)),r}},pA=e=>({cache:uA(e.cacheSize),parseClassName:hA(e),sortModifiers:fA(e),...tA(e)}),gA=/\s+/,mA=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:o}=t,i=[],a=e.trim().split(gA);let l="";for(let u=a.length-1;u>=0;u-=1){const d=a[u],{isExternal:h,modifiers:f,hasImportantModifier:p,baseClassName:g,maybePostfixModifierPosition:m}=n(d);if(h){l=d+(l.length>0?" "+l:l);continue}let y=!!m,x=r(y?g.substring(0,m):g);if(!x){if(!y){l=d+(l.length>0?" "+l:l);continue}if(x=r(g),!x){l=d+(l.length>0?" "+l:l);continue}y=!1}const v=f.length===0?"":f.length===1?f[0]:o(f).join(":"),b=p?v+Pf:v,k=b+x;if(i.indexOf(k)>-1)continue;i.push(k);const w=s(x,y);for(let j=0;j0?" "+l:l)}return l},yA=(...e)=>{let t=0,n,r,s="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,s,o;const i=l=>{const u=t.reduce((d,h)=>h(d),e());return n=pA(u),r=n.cache.get,s=n.cache.set,o=a,a(l)},a=l=>{const u=r(l);if(u)return u;const d=mA(l,n);return s(l,d),d};return o=i,(...l)=>o(yA(...l))},bA=[],He=e=>{const t=n=>n[e]||bA;return t.isThemeGetter=!0,t},R2=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,E2=/^\((?:(\w[\w-]*):)?(.+)\)$/i,vA=/^\d+\/\d+$/,wA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,kA=/\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$/,SA=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,_A=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,jA=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,qs=e=>vA.test(e),le=e=>!!e&&!Number.isNaN(Number(e)),ur=e=>!!e&&Number.isInteger(Number(e)),Id=e=>e.endsWith("%")&&le(e.slice(0,-1)),Fn=e=>wA.test(e),CA=()=>!0,NA=e=>kA.test(e)&&!SA.test(e),T2=()=>!1,PA=e=>_A.test(e),RA=e=>jA.test(e),EA=e=>!X(e)&&!Q(e),TA=e=>qo(e,L2,T2),X=e=>R2.test(e),rs=e=>qo(e,O2,NA),Fd=e=>qo(e,DA,le),tx=e=>qo(e,A2,T2),AA=e=>qo(e,M2,RA),ml=e=>qo(e,D2,PA),Q=e=>E2.test(e),ui=e=>Ko(e,O2),MA=e=>Ko(e,IA),nx=e=>Ko(e,A2),LA=e=>Ko(e,L2),OA=e=>Ko(e,M2),yl=e=>Ko(e,D2,!0),qo=(e,t,n)=>{const r=R2.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Ko=(e,t,n=!1)=>{const r=E2.exec(e);return r?r[1]?t(r[1]):n:!1},A2=e=>e==="position"||e==="percentage",M2=e=>e==="image"||e==="url",L2=e=>e==="length"||e==="size"||e==="bg-size",O2=e=>e==="length",DA=e=>e==="number",IA=e=>e==="family-name",D2=e=>e==="shadow",FA=()=>{const e=He("color"),t=He("font"),n=He("text"),r=He("font-weight"),s=He("tracking"),o=He("leading"),i=He("breakpoint"),a=He("container"),l=He("spacing"),u=He("radius"),d=He("shadow"),h=He("inset-shadow"),f=He("text-shadow"),p=He("drop-shadow"),g=He("blur"),m=He("perspective"),y=He("aspect"),x=He("ease"),v=He("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...k(),Q,X],j=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto","contain","none"],_=()=>[Q,X,l],P=()=>[qs,"full","auto",..._()],A=()=>[ur,"none","subgrid",Q,X],O=()=>["auto",{span:["full",ur,Q,X]},ur,Q,X],F=()=>[ur,"auto",Q,X],D=()=>["auto","min","max","fr",Q,X],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",..._()],H=()=>[qs,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",..._()],C=()=>[e,Q,X],L=()=>[...k(),nx,tx,{position:[Q,X]}],E=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",LA,TA,{size:[Q,X]}],Y=()=>[Id,ui,rs],T=()=>["","none","full",u,Q,X],$=()=>["",le,ui,rs],q=()=>["solid","dashed","dotted","double"],ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[le,Id,nx,tx],fe=()=>["","none",g,Q,X],tt=()=>["none",le,Q,X],lt=()=>["none",le,Q,X],Ye=()=>[le,Q,X],Jt=()=>[qs,"full",..._()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fn],breakpoint:[Fn],color:[CA],container:[Fn],"drop-shadow":[Fn],ease:["in","out","in-out"],font:[EA],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fn],shadow:[Fn],spacing:["px",le],text:[Fn],"text-shadow":[Fn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",qs,X,Q,y]}],container:["container"],columns:[{columns:[le,X,Q,a]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{start:P()}],end:[{end:P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[ur,"auto",Q,X]}],basis:[{basis:[qs,"full","auto",a,..._()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[le,qs,"auto","initial","none",X]}],grow:[{grow:["",le,Q,X]}],shrink:[{shrink:["",le,Q,X]}],order:[{order:[ur,"first","last","none",Q,X]}],"grid-cols":[{"grid-cols":A()}],"col-start-end":[{col:O()}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":A()}],"row-start-end":[{row:O()}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:_()}],"gap-x":[{"gap-x":_()}],"gap-y":[{"gap-y":_()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:_()}],px:[{px:_()}],py:[{py:_()}],ps:[{ps:_()}],pe:[{pe:_()}],pt:[{pt:_()}],pr:[{pr:_()}],pb:[{pb:_()}],pl:[{pl:_()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":_()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":_()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],w:[{w:[a,"screen",...H()]}],"min-w":[{"min-w":[a,"screen","none",...H()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[i]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",n,ui,rs]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Q,Fd]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Id,X]}],"font-family":[{font:[MA,X,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,Q,X]}],"line-clamp":[{"line-clamp":[le,"none",Q,Fd]}],leading:[{leading:[o,..._()]}],"list-image":[{"list-image":["none",Q,X]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Q,X]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:C()}],"text-color":[{text:C()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...q(),"wavy"]}],"text-decoration-thickness":[{decoration:[le,"from-font","auto",Q,rs]}],"text-decoration-color":[{decoration:C()}],"underline-offset":[{"underline-offset":[le,"auto",Q,X]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Q,X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Q,X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:E()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ur,Q,X],radial:["",Q,X],conic:[ur,Q,X]},OA,AA]}],"bg-color":[{bg:C()}],"gradient-from-pos":[{from:Y()}],"gradient-via-pos":[{via:Y()}],"gradient-to-pos":[{to:Y()}],"gradient-from":[{from:C()}],"gradient-via":[{via:C()}],"gradient-to":[{to:C()}],rounded:[{rounded:T()}],"rounded-s":[{"rounded-s":T()}],"rounded-e":[{"rounded-e":T()}],"rounded-t":[{"rounded-t":T()}],"rounded-r":[{"rounded-r":T()}],"rounded-b":[{"rounded-b":T()}],"rounded-l":[{"rounded-l":T()}],"rounded-ss":[{"rounded-ss":T()}],"rounded-se":[{"rounded-se":T()}],"rounded-ee":[{"rounded-ee":T()}],"rounded-es":[{"rounded-es":T()}],"rounded-tl":[{"rounded-tl":T()}],"rounded-tr":[{"rounded-tr":T()}],"rounded-br":[{"rounded-br":T()}],"rounded-bl":[{"rounded-bl":T()}],"border-w":[{border:$()}],"border-w-x":[{"border-x":$()}],"border-w-y":[{"border-y":$()}],"border-w-s":[{"border-s":$()}],"border-w-e":[{"border-e":$()}],"border-w-t":[{"border-t":$()}],"border-w-r":[{"border-r":$()}],"border-w-b":[{"border-b":$()}],"border-w-l":[{"border-l":$()}],"divide-x":[{"divide-x":$()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":$()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...q(),"hidden","none"]}],"divide-style":[{divide:[...q(),"hidden","none"]}],"border-color":[{border:C()}],"border-color-x":[{"border-x":C()}],"border-color-y":[{"border-y":C()}],"border-color-s":[{"border-s":C()}],"border-color-e":[{"border-e":C()}],"border-color-t":[{"border-t":C()}],"border-color-r":[{"border-r":C()}],"border-color-b":[{"border-b":C()}],"border-color-l":[{"border-l":C()}],"divide-color":[{divide:C()}],"outline-style":[{outline:[...q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[le,Q,X]}],"outline-w":[{outline:["",le,ui,rs]}],"outline-color":[{outline:C()}],shadow:[{shadow:["","none",d,yl,ml]}],"shadow-color":[{shadow:C()}],"inset-shadow":[{"inset-shadow":["none",h,yl,ml]}],"inset-shadow-color":[{"inset-shadow":C()}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:C()}],"ring-offset-w":[{"ring-offset":[le,rs]}],"ring-offset-color":[{"ring-offset":C()}],"inset-ring-w":[{"inset-ring":$()}],"inset-ring-color":[{"inset-ring":C()}],"text-shadow":[{"text-shadow":["none",f,yl,ml]}],"text-shadow-color":[{"text-shadow":C()}],opacity:[{opacity:[le,Q,X]}],"mix-blend":[{"mix-blend":[...ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[le]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":C()}],"mask-image-linear-to-color":[{"mask-linear-to":C()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":C()}],"mask-image-t-to-color":[{"mask-t-to":C()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":C()}],"mask-image-r-to-color":[{"mask-r-to":C()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":C()}],"mask-image-b-to-color":[{"mask-b-to":C()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":C()}],"mask-image-l-to-color":[{"mask-l-to":C()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":C()}],"mask-image-x-to-color":[{"mask-x-to":C()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":C()}],"mask-image-y-to-color":[{"mask-y-to":C()}],"mask-image-radial":[{"mask-radial":[Q,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":C()}],"mask-image-radial-to-color":[{"mask-radial-to":C()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[le]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":C()}],"mask-image-conic-to-color":[{"mask-conic-to":C()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:E()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Q,X]}],filter:[{filter:["","none",Q,X]}],blur:[{blur:fe()}],brightness:[{brightness:[le,Q,X]}],contrast:[{contrast:[le,Q,X]}],"drop-shadow":[{"drop-shadow":["","none",p,yl,ml]}],"drop-shadow-color":[{"drop-shadow":C()}],grayscale:[{grayscale:["",le,Q,X]}],"hue-rotate":[{"hue-rotate":[le,Q,X]}],invert:[{invert:["",le,Q,X]}],saturate:[{saturate:[le,Q,X]}],sepia:[{sepia:["",le,Q,X]}],"backdrop-filter":[{"backdrop-filter":["","none",Q,X]}],"backdrop-blur":[{"backdrop-blur":fe()}],"backdrop-brightness":[{"backdrop-brightness":[le,Q,X]}],"backdrop-contrast":[{"backdrop-contrast":[le,Q,X]}],"backdrop-grayscale":[{"backdrop-grayscale":["",le,Q,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[le,Q,X]}],"backdrop-invert":[{"backdrop-invert":["",le,Q,X]}],"backdrop-opacity":[{"backdrop-opacity":[le,Q,X]}],"backdrop-saturate":[{"backdrop-saturate":[le,Q,X]}],"backdrop-sepia":[{"backdrop-sepia":["",le,Q,X]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":_()}],"border-spacing-x":[{"border-spacing-x":_()}],"border-spacing-y":[{"border-spacing-y":_()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Q,X]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[le,"initial",Q,X]}],ease:[{ease:["linear","initial",x,Q,X]}],delay:[{delay:[le,Q,X]}],animate:[{animate:["none",v,Q,X]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,Q,X]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:tt()}],"rotate-x":[{"rotate-x":tt()}],"rotate-y":[{"rotate-y":tt()}],"rotate-z":[{"rotate-z":tt()}],scale:[{scale:lt()}],"scale-x":[{"scale-x":lt()}],"scale-y":[{"scale-y":lt()}],"scale-z":[{"scale-z":lt()}],"scale-3d":["scale-3d"],skew:[{skew:Ye()}],"skew-x":[{"skew-x":Ye()}],"skew-y":[{"skew-y":Ye()}],transform:[{transform:[Q,X,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Jt()}],"translate-x":[{"translate-x":Jt()}],"translate-y":[{"translate-y":Jt()}],"translate-z":[{"translate-z":Jt()}],"translate-none":["translate-none"],accent:[{accent:C()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:C()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Q,X]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"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",Q,X]}],fill:[{fill:["none",...C()]}],"stroke-w":[{stroke:[le,ui,rs,Fd]}],stroke:[{stroke:["none",...C()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},zA=xA(FA);function ar(...e){return zA(QT(e))}function me({className:e,...t}){return c.jsx("div",{className:ar("animate-pulse rounded-md bg-neutral-200 dark:bg-neutral-700",e),...t})}function rx(){const[e,t]=S.useState(!1);return S.useEffect(()=>{(async()=>{try{const r=await ae.get("/auth/profile/status");t(!r.data.is_complete)}catch{t(!1)}})()},[]),e?c.jsxs("div",{className:"bg-gradient-to-r from-primary-500/10 to-primary-500/5 border border-primary-500/20 rounded-xl p-4 mb-6 flex items-center justify-between gap-4",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-9 h-9 rounded-lg bg-primary-500/15 flex items-center justify-center flex-shrink-0",children:c.jsx(To,{className:"w-[18px] h-[18px] text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:"Complete your profile"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Add your organization type and impact sectors to help us understand how Sunbird AI is being used."})]})]}),c.jsx(Ee,{to:"/complete-profile",className:"px-5 py-2 bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium rounded-lg transition-colors shadow-sm shadow-primary-500/20 whitespace-nowrap",children:"Update Profile"})]}):null}/*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela * Released under the MIT License - */function Ba(e){return e+.5|0}const Sr=(e,t,n)=>Math.max(Math.min(e,n),t);function Si(e){return Sr(Ba(e*2.55),0,255)}function zr(e){return Sr(Ba(e*255),0,255)}function Wn(e){return Sr(Ba(e/2.55)/100,0,1)}function sx(e){return Sr(Ba(e*100),0,100)}const nn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Rf=[..."0123456789ABCDEF"],VA=e=>Rf[e&15],BA=e=>Rf[(e&240)>>4]+Rf[e&15],xl=e=>(e&240)>>4===(e&15),$A=e=>xl(e.r)&&xl(e.g)&&xl(e.b)&&xl(e.a);function HA(e){var t=e.length,n;return e[0]==="#"&&(t===4||t===5?n={r:255&nn[e[1]]*17,g:255&nn[e[2]]*17,b:255&nn[e[3]]*17,a:t===5?nn[e[4]]*17:255}:(t===7||t===9)&&(n={r:nn[e[1]]<<4|nn[e[2]],g:nn[e[3]]<<4|nn[e[4]],b:nn[e[5]]<<4|nn[e[6]],a:t===9?nn[e[7]]<<4|nn[e[8]]:255})),n}const UA=(e,t)=>e<255?t(e):"";function WA(e){var t=$A(e)?VA:BA;return e?"#"+t(e.r)+t(e.g)+t(e.b)+UA(e.a,t):void 0}const GA=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function I2(e,t,n){const r=t*Math.min(n,1-n),s=(o,i=(o+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[s(0),s(8),s(4)]}function qA(e,t,n){const r=(s,o=(s+e/60)%6)=>n-n*t*Math.max(Math.min(o,4-o,1),0);return[r(5),r(3),r(1)]}function KA(e,t,n){const r=I2(e,1,.5);let s;for(t+n>1&&(s=1/(t+n),t*=s,n*=s),s=0;s<3;s++)r[s]*=1-t-n,r[s]+=t;return r}function YA(e,t,n,r,s){return e===s?(t-n)/r+(t.5?d/(2-o-i):d/(o+i),l=YA(n,r,s,d,o),l=l*60+.5),[l|0,u||0,a]}function Eg(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(zr)}function Tg(e,t,n){return Eg(I2,e,t,n)}function XA(e,t,n){return Eg(KA,e,t,n)}function QA(e,t,n){return Eg(qA,e,t,n)}function F2(e){return(e%360+360)%360}function JA(e){const t=GA.exec(e);let n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?Si(+t[5]):zr(+t[5]));const s=F2(+t[2]),o=+t[3]/100,i=+t[4]/100;return t[1]==="hwb"?r=XA(s,o,i):t[1]==="hsv"?r=QA(s,o,i):r=Tg(s,o,i),{r:r[0],g:r[1],b:r[2],a:n}}function ZA(e,t){var n=Rg(e);n[0]=F2(n[0]+t),n=Tg(n),e.r=n[0],e.g=n[1],e.b=n[2]}function eM(e){if(!e)return;const t=Rg(e),n=t[0],r=sx(t[1]),s=sx(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${s}%, ${Wn(e.a)})`:`hsl(${n}, ${r}%, ${s}%)`}const ox={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},ix={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function tM(){const e={},t=Object.keys(ix),n=Object.keys(ox);let r,s,o,i,a;for(r=0;r>16&255,o>>8&255,o&255]}return e}let bl;function nM(e){bl||(bl=tM(),bl.transparent=[0,0,0,0]);const t=bl[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const rM=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function sM(e){const t=rM.exec(e);let n=255,r,s,o;if(t){if(t[7]!==r){const i=+t[7];n=t[8]?Si(i):Sr(i*255,0,255)}return r=+t[1],s=+t[3],o=+t[5],r=255&(t[2]?Si(r):Sr(r,0,255)),s=255&(t[4]?Si(s):Sr(s,0,255)),o=255&(t[6]?Si(o):Sr(o,0,255)),{r,g:s,b:o,a:n}}}function oM(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Wn(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const Fd=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,Ks=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function iM(e,t,n){const r=Ks(Wn(e.r)),s=Ks(Wn(e.g)),o=Ks(Wn(e.b));return{r:zr(Fd(r+n*(Ks(Wn(t.r))-r))),g:zr(Fd(s+n*(Ks(Wn(t.g))-s))),b:zr(Fd(o+n*(Ks(Wn(t.b))-o))),a:e.a+n*(t.a-e.a)}}function vl(e,t,n){if(e){let r=Rg(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=Tg(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function z2(e,t){return e&&Object.assign(t||{},e)}function ax(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=zr(e[3]))):(t=z2(e,{r:0,g:0,b:0,a:1}),t.a=zr(t.a)),t}function aM(e){return e.charAt(0)==="r"?sM(e):JA(e)}class ma{constructor(t){if(t instanceof ma)return t;const n=typeof t;let r;n==="object"?r=ax(t):n==="string"&&(r=HA(t)||nM(t)||aM(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var t=z2(this._rgb);return t&&(t.a=Wn(t.a)),t}set rgb(t){this._rgb=ax(t)}rgbString(){return this._valid?oM(this._rgb):void 0}hexString(){return this._valid?WA(this._rgb):void 0}hslString(){return this._valid?eM(this._rgb):void 0}mix(t,n){if(t){const r=this.rgb,s=t.rgb;let o;const i=n===o?.5:n,a=2*i-1,l=r.a-s.a,u=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;o=1-u,r.r=255&u*r.r+o*s.r+.5,r.g=255&u*r.g+o*s.g+.5,r.b=255&u*r.b+o*s.b+.5,r.a=i*r.a+(1-i)*s.a,this.rgb=r}return this}interpolate(t,n){return t&&(this._rgb=iM(this._rgb,t._rgb,n)),this}clone(){return new ma(this.rgb)}alpha(t){return this._rgb.a=zr(t),this}clearer(t){const n=this._rgb;return n.a*=1-t,this}greyscale(){const t=this._rgb,n=Ba(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=n,this}opaquer(t){const n=this._rgb;return n.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return vl(this._rgb,2,t),this}darken(t){return vl(this._rgb,2,-t),this}saturate(t){return vl(this._rgb,1,t),this}desaturate(t){return vl(this._rgb,1,-t),this}rotate(t){return ZA(this._rgb,t),this}}/*! + */function Ba(e){return e+.5|0}const Sr=(e,t,n)=>Math.max(Math.min(e,n),t);function Si(e){return Sr(Ba(e*2.55),0,255)}function zr(e){return Sr(Ba(e*255),0,255)}function Wn(e){return Sr(Ba(e/2.55)/100,0,1)}function sx(e){return Sr(Ba(e*100),0,100)}const nn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Rf=[..."0123456789ABCDEF"],VA=e=>Rf[e&15],BA=e=>Rf[(e&240)>>4]+Rf[e&15],xl=e=>(e&240)>>4===(e&15),$A=e=>xl(e.r)&&xl(e.g)&&xl(e.b)&&xl(e.a);function HA(e){var t=e.length,n;return e[0]==="#"&&(t===4||t===5?n={r:255&nn[e[1]]*17,g:255&nn[e[2]]*17,b:255&nn[e[3]]*17,a:t===5?nn[e[4]]*17:255}:(t===7||t===9)&&(n={r:nn[e[1]]<<4|nn[e[2]],g:nn[e[3]]<<4|nn[e[4]],b:nn[e[5]]<<4|nn[e[6]],a:t===9?nn[e[7]]<<4|nn[e[8]]:255})),n}const UA=(e,t)=>e<255?t(e):"";function WA(e){var t=$A(e)?VA:BA;return e?"#"+t(e.r)+t(e.g)+t(e.b)+UA(e.a,t):void 0}const GA=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function I2(e,t,n){const r=t*Math.min(n,1-n),s=(o,i=(o+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[s(0),s(8),s(4)]}function qA(e,t,n){const r=(s,o=(s+e/60)%6)=>n-n*t*Math.max(Math.min(o,4-o,1),0);return[r(5),r(3),r(1)]}function KA(e,t,n){const r=I2(e,1,.5);let s;for(t+n>1&&(s=1/(t+n),t*=s,n*=s),s=0;s<3;s++)r[s]*=1-t-n,r[s]+=t;return r}function YA(e,t,n,r,s){return e===s?(t-n)/r+(t.5?d/(2-o-i):d/(o+i),l=YA(n,r,s,d,o),l=l*60+.5),[l|0,u||0,a]}function Eg(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(zr)}function Tg(e,t,n){return Eg(I2,e,t,n)}function XA(e,t,n){return Eg(KA,e,t,n)}function QA(e,t,n){return Eg(qA,e,t,n)}function F2(e){return(e%360+360)%360}function JA(e){const t=GA.exec(e);let n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?Si(+t[5]):zr(+t[5]));const s=F2(+t[2]),o=+t[3]/100,i=+t[4]/100;return t[1]==="hwb"?r=XA(s,o,i):t[1]==="hsv"?r=QA(s,o,i):r=Tg(s,o,i),{r:r[0],g:r[1],b:r[2],a:n}}function ZA(e,t){var n=Rg(e);n[0]=F2(n[0]+t),n=Tg(n),e.r=n[0],e.g=n[1],e.b=n[2]}function eM(e){if(!e)return;const t=Rg(e),n=t[0],r=sx(t[1]),s=sx(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${s}%, ${Wn(e.a)})`:`hsl(${n}, ${r}%, ${s}%)`}const ox={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},ix={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function tM(){const e={},t=Object.keys(ix),n=Object.keys(ox);let r,s,o,i,a;for(r=0;r>16&255,o>>8&255,o&255]}return e}let bl;function nM(e){bl||(bl=tM(),bl.transparent=[0,0,0,0]);const t=bl[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const rM=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function sM(e){const t=rM.exec(e);let n=255,r,s,o;if(t){if(t[7]!==r){const i=+t[7];n=t[8]?Si(i):Sr(i*255,0,255)}return r=+t[1],s=+t[3],o=+t[5],r=255&(t[2]?Si(r):Sr(r,0,255)),s=255&(t[4]?Si(s):Sr(s,0,255)),o=255&(t[6]?Si(o):Sr(o,0,255)),{r,g:s,b:o,a:n}}}function oM(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Wn(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const zd=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,Ks=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function iM(e,t,n){const r=Ks(Wn(e.r)),s=Ks(Wn(e.g)),o=Ks(Wn(e.b));return{r:zr(zd(r+n*(Ks(Wn(t.r))-r))),g:zr(zd(s+n*(Ks(Wn(t.g))-s))),b:zr(zd(o+n*(Ks(Wn(t.b))-o))),a:e.a+n*(t.a-e.a)}}function vl(e,t,n){if(e){let r=Rg(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=Tg(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function z2(e,t){return e&&Object.assign(t||{},e)}function ax(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=zr(e[3]))):(t=z2(e,{r:0,g:0,b:0,a:1}),t.a=zr(t.a)),t}function aM(e){return e.charAt(0)==="r"?sM(e):JA(e)}class ma{constructor(t){if(t instanceof ma)return t;const n=typeof t;let r;n==="object"?r=ax(t):n==="string"&&(r=HA(t)||nM(t)||aM(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var t=z2(this._rgb);return t&&(t.a=Wn(t.a)),t}set rgb(t){this._rgb=ax(t)}rgbString(){return this._valid?oM(this._rgb):void 0}hexString(){return this._valid?WA(this._rgb):void 0}hslString(){return this._valid?eM(this._rgb):void 0}mix(t,n){if(t){const r=this.rgb,s=t.rgb;let o;const i=n===o?.5:n,a=2*i-1,l=r.a-s.a,u=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;o=1-u,r.r=255&u*r.r+o*s.r+.5,r.g=255&u*r.g+o*s.g+.5,r.b=255&u*r.b+o*s.b+.5,r.a=i*r.a+(1-i)*s.a,this.rgb=r}return this}interpolate(t,n){return t&&(this._rgb=iM(this._rgb,t._rgb,n)),this}clone(){return new ma(this.rgb)}alpha(t){return this._rgb.a=zr(t),this}clearer(t){const n=this._rgb;return n.a*=1-t,this}greyscale(){const t=this._rgb,n=Ba(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=n,this}opaquer(t){const n=this._rgb;return n.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return vl(this._rgb,2,t),this}darken(t){return vl(this._rgb,2,-t),this}saturate(t){return vl(this._rgb,1,t),this}desaturate(t){return vl(this._rgb,1,-t),this}rotate(t){return ZA(this._rgb,t),this}}/*! * Chart.js v4.5.1 * https://www.chartjs.org * (c) 2025 Chart.js Contributors * Released under the MIT License - */function zn(){}const lM=(()=>{let e=0;return()=>e++})();function ke(e){return e==null}function We(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function he(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function bt(e){return(typeof e=="number"||e instanceof Number)&&isFinite(+e)}function Pn(e,t){return bt(e)?e:t}function ue(e,t){return typeof e>"u"?t:e}const cM=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100:+e/t,V2=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100*t:+e;function je(e,t,n){if(e&&typeof e.call=="function")return e.apply(n,t)}function me(e,t,n,r){let s,o,i;if(We(e))for(o=e.length,s=0;se,x:e=>e.x,y:e=>e.y};function hM(e){const t=e.split("."),n=[];let r="";for(const s of t)r+=s,r.endsWith("\\")?r=r.slice(0,-1)+".":(n.push(r),r="");return n}function fM(e){const t=hM(e);return n=>{for(const r of t){if(r==="")break;n=n&&n[r]}return n}}function xa(e,t){return(lx[t]||(lx[t]=fM(t)))(e)}function Ag(e){return e.charAt(0).toUpperCase()+e.slice(1)}const Hc=e=>typeof e<"u",Ur=e=>typeof e=="function",cx=(e,t)=>{if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0};function pM(e){return e.type==="mouseup"||e.type==="click"||e.type==="contextmenu"}const ye=Math.PI,Ae=2*ye,gM=Ae+ye,Uc=Number.POSITIVE_INFINITY,mM=ye/180,qe=ye/2,ss=ye/4,ux=ye*2/3,$2=Math.log10,Oo=Math.sign;function $i(e,t,n){return Math.abs(e-t)s-o).pop(),t}function xM(e){return typeof e=="symbol"||typeof e=="object"&&e!==null&&!(Symbol.toPrimitive in e||"toString"in e||"valueOf"in e)}function ba(e){return!xM(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function bM(e,t){const n=Math.round(e);return n-t<=e&&n+t>=e}function vM(e,t,n){let r,s,o;for(r=0,s=e.length;rl&&u=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function Mg(e,t,n){n=n||(i=>e[i]1;)o=s+r>>1,n(o)?s=o:r=o;return{lo:s,hi:r}}const vs=(e,t,n,r)=>Mg(e,n,r?s=>{const o=e[s][t];return oe[s][t]Mg(e,n,r=>e[r][t]>=n);function jM(e,t,n){let r=0,s=e.length;for(;rr&&e[s-1]>n;)s--;return r>0||s{const r="_onData"+Ag(n),s=e[n];Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value(...o){const i=s.apply(this,o);return e._chartjs.listeners.forEach(a=>{typeof a[r]=="function"&&a[r](...o)}),i}})})}function fx(e,t){const n=e._chartjs;if(!n)return;const r=n.listeners,s=r.indexOf(t);s!==-1&&r.splice(s,1),!(r.length>0)&&(U2.forEach(o=>{delete e[o]}),delete e._chartjs)}function NM(e){const t=new Set(e);return t.size===e.length?e:Array.from(t)}const W2=(function(){return typeof window>"u"?function(e){return e()}:window.requestAnimationFrame})();function G2(e,t){let n=[],r=!1;return function(...s){n=s,r||(r=!0,W2.call(window,()=>{r=!1,e.apply(t,n)}))}}function PM(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}const Lg=e=>e==="start"?"left":e==="end"?"right":"center",pt=(e,t,n)=>e==="start"?t:e==="end"?n:(t+n)/2,RM=(e,t,n,r)=>e===(r?"left":"right")?n:e==="center"?(t+n)/2:t;function EM(e,t,n){const r=t.length;let s=0,o=r;if(e._sorted){const{iScale:i,vScale:a,_parsed:l}=e,u=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,d=i.axis,{min:h,max:f,minDefined:p,maxDefined:g}=i.getUserBounds();if(p){if(s=Math.min(vs(l,d,h).lo,n?r:vs(t,d,i.getPixelForValue(h)).lo),u){const m=l.slice(0,s+1).reverse().findIndex(y=>!ke(y[a.axis]));s-=Math.max(0,m)}s=St(s,0,r-1)}if(g){let m=Math.max(vs(l,i.axis,f,!0).hi+1,n?0:vs(t,d,i.getPixelForValue(f),!0).hi+1);if(u){const y=l.slice(m-1).findIndex(x=>!ke(x[a.axis]));m+=Math.max(0,y)}o=St(m,s,r)-s}else o=r-s}return{start:s,count:o}}function TM(e){const{xScale:t,yScale:n,_scaleRanges:r}=e,s={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=s,!0;const o=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,s),o}const wl=e=>e===0||e===1,px=(e,t,n)=>-(Math.pow(2,10*(e-=1))*Math.sin((e-t)*Ae/n)),gx=(e,t,n)=>Math.pow(2,-10*e)*Math.sin((e-t)*Ae/n)+1,Hi={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*qe)+1,easeOutSine:e=>Math.sin(e*qe),easeInOutSine:e=>-.5*(Math.cos(ye*e)-1),easeInExpo:e=>e===0?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>e===1?1:-Math.pow(2,-10*e)+1,easeInOutExpo:e=>wl(e)?e:e<.5?.5*Math.pow(2,10*(e*2-1)):.5*(-Math.pow(2,-10*(e*2-1))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>wl(e)?e:px(e,.075,.3),easeOutElastic:e=>wl(e)?e:gx(e,.075,.3),easeInOutElastic(e){return wl(e)?e:e<.5?.5*px(e*2,.1125,.45):.5+.5*gx(e*2-1,.1125,.45)},easeInBack(e){return e*e*((1.70158+1)*e-1.70158)},easeOutBack(e){return(e-=1)*e*((1.70158+1)*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-Hi.easeOutBounce(1-e),easeOutBounce(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:e=>e<.5?Hi.easeInBounce(e*2)*.5:Hi.easeOutBounce(e*2-1)*.5+.5};function Og(e){if(e&&typeof e=="object"){const t=e.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function mx(e){return Og(e)?e:new ma(e)}function zd(e){return Og(e)?e:new ma(e).saturate(.5).darken(.1).hexString()}const AM=["x","y","borderWidth","radius","tension"],MM=["color","borderColor","backgroundColor"];function LM(e){e.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),e.set("animations",{colors:{type:"color",properties:MM},numbers:{type:"number",properties:AM}}),e.describe("animations",{_fallback:"animation"}),e.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function OM(e){e.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const yx=new Map;function DM(e,t){t=t||{};const n=e+JSON.stringify(t);let r=yx.get(n);return r||(r=new Intl.NumberFormat(e,t),yx.set(n,r)),r}function Dg(e,t,n){return DM(t,n).format(e)}const IM={values(e){return We(e)?e:""+e},numeric(e,t,n){if(e===0)return"0";const r=this.chart.options.locale;let s,o=e;if(n.length>1){const u=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),o=FM(e,n)}const i=$2(Math.abs(o)),a=isNaN(i)?1:Math.max(Math.min(-1*Math.floor(i),20),0),l={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Dg(e,r,l)}};function FM(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var q2={formatters:IM};function zM(e){e.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,n)=>n.lineWidth,tickColor:(t,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:q2.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),e.route("scale.ticks","color","","color"),e.route("scale.grid","color","","borderColor"),e.route("scale.border","color","","borderColor"),e.route("scale.title","color","","color"),e.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),e.describe("scales",{_fallback:"scale"}),e.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const Ls=Object.create(null),Tf=Object.create(null);function Ui(e,t){if(!t)return e;const n=t.split(".");for(let r=0,s=n.length;rr.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(r,s)=>zd(s.backgroundColor),this.hoverBorderColor=(r,s)=>zd(s.borderColor),this.hoverColor=(r,s)=>zd(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(n)}set(t,n){return Vd(this,t,n)}get(t){return Ui(this,t)}describe(t,n){return Vd(Tf,t,n)}override(t,n){return Vd(Ls,t,n)}route(t,n,r,s){const o=Ui(this,t),i=Ui(this,r),a="_"+n;Object.defineProperties(o,{[a]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],u=i[s];return he(l)?Object.assign({},u,l):ue(l,u)},set(l){this[a]=l}}})}apply(t){t.forEach(n=>n(this))}}var Fe=new VM({_scriptable:e=>!e.startsWith("on"),_indexable:e=>e!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[LM,OM,zM]);function BM(e){return!e||ke(e.size)||ke(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}function xx(e,t,n,r,s){let o=t[s];return o||(o=t[s]=e.measureText(s).width,n.push(s)),o>r&&(r=o),r}function os(e,t,n){const r=e.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((t-s)*r)/r+s}function bx(e,t){!t&&!e||(t=t||e.getContext("2d"),t.save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function Af(e,t,n,r){K2(e,t,n,r,null)}function K2(e,t,n,r,s){let o,i,a,l,u,d,h,f;const p=t.pointStyle,g=t.rotation,m=t.radius;let y=(g||0)*mM;if(p&&typeof p=="object"&&(o=p.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){e.save(),e.translate(n,r),e.rotate(y),e.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),e.restore();return}if(!(isNaN(m)||m<=0)){switch(e.beginPath(),p){default:s?e.ellipse(n,r,s/2,m,0,0,Ae):e.arc(n,r,m,0,Ae),e.closePath();break;case"triangle":d=s?s/2:m,e.moveTo(n+Math.sin(y)*d,r-Math.cos(y)*m),y+=ux,e.lineTo(n+Math.sin(y)*d,r-Math.cos(y)*m),y+=ux,e.lineTo(n+Math.sin(y)*d,r-Math.cos(y)*m),e.closePath();break;case"rectRounded":u=m*.516,l=m-u,i=Math.cos(y+ss)*l,h=Math.cos(y+ss)*(s?s/2-u:l),a=Math.sin(y+ss)*l,f=Math.sin(y+ss)*(s?s/2-u:l),e.arc(n-h,r-a,u,y-ye,y-qe),e.arc(n+f,r-i,u,y-qe,y),e.arc(n+h,r+a,u,y,y+qe),e.arc(n-f,r+i,u,y+qe,y+ye),e.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*m,d=s?s/2:l,e.rect(n-d,r-l,2*d,2*l);break}y+=ss;case"rectRot":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+f,r-i),e.lineTo(n+h,r+a),e.lineTo(n-f,r+i),e.closePath();break;case"crossRot":y+=ss;case"cross":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i);break;case"star":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i),y+=ss,h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i);break;case"line":i=s?s/2:Math.cos(y)*m,a=Math.sin(y)*m,e.moveTo(n-i,r-a),e.lineTo(n+i,r+a);break;case"dash":e.moveTo(n,r),e.lineTo(n+Math.cos(y)*(s?s/2:m),r+Math.sin(y)*m);break;case!1:e.closePath();break}e.fill(),t.borderWidth>0&&e.stroke()}}function wa(e,t,n){return n=n||.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&o.strokeColor!=="";let l,u;for(e.save(),e.font=s.string,UM(e,o),l=0;l+e||0;function Ig(e,t){const n={},r=he(t),s=r?Object.keys(t):t,o=he(e)?r?i=>ue(e[i],e[t[i]]):i=>e[i]:()=>e;for(const i of s)n[i]=XM(o(i));return n}function QM(e){return Ig(e,{top:"y",right:"x",bottom:"y",left:"x"})}function Wi(e){return Ig(e,["topLeft","topRight","bottomLeft","bottomRight"])}function hn(e){const t=QM(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function yt(e,t){e=e||{},t=t||Fe.font;let n=ue(e.size,t.size);typeof n=="string"&&(n=parseInt(n,10));let r=ue(e.style,t.style);r&&!(""+r).match(KM)&&(console.warn('Invalid font style specified: "'+r+'"'),r=void 0);const s={family:ue(e.family,t.family),lineHeight:YM(ue(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:ue(e.weight,t.weight),string:""};return s.string=BM(s),s}function kl(e,t,n,r){let s,o,i;for(s=0,o=e.length;sn&&a===0?0:a+l;return{min:i(r,-Math.abs(o)),max:i(s,o)}}function Vs(e,t){return Object.assign(Object.create(e),t)}function Fg(e,t=[""],n,r,s=()=>e[0]){const o=n||e;typeof r>"u"&&(r=J2("_fallback",e));const i={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:o,_fallback:r,_getTarget:s,override:a=>Fg([a,...e],t,o,r)};return new Proxy(i,{deleteProperty(a,l){return delete a[l],delete a._keys,delete e[0][l],!0},get(a,l){return X2(a,l,()=>iL(l,t,e,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(a,l){return wx(a).includes(l)},ownKeys(a){return wx(a)},set(a,l,u){const d=a._storage||(a._storage=s());return a[l]=d[l]=u,delete a._keys,!0}})}function Do(e,t,n,r){const s={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:Y2(e,r),setContext:o=>Do(e,o,n,r),override:o=>Do(e.override(o),t,n,r)};return new Proxy(s,{deleteProperty(o,i){return delete o[i],delete e[i],!0},get(o,i,a){return X2(o,i,()=>eL(o,i,a))},getOwnPropertyDescriptor(o,i){return o._descriptors.allKeys?Reflect.has(e,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,i)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(o,i){return Reflect.has(e,i)},ownKeys(){return Reflect.ownKeys(e)},set(o,i,a){return e[i]=a,delete o[i],!0}})}function Y2(e,t={scriptable:!0,indexable:!0}){const{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:s=t.allKeys}=e;return{allKeys:s,scriptable:n,indexable:r,isScriptable:Ur(n)?n:()=>n,isIndexable:Ur(r)?r:()=>r}}const ZM=(e,t)=>e?e+Ag(t):t,zg=(e,t)=>he(t)&&e!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function X2(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t==="constructor")return e[t];const r=n();return e[t]=r,r}function eL(e,t,n){const{_proxy:r,_context:s,_subProxy:o,_descriptors:i}=e;let a=r[t];return Ur(a)&&i.isScriptable(t)&&(a=tL(t,a,e,n)),We(a)&&a.length&&(a=nL(t,a,e,i.isIndexable)),zg(t,a)&&(a=Do(a,s,o&&o[t],i)),a}function tL(e,t,n,r){const{_proxy:s,_context:o,_subProxy:i,_stack:a}=n;if(a.has(e))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+e);a.add(e);let l=t(o,i||r);return a.delete(e),zg(e,l)&&(l=Vg(s._scopes,s,e,l)),l}function nL(e,t,n,r){const{_proxy:s,_context:o,_subProxy:i,_descriptors:a}=n;if(typeof o.index<"u"&&r(e))return t[o.index%t.length];if(he(t[0])){const l=t,u=s._scopes.filter(d=>d!==l);t=[];for(const d of l){const h=Vg(u,s,e,d);t.push(Do(h,o,i&&i[e],a))}}return t}function Q2(e,t,n){return Ur(e)?e(t,n):e}const rL=(e,t)=>e===!0?t:typeof e=="string"?xa(t,e):void 0;function sL(e,t,n,r,s){for(const o of t){const i=rL(n,o);if(i){e.add(i);const a=Q2(i._fallback,n,s);if(typeof a<"u"&&a!==n&&a!==r)return a}else if(i===!1&&typeof r<"u"&&n!==r)return null}return!1}function Vg(e,t,n,r){const s=t._rootScopes,o=Q2(t._fallback,n,r),i=[...e,...s],a=new Set;a.add(r);let l=vx(a,i,n,o||n,r);return l===null||typeof o<"u"&&o!==n&&(l=vx(a,i,o,l,r),l===null)?!1:Fg(Array.from(a),[""],s,o,()=>oL(t,n,r))}function vx(e,t,n,r,s){for(;n;)n=sL(e,t,n,r,s);return n}function oL(e,t,n){const r=e._getTarget();t in r||(r[t]={});const s=r[t];return We(s)&&he(n)?n:s||{}}function iL(e,t,n,r){let s;for(const o of t)if(s=J2(ZM(o,e),n),typeof s<"u")return zg(e,s)?Vg(n,r,e,s):s}function J2(e,t){for(const n of t){if(!n)continue;const r=n[e];if(typeof r<"u")return r}}function wx(e){let t=e._keys;return t||(t=e._keys=aL(e._scopes)),t}function aL(e){const t=new Set;for(const n of e)for(const r of Object.keys(n).filter(s=>!s.startsWith("_")))t.add(r);return Array.from(t)}const lL=Number.EPSILON||1e-14,Io=(e,t)=>te==="x"?"y":"x";function cL(e,t,n,r){const s=e.skip?t:e,o=t,i=n.skip?t:n,a=Ef(o,s),l=Ef(i,o);let u=a/(a+l),d=l/(a+l);u=isNaN(u)?0:u,d=isNaN(d)?0:d;const h=r*u,f=r*d;return{previous:{x:o.x-h*(i.x-s.x),y:o.y-h*(i.y-s.y)},next:{x:o.x+f*(i.x-s.x),y:o.y+f*(i.y-s.y)}}}function uL(e,t,n){const r=e.length;let s,o,i,a,l,u=Io(e,0);for(let d=0;d!u.skip)),t.cubicInterpolationMode==="monotone")hL(e,s);else{let u=r?e[e.length-1]:e[0];for(o=0,i=e.length;oe.ownerDocument.defaultView.getComputedStyle(e,null);function gL(e,t){return Au(e).getPropertyValue(t)}const mL=["top","right","bottom","left"];function js(e,t,n){const r={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=mL[s];r[o]=parseFloat(e[t+"-"+o+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}const yL=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function xL(e,t){const n=e.touches,r=n&&n.length?n[0]:e,{offsetX:s,offsetY:o}=r;let i=!1,a,l;if(yL(s,o,e.target))a=s,l=o;else{const u=t.getBoundingClientRect();a=r.clientX-u.left,l=r.clientY-u.top,i=!0}return{x:a,y:l,box:i}}function hs(e,t){if("native"in e)return e;const{canvas:n,currentDevicePixelRatio:r}=t,s=Au(n),o=s.boxSizing==="border-box",i=js(s,"padding"),a=js(s,"border","width"),{x:l,y:u,box:d}=xL(e,n),h=i.left+(d&&a.left),f=i.top+(d&&a.top);let{width:p,height:g}=t;return o&&(p-=i.width+a.width,g-=i.height+a.height),{x:Math.round((l-h)/p*n.width/r),y:Math.round((u-f)/g*n.height/r)}}function bL(e,t,n){let r,s;if(t===void 0||n===void 0){const o=e&&$g(e);if(!o)t=e.clientWidth,n=e.clientHeight;else{const i=o.getBoundingClientRect(),a=Au(o),l=js(a,"border","width"),u=js(a,"padding");t=i.width-u.width-l.width,n=i.height-u.height-l.height,r=Wc(a.maxWidth,o,"clientWidth"),s=Wc(a.maxHeight,o,"clientHeight")}}return{width:t,height:n,maxWidth:r||Uc,maxHeight:s||Uc}}const _r=e=>Math.round(e*10)/10;function vL(e,t,n,r){const s=Au(e),o=js(s,"margin"),i=Wc(s.maxWidth,e,"clientWidth")||Uc,a=Wc(s.maxHeight,e,"clientHeight")||Uc,l=bL(e,t,n);let{width:u,height:d}=l;if(s.boxSizing==="content-box"){const f=js(s,"border","width"),p=js(s,"padding");u-=p.width+f.width,d-=p.height+f.height}return u=Math.max(0,u-o.width),d=Math.max(0,r?u/r:d-o.height),u=_r(Math.min(u,i,l.maxWidth)),d=_r(Math.min(d,a,l.maxHeight)),u&&!d&&(d=_r(u/2)),(t!==void 0||n!==void 0)&&r&&l.height&&d>l.height&&(d=l.height,u=_r(Math.floor(d*r))),{width:u,height:d}}function kx(e,t,n){const r=t||1,s=_r(e.height*r),o=_r(e.width*r);e.height=_r(e.height),e.width=_r(e.width);const i=e.canvas;return i.style&&(n||!i.style.height&&!i.style.width)&&(i.style.height=`${e.height}px`,i.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||i.height!==s||i.width!==o?(e.currentDevicePixelRatio=r,i.height=s,i.width=o,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}const wL=(function(){let e=!1;try{const t={get passive(){return e=!0,!1}};Bg()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return e})();function Sx(e,t){const n=gL(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function fs(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function kL(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r==="middle"?n<.5?e.y:t.y:r==="after"?n<1?e.y:t.y:n>0?t.y:e.y}}function SL(e,t,n,r){const s={x:e.cp2x,y:e.cp2y},o={x:t.cp1x,y:t.cp1y},i=fs(e,s,n),a=fs(s,o,n),l=fs(o,t,n),u=fs(i,a,n),d=fs(a,l,n);return fs(u,d,n)}const _L=function(e,t){return{x(n){return e+e+t-n},setWidth(n){t=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,r){return n-r},leftForLtr(n,r){return n-r}}},jL=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function vo(e,t,n){return e?_L(t,n):jL()}function eS(e,t){let n,r;(t==="ltr"||t==="rtl")&&(n=e.canvas.style,r=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=r)}function tS(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function nS(e){return e==="angle"?{between:va,compare:kM,normalize:Ut}:{between:bs,compare:(t,n)=>t-n,normalize:t=>t}}function _x({start:e,end:t,count:n,loop:r,style:s}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:s}}function CL(e,t,n){const{property:r,start:s,end:o}=n,{between:i,normalize:a}=nS(r),l=t.length;let{start:u,end:d,loop:h}=e,f,p;if(h){for(u+=l,d+=l,f=0,p=l;fl(s,b,x)&&a(s,b)!==0,w=()=>a(o,x)===0||l(o,b,x),j=()=>m||k(),N=()=>!m||w();for(let _=d,P=d;_<=h;++_)v=t[_%i],!v.skip&&(x=u(v[r]),x!==b&&(m=l(x,s,o),y===null&&j()&&(y=a(x,s)===0?_:P),y!==null&&N()&&(g.push(_x({start:y,end:_,loop:f,count:i,style:p})),y=null),P=_,b=x));return y!==null&&g.push(_x({start:y,end:h,loop:f,count:i,style:p})),g}function sS(e,t){const n=[],r=e.segments;for(let s=0;ss&&e[o%t].skip;)o--;return o%=t,{start:s,end:o}}function PL(e,t,n,r){const s=e.length,o=[];let i=t,a=e[t],l;for(l=t+1;l<=n;++l){const u=e[l%s];u.skip||u.stop?a.skip||(r=!1,o.push({start:t%s,end:(l-1)%s,loop:r}),t=i=u.stop?l:null):(i=l,a.skip&&(t=l)),a=u}return i!==null&&o.push({start:t%s,end:i%s,loop:r}),o}function RL(e,t){const n=e.points,r=e.options.spanGaps,s=n.length;if(!s)return[];const o=!!e._loop,{start:i,end:a}=NL(n,s,o,r);if(r===!0)return jx(e,[{start:i,end:a,loop:o}],n,t);const l=a{let e=0;return()=>e++})();function ke(e){return e==null}function We(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function he(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function bt(e){return(typeof e=="number"||e instanceof Number)&&isFinite(+e)}function Pn(e,t){return bt(e)?e:t}function ue(e,t){return typeof e>"u"?t:e}const cM=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100:+e/t,V2=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100*t:+e;function je(e,t,n){if(e&&typeof e.call=="function")return e.apply(n,t)}function ye(e,t,n,r){let s,o,i;if(We(e))for(o=e.length,s=0;se,x:e=>e.x,y:e=>e.y};function hM(e){const t=e.split("."),n=[];let r="";for(const s of t)r+=s,r.endsWith("\\")?r=r.slice(0,-1)+".":(n.push(r),r="");return n}function fM(e){const t=hM(e);return n=>{for(const r of t){if(r==="")break;n=n&&n[r]}return n}}function xa(e,t){return(lx[t]||(lx[t]=fM(t)))(e)}function Ag(e){return e.charAt(0).toUpperCase()+e.slice(1)}const Uc=e=>typeof e<"u",Ur=e=>typeof e=="function",cx=(e,t)=>{if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0};function pM(e){return e.type==="mouseup"||e.type==="click"||e.type==="contextmenu"}const xe=Math.PI,Ae=2*xe,gM=Ae+xe,Wc=Number.POSITIVE_INFINITY,mM=xe/180,qe=xe/2,ss=xe/4,ux=xe*2/3,$2=Math.log10,Oo=Math.sign;function $i(e,t,n){return Math.abs(e-t)s-o).pop(),t}function xM(e){return typeof e=="symbol"||typeof e=="object"&&e!==null&&!(Symbol.toPrimitive in e||"toString"in e||"valueOf"in e)}function ba(e){return!xM(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function bM(e,t){const n=Math.round(e);return n-t<=e&&n+t>=e}function vM(e,t,n){let r,s,o;for(r=0,s=e.length;rl&&u=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function Mg(e,t,n){n=n||(i=>e[i]1;)o=s+r>>1,n(o)?s=o:r=o;return{lo:s,hi:r}}const vs=(e,t,n,r)=>Mg(e,n,r?s=>{const o=e[s][t];return oe[s][t]Mg(e,n,r=>e[r][t]>=n);function jM(e,t,n){let r=0,s=e.length;for(;rr&&e[s-1]>n;)s--;return r>0||s{const r="_onData"+Ag(n),s=e[n];Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value(...o){const i=s.apply(this,o);return e._chartjs.listeners.forEach(a=>{typeof a[r]=="function"&&a[r](...o)}),i}})})}function fx(e,t){const n=e._chartjs;if(!n)return;const r=n.listeners,s=r.indexOf(t);s!==-1&&r.splice(s,1),!(r.length>0)&&(U2.forEach(o=>{delete e[o]}),delete e._chartjs)}function NM(e){const t=new Set(e);return t.size===e.length?e:Array.from(t)}const W2=(function(){return typeof window>"u"?function(e){return e()}:window.requestAnimationFrame})();function G2(e,t){let n=[],r=!1;return function(...s){n=s,r||(r=!0,W2.call(window,()=>{r=!1,e.apply(t,n)}))}}function PM(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}const Lg=e=>e==="start"?"left":e==="end"?"right":"center",pt=(e,t,n)=>e==="start"?t:e==="end"?n:(t+n)/2,RM=(e,t,n,r)=>e===(r?"left":"right")?n:e==="center"?(t+n)/2:t;function EM(e,t,n){const r=t.length;let s=0,o=r;if(e._sorted){const{iScale:i,vScale:a,_parsed:l}=e,u=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,d=i.axis,{min:h,max:f,minDefined:p,maxDefined:g}=i.getUserBounds();if(p){if(s=Math.min(vs(l,d,h).lo,n?r:vs(t,d,i.getPixelForValue(h)).lo),u){const m=l.slice(0,s+1).reverse().findIndex(y=>!ke(y[a.axis]));s-=Math.max(0,m)}s=_t(s,0,r-1)}if(g){let m=Math.max(vs(l,i.axis,f,!0).hi+1,n?0:vs(t,d,i.getPixelForValue(f),!0).hi+1);if(u){const y=l.slice(m-1).findIndex(x=>!ke(x[a.axis]));m+=Math.max(0,y)}o=_t(m,s,r)-s}else o=r-s}return{start:s,count:o}}function TM(e){const{xScale:t,yScale:n,_scaleRanges:r}=e,s={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=s,!0;const o=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,s),o}const wl=e=>e===0||e===1,px=(e,t,n)=>-(Math.pow(2,10*(e-=1))*Math.sin((e-t)*Ae/n)),gx=(e,t,n)=>Math.pow(2,-10*e)*Math.sin((e-t)*Ae/n)+1,Hi={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*qe)+1,easeOutSine:e=>Math.sin(e*qe),easeInOutSine:e=>-.5*(Math.cos(xe*e)-1),easeInExpo:e=>e===0?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>e===1?1:-Math.pow(2,-10*e)+1,easeInOutExpo:e=>wl(e)?e:e<.5?.5*Math.pow(2,10*(e*2-1)):.5*(-Math.pow(2,-10*(e*2-1))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>wl(e)?e:px(e,.075,.3),easeOutElastic:e=>wl(e)?e:gx(e,.075,.3),easeInOutElastic(e){return wl(e)?e:e<.5?.5*px(e*2,.1125,.45):.5+.5*gx(e*2-1,.1125,.45)},easeInBack(e){return e*e*((1.70158+1)*e-1.70158)},easeOutBack(e){return(e-=1)*e*((1.70158+1)*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-Hi.easeOutBounce(1-e),easeOutBounce(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:e=>e<.5?Hi.easeInBounce(e*2)*.5:Hi.easeOutBounce(e*2-1)*.5+.5};function Og(e){if(e&&typeof e=="object"){const t=e.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function mx(e){return Og(e)?e:new ma(e)}function Vd(e){return Og(e)?e:new ma(e).saturate(.5).darken(.1).hexString()}const AM=["x","y","borderWidth","radius","tension"],MM=["color","borderColor","backgroundColor"];function LM(e){e.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),e.set("animations",{colors:{type:"color",properties:MM},numbers:{type:"number",properties:AM}}),e.describe("animations",{_fallback:"animation"}),e.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function OM(e){e.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const yx=new Map;function DM(e,t){t=t||{};const n=e+JSON.stringify(t);let r=yx.get(n);return r||(r=new Intl.NumberFormat(e,t),yx.set(n,r)),r}function Dg(e,t,n){return DM(t,n).format(e)}const IM={values(e){return We(e)?e:""+e},numeric(e,t,n){if(e===0)return"0";const r=this.chart.options.locale;let s,o=e;if(n.length>1){const u=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(u<1e-4||u>1e15)&&(s="scientific"),o=FM(e,n)}const i=$2(Math.abs(o)),a=isNaN(i)?1:Math.max(Math.min(-1*Math.floor(i),20),0),l={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Dg(e,r,l)}};function FM(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var q2={formatters:IM};function zM(e){e.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,n)=>n.lineWidth,tickColor:(t,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:q2.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),e.route("scale.ticks","color","","color"),e.route("scale.grid","color","","borderColor"),e.route("scale.border","color","","borderColor"),e.route("scale.title","color","","color"),e.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),e.describe("scales",{_fallback:"scale"}),e.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const Ls=Object.create(null),Tf=Object.create(null);function Ui(e,t){if(!t)return e;const n=t.split(".");for(let r=0,s=n.length;rr.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(r,s)=>Vd(s.backgroundColor),this.hoverBorderColor=(r,s)=>Vd(s.borderColor),this.hoverColor=(r,s)=>Vd(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(n)}set(t,n){return Bd(this,t,n)}get(t){return Ui(this,t)}describe(t,n){return Bd(Tf,t,n)}override(t,n){return Bd(Ls,t,n)}route(t,n,r,s){const o=Ui(this,t),i=Ui(this,r),a="_"+n;Object.defineProperties(o,{[a]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],u=i[s];return he(l)?Object.assign({},u,l):ue(l,u)},set(l){this[a]=l}}})}apply(t){t.forEach(n=>n(this))}}var Fe=new VM({_scriptable:e=>!e.startsWith("on"),_indexable:e=>e!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[LM,OM,zM]);function BM(e){return!e||ke(e.size)||ke(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}function xx(e,t,n,r,s){let o=t[s];return o||(o=t[s]=e.measureText(s).width,n.push(s)),o>r&&(r=o),r}function os(e,t,n){const r=e.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((t-s)*r)/r+s}function bx(e,t){!t&&!e||(t=t||e.getContext("2d"),t.save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function Af(e,t,n,r){K2(e,t,n,r,null)}function K2(e,t,n,r,s){let o,i,a,l,u,d,h,f;const p=t.pointStyle,g=t.rotation,m=t.radius;let y=(g||0)*mM;if(p&&typeof p=="object"&&(o=p.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){e.save(),e.translate(n,r),e.rotate(y),e.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),e.restore();return}if(!(isNaN(m)||m<=0)){switch(e.beginPath(),p){default:s?e.ellipse(n,r,s/2,m,0,0,Ae):e.arc(n,r,m,0,Ae),e.closePath();break;case"triangle":d=s?s/2:m,e.moveTo(n+Math.sin(y)*d,r-Math.cos(y)*m),y+=ux,e.lineTo(n+Math.sin(y)*d,r-Math.cos(y)*m),y+=ux,e.lineTo(n+Math.sin(y)*d,r-Math.cos(y)*m),e.closePath();break;case"rectRounded":u=m*.516,l=m-u,i=Math.cos(y+ss)*l,h=Math.cos(y+ss)*(s?s/2-u:l),a=Math.sin(y+ss)*l,f=Math.sin(y+ss)*(s?s/2-u:l),e.arc(n-h,r-a,u,y-xe,y-qe),e.arc(n+f,r-i,u,y-qe,y),e.arc(n+h,r+a,u,y,y+qe),e.arc(n-f,r+i,u,y+qe,y+xe),e.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*m,d=s?s/2:l,e.rect(n-d,r-l,2*d,2*l);break}y+=ss;case"rectRot":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+f,r-i),e.lineTo(n+h,r+a),e.lineTo(n-f,r+i),e.closePath();break;case"crossRot":y+=ss;case"cross":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i);break;case"star":h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i),y+=ss,h=Math.cos(y)*(s?s/2:m),i=Math.cos(y)*m,a=Math.sin(y)*m,f=Math.sin(y)*(s?s/2:m),e.moveTo(n-h,r-a),e.lineTo(n+h,r+a),e.moveTo(n+f,r-i),e.lineTo(n-f,r+i);break;case"line":i=s?s/2:Math.cos(y)*m,a=Math.sin(y)*m,e.moveTo(n-i,r-a),e.lineTo(n+i,r+a);break;case"dash":e.moveTo(n,r),e.lineTo(n+Math.cos(y)*(s?s/2:m),r+Math.sin(y)*m);break;case!1:e.closePath();break}e.fill(),t.borderWidth>0&&e.stroke()}}function wa(e,t,n){return n=n||.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&o.strokeColor!=="";let l,u;for(e.save(),e.font=s.string,UM(e,o),l=0;l+e||0;function Ig(e,t){const n={},r=he(t),s=r?Object.keys(t):t,o=he(e)?r?i=>ue(e[i],e[t[i]]):i=>e[i]:()=>e;for(const i of s)n[i]=XM(o(i));return n}function QM(e){return Ig(e,{top:"y",right:"x",bottom:"y",left:"x"})}function Wi(e){return Ig(e,["topLeft","topRight","bottomLeft","bottomRight"])}function hn(e){const t=QM(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function yt(e,t){e=e||{},t=t||Fe.font;let n=ue(e.size,t.size);typeof n=="string"&&(n=parseInt(n,10));let r=ue(e.style,t.style);r&&!(""+r).match(KM)&&(console.warn('Invalid font style specified: "'+r+'"'),r=void 0);const s={family:ue(e.family,t.family),lineHeight:YM(ue(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:ue(e.weight,t.weight),string:""};return s.string=BM(s),s}function kl(e,t,n,r){let s,o,i;for(s=0,o=e.length;sn&&a===0?0:a+l;return{min:i(r,-Math.abs(o)),max:i(s,o)}}function Vs(e,t){return Object.assign(Object.create(e),t)}function Fg(e,t=[""],n,r,s=()=>e[0]){const o=n||e;typeof r>"u"&&(r=J2("_fallback",e));const i={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:o,_fallback:r,_getTarget:s,override:a=>Fg([a,...e],t,o,r)};return new Proxy(i,{deleteProperty(a,l){return delete a[l],delete a._keys,delete e[0][l],!0},get(a,l){return X2(a,l,()=>iL(l,t,e,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(a,l){return wx(a).includes(l)},ownKeys(a){return wx(a)},set(a,l,u){const d=a._storage||(a._storage=s());return a[l]=d[l]=u,delete a._keys,!0}})}function Do(e,t,n,r){const s={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:Y2(e,r),setContext:o=>Do(e,o,n,r),override:o=>Do(e.override(o),t,n,r)};return new Proxy(s,{deleteProperty(o,i){return delete o[i],delete e[i],!0},get(o,i,a){return X2(o,i,()=>eL(o,i,a))},getOwnPropertyDescriptor(o,i){return o._descriptors.allKeys?Reflect.has(e,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,i)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(o,i){return Reflect.has(e,i)},ownKeys(){return Reflect.ownKeys(e)},set(o,i,a){return e[i]=a,delete o[i],!0}})}function Y2(e,t={scriptable:!0,indexable:!0}){const{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:s=t.allKeys}=e;return{allKeys:s,scriptable:n,indexable:r,isScriptable:Ur(n)?n:()=>n,isIndexable:Ur(r)?r:()=>r}}const ZM=(e,t)=>e?e+Ag(t):t,zg=(e,t)=>he(t)&&e!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function X2(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t==="constructor")return e[t];const r=n();return e[t]=r,r}function eL(e,t,n){const{_proxy:r,_context:s,_subProxy:o,_descriptors:i}=e;let a=r[t];return Ur(a)&&i.isScriptable(t)&&(a=tL(t,a,e,n)),We(a)&&a.length&&(a=nL(t,a,e,i.isIndexable)),zg(t,a)&&(a=Do(a,s,o&&o[t],i)),a}function tL(e,t,n,r){const{_proxy:s,_context:o,_subProxy:i,_stack:a}=n;if(a.has(e))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+e);a.add(e);let l=t(o,i||r);return a.delete(e),zg(e,l)&&(l=Vg(s._scopes,s,e,l)),l}function nL(e,t,n,r){const{_proxy:s,_context:o,_subProxy:i,_descriptors:a}=n;if(typeof o.index<"u"&&r(e))return t[o.index%t.length];if(he(t[0])){const l=t,u=s._scopes.filter(d=>d!==l);t=[];for(const d of l){const h=Vg(u,s,e,d);t.push(Do(h,o,i&&i[e],a))}}return t}function Q2(e,t,n){return Ur(e)?e(t,n):e}const rL=(e,t)=>e===!0?t:typeof e=="string"?xa(t,e):void 0;function sL(e,t,n,r,s){for(const o of t){const i=rL(n,o);if(i){e.add(i);const a=Q2(i._fallback,n,s);if(typeof a<"u"&&a!==n&&a!==r)return a}else if(i===!1&&typeof r<"u"&&n!==r)return null}return!1}function Vg(e,t,n,r){const s=t._rootScopes,o=Q2(t._fallback,n,r),i=[...e,...s],a=new Set;a.add(r);let l=vx(a,i,n,o||n,r);return l===null||typeof o<"u"&&o!==n&&(l=vx(a,i,o,l,r),l===null)?!1:Fg(Array.from(a),[""],s,o,()=>oL(t,n,r))}function vx(e,t,n,r,s){for(;n;)n=sL(e,t,n,r,s);return n}function oL(e,t,n){const r=e._getTarget();t in r||(r[t]={});const s=r[t];return We(s)&&he(n)?n:s||{}}function iL(e,t,n,r){let s;for(const o of t)if(s=J2(ZM(o,e),n),typeof s<"u")return zg(e,s)?Vg(n,r,e,s):s}function J2(e,t){for(const n of t){if(!n)continue;const r=n[e];if(typeof r<"u")return r}}function wx(e){let t=e._keys;return t||(t=e._keys=aL(e._scopes)),t}function aL(e){const t=new Set;for(const n of e)for(const r of Object.keys(n).filter(s=>!s.startsWith("_")))t.add(r);return Array.from(t)}const lL=Number.EPSILON||1e-14,Io=(e,t)=>te==="x"?"y":"x";function cL(e,t,n,r){const s=e.skip?t:e,o=t,i=n.skip?t:n,a=Ef(o,s),l=Ef(i,o);let u=a/(a+l),d=l/(a+l);u=isNaN(u)?0:u,d=isNaN(d)?0:d;const h=r*u,f=r*d;return{previous:{x:o.x-h*(i.x-s.x),y:o.y-h*(i.y-s.y)},next:{x:o.x+f*(i.x-s.x),y:o.y+f*(i.y-s.y)}}}function uL(e,t,n){const r=e.length;let s,o,i,a,l,u=Io(e,0);for(let d=0;d!u.skip)),t.cubicInterpolationMode==="monotone")hL(e,s);else{let u=r?e[e.length-1]:e[0];for(o=0,i=e.length;oe.ownerDocument.defaultView.getComputedStyle(e,null);function gL(e,t){return Mu(e).getPropertyValue(t)}const mL=["top","right","bottom","left"];function js(e,t,n){const r={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=mL[s];r[o]=parseFloat(e[t+"-"+o+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}const yL=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function xL(e,t){const n=e.touches,r=n&&n.length?n[0]:e,{offsetX:s,offsetY:o}=r;let i=!1,a,l;if(yL(s,o,e.target))a=s,l=o;else{const u=t.getBoundingClientRect();a=r.clientX-u.left,l=r.clientY-u.top,i=!0}return{x:a,y:l,box:i}}function hs(e,t){if("native"in e)return e;const{canvas:n,currentDevicePixelRatio:r}=t,s=Mu(n),o=s.boxSizing==="border-box",i=js(s,"padding"),a=js(s,"border","width"),{x:l,y:u,box:d}=xL(e,n),h=i.left+(d&&a.left),f=i.top+(d&&a.top);let{width:p,height:g}=t;return o&&(p-=i.width+a.width,g-=i.height+a.height),{x:Math.round((l-h)/p*n.width/r),y:Math.round((u-f)/g*n.height/r)}}function bL(e,t,n){let r,s;if(t===void 0||n===void 0){const o=e&&$g(e);if(!o)t=e.clientWidth,n=e.clientHeight;else{const i=o.getBoundingClientRect(),a=Mu(o),l=js(a,"border","width"),u=js(a,"padding");t=i.width-u.width-l.width,n=i.height-u.height-l.height,r=Gc(a.maxWidth,o,"clientWidth"),s=Gc(a.maxHeight,o,"clientHeight")}}return{width:t,height:n,maxWidth:r||Wc,maxHeight:s||Wc}}const _r=e=>Math.round(e*10)/10;function vL(e,t,n,r){const s=Mu(e),o=js(s,"margin"),i=Gc(s.maxWidth,e,"clientWidth")||Wc,a=Gc(s.maxHeight,e,"clientHeight")||Wc,l=bL(e,t,n);let{width:u,height:d}=l;if(s.boxSizing==="content-box"){const f=js(s,"border","width"),p=js(s,"padding");u-=p.width+f.width,d-=p.height+f.height}return u=Math.max(0,u-o.width),d=Math.max(0,r?u/r:d-o.height),u=_r(Math.min(u,i,l.maxWidth)),d=_r(Math.min(d,a,l.maxHeight)),u&&!d&&(d=_r(u/2)),(t!==void 0||n!==void 0)&&r&&l.height&&d>l.height&&(d=l.height,u=_r(Math.floor(d*r))),{width:u,height:d}}function kx(e,t,n){const r=t||1,s=_r(e.height*r),o=_r(e.width*r);e.height=_r(e.height),e.width=_r(e.width);const i=e.canvas;return i.style&&(n||!i.style.height&&!i.style.width)&&(i.style.height=`${e.height}px`,i.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||i.height!==s||i.width!==o?(e.currentDevicePixelRatio=r,i.height=s,i.width=o,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}const wL=(function(){let e=!1;try{const t={get passive(){return e=!0,!1}};Bg()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return e})();function Sx(e,t){const n=gL(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function fs(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function kL(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r==="middle"?n<.5?e.y:t.y:r==="after"?n<1?e.y:t.y:n>0?t.y:e.y}}function SL(e,t,n,r){const s={x:e.cp2x,y:e.cp2y},o={x:t.cp1x,y:t.cp1y},i=fs(e,s,n),a=fs(s,o,n),l=fs(o,t,n),u=fs(i,a,n),d=fs(a,l,n);return fs(u,d,n)}const _L=function(e,t){return{x(n){return e+e+t-n},setWidth(n){t=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,r){return n-r},leftForLtr(n,r){return n-r}}},jL=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function vo(e,t,n){return e?_L(t,n):jL()}function eS(e,t){let n,r;(t==="ltr"||t==="rtl")&&(n=e.canvas.style,r=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=r)}function tS(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function nS(e){return e==="angle"?{between:va,compare:kM,normalize:Ut}:{between:bs,compare:(t,n)=>t-n,normalize:t=>t}}function _x({start:e,end:t,count:n,loop:r,style:s}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:s}}function CL(e,t,n){const{property:r,start:s,end:o}=n,{between:i,normalize:a}=nS(r),l=t.length;let{start:u,end:d,loop:h}=e,f,p;if(h){for(u+=l,d+=l,f=0,p=l;fl(s,b,x)&&a(s,b)!==0,w=()=>a(o,x)===0||l(o,b,x),j=()=>m||k(),N=()=>!m||w();for(let _=d,P=d;_<=h;++_)v=t[_%i],!v.skip&&(x=u(v[r]),x!==b&&(m=l(x,s,o),y===null&&j()&&(y=a(x,s)===0?_:P),y!==null&&N()&&(g.push(_x({start:y,end:_,loop:f,count:i,style:p})),y=null),P=_,b=x));return y!==null&&g.push(_x({start:y,end:h,loop:f,count:i,style:p})),g}function sS(e,t){const n=[],r=e.segments;for(let s=0;ss&&e[o%t].skip;)o--;return o%=t,{start:s,end:o}}function PL(e,t,n,r){const s=e.length,o=[];let i=t,a=e[t],l;for(l=t+1;l<=n;++l){const u=e[l%s];u.skip||u.stop?a.skip||(r=!1,o.push({start:t%s,end:(l-1)%s,loop:r}),t=i=u.stop?l:null):(i=l,a.skip&&(t=l)),a=u}return i!==null&&o.push({start:t%s,end:i%s,loop:r}),o}function RL(e,t){const n=e.points,r=e.options.spanGaps,s=n.length;if(!s)return[];const o=!!e._loop,{start:i,end:a}=NL(n,s,o,r);if(r===!0)return jx(e,[{start:i,end:a,loop:o}],n,t);const l=aa({chart:t,initial:n.initial,numSteps:i,currentStep:Math.min(r-n.start,i)}))}_refresh(){this._request||(this._running=!0,this._request=W2.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((r,s)=>{if(!r.running||!r.items.length)return;const o=r.items;let i=o.length-1,a=!1,l;for(;i>=0;--i)l=o[i],l._active?(l._total>r.duration&&(r.duration=l._total),l.tick(t),a=!0):(o[i]=o[o.length-1],o.pop());a&&(s.draw(),this._notify(s,r,t,"progress")),o.length||(r.running=!1,this._notify(s,r,t,"complete"),r.initial=!1),n+=o.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let r=n.get(t);return r||(r={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,r)),r}listen(t,n,r){this._getAnims(t).listeners[n].push(r)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((r,s)=>Math.max(r,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const r=n.items;let s=r.length-1;for(;s>=0;--s)r[s].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var Vn=new ML;const Nx="transparent",LL={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const r=mx(e||Nx),s=r.valid&&mx(t||Nx);return s&&s.valid?s.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class OL{constructor(t,n,r,s){const o=n[r];s=kl([t.to,s,o,t.from]);const i=kl([t.from,o,s]);this._active=!0,this._fn=t.fn||LL[t.type||typeof i],this._easing=Hi[t.easing]||Hi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=r,this._from=i,this._to=s,this._promises=void 0}active(){return this._active}update(t,n,r){if(this._active){this._notify(!1);const s=this._target[this._prop],o=r-this._start,i=this._duration-o;this._start=r,this._duration=Math.floor(Math.max(i,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=kl([t.to,n,s,t.from]),this._from=kl([t.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,r=this._duration,s=this._prop,o=this._from,i=this._loop,a=this._to;let l;if(this._active=o!==a&&(i||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,a,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,r)=>{t.push({res:n,rej:r})})}_notify(t){const n=t?"res":"rej",r=this._promises||[];for(let s=0;s{const o=t[s];if(!he(o))return;const i={};for(const a of n)i[a]=o[a];(We(o.properties)&&o.properties||[s]).forEach(a=>{(a===s||!r.has(a))&&r.set(a,i)})})}_animateOptions(t,n){const r=n.options,s=IL(t,r);if(!s)return[];const o=this._createAnimations(s,r);return r.$shared&&DL(t.options.$animations,r).then(()=>{t.options=r},()=>{}),o}_createAnimations(t,n){const r=this._properties,s=[],o=t.$animations||(t.$animations={}),i=Object.keys(n),a=Date.now();let l;for(l=i.length-1;l>=0;--l){const u=i[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(t,n));continue}const d=n[u];let h=o[u];const f=r.get(u);if(h)if(f&&h.active()){h.update(f,d,a);continue}else h.cancel();if(!f||!f.duration){t[u]=d;continue}o[u]=h=new OL(f,t,u,d),s.push(h)}return s}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const r=this._createAnimations(t,n);if(r.length)return Vn.add(this._chart,r),!0}}function DL(e,t){const n=[],r=Object.keys(t);for(let s=0;s0||!n&&o<0)return s.index}return null}function Tx(e,t){const{chart:n,_cachedMeta:r}=e,s=n._stacks||(n._stacks={}),{iScale:o,vScale:i,index:a}=r,l=o.axis,u=i.axis,d=BL(o,i,r),h=t.length;let f;for(let p=0;pn[r].axis===t).shift()}function UL(e,t){return Vs(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function WL(e,t,n){return Vs(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function di(e,t){const n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t=t||e._parsed;for(const s of t){const o=s._stacks;if(!o||o[r]===void 0||o[r][n]===void 0)return;delete o[r][n],o[r]._visualValues!==void 0&&o[r]._visualValues[n]!==void 0&&delete o[r]._visualValues[n]}}}const Hd=e=>e==="reset"||e==="none",Ax=(e,t)=>t?e:Object.assign({},e),GL=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:aS(n,!0),values:null};class wo{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Bd(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&di(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,r=this.getDataset(),s=(h,f,p,g)=>h==="x"?f:h==="r"?g:p,o=n.xAxisID=ue(r.xAxisID,$d(t,"x")),i=n.yAxisID=ue(r.yAxisID,$d(t,"y")),a=n.rAxisID=ue(r.rAxisID,$d(t,"r")),l=n.indexAxis,u=n.iAxisID=s(l,o,i,a),d=n.vAxisID=s(l,i,o,a);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(i),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(d)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&fx(this._data,this),t._stacked&&di(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),r=this._data;if(he(n)){const s=this._cachedMeta;this._data=VL(n,s)}else if(r!==n){if(r){fx(r,this);const s=this._cachedMeta;di(s),s._parsed=[]}n&&Object.isExtensible(n)&&CM(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,r=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=Bd(n.vScale,n),n.stack!==r.stack&&(s=!0,di(n),n.stack=r.stack),this._resyncElements(t),(s||o!==n._stacked)&&(Tx(this,n._parsed),n._stacked=Bd(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),r=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(r,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:r,_data:s}=this,{iScale:o,_stacked:i}=r,a=o.axis;let l=t===0&&n===s.length?!0:r._sorted,u=t>0&&r._parsed[t-1],d,h,f;if(this._parsing===!1)r._parsed=s,r._sorted=!0,f=s;else{We(s[t])?f=this.parseArrayData(r,s,t,n):he(s[t])?f=this.parseObjectData(r,s,t,n):f=this.parsePrimitiveData(r,s,t,n);const p=()=>h[a]===null||u&&h[a]m||h=0;--f)if(!g()){this.updateRangeFromParsed(u,t,p,l);break}}return u}getAllParsedValues(t){const n=this._cachedMeta._parsed,r=[];let s,o,i;for(s=0,o=n.length;s=0&&tthis.getContext(r,s,n),m=u.resolveNamedOptions(f,p,g,h);return m.$shared&&(m.$shared=l,o[i]=Object.freeze(Ax(m,l))),m}_resolveAnimations(t,n,r){const s=this.chart,o=this._cachedDataOpts,i=`animation-${n}`,a=o[i];if(a)return a;let l;if(s.options.animation!==!1){const d=this.chart.config,h=d.datasetAnimationScopeKeys(this._type,n),f=d.getOptionScopes(this.getDataset(),h);l=d.createResolver(f,this.getContext(t,r,n))}const u=new iS(s,l&&l.animations);return l&&l._cacheable&&(o[i]=Object.freeze(u)),u}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||Hd(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const r=this.resolveDataElementOptions(t,n),s=this._sharedOptions,o=this.getSharedOptions(r),i=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,r),{sharedOptions:o,includeOptions:i}}updateElement(t,n,r,s){Hd(s)?Object.assign(t,r):this._resolveAnimations(n,s).update(t,r)}updateSharedOptions(t,n,r){t&&!Hd(n)&&this._resolveAnimations(void 0,n).update(t,r)}_setStyle(t,n,r,s){t.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,r,s).update(t,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(t,n,r){this._setStyle(t,r,"active",!1)}setHoverStyle(t,n,r){this._setStyle(t,r,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,r=this._cachedMeta.data;for(const[a,l,u]of this._syncList)this[a](l,u);this._syncList=[];const s=r.length,o=n.length,i=Math.min(o,s);i&&this.parse(0,i),o>s?this._insertElements(s,o-s,t):o{for(u.length+=n,a=u.length-1;a>=i;a--)u[a]=u[a-n]};for(l(o),a=t;ava(b,a,l,!0)?1:Math.max(k,k*n,w,w*n),g=(b,k,w)=>va(b,a,l,!0)?-1:Math.min(k,k*n,w,w*n),m=p(0,u,h),y=p(qe,d,f),x=g(ye,u,h),v=g(ye+qe,d,f);r=(m-x)/2,s=(y-v)/2,o=-(m+x)/2,i=-(y+v)/2}return{ratioX:r,ratioY:s,offsetX:o,offsetY:i}}class _i extends wo{constructor(t,n){super(t,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,n){const r=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=r;else{let o=l=>+r[l];if(he(r[t])){const{key:l="value"}=this._parsing;o=u=>+xa(r[u],l)}let i,a;for(i=t,a=t+n;i0&&!isNaN(t)?Ae*(Math.abs(t)/n):0}getLabelAndValue(t){const n=this._cachedMeta,r=this.chart,s=r.data.labels||[],o=Dg(n._parsed[t],r.options.locale);return{label:s[t]||"",value:o}}getMaxBorderWidth(t){let n=0;const r=this.chart;let s,o,i,a,l;if(!t){for(s=0,o=r.data.datasets.length;st!=="spacing",_indexable:t=>t!=="spacing"&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")}),Z(_i,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const n=t.data,{labels:{pointStyle:r,textAlign:s,color:o,useBorderRadius:i,borderRadius:a}}=t.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,u)=>{const h=t.getDatasetMeta(0).controller.getStyle(u);return{text:l,fillStyle:h.backgroundColor,fontColor:o,hidden:!t.getDataVisibility(u),lineDash:h.borderDash,lineDashOffset:h.borderDashOffset,lineJoin:h.borderJoinStyle,lineWidth:h.borderWidth,strokeStyle:h.borderColor,textAlign:s,pointStyle:r,borderRadius:i&&(a||h.borderRadius),index:u}}):[]}},onClick(t,n,r){r.chart.toggleDataVisibility(n.index),r.chart.update()}}}});class Zl extends wo{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const n=this._cachedMeta,{dataset:r,data:s=[],_dataset:o}=n,i=this.chart._animationsDisabled;let{start:a,count:l}=EM(n,s,i);this._drawStart=a,this._drawCount=l,TM(n)&&(a=0,l=s.length),r._chart=this.chart,r._datasetIndex=this.index,r._decimated=!!o._decimated,r.points=s;const u=this.resolveDatasetElementOptions(t);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(r,void 0,{animated:!i,options:u},t),this.updateElements(s,a,l,t)}updateElements(t,n,r,s){const o=s==="reset",{iScale:i,vScale:a,_stacked:l,_dataset:u}=this._cachedMeta,{sharedOptions:d,includeOptions:h}=this._getSharedOptions(n,s),f=i.axis,p=a.axis,{spanGaps:g,segment:m}=this.options,y=ba(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||s==="none",v=n+r,b=t.length;let k=n>0&&this.getParsed(n-1);for(let w=0;w=v){N.skip=!0;continue}const _=this.getParsed(w),P=ke(_[p]),A=N[f]=i.getPixelForValue(_[f],w),O=N[p]=o||P?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,_,l):_[p],w);N.skip=isNaN(A)||isNaN(O)||P,N.stop=w>0&&Math.abs(_[f]-k[f])>y,m&&(N.parsed=_,N.raw=u.data[w]),h&&(N.options=d||this.resolveDataElementOptions(w,j.active?"active":s)),x||this.updateElement(j,w,N,s),k=_}}getMaxOverflow(){const t=this._cachedMeta,n=t.dataset,r=n.options&&n.options.borderWidth||0,s=t.data||[];if(!s.length)return r;const o=s[0].size(this.resolveDataElementOptions(0)),i=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(r,o,i)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Z(Zl,"id","line"),Z(Zl,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Z(Zl,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class Lf extends _i{}Z(Lf,"id","pie"),Z(Lf,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});function is(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Hg{constructor(t){Z(this,"options");this.options=t||{}}static override(t){Object.assign(Hg.prototype,t)}init(){}formats(){return is()}parse(){return is()}format(){return is()}add(){return is()}diff(){return is()}startOf(){return is()}endOf(){return is()}}var KL={_date:Hg};function YL(e,t,n,r){const{controller:s,data:o,_sorted:i}=e,a=s._cachedMeta.iScale,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(a&&t===a.axis&&t!=="r"&&i&&o.length){const u=a._reversePixels?_M:vs;if(r){if(s._sharedOptions){const d=o[0],h=typeof d.getRange=="function"&&d.getRange(t);if(h){const f=u(o,t,n-h),p=u(o,t,n+h);return{lo:f.lo,hi:p.hi}}}}else{const d=u(o,t,n);if(l){const{vScale:h}=s._cachedMeta,{_parsed:f}=e,p=f.slice(0,d.lo+1).reverse().findIndex(m=>!ke(m[h.axis]));d.lo-=Math.max(0,p);const g=f.slice(d.hi).findIndex(m=>!ke(m[h.axis]));d.hi+=Math.max(0,g)}return d}}return{lo:0,hi:o.length-1}}function Mu(e,t,n,r,s){const o=e.getSortedVisibleDatasetMetas(),i=n[t];for(let a=0,l=o.length;a{l[i]&&l[i](t[n],s)&&(o.push({element:l,datasetIndex:u,index:d}),a=a||l.inRange(t.x,t.y,s))}),r&&!a?[]:o}var ZL={modes:{index(e,t,n,r){const s=hs(t,e),o=n.axis||"x",i=n.includeInvisible||!1,a=n.intersect?Ud(e,s,o,r,i):Wd(e,s,o,!1,r,i),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach(u=>{const d=a[0].index,h=u.data[d];h&&!h.skip&&l.push({element:h,datasetIndex:u.index,index:d})}),l):[]},dataset(e,t,n,r){const s=hs(t,e),o=n.axis||"xy",i=n.includeInvisible||!1;let a=n.intersect?Ud(e,s,o,r,i):Wd(e,s,o,!1,r,i);if(a.length>0){const l=a[0].datasetIndex,u=e.getDatasetMeta(l).data;a=[];for(let d=0;dn.pos===t)}function Lx(e,t){return e.filter(n=>lS.indexOf(n.pos)===-1&&n.box.axis===t)}function fi(e,t){return e.sort((n,r)=>{const s=t?r:n,o=t?n:r;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function eO(e){const t=[];let n,r,s,o,i,a;for(n=0,r=(e||[]).length;nu.box.fullSize),!0),r=fi(hi(t,"left"),!0),s=fi(hi(t,"right")),o=fi(hi(t,"top"),!0),i=fi(hi(t,"bottom")),a=Lx(t,"x"),l=Lx(t,"y");return{fullSize:n,leftAndTop:r.concat(o),rightAndBottom:s.concat(l).concat(i).concat(a),chartArea:hi(t,"chartArea"),vertical:r.concat(s).concat(l),horizontal:o.concat(i).concat(a)}}function Ox(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function cS(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function sO(e,t,n,r){const{pos:s,box:o}=n,i=e.maxPadding;if(!he(s)){n.size&&(e[s]-=n.size);const h=r[n.stack]||{size:0,count:1};h.size=Math.max(h.size,n.horizontal?o.height:o.width),n.size=h.size/h.count,e[s]+=n.size}o.getPadding&&cS(i,o.getPadding());const a=Math.max(0,t.outerWidth-Ox(i,e,"left","right")),l=Math.max(0,t.outerHeight-Ox(i,e,"top","bottom")),u=a!==e.w,d=l!==e.h;return e.w=a,e.h=l,n.horizontal?{same:u,other:d}:{same:d,other:u}}function oO(e){const t=e.maxPadding;function n(r){const s=Math.max(t[r]-e[r],0);return e[r]+=s,s}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function iO(e,t){const n=t.maxPadding;function r(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(i=>{o[i]=Math.max(t[i],n[i])}),o}return r(e?["left","right"]:["top","bottom"])}function ji(e,t,n,r){const s=[];let o,i,a,l,u,d;for(o=0,i=e.length,u=0;o{typeof m.beforeLayout=="function"&&m.beforeLayout()});const d=l.reduce((m,y)=>y.box.options&&y.box.options.display===!1?m:m+1,0)||1,h=Object.freeze({outerWidth:t,outerHeight:n,padding:s,availableWidth:o,availableHeight:i,vBoxMaxWidth:o/2/d,hBoxMaxHeight:i/2}),f=Object.assign({},s);cS(f,hn(r));const p=Object.assign({maxPadding:f,w:o,h:i,x:s.left,y:s.top},s),g=nO(l.concat(u),h);ji(a.fullSize,p,h,g),ji(l,p,h,g),ji(u,p,h,g)&&ji(l,p,h,g),oO(p),Dx(a.leftAndTop,p,h,g),p.x+=p.w,p.y+=p.h,Dx(a.rightAndBottom,p,h,g),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},me(a.chartArea,m=>{const y=m.box;Object.assign(y,e.chartArea),y.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class uS{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,r){}removeEventListener(t,n,r){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,r,s){return n=Math.max(0,n||t.width),r=r||t.height,{width:n,height:Math.max(0,s?Math.floor(n/s):r)}}isAttached(t){return!0}updateConfig(t){}}class aO extends uS{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const ec="$chartjs",lO={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ix=e=>e===null||e==="";function cO(e,t){const n=e.style,r=e.getAttribute("height"),s=e.getAttribute("width");if(e[ec]={initial:{height:r,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Ix(s)){const o=Sx(e,"width");o!==void 0&&(e.width=o)}if(Ix(r))if(e.style.height==="")e.height=e.width/(t||2);else{const o=Sx(e,"height");o!==void 0&&(e.height=o)}return e}const dS=wL?{passive:!0}:!1;function uO(e,t,n){e&&e.addEventListener(t,n,dS)}function dO(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,dS)}function hO(e,t){const n=lO[e.type]||e.type,{x:r,y:s}=hs(e,t);return{type:n,chart:t,native:e,x:r!==void 0?r:null,y:s!==void 0?s:null}}function Gc(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function fO(e,t,n){const r=e.canvas,s=new MutationObserver(o=>{let i=!1;for(const a of o)i=i||Gc(a.addedNodes,r),i=i&&!Gc(a.removedNodes,r);i&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function pO(e,t,n){const r=e.canvas,s=new MutationObserver(o=>{let i=!1;for(const a of o)i=i||Gc(a.removedNodes,r),i=i&&!Gc(a.addedNodes,r);i&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const Sa=new Map;let Fx=0;function hS(){const e=window.devicePixelRatio;e!==Fx&&(Fx=e,Sa.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function gO(e,t){Sa.size||window.addEventListener("resize",hS),Sa.set(e,t)}function mO(e){Sa.delete(e),Sa.size||window.removeEventListener("resize",hS)}function yO(e,t,n){const r=e.canvas,s=r&&$g(r);if(!s)return;const o=G2((a,l)=>{const u=s.clientWidth;n(a,l),u{const l=a[0],u=l.contentRect.width,d=l.contentRect.height;u===0&&d===0||o(u,d)});return i.observe(s),gO(e,o),i}function Gd(e,t,n){n&&n.disconnect(),t==="resize"&&mO(e)}function xO(e,t,n){const r=e.canvas,s=G2(o=>{e.ctx!==null&&n(hO(o,e))},e);return uO(r,t,s),s}class bO extends uS{acquireContext(t,n){const r=t&&t.getContext&&t.getContext("2d");return r&&r.canvas===t?(cO(t,n),r):null}releaseContext(t){const n=t.canvas;if(!n[ec])return!1;const r=n[ec].initial;["height","width"].forEach(o=>{const i=r[o];ke(i)?n.removeAttribute(o):n.setAttribute(o,i)});const s=r.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[ec],!0}addEventListener(t,n,r){this.removeEventListener(t,n);const s=t.$proxies||(t.$proxies={}),i={attach:fO,detach:pO,resize:yO}[n]||xO;s[n]=i(t,n,r)}removeEventListener(t,n){const r=t.$proxies||(t.$proxies={}),s=r[n];if(!s)return;({attach:Gd,detach:Gd,resize:Gd}[n]||dO)(t,n,s),r[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,r,s){return vL(t,n,r,s)}isAttached(t){const n=t&&$g(t);return!!(n&&n.isConnected)}}function vO(e){return!Bg()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?aO:bO}var Ol;let Zr=(Ol=class{constructor(){Z(this,"x");Z(this,"y");Z(this,"active",!1);Z(this,"options");Z(this,"$animations")}tooltipPosition(t){const{x:n,y:r}=this.getProps(["x","y"],t);return{x:n,y:r}}hasValue(){return ba(this.x)&&ba(this.y)}getProps(t,n){const r=this.$animations;if(!n||!r)return this;const s={};return t.forEach(o=>{s[o]=r[o]&&r[o].active()?r[o]._to:this[o]}),s}},Z(Ol,"defaults",{}),Z(Ol,"defaultRoutes"),Ol);function wO(e,t){const n=e.options.ticks,r=kO(e),s=Math.min(n.maxTicksLimit||r,r),o=n.major.enabled?_O(t):[],i=o.length,a=o[0],l=o[i-1],u=[];if(i>s)return jO(t,u,o,i/s),u;const d=SO(o,t,s);if(i>0){let h,f;const p=i>1?Math.round((l-a)/(i-1)):null;for(Cl(t,u,d,ke(p)?0:a-p,a),h=0,f=i-1;hs)return l}return Math.max(s,1)}function _O(e){const t=[];let n,r;for(n=0,r=e.length;ne==="left"?"right":e==="right"?"left":e,zx=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,Vx=(e,t)=>Math.min(t||e,e);function Bx(e,t){const n=[],r=e.length/t,s=e.length;let o=0;for(;oi+a)))return l}function RO(e,t){me(e,n=>{const r=n.gc,s=r.length/2;let o;if(s>t){for(o=0;or?r:n,r=s&&n>r?n:r,{min:Pn(n,Pn(r,n)),max:Pn(r,Pn(n,r))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){je(this.options.beforeUpdate,[this])}update(t,n,r){const{beginAtZero:s,grace:o,ticks:i}=this.options,a=i.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=r=Object.assign({left:0,right:0,top:0,bottom:0},r),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+r.left+r.right:this.height+r.top+r.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=JM(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=o||r<=1||!this.isHorizontal()){this.labelRotation=s;return}const d=this._getLabelSizes(),h=d.widest.width,f=d.highest.height,p=St(this.chart.width-h,0,this.maxWidth);a=t.offset?this.maxWidth/r:p/(r-1),h+6>a&&(a=p/(r-(t.offset?.5:1)),l=this.maxHeight-pi(t.grid)-n.padding-$x(t.title,this.chart.options.font),u=Math.sqrt(h*h+f*f),i=wM(Math.min(Math.asin(St((d.highest.height+6)/a,-1,1)),Math.asin(St(l/u,-1,1))-Math.asin(St(f/u,-1,1)))),i=Math.max(s,Math.min(o,i))),this.labelRotation=i}afterCalculateLabelRotation(){je(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){je(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:r,title:s,grid:o}}=this,i=this._isVisible(),a=this.isHorizontal();if(i){const l=$x(s,n.options.font);if(a?(t.width=this.maxWidth,t.height=pi(o)+l):(t.height=this.maxHeight,t.width=pi(o)+l),r.display&&this.ticks.length){const{first:u,last:d,widest:h,highest:f}=this._getLabelSizes(),p=r.padding*2,g=Yn(this.labelRotation),m=Math.cos(g),y=Math.sin(g);if(a){const x=r.mirror?0:y*h.width+m*f.height;t.height=Math.min(this.maxHeight,t.height+x+p)}else{const x=r.mirror?0:m*h.width+y*f.height;t.width=Math.min(this.maxWidth,t.width+x+p)}this._calculatePadding(u,d,y,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,r,s){const{ticks:{align:o,padding:i},position:a}=this.options,l=this.labelRotation!==0,u=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const d=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?u?(f=s*t.width,p=r*n.height):(f=r*t.height,p=s*n.width):o==="start"?p=n.width:o==="end"?f=t.width:o!=="inner"&&(f=t.width/2,p=n.width/2),this.paddingLeft=Math.max((f-d+i)*this.width/(this.width-d),0),this.paddingRight=Math.max((p-h+i)*this.width/(this.width-h),0)}else{let d=n.height/2,h=t.height/2;o==="start"?(d=0,h=t.height):o==="end"&&(d=n.height,h=0),this.paddingTop=d+i,this.paddingBottom=h+i}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){je(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,r;for(n=0,r=t.length;n({width:i[P]||0,height:a[P]||0});return{first:_(0),last:_(n-1),widest:_(j),highest:_(N),widths:i,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return SM(this._alignToPixels?os(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&ta*s?a/r:l/s:l*s0}_computeGridLineItems(t){const n=this.axis,r=this.chart,s=this.options,{grid:o,position:i,border:a}=s,l=o.offset,u=this.isHorizontal(),h=this.ticks.length+(l?1:0),f=pi(o),p=[],g=a.setContext(this.getContext()),m=g.display?g.width:0,y=m/2,x=function(M){return os(r,M,m)};let v,b,k,w,j,N,_,P,A,O,F,D;if(i==="top")v=x(this.bottom),N=this.bottom-f,P=v-y,O=x(t.top)+y,D=t.bottom;else if(i==="bottom")v=x(this.top),O=t.top,D=x(t.bottom)-y,N=v+y,P=this.top+f;else if(i==="left")v=x(this.right),j=this.right-f,_=v-y,A=x(t.left)+y,F=t.right;else if(i==="right")v=x(this.left),A=t.left,F=x(t.right)-y,j=v+y,_=this.left+f;else if(n==="x"){if(i==="center")v=x((t.top+t.bottom)/2+.5);else if(he(i)){const M=Object.keys(i)[0],H=i[M];v=x(this.chart.scales[M].getPixelForValue(H))}O=t.top,D=t.bottom,N=v+y,P=N+f}else if(n==="y"){if(i==="center")v=x((t.left+t.right)/2);else if(he(i)){const M=Object.keys(i)[0],H=i[M];v=x(this.chart.scales[M].getPixelForValue(H))}j=v-y,_=j-f,A=t.left,F=t.right}const U=ue(s.ticks.maxTicksLimit,h),W=Math.max(1,Math.ceil(h/U));for(b=0;b0&&(ne-=$/2);break}I={left:ne,top:G,width:$+K.width,height:T+K.height,color:W.backdropColor}}y.push({label:k,font:P,textOffset:F,options:{rotation:m,color:H,strokeColor:C,strokeWidth:L,textAlign:E,textBaseline:D,translation:[w,j],backdrop:I}})}return y}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-Yn(this.labelRotation))return t==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:r,mirror:s,padding:o}}=this.options,i=this._getLabelSizes(),a=t+o,l=i.widest.width;let u,d;return n==="left"?s?(d=this.right+o,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d+=l)):(d=this.right-a,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d=this.left)):n==="right"?s?(d=this.left+o,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d-=l)):(d=this.left+a,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d=this.right)):u="right",{textAlign:u,x:d}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:r,top:s,width:o,height:i}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(r,s,o,i),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===t);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const n=this.options.grid,r=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,i;const a=(l,u,d)=>{!d.width||!d.color||(r.save(),r.lineWidth=d.width,r.strokeStyle=d.color,r.setLineDash(d.borderDash||[]),r.lineDashOffset=d.borderDashOffset,r.beginPath(),r.moveTo(l.x,l.y),r.lineTo(u.x,u.y),r.stroke(),r.restore())};if(n.display)for(o=0,i=s.length;o{this.draw(o)}}]:[{z:r,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),r=this.axis+"AxisID",s=[];let o,i;for(o=0,i=n.length;o{const r=n.split("."),s=r.pop(),o=[e].concat(r).join("."),i=t[n].split("."),a=i.pop(),l=i.join(".");Fe.route(o,s,l,a)})}function DO(e){return"id"in e&&"defaults"in e}class IO{constructor(){this.controllers=new Nl(wo,"datasets",!0),this.elements=new Nl(Zr,"elements"),this.plugins=new Nl(Object,"plugins"),this.scales=new Nl(Yo,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,r){[...n].forEach(s=>{const o=r||this._getRegistryForType(s);r||o.isForType(s)||o===this.plugins&&s.id?this._exec(t,o,s):me(s,i=>{const a=r||this._getRegistryForType(i);this._exec(t,a,i)})})}_exec(t,n,r){const s=Ag(t);je(r["before"+s],[],r),n[t](r),je(r["after"+s],[],r)}_getRegistryForType(t){for(let n=0;no.filter(a=>!i.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,r),t,"stop"),this._notify(s(r,n),t,"start")}}function zO(e){const t={},n=[],r=Object.keys(An.plugins.items);for(let o=0;o1&&Hx(e[0].toLowerCase());if(r)return r}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Ux(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function GO(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(r=>r.xAxisID===e||r.yAxisID===e);if(n.length)return Ux(e,"x",n[0])||Ux(e,"y",n[0])}return{}}function qO(e,t){const n=Ls[e.type]||{scales:{}},r=t.scales||{},s=Of(e.type,t),o=Object.create(null);return Object.keys(r).forEach(i=>{const a=r[i];if(!he(a))return console.error(`Invalid scale configuration for scale: ${i}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${i}`);const l=Df(i,a,GO(i,e),Fe.scales[a.type]),u=UO(l,s),d=n.scales||{};o[i]=Bi(Object.create(null),[{axis:l},a,d[l],d[u]])}),e.data.datasets.forEach(i=>{const a=i.type||e.type,l=i.indexAxis||Of(a,t),d=(Ls[a]||{}).scales||{};Object.keys(d).forEach(h=>{const f=HO(h,l),p=i[f+"AxisID"]||f;o[p]=o[p]||Object.create(null),Bi(o[p],[{axis:f},r[p],d[h]])})}),Object.keys(o).forEach(i=>{const a=o[i];Bi(a,[Fe.scales[a.type],Fe.scale])}),o}function fS(e){const t=e.options||(e.options={});t.plugins=ue(t.plugins,{}),t.scales=qO(e,t)}function pS(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function KO(e){return e=e||{},e.data=pS(e.data),fS(e),e}const Wx=new Map,gS=new Set;function Pl(e,t){let n=Wx.get(e);return n||(n=t(),Wx.set(e,n),gS.add(n)),n}const gi=(e,t,n)=>{const r=xa(t,n);r!==void 0&&e.add(r)};class YO{constructor(t){this._config=KO(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=pS(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fS(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Pl(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Pl(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Pl(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,r=this.type;return Pl(`${r}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const r=this._scopeCache;let s=r.get(t);return(!s||n)&&(s=new Map,r.set(t,s)),s}getOptionScopes(t,n,r){const{options:s,type:o}=this,i=this._cachedScopes(t,r),a=i.get(n);if(a)return a;const l=new Set;n.forEach(d=>{t&&(l.add(t),d.forEach(h=>gi(l,t,h))),d.forEach(h=>gi(l,s,h)),d.forEach(h=>gi(l,Ls[o]||{},h)),d.forEach(h=>gi(l,Fe,h)),d.forEach(h=>gi(l,Tf,h))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),gS.has(n)&&i.set(n,u),u}chartOptionScopes(){const{options:t,type:n}=this;return[t,Ls[n]||{},Fe.datasets[n]||{},{type:n},Fe,Tf]}resolveNamedOptions(t,n,r,s=[""]){const o={$shared:!0},{resolver:i,subPrefixes:a}=Gx(this._resolverCache,t,s);let l=i;if(QO(i,n)){o.$shared=!1,r=Ur(r)?r():r;const u=this.createResolver(t,r,a);l=Do(i,r,u)}for(const u of n)o[u]=l[u];return o}createResolver(t,n,r=[""],s){const{resolver:o}=Gx(this._resolverCache,t,r);return he(n)?Do(o,n,void 0,s):o}}function Gx(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));const s=n.join();let o=r.get(s);return o||(o={resolver:Fg(t,n),subPrefixes:n.filter(a=>!a.toLowerCase().includes("hover"))},r.set(s,o)),o}const XO=e=>he(e)&&Object.getOwnPropertyNames(e).some(t=>Ur(e[t]));function QO(e,t){const{isScriptable:n,isIndexable:r}=Y2(e);for(const s of t){const o=n(s),i=r(s),a=(i||o)&&e[s];if(o&&(Ur(a)||XO(a))||i&&We(a))return!0}return!1}var JO="4.5.1";const ZO=["top","bottom","left","right","chartArea"];function qx(e,t){return e==="top"||e==="bottom"||ZO.indexOf(e)===-1&&t==="x"}function Kx(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function Yx(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),je(n&&n.onComplete,[e],t)}function eD(e){const t=e.chart,n=t.options.animation;je(n&&n.onProgress,[e],t)}function mS(e){return Bg()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const tc={},Xx=e=>{const t=mS(e);return Object.values(tc).filter(n=>n.canvas===t).pop()};function tD(e,t,n){const r=Object.keys(e);for(const s of r){const o=+s;if(o>=t){const i=e[s];delete e[s],(n>0||o>t)&&(e[o+n]=i)}}}function nD(e,t,n,r){return!n||e.type==="mouseout"?null:r?t:e}var hr;let Bs=(hr=class{static register(...t){An.add(...t),Qx()}static unregister(...t){An.remove(...t),Qx()}constructor(t,n){const r=this.config=new YO(n),s=mS(t),o=Xx(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const i=r.createResolver(r.chartOptionScopes(),this.getContext());this.platform=new(r.platform||vO(s)),this.platform.updateConfig(r);const a=this.platform.acquireContext(s,i.aspectRatio),l=a&&a.canvas,u=l&&l.height,d=l&&l.width;if(this.id=lM(),this.ctx=a,this.canvas=l,this.width=d,this.height=u,this._options=i,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new FO,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=PM(h=>this.update(h),i.resizeDelay||0),this._dataChanges=[],tc[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Vn.listen(this,"complete",Yx),Vn.listen(this,"progress",eD),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:r,height:s,_aspectRatio:o}=this;return ke(t)?n&&o?o:s?r/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return An}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():kx(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return bx(this.canvas,this.ctx),this}stop(){return Vn.stop(this),this}resize(t,n){Vn.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const r=this.options,s=this.canvas,o=r.maintainAspectRatio&&this.aspectRatio,i=this.platform.getMaximumSize(s,t,n,o),a=r.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=i.width,this.height=i.height,this._aspectRatio=this.aspectRatio,kx(this,a,!0)&&(this.notifyPlugins("resize",{size:i}),je(r.onResize,[this,i],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};me(n,(r,s)=>{r.id=s})}buildOrUpdateScales(){const t=this.options,n=t.scales,r=this.scales,s=Object.keys(r).reduce((i,a)=>(i[a]=!1,i),{});let o=[];n&&(o=o.concat(Object.keys(n).map(i=>{const a=n[i],l=Df(i,a),u=l==="r",d=l==="x";return{options:a,dposition:u?"chartArea":d?"bottom":"left",dtype:u?"radialLinear":d?"category":"linear"}}))),me(o,i=>{const a=i.options,l=a.id,u=Df(l,a),d=ue(a.type,i.dtype);(a.position===void 0||qx(a.position,u)!==qx(i.dposition))&&(a.position=i.dposition),s[l]=!0;let h=null;if(l in r&&r[l].type===d)h=r[l];else{const f=An.getScale(d);h=new f({id:l,type:d,ctx:this.ctx,chart:this}),r[h.id]=h}h.init(a,t)}),me(s,(i,a)=>{i||delete r[a]}),me(r,i=>{ln.configure(this,i,i.options),ln.addBox(this,i)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,r=t.length;if(t.sort((s,o)=>s.index-o.index),r>n){for(let s=n;sn.length&&delete this._stacks,t.forEach((r,s)=>{n.filter(o=>o===r._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let r,s;for(this._removeUnreferencedMetasets(),r=0,s=n.length;r{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const r=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!r.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let i=0;for(let u=0,d=this.data.datasets.length;u{u.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Kx("z","_idx"));const{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){me(this.scales,t=>{ln.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),r=new Set(t.events);(!cx(n,r)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:r,start:s,count:o}of n){const i=r==="_removeElements"?-o:o;tD(t,s,i)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,r=o=>new Set(t.filter(i=>i[0]===o).map((i,a)=>a+","+i.splice(1).join(","))),s=r(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ln.update(this,this.width,this.height,t);const n=this.chartArea,r=n.width<=0||n.height<=0;this._layers=[],me(this.boxes,s=>{r&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,r=this.data.datasets.length;n=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,r={meta:t,index:t.index,cancelable:!0},s=oS(this,t);this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(s&&Eu(n,s),t.controller.draw(),s&&Tu(n),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return wa(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,r,s){const o=ZL.modes[n];return typeof o=="function"?o(this,t,r,s):[]}getDatasetMeta(t){const n=this.data.datasets[t],r=this._metasets;let s=r.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},r.push(s)),s}getContext(){return this.$context||(this.$context=Vs(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const r=this.getDatasetMeta(t);return typeof r.hidden=="boolean"?!r.hidden:!n.hidden}setDatasetVisibility(t,n){const r=this.getDatasetMeta(t);r.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,r){const s=r?"show":"hide",o=this.getDatasetMeta(t),i=o.controller._resolveAnimations(void 0,s);Hc(n)?(o.data[n].hidden=!r,this.update()):(this.setDatasetVisibility(t,r),i.update(o,{visible:r}),this.update(a=>a.datasetIndex===t?s:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),Vn.remove(this),t=0,n=this.data.datasets.length;t{n.addEventListener(this,o,i),t[o]=i},s=(o,i,a)=>{o.offsetX=i,o.offsetY=a,this._eventHandler(o)};me(this.options.events,o=>r(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,r=(l,u)=>{n.addEventListener(this,l,u),t[l]=u},s=(l,u)=>{t[l]&&(n.removeEventListener(this,l,u),delete t[l])},o=(l,u)=>{this.canvas&&this.resize(l,u)};let i;const a=()=>{s("attach",a),this.attached=!0,this.resize(),r("resize",o),r("detach",i)};i=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),r("attach",a)},n.isAttached(this.canvas)?a():i()}unbindEvents(){me(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},me(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,r){const s=r?"set":"remove";let o,i,a,l;for(n==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),a=0,l=t.length;a{const a=this.getDatasetMeta(o);if(!a)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:a.data[i],index:i}});!Bc(r,n)&&(this._active=r,this._lastEvent=null,this._updateHoverStyles(r,n))}notifyPlugins(t,n,r){return this._plugins.notify(this,t,n,r)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,r){const s=this.options.hover,o=(l,u)=>l.filter(d=>!u.some(h=>d.datasetIndex===h.datasetIndex&&d.index===h.index)),i=o(n,t),a=r?t:o(t,n);i.length&&this.updateHoverStyle(i,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,n){const r={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},s=i=>(i.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",r,s)===!1)return;const o=this._handleEvent(t,n,r.inChartArea);return r.cancelable=!1,this.notifyPlugins("afterEvent",r,s),(o||r.changed)&&this.render(),this}_handleEvent(t,n,r){const{_active:s=[],options:o}=this,i=n,a=this._getActiveElements(t,s,r,i),l=pM(t),u=nD(t,this._lastEvent,r,l);r&&(this._lastEvent=null,je(o.onHover,[t,a,this],this),l&&je(o.onClick,[t,a,this],this));const d=!Bc(a,s);return(d||n)&&(this._active=a,this._updateHoverStyles(a,s,n)),this._lastEvent=u,d}_getActiveElements(t,n,r,s){if(t.type==="mouseout")return[];if(!r)return n;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,s)}},Z(hr,"defaults",Fe),Z(hr,"instances",tc),Z(hr,"overrides",Ls),Z(hr,"registry",An),Z(hr,"version",JO),Z(hr,"getChart",Xx),hr);function Qx(){return me(Bs.instances,e=>e._plugins.invalidate())}function rD(e,t,n){const{startAngle:r,x:s,y:o,outerRadius:i,innerRadius:a,options:l}=t,{borderWidth:u,borderJoinStyle:d}=l,h=Math.min(u/i,Ut(r-n));if(e.beginPath(),e.arc(s,o,i-u/2,r+h/2,n-h/2),a>0){const f=Math.min(u/a,Ut(r-n));e.arc(s,o,a+u/2,n-f/2,r+f/2,!0)}else{const f=Math.min(u/2,i*Ut(r-n));if(d==="round")e.arc(s,o,f,n-ye/2,r+ye/2,!0);else if(d==="bevel"){const p=2*f*f,g=-p*Math.cos(n+ye/2)+s,m=-p*Math.sin(n+ye/2)+o,y=p*Math.cos(r+ye/2)+s,x=p*Math.sin(r+ye/2)+o;e.lineTo(g,m),e.lineTo(y,x)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip("evenodd")}function sD(e,t,n){const{startAngle:r,pixelMargin:s,x:o,y:i,outerRadius:a,innerRadius:l}=t;let u=s/a;e.beginPath(),e.arc(o,i,a,r-u,n+u),l>s?(u=s/l,e.arc(o,i,l,n+u,r-u,!0)):e.arc(o,i,s,n+qe,r-qe),e.closePath(),e.clip()}function oD(e){return Ig(e,["outerStart","outerEnd","innerStart","innerEnd"])}function iD(e,t,n,r){const s=oD(e.options.borderRadius),o=(n-t)/2,i=Math.min(o,r*t/2),a=l=>{const u=(n-Math.min(o,l))*r/2;return St(l,0,Math.min(o,u))};return{outerStart:a(s.outerStart),outerEnd:a(s.outerEnd),innerStart:St(s.innerStart,0,i),innerEnd:St(s.innerEnd,0,i)}}function Ys(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function qc(e,t,n,r,s,o){const{x:i,y:a,startAngle:l,pixelMargin:u,innerRadius:d}=t,h=Math.max(t.outerRadius+r+n-u,0),f=d>0?d+r+n+u:0;let p=0;const g=s-l;if(r){const W=d>0?d-r:0,M=h>0?h-r:0,H=(W+M)/2,C=H!==0?g*H/(H+r):g;p=(g-C)/2}const m=Math.max(.001,g*h-n/ye)/h,y=(g-m)/2,x=l+y+p,v=s-y-p,{outerStart:b,outerEnd:k,innerStart:w,innerEnd:j}=iD(t,f,h,v-x),N=h-b,_=h-k,P=x+b/N,A=v-k/_,O=f+w,F=f+j,D=x+w/O,U=v-j/F;if(e.beginPath(),o){const W=(P+A)/2;if(e.arc(i,a,h,P,W),e.arc(i,a,h,W,A),k>0){const L=Ys(_,A,i,a);e.arc(L.x,L.y,k,A,v+qe)}const M=Ys(F,v,i,a);if(e.lineTo(M.x,M.y),j>0){const L=Ys(F,U,i,a);e.arc(L.x,L.y,j,v+qe,U+Math.PI)}const H=(v-j/f+(x+w/f))/2;if(e.arc(i,a,f,v-j/f,H,!0),e.arc(i,a,f,H,x+w/f,!0),w>0){const L=Ys(O,D,i,a);e.arc(L.x,L.y,w,D+Math.PI,x-qe)}const C=Ys(N,x,i,a);if(e.lineTo(C.x,C.y),b>0){const L=Ys(N,P,i,a);e.arc(L.x,L.y,b,x-qe,P)}}else{e.moveTo(i,a);const W=Math.cos(P)*h+i,M=Math.sin(P)*h+a;e.lineTo(W,M);const H=Math.cos(A)*h+i,C=Math.sin(A)*h+a;e.lineTo(H,C)}e.closePath()}function aD(e,t,n,r,s){const{fullCircles:o,startAngle:i,circumference:a}=t;let l=t.endAngle;if(o){qc(e,t,n,r,l,s);for(let u=0;u=ye&&p===0&&d!=="miter"&&rD(e,t,m),o||(qc(e,t,n,r,m,s),e.stroke())}class Ci extends Zr{constructor(n){super();Z(this,"circumference");Z(this,"endAngle");Z(this,"fullCircles");Z(this,"innerRadius");Z(this,"outerRadius");Z(this,"pixelMargin");Z(this,"startAngle");this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,r,s){const o=this.getProps(["x","y"],s),{angle:i,distance:a}=H2(o,{x:n,y:r}),{startAngle:l,endAngle:u,innerRadius:d,outerRadius:h,circumference:f}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],s),p=(this.options.spacing+this.options.borderWidth)/2,g=ue(f,u-l),m=va(i,l,u)&&l!==u,y=g>=Ae||m,x=bs(a,d+p,h+p);return y&&x}getCenterPoint(n){const{x:r,y:s,startAngle:o,endAngle:i,innerRadius:a,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:u,spacing:d}=this.options,h=(o+i)/2,f=(a+l+d+u)/2;return{x:r+Math.cos(h)*f,y:s+Math.sin(h)*f}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:r,circumference:s}=this,o=(r.offset||0)/4,i=(r.spacing||0)/2,a=r.circular;if(this.pixelMargin=r.borderAlign==="inner"?.33:0,this.fullCircles=s>Ae?Math.floor(s/Ae):0,s===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*o,Math.sin(l)*o);const u=1-Math.sin(Math.min(ye,s||0)),d=o*u;n.fillStyle=r.backgroundColor,n.strokeStyle=r.borderColor,aD(n,this,d,i,a),lD(n,this,d,i,a),n.restore()}}Z(Ci,"id","arc"),Z(Ci,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1}),Z(Ci,"defaultRoutes",{backgroundColor:"backgroundColor"}),Z(Ci,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function yS(e,t,n=t){e.lineCap=ue(n.borderCapStyle,t.borderCapStyle),e.setLineDash(ue(n.borderDash,t.borderDash)),e.lineDashOffset=ue(n.borderDashOffset,t.borderDashOffset),e.lineJoin=ue(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=ue(n.borderWidth,t.borderWidth),e.strokeStyle=ue(n.borderColor,t.borderColor)}function cD(e,t,n){e.lineTo(n.x,n.y)}function uD(e){return e.stepped?$M:e.tension||e.cubicInterpolationMode==="monotone"?HM:cD}function xS(e,t,n={}){const r=e.length,{start:s=0,end:o=r-1}=n,{start:i,end:a}=t,l=Math.max(s,i),u=Math.min(o,a),d=sa&&o>a;return{count:r,start:l,loop:t.loop,ilen:u(i+(u?a-k:k))%o,b=()=>{m!==y&&(e.lineTo(d,y),e.lineTo(d,m),e.lineTo(d,x))};for(l&&(p=s[v(0)],e.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=s[v(f)],p.skip)continue;const k=p.x,w=p.y,j=k|0;j===g?(wy&&(y=w),d=(h*d+k)/++h):(b(),e.lineTo(k,w),g=j,h=0,m=y=w),x=w}b()}function If(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!n?hD:dD}function fD(e){return e.stepped?kL:e.tension||e.cubicInterpolationMode==="monotone"?SL:fs}function pD(e,t,n,r){let s=t._path;s||(s=t._path=new Path2D,t.path(s,n,r)&&s.closePath()),yS(e,t.options),e.stroke(s)}function gD(e,t,n,r){const{segments:s,options:o}=t,i=If(t);for(const a of s)yS(e,o,a.style),e.beginPath(),i(e,t,a,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}const mD=typeof Path2D=="function";function yD(e,t,n,r){mD&&!t.options.segment?pD(e,t,n,r):gD(e,t,n,r)}class bn extends Zr{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,n){const r=this.options;if((r.tension||r.cubicInterpolationMode==="monotone")&&!r.stepped&&!this._pointsUpdated){const s=r.spanGaps?this._loop:this._fullLoop;pL(this._points,r,t,s,n),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=RL(this,this.options.segment))}first(){const t=this.segments,n=this.points;return t.length&&n[t[0].start]}last(){const t=this.segments,n=this.points,r=t.length;return r&&n[t[r-1].end]}interpolate(t,n){const r=this.options,s=t[n],o=this.points,i=sS(this,{property:n,start:s,end:s});if(!i.length)return;const a=[],l=fD(r);let u,d;for(u=0,d=i.length;ut!=="borderDash"&&t!=="fill"});function Jx(e,t,n,r){const s=e.options,{[n]:o}=e.getProps([n],r);return Math.abs(t-o){a=Lu(i,a,s);const l=s[i],u=s[a];r!==null?(o.push({x:l.x,y:r}),o.push({x:u.x,y:r})):n!==null&&(o.push({x:n,y:l.y}),o.push({x:n,y:u.y}))}),o}function Lu(e,t,n){for(;t>e;t--){const r=n[t];if(!isNaN(r.x)&&!isNaN(r.y))break}return t}function Zx(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function bS(e,t){let n=[],r=!1;return We(e)?(r=!0,n=e):n=bD(e,t),n.length?new bn({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function eb(e){return e&&e.fill!==!1}function vD(e,t,n){let s=e[t].fill;const o=[t];let i;if(!n)return s;for(;s!==!1&&o.indexOf(s)===-1;){if(!bt(s))return s;if(i=e[s],!i)return!1;if(i.visible)return s;o.push(s),s=i.fill}return!1}function wD(e,t,n){const r=jD(e);if(he(r))return isNaN(r.value)?!1:r;let s=parseFloat(r);return bt(s)&&Math.floor(s)===s?kD(r[0],t,s,n):["origin","start","end","stack","shape"].indexOf(r)>=0&&r}function kD(e,t,n,r){return(e==="-"||e==="+")&&(n=t+n),n===t||n<0||n>=r?!1:n}function SD(e,t){let n=null;return e==="start"?n=t.bottom:e==="end"?n=t.top:he(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function _D(e,t,n){let r;return e==="start"?r=n:e==="end"?r=t.options.reverse?t.min:t.max:he(e)?r=e.value:r=t.getBaseValue(),r}function jD(e){const t=e.options,n=t.fill;let r=ue(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?"origin":r}function CD(e){const{scale:t,index:n,line:r}=e,s=[],o=r.segments,i=r.points,a=ND(t,n);a.push(bS({x:null,y:t.bottom},r));for(let l=0;l=0;--i){const a=s[i].$filler;a&&(a.line.updateControlPoints(o,a.axis),r&&a.fill&&qd(e.ctx,a,o))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!=="beforeDatasetsDraw")return;const r=e.getSortedVisibleDatasetMetas();for(let s=r.length-1;s>=0;--s){const o=r[s].$filler;eb(o)&&qd(e.ctx,o,e.chartArea)}},beforeDatasetDraw(e,t,n){const r=t.meta.$filler;!eb(r)||n.drawTime!=="beforeDatasetDraw"||qd(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const sb=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},ID=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class ob extends Zr{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,r){this.maxWidth=t,this.maxHeight=n,this._margins=r,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=je(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(r=>t.filter(r,this.chart.data))),t.sort&&(n=n.sort((r,s)=>t.sort(r,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const r=t.labels,s=yt(r.font),o=s.size,i=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=sb(r,o);let u,d;n.font=s.string,this.isHorizontal()?(u=this.maxWidth,d=this._fitRows(i,o,a,l)+10):(d=this.maxHeight,u=this._fitCols(i,s,a,l)+10),this.width=Math.min(u,t.maxWidth||this.maxWidth),this.height=Math.min(d,t.maxHeight||this.maxHeight)}_fitRows(t,n,r,s){const{ctx:o,maxWidth:i,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],d=s+a;let h=t;o.textAlign="left",o.textBaseline="middle";let f=-1,p=-d;return this.legendItems.forEach((g,m)=>{const y=r+n/2+o.measureText(g.text).width;(m===0||u[u.length-1]+y+2*a>i)&&(h+=d,u[u.length-(m>0?0:1)]=0,p+=d,f++),l[m]={left:0,top:p,row:f,width:y,height:s},u[u.length-1]+=y+a}),h}_fitCols(t,n,r,s){const{ctx:o,maxHeight:i,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],d=i-t;let h=a,f=0,p=0,g=0,m=0;return this.legendItems.forEach((y,x)=>{const{itemWidth:v,itemHeight:b}=FD(r,n,o,y,s);x>0&&p+b+2*a>d&&(h+=f+a,u.push({width:f,height:p}),g+=f+a,m++,f=p=0),l[x]={left:g,top:p,col:m,width:v,height:b},f=Math.max(f,v),p+=b+a}),h+=f,u.push({width:f,height:p}),h}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:r,labels:{padding:s},rtl:o}}=this,i=vo(o,this.left,this.width);if(this.isHorizontal()){let a=0,l=pt(r,this.left+s,this.right-this.lineWidths[a]);for(const u of n)a!==u.row&&(a=u.row,l=pt(r,this.left+s,this.right-this.lineWidths[a])),u.top+=this.top+t+s,u.left=i.leftForLtr(i.x(l),u.width),l+=u.width+s}else{let a=0,l=pt(r,this.top+t+s,this.bottom-this.columnSizes[a].height);for(const u of n)u.col!==a&&(a=u.col,l=pt(r,this.top+t+s,this.bottom-this.columnSizes[a].height)),u.top=l,u.left+=this.left+s,u.left=i.leftForLtr(i.x(u.left),u.width),l+=u.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;Eu(t,this),this._draw(),Tu(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:r,ctx:s}=this,{align:o,labels:i}=t,a=Fe.color,l=vo(t.rtl,this.left,this.width),u=yt(i.font),{padding:d}=i,h=u.size,f=h/2;let p;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=u.string;const{boxWidth:g,boxHeight:m,itemHeight:y}=sb(i,h),x=function(j,N,_){if(isNaN(g)||g<=0||isNaN(m)||m<0)return;s.save();const P=ue(_.lineWidth,1);if(s.fillStyle=ue(_.fillStyle,a),s.lineCap=ue(_.lineCap,"butt"),s.lineDashOffset=ue(_.lineDashOffset,0),s.lineJoin=ue(_.lineJoin,"miter"),s.lineWidth=P,s.strokeStyle=ue(_.strokeStyle,a),s.setLineDash(ue(_.lineDash,[])),i.usePointStyle){const A={radius:m*Math.SQRT2/2,pointStyle:_.pointStyle,rotation:_.rotation,borderWidth:P},O=l.xPlus(j,g/2),F=N+f;K2(s,A,O,F,i.pointStyleWidth&&g)}else{const A=N+Math.max((h-m)/2,0),O=l.leftForLtr(j,g),F=Wi(_.borderRadius);s.beginPath(),Object.values(F).some(D=>D!==0)?Mf(s,{x:O,y:A,w:g,h:m,radius:F}):s.rect(O,A,g,m),s.fill(),P!==0&&s.stroke()}s.restore()},v=function(j,N,_){ka(s,_.text,j,N+y/2,u,{strikethrough:_.hidden,textAlign:l.textAlign(_.textAlign)})},b=this.isHorizontal(),k=this._computeTitleHeight();b?p={x:pt(o,this.left+d,this.right-r[0]),y:this.top+d+k,line:0}:p={x:this.left+d,y:pt(o,this.top+k+d,this.bottom-n[0].height),line:0},eS(this.ctx,t.textDirection);const w=y+d;this.legendItems.forEach((j,N)=>{s.strokeStyle=j.fontColor,s.fillStyle=j.fontColor;const _=s.measureText(j.text).width,P=l.textAlign(j.textAlign||(j.textAlign=i.textAlign)),A=g+f+_;let O=p.x,F=p.y;l.setWidth(this.width),b?N>0&&O+A+d>this.right&&(F=p.y+=w,p.line++,O=p.x=pt(o,this.left+d,this.right-r[p.line])):N>0&&F+w>this.bottom&&(O=p.x=O+n[p.line].width+d,p.line++,F=p.y=pt(o,this.top+k+d,this.bottom-n[p.line].height));const D=l.x(O);if(x(D,F,j),O=RM(P,O+g+f,b?O+A:this.right,t.rtl),v(l.x(O),F,j),b)p.x+=A+d;else if(typeof j.text!="string"){const U=u.lineHeight;p.y+=wS(j,U)+d}else p.y+=w}),tS(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,r=yt(n.font),s=hn(n.padding);if(!n.display)return;const o=vo(t.rtl,this.left,this.width),i=this.ctx,a=n.position,l=r.size/2,u=s.top+l;let d,h=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),d=this.top+u,h=pt(t.align,h,this.right-f);else{const g=this.columnSizes.reduce((m,y)=>Math.max(m,y.height),0);d=u+pt(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const p=pt(a,h,h+f);i.textAlign=o.textAlign(Lg(a)),i.textBaseline="middle",i.strokeStyle=n.color,i.fillStyle=n.color,i.font=r.string,ka(i,n.text,p,d,r)}_computeTitleHeight(){const t=this.options.title,n=yt(t.font),r=hn(t.padding);return t.display?n.lineHeight+r.height:0}_getLegendItemAt(t,n){let r,s,o;if(bs(t,this.left,this.right)&&bs(n,this.top,this.bottom)){for(o=this.legendHitBoxes,r=0;ro.length>i.length?o:i)),t+n.size/2+r.measureText(s).width}function VD(e,t,n){let r=e;return typeof t.text!="string"&&(r=wS(t,n)),r}function wS(e,t){const n=e.text?e.text.length:0;return t*n}function BD(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var Du={id:"legend",_element:ob,start(e,t,n){const r=e.legend=new ob({ctx:e.ctx,options:n,chart:e});ln.configure(e,r,n),ln.addBox(e,r)},stop(e){ln.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const r=e.legend;ln.configure(e,r,n),r.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const r=t.datasetIndex,s=n.chart;s.isDatasetVisible(r)?(s.hide(r),t.hidden=!0):(s.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:s,color:o,useBorderRadius:i,borderRadius:a}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),d=hn(u.borderWidth);return{text:t[l.index].label,fillStyle:u.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(d.width+d.height)/4,strokeStyle:u.borderColor,pointStyle:r||u.pointStyle,rotation:u.rotation,textAlign:s||u.textAlign,borderRadius:i&&(a||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class kS extends Zr{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n){const r=this.options;if(this.left=0,this.top=0,!r.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=n;const s=We(r.text)?r.text.length:1;this._padding=hn(r.padding);const o=s*yt(r.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:n,left:r,bottom:s,right:o,options:i}=this,a=i.align;let l=0,u,d,h;return this.isHorizontal()?(d=pt(a,r,o),h=n+t,u=o-r):(i.position==="left"?(d=r+t,h=pt(a,s,n),l=ye*-.5):(d=o-t,h=pt(a,n,s),l=ye*.5),u=s-n),{titleX:d,titleY:h,maxWidth:u,rotation:l}}draw(){const t=this.ctx,n=this.options;if(!n.display)return;const r=yt(n.font),o=r.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:l,rotation:u}=this._drawArgs(o);ka(t,n.text,0,0,r,{color:n.color,maxWidth:l,rotation:u,textAlign:Lg(n.align),textBaseline:"middle",translation:[i,a]})}}function $D(e,t){const n=new kS({ctx:e.ctx,options:t,chart:e});ln.configure(e,n,t),ln.addBox(e,n),e.titleBlock=n}var Iu={id:"title",_element:kS,start(e,t,n){$D(e,n)},stop(e){const t=e.titleBlock;ln.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){const r=e.titleBlock;ln.configure(e,r,n),r.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Ni={average(e){if(!e.length)return!1;let t,n,r=new Set,s=0,o=0;for(t=0,n=e.length;ta+l)/r.size,y:s/o}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,s=Number.POSITIVE_INFINITY,o,i,a;for(o=0,i=e.length;oa({chart:t,initial:n.initial,numSteps:i,currentStep:Math.min(r-n.start,i)}))}_refresh(){this._request||(this._running=!0,this._request=W2.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((r,s)=>{if(!r.running||!r.items.length)return;const o=r.items;let i=o.length-1,a=!1,l;for(;i>=0;--i)l=o[i],l._active?(l._total>r.duration&&(r.duration=l._total),l.tick(t),a=!0):(o[i]=o[o.length-1],o.pop());a&&(s.draw(),this._notify(s,r,t,"progress")),o.length||(r.running=!1,this._notify(s,r,t,"complete"),r.initial=!1),n+=o.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let r=n.get(t);return r||(r={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,r)),r}listen(t,n,r){this._getAnims(t).listeners[n].push(r)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((r,s)=>Math.max(r,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const r=n.items;let s=r.length-1;for(;s>=0;--s)r[s].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var Vn=new ML;const Nx="transparent",LL={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const r=mx(e||Nx),s=r.valid&&mx(t||Nx);return s&&s.valid?s.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class OL{constructor(t,n,r,s){const o=n[r];s=kl([t.to,s,o,t.from]);const i=kl([t.from,o,s]);this._active=!0,this._fn=t.fn||LL[t.type||typeof i],this._easing=Hi[t.easing]||Hi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=r,this._from=i,this._to=s,this._promises=void 0}active(){return this._active}update(t,n,r){if(this._active){this._notify(!1);const s=this._target[this._prop],o=r-this._start,i=this._duration-o;this._start=r,this._duration=Math.floor(Math.max(i,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=kl([t.to,n,s,t.from]),this._from=kl([t.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,r=this._duration,s=this._prop,o=this._from,i=this._loop,a=this._to;let l;if(this._active=o!==a&&(i||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,a,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,r)=>{t.push({res:n,rej:r})})}_notify(t){const n=t?"res":"rej",r=this._promises||[];for(let s=0;s{const o=t[s];if(!he(o))return;const i={};for(const a of n)i[a]=o[a];(We(o.properties)&&o.properties||[s]).forEach(a=>{(a===s||!r.has(a))&&r.set(a,i)})})}_animateOptions(t,n){const r=n.options,s=IL(t,r);if(!s)return[];const o=this._createAnimations(s,r);return r.$shared&&DL(t.options.$animations,r).then(()=>{t.options=r},()=>{}),o}_createAnimations(t,n){const r=this._properties,s=[],o=t.$animations||(t.$animations={}),i=Object.keys(n),a=Date.now();let l;for(l=i.length-1;l>=0;--l){const u=i[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(t,n));continue}const d=n[u];let h=o[u];const f=r.get(u);if(h)if(f&&h.active()){h.update(f,d,a);continue}else h.cancel();if(!f||!f.duration){t[u]=d;continue}o[u]=h=new OL(f,t,u,d),s.push(h)}return s}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const r=this._createAnimations(t,n);if(r.length)return Vn.add(this._chart,r),!0}}function DL(e,t){const n=[],r=Object.keys(t);for(let s=0;s0||!n&&o<0)return s.index}return null}function Tx(e,t){const{chart:n,_cachedMeta:r}=e,s=n._stacks||(n._stacks={}),{iScale:o,vScale:i,index:a}=r,l=o.axis,u=i.axis,d=BL(o,i,r),h=t.length;let f;for(let p=0;pn[r].axis===t).shift()}function UL(e,t){return Vs(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function WL(e,t,n){return Vs(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function di(e,t){const n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t=t||e._parsed;for(const s of t){const o=s._stacks;if(!o||o[r]===void 0||o[r][n]===void 0)return;delete o[r][n],o[r]._visualValues!==void 0&&o[r]._visualValues[n]!==void 0&&delete o[r]._visualValues[n]}}}const Ud=e=>e==="reset"||e==="none",Ax=(e,t)=>t?e:Object.assign({},e),GL=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:aS(n,!0),values:null};class wo{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=$d(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&di(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,r=this.getDataset(),s=(h,f,p,g)=>h==="x"?f:h==="r"?g:p,o=n.xAxisID=ue(r.xAxisID,Hd(t,"x")),i=n.yAxisID=ue(r.yAxisID,Hd(t,"y")),a=n.rAxisID=ue(r.rAxisID,Hd(t,"r")),l=n.indexAxis,u=n.iAxisID=s(l,o,i,a),d=n.vAxisID=s(l,i,o,a);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(i),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(d)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&fx(this._data,this),t._stacked&&di(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),r=this._data;if(he(n)){const s=this._cachedMeta;this._data=VL(n,s)}else if(r!==n){if(r){fx(r,this);const s=this._cachedMeta;di(s),s._parsed=[]}n&&Object.isExtensible(n)&&CM(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,r=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=$d(n.vScale,n),n.stack!==r.stack&&(s=!0,di(n),n.stack=r.stack),this._resyncElements(t),(s||o!==n._stacked)&&(Tx(this,n._parsed),n._stacked=$d(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),r=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(r,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:r,_data:s}=this,{iScale:o,_stacked:i}=r,a=o.axis;let l=t===0&&n===s.length?!0:r._sorted,u=t>0&&r._parsed[t-1],d,h,f;if(this._parsing===!1)r._parsed=s,r._sorted=!0,f=s;else{We(s[t])?f=this.parseArrayData(r,s,t,n):he(s[t])?f=this.parseObjectData(r,s,t,n):f=this.parsePrimitiveData(r,s,t,n);const p=()=>h[a]===null||u&&h[a]m||h=0;--f)if(!g()){this.updateRangeFromParsed(u,t,p,l);break}}return u}getAllParsedValues(t){const n=this._cachedMeta._parsed,r=[];let s,o,i;for(s=0,o=n.length;s=0&&tthis.getContext(r,s,n),m=u.resolveNamedOptions(f,p,g,h);return m.$shared&&(m.$shared=l,o[i]=Object.freeze(Ax(m,l))),m}_resolveAnimations(t,n,r){const s=this.chart,o=this._cachedDataOpts,i=`animation-${n}`,a=o[i];if(a)return a;let l;if(s.options.animation!==!1){const d=this.chart.config,h=d.datasetAnimationScopeKeys(this._type,n),f=d.getOptionScopes(this.getDataset(),h);l=d.createResolver(f,this.getContext(t,r,n))}const u=new iS(s,l&&l.animations);return l&&l._cacheable&&(o[i]=Object.freeze(u)),u}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||Ud(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const r=this.resolveDataElementOptions(t,n),s=this._sharedOptions,o=this.getSharedOptions(r),i=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,r),{sharedOptions:o,includeOptions:i}}updateElement(t,n,r,s){Ud(s)?Object.assign(t,r):this._resolveAnimations(n,s).update(t,r)}updateSharedOptions(t,n,r){t&&!Ud(n)&&this._resolveAnimations(void 0,n).update(t,r)}_setStyle(t,n,r,s){t.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,r,s).update(t,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(t,n,r){this._setStyle(t,r,"active",!1)}setHoverStyle(t,n,r){this._setStyle(t,r,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,r=this._cachedMeta.data;for(const[a,l,u]of this._syncList)this[a](l,u);this._syncList=[];const s=r.length,o=n.length,i=Math.min(o,s);i&&this.parse(0,i),o>s?this._insertElements(s,o-s,t):o{for(u.length+=n,a=u.length-1;a>=i;a--)u[a]=u[a-n]};for(l(o),a=t;ava(b,a,l,!0)?1:Math.max(k,k*n,w,w*n),g=(b,k,w)=>va(b,a,l,!0)?-1:Math.min(k,k*n,w,w*n),m=p(0,u,h),y=p(qe,d,f),x=g(xe,u,h),v=g(xe+qe,d,f);r=(m-x)/2,s=(y-v)/2,o=-(m+x)/2,i=-(y+v)/2}return{ratioX:r,ratioY:s,offsetX:o,offsetY:i}}class _i extends wo{constructor(t,n){super(t,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,n){const r=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=r;else{let o=l=>+r[l];if(he(r[t])){const{key:l="value"}=this._parsing;o=u=>+xa(r[u],l)}let i,a;for(i=t,a=t+n;i0&&!isNaN(t)?Ae*(Math.abs(t)/n):0}getLabelAndValue(t){const n=this._cachedMeta,r=this.chart,s=r.data.labels||[],o=Dg(n._parsed[t],r.options.locale);return{label:s[t]||"",value:o}}getMaxBorderWidth(t){let n=0;const r=this.chart;let s,o,i,a,l;if(!t){for(s=0,o=r.data.datasets.length;st!=="spacing",_indexable:t=>t!=="spacing"&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")}),Z(_i,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const n=t.data,{labels:{pointStyle:r,textAlign:s,color:o,useBorderRadius:i,borderRadius:a}}=t.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,u)=>{const h=t.getDatasetMeta(0).controller.getStyle(u);return{text:l,fillStyle:h.backgroundColor,fontColor:o,hidden:!t.getDataVisibility(u),lineDash:h.borderDash,lineDashOffset:h.borderDashOffset,lineJoin:h.borderJoinStyle,lineWidth:h.borderWidth,strokeStyle:h.borderColor,textAlign:s,pointStyle:r,borderRadius:i&&(a||h.borderRadius),index:u}}):[]}},onClick(t,n,r){r.chart.toggleDataVisibility(n.index),r.chart.update()}}}});class ec extends wo{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const n=this._cachedMeta,{dataset:r,data:s=[],_dataset:o}=n,i=this.chart._animationsDisabled;let{start:a,count:l}=EM(n,s,i);this._drawStart=a,this._drawCount=l,TM(n)&&(a=0,l=s.length),r._chart=this.chart,r._datasetIndex=this.index,r._decimated=!!o._decimated,r.points=s;const u=this.resolveDatasetElementOptions(t);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(r,void 0,{animated:!i,options:u},t),this.updateElements(s,a,l,t)}updateElements(t,n,r,s){const o=s==="reset",{iScale:i,vScale:a,_stacked:l,_dataset:u}=this._cachedMeta,{sharedOptions:d,includeOptions:h}=this._getSharedOptions(n,s),f=i.axis,p=a.axis,{spanGaps:g,segment:m}=this.options,y=ba(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||s==="none",v=n+r,b=t.length;let k=n>0&&this.getParsed(n-1);for(let w=0;w=v){N.skip=!0;continue}const _=this.getParsed(w),P=ke(_[p]),A=N[f]=i.getPixelForValue(_[f],w),O=N[p]=o||P?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,_,l):_[p],w);N.skip=isNaN(A)||isNaN(O)||P,N.stop=w>0&&Math.abs(_[f]-k[f])>y,m&&(N.parsed=_,N.raw=u.data[w]),h&&(N.options=d||this.resolveDataElementOptions(w,j.active?"active":s)),x||this.updateElement(j,w,N,s),k=_}}getMaxOverflow(){const t=this._cachedMeta,n=t.dataset,r=n.options&&n.options.borderWidth||0,s=t.data||[];if(!s.length)return r;const o=s[0].size(this.resolveDataElementOptions(0)),i=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(r,o,i)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Z(ec,"id","line"),Z(ec,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Z(ec,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class Lf extends _i{}Z(Lf,"id","pie"),Z(Lf,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});function is(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Hg{constructor(t){Z(this,"options");this.options=t||{}}static override(t){Object.assign(Hg.prototype,t)}init(){}formats(){return is()}parse(){return is()}format(){return is()}add(){return is()}diff(){return is()}startOf(){return is()}endOf(){return is()}}var KL={_date:Hg};function YL(e,t,n,r){const{controller:s,data:o,_sorted:i}=e,a=s._cachedMeta.iScale,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(a&&t===a.axis&&t!=="r"&&i&&o.length){const u=a._reversePixels?_M:vs;if(r){if(s._sharedOptions){const d=o[0],h=typeof d.getRange=="function"&&d.getRange(t);if(h){const f=u(o,t,n-h),p=u(o,t,n+h);return{lo:f.lo,hi:p.hi}}}}else{const d=u(o,t,n);if(l){const{vScale:h}=s._cachedMeta,{_parsed:f}=e,p=f.slice(0,d.lo+1).reverse().findIndex(m=>!ke(m[h.axis]));d.lo-=Math.max(0,p);const g=f.slice(d.hi).findIndex(m=>!ke(m[h.axis]));d.hi+=Math.max(0,g)}return d}}return{lo:0,hi:o.length-1}}function Lu(e,t,n,r,s){const o=e.getSortedVisibleDatasetMetas(),i=n[t];for(let a=0,l=o.length;a{l[i]&&l[i](t[n],s)&&(o.push({element:l,datasetIndex:u,index:d}),a=a||l.inRange(t.x,t.y,s))}),r&&!a?[]:o}var ZL={modes:{index(e,t,n,r){const s=hs(t,e),o=n.axis||"x",i=n.includeInvisible||!1,a=n.intersect?Wd(e,s,o,r,i):Gd(e,s,o,!1,r,i),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach(u=>{const d=a[0].index,h=u.data[d];h&&!h.skip&&l.push({element:h,datasetIndex:u.index,index:d})}),l):[]},dataset(e,t,n,r){const s=hs(t,e),o=n.axis||"xy",i=n.includeInvisible||!1;let a=n.intersect?Wd(e,s,o,r,i):Gd(e,s,o,!1,r,i);if(a.length>0){const l=a[0].datasetIndex,u=e.getDatasetMeta(l).data;a=[];for(let d=0;dn.pos===t)}function Lx(e,t){return e.filter(n=>lS.indexOf(n.pos)===-1&&n.box.axis===t)}function fi(e,t){return e.sort((n,r)=>{const s=t?r:n,o=t?n:r;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function eO(e){const t=[];let n,r,s,o,i,a;for(n=0,r=(e||[]).length;nu.box.fullSize),!0),r=fi(hi(t,"left"),!0),s=fi(hi(t,"right")),o=fi(hi(t,"top"),!0),i=fi(hi(t,"bottom")),a=Lx(t,"x"),l=Lx(t,"y");return{fullSize:n,leftAndTop:r.concat(o),rightAndBottom:s.concat(l).concat(i).concat(a),chartArea:hi(t,"chartArea"),vertical:r.concat(s).concat(l),horizontal:o.concat(i).concat(a)}}function Ox(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function cS(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function sO(e,t,n,r){const{pos:s,box:o}=n,i=e.maxPadding;if(!he(s)){n.size&&(e[s]-=n.size);const h=r[n.stack]||{size:0,count:1};h.size=Math.max(h.size,n.horizontal?o.height:o.width),n.size=h.size/h.count,e[s]+=n.size}o.getPadding&&cS(i,o.getPadding());const a=Math.max(0,t.outerWidth-Ox(i,e,"left","right")),l=Math.max(0,t.outerHeight-Ox(i,e,"top","bottom")),u=a!==e.w,d=l!==e.h;return e.w=a,e.h=l,n.horizontal?{same:u,other:d}:{same:d,other:u}}function oO(e){const t=e.maxPadding;function n(r){const s=Math.max(t[r]-e[r],0);return e[r]+=s,s}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function iO(e,t){const n=t.maxPadding;function r(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(i=>{o[i]=Math.max(t[i],n[i])}),o}return r(e?["left","right"]:["top","bottom"])}function ji(e,t,n,r){const s=[];let o,i,a,l,u,d;for(o=0,i=e.length,u=0;o{typeof m.beforeLayout=="function"&&m.beforeLayout()});const d=l.reduce((m,y)=>y.box.options&&y.box.options.display===!1?m:m+1,0)||1,h=Object.freeze({outerWidth:t,outerHeight:n,padding:s,availableWidth:o,availableHeight:i,vBoxMaxWidth:o/2/d,hBoxMaxHeight:i/2}),f=Object.assign({},s);cS(f,hn(r));const p=Object.assign({maxPadding:f,w:o,h:i,x:s.left,y:s.top},s),g=nO(l.concat(u),h);ji(a.fullSize,p,h,g),ji(l,p,h,g),ji(u,p,h,g)&&ji(l,p,h,g),oO(p),Dx(a.leftAndTop,p,h,g),p.x+=p.w,p.y+=p.h,Dx(a.rightAndBottom,p,h,g),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},ye(a.chartArea,m=>{const y=m.box;Object.assign(y,e.chartArea),y.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class uS{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,r){}removeEventListener(t,n,r){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,r,s){return n=Math.max(0,n||t.width),r=r||t.height,{width:n,height:Math.max(0,s?Math.floor(n/s):r)}}isAttached(t){return!0}updateConfig(t){}}class aO extends uS{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const tc="$chartjs",lO={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ix=e=>e===null||e==="";function cO(e,t){const n=e.style,r=e.getAttribute("height"),s=e.getAttribute("width");if(e[tc]={initial:{height:r,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Ix(s)){const o=Sx(e,"width");o!==void 0&&(e.width=o)}if(Ix(r))if(e.style.height==="")e.height=e.width/(t||2);else{const o=Sx(e,"height");o!==void 0&&(e.height=o)}return e}const dS=wL?{passive:!0}:!1;function uO(e,t,n){e&&e.addEventListener(t,n,dS)}function dO(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,dS)}function hO(e,t){const n=lO[e.type]||e.type,{x:r,y:s}=hs(e,t);return{type:n,chart:t,native:e,x:r!==void 0?r:null,y:s!==void 0?s:null}}function qc(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function fO(e,t,n){const r=e.canvas,s=new MutationObserver(o=>{let i=!1;for(const a of o)i=i||qc(a.addedNodes,r),i=i&&!qc(a.removedNodes,r);i&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function pO(e,t,n){const r=e.canvas,s=new MutationObserver(o=>{let i=!1;for(const a of o)i=i||qc(a.removedNodes,r),i=i&&!qc(a.addedNodes,r);i&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const Sa=new Map;let Fx=0;function hS(){const e=window.devicePixelRatio;e!==Fx&&(Fx=e,Sa.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function gO(e,t){Sa.size||window.addEventListener("resize",hS),Sa.set(e,t)}function mO(e){Sa.delete(e),Sa.size||window.removeEventListener("resize",hS)}function yO(e,t,n){const r=e.canvas,s=r&&$g(r);if(!s)return;const o=G2((a,l)=>{const u=s.clientWidth;n(a,l),u{const l=a[0],u=l.contentRect.width,d=l.contentRect.height;u===0&&d===0||o(u,d)});return i.observe(s),gO(e,o),i}function qd(e,t,n){n&&n.disconnect(),t==="resize"&&mO(e)}function xO(e,t,n){const r=e.canvas,s=G2(o=>{e.ctx!==null&&n(hO(o,e))},e);return uO(r,t,s),s}class bO extends uS{acquireContext(t,n){const r=t&&t.getContext&&t.getContext("2d");return r&&r.canvas===t?(cO(t,n),r):null}releaseContext(t){const n=t.canvas;if(!n[tc])return!1;const r=n[tc].initial;["height","width"].forEach(o=>{const i=r[o];ke(i)?n.removeAttribute(o):n.setAttribute(o,i)});const s=r.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[tc],!0}addEventListener(t,n,r){this.removeEventListener(t,n);const s=t.$proxies||(t.$proxies={}),i={attach:fO,detach:pO,resize:yO}[n]||xO;s[n]=i(t,n,r)}removeEventListener(t,n){const r=t.$proxies||(t.$proxies={}),s=r[n];if(!s)return;({attach:qd,detach:qd,resize:qd}[n]||dO)(t,n,s),r[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,r,s){return vL(t,n,r,s)}isAttached(t){const n=t&&$g(t);return!!(n&&n.isConnected)}}function vO(e){return!Bg()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?aO:bO}var Dl;let Zr=(Dl=class{constructor(){Z(this,"x");Z(this,"y");Z(this,"active",!1);Z(this,"options");Z(this,"$animations")}tooltipPosition(t){const{x:n,y:r}=this.getProps(["x","y"],t);return{x:n,y:r}}hasValue(){return ba(this.x)&&ba(this.y)}getProps(t,n){const r=this.$animations;if(!n||!r)return this;const s={};return t.forEach(o=>{s[o]=r[o]&&r[o].active()?r[o]._to:this[o]}),s}},Z(Dl,"defaults",{}),Z(Dl,"defaultRoutes"),Dl);function wO(e,t){const n=e.options.ticks,r=kO(e),s=Math.min(n.maxTicksLimit||r,r),o=n.major.enabled?_O(t):[],i=o.length,a=o[0],l=o[i-1],u=[];if(i>s)return jO(t,u,o,i/s),u;const d=SO(o,t,s);if(i>0){let h,f;const p=i>1?Math.round((l-a)/(i-1)):null;for(Cl(t,u,d,ke(p)?0:a-p,a),h=0,f=i-1;hs)return l}return Math.max(s,1)}function _O(e){const t=[];let n,r;for(n=0,r=e.length;ne==="left"?"right":e==="right"?"left":e,zx=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,Vx=(e,t)=>Math.min(t||e,e);function Bx(e,t){const n=[],r=e.length/t,s=e.length;let o=0;for(;oi+a)))return l}function RO(e,t){ye(e,n=>{const r=n.gc,s=r.length/2;let o;if(s>t){for(o=0;or?r:n,r=s&&n>r?n:r,{min:Pn(n,Pn(r,n)),max:Pn(r,Pn(n,r))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){je(this.options.beforeUpdate,[this])}update(t,n,r){const{beginAtZero:s,grace:o,ticks:i}=this.options,a=i.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=r=Object.assign({left:0,right:0,top:0,bottom:0},r),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+r.left+r.right:this.height+r.top+r.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=JM(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=o||r<=1||!this.isHorizontal()){this.labelRotation=s;return}const d=this._getLabelSizes(),h=d.widest.width,f=d.highest.height,p=_t(this.chart.width-h,0,this.maxWidth);a=t.offset?this.maxWidth/r:p/(r-1),h+6>a&&(a=p/(r-(t.offset?.5:1)),l=this.maxHeight-pi(t.grid)-n.padding-$x(t.title,this.chart.options.font),u=Math.sqrt(h*h+f*f),i=wM(Math.min(Math.asin(_t((d.highest.height+6)/a,-1,1)),Math.asin(_t(l/u,-1,1))-Math.asin(_t(f/u,-1,1)))),i=Math.max(s,Math.min(o,i))),this.labelRotation=i}afterCalculateLabelRotation(){je(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){je(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:r,title:s,grid:o}}=this,i=this._isVisible(),a=this.isHorizontal();if(i){const l=$x(s,n.options.font);if(a?(t.width=this.maxWidth,t.height=pi(o)+l):(t.height=this.maxHeight,t.width=pi(o)+l),r.display&&this.ticks.length){const{first:u,last:d,widest:h,highest:f}=this._getLabelSizes(),p=r.padding*2,g=Yn(this.labelRotation),m=Math.cos(g),y=Math.sin(g);if(a){const x=r.mirror?0:y*h.width+m*f.height;t.height=Math.min(this.maxHeight,t.height+x+p)}else{const x=r.mirror?0:m*h.width+y*f.height;t.width=Math.min(this.maxWidth,t.width+x+p)}this._calculatePadding(u,d,y,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,r,s){const{ticks:{align:o,padding:i},position:a}=this.options,l=this.labelRotation!==0,u=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const d=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?u?(f=s*t.width,p=r*n.height):(f=r*t.height,p=s*n.width):o==="start"?p=n.width:o==="end"?f=t.width:o!=="inner"&&(f=t.width/2,p=n.width/2),this.paddingLeft=Math.max((f-d+i)*this.width/(this.width-d),0),this.paddingRight=Math.max((p-h+i)*this.width/(this.width-h),0)}else{let d=n.height/2,h=t.height/2;o==="start"?(d=0,h=t.height):o==="end"&&(d=n.height,h=0),this.paddingTop=d+i,this.paddingBottom=h+i}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){je(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,r;for(n=0,r=t.length;n({width:i[P]||0,height:a[P]||0});return{first:_(0),last:_(n-1),widest:_(j),highest:_(N),widths:i,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return SM(this._alignToPixels?os(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&ta*s?a/r:l/s:l*s0}_computeGridLineItems(t){const n=this.axis,r=this.chart,s=this.options,{grid:o,position:i,border:a}=s,l=o.offset,u=this.isHorizontal(),h=this.ticks.length+(l?1:0),f=pi(o),p=[],g=a.setContext(this.getContext()),m=g.display?g.width:0,y=m/2,x=function(M){return os(r,M,m)};let v,b,k,w,j,N,_,P,A,O,F,D;if(i==="top")v=x(this.bottom),N=this.bottom-f,P=v-y,O=x(t.top)+y,D=t.bottom;else if(i==="bottom")v=x(this.top),O=t.top,D=x(t.bottom)-y,N=v+y,P=this.top+f;else if(i==="left")v=x(this.right),j=this.right-f,_=v-y,A=x(t.left)+y,F=t.right;else if(i==="right")v=x(this.left),A=t.left,F=x(t.right)-y,j=v+y,_=this.left+f;else if(n==="x"){if(i==="center")v=x((t.top+t.bottom)/2+.5);else if(he(i)){const M=Object.keys(i)[0],H=i[M];v=x(this.chart.scales[M].getPixelForValue(H))}O=t.top,D=t.bottom,N=v+y,P=N+f}else if(n==="y"){if(i==="center")v=x((t.left+t.right)/2);else if(he(i)){const M=Object.keys(i)[0],H=i[M];v=x(this.chart.scales[M].getPixelForValue(H))}j=v-y,_=j-f,A=t.left,F=t.right}const U=ue(s.ticks.maxTicksLimit,h),W=Math.max(1,Math.ceil(h/U));for(b=0;b0&&(ne-=$/2);break}I={left:ne,top:q,width:$+Y.width,height:T+Y.height,color:W.backdropColor}}y.push({label:k,font:P,textOffset:F,options:{rotation:m,color:H,strokeColor:C,strokeWidth:L,textAlign:E,textBaseline:D,translation:[w,j],backdrop:I}})}return y}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-Yn(this.labelRotation))return t==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:r,mirror:s,padding:o}}=this.options,i=this._getLabelSizes(),a=t+o,l=i.widest.width;let u,d;return n==="left"?s?(d=this.right+o,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d+=l)):(d=this.right-a,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d=this.left)):n==="right"?s?(d=this.left+o,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d-=l)):(d=this.left+a,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d=this.right)):u="right",{textAlign:u,x:d}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:r,top:s,width:o,height:i}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(r,s,o,i),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===t);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const n=this.options.grid,r=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,i;const a=(l,u,d)=>{!d.width||!d.color||(r.save(),r.lineWidth=d.width,r.strokeStyle=d.color,r.setLineDash(d.borderDash||[]),r.lineDashOffset=d.borderDashOffset,r.beginPath(),r.moveTo(l.x,l.y),r.lineTo(u.x,u.y),r.stroke(),r.restore())};if(n.display)for(o=0,i=s.length;o{this.draw(o)}}]:[{z:r,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),r=this.axis+"AxisID",s=[];let o,i;for(o=0,i=n.length;o{const r=n.split("."),s=r.pop(),o=[e].concat(r).join("."),i=t[n].split("."),a=i.pop(),l=i.join(".");Fe.route(o,s,l,a)})}function DO(e){return"id"in e&&"defaults"in e}class IO{constructor(){this.controllers=new Nl(wo,"datasets",!0),this.elements=new Nl(Zr,"elements"),this.plugins=new Nl(Object,"plugins"),this.scales=new Nl(Yo,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,r){[...n].forEach(s=>{const o=r||this._getRegistryForType(s);r||o.isForType(s)||o===this.plugins&&s.id?this._exec(t,o,s):ye(s,i=>{const a=r||this._getRegistryForType(i);this._exec(t,a,i)})})}_exec(t,n,r){const s=Ag(t);je(r["before"+s],[],r),n[t](r),je(r["after"+s],[],r)}_getRegistryForType(t){for(let n=0;no.filter(a=>!i.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,r),t,"stop"),this._notify(s(r,n),t,"start")}}function zO(e){const t={},n=[],r=Object.keys(An.plugins.items);for(let o=0;o1&&Hx(e[0].toLowerCase());if(r)return r}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Ux(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function GO(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(r=>r.xAxisID===e||r.yAxisID===e);if(n.length)return Ux(e,"x",n[0])||Ux(e,"y",n[0])}return{}}function qO(e,t){const n=Ls[e.type]||{scales:{}},r=t.scales||{},s=Of(e.type,t),o=Object.create(null);return Object.keys(r).forEach(i=>{const a=r[i];if(!he(a))return console.error(`Invalid scale configuration for scale: ${i}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${i}`);const l=Df(i,a,GO(i,e),Fe.scales[a.type]),u=UO(l,s),d=n.scales||{};o[i]=Bi(Object.create(null),[{axis:l},a,d[l],d[u]])}),e.data.datasets.forEach(i=>{const a=i.type||e.type,l=i.indexAxis||Of(a,t),d=(Ls[a]||{}).scales||{};Object.keys(d).forEach(h=>{const f=HO(h,l),p=i[f+"AxisID"]||f;o[p]=o[p]||Object.create(null),Bi(o[p],[{axis:f},r[p],d[h]])})}),Object.keys(o).forEach(i=>{const a=o[i];Bi(a,[Fe.scales[a.type],Fe.scale])}),o}function fS(e){const t=e.options||(e.options={});t.plugins=ue(t.plugins,{}),t.scales=qO(e,t)}function pS(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function KO(e){return e=e||{},e.data=pS(e.data),fS(e),e}const Wx=new Map,gS=new Set;function Pl(e,t){let n=Wx.get(e);return n||(n=t(),Wx.set(e,n),gS.add(n)),n}const gi=(e,t,n)=>{const r=xa(t,n);r!==void 0&&e.add(r)};class YO{constructor(t){this._config=KO(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=pS(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fS(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Pl(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Pl(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Pl(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,r=this.type;return Pl(`${r}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const r=this._scopeCache;let s=r.get(t);return(!s||n)&&(s=new Map,r.set(t,s)),s}getOptionScopes(t,n,r){const{options:s,type:o}=this,i=this._cachedScopes(t,r),a=i.get(n);if(a)return a;const l=new Set;n.forEach(d=>{t&&(l.add(t),d.forEach(h=>gi(l,t,h))),d.forEach(h=>gi(l,s,h)),d.forEach(h=>gi(l,Ls[o]||{},h)),d.forEach(h=>gi(l,Fe,h)),d.forEach(h=>gi(l,Tf,h))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),gS.has(n)&&i.set(n,u),u}chartOptionScopes(){const{options:t,type:n}=this;return[t,Ls[n]||{},Fe.datasets[n]||{},{type:n},Fe,Tf]}resolveNamedOptions(t,n,r,s=[""]){const o={$shared:!0},{resolver:i,subPrefixes:a}=Gx(this._resolverCache,t,s);let l=i;if(QO(i,n)){o.$shared=!1,r=Ur(r)?r():r;const u=this.createResolver(t,r,a);l=Do(i,r,u)}for(const u of n)o[u]=l[u];return o}createResolver(t,n,r=[""],s){const{resolver:o}=Gx(this._resolverCache,t,r);return he(n)?Do(o,n,void 0,s):o}}function Gx(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));const s=n.join();let o=r.get(s);return o||(o={resolver:Fg(t,n),subPrefixes:n.filter(a=>!a.toLowerCase().includes("hover"))},r.set(s,o)),o}const XO=e=>he(e)&&Object.getOwnPropertyNames(e).some(t=>Ur(e[t]));function QO(e,t){const{isScriptable:n,isIndexable:r}=Y2(e);for(const s of t){const o=n(s),i=r(s),a=(i||o)&&e[s];if(o&&(Ur(a)||XO(a))||i&&We(a))return!0}return!1}var JO="4.5.1";const ZO=["top","bottom","left","right","chartArea"];function qx(e,t){return e==="top"||e==="bottom"||ZO.indexOf(e)===-1&&t==="x"}function Kx(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function Yx(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),je(n&&n.onComplete,[e],t)}function eD(e){const t=e.chart,n=t.options.animation;je(n&&n.onProgress,[e],t)}function mS(e){return Bg()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const nc={},Xx=e=>{const t=mS(e);return Object.values(nc).filter(n=>n.canvas===t).pop()};function tD(e,t,n){const r=Object.keys(e);for(const s of r){const o=+s;if(o>=t){const i=e[s];delete e[s],(n>0||o>t)&&(e[o+n]=i)}}}function nD(e,t,n,r){return!n||e.type==="mouseout"?null:r?t:e}var hr;let Bs=(hr=class{static register(...t){An.add(...t),Qx()}static unregister(...t){An.remove(...t),Qx()}constructor(t,n){const r=this.config=new YO(n),s=mS(t),o=Xx(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const i=r.createResolver(r.chartOptionScopes(),this.getContext());this.platform=new(r.platform||vO(s)),this.platform.updateConfig(r);const a=this.platform.acquireContext(s,i.aspectRatio),l=a&&a.canvas,u=l&&l.height,d=l&&l.width;if(this.id=lM(),this.ctx=a,this.canvas=l,this.width=d,this.height=u,this._options=i,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new FO,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=PM(h=>this.update(h),i.resizeDelay||0),this._dataChanges=[],nc[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Vn.listen(this,"complete",Yx),Vn.listen(this,"progress",eD),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:r,height:s,_aspectRatio:o}=this;return ke(t)?n&&o?o:s?r/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return An}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():kx(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return bx(this.canvas,this.ctx),this}stop(){return Vn.stop(this),this}resize(t,n){Vn.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const r=this.options,s=this.canvas,o=r.maintainAspectRatio&&this.aspectRatio,i=this.platform.getMaximumSize(s,t,n,o),a=r.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=i.width,this.height=i.height,this._aspectRatio=this.aspectRatio,kx(this,a,!0)&&(this.notifyPlugins("resize",{size:i}),je(r.onResize,[this,i],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};ye(n,(r,s)=>{r.id=s})}buildOrUpdateScales(){const t=this.options,n=t.scales,r=this.scales,s=Object.keys(r).reduce((i,a)=>(i[a]=!1,i),{});let o=[];n&&(o=o.concat(Object.keys(n).map(i=>{const a=n[i],l=Df(i,a),u=l==="r",d=l==="x";return{options:a,dposition:u?"chartArea":d?"bottom":"left",dtype:u?"radialLinear":d?"category":"linear"}}))),ye(o,i=>{const a=i.options,l=a.id,u=Df(l,a),d=ue(a.type,i.dtype);(a.position===void 0||qx(a.position,u)!==qx(i.dposition))&&(a.position=i.dposition),s[l]=!0;let h=null;if(l in r&&r[l].type===d)h=r[l];else{const f=An.getScale(d);h=new f({id:l,type:d,ctx:this.ctx,chart:this}),r[h.id]=h}h.init(a,t)}),ye(s,(i,a)=>{i||delete r[a]}),ye(r,i=>{ln.configure(this,i,i.options),ln.addBox(this,i)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,r=t.length;if(t.sort((s,o)=>s.index-o.index),r>n){for(let s=n;sn.length&&delete this._stacks,t.forEach((r,s)=>{n.filter(o=>o===r._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let r,s;for(this._removeUnreferencedMetasets(),r=0,s=n.length;r{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const r=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!r.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let i=0;for(let u=0,d=this.data.datasets.length;u{u.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Kx("z","_idx"));const{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){ye(this.scales,t=>{ln.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),r=new Set(t.events);(!cx(n,r)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:r,start:s,count:o}of n){const i=r==="_removeElements"?-o:o;tD(t,s,i)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,r=o=>new Set(t.filter(i=>i[0]===o).map((i,a)=>a+","+i.splice(1).join(","))),s=r(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ln.update(this,this.width,this.height,t);const n=this.chartArea,r=n.width<=0||n.height<=0;this._layers=[],ye(this.boxes,s=>{r&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,r=this.data.datasets.length;n=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,r={meta:t,index:t.index,cancelable:!0},s=oS(this,t);this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(s&&Tu(n,s),t.controller.draw(),s&&Au(n),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return wa(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,r,s){const o=ZL.modes[n];return typeof o=="function"?o(this,t,r,s):[]}getDatasetMeta(t){const n=this.data.datasets[t],r=this._metasets;let s=r.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},r.push(s)),s}getContext(){return this.$context||(this.$context=Vs(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const r=this.getDatasetMeta(t);return typeof r.hidden=="boolean"?!r.hidden:!n.hidden}setDatasetVisibility(t,n){const r=this.getDatasetMeta(t);r.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,r){const s=r?"show":"hide",o=this.getDatasetMeta(t),i=o.controller._resolveAnimations(void 0,s);Uc(n)?(o.data[n].hidden=!r,this.update()):(this.setDatasetVisibility(t,r),i.update(o,{visible:r}),this.update(a=>a.datasetIndex===t?s:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),Vn.remove(this),t=0,n=this.data.datasets.length;t{n.addEventListener(this,o,i),t[o]=i},s=(o,i,a)=>{o.offsetX=i,o.offsetY=a,this._eventHandler(o)};ye(this.options.events,o=>r(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,r=(l,u)=>{n.addEventListener(this,l,u),t[l]=u},s=(l,u)=>{t[l]&&(n.removeEventListener(this,l,u),delete t[l])},o=(l,u)=>{this.canvas&&this.resize(l,u)};let i;const a=()=>{s("attach",a),this.attached=!0,this.resize(),r("resize",o),r("detach",i)};i=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),r("attach",a)},n.isAttached(this.canvas)?a():i()}unbindEvents(){ye(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},ye(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,r){const s=r?"set":"remove";let o,i,a,l;for(n==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),a=0,l=t.length;a{const a=this.getDatasetMeta(o);if(!a)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:a.data[i],index:i}});!$c(r,n)&&(this._active=r,this._lastEvent=null,this._updateHoverStyles(r,n))}notifyPlugins(t,n,r){return this._plugins.notify(this,t,n,r)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,r){const s=this.options.hover,o=(l,u)=>l.filter(d=>!u.some(h=>d.datasetIndex===h.datasetIndex&&d.index===h.index)),i=o(n,t),a=r?t:o(t,n);i.length&&this.updateHoverStyle(i,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,n){const r={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},s=i=>(i.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",r,s)===!1)return;const o=this._handleEvent(t,n,r.inChartArea);return r.cancelable=!1,this.notifyPlugins("afterEvent",r,s),(o||r.changed)&&this.render(),this}_handleEvent(t,n,r){const{_active:s=[],options:o}=this,i=n,a=this._getActiveElements(t,s,r,i),l=pM(t),u=nD(t,this._lastEvent,r,l);r&&(this._lastEvent=null,je(o.onHover,[t,a,this],this),l&&je(o.onClick,[t,a,this],this));const d=!$c(a,s);return(d||n)&&(this._active=a,this._updateHoverStyles(a,s,n)),this._lastEvent=u,d}_getActiveElements(t,n,r,s){if(t.type==="mouseout")return[];if(!r)return n;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,s)}},Z(hr,"defaults",Fe),Z(hr,"instances",nc),Z(hr,"overrides",Ls),Z(hr,"registry",An),Z(hr,"version",JO),Z(hr,"getChart",Xx),hr);function Qx(){return ye(Bs.instances,e=>e._plugins.invalidate())}function rD(e,t,n){const{startAngle:r,x:s,y:o,outerRadius:i,innerRadius:a,options:l}=t,{borderWidth:u,borderJoinStyle:d}=l,h=Math.min(u/i,Ut(r-n));if(e.beginPath(),e.arc(s,o,i-u/2,r+h/2,n-h/2),a>0){const f=Math.min(u/a,Ut(r-n));e.arc(s,o,a+u/2,n-f/2,r+f/2,!0)}else{const f=Math.min(u/2,i*Ut(r-n));if(d==="round")e.arc(s,o,f,n-xe/2,r+xe/2,!0);else if(d==="bevel"){const p=2*f*f,g=-p*Math.cos(n+xe/2)+s,m=-p*Math.sin(n+xe/2)+o,y=p*Math.cos(r+xe/2)+s,x=p*Math.sin(r+xe/2)+o;e.lineTo(g,m),e.lineTo(y,x)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip("evenodd")}function sD(e,t,n){const{startAngle:r,pixelMargin:s,x:o,y:i,outerRadius:a,innerRadius:l}=t;let u=s/a;e.beginPath(),e.arc(o,i,a,r-u,n+u),l>s?(u=s/l,e.arc(o,i,l,n+u,r-u,!0)):e.arc(o,i,s,n+qe,r-qe),e.closePath(),e.clip()}function oD(e){return Ig(e,["outerStart","outerEnd","innerStart","innerEnd"])}function iD(e,t,n,r){const s=oD(e.options.borderRadius),o=(n-t)/2,i=Math.min(o,r*t/2),a=l=>{const u=(n-Math.min(o,l))*r/2;return _t(l,0,Math.min(o,u))};return{outerStart:a(s.outerStart),outerEnd:a(s.outerEnd),innerStart:_t(s.innerStart,0,i),innerEnd:_t(s.innerEnd,0,i)}}function Ys(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function Kc(e,t,n,r,s,o){const{x:i,y:a,startAngle:l,pixelMargin:u,innerRadius:d}=t,h=Math.max(t.outerRadius+r+n-u,0),f=d>0?d+r+n+u:0;let p=0;const g=s-l;if(r){const W=d>0?d-r:0,M=h>0?h-r:0,H=(W+M)/2,C=H!==0?g*H/(H+r):g;p=(g-C)/2}const m=Math.max(.001,g*h-n/xe)/h,y=(g-m)/2,x=l+y+p,v=s-y-p,{outerStart:b,outerEnd:k,innerStart:w,innerEnd:j}=iD(t,f,h,v-x),N=h-b,_=h-k,P=x+b/N,A=v-k/_,O=f+w,F=f+j,D=x+w/O,U=v-j/F;if(e.beginPath(),o){const W=(P+A)/2;if(e.arc(i,a,h,P,W),e.arc(i,a,h,W,A),k>0){const L=Ys(_,A,i,a);e.arc(L.x,L.y,k,A,v+qe)}const M=Ys(F,v,i,a);if(e.lineTo(M.x,M.y),j>0){const L=Ys(F,U,i,a);e.arc(L.x,L.y,j,v+qe,U+Math.PI)}const H=(v-j/f+(x+w/f))/2;if(e.arc(i,a,f,v-j/f,H,!0),e.arc(i,a,f,H,x+w/f,!0),w>0){const L=Ys(O,D,i,a);e.arc(L.x,L.y,w,D+Math.PI,x-qe)}const C=Ys(N,x,i,a);if(e.lineTo(C.x,C.y),b>0){const L=Ys(N,P,i,a);e.arc(L.x,L.y,b,x-qe,P)}}else{e.moveTo(i,a);const W=Math.cos(P)*h+i,M=Math.sin(P)*h+a;e.lineTo(W,M);const H=Math.cos(A)*h+i,C=Math.sin(A)*h+a;e.lineTo(H,C)}e.closePath()}function aD(e,t,n,r,s){const{fullCircles:o,startAngle:i,circumference:a}=t;let l=t.endAngle;if(o){Kc(e,t,n,r,l,s);for(let u=0;u=xe&&p===0&&d!=="miter"&&rD(e,t,m),o||(Kc(e,t,n,r,m,s),e.stroke())}class Ci extends Zr{constructor(n){super();Z(this,"circumference");Z(this,"endAngle");Z(this,"fullCircles");Z(this,"innerRadius");Z(this,"outerRadius");Z(this,"pixelMargin");Z(this,"startAngle");this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,r,s){const o=this.getProps(["x","y"],s),{angle:i,distance:a}=H2(o,{x:n,y:r}),{startAngle:l,endAngle:u,innerRadius:d,outerRadius:h,circumference:f}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],s),p=(this.options.spacing+this.options.borderWidth)/2,g=ue(f,u-l),m=va(i,l,u)&&l!==u,y=g>=Ae||m,x=bs(a,d+p,h+p);return y&&x}getCenterPoint(n){const{x:r,y:s,startAngle:o,endAngle:i,innerRadius:a,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:u,spacing:d}=this.options,h=(o+i)/2,f=(a+l+d+u)/2;return{x:r+Math.cos(h)*f,y:s+Math.sin(h)*f}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:r,circumference:s}=this,o=(r.offset||0)/4,i=(r.spacing||0)/2,a=r.circular;if(this.pixelMargin=r.borderAlign==="inner"?.33:0,this.fullCircles=s>Ae?Math.floor(s/Ae):0,s===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*o,Math.sin(l)*o);const u=1-Math.sin(Math.min(xe,s||0)),d=o*u;n.fillStyle=r.backgroundColor,n.strokeStyle=r.borderColor,aD(n,this,d,i,a),lD(n,this,d,i,a),n.restore()}}Z(Ci,"id","arc"),Z(Ci,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1}),Z(Ci,"defaultRoutes",{backgroundColor:"backgroundColor"}),Z(Ci,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function yS(e,t,n=t){e.lineCap=ue(n.borderCapStyle,t.borderCapStyle),e.setLineDash(ue(n.borderDash,t.borderDash)),e.lineDashOffset=ue(n.borderDashOffset,t.borderDashOffset),e.lineJoin=ue(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=ue(n.borderWidth,t.borderWidth),e.strokeStyle=ue(n.borderColor,t.borderColor)}function cD(e,t,n){e.lineTo(n.x,n.y)}function uD(e){return e.stepped?$M:e.tension||e.cubicInterpolationMode==="monotone"?HM:cD}function xS(e,t,n={}){const r=e.length,{start:s=0,end:o=r-1}=n,{start:i,end:a}=t,l=Math.max(s,i),u=Math.min(o,a),d=sa&&o>a;return{count:r,start:l,loop:t.loop,ilen:u(i+(u?a-k:k))%o,b=()=>{m!==y&&(e.lineTo(d,y),e.lineTo(d,m),e.lineTo(d,x))};for(l&&(p=s[v(0)],e.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=s[v(f)],p.skip)continue;const k=p.x,w=p.y,j=k|0;j===g?(wy&&(y=w),d=(h*d+k)/++h):(b(),e.lineTo(k,w),g=j,h=0,m=y=w),x=w}b()}function If(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!n?hD:dD}function fD(e){return e.stepped?kL:e.tension||e.cubicInterpolationMode==="monotone"?SL:fs}function pD(e,t,n,r){let s=t._path;s||(s=t._path=new Path2D,t.path(s,n,r)&&s.closePath()),yS(e,t.options),e.stroke(s)}function gD(e,t,n,r){const{segments:s,options:o}=t,i=If(t);for(const a of s)yS(e,o,a.style),e.beginPath(),i(e,t,a,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}const mD=typeof Path2D=="function";function yD(e,t,n,r){mD&&!t.options.segment?pD(e,t,n,r):gD(e,t,n,r)}class bn extends Zr{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,n){const r=this.options;if((r.tension||r.cubicInterpolationMode==="monotone")&&!r.stepped&&!this._pointsUpdated){const s=r.spanGaps?this._loop:this._fullLoop;pL(this._points,r,t,s,n),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=RL(this,this.options.segment))}first(){const t=this.segments,n=this.points;return t.length&&n[t[0].start]}last(){const t=this.segments,n=this.points,r=t.length;return r&&n[t[r-1].end]}interpolate(t,n){const r=this.options,s=t[n],o=this.points,i=sS(this,{property:n,start:s,end:s});if(!i.length)return;const a=[],l=fD(r);let u,d;for(u=0,d=i.length;ut!=="borderDash"&&t!=="fill"});function Jx(e,t,n,r){const s=e.options,{[n]:o}=e.getProps([n],r);return Math.abs(t-o){a=Ou(i,a,s);const l=s[i],u=s[a];r!==null?(o.push({x:l.x,y:r}),o.push({x:u.x,y:r})):n!==null&&(o.push({x:n,y:l.y}),o.push({x:n,y:u.y}))}),o}function Ou(e,t,n){for(;t>e;t--){const r=n[t];if(!isNaN(r.x)&&!isNaN(r.y))break}return t}function Zx(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function bS(e,t){let n=[],r=!1;return We(e)?(r=!0,n=e):n=bD(e,t),n.length?new bn({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function eb(e){return e&&e.fill!==!1}function vD(e,t,n){let s=e[t].fill;const o=[t];let i;if(!n)return s;for(;s!==!1&&o.indexOf(s)===-1;){if(!bt(s))return s;if(i=e[s],!i)return!1;if(i.visible)return s;o.push(s),s=i.fill}return!1}function wD(e,t,n){const r=jD(e);if(he(r))return isNaN(r.value)?!1:r;let s=parseFloat(r);return bt(s)&&Math.floor(s)===s?kD(r[0],t,s,n):["origin","start","end","stack","shape"].indexOf(r)>=0&&r}function kD(e,t,n,r){return(e==="-"||e==="+")&&(n=t+n),n===t||n<0||n>=r?!1:n}function SD(e,t){let n=null;return e==="start"?n=t.bottom:e==="end"?n=t.top:he(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function _D(e,t,n){let r;return e==="start"?r=n:e==="end"?r=t.options.reverse?t.min:t.max:he(e)?r=e.value:r=t.getBaseValue(),r}function jD(e){const t=e.options,n=t.fill;let r=ue(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?"origin":r}function CD(e){const{scale:t,index:n,line:r}=e,s=[],o=r.segments,i=r.points,a=ND(t,n);a.push(bS({x:null,y:t.bottom},r));for(let l=0;l=0;--i){const a=s[i].$filler;a&&(a.line.updateControlPoints(o,a.axis),r&&a.fill&&Kd(e.ctx,a,o))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!=="beforeDatasetsDraw")return;const r=e.getSortedVisibleDatasetMetas();for(let s=r.length-1;s>=0;--s){const o=r[s].$filler;eb(o)&&Kd(e.ctx,o,e.chartArea)}},beforeDatasetDraw(e,t,n){const r=t.meta.$filler;!eb(r)||n.drawTime!=="beforeDatasetDraw"||Kd(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const sb=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},ID=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class ob extends Zr{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,r){this.maxWidth=t,this.maxHeight=n,this._margins=r,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=je(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(r=>t.filter(r,this.chart.data))),t.sort&&(n=n.sort((r,s)=>t.sort(r,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const r=t.labels,s=yt(r.font),o=s.size,i=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=sb(r,o);let u,d;n.font=s.string,this.isHorizontal()?(u=this.maxWidth,d=this._fitRows(i,o,a,l)+10):(d=this.maxHeight,u=this._fitCols(i,s,a,l)+10),this.width=Math.min(u,t.maxWidth||this.maxWidth),this.height=Math.min(d,t.maxHeight||this.maxHeight)}_fitRows(t,n,r,s){const{ctx:o,maxWidth:i,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],d=s+a;let h=t;o.textAlign="left",o.textBaseline="middle";let f=-1,p=-d;return this.legendItems.forEach((g,m)=>{const y=r+n/2+o.measureText(g.text).width;(m===0||u[u.length-1]+y+2*a>i)&&(h+=d,u[u.length-(m>0?0:1)]=0,p+=d,f++),l[m]={left:0,top:p,row:f,width:y,height:s},u[u.length-1]+=y+a}),h}_fitCols(t,n,r,s){const{ctx:o,maxHeight:i,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],d=i-t;let h=a,f=0,p=0,g=0,m=0;return this.legendItems.forEach((y,x)=>{const{itemWidth:v,itemHeight:b}=FD(r,n,o,y,s);x>0&&p+b+2*a>d&&(h+=f+a,u.push({width:f,height:p}),g+=f+a,m++,f=p=0),l[x]={left:g,top:p,col:m,width:v,height:b},f=Math.max(f,v),p+=b+a}),h+=f,u.push({width:f,height:p}),h}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:r,labels:{padding:s},rtl:o}}=this,i=vo(o,this.left,this.width);if(this.isHorizontal()){let a=0,l=pt(r,this.left+s,this.right-this.lineWidths[a]);for(const u of n)a!==u.row&&(a=u.row,l=pt(r,this.left+s,this.right-this.lineWidths[a])),u.top+=this.top+t+s,u.left=i.leftForLtr(i.x(l),u.width),l+=u.width+s}else{let a=0,l=pt(r,this.top+t+s,this.bottom-this.columnSizes[a].height);for(const u of n)u.col!==a&&(a=u.col,l=pt(r,this.top+t+s,this.bottom-this.columnSizes[a].height)),u.top=l,u.left+=this.left+s,u.left=i.leftForLtr(i.x(u.left),u.width),l+=u.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;Tu(t,this),this._draw(),Au(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:r,ctx:s}=this,{align:o,labels:i}=t,a=Fe.color,l=vo(t.rtl,this.left,this.width),u=yt(i.font),{padding:d}=i,h=u.size,f=h/2;let p;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=u.string;const{boxWidth:g,boxHeight:m,itemHeight:y}=sb(i,h),x=function(j,N,_){if(isNaN(g)||g<=0||isNaN(m)||m<0)return;s.save();const P=ue(_.lineWidth,1);if(s.fillStyle=ue(_.fillStyle,a),s.lineCap=ue(_.lineCap,"butt"),s.lineDashOffset=ue(_.lineDashOffset,0),s.lineJoin=ue(_.lineJoin,"miter"),s.lineWidth=P,s.strokeStyle=ue(_.strokeStyle,a),s.setLineDash(ue(_.lineDash,[])),i.usePointStyle){const A={radius:m*Math.SQRT2/2,pointStyle:_.pointStyle,rotation:_.rotation,borderWidth:P},O=l.xPlus(j,g/2),F=N+f;K2(s,A,O,F,i.pointStyleWidth&&g)}else{const A=N+Math.max((h-m)/2,0),O=l.leftForLtr(j,g),F=Wi(_.borderRadius);s.beginPath(),Object.values(F).some(D=>D!==0)?Mf(s,{x:O,y:A,w:g,h:m,radius:F}):s.rect(O,A,g,m),s.fill(),P!==0&&s.stroke()}s.restore()},v=function(j,N,_){ka(s,_.text,j,N+y/2,u,{strikethrough:_.hidden,textAlign:l.textAlign(_.textAlign)})},b=this.isHorizontal(),k=this._computeTitleHeight();b?p={x:pt(o,this.left+d,this.right-r[0]),y:this.top+d+k,line:0}:p={x:this.left+d,y:pt(o,this.top+k+d,this.bottom-n[0].height),line:0},eS(this.ctx,t.textDirection);const w=y+d;this.legendItems.forEach((j,N)=>{s.strokeStyle=j.fontColor,s.fillStyle=j.fontColor;const _=s.measureText(j.text).width,P=l.textAlign(j.textAlign||(j.textAlign=i.textAlign)),A=g+f+_;let O=p.x,F=p.y;l.setWidth(this.width),b?N>0&&O+A+d>this.right&&(F=p.y+=w,p.line++,O=p.x=pt(o,this.left+d,this.right-r[p.line])):N>0&&F+w>this.bottom&&(O=p.x=O+n[p.line].width+d,p.line++,F=p.y=pt(o,this.top+k+d,this.bottom-n[p.line].height));const D=l.x(O);if(x(D,F,j),O=RM(P,O+g+f,b?O+A:this.right,t.rtl),v(l.x(O),F,j),b)p.x+=A+d;else if(typeof j.text!="string"){const U=u.lineHeight;p.y+=wS(j,U)+d}else p.y+=w}),tS(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,r=yt(n.font),s=hn(n.padding);if(!n.display)return;const o=vo(t.rtl,this.left,this.width),i=this.ctx,a=n.position,l=r.size/2,u=s.top+l;let d,h=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),d=this.top+u,h=pt(t.align,h,this.right-f);else{const g=this.columnSizes.reduce((m,y)=>Math.max(m,y.height),0);d=u+pt(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const p=pt(a,h,h+f);i.textAlign=o.textAlign(Lg(a)),i.textBaseline="middle",i.strokeStyle=n.color,i.fillStyle=n.color,i.font=r.string,ka(i,n.text,p,d,r)}_computeTitleHeight(){const t=this.options.title,n=yt(t.font),r=hn(t.padding);return t.display?n.lineHeight+r.height:0}_getLegendItemAt(t,n){let r,s,o;if(bs(t,this.left,this.right)&&bs(n,this.top,this.bottom)){for(o=this.legendHitBoxes,r=0;ro.length>i.length?o:i)),t+n.size/2+r.measureText(s).width}function VD(e,t,n){let r=e;return typeof t.text!="string"&&(r=wS(t,n)),r}function wS(e,t){const n=e.text?e.text.length:0;return t*n}function BD(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var Iu={id:"legend",_element:ob,start(e,t,n){const r=e.legend=new ob({ctx:e.ctx,options:n,chart:e});ln.configure(e,r,n),ln.addBox(e,r)},stop(e){ln.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const r=e.legend;ln.configure(e,r,n),r.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const r=t.datasetIndex,s=n.chart;s.isDatasetVisible(r)?(s.hide(r),t.hidden=!0):(s.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:s,color:o,useBorderRadius:i,borderRadius:a}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),d=hn(u.borderWidth);return{text:t[l.index].label,fillStyle:u.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(d.width+d.height)/4,strokeStyle:u.borderColor,pointStyle:r||u.pointStyle,rotation:u.rotation,textAlign:s||u.textAlign,borderRadius:i&&(a||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class kS extends Zr{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n){const r=this.options;if(this.left=0,this.top=0,!r.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=n;const s=We(r.text)?r.text.length:1;this._padding=hn(r.padding);const o=s*yt(r.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:n,left:r,bottom:s,right:o,options:i}=this,a=i.align;let l=0,u,d,h;return this.isHorizontal()?(d=pt(a,r,o),h=n+t,u=o-r):(i.position==="left"?(d=r+t,h=pt(a,s,n),l=xe*-.5):(d=o-t,h=pt(a,n,s),l=xe*.5),u=s-n),{titleX:d,titleY:h,maxWidth:u,rotation:l}}draw(){const t=this.ctx,n=this.options;if(!n.display)return;const r=yt(n.font),o=r.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:l,rotation:u}=this._drawArgs(o);ka(t,n.text,0,0,r,{color:n.color,maxWidth:l,rotation:u,textAlign:Lg(n.align),textBaseline:"middle",translation:[i,a]})}}function $D(e,t){const n=new kS({ctx:e.ctx,options:t,chart:e});ln.configure(e,n,t),ln.addBox(e,n),e.titleBlock=n}var Fu={id:"title",_element:kS,start(e,t,n){$D(e,n)},stop(e){const t=e.titleBlock;ln.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){const r=e.titleBlock;ln.configure(e,r,n),r.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Ni={average(e){if(!e.length)return!1;let t,n,r=new Set,s=0,o=0;for(t=0,n=e.length;ta+l)/r.size,y:s/o}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,s=Number.POSITIVE_INFINITY,o,i,a;for(o=0,i=e.length;o-1?e.split(` -`):e}function HD(e,t){const{element:n,datasetIndex:r,index:s}=t,o=e.getDatasetMeta(r).controller,{label:i,value:a}=o.getLabelAndValue(s);return{chart:e,label:i,parsed:o.getParsed(s),raw:e.data.datasets[r].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:r,element:n}}function ib(e,t){const n=e.chart.ctx,{body:r,footer:s,title:o}=e,{boxWidth:i,boxHeight:a}=t,l=yt(t.bodyFont),u=yt(t.titleFont),d=yt(t.footerFont),h=o.length,f=s.length,p=r.length,g=hn(t.padding);let m=g.height,y=0,x=r.reduce((k,w)=>k+w.before.length+w.lines.length+w.after.length,0);if(x+=e.beforeBody.length+e.afterBody.length,h&&(m+=h*u.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),x){const k=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=p*k+(x-p)*l.lineHeight+(x-1)*t.bodySpacing}f&&(m+=t.footerMarginTop+f*d.lineHeight+(f-1)*t.footerSpacing);let v=0;const b=function(k){y=Math.max(y,n.measureText(k).width+v)};return n.save(),n.font=u.string,me(e.title,b),n.font=l.string,me(e.beforeBody.concat(e.afterBody),b),v=t.displayColors?i+2+t.boxPadding:0,me(r,k=>{me(k.before,b),me(k.lines,b),me(k.after,b)}),v=0,n.font=d.string,me(e.footer,b),n.restore(),y+=g.width,{width:y,height:m}}function UD(e,t){const{y:n,height:r}=t;return ne.height-r/2?"bottom":"center"}function WD(e,t,n,r){const{x:s,width:o}=r,i=n.caretSize+n.caretPadding;if(e==="left"&&s+o+i>t.width||e==="right"&&s-o-i<0)return!0}function GD(e,t,n,r){const{x:s,width:o}=n,{width:i,chartArea:{left:a,right:l}}=e;let u="center";return r==="center"?u=s<=(a+l)/2?"left":"right":s<=o/2?u="left":s>=i-o/2&&(u="right"),WD(u,e,t,n)&&(u="center"),u}function ab(e,t,n){const r=n.yAlign||t.yAlign||UD(e,n);return{xAlign:n.xAlign||t.xAlign||GD(e,t,n,r),yAlign:r}}function qD(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function KD(e,t,n){let{y:r,height:s}=e;return t==="top"?r+=n:t==="bottom"?r-=s+n:r-=s/2,r}function lb(e,t,n,r){const{caretSize:s,caretPadding:o,cornerRadius:i}=e,{xAlign:a,yAlign:l}=n,u=s+o,{topLeft:d,topRight:h,bottomLeft:f,bottomRight:p}=Wi(i);let g=qD(t,a);const m=KD(t,l,u);return l==="center"?a==="left"?g+=u:a==="right"&&(g-=u):a==="left"?g-=Math.max(d,f)+s:a==="right"&&(g+=Math.max(h,p)+s),{x:St(g,0,r.width-t.width),y:St(m,0,r.height-t.height)}}function Rl(e,t,n){const r=hn(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function cb(e){return En([],Bn(e))}function YD(e,t,n){return Vs(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function ub(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const SS={beforeTitle:zn,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex"u"?SS[t].call(n,r):s}class zf extends Zr{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),s=r.enabled&&n.options.animation&&r.animations,o=new iS(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=YD(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,s=Nt(r,"beforeTitle",this,t),o=Nt(r,"title",this,t),i=Nt(r,"afterTitle",this,t);let a=[];return a=En(a,Bn(s)),a=En(a,Bn(o)),a=En(a,Bn(i)),a}getBeforeBody(t,n){return cb(Nt(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,s=[];return me(t,o=>{const i={before:[],lines:[],after:[]},a=ub(r,o);En(i.before,Bn(Nt(a,"beforeLabel",this,o))),En(i.lines,Nt(a,"label",this,o)),En(i.after,Bn(Nt(a,"afterLabel",this,o))),s.push(i)}),s}getAfterBody(t,n){return cb(Nt(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,s=Nt(r,"beforeFooter",this,t),o=Nt(r,"footer",this,t),i=Nt(r,"afterFooter",this,t);let a=[];return a=En(a,Bn(s)),a=En(a,Bn(o)),a=En(a,Bn(i)),a}_createItems(t){const n=this._active,r=this.chart.data,s=[],o=[],i=[];let a=[],l,u;for(l=0,u=n.length;lt.filter(d,h,f,r))),t.itemSort&&(a=a.sort((d,h)=>t.itemSort(d,h,r))),me(a,d=>{const h=ub(t.callbacks,d);s.push(Nt(h,"labelColor",this,d)),o.push(Nt(h,"labelPointStyle",this,d)),i.push(Nt(h,"labelTextColor",this,d))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=i,this.dataPoints=a,a}update(t,n){const r=this.options.setContext(this.getContext()),s=this._active;let o,i=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const a=Ni[r.position].call(this,s,this._eventPosition);i=this._createItems(r),this.title=this.getTitle(i,r),this.beforeBody=this.getBeforeBody(i,r),this.body=this.getBody(i,r),this.afterBody=this.getAfterBody(i,r),this.footer=this.getFooter(i,r);const l=this._size=ib(this,r),u=Object.assign({},a,l),d=ab(this.chart,r,u),h=lb(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,o={opacity:1,x:h.x,y:h.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=i,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,s){const o=this.getCaretPosition(t,r,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(t,n,r){const{xAlign:s,yAlign:o}=this,{caretSize:i,cornerRadius:a}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:h}=Wi(a),{x:f,y:p}=t,{width:g,height:m}=n;let y,x,v,b,k,w;return o==="center"?(k=p+m/2,s==="left"?(y=f,x=y-i,b=k+i,w=k-i):(y=f+g,x=y+i,b=k-i,w=k+i),v=y):(s==="left"?x=f+Math.max(l,d)+i:s==="right"?x=f+g-Math.max(u,h)-i:x=this.caretX,o==="top"?(b=p,k=b-i,y=x-i,v=x+i):(b=p+m,k=b+i,y=x+i,v=x-i),w=b),{x1:y,x2:x,x3:v,y1:b,y2:k,y3:w}}drawTitle(t,n,r){const s=this.title,o=s.length;let i,a,l;if(o){const u=vo(r.rtl,this.x,this.width);for(t.x=Rl(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",i=yt(r.titleFont),a=r.titleSpacing,n.fillStyle=r.titleColor,n.font=i.string,l=0;lv!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,Mf(t,{x:m,y:g,w:u,h:l,radius:x}),t.fill(),t.stroke(),t.fillStyle=i.backgroundColor,t.beginPath(),Mf(t,{x:y,y:g+1,w:u-2,h:l-2,radius:x}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(m,g,u,l),t.strokeRect(m,g,u,l),t.fillStyle=i.backgroundColor,t.fillRect(y,g+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:s}=this,{bodySpacing:o,bodyAlign:i,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:d}=r,h=yt(r.bodyFont);let f=h.lineHeight,p=0;const g=vo(r.rtl,this.x,this.width),m=function(_){n.fillText(_,g.x(t.x+p),t.y+f/2),t.y+=f+o},y=g.textAlign(i);let x,v,b,k,w,j,N;for(n.textAlign=i,n.textBaseline="middle",n.font=h.string,t.x=Rl(this,y,r),n.fillStyle=r.bodyColor,me(this.beforeBody,m),p=a&&y!=="right"?i==="center"?u/2+d:u+2+d:0,k=0,j=s.length;k0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,s=r&&r.x,o=r&&r.y;if(s||o){const i=Ni[t.position].call(this,this._active,this._eventPosition);if(!i)return;const a=this._size=ib(this,t),l=Object.assign({},i,this._size),u=ab(n,t,l),d=lb(t,l,u,n);(s._to!==d.x||o._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const i=hn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(o,t,s,n),eS(t,n.textDirection),o.y+=i.top,this.drawTitle(o,t,n),this.drawBody(o,t,n),this.drawFooter(o,t,n),tS(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,s=t.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),o=!Bc(r,s),i=this._positionChanged(s,n);(o||i)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],i=this._getActiveElements(t,o,n,r),a=this._positionChanged(i,t),l=n||!Bc(i,o)||a;return l&&(this._active=i,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,s){const o=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const i=this.chart.getElementsAtEventForMode(t,o.mode,o,r);return o.reverse&&i.reverse(),i}_positionChanged(t,n){const{caretX:r,caretY:s,options:o}=this,i=Ni[o.position].call(this,t,n);return i!==!1&&(r!==i.x||s!==i.y)}}Z(zf,"positioners",Ni);var Fu={id:"tooltip",_element:zf,positioners:Ni,afterInit(e,t,n){n&&(e.tooltip=new zf({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:SS},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const XD=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function QD(e,t,n,r){const s=e.indexOf(t);if(s===-1)return XD(e,t,n,r);const o=e.lastIndexOf(t);return s!==o?n:s}const JD=(e,t)=>e===null?null:St(Math.round(e),0,t);function db(e){const t=this.getLabels();return e>=0&&en.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}Z(Fo,"id","category"),Z(Fo,"defaults",{ticks:{callback:db}});function ZD(e,t){const n=[],{bounds:s,step:o,min:i,max:a,precision:l,count:u,maxTicks:d,maxDigits:h,includeBounds:f}=e,p=o||1,g=d-1,{min:m,max:y}=t,x=!ke(i),v=!ke(a),b=!ke(u),k=(y-m)/(h+1);let w=dx((y-m)/g/p)*p,j,N,_,P;if(w<1e-14&&!x&&!v)return[{value:m},{value:y}];P=Math.ceil(y/w)-Math.floor(m/w),P>g&&(w=dx(P*w/g/p)*p),ke(l)||(j=Math.pow(10,l),w=Math.ceil(w*j)/j),s==="ticks"?(N=Math.floor(m/w)*w,_=Math.ceil(y/w)*w):(N=m,_=y),x&&v&&o&&bM((a-i)/o,w/1e3)?(P=Math.round(Math.min((a-i)/w,d)),w=(a-i)/P,N=i,_=a):b?(N=x?i:N,_=v?a:_,P=u-1,w=(_-N)/P):(P=(_-N)/w,$i(P,Math.round(P),w/1e3)?P=Math.round(P):P=Math.ceil(P));const A=Math.max(hx(w),hx(N));j=Math.pow(10,ke(l)?A:l),N=Math.round(N*j)/j,_=Math.round(_*j)/j;let O=0;for(x&&(f&&N!==i?(n.push({value:i}),Na)break;n.push({value:F})}return v&&f&&_!==a?n.length&&$i(n[n.length-1].value,a,hb(a,k,e))?n[n.length-1].value=a:n.push({value:a}):(!v||_===a)&&n.push({value:_}),n}function hb(e,t,{horizontal:n,minRotation:r}){const s=Yn(r),o=(n?Math.sin(s):Math.cos(s))||.001,i=.75*t*(""+e).length;return Math.min(t/o,i)}class eI extends Yo{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return ke(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:s,max:o}=this;const i=l=>s=n?s:l,a=l=>o=r?o:l;if(t){const l=Oo(s),u=Oo(o);l<0&&u<0?a(0):l>0&&u>0&&i(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);a(o+l),t||i(s-l)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,s;return r?(s=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const s={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,i=ZD(s,o);return t.bounds==="ticks"&&vM(i,this,"value"),t.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const s=(r-n)/Math.max(t.length-1,1)/2;n-=s,r+=s}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return Dg(t,this.chart.options.locale,this.options.ticks.format)}}class zo extends eI{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=bt(t)?t:0,this.max=bt(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=Yn(this.options.ticks.minRotation),s=(t?Math.sin(r):Math.cos(r))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}Z(zo,"id","linear"),Z(zo,"defaults",{ticks:{callback:q2.formatters.numeric}});const zu={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Et=Object.keys(zu);function fb(e,t){return e-t}function pb(e,t){if(ke(t))return null;const n=e._adapter,{parser:r,round:s,isoWeekday:o}=e._parseOpts;let i=t;return typeof r=="function"&&(i=r(i)),bt(i)||(i=typeof r=="string"?n.parse(i,r):n.parse(i)),i===null?null:(s&&(i=s==="week"&&(ba(o)||o===!0)?n.startOf(i,"isoWeek",o):n.startOf(i,s)),+i)}function gb(e,t,n,r){const s=Et.length;for(let o=Et.indexOf(e);o=Et.indexOf(n);o--){const i=Et[o];if(zu[i].common&&e._adapter.diff(s,r,i)>=t-1)return i}return Et[n?Et.indexOf(n):0]}function nI(e){for(let t=Et.indexOf(e)+1,n=Et.length;t=t?n[r]:n[s];e[o]=!0}}function rI(e,t,n,r){const s=e._adapter,o=+s.startOf(t[0].value,r),i=t[t.length-1].value;let a,l;for(a=o;a<=i;a=+s.add(a,1,r))l=n[a],l>=0&&(t[l].major=!0);return t}function yb(e,t,n){const r=[],s={},o=t.length;let i,a;for(i=0;i+t.value))}initOffsets(t=[]){let n=0,r=0,s,o;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?r=o:r=(o-this.getDecimalForValue(t[t.length-2]))/2);const i=t.length<3?.5:.25;n=St(n,0,i),r=St(r,0,i),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,s=this.options,o=s.time,i=o.unit||gb(o.minUnit,n,r,this._getLabelCapacity(n)),a=ue(s.ticks.stepSize,1),l=i==="week"?o.isoWeekday:!1,u=ba(l)||l===!0,d={};let h=n,f,p;if(u&&(h=+t.startOf(h,"isoWeek",l)),h=+t.startOf(h,u?"day":i),t.diff(r,n,i)>1e5*a)throw new Error(n+" and "+r+" are too far apart with stepSize of "+a+" "+i);const g=s.ticks.source==="data"&&this.getDataTimestamps();for(f=h,p=0;f+m)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,o=this._unit,i=n||s[o];return this._adapter.format(t,i)}_tickFormatFunction(t,n,r,s){const o=this.options,i=o.ticks.callback;if(i)return je(i,[t,n,r],this);const a=o.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&a[l],h=u&&a[u],f=r[n],p=u&&h&&f&&f.major;return this._adapter.format(t,s||(p?h:d))}generateTickLabels(t){let n,r,s;for(n=0,r=t.length;n0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,r=s.length;n=e[r].pos&&t<=e[s].pos&&({lo:r,hi:s}=vs(e,"pos",t)),{pos:o,time:a}=e[r],{pos:i,time:l}=e[s]):(t>=e[r].time&&t<=e[s].time&&({lo:r,hi:s}=vs(e,"time",t)),{time:o,pos:a}=e[r],{time:i,pos:l}=e[s]);const u=i-o;return u?a+(l-a)*(t-o)/u:a}class xb extends Kc{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=El(n,this.min),this._tableRange=El(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,s=[],o=[];let i,a,l,u,d;for(i=0,a=t.length;i=n&&u<=r&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(i=0,a=s.length;is-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(El(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return El(this._table,r*this._tableRange+this._minPos,!0)}}Z(xb,"id","timeseries"),Z(xb,"defaults",Kc.defaults);const _S="label";function bb(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function sI(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function jS(e,t){e.labels=t}function CS(e,t,n=_S){const r=[];e.datasets=t.map(s=>{const o=e.datasets.find(i=>i[n]===s[n]);return!o||!s.data||r.includes(o)?{...s}:(r.push(o),Object.assign(o,s),o)})}function oI(e,t=_S){const n={labels:[],datasets:[]};return jS(n,e.labels),CS(n,e.datasets,t),n}function iI(e,t){const{height:n=150,width:r=300,redraw:s=!1,datasetIdKey:o,type:i,data:a,options:l,plugins:u=[],fallbackContent:d,updateMode:h,...f}=e,p=S.useRef(null),g=S.useRef(null),m=()=>{p.current&&(g.current=new Bs(p.current,{type:i,data:oI(a,o),options:l&&{...l},plugins:u}),bb(t,g.current))},y=()=>{bb(t,null),g.current&&(g.current.destroy(),g.current=null)};return S.useEffect(()=>{!s&&g.current&&l&&sI(g.current,l)},[s,l]),S.useEffect(()=>{!s&&g.current&&jS(g.current.config.data,a.labels)},[s,a.labels]),S.useEffect(()=>{!s&&g.current&&a.datasets&&CS(g.current.config.data,a.datasets,o)},[s,a.datasets]),S.useEffect(()=>{g.current&&(s?(y(),setTimeout(m)):g.current.update(h))},[s,l,a.labels,a.datasets,h]),S.useEffect(()=>{g.current&&(y(),setTimeout(m))},[i]),S.useEffect(()=>(m(),()=>y()),[]),c.jsx("canvas",{ref:p,role:"img",height:n,width:r,...f,children:d})}const aI=S.forwardRef(iI);function NS(e,t){return Bs.register(t),S.forwardRef((n,r)=>c.jsx(aI,{...n,ref:r,type:e}))}const Vo=NS("line",Zl),lI=NS("pie",Lf);Bs.register(Fo,zo,Cs,bn,Iu,Fu,Du,Ou);const cI={Total:"#6B7280"},vb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000","#808000","#000075","#000000"];function uI(){var x,v,b,k;const[e,t]=S.useState("7d"),{data:n,loading:r}=XT(e),s=S.useMemo(()=>{var j;const w={Total:"#6B7280"};return(j=n==null?void 0:n.endpoint_chart_data)!=null&&j.datasets&&Object.keys(n.endpoint_chart_data.datasets).sort().forEach((_,P)=>{w[_]=vb[P%vb.length]}),w},[n]),[o,i]=S.useState({Total:!0});S.useEffect(()=>{var w;(w=n==null?void 0:n.endpoint_chart_data)!=null&&w.datasets&&i(j=>{const N={...j};return Object.keys(n.endpoint_chart_data.datasets).forEach(_=>{N[_]===void 0&&(N[_]=!0)}),N})},[n]);const a=S.useMemo(()=>{var j;const w=[{label:"Total",value:"Total",color:s.Total}];return(j=n==null?void 0:n.endpoint_chart_data)!=null&&j.datasets&&Object.keys(n.endpoint_chart_data.datasets).sort().forEach(_=>{w.push({label:_.replace("/v1/",""),value:_,color:s[_]})}),w},[n,s]),l=S.useMemo(()=>Object.keys(o).filter(w=>o[w]!==!1),[o]),u=w=>{const j={};a.forEach(N=>{j[N.value]=w.includes(N.value)}),i(j)},d=((x=n==null?void 0:n.endpoint_chart_data)==null?void 0:x.datasets)||{},h={labels:((v=n==null?void 0:n.endpoint_chart_data)==null?void 0:v.labels)||((b=n==null?void 0:n.chart_data)==null?void 0:b.labels)||[],datasets:[...Object.entries(d).map(([w,j])=>({label:w,data:j,borderColor:s[w]||"#6B7280",backgroundColor:"transparent",tension:.4,borderWidth:2,hidden:o[w]===!1})),{label:"Total",data:((k=n==null?void 0:n.chart_data)==null?void 0:k.data)||[],borderColor:cI.Total,backgroundColor:"transparent",borderWidth:3,tension:.4,hidden:o.Total===!1}]},f={labels:(n==null?void 0:n.latency_chart.labels)||[],datasets:[{label:"Avg Latency (ms)",data:(n==null?void 0:n.latency_chart.data.map(w=>w*1e3))||[],fill:!0,backgroundColor:w=>{const N=w.chart.ctx.createLinearGradient(0,0,0,200);return N.addColorStop(0,"rgba(59, 130, 246, 0.2)"),N.addColorStop(1,"rgba(59, 130, 246, 0)"),N},borderColor:"#3b82f6",tension:.4}]},p={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,backgroundColor:"rgba(0, 0, 0, 0.8)",titleColor:"#fff",bodyColor:"#fff",borderColor:"rgba(255, 255, 255, 0.1)",borderWidth:1,padding:10}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156, 163, 175, 0.8)"}},y:{grid:{color:"rgba(156, 163, 175, 0.1)"},ticks:{color:"rgba(156, 163, 175, 0.8)"},beginAtZero:!0}},interaction:{mode:"nearest",axis:"x",intersect:!1}};if(r)return c.jsxs("div",{className:"space-y-6 ",children:[c.jsx(rx,{}),c.jsx("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:c.jsxs("div",{children:[c.jsx(ge,{className:"h-8 w-48 mb-2"}),c.jsx(ge,{className:"h-4 w-64"})]})}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[1,2,3].map(w=>c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm",children:[c.jsx("div",{className:"flex items-center justify-between mb-4",children:c.jsx(ge,{className:"h-8 w-8 rounded-lg"})}),c.jsx(ge,{className:"h-8 w-32 mb-1"}),c.jsx(ge,{className:"h-3 w-16"})]},w))}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsxs("div",{className:"lg:col-span-2 bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[400px] flex flex-col",children:[c.jsx("div",{className:"flex justify-between mb-6",children:c.jsxs("div",{children:[c.jsx(ge,{className:"h-6 w-48 mb-2"}),c.jsx(ge,{className:"h-4 w-64"})]})}),c.jsx(ge,{className:"h-10 w-48 mb-4"}),c.jsx(ge,{className:"w-full flex-1 rounded-lg"})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[300px] flex flex-col",children:[c.jsx(ge,{className:"h-6 w-32 mb-2"}),c.jsx(ge,{className:"h-4 w-48 mb-6"}),c.jsx(ge,{className:"w-full flex-1 rounded-lg"})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[300px]",children:[c.jsx(ge,{className:"h-6 w-48 mb-4"}),c.jsx("div",{className:"space-y-4",children:[1,2,3,4].map(w=>c.jsxs("div",{className:"flex justify-between items-center",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx(ge,{className:"h-3 w-3 rounded-full"}),c.jsx(ge,{className:"h-4 w-20"})]}),c.jsx(ge,{className:"h-4 w-16"})]},w))})]})]})]});const g=(n==null?void 0:n.usage.reduce((w,j)=>w+j.used,0))||0,m=n!=null&&n.latency_chart.data.length?(n.latency_chart.data.reduce((w,j)=>w+j,0)/n.latency_chart.data.length*1e3).toFixed(0):"0",y=n==null?void 0:n.usage.reduce((w,j)=>j.used>((w==null?void 0:w.used)||0)?j:w,null);return c.jsxs("div",{className:"space-y-6",children:[c.jsx(rx,{}),c.jsx("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Dashboard"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Overview of your API usage and performance."})]})}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[c.jsx(kt,{label:"Total Requests",value:g.toLocaleString(),icon:yu,color:"bg-blue-500"}),c.jsx(kt,{label:"Avg Latency",value:`${m}ms`,icon:bu,color:"bg-orange-500"}),c.jsx(kt,{label:"Most Used",value:(y==null?void 0:y.endpoint.replace("/v1/",""))||"N/A",icon:og,color:"bg-purple-500"})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsxs(Ms,{title:"Request Volume by Endpoint",description:"Track usage trends for each API endpoint",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,className:"h-[400px]",children:[c.jsx("div",{className:"flex flex-wrap gap-3 mb-4 pb-4 border-b border-gray-200 dark:border-white/10",children:c.jsx(S2,{label:"Select Endpoints",options:a,selected:l,onChange:u})}),c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:p,data:h})})]})}),c.jsx(Ms,{title:"Latency Trends",description:"Average response time over the selected period",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:p,data:f})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Endpoint Breakdown"}),c.jsx("div",{className:"space-y-3",children:n==null?void 0:n.usage.filter(w=>w.endpoint!=="unknown").sort((w,j)=>j.used-w.used).map(w=>{const j=g>0?(w.used/g*100).toFixed(1):"0";return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:s[w.endpoint]||"#6B7280"}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:w.endpoint.replace("/tasks/","").replace("/tasks","tasks")})]}),c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:w.used.toLocaleString()}),c.jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400 w-12 text-right",children:[j,"%"]})]})]},w.endpoint)})})]})]})]})}/** +`):e}function HD(e,t){const{element:n,datasetIndex:r,index:s}=t,o=e.getDatasetMeta(r).controller,{label:i,value:a}=o.getLabelAndValue(s);return{chart:e,label:i,parsed:o.getParsed(s),raw:e.data.datasets[r].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:r,element:n}}function ib(e,t){const n=e.chart.ctx,{body:r,footer:s,title:o}=e,{boxWidth:i,boxHeight:a}=t,l=yt(t.bodyFont),u=yt(t.titleFont),d=yt(t.footerFont),h=o.length,f=s.length,p=r.length,g=hn(t.padding);let m=g.height,y=0,x=r.reduce((k,w)=>k+w.before.length+w.lines.length+w.after.length,0);if(x+=e.beforeBody.length+e.afterBody.length,h&&(m+=h*u.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),x){const k=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=p*k+(x-p)*l.lineHeight+(x-1)*t.bodySpacing}f&&(m+=t.footerMarginTop+f*d.lineHeight+(f-1)*t.footerSpacing);let v=0;const b=function(k){y=Math.max(y,n.measureText(k).width+v)};return n.save(),n.font=u.string,ye(e.title,b),n.font=l.string,ye(e.beforeBody.concat(e.afterBody),b),v=t.displayColors?i+2+t.boxPadding:0,ye(r,k=>{ye(k.before,b),ye(k.lines,b),ye(k.after,b)}),v=0,n.font=d.string,ye(e.footer,b),n.restore(),y+=g.width,{width:y,height:m}}function UD(e,t){const{y:n,height:r}=t;return ne.height-r/2?"bottom":"center"}function WD(e,t,n,r){const{x:s,width:o}=r,i=n.caretSize+n.caretPadding;if(e==="left"&&s+o+i>t.width||e==="right"&&s-o-i<0)return!0}function GD(e,t,n,r){const{x:s,width:o}=n,{width:i,chartArea:{left:a,right:l}}=e;let u="center";return r==="center"?u=s<=(a+l)/2?"left":"right":s<=o/2?u="left":s>=i-o/2&&(u="right"),WD(u,e,t,n)&&(u="center"),u}function ab(e,t,n){const r=n.yAlign||t.yAlign||UD(e,n);return{xAlign:n.xAlign||t.xAlign||GD(e,t,n,r),yAlign:r}}function qD(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function KD(e,t,n){let{y:r,height:s}=e;return t==="top"?r+=n:t==="bottom"?r-=s+n:r-=s/2,r}function lb(e,t,n,r){const{caretSize:s,caretPadding:o,cornerRadius:i}=e,{xAlign:a,yAlign:l}=n,u=s+o,{topLeft:d,topRight:h,bottomLeft:f,bottomRight:p}=Wi(i);let g=qD(t,a);const m=KD(t,l,u);return l==="center"?a==="left"?g+=u:a==="right"&&(g-=u):a==="left"?g-=Math.max(d,f)+s:a==="right"&&(g+=Math.max(h,p)+s),{x:_t(g,0,r.width-t.width),y:_t(m,0,r.height-t.height)}}function Rl(e,t,n){const r=hn(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function cb(e){return En([],Bn(e))}function YD(e,t,n){return Vs(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function ub(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const SS={beforeTitle:zn,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex"u"?SS[t].call(n,r):s}class zf extends Zr{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),s=r.enabled&&n.options.animation&&r.animations,o=new iS(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=YD(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,s=Pt(r,"beforeTitle",this,t),o=Pt(r,"title",this,t),i=Pt(r,"afterTitle",this,t);let a=[];return a=En(a,Bn(s)),a=En(a,Bn(o)),a=En(a,Bn(i)),a}getBeforeBody(t,n){return cb(Pt(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,s=[];return ye(t,o=>{const i={before:[],lines:[],after:[]},a=ub(r,o);En(i.before,Bn(Pt(a,"beforeLabel",this,o))),En(i.lines,Pt(a,"label",this,o)),En(i.after,Bn(Pt(a,"afterLabel",this,o))),s.push(i)}),s}getAfterBody(t,n){return cb(Pt(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,s=Pt(r,"beforeFooter",this,t),o=Pt(r,"footer",this,t),i=Pt(r,"afterFooter",this,t);let a=[];return a=En(a,Bn(s)),a=En(a,Bn(o)),a=En(a,Bn(i)),a}_createItems(t){const n=this._active,r=this.chart.data,s=[],o=[],i=[];let a=[],l,u;for(l=0,u=n.length;lt.filter(d,h,f,r))),t.itemSort&&(a=a.sort((d,h)=>t.itemSort(d,h,r))),ye(a,d=>{const h=ub(t.callbacks,d);s.push(Pt(h,"labelColor",this,d)),o.push(Pt(h,"labelPointStyle",this,d)),i.push(Pt(h,"labelTextColor",this,d))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=i,this.dataPoints=a,a}update(t,n){const r=this.options.setContext(this.getContext()),s=this._active;let o,i=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const a=Ni[r.position].call(this,s,this._eventPosition);i=this._createItems(r),this.title=this.getTitle(i,r),this.beforeBody=this.getBeforeBody(i,r),this.body=this.getBody(i,r),this.afterBody=this.getAfterBody(i,r),this.footer=this.getFooter(i,r);const l=this._size=ib(this,r),u=Object.assign({},a,l),d=ab(this.chart,r,u),h=lb(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,o={opacity:1,x:h.x,y:h.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=i,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,s){const o=this.getCaretPosition(t,r,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(t,n,r){const{xAlign:s,yAlign:o}=this,{caretSize:i,cornerRadius:a}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:h}=Wi(a),{x:f,y:p}=t,{width:g,height:m}=n;let y,x,v,b,k,w;return o==="center"?(k=p+m/2,s==="left"?(y=f,x=y-i,b=k+i,w=k-i):(y=f+g,x=y+i,b=k-i,w=k+i),v=y):(s==="left"?x=f+Math.max(l,d)+i:s==="right"?x=f+g-Math.max(u,h)-i:x=this.caretX,o==="top"?(b=p,k=b-i,y=x-i,v=x+i):(b=p+m,k=b+i,y=x+i,v=x-i),w=b),{x1:y,x2:x,x3:v,y1:b,y2:k,y3:w}}drawTitle(t,n,r){const s=this.title,o=s.length;let i,a,l;if(o){const u=vo(r.rtl,this.x,this.width);for(t.x=Rl(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",i=yt(r.titleFont),a=r.titleSpacing,n.fillStyle=r.titleColor,n.font=i.string,l=0;lv!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,Mf(t,{x:m,y:g,w:u,h:l,radius:x}),t.fill(),t.stroke(),t.fillStyle=i.backgroundColor,t.beginPath(),Mf(t,{x:y,y:g+1,w:u-2,h:l-2,radius:x}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(m,g,u,l),t.strokeRect(m,g,u,l),t.fillStyle=i.backgroundColor,t.fillRect(y,g+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:s}=this,{bodySpacing:o,bodyAlign:i,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:d}=r,h=yt(r.bodyFont);let f=h.lineHeight,p=0;const g=vo(r.rtl,this.x,this.width),m=function(_){n.fillText(_,g.x(t.x+p),t.y+f/2),t.y+=f+o},y=g.textAlign(i);let x,v,b,k,w,j,N;for(n.textAlign=i,n.textBaseline="middle",n.font=h.string,t.x=Rl(this,y,r),n.fillStyle=r.bodyColor,ye(this.beforeBody,m),p=a&&y!=="right"?i==="center"?u/2+d:u+2+d:0,k=0,j=s.length;k0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,s=r&&r.x,o=r&&r.y;if(s||o){const i=Ni[t.position].call(this,this._active,this._eventPosition);if(!i)return;const a=this._size=ib(this,t),l=Object.assign({},i,this._size),u=ab(n,t,l),d=lb(t,l,u,n);(s._to!==d.x||o._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const i=hn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(o,t,s,n),eS(t,n.textDirection),o.y+=i.top,this.drawTitle(o,t,n),this.drawBody(o,t,n),this.drawFooter(o,t,n),tS(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,s=t.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),o=!$c(r,s),i=this._positionChanged(s,n);(o||i)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],i=this._getActiveElements(t,o,n,r),a=this._positionChanged(i,t),l=n||!$c(i,o)||a;return l&&(this._active=i,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,s){const o=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const i=this.chart.getElementsAtEventForMode(t,o.mode,o,r);return o.reverse&&i.reverse(),i}_positionChanged(t,n){const{caretX:r,caretY:s,options:o}=this,i=Ni[o.position].call(this,t,n);return i!==!1&&(r!==i.x||s!==i.y)}}Z(zf,"positioners",Ni);var zu={id:"tooltip",_element:zf,positioners:Ni,afterInit(e,t,n){n&&(e.tooltip=new zf({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:SS},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const XD=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function QD(e,t,n,r){const s=e.indexOf(t);if(s===-1)return XD(e,t,n,r);const o=e.lastIndexOf(t);return s!==o?n:s}const JD=(e,t)=>e===null?null:_t(Math.round(e),0,t);function db(e){const t=this.getLabels();return e>=0&&en.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}Z(Fo,"id","category"),Z(Fo,"defaults",{ticks:{callback:db}});function ZD(e,t){const n=[],{bounds:s,step:o,min:i,max:a,precision:l,count:u,maxTicks:d,maxDigits:h,includeBounds:f}=e,p=o||1,g=d-1,{min:m,max:y}=t,x=!ke(i),v=!ke(a),b=!ke(u),k=(y-m)/(h+1);let w=dx((y-m)/g/p)*p,j,N,_,P;if(w<1e-14&&!x&&!v)return[{value:m},{value:y}];P=Math.ceil(y/w)-Math.floor(m/w),P>g&&(w=dx(P*w/g/p)*p),ke(l)||(j=Math.pow(10,l),w=Math.ceil(w*j)/j),s==="ticks"?(N=Math.floor(m/w)*w,_=Math.ceil(y/w)*w):(N=m,_=y),x&&v&&o&&bM((a-i)/o,w/1e3)?(P=Math.round(Math.min((a-i)/w,d)),w=(a-i)/P,N=i,_=a):b?(N=x?i:N,_=v?a:_,P=u-1,w=(_-N)/P):(P=(_-N)/w,$i(P,Math.round(P),w/1e3)?P=Math.round(P):P=Math.ceil(P));const A=Math.max(hx(w),hx(N));j=Math.pow(10,ke(l)?A:l),N=Math.round(N*j)/j,_=Math.round(_*j)/j;let O=0;for(x&&(f&&N!==i?(n.push({value:i}),Na)break;n.push({value:F})}return v&&f&&_!==a?n.length&&$i(n[n.length-1].value,a,hb(a,k,e))?n[n.length-1].value=a:n.push({value:a}):(!v||_===a)&&n.push({value:_}),n}function hb(e,t,{horizontal:n,minRotation:r}){const s=Yn(r),o=(n?Math.sin(s):Math.cos(s))||.001,i=.75*t*(""+e).length;return Math.min(t/o,i)}class eI extends Yo{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return ke(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:s,max:o}=this;const i=l=>s=n?s:l,a=l=>o=r?o:l;if(t){const l=Oo(s),u=Oo(o);l<0&&u<0?a(0):l>0&&u>0&&i(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);a(o+l),t||i(s-l)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,s;return r?(s=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const s={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,i=ZD(s,o);return t.bounds==="ticks"&&vM(i,this,"value"),t.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const s=(r-n)/Math.max(t.length-1,1)/2;n-=s,r+=s}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return Dg(t,this.chart.options.locale,this.options.ticks.format)}}class zo extends eI{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=bt(t)?t:0,this.max=bt(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=Yn(this.options.ticks.minRotation),s=(t?Math.sin(r):Math.cos(r))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}Z(zo,"id","linear"),Z(zo,"defaults",{ticks:{callback:q2.formatters.numeric}});const Vu={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Tt=Object.keys(Vu);function fb(e,t){return e-t}function pb(e,t){if(ke(t))return null;const n=e._adapter,{parser:r,round:s,isoWeekday:o}=e._parseOpts;let i=t;return typeof r=="function"&&(i=r(i)),bt(i)||(i=typeof r=="string"?n.parse(i,r):n.parse(i)),i===null?null:(s&&(i=s==="week"&&(ba(o)||o===!0)?n.startOf(i,"isoWeek",o):n.startOf(i,s)),+i)}function gb(e,t,n,r){const s=Tt.length;for(let o=Tt.indexOf(e);o=Tt.indexOf(n);o--){const i=Tt[o];if(Vu[i].common&&e._adapter.diff(s,r,i)>=t-1)return i}return Tt[n?Tt.indexOf(n):0]}function nI(e){for(let t=Tt.indexOf(e)+1,n=Tt.length;t=t?n[r]:n[s];e[o]=!0}}function rI(e,t,n,r){const s=e._adapter,o=+s.startOf(t[0].value,r),i=t[t.length-1].value;let a,l;for(a=o;a<=i;a=+s.add(a,1,r))l=n[a],l>=0&&(t[l].major=!0);return t}function yb(e,t,n){const r=[],s={},o=t.length;let i,a;for(i=0;i+t.value))}initOffsets(t=[]){let n=0,r=0,s,o;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?r=o:r=(o-this.getDecimalForValue(t[t.length-2]))/2);const i=t.length<3?.5:.25;n=_t(n,0,i),r=_t(r,0,i),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,s=this.options,o=s.time,i=o.unit||gb(o.minUnit,n,r,this._getLabelCapacity(n)),a=ue(s.ticks.stepSize,1),l=i==="week"?o.isoWeekday:!1,u=ba(l)||l===!0,d={};let h=n,f,p;if(u&&(h=+t.startOf(h,"isoWeek",l)),h=+t.startOf(h,u?"day":i),t.diff(r,n,i)>1e5*a)throw new Error(n+" and "+r+" are too far apart with stepSize of "+a+" "+i);const g=s.ticks.source==="data"&&this.getDataTimestamps();for(f=h,p=0;f+m)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,o=this._unit,i=n||s[o];return this._adapter.format(t,i)}_tickFormatFunction(t,n,r,s){const o=this.options,i=o.ticks.callback;if(i)return je(i,[t,n,r],this);const a=o.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&a[l],h=u&&a[u],f=r[n],p=u&&h&&f&&f.major;return this._adapter.format(t,s||(p?h:d))}generateTickLabels(t){let n,r,s;for(n=0,r=t.length;n0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,r=s.length;n=e[r].pos&&t<=e[s].pos&&({lo:r,hi:s}=vs(e,"pos",t)),{pos:o,time:a}=e[r],{pos:i,time:l}=e[s]):(t>=e[r].time&&t<=e[s].time&&({lo:r,hi:s}=vs(e,"time",t)),{time:o,pos:a}=e[r],{time:i,pos:l}=e[s]);const u=i-o;return u?a+(l-a)*(t-o)/u:a}class xb extends Yc{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=El(n,this.min),this._tableRange=El(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,s=[],o=[];let i,a,l,u,d;for(i=0,a=t.length;i=n&&u<=r&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(i=0,a=s.length;is-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(El(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return El(this._table,r*this._tableRange+this._minPos,!0)}}Z(xb,"id","timeseries"),Z(xb,"defaults",Yc.defaults);const _S="label";function bb(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function sI(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function jS(e,t){e.labels=t}function CS(e,t,n=_S){const r=[];e.datasets=t.map(s=>{const o=e.datasets.find(i=>i[n]===s[n]);return!o||!s.data||r.includes(o)?{...s}:(r.push(o),Object.assign(o,s),o)})}function oI(e,t=_S){const n={labels:[],datasets:[]};return jS(n,e.labels),CS(n,e.datasets,t),n}function iI(e,t){const{height:n=150,width:r=300,redraw:s=!1,datasetIdKey:o,type:i,data:a,options:l,plugins:u=[],fallbackContent:d,updateMode:h,...f}=e,p=S.useRef(null),g=S.useRef(null),m=()=>{p.current&&(g.current=new Bs(p.current,{type:i,data:oI(a,o),options:l&&{...l},plugins:u}),bb(t,g.current))},y=()=>{bb(t,null),g.current&&(g.current.destroy(),g.current=null)};return S.useEffect(()=>{!s&&g.current&&l&&sI(g.current,l)},[s,l]),S.useEffect(()=>{!s&&g.current&&jS(g.current.config.data,a.labels)},[s,a.labels]),S.useEffect(()=>{!s&&g.current&&a.datasets&&CS(g.current.config.data,a.datasets,o)},[s,a.datasets]),S.useEffect(()=>{g.current&&(s?(y(),setTimeout(m)):g.current.update(h))},[s,l,a.labels,a.datasets,h]),S.useEffect(()=>{g.current&&(y(),setTimeout(m))},[i]),S.useEffect(()=>(m(),()=>y()),[]),c.jsx("canvas",{ref:p,role:"img",height:n,width:r,...f,children:d})}const aI=S.forwardRef(iI);function NS(e,t){return Bs.register(t),S.forwardRef((n,r)=>c.jsx(aI,{...n,ref:r,type:e}))}const Vo=NS("line",ec),lI=NS("pie",Lf);Bs.register(Fo,zo,Cs,bn,Fu,zu,Iu,Du);const cI={Total:"#6B7280"},vb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000","#808000","#000075","#000000"];function uI(){var x,v,b,k;const[e,t]=S.useState("7d"),{data:n,loading:r}=XT(e),s=S.useMemo(()=>{var j;const w={Total:"#6B7280"};return(j=n==null?void 0:n.endpoint_chart_data)!=null&&j.datasets&&Object.keys(n.endpoint_chart_data.datasets).sort().forEach((_,P)=>{w[_]=vb[P%vb.length]}),w},[n]),[o,i]=S.useState({Total:!0});S.useEffect(()=>{var w;(w=n==null?void 0:n.endpoint_chart_data)!=null&&w.datasets&&i(j=>{const N={...j};return Object.keys(n.endpoint_chart_data.datasets).forEach(_=>{N[_]===void 0&&(N[_]=!0)}),N})},[n]);const a=S.useMemo(()=>{var j;const w=[{label:"Total",value:"Total",color:s.Total}];return(j=n==null?void 0:n.endpoint_chart_data)!=null&&j.datasets&&Object.keys(n.endpoint_chart_data.datasets).sort().forEach(_=>{w.push({label:_.replace("/v1/",""),value:_,color:s[_]})}),w},[n,s]),l=S.useMemo(()=>Object.keys(o).filter(w=>o[w]!==!1),[o]),u=w=>{const j={};a.forEach(N=>{j[N.value]=w.includes(N.value)}),i(j)},d=((x=n==null?void 0:n.endpoint_chart_data)==null?void 0:x.datasets)||{},h={labels:((v=n==null?void 0:n.endpoint_chart_data)==null?void 0:v.labels)||((b=n==null?void 0:n.chart_data)==null?void 0:b.labels)||[],datasets:[...Object.entries(d).map(([w,j])=>({label:w,data:j,borderColor:s[w]||"#6B7280",backgroundColor:"transparent",tension:.4,borderWidth:2,hidden:o[w]===!1})),{label:"Total",data:((k=n==null?void 0:n.chart_data)==null?void 0:k.data)||[],borderColor:cI.Total,backgroundColor:"transparent",borderWidth:3,tension:.4,hidden:o.Total===!1}]},f={labels:(n==null?void 0:n.latency_chart.labels)||[],datasets:[{label:"Avg Latency (ms)",data:(n==null?void 0:n.latency_chart.data.map(w=>w*1e3))||[],fill:!0,backgroundColor:w=>{const N=w.chart.ctx.createLinearGradient(0,0,0,200);return N.addColorStop(0,"rgba(59, 130, 246, 0.2)"),N.addColorStop(1,"rgba(59, 130, 246, 0)"),N},borderColor:"#3b82f6",tension:.4}]},p={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,backgroundColor:"rgba(0, 0, 0, 0.8)",titleColor:"#fff",bodyColor:"#fff",borderColor:"rgba(255, 255, 255, 0.1)",borderWidth:1,padding:10}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156, 163, 175, 0.8)"}},y:{grid:{color:"rgba(156, 163, 175, 0.1)"},ticks:{color:"rgba(156, 163, 175, 0.8)"},beginAtZero:!0}},interaction:{mode:"nearest",axis:"x",intersect:!1}};if(r)return c.jsxs("div",{className:"space-y-6 ",children:[c.jsx(rx,{}),c.jsx("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:c.jsxs("div",{children:[c.jsx(me,{className:"h-8 w-48 mb-2"}),c.jsx(me,{className:"h-4 w-64"})]})}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[1,2,3].map(w=>c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm",children:[c.jsx("div",{className:"flex items-center justify-between mb-4",children:c.jsx(me,{className:"h-8 w-8 rounded-lg"})}),c.jsx(me,{className:"h-8 w-32 mb-1"}),c.jsx(me,{className:"h-3 w-16"})]},w))}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsxs("div",{className:"lg:col-span-2 bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[400px] flex flex-col",children:[c.jsx("div",{className:"flex justify-between mb-6",children:c.jsxs("div",{children:[c.jsx(me,{className:"h-6 w-48 mb-2"}),c.jsx(me,{className:"h-4 w-64"})]})}),c.jsx(me,{className:"h-10 w-48 mb-4"}),c.jsx(me,{className:"w-full flex-1 rounded-lg"})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[300px] flex flex-col",children:[c.jsx(me,{className:"h-6 w-32 mb-2"}),c.jsx(me,{className:"h-4 w-48 mb-6"}),c.jsx(me,{className:"w-full flex-1 rounded-lg"})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm h-[300px]",children:[c.jsx(me,{className:"h-6 w-48 mb-4"}),c.jsx("div",{className:"space-y-4",children:[1,2,3,4].map(w=>c.jsxs("div",{className:"flex justify-between items-center",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx(me,{className:"h-3 w-3 rounded-full"}),c.jsx(me,{className:"h-4 w-20"})]}),c.jsx(me,{className:"h-4 w-16"})]},w))})]})]})]});const g=(n==null?void 0:n.usage.reduce((w,j)=>w+j.used,0))||0,m=n!=null&&n.latency_chart.data.length?(n.latency_chart.data.reduce((w,j)=>w+j,0)/n.latency_chart.data.length*1e3).toFixed(0):"0",y=n==null?void 0:n.usage.reduce((w,j)=>j.used>((w==null?void 0:w.used)||0)?j:w,null);return c.jsxs("div",{className:"space-y-6",children:[c.jsx(rx,{}),c.jsx("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Dashboard"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Overview of your API usage and performance."})]})}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[c.jsx(St,{label:"Total Requests",value:g.toLocaleString(),icon:xu,color:"bg-blue-500"}),c.jsx(St,{label:"Avg Latency",value:`${m}ms`,icon:vu,color:"bg-orange-500"}),c.jsx(St,{label:"Most Used",value:(y==null?void 0:y.endpoint.replace("/v1/",""))||"N/A",icon:og,color:"bg-purple-500"})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsxs(Ms,{title:"Request Volume by Endpoint",description:"Track usage trends for each API endpoint",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,className:"h-[400px]",children:[c.jsx("div",{className:"flex flex-wrap gap-3 mb-4 pb-4 border-b border-gray-200 dark:border-white/10",children:c.jsx(S2,{label:"Select Endpoints",options:a,selected:l,onChange:u})}),c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:p,data:h})})]})}),c.jsx(Ms,{title:"Latency Trends",description:"Average response time over the selected period",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:p,data:f})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Endpoint Breakdown"}),c.jsx("div",{className:"space-y-3",children:n==null?void 0:n.usage.filter(w=>w.endpoint!=="unknown").sort((w,j)=>j.used-w.used).map(w=>{const j=g>0?(w.used/g*100).toFixed(1):"0";return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:s[w.endpoint]||"#6B7280"}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:w.endpoint.replace("/tasks/","").replace("/tasks","tasks")})]}),c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:w.used.toLocaleString()}),c.jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400 w-12 text-right",children:[j,"%"]})]})]},w.endpoint)})})]})]})]})}/** * table-core * * Copyright (c) TanStack @@ -418,10 +418,10 @@ Error generating stack: `+o.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function jr(e,t){return typeof e=="function"?e(t):e}function Yt(e,t){return n=>{t.setState(r=>({...r,[e]:jr(n,r[e])}))}}function Vu(e){return e instanceof Function}function dI(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function hI(e,t){const n=[],r=s=>{s.forEach(o=>{n.push(o);const i=t(o);i!=null&&i.length&&r(i)})};return r(e),n}function ee(e,t,n){let r=[],s;return o=>{let i;n.key&&n.debug&&(i=Date.now());const a=e(o);if(!(a.length!==r.length||a.some((d,h)=>r[h]!==d)))return s;r=a;let u;if(n.key&&n.debug&&(u=Date.now()),s=t(...a),n==null||n.onChange==null||n.onChange(s),n.key&&n.debug&&n!=null&&n.debug()){const d=Math.round((Date.now()-i)*100)/100,h=Math.round((Date.now()-u)*100)/100,f=h/16,p=(g,m)=>{for(g=String(g);g.length{t.setState(r=>({...r,[e]:jr(n,r[e])}))}}function Bu(e){return e instanceof Function}function dI(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function hI(e,t){const n=[],r=s=>{s.forEach(o=>{n.push(o);const i=t(o);i!=null&&i.length&&r(i)})};return r(e),n}function ee(e,t,n){let r=[],s;return o=>{let i;n.key&&n.debug&&(i=Date.now());const a=e(o);if(!(a.length!==r.length||a.some((d,h)=>r[h]!==d)))return s;r=a;let u;if(n.key&&n.debug&&(u=Date.now()),s=t(...a),n==null||n.onChange==null||n.onChange(s),n.key&&n.debug&&n!=null&&n.debug()){const d=Math.round((Date.now()-i)*100)/100,h=Math.round((Date.now()-u)*100)/100,f=h/16,p=(g,m)=>{for(g=String(g);g.length{var s;return(s=e==null?void 0:e.debugAll)!=null?s:e[t]},key:!1,onChange:r}}function fI(e,t,n,r){const s=()=>{var i;return(i=o.getValue())!=null?i:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:s,getContext:ee(()=>[e,n,t,o],(i,a,l,u)=>({table:i,column:a,row:l,cell:u,getValue:u.getValue,renderValue:u.renderValue}),te(e.options,"debugCells"))};return e._features.forEach(i=>{i.createCell==null||i.createCell(o,n,t,e)},{}),o}function pI(e,t,n,r){var s,o;const a={...e._getDefaultColumnDef(),...t},l=a.accessorKey;let u=(s=(o=a.id)!=null?o:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?s:typeof a.header=="string"?a.header:void 0,d;if(a.accessorFn?d=a.accessorFn:l&&(l.includes(".")?d=f=>{let p=f;for(const m of l.split(".")){var g;p=(g=p)==null?void 0:g[m]}return p}:d=f=>f[a.accessorKey]),!u)throw new Error;let h={id:`${String(u)}`,accessorFn:d,parent:r,depth:n,columnDef:a,columns:[],getFlatColumns:ee(()=>[!0],()=>{var f;return[h,...(f=h.columns)==null?void 0:f.flatMap(p=>p.getFlatColumns())]},te(e.options,"debugColumns")),getLeafColumns:ee(()=>[e._getOrderColumnsFn()],f=>{var p;if((p=h.columns)!=null&&p.length){let g=h.columns.flatMap(m=>m.getLeafColumns());return f(g)}return[h]},te(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(h,e);return h}const dt="debugHeaders";function wb(e,t,n){var r;let o={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const i=[],a=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(a),i.push(l)};return a(o),i},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(i=>{i.createHeader==null||i.createHeader(o,e)}),o}const gI={createTable:e=>{e.getHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,s)=>{var o,i;const a=(o=r==null?void 0:r.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?o:[],l=(i=s==null?void 0:s.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?i:[],u=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(s!=null&&s.includes(h.id)));return Tl(t,[...a,...u,...l],e)},te(e.options,dt)),e.getCenterHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,s)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(s!=null&&s.includes(o.id))),Tl(t,n,e,"center")),te(e.options,dt)),e.getLeftHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var s;const o=(s=r==null?void 0:r.map(i=>n.find(a=>a.id===i)).filter(Boolean))!=null?s:[];return Tl(t,o,e,"left")},te(e.options,dt)),e.getRightHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var s;const o=(s=r==null?void 0:r.map(i=>n.find(a=>a.id===i)).filter(Boolean))!=null?s:[];return Tl(t,o,e,"right")},te(e.options,dt)),e.getFooterGroups=ee(()=>[e.getHeaderGroups()],t=>[...t].reverse(),te(e.options,dt)),e.getLeftFooterGroups=ee(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),te(e.options,dt)),e.getCenterFooterGroups=ee(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),te(e.options,dt)),e.getRightFooterGroups=ee(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),te(e.options,dt)),e.getFlatHeaders=ee(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,dt)),e.getLeftFlatHeaders=ee(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,dt)),e.getCenterFlatHeaders=ee(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,dt)),e.getRightFlatHeaders=ee(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,dt)),e.getCenterLeafHeaders=ee(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,dt)),e.getLeftLeafHeaders=ee(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,dt)),e.getRightLeafHeaders=ee(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,dt)),e.getLeafHeaders=ee(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var s,o,i,a,l,u;return[...(s=(o=t[0])==null?void 0:o.headers)!=null?s:[],...(i=(a=n[0])==null?void 0:a.headers)!=null?i:[],...(l=(u=r[0])==null?void 0:u.headers)!=null?l:[]].map(d=>d.getLeafHeaders()).flat()},te(e.options,dt))}};function Tl(e,t,n,r){var s,o;let i=0;const a=function(f,p){p===void 0&&(p=1),i=Math.max(i,p),f.filter(g=>g.getIsVisible()).forEach(g=>{var m;(m=g.columns)!=null&&m.length&&a(g.columns,p+1)},0)};a(e);let l=[];const u=(f,p)=>{const g={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},m=[];f.forEach(y=>{const x=[...m].reverse()[0],v=y.column.depth===g.depth;let b,k=!1;if(v&&y.column.parent?b=y.column.parent:(b=y.column,k=!0),x&&(x==null?void 0:x.column)===b)x.subHeaders.push(y);else{const w=wb(n,b,{id:[r,p,b.id,y==null?void 0:y.id].filter(Boolean).join("_"),isPlaceholder:k,placeholderId:k?`${m.filter(j=>j.column===b).length}`:void 0,depth:p,index:m.length});w.subHeaders.push(y),m.push(w)}g.headers.push(y),y.headerGroup=g}),l.push(g),p>0&&u(m,p-1)},d=t.map((f,p)=>wb(n,f,{depth:i,index:p}));u(d,i-1),l.reverse();const h=f=>f.filter(g=>g.column.getIsVisible()).map(g=>{let m=0,y=0,x=[0];g.subHeaders&&g.subHeaders.length?(x=[],h(g.subHeaders).forEach(b=>{let{colSpan:k,rowSpan:w}=b;m+=k,x.push(w)})):m=1;const v=Math.min(...x);return y=y+v,g.colSpan=m,g.rowSpan=y,{colSpan:m,rowSpan:y}});return h((s=(o=l[0])==null?void 0:o.headers)!=null?s:[]),l}const Ug=(e,t,n,r,s,o,i)=>{let a={id:t,index:r,original:n,depth:s,parentId:i,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(a._valuesCache.hasOwnProperty(l))return a._valuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return a._valuesCache[l]=u.accessorFn(a.original,r),a._valuesCache[l]},getUniqueValues:l=>{if(a._uniqueValuesCache.hasOwnProperty(l))return a._uniqueValuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return u.columnDef.getUniqueValues?(a._uniqueValuesCache[l]=u.columnDef.getUniqueValues(a.original,r),a._uniqueValuesCache[l]):(a._uniqueValuesCache[l]=[a.getValue(l)],a._uniqueValuesCache[l])},renderValue:l=>{var u;return(u=a.getValue(l))!=null?u:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>hI(a.subRows,l=>l.subRows),getParentRow:()=>a.parentId?e.getRow(a.parentId,!0):void 0,getParentRows:()=>{let l=[],u=a;for(;;){const d=u.getParentRow();if(!d)break;l.push(d),u=d}return l.reverse()},getAllCells:ee(()=>[e.getAllLeafColumns()],l=>l.map(u=>fI(e,a,u,u.id)),te(e.options,"debugRows")),_getAllCellsByColumnId:ee(()=>[a.getAllCells()],l=>l.reduce((u,d)=>(u[d.column.id]=d,u),{}),te(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},PS=(e,t,n)=>{var r,s;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((s=e.getValue(t))==null||(s=s.toString())==null||(s=s.toLowerCase())==null)&&s.includes(o))};PS.autoRemove=e=>kn(e);const RS=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};RS.autoRemove=e=>kn(e);const ES=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};ES.autoRemove=e=>kn(e);const TS=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};TS.autoRemove=e=>kn(e);const AS=(e,t,n)=>!n.some(r=>{var s;return!((s=e.getValue(t))!=null&&s.includes(r))});AS.autoRemove=e=>kn(e)||!(e!=null&&e.length);const MS=(e,t,n)=>n.some(r=>{var s;return(s=e.getValue(t))==null?void 0:s.includes(r)});MS.autoRemove=e=>kn(e)||!(e!=null&&e.length);const LS=(e,t,n)=>e.getValue(t)===n;LS.autoRemove=e=>kn(e);const OS=(e,t,n)=>e.getValue(t)==n;OS.autoRemove=e=>kn(e);const Wg=(e,t,n)=>{let[r,s]=n;const o=e.getValue(t);return o>=r&&o<=s};Wg.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,s=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,i=n===null||Number.isNaN(s)?1/0:s;if(o>i){const a=o;o=i,i=a}return[o,i]};Wg.autoRemove=e=>kn(e)||kn(e[0])&&kn(e[1]);const Hn={includesString:PS,includesStringSensitive:RS,equalsString:ES,arrIncludes:TS,arrIncludesAll:AS,arrIncludesSome:MS,equals:LS,weakEquals:OS,inNumberRange:Wg};function kn(e){return e==null||e===""}const yI={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Yt("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?Hn.includesString:typeof r=="number"?Hn.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?Hn.equals:Array.isArray(r)?Hn.arrIncludes:Hn.weakEquals},e.getFilterFn=()=>{var n,r;return Vu(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:Hn[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,s;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(s=>s.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const s=e.getFilterFn(),o=r==null?void 0:r.find(d=>d.id===e.id),i=jr(n,o?o.value:void 0);if(kb(s,i,e)){var a;return(a=r==null?void 0:r.filter(d=>d.id!==e.id))!=null?a:[]}const l={id:e.id,value:i};if(o){var u;return(u=r==null?void 0:r.map(d=>d.id===e.id?l:d))!=null?u:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=s=>{var o;return(o=jr(t,s))==null?void 0:o.filter(i=>{const a=n.find(l=>l.id===i.id);if(a){const l=a.getFilterFn();if(kb(l,i.value,a))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function kb(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const xI=(e,t,n)=>n.reduce((r,s)=>{const o=s.getValue(e);return r+(typeof o=="number"?o:0)},0),bI=(e,t,n)=>{let r;return n.forEach(s=>{const o=s.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},vI=(e,t,n)=>{let r;return n.forEach(s=>{const o=s.getValue(e);o!=null&&(r=o)&&(r=o)}),r},wI=(e,t,n)=>{let r,s;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r===void 0?i>=i&&(r=s=i):(r>i&&(r=i),s{let n=0,r=0;if(t.forEach(s=>{let o=s.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},SI=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!dI(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),s=n.sort((o,i)=>o-i);return n.length%2!==0?s[r]:(s[r-1]+s[r])/2},_I=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),jI=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,CI=(e,t)=>t.length,Yd={sum:xI,min:bI,max:vI,extent:wI,mean:kI,median:SI,unique:_I,uniqueCount:jI,count:CI},NI={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Yt("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Yd.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Yd.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Vu(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Yd[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var s;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((s=n.subRows)!=null&&s.length)}}};function PI(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(i=>i.id===o)).filter(Boolean),...r]}const RI={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Yt("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=ee(n=>[Gi(t,n)],n=>n.findIndex(r=>r.id===e.id),te(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Gi(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const s=Gi(t,n);return((r=s[s.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=ee(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>s=>{let o=[];if(!(t!=null&&t.length))o=s;else{const i=[...t],a=[...s];for(;a.length&&i.length;){const l=i.shift(),u=a.findIndex(d=>d.id===l);u>-1&&o.push(a.splice(u,1)[0])}o=[...o,...a]}return PI(o,n,r)},te(e.options,"debugTable"))}},Xd=()=>({left:[],right:[]}),EI={getInitialState:e=>({columnPinning:Xd(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Yt("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(s=>s.id).filter(Boolean);t.setColumnPinning(s=>{var o,i;if(n==="right"){var a,l;return{left:((a=s==null?void 0:s.left)!=null?a:[]).filter(h=>!(r!=null&&r.includes(h))),right:[...((l=s==null?void 0:s.right)!=null?l:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var u,d;return{left:[...((u=s==null?void 0:s.left)!=null?u:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((d=s==null?void 0:s.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((o=s==null?void 0:s.left)!=null?o:[]).filter(h=>!(r!=null&&r.includes(h))),right:((i=s==null?void 0:s.right)!=null?i:[]).filter(h=>!(r!=null&&r.includes(h)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var s,o,i;return((s=r.columnDef.enablePinning)!=null?s:!0)&&((o=(i=t.options.enableColumnPinning)!=null?i:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(a=>a.id),{left:r,right:s}=t.getState().columnPinning,o=n.some(a=>r==null?void 0:r.includes(a)),i=n.some(a=>s==null?void 0:s.includes(a));return o?"left":i?"right":!1},e.getPinnedIndex=()=>{var n,r;const s=e.getIsPinned();return s?(n=(r=t.getState().columnPinning)==null||(r=r[s])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,s)=>{const o=[...r??[],...s??[]];return n.filter(i=>!o.includes(i.column.id))},te(t.options,"debugRows")),e.getLeftVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(i=>i.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),te(t.options,"debugRows")),e.getRightVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(o=>n.find(i=>i.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),te(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Xd():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Xd())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var s,o;return!!((s=r.left)!=null&&s.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(s=>s.id===r)).filter(Boolean),te(e.options,"debugColumns")),e.getRightLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(s=>s.id===r)).filter(Boolean),te(e.options,"debugColumns")),e.getCenterLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const s=[...n??[],...r??[]];return t.filter(o=>!s.includes(o.id))},te(e.options,"debugColumns"))}};function TI(e){return e||(typeof document<"u"?document:null)}const Al={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Qd=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),AI={getDefaultColumnDef:()=>Al,getInitialState:e=>({columnSizing:{},columnSizingInfo:Qd(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:Yt("columnSizing",e),onColumnSizingInfoChange:Yt("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,s;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Al.minSize,(r=o??e.columnDef.size)!=null?r:Al.size),(s=e.columnDef.maxSize)!=null?s:Al.maxSize)},e.getStart=ee(n=>[n,Gi(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((s,o)=>s+o.getSize(),0),te(t.options,"debugColumns")),e.getAfter=ee(n=>[n,Gi(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((s,o)=>s+o.getSize(),0),te(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...s}=n;return s})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=s=>{if(s.subHeaders.length)s.subHeaders.forEach(r);else{var o;n+=(o=s.column.getSize())!=null?o:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),s=r==null?void 0:r.getCanResize();return o=>{if(!r||!s||(o.persist==null||o.persist(),Jd(o)&&o.touches&&o.touches.length>1))return;const i=e.getSize(),a=e?e.getLeafHeaders().map(x=>[x.column.id,x.column.getSize()]):[[r.id,r.getSize()]],l=Jd(o)?Math.round(o.touches[0].clientX):o.clientX,u={},d=(x,v)=>{typeof v=="number"&&(t.setColumnSizingInfo(b=>{var k,w;const j=t.options.columnResizeDirection==="rtl"?-1:1,N=(v-((k=b==null?void 0:b.startOffset)!=null?k:0))*j,_=Math.max(N/((w=b==null?void 0:b.startSize)!=null?w:0),-.999999);return b.columnSizingStart.forEach(P=>{let[A,O]=P;u[A]=Math.round(Math.max(O+O*_,0)*100)/100}),{...b,deltaOffset:N,deltaPercentage:_}}),(t.options.columnResizeMode==="onChange"||x==="end")&&t.setColumnSizing(b=>({...b,...u})))},h=x=>d("move",x),f=x=>{d("end",x),t.setColumnSizingInfo(v=>({...v,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=TI(n),g={moveHandler:x=>h(x.clientX),upHandler:x=>{p==null||p.removeEventListener("mousemove",g.moveHandler),p==null||p.removeEventListener("mouseup",g.upHandler),f(x.clientX)}},m={moveHandler:x=>(x.cancelable&&(x.preventDefault(),x.stopPropagation()),h(x.touches[0].clientX),!1),upHandler:x=>{var v;p==null||p.removeEventListener("touchmove",m.moveHandler),p==null||p.removeEventListener("touchend",m.upHandler),x.cancelable&&(x.preventDefault(),x.stopPropagation()),f((v=x.touches[0])==null?void 0:v.clientX)}},y=MI()?{passive:!1}:!1;Jd(o)?(p==null||p.addEventListener("touchmove",m.moveHandler,y),p==null||p.addEventListener("touchend",m.upHandler,y)):(p==null||p.addEventListener("mousemove",g.moveHandler,y),p==null||p.addEventListener("mouseup",g.upHandler,y)),t.setColumnSizingInfo(x=>({...x,startOffset:l,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Qd():(n=e.initialState.columnSizingInfo)!=null?n:Qd())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0}}};let Ml=null;function MI(){if(typeof Ml=="boolean")return Ml;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return Ml=e,Ml}function Jd(e){return e.type==="touchstart"}const LI={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Yt("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const s=e.columns;return(n=s.length?s.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=ee(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),te(t.options,"debugRows")),e.getVisibleCells=ee(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,s)=>[...n,...r,...s],te(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>ee(()=>[r(),r().filter(s=>s.getIsVisible()).map(s=>s.id).join("_")],s=>s.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),te(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((s,o)=>({...s,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Gi(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const OI={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},DI={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Yt("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,s,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Hn.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Vu(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:Hn[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},II={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Yt("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,s;if(!t){e._queue(()=>{t=!0});return}if((r=(s=e.options.autoResetAll)!=null?s:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var s,o;e.setExpanded(r?{}:(s=(o=e.initialState)==null?void 0:o.expanded)!=null?s:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(s=>!s.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const i=o.split(".");r=Math.max(r,i.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var s;const o=r===!0?!0:!!(r!=null&&r[e.id]);let i={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(a=>{i[a]=!0}):i=r,n=(s=n)!=null?s:!o,!o&&n)return{...i,[e.id]:!0};if(o&&!n){const{[e.id]:a,...l}=i;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,s;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((s=e.subRows)!=null&&s.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Vf=0,Bf=10,Zd=()=>({pageIndex:Vf,pageSize:Bf}),FI={getInitialState:e=>({...e,pagination:{...Zd(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:Yt("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,s;if(!t){e._queue(()=>{t=!0});return}if((r=(s=e.options.autoResetAll)!=null?s:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const s=o=>jr(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(s)},e.resetPagination=r=>{var s;e.setPagination(r?Zd():(s=e.initialState.pagination)!=null?s:Zd())},e.setPageIndex=r=>{e.setPagination(s=>{let o=jr(r,s.pageIndex);const i=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,i)),{...s,pageIndex:o}})},e.resetPageIndex=r=>{var s,o;e.setPageIndex(r?Vf:(s=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?s:Vf)},e.resetPageSize=r=>{var s,o;e.setPageSize(r?Bf:(s=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?s:Bf)},e.setPageSize=r=>{e.setPagination(s=>{const o=Math.max(1,jr(r,s.pageSize)),i=s.pageSize*s.pageIndex,a=Math.floor(i/o);return{...s,pageIndex:a,pageSize:o}})},e.setPageCount=r=>e.setPagination(s=>{var o;let i=jr(r,(o=e.options.pageCount)!=null?o:-1);return typeof i=="number"&&(i=Math.max(-1,i)),{...s,pageCount:i}}),e.getPageOptions=ee(()=>[e.getPageCount()],r=>{let s=[];return r&&r>0&&(s=[...new Array(r)].fill(null).map((o,i)=>i)),s},te(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,s=e.getPageCount();return s===-1?!0:s===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},eh=()=>({top:[],bottom:[]}),zI={getInitialState:e=>({rowPinning:eh(),...e}),getDefaultOptions:e=>({onRowPinningChange:Yt("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,s)=>{const o=r?e.getLeafRows().map(l=>{let{id:u}=l;return u}):[],i=s?e.getParentRows().map(l=>{let{id:u}=l;return u}):[],a=new Set([...i,e.id,...o]);t.setRowPinning(l=>{var u,d;if(n==="bottom"){var h,f;return{top:((h=l==null?void 0:l.top)!=null?h:[]).filter(m=>!(a!=null&&a.has(m))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(m=>!(a!=null&&a.has(m))),...Array.from(a)]}}if(n==="top"){var p,g;return{top:[...((p=l==null?void 0:l.top)!=null?p:[]).filter(m=>!(a!=null&&a.has(m))),...Array.from(a)],bottom:((g=l==null?void 0:l.bottom)!=null?g:[]).filter(m=>!(a!=null&&a.has(m)))}}return{top:((u=l==null?void 0:l.top)!=null?u:[]).filter(m=>!(a!=null&&a.has(m))),bottom:((d=l==null?void 0:l.bottom)!=null?d:[]).filter(m=>!(a!=null&&a.has(m)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:s}=t.options;return typeof r=="function"?r(e):(n=r??s)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:s}=t.getState().rowPinning,o=n.some(a=>r==null?void 0:r.includes(a)),i=n.some(a=>s==null?void 0:s.includes(a));return o?"top":i?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const s=e.getIsPinned();if(!s)return-1;const o=(n=s==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(i=>{let{id:a}=i;return a});return(r=o==null?void 0:o.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?eh():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:eh())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var s,o;return!!((s=r.top)!=null&&s.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var s;return((s=e.options.keepPinnedRows)==null||s?(n??[]).map(i=>{const a=e.getRow(i,!0);return a.getIsAllParentsExpanded()?a:null}):(n??[]).map(i=>t.find(a=>a.id===i))).filter(Boolean).map(i=>({...i,position:r}))},e.getTopRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),te(e.options,"debugRows")),e.getBottomRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),te(e.options,"debugRows")),e.getCenterRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const s=new Set([...n??[],...r??[]]);return t.filter(o=>!s.has(o.id))},te(e.options,"debugRows"))}},VI={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Yt("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},s=e.getPreGroupedRowModel().flatRows;return t?s.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):s.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),s={...n};return e.getRowModel().rows.forEach(o=>{$f(s,o.id,r,!0,e)}),s}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?th(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getFilteredSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?th(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getGroupedSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?th(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(s=>s.getCanSelect()&&!n[s.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(s=>s.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(s=>!n[s.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const s=e.getIsSelected();t.setRowSelection(o=>{var i;if(n=typeof n<"u"?n:!s,e.getCanSelect()&&s===n)return o;const a={...o};return $f(a,e.id,n,(i=r==null?void 0:r.selectChildren)!=null?i:!0,t),a})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return Gg(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Hf(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Hf(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var s;n&&e.toggleSelected((s=r.target)==null?void 0:s.checked)}}}},$f=(e,t,n,r,s)=>{var o;const i=s.getRow(t,!0);n?(i.getCanMultiSelect()||Object.keys(e).forEach(a=>delete e[a]),i.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=i.subRows)!=null&&o.length&&i.getCanSelectSubRows()&&i.subRows.forEach(a=>$f(e,a.id,n,r,s))};function th(e,t){const n=e.getState().rowSelection,r=[],s={},o=function(i,a){return i.map(l=>{var u;const d=Gg(l,n);if(d&&(r.push(l),s[l.id]=l),(u=l.subRows)!=null&&u.length&&(l={...l,subRows:o(l.subRows)}),d)return l}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:s}}function Gg(e,t){var n;return(n=t[e.id])!=null?n:!1}function Hf(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let s=!0,o=!1;return e.subRows.forEach(i=>{if(!(o&&!s)&&(i.getCanSelect()&&(Gg(i,t)?o=!0:s=!1),i.subRows&&i.subRows.length)){const a=Hf(i,t);a==="all"?o=!0:(a==="some"&&(o=!0),s=!1)}}),s?"all":o?"some":!1}const Uf=/([0-9]+)/gm,BI=(e,t,n)=>DS(Wr(e.getValue(n)).toLowerCase(),Wr(t.getValue(n)).toLowerCase()),$I=(e,t,n)=>DS(Wr(e.getValue(n)),Wr(t.getValue(n))),HI=(e,t,n)=>qg(Wr(e.getValue(n)).toLowerCase(),Wr(t.getValue(n)).toLowerCase()),UI=(e,t,n)=>qg(Wr(e.getValue(n)),Wr(t.getValue(n))),WI=(e,t,n)=>{const r=e.getValue(n),s=t.getValue(n);return r>s?1:rqg(e.getValue(n),t.getValue(n));function qg(e,t){return e===t?0:e>t?1:-1}function Wr(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function DS(e,t){const n=e.split(Uf).filter(Boolean),r=t.split(Uf).filter(Boolean);for(;n.length&&r.length;){const s=n.shift(),o=r.shift(),i=parseInt(s,10),a=parseInt(o,10),l=[i,a].sort();if(isNaN(l[0])){if(s>o)return 1;if(o>s)return-1;continue}if(isNaN(l[1]))return isNaN(i)?-1:1;if(i>a)return 1;if(a>i)return-1}return n.length-r.length}const mi={alphanumeric:BI,alphanumericCaseSensitive:$I,text:HI,textCaseSensitive:UI,datetime:WI,basic:GI},qI={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Yt("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const s of n){const o=s==null?void 0:s.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return mi.datetime;if(typeof o=="string"&&(r=!0,o.split(Uf).length>1))return mi.alphanumeric}return r?mi.text:mi.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Vu(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:mi[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const s=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(i=>{const a=i==null?void 0:i.find(p=>p.id===e.id),l=i==null?void 0:i.findIndex(p=>p.id===e.id);let u=[],d,h=o?n:s==="desc";if(i!=null&&i.length&&e.getCanMultiSort()&&r?a?d="toggle":d="add":i!=null&&i.length&&l!==i.length-1?d="replace":a?d="toggle":d="replace",d==="toggle"&&(o||s||(d="remove")),d==="add"){var f;u=[...i,{id:e.id,desc:h}],u.splice(0,u.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else d==="toggle"?u=i.map(p=>p.id===e.id?{...p,desc:h}:p):d==="remove"?u=i.filter(p=>p.id!==e.id):u=[{id:e.id,desc:h}];return u})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,s;const o=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(s=t.options.enableMultiRemove)!=null)||s)?!1:i==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(s=>s.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(s=>s.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},KI=[gI,LI,RI,EI,mI,yI,OI,DI,qI,NI,II,FI,zI,VI,AI];function YI(e){var t,n;const r=[...KI,...(t=e._features)!=null?t:[]];let s={_features:r};const o=s._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(s)),{}),i=f=>s.options.mergeOptions?s.options.mergeOptions(o,f):{...o,...f};let l={...{},...(n=e.initialState)!=null?n:{}};s._features.forEach(f=>{var p;l=(p=f.getInitialState==null?void 0:f.getInitialState(l))!=null?p:l});const u=[];let d=!1;const h={_features:r,options:{...o,...e},initialState:l,_queue:f=>{u.push(f),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{s.setState(s.initialState)},setOptions:f=>{const p=jr(f,s.options);s.options=i(p)},getState:()=>s.options.state,setState:f=>{s.options.onStateChange==null||s.options.onStateChange(f)},_getRowId:(f,p,g)=>{var m;return(m=s.options.getRowId==null?void 0:s.options.getRowId(f,p,g))!=null?m:`${g?[g.id,p].join("."):p}`},getCoreRowModel:()=>(s._getCoreRowModel||(s._getCoreRowModel=s.options.getCoreRowModel(s)),s._getCoreRowModel()),getRowModel:()=>s.getPaginationRowModel(),getRow:(f,p)=>{let g=(p?s.getPrePaginationRowModel():s.getRowModel()).rowsById[f];if(!g&&(g=s.getCoreRowModel().rowsById[f],!g))throw new Error;return g},_getDefaultColumnDef:ee(()=>[s.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:g=>{const m=g.header.column.columnDef;return m.accessorKey?m.accessorKey:m.accessorFn?m.id:null},cell:g=>{var m,y;return(m=(y=g.renderValue())==null||y.toString==null?void 0:y.toString())!=null?m:null},...s._features.reduce((g,m)=>Object.assign(g,m.getDefaultColumnDef==null?void 0:m.getDefaultColumnDef()),{}),...f}},te(e,"debugColumns")),_getColumnDefs:()=>s.options.columns,getAllColumns:ee(()=>[s._getColumnDefs()],f=>{const p=function(g,m,y){return y===void 0&&(y=0),g.map(x=>{const v=pI(s,x,y,m),b=x;return v.columns=b.columns?p(b.columns,v,y+1):[],v})};return p(f)},te(e,"debugColumns")),getAllFlatColumns:ee(()=>[s.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),te(e,"debugColumns")),_getAllFlatColumnsById:ee(()=>[s.getAllFlatColumns()],f=>f.reduce((p,g)=>(p[g.id]=g,p),{}),te(e,"debugColumns")),getAllLeafColumns:ee(()=>[s.getAllColumns(),s._getOrderColumnsFn()],(f,p)=>{let g=f.flatMap(m=>m.getLeafColumns());return p(g)},te(e,"debugColumns")),getColumn:f=>s._getAllFlatColumnsById()[f]};Object.assign(s,h);for(let f=0;fee(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(s,o,i){o===void 0&&(o=0);const a=[];for(let u=0;ue._autoResetPageIndex()))}function QI(e){const t=[],n=r=>{var s;t.push(r),(s=r.subRows)!=null&&s.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function JI(e,t,n){return n.options.filterFromLeafRows?ZI(e,t,n):e6(e,t,n)}function ZI(e,t,n){var r;const s=[],o={},i=(r=n.options.maxLeafRowFilterDepth)!=null?r:100,a=function(l,u){u===void 0&&(u=0);const d=[];for(let f=0;fee(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter],(t,n,r)=>{if(!t.rows.length||!(n!=null&&n.length)&&!r){for(let f=0;f{var p;const g=e.getColumn(f.id);if(!g)return;const m=g.getFilterFn();m&&s.push({id:f.id,filterFn:m,resolvedValue:(p=m.resolveFilterValue==null?void 0:m.resolveFilterValue(f.value))!=null?p:f.value})});const i=(n??[]).map(f=>f.id),a=e.getGlobalFilterFn(),l=e.getAllLeafColumns().filter(f=>f.getCanGlobalFilter());r&&a&&l.length&&(i.push("__global__"),l.forEach(f=>{var p;o.push({id:f.id,filterFn:a,resolvedValue:(p=a.resolveFilterValue==null?void 0:a.resolveFilterValue(r))!=null?p:r})}));let u,d;for(let f=0;f{p.columnFiltersMeta[m]=y})}if(o.length){for(let g=0;g{p.columnFiltersMeta[m]=y})){p.columnFilters.__global__=!0;break}}p.columnFilters.__global__!==!0&&(p.columnFilters.__global__=!1)}}const h=f=>{for(let p=0;pe._autoResetPageIndex()))}function n6(e){return t=>ee(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:s,pageIndex:o}=n;let{rows:i,flatRows:a,rowsById:l}=r;const u=s*o,d=u+s;i=i.slice(u,d);let h;t.options.paginateExpandedRows?h={rows:i,flatRows:a,rowsById:l}:h=QI({rows:i,flatRows:a,rowsById:l}),h.flatRows=[];const f=p=>{h.flatRows.push(p),p.subRows.length&&p.subRows.forEach(f)};return h.rows.forEach(f),h},te(t.options,"debugTable"))}function r6(){return e=>ee(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,s=[],o=r.filter(l=>{var u;return(u=e.getColumn(l.id))==null?void 0:u.getCanSort()}),i={};o.forEach(l=>{const u=e.getColumn(l.id);u&&(i[l.id]={sortUndefined:u.columnDef.sortUndefined,invertSorting:u.columnDef.invertSorting,sortingFn:u.getSortingFn()})});const a=l=>{const u=l.map(d=>({...d}));return u.sort((d,h)=>{for(let p=0;p{var h;s.push(d),(h=d.subRows)!=null&&h.length&&(d.subRows=a(d.subRows))}),u};return{rows:a(n.rows),flatRows:s,rowsById:n.rowsById}},te(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** + color: hsl(${Math.max(0,Math.min(120-120*f,120))}deg 100% 31%);`,n==null?void 0:n.key)}return s}}function te(e,t,n,r){return{debug:()=>{var s;return(s=e==null?void 0:e.debugAll)!=null?s:e[t]},key:!1,onChange:r}}function fI(e,t,n,r){const s=()=>{var i;return(i=o.getValue())!=null?i:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:s,getContext:ee(()=>[e,n,t,o],(i,a,l,u)=>({table:i,column:a,row:l,cell:u,getValue:u.getValue,renderValue:u.renderValue}),te(e.options,"debugCells"))};return e._features.forEach(i=>{i.createCell==null||i.createCell(o,n,t,e)},{}),o}function pI(e,t,n,r){var s,o;const a={...e._getDefaultColumnDef(),...t},l=a.accessorKey;let u=(s=(o=a.id)!=null?o:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?s:typeof a.header=="string"?a.header:void 0,d;if(a.accessorFn?d=a.accessorFn:l&&(l.includes(".")?d=f=>{let p=f;for(const m of l.split(".")){var g;p=(g=p)==null?void 0:g[m]}return p}:d=f=>f[a.accessorKey]),!u)throw new Error;let h={id:`${String(u)}`,accessorFn:d,parent:r,depth:n,columnDef:a,columns:[],getFlatColumns:ee(()=>[!0],()=>{var f;return[h,...(f=h.columns)==null?void 0:f.flatMap(p=>p.getFlatColumns())]},te(e.options,"debugColumns")),getLeafColumns:ee(()=>[e._getOrderColumnsFn()],f=>{var p;if((p=h.columns)!=null&&p.length){let g=h.columns.flatMap(m=>m.getLeafColumns());return f(g)}return[h]},te(e.options,"debugColumns"))};for(const f of e._features)f.createColumn==null||f.createColumn(h,e);return h}const ht="debugHeaders";function wb(e,t,n){var r;let o={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const i=[],a=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(a),i.push(l)};return a(o),i},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(i=>{i.createHeader==null||i.createHeader(o,e)}),o}const gI={createTable:e=>{e.getHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,s)=>{var o,i;const a=(o=r==null?void 0:r.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?o:[],l=(i=s==null?void 0:s.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?i:[],u=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(s!=null&&s.includes(h.id)));return Tl(t,[...a,...u,...l],e)},te(e.options,ht)),e.getCenterHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,s)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(s!=null&&s.includes(o.id))),Tl(t,n,e,"center")),te(e.options,ht)),e.getLeftHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var s;const o=(s=r==null?void 0:r.map(i=>n.find(a=>a.id===i)).filter(Boolean))!=null?s:[];return Tl(t,o,e,"left")},te(e.options,ht)),e.getRightHeaderGroups=ee(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var s;const o=(s=r==null?void 0:r.map(i=>n.find(a=>a.id===i)).filter(Boolean))!=null?s:[];return Tl(t,o,e,"right")},te(e.options,ht)),e.getFooterGroups=ee(()=>[e.getHeaderGroups()],t=>[...t].reverse(),te(e.options,ht)),e.getLeftFooterGroups=ee(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),te(e.options,ht)),e.getCenterFooterGroups=ee(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),te(e.options,ht)),e.getRightFooterGroups=ee(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),te(e.options,ht)),e.getFlatHeaders=ee(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,ht)),e.getLeftFlatHeaders=ee(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,ht)),e.getCenterFlatHeaders=ee(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,ht)),e.getRightFlatHeaders=ee(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),te(e.options,ht)),e.getCenterLeafHeaders=ee(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,ht)),e.getLeftLeafHeaders=ee(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,ht)),e.getRightLeafHeaders=ee(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),te(e.options,ht)),e.getLeafHeaders=ee(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var s,o,i,a,l,u;return[...(s=(o=t[0])==null?void 0:o.headers)!=null?s:[],...(i=(a=n[0])==null?void 0:a.headers)!=null?i:[],...(l=(u=r[0])==null?void 0:u.headers)!=null?l:[]].map(d=>d.getLeafHeaders()).flat()},te(e.options,ht))}};function Tl(e,t,n,r){var s,o;let i=0;const a=function(f,p){p===void 0&&(p=1),i=Math.max(i,p),f.filter(g=>g.getIsVisible()).forEach(g=>{var m;(m=g.columns)!=null&&m.length&&a(g.columns,p+1)},0)};a(e);let l=[];const u=(f,p)=>{const g={depth:p,id:[r,`${p}`].filter(Boolean).join("_"),headers:[]},m=[];f.forEach(y=>{const x=[...m].reverse()[0],v=y.column.depth===g.depth;let b,k=!1;if(v&&y.column.parent?b=y.column.parent:(b=y.column,k=!0),x&&(x==null?void 0:x.column)===b)x.subHeaders.push(y);else{const w=wb(n,b,{id:[r,p,b.id,y==null?void 0:y.id].filter(Boolean).join("_"),isPlaceholder:k,placeholderId:k?`${m.filter(j=>j.column===b).length}`:void 0,depth:p,index:m.length});w.subHeaders.push(y),m.push(w)}g.headers.push(y),y.headerGroup=g}),l.push(g),p>0&&u(m,p-1)},d=t.map((f,p)=>wb(n,f,{depth:i,index:p}));u(d,i-1),l.reverse();const h=f=>f.filter(g=>g.column.getIsVisible()).map(g=>{let m=0,y=0,x=[0];g.subHeaders&&g.subHeaders.length?(x=[],h(g.subHeaders).forEach(b=>{let{colSpan:k,rowSpan:w}=b;m+=k,x.push(w)})):m=1;const v=Math.min(...x);return y=y+v,g.colSpan=m,g.rowSpan=y,{colSpan:m,rowSpan:y}});return h((s=(o=l[0])==null?void 0:o.headers)!=null?s:[]),l}const Ug=(e,t,n,r,s,o,i)=>{let a={id:t,index:r,original:n,depth:s,parentId:i,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(a._valuesCache.hasOwnProperty(l))return a._valuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return a._valuesCache[l]=u.accessorFn(a.original,r),a._valuesCache[l]},getUniqueValues:l=>{if(a._uniqueValuesCache.hasOwnProperty(l))return a._uniqueValuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return u.columnDef.getUniqueValues?(a._uniqueValuesCache[l]=u.columnDef.getUniqueValues(a.original,r),a._uniqueValuesCache[l]):(a._uniqueValuesCache[l]=[a.getValue(l)],a._uniqueValuesCache[l])},renderValue:l=>{var u;return(u=a.getValue(l))!=null?u:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>hI(a.subRows,l=>l.subRows),getParentRow:()=>a.parentId?e.getRow(a.parentId,!0):void 0,getParentRows:()=>{let l=[],u=a;for(;;){const d=u.getParentRow();if(!d)break;l.push(d),u=d}return l.reverse()},getAllCells:ee(()=>[e.getAllLeafColumns()],l=>l.map(u=>fI(e,a,u,u.id)),te(e.options,"debugRows")),_getAllCellsByColumnId:ee(()=>[a.getAllCells()],l=>l.reduce((u,d)=>(u[d.column.id]=d,u),{}),te(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},PS=(e,t,n)=>{var r,s;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((s=e.getValue(t))==null||(s=s.toString())==null||(s=s.toLowerCase())==null)&&s.includes(o))};PS.autoRemove=e=>kn(e);const RS=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};RS.autoRemove=e=>kn(e);const ES=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};ES.autoRemove=e=>kn(e);const TS=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};TS.autoRemove=e=>kn(e);const AS=(e,t,n)=>!n.some(r=>{var s;return!((s=e.getValue(t))!=null&&s.includes(r))});AS.autoRemove=e=>kn(e)||!(e!=null&&e.length);const MS=(e,t,n)=>n.some(r=>{var s;return(s=e.getValue(t))==null?void 0:s.includes(r)});MS.autoRemove=e=>kn(e)||!(e!=null&&e.length);const LS=(e,t,n)=>e.getValue(t)===n;LS.autoRemove=e=>kn(e);const OS=(e,t,n)=>e.getValue(t)==n;OS.autoRemove=e=>kn(e);const Wg=(e,t,n)=>{let[r,s]=n;const o=e.getValue(t);return o>=r&&o<=s};Wg.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,s=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,i=n===null||Number.isNaN(s)?1/0:s;if(o>i){const a=o;o=i,i=a}return[o,i]};Wg.autoRemove=e=>kn(e)||kn(e[0])&&kn(e[1]);const Hn={includesString:PS,includesStringSensitive:RS,equalsString:ES,arrIncludes:TS,arrIncludesAll:AS,arrIncludesSome:MS,equals:LS,weakEquals:OS,inNumberRange:Wg};function kn(e){return e==null||e===""}const yI={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Yt("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?Hn.includesString:typeof r=="number"?Hn.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?Hn.equals:Array.isArray(r)?Hn.arrIncludes:Hn.weakEquals},e.getFilterFn=()=>{var n,r;return Bu(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:Hn[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,s;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(s=>s.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const s=e.getFilterFn(),o=r==null?void 0:r.find(d=>d.id===e.id),i=jr(n,o?o.value:void 0);if(kb(s,i,e)){var a;return(a=r==null?void 0:r.filter(d=>d.id!==e.id))!=null?a:[]}const l={id:e.id,value:i};if(o){var u;return(u=r==null?void 0:r.map(d=>d.id===e.id?l:d))!=null?u:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=s=>{var o;return(o=jr(t,s))==null?void 0:o.filter(i=>{const a=n.find(l=>l.id===i.id);if(a){const l=a.getFilterFn();if(kb(l,i.value,a))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function kb(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const xI=(e,t,n)=>n.reduce((r,s)=>{const o=s.getValue(e);return r+(typeof o=="number"?o:0)},0),bI=(e,t,n)=>{let r;return n.forEach(s=>{const o=s.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},vI=(e,t,n)=>{let r;return n.forEach(s=>{const o=s.getValue(e);o!=null&&(r=o)&&(r=o)}),r},wI=(e,t,n)=>{let r,s;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r===void 0?i>=i&&(r=s=i):(r>i&&(r=i),s{let n=0,r=0;if(t.forEach(s=>{let o=s.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},SI=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!dI(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),s=n.sort((o,i)=>o-i);return n.length%2!==0?s[r]:(s[r-1]+s[r])/2},_I=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),jI=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,CI=(e,t)=>t.length,Xd={sum:xI,min:bI,max:vI,extent:wI,mean:kI,median:SI,unique:_I,uniqueCount:jI,count:CI},NI={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Yt("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Xd.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Xd.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Bu(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Xd[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var s;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((s=n.subRows)!=null&&s.length)}}};function PI(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(i=>i.id===o)).filter(Boolean),...r]}const RI={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Yt("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=ee(n=>[Gi(t,n)],n=>n.findIndex(r=>r.id===e.id),te(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=Gi(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const s=Gi(t,n);return((r=s[s.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=ee(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>s=>{let o=[];if(!(t!=null&&t.length))o=s;else{const i=[...t],a=[...s];for(;a.length&&i.length;){const l=i.shift(),u=a.findIndex(d=>d.id===l);u>-1&&o.push(a.splice(u,1)[0])}o=[...o,...a]}return PI(o,n,r)},te(e.options,"debugTable"))}},Qd=()=>({left:[],right:[]}),EI={getInitialState:e=>({columnPinning:Qd(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Yt("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(s=>s.id).filter(Boolean);t.setColumnPinning(s=>{var o,i;if(n==="right"){var a,l;return{left:((a=s==null?void 0:s.left)!=null?a:[]).filter(h=>!(r!=null&&r.includes(h))),right:[...((l=s==null?void 0:s.right)!=null?l:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var u,d;return{left:[...((u=s==null?void 0:s.left)!=null?u:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((d=s==null?void 0:s.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((o=s==null?void 0:s.left)!=null?o:[]).filter(h=>!(r!=null&&r.includes(h))),right:((i=s==null?void 0:s.right)!=null?i:[]).filter(h=>!(r!=null&&r.includes(h)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var s,o,i;return((s=r.columnDef.enablePinning)!=null?s:!0)&&((o=(i=t.options.enableColumnPinning)!=null?i:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(a=>a.id),{left:r,right:s}=t.getState().columnPinning,o=n.some(a=>r==null?void 0:r.includes(a)),i=n.some(a=>s==null?void 0:s.includes(a));return o?"left":i?"right":!1},e.getPinnedIndex=()=>{var n,r;const s=e.getIsPinned();return s?(n=(r=t.getState().columnPinning)==null||(r=r[s])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,s)=>{const o=[...r??[],...s??[]];return n.filter(i=>!o.includes(i.column.id))},te(t.options,"debugRows")),e.getLeftVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(i=>i.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),te(t.options,"debugRows")),e.getRightVisibleCells=ee(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(o=>n.find(i=>i.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),te(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Qd():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Qd())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var s,o;return!!((s=r.left)!=null&&s.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(s=>s.id===r)).filter(Boolean),te(e.options,"debugColumns")),e.getRightLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(s=>s.id===r)).filter(Boolean),te(e.options,"debugColumns")),e.getCenterLeafColumns=ee(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const s=[...n??[],...r??[]];return t.filter(o=>!s.includes(o.id))},te(e.options,"debugColumns"))}};function TI(e){return e||(typeof document<"u"?document:null)}const Al={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Jd=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),AI={getDefaultColumnDef:()=>Al,getInitialState:e=>({columnSizing:{},columnSizingInfo:Jd(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:Yt("columnSizing",e),onColumnSizingInfoChange:Yt("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,s;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Al.minSize,(r=o??e.columnDef.size)!=null?r:Al.size),(s=e.columnDef.maxSize)!=null?s:Al.maxSize)},e.getStart=ee(n=>[n,Gi(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((s,o)=>s+o.getSize(),0),te(t.options,"debugColumns")),e.getAfter=ee(n=>[n,Gi(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((s,o)=>s+o.getSize(),0),te(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...s}=n;return s})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=s=>{if(s.subHeaders.length)s.subHeaders.forEach(r);else{var o;n+=(o=s.column.getSize())!=null?o:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),s=r==null?void 0:r.getCanResize();return o=>{if(!r||!s||(o.persist==null||o.persist(),Zd(o)&&o.touches&&o.touches.length>1))return;const i=e.getSize(),a=e?e.getLeafHeaders().map(x=>[x.column.id,x.column.getSize()]):[[r.id,r.getSize()]],l=Zd(o)?Math.round(o.touches[0].clientX):o.clientX,u={},d=(x,v)=>{typeof v=="number"&&(t.setColumnSizingInfo(b=>{var k,w;const j=t.options.columnResizeDirection==="rtl"?-1:1,N=(v-((k=b==null?void 0:b.startOffset)!=null?k:0))*j,_=Math.max(N/((w=b==null?void 0:b.startSize)!=null?w:0),-.999999);return b.columnSizingStart.forEach(P=>{let[A,O]=P;u[A]=Math.round(Math.max(O+O*_,0)*100)/100}),{...b,deltaOffset:N,deltaPercentage:_}}),(t.options.columnResizeMode==="onChange"||x==="end")&&t.setColumnSizing(b=>({...b,...u})))},h=x=>d("move",x),f=x=>{d("end",x),t.setColumnSizingInfo(v=>({...v,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=TI(n),g={moveHandler:x=>h(x.clientX),upHandler:x=>{p==null||p.removeEventListener("mousemove",g.moveHandler),p==null||p.removeEventListener("mouseup",g.upHandler),f(x.clientX)}},m={moveHandler:x=>(x.cancelable&&(x.preventDefault(),x.stopPropagation()),h(x.touches[0].clientX),!1),upHandler:x=>{var v;p==null||p.removeEventListener("touchmove",m.moveHandler),p==null||p.removeEventListener("touchend",m.upHandler),x.cancelable&&(x.preventDefault(),x.stopPropagation()),f((v=x.touches[0])==null?void 0:v.clientX)}},y=MI()?{passive:!1}:!1;Zd(o)?(p==null||p.addEventListener("touchmove",m.moveHandler,y),p==null||p.addEventListener("touchend",m.upHandler,y)):(p==null||p.addEventListener("mousemove",g.moveHandler,y),p==null||p.addEventListener("mouseup",g.upHandler,y)),t.setColumnSizingInfo(x=>({...x,startOffset:l,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Jd():(n=e.initialState.columnSizingInfo)!=null?n:Jd())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,s)=>r+s.getSize(),0))!=null?t:0}}};let Ml=null;function MI(){if(typeof Ml=="boolean")return Ml;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return Ml=e,Ml}function Zd(e){return e.type==="touchstart"}const LI={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Yt("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const s=e.columns;return(n=s.length?s.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=ee(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),te(t.options,"debugRows")),e.getVisibleCells=ee(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,s)=>[...n,...r,...s],te(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>ee(()=>[r(),r().filter(s=>s.getIsVisible()).map(s=>s.id).join("_")],s=>s.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),te(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((s,o)=>({...s,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function Gi(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const OI={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},DI={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Yt("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,s,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Hn.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Bu(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:Hn[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},II={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Yt("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,s;if(!t){e._queue(()=>{t=!0});return}if((r=(s=e.options.autoResetAll)!=null?s:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var s,o;e.setExpanded(r?{}:(s=(o=e.initialState)==null?void 0:o.expanded)!=null?s:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(s=>!s.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const i=o.split(".");r=Math.max(r,i.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var s;const o=r===!0?!0:!!(r!=null&&r[e.id]);let i={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(a=>{i[a]=!0}):i=r,n=(s=n)!=null?s:!o,!o&&n)return{...i,[e.id]:!0};if(o&&!n){const{[e.id]:a,...l}=i;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,s;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((s=e.subRows)!=null&&s.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},Vf=0,Bf=10,eh=()=>({pageIndex:Vf,pageSize:Bf}),FI={getInitialState:e=>({...e,pagination:{...eh(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:Yt("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,s;if(!t){e._queue(()=>{t=!0});return}if((r=(s=e.options.autoResetAll)!=null?s:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const s=o=>jr(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(s)},e.resetPagination=r=>{var s;e.setPagination(r?eh():(s=e.initialState.pagination)!=null?s:eh())},e.setPageIndex=r=>{e.setPagination(s=>{let o=jr(r,s.pageIndex);const i=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,i)),{...s,pageIndex:o}})},e.resetPageIndex=r=>{var s,o;e.setPageIndex(r?Vf:(s=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?s:Vf)},e.resetPageSize=r=>{var s,o;e.setPageSize(r?Bf:(s=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?s:Bf)},e.setPageSize=r=>{e.setPagination(s=>{const o=Math.max(1,jr(r,s.pageSize)),i=s.pageSize*s.pageIndex,a=Math.floor(i/o);return{...s,pageIndex:a,pageSize:o}})},e.setPageCount=r=>e.setPagination(s=>{var o;let i=jr(r,(o=e.options.pageCount)!=null?o:-1);return typeof i=="number"&&(i=Math.max(-1,i)),{...s,pageCount:i}}),e.getPageOptions=ee(()=>[e.getPageCount()],r=>{let s=[];return r&&r>0&&(s=[...new Array(r)].fill(null).map((o,i)=>i)),s},te(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,s=e.getPageCount();return s===-1?!0:s===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},th=()=>({top:[],bottom:[]}),zI={getInitialState:e=>({rowPinning:th(),...e}),getDefaultOptions:e=>({onRowPinningChange:Yt("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,s)=>{const o=r?e.getLeafRows().map(l=>{let{id:u}=l;return u}):[],i=s?e.getParentRows().map(l=>{let{id:u}=l;return u}):[],a=new Set([...i,e.id,...o]);t.setRowPinning(l=>{var u,d;if(n==="bottom"){var h,f;return{top:((h=l==null?void 0:l.top)!=null?h:[]).filter(m=>!(a!=null&&a.has(m))),bottom:[...((f=l==null?void 0:l.bottom)!=null?f:[]).filter(m=>!(a!=null&&a.has(m))),...Array.from(a)]}}if(n==="top"){var p,g;return{top:[...((p=l==null?void 0:l.top)!=null?p:[]).filter(m=>!(a!=null&&a.has(m))),...Array.from(a)],bottom:((g=l==null?void 0:l.bottom)!=null?g:[]).filter(m=>!(a!=null&&a.has(m)))}}return{top:((u=l==null?void 0:l.top)!=null?u:[]).filter(m=>!(a!=null&&a.has(m))),bottom:((d=l==null?void 0:l.bottom)!=null?d:[]).filter(m=>!(a!=null&&a.has(m)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:s}=t.options;return typeof r=="function"?r(e):(n=r??s)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:s}=t.getState().rowPinning,o=n.some(a=>r==null?void 0:r.includes(a)),i=n.some(a=>s==null?void 0:s.includes(a));return o?"top":i?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const s=e.getIsPinned();if(!s)return-1;const o=(n=s==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(i=>{let{id:a}=i;return a});return(r=o==null?void 0:o.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?th():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:th())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var s,o;return!!((s=r.top)!=null&&s.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var s;return((s=e.options.keepPinnedRows)==null||s?(n??[]).map(i=>{const a=e.getRow(i,!0);return a.getIsAllParentsExpanded()?a:null}):(n??[]).map(i=>t.find(a=>a.id===i))).filter(Boolean).map(i=>({...i,position:r}))},e.getTopRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),te(e.options,"debugRows")),e.getBottomRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),te(e.options,"debugRows")),e.getCenterRows=ee(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const s=new Set([...n??[],...r??[]]);return t.filter(o=>!s.has(o.id))},te(e.options,"debugRows"))}},VI={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Yt("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},s=e.getPreGroupedRowModel().flatRows;return t?s.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):s.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),s={...n};return e.getRowModel().rows.forEach(o=>{$f(s,o.id,r,!0,e)}),s}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?nh(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getFilteredSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?nh(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getGroupedSelectedRowModel=ee(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?nh(e,n):{rows:[],flatRows:[],rowsById:{}},te(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(s=>s.getCanSelect()&&!n[s.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(s=>s.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(s=>!n[s.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const s=e.getIsSelected();t.setRowSelection(o=>{var i;if(n=typeof n<"u"?n:!s,e.getCanSelect()&&s===n)return o;const a={...o};return $f(a,e.id,n,(i=r==null?void 0:r.selectChildren)!=null?i:!0,t),a})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return Gg(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return Hf(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return Hf(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var s;n&&e.toggleSelected((s=r.target)==null?void 0:s.checked)}}}},$f=(e,t,n,r,s)=>{var o;const i=s.getRow(t,!0);n?(i.getCanMultiSelect()||Object.keys(e).forEach(a=>delete e[a]),i.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=i.subRows)!=null&&o.length&&i.getCanSelectSubRows()&&i.subRows.forEach(a=>$f(e,a.id,n,r,s))};function nh(e,t){const n=e.getState().rowSelection,r=[],s={},o=function(i,a){return i.map(l=>{var u;const d=Gg(l,n);if(d&&(r.push(l),s[l.id]=l),(u=l.subRows)!=null&&u.length&&(l={...l,subRows:o(l.subRows)}),d)return l}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:s}}function Gg(e,t){var n;return(n=t[e.id])!=null?n:!1}function Hf(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let s=!0,o=!1;return e.subRows.forEach(i=>{if(!(o&&!s)&&(i.getCanSelect()&&(Gg(i,t)?o=!0:s=!1),i.subRows&&i.subRows.length)){const a=Hf(i,t);a==="all"?o=!0:(a==="some"&&(o=!0),s=!1)}}),s?"all":o?"some":!1}const Uf=/([0-9]+)/gm,BI=(e,t,n)=>DS(Wr(e.getValue(n)).toLowerCase(),Wr(t.getValue(n)).toLowerCase()),$I=(e,t,n)=>DS(Wr(e.getValue(n)),Wr(t.getValue(n))),HI=(e,t,n)=>qg(Wr(e.getValue(n)).toLowerCase(),Wr(t.getValue(n)).toLowerCase()),UI=(e,t,n)=>qg(Wr(e.getValue(n)),Wr(t.getValue(n))),WI=(e,t,n)=>{const r=e.getValue(n),s=t.getValue(n);return r>s?1:rqg(e.getValue(n),t.getValue(n));function qg(e,t){return e===t?0:e>t?1:-1}function Wr(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function DS(e,t){const n=e.split(Uf).filter(Boolean),r=t.split(Uf).filter(Boolean);for(;n.length&&r.length;){const s=n.shift(),o=r.shift(),i=parseInt(s,10),a=parseInt(o,10),l=[i,a].sort();if(isNaN(l[0])){if(s>o)return 1;if(o>s)return-1;continue}if(isNaN(l[1]))return isNaN(i)?-1:1;if(i>a)return 1;if(a>i)return-1}return n.length-r.length}const mi={alphanumeric:BI,alphanumericCaseSensitive:$I,text:HI,textCaseSensitive:UI,datetime:WI,basic:GI},qI={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Yt("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const s of n){const o=s==null?void 0:s.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return mi.datetime;if(typeof o=="string"&&(r=!0,o.split(Uf).length>1))return mi.alphanumeric}return r?mi.text:mi.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Bu(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:mi[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const s=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(i=>{const a=i==null?void 0:i.find(p=>p.id===e.id),l=i==null?void 0:i.findIndex(p=>p.id===e.id);let u=[],d,h=o?n:s==="desc";if(i!=null&&i.length&&e.getCanMultiSort()&&r?a?d="toggle":d="add":i!=null&&i.length&&l!==i.length-1?d="replace":a?d="toggle":d="replace",d==="toggle"&&(o||s||(d="remove")),d==="add"){var f;u=[...i,{id:e.id,desc:h}],u.splice(0,u.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else d==="toggle"?u=i.map(p=>p.id===e.id?{...p,desc:h}:p):d==="remove"?u=i.filter(p=>p.id!==e.id):u=[{id:e.id,desc:h}];return u})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,s;const o=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(s=t.options.enableMultiRemove)!=null)||s)?!1:i==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(s=>s.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(s=>s.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},KI=[gI,LI,RI,EI,mI,yI,OI,DI,qI,NI,II,FI,zI,VI,AI];function YI(e){var t,n;const r=[...KI,...(t=e._features)!=null?t:[]];let s={_features:r};const o=s._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(s)),{}),i=f=>s.options.mergeOptions?s.options.mergeOptions(o,f):{...o,...f};let l={...{},...(n=e.initialState)!=null?n:{}};s._features.forEach(f=>{var p;l=(p=f.getInitialState==null?void 0:f.getInitialState(l))!=null?p:l});const u=[];let d=!1;const h={_features:r,options:{...o,...e},initialState:l,_queue:f=>{u.push(f),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{s.setState(s.initialState)},setOptions:f=>{const p=jr(f,s.options);s.options=i(p)},getState:()=>s.options.state,setState:f=>{s.options.onStateChange==null||s.options.onStateChange(f)},_getRowId:(f,p,g)=>{var m;return(m=s.options.getRowId==null?void 0:s.options.getRowId(f,p,g))!=null?m:`${g?[g.id,p].join("."):p}`},getCoreRowModel:()=>(s._getCoreRowModel||(s._getCoreRowModel=s.options.getCoreRowModel(s)),s._getCoreRowModel()),getRowModel:()=>s.getPaginationRowModel(),getRow:(f,p)=>{let g=(p?s.getPrePaginationRowModel():s.getRowModel()).rowsById[f];if(!g&&(g=s.getCoreRowModel().rowsById[f],!g))throw new Error;return g},_getDefaultColumnDef:ee(()=>[s.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:g=>{const m=g.header.column.columnDef;return m.accessorKey?m.accessorKey:m.accessorFn?m.id:null},cell:g=>{var m,y;return(m=(y=g.renderValue())==null||y.toString==null?void 0:y.toString())!=null?m:null},...s._features.reduce((g,m)=>Object.assign(g,m.getDefaultColumnDef==null?void 0:m.getDefaultColumnDef()),{}),...f}},te(e,"debugColumns")),_getColumnDefs:()=>s.options.columns,getAllColumns:ee(()=>[s._getColumnDefs()],f=>{const p=function(g,m,y){return y===void 0&&(y=0),g.map(x=>{const v=pI(s,x,y,m),b=x;return v.columns=b.columns?p(b.columns,v,y+1):[],v})};return p(f)},te(e,"debugColumns")),getAllFlatColumns:ee(()=>[s.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),te(e,"debugColumns")),_getAllFlatColumnsById:ee(()=>[s.getAllFlatColumns()],f=>f.reduce((p,g)=>(p[g.id]=g,p),{}),te(e,"debugColumns")),getAllLeafColumns:ee(()=>[s.getAllColumns(),s._getOrderColumnsFn()],(f,p)=>{let g=f.flatMap(m=>m.getLeafColumns());return p(g)},te(e,"debugColumns")),getColumn:f=>s._getAllFlatColumnsById()[f]};Object.assign(s,h);for(let f=0;fee(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(s,o,i){o===void 0&&(o=0);const a=[];for(let u=0;ue._autoResetPageIndex()))}function QI(e){const t=[],n=r=>{var s;t.push(r),(s=r.subRows)!=null&&s.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function JI(e,t,n){return n.options.filterFromLeafRows?ZI(e,t,n):e6(e,t,n)}function ZI(e,t,n){var r;const s=[],o={},i=(r=n.options.maxLeafRowFilterDepth)!=null?r:100,a=function(l,u){u===void 0&&(u=0);const d=[];for(let f=0;fee(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter],(t,n,r)=>{if(!t.rows.length||!(n!=null&&n.length)&&!r){for(let f=0;f{var p;const g=e.getColumn(f.id);if(!g)return;const m=g.getFilterFn();m&&s.push({id:f.id,filterFn:m,resolvedValue:(p=m.resolveFilterValue==null?void 0:m.resolveFilterValue(f.value))!=null?p:f.value})});const i=(n??[]).map(f=>f.id),a=e.getGlobalFilterFn(),l=e.getAllLeafColumns().filter(f=>f.getCanGlobalFilter());r&&a&&l.length&&(i.push("__global__"),l.forEach(f=>{var p;o.push({id:f.id,filterFn:a,resolvedValue:(p=a.resolveFilterValue==null?void 0:a.resolveFilterValue(r))!=null?p:r})}));let u,d;for(let f=0;f{p.columnFiltersMeta[m]=y})}if(o.length){for(let g=0;g{p.columnFiltersMeta[m]=y})){p.columnFilters.__global__=!0;break}}p.columnFilters.__global__!==!0&&(p.columnFilters.__global__=!1)}}const h=f=>{for(let p=0;pe._autoResetPageIndex()))}function n6(e){return t=>ee(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,r)=>{if(!r.rows.length)return r;const{pageSize:s,pageIndex:o}=n;let{rows:i,flatRows:a,rowsById:l}=r;const u=s*o,d=u+s;i=i.slice(u,d);let h;t.options.paginateExpandedRows?h={rows:i,flatRows:a,rowsById:l}:h=QI({rows:i,flatRows:a,rowsById:l}),h.flatRows=[];const f=p=>{h.flatRows.push(p),p.subRows.length&&p.subRows.forEach(f)};return h.rows.forEach(f),h},te(t.options,"debugTable"))}function r6(){return e=>ee(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,s=[],o=r.filter(l=>{var u;return(u=e.getColumn(l.id))==null?void 0:u.getCanSort()}),i={};o.forEach(l=>{const u=e.getColumn(l.id);u&&(i[l.id]={sortUndefined:u.columnDef.sortUndefined,invertSorting:u.columnDef.invertSorting,sortingFn:u.getSortingFn()})});const a=l=>{const u=l.map(d=>({...d}));return u.sort((d,h)=>{for(let p=0;p{var h;s.push(d),(h=d.subRows)!=null&&h.length&&(d.subRows=a(d.subRows))}),u};return{rows:a(n.rows),flatRows:s,rowsById:n.rowsById}},te(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** * react-table * * Copyright (c) TanStack @@ -430,12 +430,12 @@ Error generating stack: `+o.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function Sb(e,t){return e?s6(e)?S.createElement(e,t):e:null}function s6(e){return o6(e)||typeof e=="function"||i6(e)}function o6(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function i6(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function a6(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=S.useState(()=>({current:YI(t)})),[r,s]=S.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:i=>{s(i),e.onStateChange==null||e.onStateChange(i)}})),n.current}const IS=S.forwardRef(({className:e,...t},n)=>c.jsx("div",{className:"relative w-full overflow-auto",children:c.jsx("table",{ref:n,className:ar("w-full caption-bottom text-sm",e),...t})}));IS.displayName="Table";const FS=S.forwardRef(({className:e,...t},n)=>c.jsx("thead",{ref:n,className:ar("[&_tr]:border-b dark:border-white/5",e),...t}));FS.displayName="TableHeader";const zS=S.forwardRef(({className:e,...t},n)=>c.jsx("tbody",{ref:n,className:ar("[&_tr:last-child]:border-0",e),...t}));zS.displayName="TableBody";const l6=S.forwardRef(({className:e,...t},n)=>c.jsx("tfoot",{ref:n,className:ar("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));l6.displayName="TableFooter";const nc=S.forwardRef(({className:e,...t},n)=>c.jsx("tr",{ref:n,className:ar("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted dark:border-white/5 dark:hover:bg-white/5",e),...t}));nc.displayName="TableRow";const VS=S.forwardRef(({className:e,...t},n)=>c.jsx("th",{ref:n,className:ar("h-12 px-4 text-left align-middle font-semibold text-xs uppercase tracking-wider text-gray-600 dark:text-gray-400 [&:has([role=checkbox])]:pr-0 bg-gray-50 dark:bg-white/5",e),...t}));VS.displayName="TableHead";const Wf=S.forwardRef(({className:e,...t},n)=>c.jsx("td",{ref:n,className:ar("p-4 align-middle [&:has([role=checkbox])]:pr-0 text-gray-900 dark:text-gray-300",e),...t}));Wf.displayName="TableCell";const c6=S.forwardRef(({className:e,...t},n)=>c.jsx("caption",{ref:n,className:ar("mt-4 text-sm text-muted-foreground",e),...t}));c6.displayName="TableCaption";function u6({columns:e,data:t,searchable:n=!0,itemsPerPage:r=10,emptyMessage:s="No results."}){var f;const[o,i]=S.useState([]),[a,l]=S.useState([]),[u,d]=S.useState(""),h=a6({data:t,columns:e,getCoreRowModel:XI(),getPaginationRowModel:n6(),onSortingChange:i,getSortedRowModel:r6(),onColumnFiltersChange:l,getFilteredRowModel:t6(),onGlobalFilterChange:d,state:{sorting:o,columnFilters:a,globalFilter:u},initialState:{pagination:{pageSize:r}}});return c.jsxs("div",{className:"space-y-4",children:[n&&c.jsxs("div",{className:"relative",children:[c.jsx(Z1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{placeholder:"Search...",value:u??"",onChange:p=>d(p.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600"})]}),c.jsx("div",{className:"rounded-md border border-gray-200 dark:border-white/10 overflow-hidden",children:c.jsxs(IS,{children:[c.jsx(FS,{children:h.getHeaderGroups().map(p=>c.jsx(nc,{children:p.headers.map(g=>c.jsx(VS,{children:g.isPlaceholder?null:Sb(g.column.columnDef.header,g.getContext())},g.id))},p.id))}),c.jsx(zS,{children:(f=h.getRowModel().rows)!=null&&f.length?h.getRowModel().rows.map(p=>c.jsx(nc,{"data-state":p.getIsSelected()&&"selected",children:p.getVisibleCells().map(g=>c.jsx(Wf,{children:Sb(g.column.columnDef.cell,g.getContext())},g.id))},p.id)):c.jsx(nc,{children:c.jsx(Wf,{colSpan:e.length,className:"h-24 text-center",children:s})})})]})}),h.getPageCount()>1&&c.jsxs("div",{className:"flex items-center justify-between space-x-2 py-4",children:[c.jsxs("div",{className:"text-sm text-gray-700 dark:text-gray-300",children:["Page ",h.getState().pagination.pageIndex+1," of ",h.getPageCount()]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("button",{className:"p-2 rounded-lg border border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:()=>h.previousPage(),disabled:!h.getCanPreviousPage(),children:c.jsx(W1,{size:16})}),c.jsx("button",{className:"p-2 rounded-lg border border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:()=>h.nextPage(),disabled:!h.getCanNextPage(),children:c.jsx(G1,{size:16})})]})]})]})}function d6(){const{user:e}=Qr(),[t,n]=S.useState([]),[r,s]=S.useState(null),[o,i]=S.useState(!0);S.useEffect(()=>{e&&(async()=>{try{const d=localStorage.getItem("access_token");d&&n([{id:"1",name:"Current API Key",key:d,status:"Active"}])}catch(d){console.error("Failed to fetch API keys:",d)}finally{i(!1)}})()},[e]);const a=(u,d)=>{navigator.clipboard.writeText(u),s(d),setTimeout(()=>s(null),2e3)},l=[{accessorKey:"name",header:"Name"},{accessorKey:"key",header:"Key",cell:({row:u})=>c.jsxs("div",{className:"flex items-center gap-2 font-mono text-gray-700 dark:text-gray-300",children:[c.jsxs("span",{className:"truncate max-w-xs",children:[u.original.key.substring(0,20),"..."]}),c.jsx("button",{onClick:()=>a(u.original.key,u.original.id),className:"p-1 hover:bg-gray-100 dark:hover:bg-white/10 rounded transition-colors",title:"Copy key",children:r===u.original.id?c.jsx(xu,{className:"w-3 h-3 text-green-500"}):c.jsx(q1,{className:"w-3 h-3"})})]})},{accessorKey:"status",header:"Status",cell:({row:u})=>c.jsx("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${u.original.status==="Active"?"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-400"}`,children:u.original.status})}];return o?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading API keys..."})}):c.jsxs("div",{className:"max-w-5xl mx-auto space-y-8",children:[c.jsx("div",{className:"flex items-center justify-between",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"API Keys"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Manage your API keys for authentication."})]})}),c.jsx("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:c.jsx(u6,{data:t,columns:l,itemsPerPage:10,searchable:!0,emptyMessage:"No API keys found. Generate one to get started."})}),c.jsxs("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[c.jsx("h3",{className:"text-sm font-medium text-blue-900 dark:text-blue-300 mb-2",children:"Using Your API Key"}),c.jsx("p",{className:"text-sm text-blue-700 dark:text-blue-400 mb-3",children:"Include your API key in the Authorization header of your requests:"}),c.jsx("code",{className:"block bg-white dark:bg-black/50 p-3 rounded text-xs font-mono text-gray-900 dark:text-gray-100 border border-blue-200 dark:border-blue-800",children:"Authorization: Bearer YOUR_API_KEY"})]})]})}const h6=["NGO","Government","Private Sector","Research","Individual","Other"],_b=["Health","Agriculture","Energy","Environment","Education","Governance"];function f6(){const{user:e}=Qr(),{theme:t,setTheme:n}=B1(),[r,s]=S.useState({username:(e==null?void 0:e.username)||"",email:(e==null?void 0:e.email)||"",full_name:(e==null?void 0:e.full_name)||"",organization:(e==null?void 0:e.organization)||"",organization_type:(e==null?void 0:e.organization_type)||""}),[o,i]=S.useState((e==null?void 0:e.sector)||[]),[a,l]=S.useState(""),[u,d]=S.useState(""),[h,f]=S.useState(""),[p,g]=S.useState(!1),[m,y]=S.useState({oldPassword:"",newPassword:"",confirmPassword:""}),[x,v]=S.useState(""),[b,k]=S.useState(""),[w,j]=S.useState(!1),[N,_]=S.useState(!1),[P,A]=S.useState(!1),[O,F]=S.useState(!1),D=E=>{i(I=>I.includes(E)?I.filter(K=>K!==E):[...I,E])},U=()=>{const E=a.trim();E&&!o.includes(E)&&(i(I=>[...I,E]),l(""))},W=async E=>{var I,K;E.preventDefault(),f(""),d(""),g(!0);try{await ae.put("/auth/profile",{full_name:r.full_name||void 0,organization:r.organization||void 0,organization_type:r.organization_type||void 0,sector:o.length>0?o:void 0}),d("Profile updated successfully!")}catch(T){f(((K=(I=T.response)==null?void 0:I.data)==null?void 0:K.detail)||"Failed to update profile.")}finally{g(!1)}},M=async E=>{var I,K;if(E.preventDefault(),v(""),k(""),m.newPassword!==m.confirmPassword){v("New passwords do not match");return}j(!0);try{const T=await ae.post("/auth/change-password",{old_password:m.oldPassword,new_password:m.newPassword});T.data.success?(k("Password changed successfully!"),y({oldPassword:"",newPassword:"",confirmPassword:""})):v(T.data.message||"Failed to change password")}catch(T){v(((K=(I=T.response)==null?void 0:I.data)==null?void 0:K.detail)||"Failed to change password")}finally{j(!1)}},H=(e==null?void 0:e.oauth_type)==="Google"||(e==null?void 0:e.oauth_type)==="GitHub",C=!H,L=!H;return c.jsxs("div",{className:"max-w-2xl mx-auto space-y-8",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Account Settings"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Manage your profile and preferences."})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Profile Information"}),c.jsxs("form",{onSubmit:W,className:"space-y-4",children:[h&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:h}),u&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:u}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.username,onChange:E=>s({...r,username:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Full Name"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.full_name,onChange:E=>s({...r,full_name:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",placeholder:"John Doe",disabled:p})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email Address"}),c.jsxs("div",{className:"relative",children:[c.jsx(vu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"email",value:r.email,onChange:E=>s({...r,email:E.target.value}),className:`w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white ${L?"":"opacity-50 cursor-not-allowed"}`,disabled:!L,title:L?"":"Email cannot be changed for OAuth accounts"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization"}),c.jsxs("div",{className:"relative",children:[c.jsx(H1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.organization,onChange:E=>s({...r,organization:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",placeholder:"Organization Name",disabled:p})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("div",{className:"relative",children:[c.jsx($1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsxs("select",{value:r.organization_type,onChange:E=>s({...r,organization_type:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:p,children:[c.jsx("option",{value:"",children:"Select type..."}),h6.map(E=>c.jsx("option",{value:E,children:E},E))]})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Impact Sectors"}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:[..._b,...o.filter(E=>!_b.includes(E))].map(E=>c.jsxs("button",{type:"button",onClick:()=>D(E),disabled:p,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${o.includes(E)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[E," ",o.includes(E)&&"✓"]},E))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:a,onChange:E=>l(E.target.value),onKeyDown:E=>E.key==="Enter"&&(E.preventDefault(),U()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:p}),c.jsx("button",{type:"button",onClick:U,disabled:p,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Account Type"}),c.jsxs("div",{className:"relative",children:[c.jsx(uR,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:(e==null?void 0:e.account_type)||"Standard",readOnly:!0,className:"w-full pl-9 pr-4 py-2 bg-gray-50 dark:bg-white/5 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none text-gray-500 dark:text-gray-400 cursor-not-allowed"})]})]}),c.jsx("div",{className:"pt-2",children:c.jsx("button",{type:"submit",disabled:p,className:"px-4 py-2 bg-primary-600 hover:bg-primary-700 text-white rounded-lg text-sm font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:p?"Saving...":"Save Changes"})})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Appearance"}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("button",{onClick:()=>n("light"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="light"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(pf,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"Light"})]}),c.jsxs("button",{onClick:()=>n("dark"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="dark"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(ff,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"Dark"})]}),c.jsxs("button",{onClick:()=>n("system"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="system"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(gR,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"System"})]})]})]}),C&&c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Change Password"}),c.jsxs("form",{onSubmit:M,className:"space-y-4",children:[x&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:x}),b&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:b}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Current Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:N?"text":"password",required:!0,placeholder:"••••••••",value:m.oldPassword,onChange:E=>y({...m,oldPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>_(!N),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:N?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:P?"text":"password",placeholder:"••••••••",required:!0,value:m.newPassword,onChange:E=>y({...m,newPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>A(!P),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:P?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:O?"text":"password",required:!0,placeholder:"••••••••",value:m.confirmPassword,onChange:E=>y({...m,confirmPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>F(!O),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:O?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsx("div",{className:"pt-2",children:c.jsx("button",{type:"submit",disabled:w,className:"px-4 py-2 bg-primary-600 hover:bg-primary-700 text-white rounded-lg text-sm font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:w?"Changing Password...":"Change Password"})})]})]})]})}function p6({value:e,onChange:t,options:n,placeholder:r="Select...",disabled:s=!1,className:o=""}){const[i,a]=S.useState(!1),[l,u]=S.useState(""),d=S.useRef(null),h=S.useRef(null);S.useEffect(()=>{const m=y=>{d.current&&!d.current.contains(y.target)&&(a(!1),u(""))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]),S.useEffect(()=>{i&&h.current&&h.current.focus()},[i]);const f=n.filter(m=>m.toLowerCase().includes(l.toLowerCase())),p=m=>{t(m),a(!1),u("")},g=m=>{m.stopPropagation(),t(""),u("")};return c.jsxs("div",{className:`relative ${o}`,ref:d,children:[c.jsxs("button",{type:"button",onClick:()=>!s&&a(!i),disabled:s,className:"flex items-center justify-between w-full min-w-[240px] px-3 py-2 text-sm bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white disabled:opacity-50 disabled:cursor-not-allowed",children:[c.jsx("span",{className:e?"text-gray-900 dark:text-white":"text-gray-400 dark:text-gray-500",children:e||r}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[e&&c.jsx(wu,{size:14,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 cursor-pointer",onClick:g}),c.jsx(U1,{size:16,className:`text-gray-400 transition-transform ${i?"rotate-180":""}`})]})]}),i&&c.jsxs("div",{className:"absolute z-50 w-full mt-1 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg shadow-lg overflow-hidden",children:[c.jsx("div",{className:"p-2 border-b border-gray-200 dark:border-white/10",children:c.jsxs("div",{className:"relative",children:[c.jsx(Z1,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-gray-400"}),c.jsx("input",{ref:h,type:"text",value:l,onChange:m=>u(m.target.value),placeholder:"Search...",className:"w-full pl-8 pr-3 py-1.5 text-sm bg-gray-50 dark:bg-black/30 border border-gray-200 dark:border-white/10 rounded-md focus:outline-none focus:ring-1 focus:ring-primary-500 dark:text-white placeholder-gray-400"})]})}),c.jsx("div",{className:"max-h-60 overflow-y-auto",children:f.length===0?c.jsx("div",{className:"px-3 py-4 text-sm text-gray-400 text-center",children:"No results found"}):f.map(m=>c.jsx("button",{onClick:()=>p(m),className:`w-full text-left px-3 py-2 text-sm transition-colors ${m===e?"bg-primary-50 text-primary-600 dark:bg-primary-900/20 dark:text-primary-400":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/5"}`,children:m},m))})]})]})}const g6=[{label:"Overview",value:"overview"},{label:"By Organization",value:"organization"},{label:"By Org Type",value:"organization_type"},{label:"By Sector",value:"sector"}];function m6({view:e,onViewChange:t,filterValue:n,onFilterValueChange:r,filters:s,filtersLoading:o}){const a=s?e==="organization"?s.organizations:e==="organization_type"?s.organization_types:e==="sector"?s.sectors:[]:[],l=e!=="overview",u=()=>e==="organization"?"Organization":e==="organization_type"?"Organization Type":e==="sector"?"Sector":"";return c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[c.jsx("div",{className:"flex items-center gap-1 bg-white dark:bg-secondary rounded-lg border border-gray-200 dark:border-white/10 p-1",children:g6.map(d=>c.jsx("button",{onClick:()=>{t(d.value),r("")},className:`px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${e===d.value?"bg-primary-600 text-white":"text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-white/5"}`,children:d.label},d.value))}),l&&c.jsx(p6,{value:n,onChange:r,options:a,placeholder:`Select ${u()}...`,disabled:o||a.length===0})]})}function y6(){const[e,t]=S.useState(null),[n,r]=S.useState(!0);return S.useEffect(()=>{(async()=>{var o,i,a;try{const l=await ae.get("/api/admin/analytics/filters");t(l.data)}catch(l){_n.error(((a=(i=(o=l.response)==null?void 0:o.data)==null?void 0:i.detail)==null?void 0:a.message)||"Failed to fetch filter options")}finally{r(!1)}})()},[]),{filters:e,loading:n}}function x6(e,t,n="7d"){const[r,s]=S.useState(null),[o,i]=S.useState(!0),[a,l]=S.useState(null),u=S.useCallback(async()=>{var d,h,f;i(!0),l(null);try{let p="/api/admin/analytics/";const g=new URLSearchParams({time_range:n});e==="overview"?p+="overview":e==="organization"?(p+="by-organization",g.set("organization",t)):e==="organization_type"?(p+="by-organization-type",g.set("organization_type",t)):e==="sector"&&(p+="by-sector",g.set("sector",t));const m=await ae.get(`${p}?${g.toString()}`);s(m.data)}catch(p){const g=((f=(h=(d=p.response)==null?void 0:d.data)==null?void 0:h.detail)==null?void 0:f.message)||"Failed to fetch analytics data";l(g),_n.error(g)}finally{i(!1)}},[e,t,n]);return S.useEffect(()=>{e==="overview"||t?u():(s(null),i(!1))},[e,t,n,u]),{data:r,loading:o,error:a}}function b6(){return{exportCSV:async(t,n,r)=>{try{const s=new URLSearchParams({view:t,time_range:n});t==="organization"&&r?s.set("organization",r):t==="organization_type"&&r?s.set("organization_type",r):t==="sector"&&r&&s.set("sector",r);const o=await ae.get(`/api/admin/analytics/export?${s.toString()}`,{responseType:"blob"}),i=new Blob([o.data],{type:"text/csv"}),a=window.URL.createObjectURL(i),l=document.createElement("a");l.href=a,l.download=`analytics_${t}_${n}.csv`,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(a),_n.success("CSV exported successfully")}catch{_n.error("Failed to export CSV")}}}}Bs.register(Fo,zo,Cs,bn,Iu,Fu,Du,Ou);const jb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000","#808000","#000075","#000000"];function v6(){var P,A,O,F,D,U,W,M,H,C,L,E,I,K;const[e,t]=S.useState("7d"),[n,r]=S.useState("overview"),[s,o]=S.useState(""),{filters:i,loading:a}=y6(),{data:l,loading:u}=x6(n,s,e),{exportCSV:d}=b6(),h=S.useMemo(()=>{var $;const T={Total:"#6B7280"};return($=l==null?void 0:l.endpoint_chart_data)!=null&&$.datasets&&Object.keys(l.endpoint_chart_data.datasets).sort().forEach((ne,ce)=>{T[ne]=jb[ce%jb.length]}),T},[l]),[f,p]=S.useState({Total:!0});S.useEffect(()=>{var T;(T=l==null?void 0:l.endpoint_chart_data)!=null&&T.datasets&&p($=>{const G={...$};return Object.keys(l.endpoint_chart_data.datasets).forEach(ne=>{G[ne]===void 0&&(G[ne]=!0)}),G})},[l]);const g=S.useMemo(()=>{var $;const T=[{label:"Total",value:"Total",color:h.Total}];return($=l==null?void 0:l.endpoint_chart_data)!=null&&$.datasets&&Object.keys(l.endpoint_chart_data.datasets).sort().forEach(G=>{T.push({label:G.replace("/v1/",""),value:G,color:h[G]})}),T},[l,h]),m=S.useMemo(()=>Object.keys(f).filter(T=>f[T]!==!1),[f]),y=T=>{const $={};g.forEach(G=>{$[G.value]=T.includes(G.value)}),p($)},x=((P=l==null?void 0:l.endpoint_chart_data)==null?void 0:P.datasets)||{},v={labels:((A=l==null?void 0:l.endpoint_chart_data)==null?void 0:A.labels)||((O=l==null?void 0:l.chart_data)==null?void 0:O.labels)||[],datasets:[...Object.entries(x).map(([T,$])=>({label:T,data:$,borderColor:h[T]||"#6B7280",backgroundColor:"transparent",tension:.4,borderWidth:2,hidden:f[T]===!1})),{label:"Total",data:((F=l==null?void 0:l.chart_data)==null?void 0:F.data)||[],borderColor:"#6B7280",backgroundColor:"transparent",borderWidth:3,tension:.4,hidden:f.Total===!1}]},b={labels:((D=l==null?void 0:l.latency_chart)==null?void 0:D.labels)||[],datasets:[{label:"Avg Latency (ms)",data:((W=(U=l==null?void 0:l.latency_chart)==null?void 0:U.data)==null?void 0:W.map(T=>T*1e3))||[],fill:!0,backgroundColor:T=>{const G=T.chart.ctx.createLinearGradient(0,0,0,200);return G.addColorStop(0,"rgba(59, 130, 246, 0.2)"),G.addColorStop(1,"rgba(59, 130, 246, 0)"),G},borderColor:"#3b82f6",tension:.4}]},k={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,backgroundColor:"rgba(0, 0, 0, 0.8)",titleColor:"#fff",bodyColor:"#fff",borderColor:"rgba(255, 255, 255, 0.1)",borderWidth:1,padding:10}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156, 163, 175, 0.8)"}},y:{grid:{color:"rgba(156, 163, 175, 0.1)"},ticks:{color:"rgba(156, 163, 175, 0.8)"},beginAtZero:!0}},interaction:{mode:"nearest",axis:"x",intersect:!1}},w=((M=l==null?void 0:l.usage)==null?void 0:M.reduce((T,$)=>T+$.used,0))||0,j=(C=(H=l==null?void 0:l.latency_chart)==null?void 0:H.data)!=null&&C.length?(l.latency_chart.data.reduce((T,$)=>T+$,0)/l.latency_chart.data.length*1e3).toFixed(0):"0",N=(L=l==null?void 0:l.usage)==null?void 0:L.reduce((T,$)=>$.used>((T==null?void 0:T.used)||0)?$:T,null),_=((E=i==null?void 0:i.organizations)==null?void 0:E.length)||0;return u&&!l?c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col gap-4",children:[c.jsx(ge,{className:"h-8 w-48 mb-2"}),c.jsx(ge,{className:"h-10 w-full max-w-xl"})]}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[1,2,3,4].map(T=>c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm",children:[c.jsx(ge,{className:"h-8 w-8 rounded-lg mb-4"}),c.jsx(ge,{className:"h-8 w-32 mb-1"}),c.jsx(ge,{className:"h-3 w-16"})]},T))}),c.jsx(ge,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Admin Analytics"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Platform-wide API usage and performance analytics."})]}),c.jsxs("button",{onClick:()=>d(n,e,s),className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium",children:[c.jsx(K1,{size:16}),"Export CSV"]})]}),c.jsx(m6,{view:n,onViewChange:r,filterValue:s,onFilterValueChange:o,filters:i,filtersLoading:a}),n!=="overview"&&!s&&c.jsxs("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:[c.jsx(U0,{size:48,className:"mx-auto mb-4 opacity-50"}),c.jsx("p",{className:"text-lg font-medium",children:"Select a filter value above to view analytics"})]}),(n==="overview"||s)&&l&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(kt,{label:"Total Requests",value:w.toLocaleString(),icon:yu,color:"bg-blue-500"}),c.jsx(kt,{label:"Avg Latency",value:`${j}ms`,icon:bu,color:"bg-orange-500"}),c.jsx(kt,{label:"Most Used",value:((I=N==null?void 0:N.endpoint)==null?void 0:I.replace("/v1/",""))||"N/A",icon:og,color:"bg-purple-500"}),c.jsx(kt,{label:"Organizations",value:_,icon:U0,color:"bg-green-500"})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsxs(Ms,{title:"Request Volume by Endpoint",description:"Track usage trends across all users",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,className:"h-[400px]",children:[c.jsx("div",{className:"flex flex-wrap gap-3 mb-4 pb-4 border-b border-gray-200 dark:border-white/10",children:c.jsx(S2,{label:"Select Endpoints",options:g,selected:m,onChange:y})}),c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:k,data:v})})]})}),c.jsx(Ms,{title:"Latency Trends",description:"Average response time over the selected period",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:k,data:b})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Endpoint Breakdown"}),c.jsx("div",{className:"space-y-3",children:(K=l==null?void 0:l.usage)==null?void 0:K.filter(T=>T.endpoint!=="unknown").sort((T,$)=>$.used-T.used).map(T=>{const $=w>0?(T.used/w*100).toFixed(1):"0";return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:h[T.endpoint]||"#6B7280"}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:T.endpoint.replace("/tasks/","").replace("/tasks","tasks")})]}),c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:T.used.toLocaleString()}),c.jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400 w-12 text-right",children:[$,"%"]})]})]},T.endpoint)})})]})]}),(l==null?void 0:l.per_user_breakdown)&&l.per_user_breakdown.length>0&&c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:["User Breakdown — ",l.organization]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10",children:[c.jsx("th",{className:"text-left py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Username"}),c.jsx("th",{className:"text-right py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Total Requests"}),c.jsx("th",{className:"text-left py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Top Endpoints"})]})}),c.jsx("tbody",{children:l.per_user_breakdown.map(T=>{const $=Object.entries(T.endpoints).sort(([,G],[,ne])=>ne-G).slice(0,3);return c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-3 px-4 text-gray-900 dark:text-white font-medium",children:T.username}),c.jsx("td",{className:"py-3 px-4 text-right text-gray-900 dark:text-white",children:T.total_requests.toLocaleString()}),c.jsx("td",{className:"py-3 px-4",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:$.map(([G,ne])=>c.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs bg-gray-100 dark:bg-white/10 text-gray-700 dark:text-gray-300",children:[G.replace("/tasks/",""),": ",ne]},G))})})]},T.username)})})]})})]})]})]})}const BS="/api/admin/analytics/billing";function $S(e,t={}){return new URLSearchParams({category:e.category,provider:e.provider,range:e.range,resolution:e.resolution,...t})}function $a(e,t,n={}){const[r,s]=S.useState(null),[o,i]=S.useState(!0),a=JSON.stringify(n),l=S.useCallback(async()=>{var u,d;i(!0);try{const h=$S(t,JSON.parse(a)),f=await ae.get(`${BS}${e}?${h.toString()}`);s(f.data)}catch(h){const f=h;_n.error(((d=(u=f.response)==null?void 0:u.data)==null?void 0:d.message)||`Failed to load ${e}`)}finally{i(!1)}},[e,t.category,t.provider,t.range,t.resolution,a]);return S.useEffect(()=>{l()},[l]),{data:r,loading:o}}const w6=e=>$a("/summary",e),k6=e=>$a("/timeseries",e,{group_by:e.groupBy||"provider"}),S6=e=>$a("/providers",e),_6=(e,t,n,r)=>$a("/table",e,{page:String(t),page_size:"50",sort:n,sort_dir:r,...e.search?{search:e.search}:{}}),j6=(e,t)=>$a("/breakdown",e,{group_by:t});function C6(){return{exportCSV:async t=>{try{const n=$S(t),r=await ae.get(`${BS}/export?${n.toString()}`,{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([r.data],{type:"text/csv"})),o=document.createElement("a");o.href=s,o.download=`billing_${t.provider}_${t.resolution}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(s),_n.success("CSV exported")}catch{_n.error("Failed to export CSV")}}}}Bs.register(Fo,zo,Cs,bn,Ci,Iu,Fu,Du,Ou);const N6=[["today","Today"],["yesterday","Yesterday"],["last_7_days","Last 7 Days"],["last_30_days","Last 30 Days"],["last_90_days","Last 90 Days"],["this_month","This Month"],["last_month","Last Month"]],Cb={runpod:"#4363D8",modal:"#F58231",vastai:"#16A34A"},Nb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000"];function P6(){var D,U,W,M,H;const[e,t]=S.useState({category:"inference",provider:"all",range:"last_30_days",resolution:"day"}),[n,r]=S.useState(1),[s,o]=S.useState("cost"),[i,a]=S.useState("desc"),[l,u]=S.useState("object"),[d,h]=S.useState(""),{data:f,loading:p}=w6(e),{data:g}=k6(e),{data:m}=S6(e),{data:y}=_6(e,n,s,i),x=e.category==="cloud"?l:"object",{data:v}=j6(e,x),{exportCSV:b}=C6(),k=((v==null?void 0:v.rows)||[]).filter(C=>C.key.toLowerCase().includes(d.toLowerCase())),w=k.reduce((C,L)=>C+L.cost,0),j=C=>{t(L=>({...L,...C})),r(1)},N=C=>{s===C?a(L=>L==="asc"?"desc":"asc"):(o(C),a("desc")),r(1)},_=C=>s===C?i==="asc"?" ▲":" ▼":"",P=(g==null?void 0:g.cost_by_group)||{},A={labels:(g==null?void 0:g.labels)||[],datasets:[...Object.entries(P).map(([C,L],E)=>({label:C,data:L,borderColor:Cb[C]||Nb[E%Nb.length],backgroundColor:"transparent",borderWidth:2,tension:.4})),{label:"Total",data:(g==null?void 0:g.cost)||[],borderColor:"#6B7280",backgroundColor:"transparent",borderWidth:3,borderDash:[5,5],tension:.4}]},O={labels:(m==null?void 0:m.labels)||[],datasets:[{data:(m==null?void 0:m.cost)||[],backgroundColor:((m==null?void 0:m.labels)||[]).map(C=>Cb[C]||"#6B7280")}]},F={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!0,labels:{color:"rgba(156,163,175,0.9)"}}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156,163,175,0.8)"}},y:{grid:{color:"rgba(156,163,175,0.1)"},beginAtZero:!0,ticks:{color:"rgba(156,163,175,0.8)"}}}};return p&&!f?c.jsxs("div",{className:"space-y-6",children:[c.jsx(ge,{className:"h-8 w-64"}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[1,2,3,4].map(C=>c.jsx(ge,{className:"h-28 rounded-xl"},C))}),c.jsx(ge,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Infrastructure Billing"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:e.category==="training"?"Vast.ai training spend, GPU hours, and per-job breakdown.":e.category==="cloud"?"AWS spend by service and usage type, from Cost Explorer.":"Runpod & Modal spend, runtime, and storage analytics."})]}),c.jsxs("button",{onClick:()=>b(e),className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 text-sm font-medium",children:[c.jsx(K1,{size:16})," Export CSV"]})]}),c.jsx("div",{className:"flex gap-1 border-b border-gray-200 dark:border-white/10",children:[["inference","Inference (Runpod & Modal)",!1],["training","Training (Vast.ai)",!1],["cloud","Cloud (AWS)",!1]].map(([C,L,E])=>c.jsx("button",{disabled:E,onClick:()=>{t(I=>({...I,category:C,provider:"all",groupBy:C==="cloud"?"object":void 0})),r(1)},className:"px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors "+(E?"text-gray-300 dark:text-gray-600 cursor-not-allowed border-transparent":e.category===C?"border-primary-600 text-primary-700 dark:text-primary-400":"border-transparent text-gray-500 hover:text-gray-800 dark:hover:text-gray-200"),children:L},C))}),c.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.category==="inference"&&c.jsxs("select",{value:e.provider,onChange:C=>j({provider:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:[c.jsx("option",{value:"all",children:"All Platforms"}),c.jsx("option",{value:"runpod",children:"Runpod"}),c.jsx("option",{value:"modal",children:"Modal"})]}),c.jsx("select",{value:e.range,onChange:C=>j({range:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:N6.map(([C,L])=>c.jsx("option",{value:C,children:L},C))}),c.jsx("select",{value:e.resolution,onChange:C=>j({resolution:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:["hour","day","week","month","year"].map(C=>c.jsx("option",{value:C,children:C[0].toUpperCase()+C.slice(1)},C))})]}),(D=f==null?void 0:f.warnings)==null?void 0:D.map(C=>c.jsx("div",{className:"text-sm text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-4 py-2 rounded-lg",children:C},C)),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(kt,{label:"Total Spend",value:`$${((f==null?void 0:f.total_spend)||0).toFixed(2)}`,icon:W0,color:"bg-blue-500"}),c.jsx(kt,{label:"Avg Daily Spend",value:`$${((f==null?void 0:f.avg_daily_spend)||0).toFixed(2)}`,icon:W0,color:"bg-green-500"}),c.jsx(kt,{label:"GPU Hours",value:`${(((f==null?void 0:f.total_runtime_ms)||0)/36e5).toFixed(1)}h`,icon:bu,color:"bg-orange-500"}),c.jsx(kt,{label:"Avg Storage",value:`${((f==null?void 0:f.avg_storage_gb)||0).toFixed(0)} GB`,icon:fR,color:"bg-purple-500"})]}),c.jsxs("details",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-4 text-sm text-gray-600 dark:text-gray-300",children:[c.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer font-medium text-gray-900 dark:text-white",children:[c.jsx(sg,{size:16})," What these numbers mean & how they're computed"]}),c.jsxs("div",{className:"mt-3 space-y-2 leading-relaxed",children:[c.jsxs("p",{children:[c.jsx("b",{children:"Total / Avg Daily Spend"})," — USD billed by the provider for the selected range and platform(s), summed across all records. Modal amounts are pre-credit (before any credits or reservations), so your invoice may be lower."]}),c.jsxs("p",{children:[c.jsx("b",{children:"GPU Hours"})," — total billed run time, from Runpod's ",c.jsx("code",{children:"timeBilledMs"}),"(worker-time across the period). Modal bills per-app cost and does not report a runtime, so this reflects Runpod only."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Avg Storage (GB)"})," — providers bill storage as ",c.jsx("b",{children:"GB-hours"})," (capacity × hours billed), so a steady 350 GB volume reports 350 × 24 = 8,400 per day. We show the time-weighted average — total GB-hours ÷ hours in the range — as actual provisioned GB. The records table and CSV show the raw per-bucket GB-hours."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Active Endpoints / Modal Apps"})," — distinct Runpod endpoints and Modal apps with billing in the range. ",c.jsx("b",{children:"Network Volumes"})," are account-level storage, not an endpoint, so they're excluded from this count (but included in spend/storage)."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Network Volumes"})," — Runpod persistent network storage cost (",c.jsx("code",{children:"/billing/networkvolumes"}),"), shown as its own row and folded into totals."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Cost Over Time"})," — per-bucket spend with a line per platform plus a dashed Total. Buckets roll up to the selected resolution (hour → year)."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Training (Vast.ai)"})," — Vast.ai bills per contract (a whole job), not per day. We spread each contract's cost and GPU-hours evenly across the days it ran so the charts and totals are smooth and correct; the Training Jobs table lists one row per contract (job/instance) with its total GPU-hours and cost. Storage is billed as cost (not GB), so it appears in spend rather than the storage figure."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Cloud (AWS)"})," — AWS costs come from Cost Explorer (UnblendedCost), broken down by service and usage type. The graph shows cost per service over time; the table toggles between Service and Usage-type and is searchable. Hourly granularity is limited by AWS to the last 14 days. Cost Explorer bills per API request, so figures are cached briefly."]}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400",children:"Scope & freshness: Runpod is scoped to the configured endpoints; Modal covers the whole workspace. Figures are cached briefly for consistency, so very recent usage settles within the cache window."})]})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsx(Ms,{title:"Cost Over Time",description:"Spend per bucket across selected platforms",className:"h-[400px]",children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:F,data:A})})})}),c.jsx(Ms,{title:"Spend by Platform",description:e.category==="cloud"?"AWS":e.category==="training"?"Vast.ai":"Runpod vs Modal",children:c.jsx("div",{className:"flex-1 min-h-0 flex items-center justify-center",children:c.jsx(lI,{data:O,options:{responsive:!0,maintainAspectRatio:!1}})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Highlights"}),c.jsxs("ul",{className:"text-sm text-gray-700 dark:text-gray-300 space-y-2",children:[e.category==="training"?c.jsxs("li",{children:["Active jobs/instances: ",c.jsx("b",{children:(f==null?void 0:f.active_instances)??0})]}):e.category==="cloud"?c.jsxs("li",{children:["Active services: ",c.jsx("b",{children:(f==null?void 0:f.active_services)??0})]}):c.jsxs(c.Fragment,{children:[c.jsxs("li",{children:["Active endpoints: ",c.jsx("b",{children:(f==null?void 0:f.active_endpoints)??0})]}),c.jsxs("li",{children:["Active Modal apps: ",c.jsx("b",{children:(f==null?void 0:f.active_modal_apps)??0})]})]}),c.jsxs("li",{children:["Top endpoint: ",c.jsx("b",{children:((U=f==null?void 0:f.highest_cost_endpoint)==null?void 0:U.name)??"N/A"})," ($",(((W=f==null?void 0:f.highest_cost_endpoint)==null?void 0:W.cost)??0).toFixed(2),")"]}),c.jsxs("li",{children:["Top platform: ",c.jsx("b",{children:((M=f==null?void 0:f.highest_cost_platform)==null?void 0:M.name)??"N/A"})," ($",(((H=f==null?void 0:f.highest_cost_platform)==null?void 0:H.cost)??0).toFixed(2),")"]})]})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-6",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[c.jsx(SR,{size:18})," ",e.category==="cloud"?"AWS Cost & Usage":e.category==="training"?"Training Jobs":"Billing Records"]}),e.category==="inference"&&c.jsx("input",{type:"text",placeholder:"Search object / GPU / env...",onChange:C=>j({search:C.target.value||void 0}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm"})]}),c.jsx("div",{className:"overflow-x-auto",children:e.category==="cloud"?c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-between mb-3 gap-3",children:[c.jsx("div",{className:"flex gap-1",children:["object","usage_type"].map(C=>c.jsx("button",{onClick:()=>u(C),className:"px-3 py-1 rounded text-sm "+(l===C?"bg-primary-600 text-white":"bg-gray-100 dark:bg-white/10 text-gray-700 dark:text-gray-300"),children:C==="object"?"By Service":"By Usage Type"},C))}),c.jsx("input",{type:"text",value:d,placeholder:"Search service / usage type...",onChange:C=>h(C.target.value),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm"})]}),c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:l==="object"?"Service":"Usage Type"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Cost"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Share"})]})}),c.jsx("tbody",{children:k.map(C=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.key}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(2)]}),c.jsxs("td",{className:"py-2 px-3 text-right",children:[w>0?(C.cost/w*100).toFixed(1):"0.0","%"]})]},C.key))})]})]}):e.category==="training"?c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:"Job / Instance"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"GPU Hours"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Cost"})]})}),c.jsx("tbody",{children:((v==null?void 0:v.rows)||[]).map(C=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.key}),c.jsxs("td",{className:"py-2 px-3 text-right",children:[(C.runtime_ms/36e5).toFixed(1),"h"]}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(3)]})]},C.key))})]}):c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:"Provider"}),c.jsx("th",{className:"py-2 px-3",children:"Object"}),c.jsxs("th",{className:"py-2 px-3 cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200",onClick:()=>N("timestamp"),children:["Date",_("timestamp")]}),c.jsxs("th",{className:"py-2 px-3 text-right cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200",onClick:()=>N("cost"),children:["Cost",_("cost")]}),c.jsx("th",{className:"py-2 px-3",children:"GPU"}),c.jsx("th",{className:"py-2 px-3",children:"Env"})]})}),c.jsx("tbody",{children:((y==null?void 0:y.rows)||[]).map((C,L)=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.provider}),c.jsx("td",{className:"py-2 px-3",children:C.object_name}),c.jsx("td",{className:"py-2 px-3",children:C.timestamp.slice(0,10)}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(4)]}),c.jsx("td",{className:"py-2 px-3",children:C.gpu||"-"}),c.jsx("td",{className:"py-2 px-3",children:C.environment||"-"})]},`${C.provider}-${C.object_name}-${C.timestamp}-${L}`))})]})}),e.category==="inference"&&c.jsxs("div",{className:"flex items-center justify-between mt-4 text-sm text-gray-500 dark:text-gray-400",children:[c.jsxs("span",{children:[(y==null?void 0:y.total)??0," records"]}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx("button",{disabled:n<=1,onClick:()=>r(C=>C-1),className:"px-3 py-1 rounded border border-gray-200 dark:border-white/10 disabled:opacity-40",children:"Prev"}),c.jsx("button",{disabled:!y||n*y.page_size>=y.total,onClick:()=>r(C=>C+1),className:"px-3 py-1 rounded border border-gray-200 dark:border-white/10 disabled:opacity-40",children:"Next"})]})]})]})]})}const Gf="/api/admin/google-analytics";function R6(){const[e,t]=S.useState([]),[n,r]=S.useState(!0),[s,o]=S.useState(!1);return S.useEffect(()=>{let i=!1;return(async()=>{var a;try{const{data:l}=await ae.get(`${Gf}/properties`);i||t(l.properties)}catch(l){((a=l==null?void 0:l.response)==null?void 0:a.status)===503?i||o(!0):_n.error("Failed to load GA properties")}finally{i||r(!1)}})(),()=>{i=!0}},[]),{properties:e,loading:n,notConfigured:s}}function E6(e,t){const[n,r]=S.useState(null),[s,o]=S.useState(!1),[i,a]=S.useState(null),l=S.useCallback(async(u=!1)=>{var d,h;if(e){o(!0),a(null);try{const f=u?`${Gf}/refresh`:`${Gf}/overview`,{data:p}=await ae({method:u?"post":"get",url:f,params:{property_id:e,time_range:t}});r(p)}catch(f){const p=((h=(d=f==null?void 0:f.response)==null?void 0:d.data)==null?void 0:h.detail)||"Failed to load analytics";a(typeof p=="string"?p:"Failed to load analytics"),_n.error(typeof p=="string"?p:"Failed to load analytics")}finally{o(!1)}}},[e,t]);return S.useEffect(()=>{l(!1)},[l]),{data:n,loading:s,error:i,refresh:()=>l(!0)}}function T6({series:e}){const t={labels:e.labels,datasets:[{label:"Active users",data:e.active_users,borderColor:"#3b82f6",backgroundColor:"rgba(59,130,246,0.15)",tension:.4},{label:"New users",data:e.new_users,borderColor:"#10b981",backgroundColor:"rgba(16,185,129,0.1)",tension:.4},{label:"Sessions",data:e.sessions,borderColor:"#f59e0b",backgroundColor:"rgba(245,158,11,0.1)",tension:.4}]},n={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"top"}},interaction:{mode:"index",intersect:!1},scales:{y:{beginAtZero:!0,grid:{color:"rgba(156,163,175,0.1)"}},x:{grid:{display:!1}}}};return c.jsx("div",{className:"h-[300px]",children:c.jsx(Vo,{data:t,options:n})})}function A6({pages:e}){return e.length?c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Page"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Views"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Avg duration"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsxs("td",{className:"py-2 px-3",children:[c.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:t.title||t.path}),c.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:t.path})]}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.views.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.users.toLocaleString()}),c.jsxs("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:[t.avg_duration.toFixed(1),"s"]})]},t.path))})]})}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No page views in this range."})}function nh({title:e,rows:t}){const n=t.reduce((r,s)=>r+s.users,0);return c.jsxs("div",{children:[c.jsx("h4",{className:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-2",children:e}),t.length===0?c.jsx("p",{className:"text-xs text-gray-500",children:"No data."}):c.jsx("ul",{className:"space-y-1",children:t.map(r=>{const s=n?(r.users/n*100).toFixed(1):"0";return c.jsxs("li",{className:"flex items-center justify-between text-sm",children:[c.jsx("span",{className:"text-gray-700 dark:text-gray-300",children:r.label}),c.jsxs("span",{className:"text-gray-900 dark:text-white font-medium",children:[r.users.toLocaleString()," ",c.jsxs("span",{className:"text-xs text-gray-500",children:["(",s,"%)"]})]})]},r.label)})})]})}function M6({platforms:e}){return c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[c.jsx(nh,{title:"Device",rows:e.device}),c.jsx(nh,{title:"Operating system",rows:e.os}),c.jsx(nh,{title:"Browser",rows:e.browser})]})}function L6({rows:e}){return e.length?c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Country"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"City"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Sessions"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-2 px-3 text-gray-900 dark:text-white",children:t.country||"—"}),c.jsx("td",{className:"py-2 px-3 text-gray-700 dark:text-gray-300",children:t.city||"—"}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.users.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:t.sessions.toLocaleString()})]},`${t.country}-${t.city}`))})]})}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No geographic data."})}function O6({events:e}){return e.length?c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Event"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Count"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-2 px-3 text-gray-900 dark:text-white font-mono text-xs",children:t.name}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.count.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:t.users.toLocaleString()})]},t.name))})]}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No events in this range."})}Bs.register(Fo,zo,Cs,bn,Iu,Fu,Du,Ou);const D6=[{label:"Last 24h",value:"24h"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 60 days",value:"60d"},{label:"Last 90 days",value:"90d"}];function I6(){const{properties:e,loading:t,notConfigured:n}=R6(),[r,s]=m1(),o=r.get("property")||"",i=r.get("range")||"7d";S.useEffect(()=>{!o&&e.length>0&&s({property:e[0].id,range:i},{replace:!0})},[e,o,i,s]);const{data:a,loading:l,error:u,refresh:d}=E6(o,i),h=S.useMemo(()=>{if(!a)return null;const f=g=>g.reduce((m,y)=>m+y,0),p=g=>g.length?f(g)/g.length:0;return{users:f(a.traffic.active_users),sessions:f(a.traffic.sessions),engagementRate:p(a.traffic.engagement_rate),avgSessionSec:p(a.traffic.avg_session_duration)}},[a]);return n?c.jsx("div",{className:"text-center py-12",children:c.jsxs("p",{className:"text-gray-500 dark:text-gray-400",children:["Google Analytics is not configured. See ",c.jsx("code",{children:"docs/google-analytics.md"}),"."]})}):t?c.jsxs("div",{className:"space-y-6",children:[c.jsx(ge,{className:"h-8 w-48"}),c.jsx(ge,{className:"h-10 w-full max-w-xl"}),c.jsx(ge,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Google Analytics"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Site & app analytics for Sunbird properties."})]}),c.jsxs("button",{onClick:()=>{d(),_n.info("Refreshing from Google Analytics…")},disabled:l,className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 disabled:opacity-50 transition-colors text-sm font-medium",children:[c.jsx(kR,{size:16,className:l?"animate-spin":""}),"Refresh"]})]}),c.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[c.jsx("select",{value:o,onChange:f=>s({property:f.target.value,range:i}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:e.map(f=>c.jsx("option",{value:f.id,children:f.name},f.id))}),c.jsx("select",{value:i,onChange:f=>s({property:o,range:f.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:D6.map(f=>c.jsx("option",{value:f.value,children:f.label},f.value))}),a&&c.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 ml-auto",children:["Cached until ",new Date(a.cached_until).toLocaleTimeString()]})]}),l&&!a&&c.jsx(ge,{className:"h-[400px] w-full rounded-xl"}),u&&!a&&c.jsx("div",{className:"p-4 rounded-lg bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-300 text-sm",children:u}),a&&h&&c.jsxs(c.Fragment,{children:[a.partial&&c.jsxs("div",{className:"p-3 rounded-lg bg-amber-50 dark:bg-amber-900/20 text-amber-800 dark:text-amber-200 text-sm",children:["Some reports failed to load: ",a.failed_reports.join(", "),"."]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(kt,{label:"Users",value:h.users.toLocaleString(),icon:ek,color:"bg-blue-500"}),c.jsx(kt,{label:"Sessions",value:h.sessions.toLocaleString(),icon:yu,color:"bg-orange-500"}),c.jsx(kt,{label:"Engagement",value:`${(h.engagementRate*100).toFixed(1)}%`,icon:og,color:"bg-purple-500"}),c.jsx(kt,{label:"Avg session",value:`${h.avgSessionSec.toFixed(0)}s`,icon:bu,color:"bg-green-500"})]}),c.jsx(Ms,{title:"Traffic over time",description:`Active users, new users, sessions for ${a.property_name}`,className:"h-[400px]",children:c.jsx(T6,{series:a.traffic})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Top pages"}),c.jsx(A6,{pages:a.top_pages})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Platforms"}),c.jsx(M6,{platforms:a.platforms})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Geography"}),c.jsx(L6,{rows:a.geography})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Top events"}),c.jsx(O6,{events:a.events})]})]})]})}const rh="https://insights.hotjar.com",F6=["info@sunbird.ai","analytics@sunbird.ai"],z6=[{name:"Heatmaps",icon:Y1,color:"bg-orange-500",description:"Aggregate click, move, scroll, and rage-click maps overlaid on each page. Shows where visitors focus attention and where they drop off.",useFor:"Spot unclicked CTAs, dead zones, and content that never gets scrolled into view."},{name:"Session Recordings",icon:vR,color:"bg-red-500",description:"Replay real user sessions with cursor movement, clicks, taps, scrolls, and form interactions. Filter by country, device, page, rage click, or u-turn.",useFor:"Debug confusing UX, watch how real users navigate sign-up, and confirm a bug is reproducible in the wild."},{name:"Funnels",icon:dR,color:"bg-purple-500",description:"Multi-step conversion funnels defined by URL patterns or events. Drop-off rate is shown per step with linked recordings for each stage.",useFor:"Measure landing-page → register → first API call conversion, and watch recordings of users who dropped off."},{name:"Surveys",icon:hf,color:"bg-blue-500",description:"On-site and link surveys (NPS, CSAT, CES, exit-intent, custom). Trigger on URL, time on page, scroll depth, or exit intent.",useFor:'Ask "What were you hoping to find?" on pages with high bounce, or NPS on the dashboard.'},{name:"Feedback Widget",icon:CR,color:"bg-green-500",description:"Inline rating widget (0–5 stars / emoji) pinned to any page. Visitors pick a rating, leave a comment, and optionally highlight the exact element they are commenting on.",useFor:"Passive, continuous sentiment signal per page. Great for the pricing and docs pages."},{name:"Trends & Dashboards",icon:Q1,color:"bg-indigo-500",description:"Aggregate trends over time: page-level NPS, CSAT, feedback score, rage clicks, u-turns, conversion rate. Composable dashboards.",useFor:"Track whether the last release moved the needle on rage-clicks or feedback scores."},{name:"User Attributes",icon:PR,color:"bg-teal-500",description:"Custom identifiers (user_id, plan, organization, role) sent via the Hotjar JS SDK and used to filter and segment every other tool.",useFor:'Filter recordings to "admin users on the Speech product who hit an error" without leaking PII.'},{name:"Engage (Interviews)",icon:ek,color:"bg-pink-500",description:"Schedule moderated user interviews with calendar integration and automatic incentive delivery. Recruit from the existing visitor pool.",useFor:"Book a live session with a real user who just rage-clicked the upload flow."},{name:"Integrations",icon:AR,color:"bg-amber-500",description:"Native integrations with Slack, Jira, Linear, Microsoft Teams, Google Analytics, Segment, HubSpot, Zapier, and more.",useFor:"Pipe new survey responses into the #product Slack channel, or link a recording to a Jira ticket."}];function V6(){return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Website & Engagement Funnel"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Qualitative website insights for all Sunbird products, powered by Hotjar."})]}),c.jsxs("a",{href:rh,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium shadow-sm",children:["Open Hotjar Insights",c.jsx(mr,{size:16})]})]}),c.jsxs("div",{className:"flex items-start gap-3 p-4 rounded-xl bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800/40 text-amber-900 dark:text-amber-100 text-sm",children:[c.jsx(sg,{size:18,className:"flex-shrink-0 mt-0.5"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-medium",children:"Why open Hotjar instead of viewing the data here?"}),c.jsx("p",{className:"mt-1 text-amber-800 dark:text-amber-200/90",children:"Hotjar's public API only exposes a limited subset of administrative data (users, sites, survey metadata). Heatmaps, recordings, funnel drop-offs, and survey responses are only viewable inside the Hotjar dashboard. We therefore link out rather than maintain a partial mirror that would miss the highest-value insights."})]})]}),c.jsx(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary rounded-xl shadow-sm border border-gray-100 dark:border-white/5 p-6",children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("div",{className:"p-2 rounded-lg bg-primary-500 bg-opacity-10 dark:bg-opacity-20",children:c.jsx(Qn,{className:"w-5 h-5 text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"How to sign in"}),c.jsxs("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:["Hotjar access is tied to two shared Sunbird Google accounts. Use",c.jsx("span",{className:"font-medium",children:" Sign in with Google"})," — do not sign up with a new email."]}),c.jsxs("ol",{className:"mt-4 space-y-3 text-sm text-gray-700 dark:text-gray-300",children:[c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"1"}),c.jsxs("span",{children:["Open"," ",c.jsx("a",{href:rh,target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline font-medium",children:"insights.hotjar.com"}),"."]})]}),c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"2"}),c.jsxs("span",{children:["Click ",c.jsx("span",{className:"font-medium",children:"Sign in with Google"})," and choose one of the shared accounts below."]})]}),c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"3"}),c.jsx("span",{children:"Pick the site (Sunflower, Sunbird Speech, etc.) from the organization switcher in the top-left."})]})]}),c.jsx("div",{className:"mt-5 grid grid-cols-1 sm:grid-cols-2 gap-3",children:F6.map(e=>c.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black/20",children:[c.jsx("div",{className:"p-2 rounded-md bg-primary-50 dark:bg-primary-900/30",children:c.jsx(vu,{className:"w-4 h-4 text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"Shared Google account"}),c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white truncate",children:e})]})]},e))}),c.jsxs("p",{className:"mt-4 text-xs text-gray-500 dark:text-gray-400",children:["Credentials are managed in 1Password under ",c.jsx("em",{children:"Sunbird / Hotjar"}),". If you need access, ask an admin to add your email to the shared vault."]})]})]})}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"What you'll find in Hotjar"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"A quick guide to each tool and the kind of question it answers."}),c.jsx("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:z6.map((e,t)=>c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:t*.04},className:"bg-white dark:bg-secondary p-5 rounded-xl shadow-sm border border-gray-100 dark:border-white/5 hover:border-primary-500/30 transition-colors group flex flex-col",children:[c.jsx("div",{className:`p-2 rounded-lg w-fit ${e.color} bg-opacity-10 dark:bg-opacity-20 group-hover:scale-110 transition-transform`,children:c.jsx(e.icon,{className:`w-5 h-5 ${e.color.replace("bg-","text-")}`})}),c.jsx("h3",{className:"mt-3 text-base font-semibold text-gray-900 dark:text-white",children:e.name}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-300 leading-relaxed",children:e.description}),c.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-100 dark:border-white/5",children:[c.jsx("p",{className:"text-xs uppercase tracking-wide text-gray-400 dark:text-gray-500 font-medium",children:"Use it for"}),c.jsx("p",{className:"mt-1 text-xs text-gray-600 dark:text-gray-400",children:e.useFor})]})]},e.name))})]}),c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4 p-5 rounded-xl border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black/20",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:"Ready to dig in?"}),c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:"Open Hotjar in a new tab and pick the product you want to investigate."})]}),c.jsxs("a",{href:rh,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium",children:["Go to Hotjar Insights",c.jsx(mr,{size:16})]})]})]})}function Bu(){const{theme:e,setTheme:t}=B1(),{isAuthenticated:n}=Qr(),[r,s]=S.useState(!1);return c.jsxs("nav",{className:"fixed top-0 w-full z-50 bg-white/80 dark:bg-black/80 backdrop-blur-md border-b border-gray-200 dark:border-white/10",children:[c.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"flex justify-between h-16 items-center",children:[c.jsxs(Ee,{to:"/",className:"flex items-center gap-2 font-bold text-xl text-gray-900 dark:text-white",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:"Sunbird AI"}),c.jsx("span",{children:"Sunbird AI"})]}),c.jsxs("div",{className:"hidden md:flex items-center gap-8",children:[c.jsx("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Documentation"}),c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"GitHub"}),c.jsx("a",{href:"https://sunflower.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Sunflower"})]}),c.jsxs("div",{className:"hidden md:flex items-center gap-4",children:[c.jsx("button",{onClick:()=>t(e==="dark"?"light":"dark"),className:"p-2 rounded-full hover:bg-gray-100 dark:hover:bg-white/10 text-gray-500 dark:text-gray-400 transition-colors","aria-label":"Toggle theme",children:e==="dark"?c.jsx(pf,{size:20}):c.jsx(ff,{size:20})}),c.jsx("div",{className:"h-6 w-px bg-gray-200 dark:bg-white/10 mx-2"}),n?c.jsx(Ee,{to:"/dashboard",className:"px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium transition-colors shadow-lg shadow-primary-500/20",children:"Dashboard"}):c.jsxs(c.Fragment,{children:[c.jsx(Ee,{to:"/login",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Log in"}),c.jsx(Ee,{to:"/register",className:"px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium transition-colors shadow-lg shadow-primary-500/20",children:"Sign Up"})]})]}),c.jsxs("div",{className:"flex items-center gap-4 md:hidden",children:[c.jsx("button",{onClick:()=>t(e==="dark"?"light":"dark"),className:"p-2 rounded-full hover:bg-gray-100 dark:hover:bg-white/10 text-gray-500 dark:text-gray-400 transition-colors",children:e==="dark"?c.jsx(pf,{size:20}):c.jsx(ff,{size:20})}),c.jsx("button",{onClick:()=>s(!r),className:"p-2 rounded-lg text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/10",children:r?c.jsx(wu,{size:24}):c.jsx(J1,{size:24})})]})]})}),c.jsx(YT,{children:r&&c.jsx(Lo.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"md:hidden bg-white dark:bg-black border-b border-gray-200 dark:border-white/10 overflow-hidden",children:c.jsxs("div",{className:"px-4 pt-2 pb-6 space-y-2",children:[c.jsx("a",{href:"https://docs.sunbird.ai",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"Documentation"}),c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"GitHub"}),c.jsx("a",{href:"https://sunflower.sunbird.ai",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"Sunflower"}),c.jsx("div",{className:"pt-4 mt-4 border-t border-gray-200 dark:border-white/10",children:n?c.jsx(Ee,{to:"/dashboard",className:"block w-full text-center px-4 py-2 rounded-lg bg-primary-600 text-white font-medium",children:"Dashboard"}):c.jsxs(c.Fragment,{children:[c.jsx(Ee,{to:"/login",className:"block w-full text-center px-4 py-2 rounded-lg border border-gray-300 dark:border-white/10 text-gray-700 dark:text-gray-300 font-medium mb-3",children:"Log in"}),c.jsx(Ee,{to:"/register",className:"block w-full text-center px-4 py-2 rounded-lg bg-primary-600 text-white font-medium",children:"Sign Up"})]})})]})})})]})}function $u(){return c.jsxs("footer",{className:"border-t border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black",children:[c.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8",children:[c.jsxs("div",{className:"lg:col-span-2",children:[c.jsxs("div",{className:"flex items-center gap-2 font-bold text-xl text-gray-900 dark:text-white mb-4",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:"Sunbird AI"}),c.jsx("span",{children:"Sunbird AI"})]}),c.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-4 max-w-sm",children:"Empowering African languages with state-of-the-art AI models for translation, transcription, and speech synthesis."}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx("a",{href:"https://twitter.com/sunbirdai",target:"_blank",rel:"noopener noreferrer","aria-label":"Twitter",children:c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/x-twitter.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/x-twitter.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})}),c.jsx("a",{href:"https://github.com/SunbirdAI",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",children:c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/github.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/github.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})}),c.jsxs("a",{href:"https://www.linkedin.com/company/sunbird-ai",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn",children:[c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/linkedin.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/linkedin.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})," "]})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Resources"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Documentation"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"API Reference"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/translation-api-examples",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Code Examples"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/blob/main/tutorial.md",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Tutorial"})})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Products"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://sunflower.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Sunflower"})}),c.jsx("li",{children:c.jsx(Ee,{to:"https://sunflower.sunbird.ai",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Translation"})}),c.jsx("li",{children:c.jsx(Ee,{to:"https://speech.sunbird.ai",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Speech"})})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Company"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"About Us"})}),c.jsx("li",{children:c.jsx("a",{href:"https://blog.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Blog"})}),c.jsx("li",{children:c.jsx(Ee,{to:"/privacy_policy",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Privacy Policy"})}),c.jsx("li",{children:c.jsx(Ee,{to:"/terms_of_service",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Terms of Service"})})]})]})]})}),c.jsx("div",{className:"py-5 border-t border-gray-200 dark:border-white/10 flex items-center justify-center",children:c.jsxs("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:["© ",new Date().getFullYear()," Sunbird AI. All rights reserved."]})})]})}function B6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black transition-colors duration-300 selection:bg-primary-500 selection:text-white",children:[c.jsx(Bu,{}),c.jsx("div",{className:"relative pt-32 pb-16 sm:pt-40 sm:pb-24 lg:pb-32 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto text-center overflow-hidden",children:c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},children:[c.jsxs("h1",{className:"relative text-4xl sm:text-5xl lg:text-7xl font-extrabold tracking-tight text-gray-900 dark:text-white mb-6",children:["Welcome to the ",c.jsx("br",{className:"hidden sm:block"}),c.jsx("span",{className:"text-primary-600 dark:text-primary-500",children:"Sunbird AI API"})]}),c.jsx("p",{className:"relative text-xl text-gray-600 dark:text-gray-400 max-w-2xl mx-auto mb-10 leading-relaxed",children:"Get started with African language AI models. Translate, transcribe, and synthesize speech with state-of-the-art models designed for the continent."}),c.jsxs("div",{className:"relative flex flex-col sm:flex-row items-center justify-center gap-4",children:[c.jsxs(Ee,{to:"/register",className:"w-full sm:w-auto px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold text-lg transition-all shadow-xl shadow-primary-500/20 hover:shadow-primary-500/30 flex items-center justify-center gap-2",children:["Get Started",c.jsx(df,{size:20})]}),c.jsxs("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"w-full sm:w-auto px-8 py-4 rounded-xl bg-white dark:bg-secondary hover:bg-gray-50 dark:hover:bg-white/5 border border-gray-200 dark:border-white/10 text-gray-900 dark:text-white font-semibold text-lg transition-all backdrop-blur-sm flex items-center justify-center gap-2",children:[c.jsx(Tc,{size:20}),"Read Docs"]})]})]})}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-16",children:[c.jsxs("div",{className:"text-center mb-12",children:[c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"What You Can Build"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto",children:"Powerful AI capabilities for African languages at your fingertips"})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[c.jsxs("a",{href:"https://docs.sunbird.ai/guides/translation",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Translate Content"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Translate text between English and 5+ local Ugandan languages with high accuracy."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/speech-to-text",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Transcribe Audio"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Convert speech audio into text for captioning, logging, or analysis."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/text-to-speech",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Generate Speech"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Turn text into natural-sounding speech in local languages."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/sunflower-chat",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Conversational AI"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Build chatbots that understand and respond in local cultural contexts."})]})]})]}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-16",children:[c.jsxs("div",{className:"text-center mb-8",children:[c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"Supported Languages"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400",children:"We support translation between English and these Ugandan languages"})]}),c.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:["Luganda","Acholi","Ateso","Lugbara","Runyankole"].map(e=>c.jsx("div",{className:"px-6 py-3 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/5 text-gray-900 dark:text-white font-medium hover:border-primary-500 dark:hover:border-primary-500/50 transition-colors shadow-sm dark:shadow-md dark:shadow-black/20",children:e},e))}),c.jsx("div",{className:"text-center mt-6",children:c.jsxs("a",{href:"https://docs.sunbird.ai/languages",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-300 font-medium inline-flex items-center gap-2",children:["View all supported languages",c.jsx(df,{size:16})]})})]}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-24",children:[c.jsx("div",{className:"text-center mb-12",children:c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"Get Started in Minutes"})}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[c.jsxs(Ee,{to:"/tutorial",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(Tc,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Tutorial"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Learn how to use the API with step-by-step guides and best practices."})]}),c.jsxs("a",{href:"https://github.com/SunbirdAI/translation-api-examples",target:"_blank",rel:"noopener noreferrer",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(jR,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Examples"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"View code examples and SDK usage on GitHub for Python and JS."})]}),c.jsxs(Ee,{to:"/login",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(yu,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Usage Stats"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Monitor your API usage, request volume, and limits in real-time."})]}),c.jsxs(Ee,{to:"/login",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(X1,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"API Tokens"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Manage your access tokens and security keys securely."})]})]})]}),c.jsx($u,{})]})}const $6=["NGO","Government","Private Sector","Research","Individual","Other"],Pb=["Health","Agriculture","Energy","Environment","Education","Governance"];function H6(){const[e,t]=S.useState({username:"",email:"",full_name:"",organization:"",organization_type:"",password:"",confirmPassword:""}),[n,r]=S.useState([]),[s,o]=S.useState(""),[i,a]=S.useState(""),[l,u]=S.useState(!1),[d,h]=S.useState(!1),[f,p]=S.useState(!1),g=Is(),m=async b=>{var k,w;if(b.preventDefault(),a(""),e.password!==e.confirmPassword){a("Passwords do not match");return}u(!0);try{await ae.post("/auth/register",{username:e.username,email:e.email,organization:e.organization,password:e.password,full_name:e.full_name||void 0,organization_type:e.organization_type||void 0,sector:n.length>0?n:void 0}),g("/login",{state:{message:"Registration successful! Please sign in."}})}catch(j){a(((w=(k=j.response)==null?void 0:k.data)==null?void 0:w.detail)||"Registration failed. Please try again.")}finally{u(!1)}},y=b=>{r(k=>k.includes(b)?k.filter(w=>w!==b):[...k,b])},x=()=>{const b=s.trim();b&&!n.includes(b)&&(r(k=>[...k,b]),o(""))},v=()=>{window.location.href="/auth/google/login?next=/dashboard"};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4 py-12",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Sign Up"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Sign up to access your API dashboard"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[i&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:i}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e.username,onChange:b=>t({...e,username:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"johndoe",disabled:l})]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Full Name ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(optional)"})]}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",value:e.full_name,onChange:b=>t({...e,full_name:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"John Doe",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email address"}),c.jsxs("div",{className:"relative",children:[c.jsx(vu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"email",required:!0,value:e.email,onChange:b=>t({...e,email:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"you@example.com",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization"}),c.jsxs("div",{className:"relative",children:[c.jsx(H1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e.organization,onChange:b=>t({...e,organization:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Company Name",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("div",{className:"relative",children:[c.jsx($1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsxs("select",{required:!0,value:e.organization_type,onChange:b=>t({...e,organization_type:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:l,children:[c.jsx("option",{value:"",children:"Select type..."}),$6.map(b=>c.jsx("option",{value:b,children:b},b))]})]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Impact Sectors ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(select all that apply)"})]}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:[...Pb,...n.filter(b=>!Pb.includes(b))].map(b=>c.jsxs("button",{type:"button",onClick:()=>y(b),disabled:l,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${n.includes(b)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[b," ",n.includes(b)&&"✓"]},b))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:s,onChange:b=>o(b.target.value),onKeyDown:b=>b.key==="Enter"&&(b.preventDefault(),x()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:l}),c.jsx("button",{type:"button",onClick:x,disabled:l,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:d?"text":"password",required:!0,value:e.password,onChange:b=>t({...e,password:b.target.value}),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>h(!d),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:d?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:f?"text":"password",required:!0,value:e.confirmPassword,onChange:b=>t({...e,confirmPassword:b.target.value}),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>p(!f),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:f?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("button",{type:"submit",disabled:l,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors shadow-lg shadow-primary-500/20 disabled:opacity-50 disabled:cursor-not-allowed",children:[" ",l&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),l?"Creating Account...":"Create Account"]})]}),c.jsxs("div",{className:"mt-6",children:[c.jsx("div",{className:"relative",children:c.jsxs("div",{className:"relative flex justify-center items-center text-sm",children:[c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"}),c.jsx("span",{className:"px-2 text-gray-500",children:"OR"}),c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"})]})}),c.jsx("div",{className:"mt-6",children:c.jsxs("button",{onClick:v,type:"button",className:"w-full inline-flex justify-center items-center gap-2 py-2 px-4 border border-gray-300 dark:border-white/10 rounded-lg shadow-sm bg-white dark:bg-white/5 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/10 transition-colors",children:[c.jsxs("svg",{className:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"25",height:"25",viewBox:"0 0 48 48",children:[c.jsx("path",{fill:"#FFC107",d:"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"}),c.jsx("path",{fill:"#FF3D00",d:"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"}),c.jsx("path",{fill:"#4CAF50",d:"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"}),c.jsx("path",{fill:"#1976D2",d:"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"})]}),"Sign Up with Google"]})})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:["Already have an account?"," ",c.jsx(Ee,{to:"/login",className:"font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Sign in"})]})})]})})})}function Rb(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(!1),[i,a]=S.useState(""),[l,u]=S.useState(!1),{login:d,checkAuth:h}=Qr(),f=Is(),p=ir();S.useEffect(()=>{const y=new URLSearchParams(p.search),x=y.get("token"),v=y.get("error");if(x){localStorage.setItem("access_token",x),ae.defaults.headers.common.Authorization=`Bearer ${x}`;const b=y.get("next")||"/dashboard";h().then(()=>{f(b)})}v&&a("Authentication failed. Please try again.")},[p,h,f]);const g=async y=>{var x,v;y.preventDefault(),a(""),u(!0);try{await d(e,n),f("/dashboard")}catch(b){a(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Invalid username or password")}finally{u(!1)}},m=()=>{window.location.href="/auth/google/login?next=/dashboard"};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsxs("div",{className:"max-w-md w-full space-y-8",children:[c.jsx("div",{className:"text-center"}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Sign In"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Login to access your API dashboard"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:g,children:[i&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:i}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(RR,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e,onChange:y=>t(y.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"username",disabled:l})]})]}),c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-between mb-1",children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"Password"}),c.jsx(Ee,{to:"/forgot-password",className:"text-sm font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Forgot password?"})]}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:s?"text":"password",required:!0,value:n,onChange:y=>r(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>o(!s),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:s?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("button",{type:"submit",disabled:l,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[l&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),l?"Signing in...":"Sign in"]})]}),c.jsxs("div",{className:"mt-6",children:[c.jsx("div",{className:"relative",children:c.jsxs("div",{className:"relative flex justify-center items-center text-sm",children:[c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"}),c.jsx("span",{className:"px-2 text-gray-500",children:"OR"}),c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"})]})}),c.jsx("div",{className:"mt-6",children:c.jsxs("button",{onClick:m,type:"button",className:"w-full inline-flex justify-center items-center gap-2 py-2 px-4 border border-gray-300 dark:border-white/10 rounded-lg shadow-sm bg-white dark:bg-white/5 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/10 transition-colors",children:[c.jsxs("svg",{className:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"25",height:"25",viewBox:"0 0 48 48",children:[c.jsx("path",{fill:"#FFC107",d:"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"}),c.jsx("path",{fill:"#FF3D00",d:"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"}),c.jsx("path",{fill:"#4CAF50",d:"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"}),c.jsx("path",{fill:"#1976D2",d:"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"})]}),"Sign in with Google"]})})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:["Don't have an account?"," ",c.jsx(Ee,{to:"/register",className:"font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Sign up"})]})})]})]})})}function U6(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(""),[i,a]=S.useState(!1),l=async u=>{var d,h;u.preventDefault(),o(""),r(""),a(!0);try{const f=await ae.post("/auth/forgot-password",{email:e});f.data.success?r("Password reset email sent! Please check your inbox."):o(f.data.message||"Failed to send reset email")}catch(f){o(((h=(d=f.response)==null?void 0:d.data)==null?void 0:h.detail)||"Failed to send reset email. Please try again.")}finally{a(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary p-8 rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Forgot Password "}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Enter your email address and we'll send you a link to reset your password"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:l,children:[s&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:s}),n&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:n}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email address"}),c.jsxs("div",{className:"relative",children:[c.jsx(vu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"email",required:!0,value:e,onChange:u=>t(u.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"you@example.com",disabled:i})]})]}),c.jsxs("button",{type:"submit",disabled:i,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[i&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),i?"Sending...":"Send Reset Link"]})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs(Ee,{to:"/login",className:"inline-flex items-center gap-2 text-sm font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:[c.jsx(lR,{className:"w-4 h-4"}),"Back to Sign In"]})})]})})})}function W6(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(!1),[i,a]=S.useState(!1),[l,u]=S.useState(""),[d,h]=S.useState(!1),[f]=m1(),p=Is(),g=f.get("token");S.useEffect(()=>{g||u("Invalid or missing reset token")},[g]);const m=async y=>{var x,v;if(y.preventDefault(),u(""),e!==n){u("Passwords do not match");return}if(!g){u("Invalid reset token");return}h(!0);try{await ae.post("/auth/reset-password",{token:g,new_password:e}),p("/login",{state:{message:"Password reset successful! Please sign in with your new password."}})}catch(b){u(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Failed to reset password. The link may have expired.")}finally{h(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary p-8 rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Reset Password "}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Enter your new password below"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[l&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:l}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:s?"text":"password",required:!0,value:e,onChange:y=>t(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:d||!g}),c.jsx("button",{type:"button",onClick:()=>o(!s),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:d||!g,children:s?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:i?"text":"password",required:!0,value:n,onChange:y=>r(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:d||!g}),c.jsx("button",{type:"button",onClick:()=>a(!i),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:d||!g,children:i?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsx("button",{type:"submit",disabled:d||!g,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:d?"Resetting Password...":"Reset Password"})]})]})})})}const G6=["NGO","Government","Private Sector","Research","Individual","Other"],Eb=["Health","Agriculture","Energy","Environment","Education","Governance"];function q6(){const{user:e,checkAuth:t}=Qr(),n=Is(),[r,s]=S.useState({full_name:(e==null?void 0:e.full_name)||"",organization:(e==null?void 0:e.organization)==="Unknown"?"":(e==null?void 0:e.organization)||"",organization_type:(e==null?void 0:e.organization_type)||""}),[o,i]=S.useState((e==null?void 0:e.sector)||[]),[a,l]=S.useState(""),[u,d]=S.useState(!1),[h,f]=S.useState(""),p=y=>{i(x=>x.includes(y)?x.filter(v=>v!==y):[...x,y])},g=()=>{const y=a.trim();y&&!o.includes(y)&&(i(x=>[...x,y]),l(""))},m=async y=>{var x,v;y.preventDefault(),f(""),d(!0);try{await ae.put("/auth/profile",{full_name:r.full_name||void 0,organization:r.organization||void 0,organization_type:r.organization_type||void 0,sector:o.length>0?o:void 0}),await t(),n("/dashboard")}catch(b){f(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Failed to update profile. Please try again.")}finally{d(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4 py-12",children:c.jsxs("div",{className:"max-w-md w-full space-y-8",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover mx-auto mb-3"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Complete Your Profile"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Help us understand how you're using Sunbird AI so we can serve you better."})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5",children:[c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[h&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:h}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Full Name"}),c.jsx("input",{type:"text",value:r.full_name,onChange:y=>s({...r,full_name:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"John Doe",disabled:u})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Name"}),c.jsx("input",{type:"text",value:r.organization,onChange:y=>s({...r,organization:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Sunbird AI",disabled:u})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("select",{value:r.organization_type,onChange:y=>s({...r,organization_type:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:u,children:[c.jsx("option",{value:"",children:"Select type..."}),G6.map(y=>c.jsx("option",{value:y,children:y},y))]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Impact Sectors ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(select all that apply)"})]}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:[...Eb,...o.filter(y=>!Eb.includes(y))].map(y=>c.jsxs("button",{type:"button",onClick:()=>p(y),disabled:u,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${o.includes(y)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[y," ",o.includes(y)&&"✓"]},y))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:a,onChange:y=>l(y.target.value),onKeyDown:y=>y.key==="Enter"&&(y.preventDefault(),g()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:u}),c.jsx("button",{type:"button",onClick:g,disabled:u,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("button",{type:"submit",disabled:u,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors shadow-lg shadow-primary-500/20 disabled:opacity-50 disabled:cursor-not-allowed",children:[u&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),u?"Saving...":"Save & Continue to Dashboard"]})]}),c.jsx("div",{className:"mt-4 text-center",children:c.jsx("button",{onClick:()=>n("/dashboard"),className:"text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors",children:"Skip for now →"})})]})]})})}function K6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black flex flex-col",children:[c.jsx(Bu,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-4xl mx-auto",children:[c.jsx("h1",{className:"text-4xl font-bold text-gray-900 dark:text-white mb-8",children:"Privacy Policy"}),c.jsxs("div",{className:"space-y-8 text-gray-700 dark:text-gray-300",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Introduction"}),c.jsx("p",{className:"leading-relaxed",children:"Welcome to the Privacy Policy of Sunbird AI. We understand that privacy online is important to users of our services, especially when utilizing our WhatsApp translation bot. This statement governs our privacy policies with respect to the collection, use, and disclosure of personal information when using our services."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Personally Identifiable Information"}),c.jsx("p",{className:"leading-relaxed",children:"Personally Identifiable Information refers to any information that identifies or can be used to identify, contact, or locate the person to whom such information pertains, including, but not limited to, name, address, phone number, email address, IP address, location, and browser."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"What Personally Identifiable Information is collected?"}),c.jsx("p",{className:"leading-relaxed",children:"We may collect basic user profile information from all users of our services. Additional information may be collected from users of our WhatsApp translation bot, including but not limited to, the content of messages for translation purposes."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"How is Personally Identifiable Information stored?"}),c.jsx("p",{className:"leading-relaxed",children:"Personally Identifiable Information collected by Sunbird AI is securely stored and is not accessible to third parties or employees of Sunbird AI except for use as indicated above."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"What choices are available to users regarding collection, use, and distribution of the information?"}),c.jsx("p",{className:"leading-relaxed",children:"Users may opt-out of certain data collection practices as outlined in this Privacy Policy by contacting Sunbird AI."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Changes to this Privacy Policy"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI reserves the right to update or change our Privacy Policy at any time. Users will be notified of any changes by posting the new Privacy Policy on this page."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Contact Us"}),c.jsxs("p",{className:"leading-relaxed",children:["If you have any questions about this Privacy Policy, please contact us at ",c.jsx("a",{href:"mailto:info@sunbird.ai",className:"text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 underline",children:"info@sunbird.ai"})]})]})]})]})}),c.jsx($u,{})]})}function Y6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black flex flex-col",children:[c.jsx(Bu,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-4xl mx-auto",children:[c.jsx("h1",{className:"text-4xl font-bold text-gray-900 dark:text-white mb-8",children:"Terms of Service"}),c.jsxs("div",{className:"space-y-8 text-gray-700 dark:text-gray-300",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Agreement"}),c.jsx("p",{className:"leading-relaxed",children:"By accessing or using the services provided by Sunbird AI, you agree to abide by these Terms of Service. These Terms apply to all visitors, users, and others who access or use our services."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Use of Services"}),c.jsx("p",{className:"leading-relaxed",children:'Our services, including the WhatsApp translation bot, are provided on an "as is" and "as available" basis. Users are solely responsible for their use of the services and any consequences thereof.'})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Intellectual Property"}),c.jsx("p",{className:"leading-relaxed",children:"All intellectual property rights associated with the services provided by Sunbird AI, including but not limited to, the WhatsApp translation bot, are owned by Sunbird AI. Users are granted a limited, non-exclusive, non-transferable license to use the services for personal or non-commercial purposes."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Limitation of Liability"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses resulting from (i) your access to or use of or inability to access or use the services; (ii) any conduct or content of any third party on the services; (iii) any content obtained from the services; or (iv) unauthorized access, use, or alteration of your transmissions or content."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Changes to Terms of Service"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI reserves the right to update or change these Terms of Service at any time. Users will be notified of any changes by posting the new Terms of Service on this page."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Contact Us"}),c.jsxs("p",{className:"leading-relaxed",children:["If you have any questions about these Terms of Service, please contact us at ",c.jsx("a",{href:"mailto:info@sunbird.ai",className:"text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 underline",children:"info@sunbird.ai"})]})]})]})]})}),c.jsx($u,{})]})}function X6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Q6(e,t){if(e==null)return{};var n,r,s=X6(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var sh={};function oF(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return sh[t]||(sh[t]=sF(e)),sh[t]}function iF(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(o){return o!=="token"}),s=oF(r);return s.reduce(function(o,i){return fo(fo({},o),n[i])},t)}function Ab(e){return e.join(" ")}function aF(e,t){var n=0;return function(r){return n+=1,r.map(function(s,o){return US({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(o)})})}}function US(e){var t=e.node,n=e.stylesheet,r=e.style,s=r===void 0?{}:r,o=e.useInlineStyles,i=e.key,a=t.properties,l=t.type,u=t.tagName,d=t.value;if(l==="text")return d;if(u){var h=aF(n,o),f;if(!o)f=fo(fo({},a),{},{className:Ab(a.className)});else{var p=Object.keys(n).reduce(function(x,v){return v.split(".").forEach(function(b){x.includes(b)||x.push(b)}),x},[]),g=a.className&&a.className.includes("token")?["token"]:[],m=a.className&&g.concat(a.className.filter(function(x){return!p.includes(x)}));f=fo(fo({},a),{},{className:Ab(m)||void 0,style:iF(a.className,Object.assign({},a.style,s),n)})}var y=h(t.children);return z.createElement(u,Yf({key:i},f),y)}}const lF=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var cF=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Mb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Cr(e){for(var t=1;t{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function i6(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function a6(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=S.useState(()=>({current:YI(t)})),[r,s]=S.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:i=>{s(i),e.onStateChange==null||e.onStateChange(i)}})),n.current}const IS=S.forwardRef(({className:e,...t},n)=>c.jsx("div",{className:"relative w-full overflow-auto",children:c.jsx("table",{ref:n,className:ar("w-full caption-bottom text-sm",e),...t})}));IS.displayName="Table";const FS=S.forwardRef(({className:e,...t},n)=>c.jsx("thead",{ref:n,className:ar("[&_tr]:border-b dark:border-white/5",e),...t}));FS.displayName="TableHeader";const zS=S.forwardRef(({className:e,...t},n)=>c.jsx("tbody",{ref:n,className:ar("[&_tr:last-child]:border-0",e),...t}));zS.displayName="TableBody";const l6=S.forwardRef(({className:e,...t},n)=>c.jsx("tfoot",{ref:n,className:ar("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));l6.displayName="TableFooter";const rc=S.forwardRef(({className:e,...t},n)=>c.jsx("tr",{ref:n,className:ar("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted dark:border-white/5 dark:hover:bg-white/5",e),...t}));rc.displayName="TableRow";const VS=S.forwardRef(({className:e,...t},n)=>c.jsx("th",{ref:n,className:ar("h-12 px-4 text-left align-middle font-semibold text-xs uppercase tracking-wider text-gray-600 dark:text-gray-400 [&:has([role=checkbox])]:pr-0 bg-gray-50 dark:bg-white/5",e),...t}));VS.displayName="TableHead";const Wf=S.forwardRef(({className:e,...t},n)=>c.jsx("td",{ref:n,className:ar("p-4 align-middle [&:has([role=checkbox])]:pr-0 text-gray-900 dark:text-gray-300",e),...t}));Wf.displayName="TableCell";const c6=S.forwardRef(({className:e,...t},n)=>c.jsx("caption",{ref:n,className:ar("mt-4 text-sm text-muted-foreground",e),...t}));c6.displayName="TableCaption";function u6({columns:e,data:t,searchable:n=!0,itemsPerPage:r=10,emptyMessage:s="No results."}){var f;const[o,i]=S.useState([]),[a,l]=S.useState([]),[u,d]=S.useState(""),h=a6({data:t,columns:e,getCoreRowModel:XI(),getPaginationRowModel:n6(),onSortingChange:i,getSortedRowModel:r6(),onColumnFiltersChange:l,getFilteredRowModel:t6(),onGlobalFilterChange:d,state:{sorting:o,columnFilters:a,globalFilter:u},initialState:{pagination:{pageSize:r}}});return c.jsxs("div",{className:"space-y-4",children:[n&&c.jsxs("div",{className:"relative",children:[c.jsx(Z1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{placeholder:"Search...",value:u??"",onChange:p=>d(p.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600"})]}),c.jsx("div",{className:"rounded-md border border-gray-200 dark:border-white/10 overflow-hidden",children:c.jsxs(IS,{children:[c.jsx(FS,{children:h.getHeaderGroups().map(p=>c.jsx(rc,{children:p.headers.map(g=>c.jsx(VS,{children:g.isPlaceholder?null:Sb(g.column.columnDef.header,g.getContext())},g.id))},p.id))}),c.jsx(zS,{children:(f=h.getRowModel().rows)!=null&&f.length?h.getRowModel().rows.map(p=>c.jsx(rc,{"data-state":p.getIsSelected()&&"selected",children:p.getVisibleCells().map(g=>c.jsx(Wf,{children:Sb(g.column.columnDef.cell,g.getContext())},g.id))},p.id)):c.jsx(rc,{children:c.jsx(Wf,{colSpan:e.length,className:"h-24 text-center",children:s})})})]})}),h.getPageCount()>1&&c.jsxs("div",{className:"flex items-center justify-between space-x-2 py-4",children:[c.jsxs("div",{className:"text-sm text-gray-700 dark:text-gray-300",children:["Page ",h.getState().pagination.pageIndex+1," of ",h.getPageCount()]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("button",{className:"p-2 rounded-lg border border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:()=>h.previousPage(),disabled:!h.getCanPreviousPage(),children:c.jsx(W1,{size:16})}),c.jsx("button",{className:"p-2 rounded-lg border border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:()=>h.nextPage(),disabled:!h.getCanNextPage(),children:c.jsx(G1,{size:16})})]})]})]})}function d6(){const{user:e}=Qr(),[t,n]=S.useState([]),[r,s]=S.useState(null),[o,i]=S.useState(!0);S.useEffect(()=>{e&&(async()=>{try{const d=localStorage.getItem("access_token");d&&n([{id:"1",name:"Current API Key",key:d,status:"Active"}])}catch(d){console.error("Failed to fetch API keys:",d)}finally{i(!1)}})()},[e]);const a=(u,d)=>{navigator.clipboard.writeText(u),s(d),setTimeout(()=>s(null),2e3)},l=[{accessorKey:"name",header:"Name"},{accessorKey:"key",header:"Key",cell:({row:u})=>c.jsxs("div",{className:"flex items-center gap-2 font-mono text-gray-700 dark:text-gray-300",children:[c.jsxs("span",{className:"truncate max-w-xs",children:[u.original.key.substring(0,20),"..."]}),c.jsx("button",{onClick:()=>a(u.original.key,u.original.id),className:"p-1 hover:bg-gray-100 dark:hover:bg-white/10 rounded transition-colors",title:"Copy key",children:r===u.original.id?c.jsx(bu,{className:"w-3 h-3 text-green-500"}):c.jsx(q1,{className:"w-3 h-3"})})]})},{accessorKey:"status",header:"Status",cell:({row:u})=>c.jsx("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${u.original.status==="Active"?"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-400"}`,children:u.original.status})}];return o?c.jsx("div",{className:"flex items-center justify-center h-64",children:c.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:"Loading API keys..."})}):c.jsxs("div",{className:"max-w-5xl mx-auto space-y-8",children:[c.jsx("div",{className:"flex items-center justify-between",children:c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"API Keys"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Manage your API keys for authentication."})]})}),c.jsx("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:c.jsx(u6,{data:t,columns:l,itemsPerPage:10,searchable:!0,emptyMessage:"No API keys found. Generate one to get started."})}),c.jsxs("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[c.jsx("h3",{className:"text-sm font-medium text-blue-900 dark:text-blue-300 mb-2",children:"Using Your API Key"}),c.jsx("p",{className:"text-sm text-blue-700 dark:text-blue-400 mb-3",children:"Include your API key in the Authorization header of your requests:"}),c.jsx("code",{className:"block bg-white dark:bg-black/50 p-3 rounded text-xs font-mono text-gray-900 dark:text-gray-100 border border-blue-200 dark:border-blue-800",children:"Authorization: Bearer YOUR_API_KEY"})]})]})}const h6=["NGO","Government","Private Sector","Research","Individual","Other"],_b=["Health","Agriculture","Energy","Environment","Education","Governance"];function f6(){const{user:e}=Qr(),{theme:t,setTheme:n}=B1(),[r,s]=S.useState({username:(e==null?void 0:e.username)||"",email:(e==null?void 0:e.email)||"",full_name:(e==null?void 0:e.full_name)||"",organization:(e==null?void 0:e.organization)||"",organization_type:(e==null?void 0:e.organization_type)||""}),[o,i]=S.useState((e==null?void 0:e.sector)||[]),[a,l]=S.useState(""),[u,d]=S.useState(""),[h,f]=S.useState(""),[p,g]=S.useState(!1),[m,y]=S.useState({oldPassword:"",newPassword:"",confirmPassword:""}),[x,v]=S.useState(""),[b,k]=S.useState(""),[w,j]=S.useState(!1),[N,_]=S.useState(!1),[P,A]=S.useState(!1),[O,F]=S.useState(!1),D=E=>{i(I=>I.includes(E)?I.filter(Y=>Y!==E):[...I,E])},U=()=>{const E=a.trim();E&&!o.includes(E)&&(i(I=>[...I,E]),l(""))},W=async E=>{var I,Y;E.preventDefault(),f(""),d(""),g(!0);try{await ae.put("/auth/profile",{full_name:r.full_name||void 0,organization:r.organization||void 0,organization_type:r.organization_type||void 0,sector:o.length>0?o:void 0}),d("Profile updated successfully!")}catch(T){f(((Y=(I=T.response)==null?void 0:I.data)==null?void 0:Y.detail)||"Failed to update profile.")}finally{g(!1)}},M=async E=>{var I,Y;if(E.preventDefault(),v(""),k(""),m.newPassword!==m.confirmPassword){v("New passwords do not match");return}j(!0);try{const T=await ae.post("/auth/change-password",{old_password:m.oldPassword,new_password:m.newPassword});T.data.success?(k("Password changed successfully!"),y({oldPassword:"",newPassword:"",confirmPassword:""})):v(T.data.message||"Failed to change password")}catch(T){v(((Y=(I=T.response)==null?void 0:I.data)==null?void 0:Y.detail)||"Failed to change password")}finally{j(!1)}},H=(e==null?void 0:e.oauth_type)==="Google"||(e==null?void 0:e.oauth_type)==="GitHub",C=!H,L=!H;return c.jsxs("div",{className:"max-w-2xl mx-auto space-y-8",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Account Settings"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Manage your profile and preferences."})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Profile Information"}),c.jsxs("form",{onSubmit:W,className:"space-y-4",children:[h&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:h}),u&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:u}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.username,onChange:E=>s({...r,username:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Full Name"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.full_name,onChange:E=>s({...r,full_name:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",placeholder:"John Doe",disabled:p})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email Address"}),c.jsxs("div",{className:"relative",children:[c.jsx(wu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"email",value:r.email,onChange:E=>s({...r,email:E.target.value}),className:`w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white ${L?"":"opacity-50 cursor-not-allowed"}`,disabled:!L,title:L?"":"Email cannot be changed for OAuth accounts"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization"}),c.jsxs("div",{className:"relative",children:[c.jsx(H1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:r.organization,onChange:E=>s({...r,organization:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",placeholder:"Organization Name",disabled:p})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("div",{className:"relative",children:[c.jsx($1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsxs("select",{value:r.organization_type,onChange:E=>s({...r,organization_type:E.target.value}),className:"w-full pl-9 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:p,children:[c.jsx("option",{value:"",children:"Select type..."}),h6.map(E=>c.jsx("option",{value:E,children:E},E))]})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Impact Sectors"}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:[..._b,...o.filter(E=>!_b.includes(E))].map(E=>c.jsxs("button",{type:"button",onClick:()=>D(E),disabled:p,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${o.includes(E)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[E," ",o.includes(E)&&"✓"]},E))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:a,onChange:E=>l(E.target.value),onKeyDown:E=>E.key==="Enter"&&(E.preventDefault(),U()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:p}),c.jsx("button",{type:"button",onClick:U,disabled:p,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Account Type"}),c.jsxs("div",{className:"relative",children:[c.jsx(uR,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:"text",value:(e==null?void 0:e.account_type)||"Standard",readOnly:!0,className:"w-full pl-9 pr-4 py-2 bg-gray-50 dark:bg-white/5 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none text-gray-500 dark:text-gray-400 cursor-not-allowed"})]})]}),c.jsx("div",{className:"pt-2",children:c.jsx("button",{type:"submit",disabled:p,className:"px-4 py-2 bg-primary-600 hover:bg-primary-700 text-white rounded-lg text-sm font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:p?"Saving...":"Save Changes"})})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Appearance"}),c.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[c.jsxs("button",{onClick:()=>n("light"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="light"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(pf,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"Light"})]}),c.jsxs("button",{onClick:()=>n("dark"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="dark"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(ff,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"Dark"})]}),c.jsxs("button",{onClick:()=>n("system"),className:`p-4 rounded-lg border flex flex-col items-center gap-2 transition-all ${t==="system"?"border-primary-500 bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400":"border-gray-200 dark:border-white/10 hover:bg-gray-50 dark:hover:bg-white/5 text-gray-700 dark:text-gray-300"}`,children:[c.jsx(gR,{className:"w-6 h-6"}),c.jsx("span",{className:"text-sm font-medium",children:"System"})]})]})]}),C&&c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl p-6 shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 space-y-6",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Change Password"}),c.jsxs("form",{onSubmit:M,className:"space-y-4",children:[x&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:x}),b&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:b}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Current Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:N?"text":"password",required:!0,placeholder:"••••••••",value:m.oldPassword,onChange:E=>y({...m,oldPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>_(!N),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:N?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:P?"text":"password",placeholder:"••••••••",required:!0,value:m.newPassword,onChange:E=>y({...m,newPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>A(!P),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:P?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),c.jsx("input",{type:O?"text":"password",required:!0,placeholder:"••••••••",value:m.confirmPassword,onChange:E=>y({...m,confirmPassword:E.target.value}),className:"w-full pl-9 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white",disabled:w}),c.jsx("button",{type:"button",onClick:()=>F(!O),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:w,children:O?c.jsx(Dr,{className:"w-4 h-4"}):c.jsx(Ir,{className:"w-4 h-4"})})]})]}),c.jsx("div",{className:"pt-2",children:c.jsx("button",{type:"submit",disabled:w,className:"px-4 py-2 bg-primary-600 hover:bg-primary-700 text-white rounded-lg text-sm font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:w?"Changing Password...":"Change Password"})})]})]})]})}function p6({value:e,onChange:t,options:n,placeholder:r="Select...",disabled:s=!1,className:o=""}){const[i,a]=S.useState(!1),[l,u]=S.useState(""),d=S.useRef(null),h=S.useRef(null);S.useEffect(()=>{const m=y=>{d.current&&!d.current.contains(y.target)&&(a(!1),u(""))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]),S.useEffect(()=>{i&&h.current&&h.current.focus()},[i]);const f=n.filter(m=>m.toLowerCase().includes(l.toLowerCase())),p=m=>{t(m),a(!1),u("")},g=m=>{m.stopPropagation(),t(""),u("")};return c.jsxs("div",{className:`relative ${o}`,ref:d,children:[c.jsxs("button",{type:"button",onClick:()=>!s&&a(!i),disabled:s,className:"flex items-center justify-between w-full min-w-[240px] px-3 py-2 text-sm bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white disabled:opacity-50 disabled:cursor-not-allowed",children:[c.jsx("span",{className:e?"text-gray-900 dark:text-white":"text-gray-400 dark:text-gray-500",children:e||r}),c.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[e&&c.jsx(ku,{size:14,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 cursor-pointer",onClick:g}),c.jsx(U1,{size:16,className:`text-gray-400 transition-transform ${i?"rotate-180":""}`})]})]}),i&&c.jsxs("div",{className:"absolute z-50 w-full mt-1 bg-white dark:bg-secondary border border-gray-200 dark:border-white/10 rounded-lg shadow-lg overflow-hidden",children:[c.jsx("div",{className:"p-2 border-b border-gray-200 dark:border-white/10",children:c.jsxs("div",{className:"relative",children:[c.jsx(Z1,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-gray-400"}),c.jsx("input",{ref:h,type:"text",value:l,onChange:m=>u(m.target.value),placeholder:"Search...",className:"w-full pl-8 pr-3 py-1.5 text-sm bg-gray-50 dark:bg-black/30 border border-gray-200 dark:border-white/10 rounded-md focus:outline-none focus:ring-1 focus:ring-primary-500 dark:text-white placeholder-gray-400"})]})}),c.jsx("div",{className:"max-h-60 overflow-y-auto",children:f.length===0?c.jsx("div",{className:"px-3 py-4 text-sm text-gray-400 text-center",children:"No results found"}):f.map(m=>c.jsx("button",{onClick:()=>p(m),className:`w-full text-left px-3 py-2 text-sm transition-colors ${m===e?"bg-primary-50 text-primary-600 dark:bg-primary-900/20 dark:text-primary-400":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/5"}`,children:m},m))})]})]})}const g6=[{label:"Overview",value:"overview"},{label:"By Organization",value:"organization"},{label:"By Org Type",value:"organization_type"},{label:"By Sector",value:"sector"}];function m6({view:e,onViewChange:t,filterValue:n,onFilterValueChange:r,filters:s,filtersLoading:o}){const a=s?e==="organization"?s.organizations:e==="organization_type"?s.organization_types:e==="sector"?s.sectors:[]:[],l=e!=="overview",u=()=>e==="organization"?"Organization":e==="organization_type"?"Organization Type":e==="sector"?"Sector":"";return c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[c.jsx("div",{className:"flex items-center gap-1 bg-white dark:bg-secondary rounded-lg border border-gray-200 dark:border-white/10 p-1",children:g6.map(d=>c.jsx("button",{onClick:()=>{t(d.value),r("")},className:`px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${e===d.value?"bg-primary-600 text-white":"text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-white/5"}`,children:d.label},d.value))}),l&&c.jsx(p6,{value:n,onChange:r,options:a,placeholder:`Select ${u()}...`,disabled:o||a.length===0})]})}function y6(){const[e,t]=S.useState(null),[n,r]=S.useState(!0);return S.useEffect(()=>{(async()=>{var o,i,a;try{const l=await ae.get("/api/admin/analytics/filters");t(l.data)}catch(l){_n.error(((a=(i=(o=l.response)==null?void 0:o.data)==null?void 0:i.detail)==null?void 0:a.message)||"Failed to fetch filter options")}finally{r(!1)}})()},[]),{filters:e,loading:n}}function x6(e,t,n="7d"){const[r,s]=S.useState(null),[o,i]=S.useState(!0),[a,l]=S.useState(null),u=S.useCallback(async()=>{var d,h,f;i(!0),l(null);try{let p="/api/admin/analytics/";const g=new URLSearchParams({time_range:n});e==="overview"?p+="overview":e==="organization"?(p+="by-organization",g.set("organization",t)):e==="organization_type"?(p+="by-organization-type",g.set("organization_type",t)):e==="sector"&&(p+="by-sector",g.set("sector",t));const m=await ae.get(`${p}?${g.toString()}`);s(m.data)}catch(p){const g=((f=(h=(d=p.response)==null?void 0:d.data)==null?void 0:h.detail)==null?void 0:f.message)||"Failed to fetch analytics data";l(g),_n.error(g)}finally{i(!1)}},[e,t,n]);return S.useEffect(()=>{e==="overview"||t?u():(s(null),i(!1))},[e,t,n,u]),{data:r,loading:o,error:a}}function b6(){return{exportCSV:async(t,n,r)=>{try{const s=new URLSearchParams({view:t,time_range:n});t==="organization"&&r?s.set("organization",r):t==="organization_type"&&r?s.set("organization_type",r):t==="sector"&&r&&s.set("sector",r);const o=await ae.get(`/api/admin/analytics/export?${s.toString()}`,{responseType:"blob"}),i=new Blob([o.data],{type:"text/csv"}),a=window.URL.createObjectURL(i),l=document.createElement("a");l.href=a,l.download=`analytics_${t}_${n}.csv`,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(a),_n.success("CSV exported successfully")}catch{_n.error("Failed to export CSV")}}}}Bs.register(Fo,zo,Cs,bn,Fu,zu,Iu,Du);const jb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000","#808000","#000075","#000000"];function v6(){var P,A,O,F,D,U,W,M,H,C,L,E,I,Y;const[e,t]=S.useState("7d"),[n,r]=S.useState("overview"),[s,o]=S.useState(""),{filters:i,loading:a}=y6(),{data:l,loading:u}=x6(n,s,e),{exportCSV:d}=b6(),h=S.useMemo(()=>{var $;const T={Total:"#6B7280"};return($=l==null?void 0:l.endpoint_chart_data)!=null&&$.datasets&&Object.keys(l.endpoint_chart_data.datasets).sort().forEach((ne,ce)=>{T[ne]=jb[ce%jb.length]}),T},[l]),[f,p]=S.useState({Total:!0});S.useEffect(()=>{var T;(T=l==null?void 0:l.endpoint_chart_data)!=null&&T.datasets&&p($=>{const q={...$};return Object.keys(l.endpoint_chart_data.datasets).forEach(ne=>{q[ne]===void 0&&(q[ne]=!0)}),q})},[l]);const g=S.useMemo(()=>{var $;const T=[{label:"Total",value:"Total",color:h.Total}];return($=l==null?void 0:l.endpoint_chart_data)!=null&&$.datasets&&Object.keys(l.endpoint_chart_data.datasets).sort().forEach(q=>{T.push({label:q.replace("/v1/",""),value:q,color:h[q]})}),T},[l,h]),m=S.useMemo(()=>Object.keys(f).filter(T=>f[T]!==!1),[f]),y=T=>{const $={};g.forEach(q=>{$[q.value]=T.includes(q.value)}),p($)},x=((P=l==null?void 0:l.endpoint_chart_data)==null?void 0:P.datasets)||{},v={labels:((A=l==null?void 0:l.endpoint_chart_data)==null?void 0:A.labels)||((O=l==null?void 0:l.chart_data)==null?void 0:O.labels)||[],datasets:[...Object.entries(x).map(([T,$])=>({label:T,data:$,borderColor:h[T]||"#6B7280",backgroundColor:"transparent",tension:.4,borderWidth:2,hidden:f[T]===!1})),{label:"Total",data:((F=l==null?void 0:l.chart_data)==null?void 0:F.data)||[],borderColor:"#6B7280",backgroundColor:"transparent",borderWidth:3,tension:.4,hidden:f.Total===!1}]},b={labels:((D=l==null?void 0:l.latency_chart)==null?void 0:D.labels)||[],datasets:[{label:"Avg Latency (ms)",data:((W=(U=l==null?void 0:l.latency_chart)==null?void 0:U.data)==null?void 0:W.map(T=>T*1e3))||[],fill:!0,backgroundColor:T=>{const q=T.chart.ctx.createLinearGradient(0,0,0,200);return q.addColorStop(0,"rgba(59, 130, 246, 0.2)"),q.addColorStop(1,"rgba(59, 130, 246, 0)"),q},borderColor:"#3b82f6",tension:.4}]},k={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{mode:"index",intersect:!1,backgroundColor:"rgba(0, 0, 0, 0.8)",titleColor:"#fff",bodyColor:"#fff",borderColor:"rgba(255, 255, 255, 0.1)",borderWidth:1,padding:10}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156, 163, 175, 0.8)"}},y:{grid:{color:"rgba(156, 163, 175, 0.1)"},ticks:{color:"rgba(156, 163, 175, 0.8)"},beginAtZero:!0}},interaction:{mode:"nearest",axis:"x",intersect:!1}},w=((M=l==null?void 0:l.usage)==null?void 0:M.reduce((T,$)=>T+$.used,0))||0,j=(C=(H=l==null?void 0:l.latency_chart)==null?void 0:H.data)!=null&&C.length?(l.latency_chart.data.reduce((T,$)=>T+$,0)/l.latency_chart.data.length*1e3).toFixed(0):"0",N=(L=l==null?void 0:l.usage)==null?void 0:L.reduce((T,$)=>$.used>((T==null?void 0:T.used)||0)?$:T,null),_=((E=i==null?void 0:i.organizations)==null?void 0:E.length)||0;return u&&!l?c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col gap-4",children:[c.jsx(me,{className:"h-8 w-48 mb-2"}),c.jsx(me,{className:"h-10 w-full max-w-xl"})]}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[1,2,3,4].map(T=>c.jsxs("div",{className:"bg-white dark:bg-secondary p-6 rounded-xl border border-gray-200 dark:border-white/5 shadow-sm",children:[c.jsx(me,{className:"h-8 w-8 rounded-lg mb-4"}),c.jsx(me,{className:"h-8 w-32 mb-1"}),c.jsx(me,{className:"h-3 w-16"})]},T))}),c.jsx(me,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Admin Analytics"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Platform-wide API usage and performance analytics."})]}),c.jsxs("button",{onClick:()=>d(n,e,s),className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium",children:[c.jsx(K1,{size:16}),"Export CSV"]})]}),c.jsx(m6,{view:n,onViewChange:r,filterValue:s,onFilterValueChange:o,filters:i,filtersLoading:a}),n!=="overview"&&!s&&c.jsxs("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400",children:[c.jsx(U0,{size:48,className:"mx-auto mb-4 opacity-50"}),c.jsx("p",{className:"text-lg font-medium",children:"Select a filter value above to view analytics"})]}),(n==="overview"||s)&&l&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(St,{label:"Total Requests",value:w.toLocaleString(),icon:xu,color:"bg-blue-500"}),c.jsx(St,{label:"Avg Latency",value:`${j}ms`,icon:vu,color:"bg-orange-500"}),c.jsx(St,{label:"Most Used",value:((I=N==null?void 0:N.endpoint)==null?void 0:I.replace("/v1/",""))||"N/A",icon:og,color:"bg-purple-500"}),c.jsx(St,{label:"Organizations",value:_,icon:U0,color:"bg-green-500"})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsxs(Ms,{title:"Request Volume by Endpoint",description:"Track usage trends across all users",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,className:"h-[400px]",children:[c.jsx("div",{className:"flex flex-wrap gap-3 mb-4 pb-4 border-b border-gray-200 dark:border-white/10",children:c.jsx(S2,{label:"Select Endpoints",options:g,selected:m,onChange:y})}),c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:k,data:v})})]})}),c.jsx(Ms,{title:"Latency Trends",description:"Average response time over the selected period",showTimeSelector:!0,timeRange:e,onTimeRangeChange:t,children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:k,data:b})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Endpoint Breakdown"}),c.jsx("div",{className:"space-y-3",children:(Y=l==null?void 0:l.usage)==null?void 0:Y.filter(T=>T.endpoint!=="unknown").sort((T,$)=>$.used-T.used).map(T=>{const $=w>0?(T.used/w*100).toFixed(1):"0";return c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[c.jsx("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:h[T.endpoint]||"#6B7280"}}),c.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300",children:T.endpoint.replace("/tasks/","").replace("/tasks","tasks")})]}),c.jsxs("div",{className:"flex items-center gap-4",children:[c.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-white",children:T.used.toLocaleString()}),c.jsxs("span",{className:"text-sm text-gray-500 dark:text-gray-400 w-12 text-right",children:[$,"%"]})]})]},T.endpoint)})})]})]}),(l==null?void 0:l.per_user_breakdown)&&l.per_user_breakdown.length>0&&c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md dark:shadow-lg dark:shadow-black/10 border border-gray-200 dark:border-white/5 p-6",children:[c.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:["User Breakdown — ",l.organization]}),c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10",children:[c.jsx("th",{className:"text-left py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Username"}),c.jsx("th",{className:"text-right py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Total Requests"}),c.jsx("th",{className:"text-left py-3 px-4 font-medium text-gray-500 dark:text-gray-400",children:"Top Endpoints"})]})}),c.jsx("tbody",{children:l.per_user_breakdown.map(T=>{const $=Object.entries(T.endpoints).sort(([,q],[,ne])=>ne-q).slice(0,3);return c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-3 px-4 text-gray-900 dark:text-white font-medium",children:T.username}),c.jsx("td",{className:"py-3 px-4 text-right text-gray-900 dark:text-white",children:T.total_requests.toLocaleString()}),c.jsx("td",{className:"py-3 px-4",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:$.map(([q,ne])=>c.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs bg-gray-100 dark:bg-white/10 text-gray-700 dark:text-gray-300",children:[q.replace("/tasks/",""),": ",ne]},q))})})]},T.username)})})]})})]})]})]})}const BS="/api/admin/analytics/billing";function $S(e,t={}){return new URLSearchParams({category:e.category,provider:e.provider,range:e.range,resolution:e.resolution,...t})}function $a(e,t,n={}){const[r,s]=S.useState(null),[o,i]=S.useState(!0),a=JSON.stringify(n),l=S.useCallback(async()=>{var u,d;i(!0);try{const h=$S(t,JSON.parse(a)),f=await ae.get(`${BS}${e}?${h.toString()}`);s(f.data)}catch(h){const f=h;_n.error(((d=(u=f.response)==null?void 0:u.data)==null?void 0:d.message)||`Failed to load ${e}`)}finally{i(!1)}},[e,t.category,t.provider,t.range,t.resolution,a]);return S.useEffect(()=>{l()},[l]),{data:r,loading:o}}const w6=e=>$a("/summary",e),k6=e=>$a("/timeseries",e,{group_by:e.groupBy||"provider"}),S6=e=>$a("/providers",e),_6=(e,t,n,r)=>$a("/table",e,{page:String(t),page_size:"50",sort:n,sort_dir:r,...e.search?{search:e.search}:{}}),j6=(e,t)=>$a("/breakdown",e,{group_by:t});function C6(){return{exportCSV:async t=>{try{const n=$S(t),r=await ae.get(`${BS}/export?${n.toString()}`,{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([r.data],{type:"text/csv"})),o=document.createElement("a");o.href=s,o.download=`billing_${t.provider}_${t.resolution}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(s),_n.success("CSV exported")}catch{_n.error("Failed to export CSV")}}}}Bs.register(Fo,zo,Cs,bn,Ci,Fu,zu,Iu,Du);const N6=[["today","Today"],["yesterday","Yesterday"],["last_7_days","Last 7 Days"],["last_30_days","Last 30 Days"],["last_90_days","Last 90 Days"],["this_month","This Month"],["last_month","Last Month"]],Cb={runpod:"#4363D8",modal:"#F58231",vastai:"#16A34A"},Nb=["#E6194B","#3CB44B","#4363D8","#F58231","#911EB4","#42D4F4","#F032E6","#469990","#9A6324","#800000"];function P6(){var D,U,W,M,H;const[e,t]=S.useState({category:"inference",provider:"all",range:"last_30_days",resolution:"day"}),[n,r]=S.useState(1),[s,o]=S.useState("cost"),[i,a]=S.useState("desc"),[l,u]=S.useState("object"),[d,h]=S.useState(""),{data:f,loading:p}=w6(e),{data:g}=k6(e),{data:m}=S6(e),{data:y}=_6(e,n,s,i),x=e.category==="cloud"?l:"object",{data:v}=j6(e,x),{exportCSV:b}=C6(),k=((v==null?void 0:v.rows)||[]).filter(C=>C.key.toLowerCase().includes(d.toLowerCase())),w=k.reduce((C,L)=>C+L.cost,0),j=C=>{t(L=>({...L,...C})),r(1)},N=C=>{s===C?a(L=>L==="asc"?"desc":"asc"):(o(C),a("desc")),r(1)},_=C=>s===C?i==="asc"?" ▲":" ▼":"",P=(g==null?void 0:g.cost_by_group)||{},A={labels:(g==null?void 0:g.labels)||[],datasets:[...Object.entries(P).map(([C,L],E)=>({label:C,data:L,borderColor:Cb[C]||Nb[E%Nb.length],backgroundColor:"transparent",borderWidth:2,tension:.4})),{label:"Total",data:(g==null?void 0:g.cost)||[],borderColor:"#6B7280",backgroundColor:"transparent",borderWidth:3,borderDash:[5,5],tension:.4}]},O={labels:(m==null?void 0:m.labels)||[],datasets:[{data:(m==null?void 0:m.cost)||[],backgroundColor:((m==null?void 0:m.labels)||[]).map(C=>Cb[C]||"#6B7280")}]},F={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!0,labels:{color:"rgba(156,163,175,0.9)"}}},scales:{x:{grid:{display:!1},ticks:{color:"rgba(156,163,175,0.8)"}},y:{grid:{color:"rgba(156,163,175,0.1)"},beginAtZero:!0,ticks:{color:"rgba(156,163,175,0.8)"}}}};return p&&!f?c.jsxs("div",{className:"space-y-6",children:[c.jsx(me,{className:"h-8 w-64"}),c.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[1,2,3,4].map(C=>c.jsx(me,{className:"h-28 rounded-xl"},C))}),c.jsx(me,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Infrastructure Billing"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:e.category==="training"?"Vast.ai training spend, GPU hours, and per-job breakdown.":e.category==="cloud"?"AWS spend by service and usage type, from Cost Explorer.":"Runpod & Modal spend, runtime, and storage analytics."})]}),c.jsxs("button",{onClick:()=>b(e),className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 text-sm font-medium",children:[c.jsx(K1,{size:16})," Export CSV"]})]}),c.jsx("div",{className:"flex gap-1 border-b border-gray-200 dark:border-white/10",children:[["inference","Inference (Runpod & Modal)",!1],["training","Training (Vast.ai)",!1],["cloud","Cloud (AWS)",!1]].map(([C,L,E])=>c.jsx("button",{disabled:E,onClick:()=>{t(I=>({...I,category:C,provider:"all",groupBy:C==="cloud"?"object":void 0})),r(1)},className:"px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors "+(E?"text-gray-300 dark:text-gray-600 cursor-not-allowed border-transparent":e.category===C?"border-primary-600 text-primary-700 dark:text-primary-400":"border-transparent text-gray-500 hover:text-gray-800 dark:hover:text-gray-200"),children:L},C))}),c.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.category==="inference"&&c.jsxs("select",{value:e.provider,onChange:C=>j({provider:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:[c.jsx("option",{value:"all",children:"All Platforms"}),c.jsx("option",{value:"runpod",children:"Runpod"}),c.jsx("option",{value:"modal",children:"Modal"})]}),c.jsx("select",{value:e.range,onChange:C=>j({range:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:N6.map(([C,L])=>c.jsx("option",{value:C,children:L},C))}),c.jsx("select",{value:e.resolution,onChange:C=>j({resolution:C.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:["hour","day","week","month","year"].map(C=>c.jsx("option",{value:C,children:C[0].toUpperCase()+C.slice(1)},C))})]}),(D=f==null?void 0:f.warnings)==null?void 0:D.map(C=>c.jsx("div",{className:"text-sm text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-4 py-2 rounded-lg",children:C},C)),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(St,{label:"Total Spend",value:`$${((f==null?void 0:f.total_spend)||0).toFixed(2)}`,icon:W0,color:"bg-blue-500"}),c.jsx(St,{label:"Avg Daily Spend",value:`$${((f==null?void 0:f.avg_daily_spend)||0).toFixed(2)}`,icon:W0,color:"bg-green-500"}),c.jsx(St,{label:"GPU Hours",value:`${(((f==null?void 0:f.total_runtime_ms)||0)/36e5).toFixed(1)}h`,icon:vu,color:"bg-orange-500"}),c.jsx(St,{label:"Avg Storage",value:`${((f==null?void 0:f.avg_storage_gb)||0).toFixed(0)} GB`,icon:fR,color:"bg-purple-500"})]}),c.jsxs("details",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-4 text-sm text-gray-600 dark:text-gray-300",children:[c.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer font-medium text-gray-900 dark:text-white",children:[c.jsx(sg,{size:16})," What these numbers mean & how they're computed"]}),c.jsxs("div",{className:"mt-3 space-y-2 leading-relaxed",children:[c.jsxs("p",{children:[c.jsx("b",{children:"Total / Avg Daily Spend"})," — USD billed by the provider for the selected range and platform(s), summed across all records. Modal amounts are pre-credit (before any credits or reservations), so your invoice may be lower."]}),c.jsxs("p",{children:[c.jsx("b",{children:"GPU Hours"})," — total billed run time, from Runpod's ",c.jsx("code",{children:"timeBilledMs"}),"(worker-time across the period). Modal bills per-app cost and does not report a runtime, so this reflects Runpod only."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Avg Storage (GB)"})," — providers bill storage as ",c.jsx("b",{children:"GB-hours"})," (capacity × hours billed), so a steady 350 GB volume reports 350 × 24 = 8,400 per day. We show the time-weighted average — total GB-hours ÷ hours in the range — as actual provisioned GB. The records table and CSV show the raw per-bucket GB-hours."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Active Endpoints / Modal Apps"})," — distinct Runpod endpoints and Modal apps with billing in the range. ",c.jsx("b",{children:"Network Volumes"})," are account-level storage, not an endpoint, so they're excluded from this count (but included in spend/storage)."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Network Volumes"})," — Runpod persistent network storage cost (",c.jsx("code",{children:"/billing/networkvolumes"}),"), shown as its own row and folded into totals."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Cost Over Time"})," — per-bucket spend with a line per platform plus a dashed Total. Buckets roll up to the selected resolution (hour → year)."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Training (Vast.ai)"})," — Vast.ai bills per contract (a whole job), not per day. We spread each contract's cost and GPU-hours evenly across the days it ran so the charts and totals are smooth and correct; the Training Jobs table lists one row per contract (job/instance) with its total GPU-hours and cost. Storage is billed as cost (not GB), so it appears in spend rather than the storage figure."]}),c.jsxs("p",{children:[c.jsx("b",{children:"Cloud (AWS)"})," — AWS costs come from Cost Explorer (UnblendedCost), broken down by service and usage type. The graph shows cost per service over time; the table toggles between Service and Usage-type and is searchable. Hourly granularity is limited by AWS to the last 14 days. Cost Explorer bills per API request, so figures are cached briefly."]}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400",children:"Scope & freshness: Runpod is scoped to the configured endpoints; Modal covers the whole workspace. Figures are cached briefly for consistency, so very recent usage settles within the cache window."})]})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsx("div",{className:"lg:col-span-2",children:c.jsx(Ms,{title:"Cost Over Time",description:"Spend per bucket across selected platforms",className:"h-[400px]",children:c.jsx("div",{className:"flex-1 min-h-0",children:c.jsx(Vo,{options:F,data:A})})})}),c.jsx(Ms,{title:"Spend by Platform",description:e.category==="cloud"?"AWS":e.category==="training"?"Vast.ai":"Runpod vs Modal",children:c.jsx("div",{className:"flex-1 min-h-0 flex items-center justify-center",children:c.jsx(lI,{data:O,options:{responsive:!0,maintainAspectRatio:!1}})})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Highlights"}),c.jsxs("ul",{className:"text-sm text-gray-700 dark:text-gray-300 space-y-2",children:[e.category==="training"?c.jsxs("li",{children:["Active jobs/instances: ",c.jsx("b",{children:(f==null?void 0:f.active_instances)??0})]}):e.category==="cloud"?c.jsxs("li",{children:["Active services: ",c.jsx("b",{children:(f==null?void 0:f.active_services)??0})]}):c.jsxs(c.Fragment,{children:[c.jsxs("li",{children:["Active endpoints: ",c.jsx("b",{children:(f==null?void 0:f.active_endpoints)??0})]}),c.jsxs("li",{children:["Active Modal apps: ",c.jsx("b",{children:(f==null?void 0:f.active_modal_apps)??0})]})]}),c.jsxs("li",{children:["Top endpoint: ",c.jsx("b",{children:((U=f==null?void 0:f.highest_cost_endpoint)==null?void 0:U.name)??"N/A"})," ($",(((W=f==null?void 0:f.highest_cost_endpoint)==null?void 0:W.cost)??0).toFixed(2),")"]}),c.jsxs("li",{children:["Top platform: ",c.jsx("b",{children:((M=f==null?void 0:f.highest_cost_platform)==null?void 0:M.name)??"N/A"})," ($",(((H=f==null?void 0:f.highest_cost_platform)==null?void 0:H.cost)??0).toFixed(2),")"]})]})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl border border-gray-200 dark:border-white/5 p-6",children:[c.jsxs("div",{className:"flex items-center justify-between mb-4",children:[c.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[c.jsx(SR,{size:18})," ",e.category==="cloud"?"AWS Cost & Usage":e.category==="training"?"Training Jobs":"Billing Records"]}),e.category==="inference"&&c.jsx("input",{type:"text",placeholder:"Search object / GPU / env...",onChange:C=>j({search:C.target.value||void 0}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm"})]}),c.jsx("div",{className:"overflow-x-auto",children:e.category==="cloud"?c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-between mb-3 gap-3",children:[c.jsx("div",{className:"flex gap-1",children:["object","usage_type"].map(C=>c.jsx("button",{onClick:()=>u(C),className:"px-3 py-1 rounded text-sm "+(l===C?"bg-primary-600 text-white":"bg-gray-100 dark:bg-white/10 text-gray-700 dark:text-gray-300"),children:C==="object"?"By Service":"By Usage Type"},C))}),c.jsx("input",{type:"text",value:d,placeholder:"Search service / usage type...",onChange:C=>h(C.target.value),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm"})]}),c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:l==="object"?"Service":"Usage Type"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Cost"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Share"})]})}),c.jsx("tbody",{children:k.map(C=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.key}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(2)]}),c.jsxs("td",{className:"py-2 px-3 text-right",children:[w>0?(C.cost/w*100).toFixed(1):"0.0","%"]})]},C.key))})]})]}):e.category==="training"?c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:"Job / Instance"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"GPU Hours"}),c.jsx("th",{className:"py-2 px-3 text-right",children:"Cost"})]})}),c.jsx("tbody",{children:((v==null?void 0:v.rows)||[]).map(C=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.key}),c.jsxs("td",{className:"py-2 px-3 text-right",children:[(C.runtime_ms/36e5).toFixed(1),"h"]}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(3)]})]},C.key))})]}):c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left text-gray-500 dark:text-gray-400",children:[c.jsx("th",{className:"py-2 px-3",children:"Provider"}),c.jsx("th",{className:"py-2 px-3",children:"Object"}),c.jsxs("th",{className:"py-2 px-3 cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200",onClick:()=>N("timestamp"),children:["Date",_("timestamp")]}),c.jsxs("th",{className:"py-2 px-3 text-right cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200",onClick:()=>N("cost"),children:["Cost",_("cost")]}),c.jsx("th",{className:"py-2 px-3",children:"GPU"}),c.jsx("th",{className:"py-2 px-3",children:"Env"})]})}),c.jsx("tbody",{children:((y==null?void 0:y.rows)||[]).map((C,L)=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5",children:[c.jsx("td",{className:"py-2 px-3",children:C.provider}),c.jsx("td",{className:"py-2 px-3",children:C.object_name}),c.jsx("td",{className:"py-2 px-3",children:C.timestamp.slice(0,10)}),c.jsxs("td",{className:"py-2 px-3 text-right",children:["$",C.cost.toFixed(4)]}),c.jsx("td",{className:"py-2 px-3",children:C.gpu||"-"}),c.jsx("td",{className:"py-2 px-3",children:C.environment||"-"})]},`${C.provider}-${C.object_name}-${C.timestamp}-${L}`))})]})}),e.category==="inference"&&c.jsxs("div",{className:"flex items-center justify-between mt-4 text-sm text-gray-500 dark:text-gray-400",children:[c.jsxs("span",{children:[(y==null?void 0:y.total)??0," records"]}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx("button",{disabled:n<=1,onClick:()=>r(C=>C-1),className:"px-3 py-1 rounded border border-gray-200 dark:border-white/10 disabled:opacity-40",children:"Prev"}),c.jsx("button",{disabled:!y||n*y.page_size>=y.total,onClick:()=>r(C=>C+1),className:"px-3 py-1 rounded border border-gray-200 dark:border-white/10 disabled:opacity-40",children:"Next"})]})]})]})]})}const Gf="/api/admin/google-analytics";function R6(){const[e,t]=S.useState([]),[n,r]=S.useState(!0),[s,o]=S.useState(!1);return S.useEffect(()=>{let i=!1;return(async()=>{var a;try{const{data:l}=await ae.get(`${Gf}/properties`);i||t(l.properties)}catch(l){((a=l==null?void 0:l.response)==null?void 0:a.status)===503?i||o(!0):_n.error("Failed to load GA properties")}finally{i||r(!1)}})(),()=>{i=!0}},[]),{properties:e,loading:n,notConfigured:s}}function E6(e,t){const[n,r]=S.useState(null),[s,o]=S.useState(!1),[i,a]=S.useState(null),l=S.useCallback(async(u=!1)=>{var d,h;if(e){o(!0),a(null);try{const f=u?`${Gf}/refresh`:`${Gf}/overview`,{data:p}=await ae({method:u?"post":"get",url:f,params:{property_id:e,time_range:t}});r(p)}catch(f){const p=((h=(d=f==null?void 0:f.response)==null?void 0:d.data)==null?void 0:h.detail)||"Failed to load analytics";a(typeof p=="string"?p:"Failed to load analytics"),_n.error(typeof p=="string"?p:"Failed to load analytics")}finally{o(!1)}}},[e,t]);return S.useEffect(()=>{l(!1)},[l]),{data:n,loading:s,error:i,refresh:()=>l(!0)}}function T6({series:e}){const t={labels:e.labels,datasets:[{label:"Active users",data:e.active_users,borderColor:"#3b82f6",backgroundColor:"rgba(59,130,246,0.15)",tension:.4},{label:"New users",data:e.new_users,borderColor:"#10b981",backgroundColor:"rgba(16,185,129,0.1)",tension:.4},{label:"Sessions",data:e.sessions,borderColor:"#f59e0b",backgroundColor:"rgba(245,158,11,0.1)",tension:.4}]},n={responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"top"}},interaction:{mode:"index",intersect:!1},scales:{y:{beginAtZero:!0,grid:{color:"rgba(156,163,175,0.1)"}},x:{grid:{display:!1}}}};return c.jsx("div",{className:"h-[300px]",children:c.jsx(Vo,{data:t,options:n})})}function A6({pages:e}){return e.length?c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Page"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Views"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Avg duration"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsxs("td",{className:"py-2 px-3",children:[c.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:t.title||t.path}),c.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:t.path})]}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.views.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.users.toLocaleString()}),c.jsxs("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:[t.avg_duration.toFixed(1),"s"]})]},t.path))})]})}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No page views in this range."})}function rh({title:e,rows:t}){const n=t.reduce((r,s)=>r+s.users,0);return c.jsxs("div",{children:[c.jsx("h4",{className:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-2",children:e}),t.length===0?c.jsx("p",{className:"text-xs text-gray-500",children:"No data."}):c.jsx("ul",{className:"space-y-1",children:t.map(r=>{const s=n?(r.users/n*100).toFixed(1):"0";return c.jsxs("li",{className:"flex items-center justify-between text-sm",children:[c.jsx("span",{className:"text-gray-700 dark:text-gray-300",children:r.label}),c.jsxs("span",{className:"text-gray-900 dark:text-white font-medium",children:[r.users.toLocaleString()," ",c.jsxs("span",{className:"text-xs text-gray-500",children:["(",s,"%)"]})]})]},r.label)})})]})}function M6({platforms:e}){return c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[c.jsx(rh,{title:"Device",rows:e.device}),c.jsx(rh,{title:"Operating system",rows:e.os}),c.jsx(rh,{title:"Browser",rows:e.browser})]})}function L6({rows:e}){return e.length?c.jsx("div",{className:"overflow-x-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Country"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"City"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Sessions"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-2 px-3 text-gray-900 dark:text-white",children:t.country||"—"}),c.jsx("td",{className:"py-2 px-3 text-gray-700 dark:text-gray-300",children:t.city||"—"}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.users.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:t.sessions.toLocaleString()})]},`${t.country}-${t.city}`))})]})}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No geographic data."})}function O6({events:e}){return e.length?c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{children:c.jsxs("tr",{className:"border-b border-gray-200 dark:border-white/10 text-left",children:[c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400",children:"Event"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Count"}),c.jsx("th",{className:"py-2 px-3 font-medium text-gray-500 dark:text-gray-400 text-right",children:"Users"})]})}),c.jsx("tbody",{children:e.map(t=>c.jsxs("tr",{className:"border-b border-gray-100 dark:border-white/5 hover:bg-gray-50 dark:hover:bg-white/5",children:[c.jsx("td",{className:"py-2 px-3 text-gray-900 dark:text-white font-mono text-xs",children:t.name}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-900 dark:text-white",children:t.count.toLocaleString()}),c.jsx("td",{className:"py-2 px-3 text-right text-gray-700 dark:text-gray-300",children:t.users.toLocaleString()})]},t.name))})]}):c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"No events in this range."})}Bs.register(Fo,zo,Cs,bn,Fu,zu,Iu,Du);const D6=[{label:"Last 24h",value:"24h"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 60 days",value:"60d"},{label:"Last 90 days",value:"90d"}];function I6(){const{properties:e,loading:t,notConfigured:n}=R6(),[r,s]=m1(),o=r.get("property")||"",i=r.get("range")||"7d";S.useEffect(()=>{!o&&e.length>0&&s({property:e[0].id,range:i},{replace:!0})},[e,o,i,s]);const{data:a,loading:l,error:u,refresh:d}=E6(o,i),h=S.useMemo(()=>{if(!a)return null;const f=g=>g.reduce((m,y)=>m+y,0),p=g=>g.length?f(g)/g.length:0;return{users:f(a.traffic.active_users),sessions:f(a.traffic.sessions),engagementRate:p(a.traffic.engagement_rate),avgSessionSec:p(a.traffic.avg_session_duration)}},[a]);return n?c.jsx("div",{className:"text-center py-12",children:c.jsxs("p",{className:"text-gray-500 dark:text-gray-400",children:["Google Analytics is not configured. See ",c.jsx("code",{children:"docs/google-analytics.md"}),"."]})}):t?c.jsxs("div",{className:"space-y-6",children:[c.jsx(me,{className:"h-8 w-48"}),c.jsx(me,{className:"h-10 w-full max-w-xl"}),c.jsx(me,{className:"h-[400px] w-full rounded-xl"})]}):c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Google Analytics"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Site & app analytics for Sunbird properties."})]}),c.jsxs("button",{onClick:()=>{d(),_n.info("Refreshing from Google Analytics…")},disabled:l,className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 disabled:opacity-50 transition-colors text-sm font-medium",children:[c.jsx(kR,{size:16,className:l?"animate-spin":""}),"Refresh"]})]}),c.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[c.jsx("select",{value:o,onChange:f=>s({property:f.target.value,range:i}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:e.map(f=>c.jsx("option",{value:f.id,children:f.name},f.id))}),c.jsx("select",{value:i,onChange:f=>s({property:o,range:f.target.value}),className:"px-3 py-2 rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-secondary text-sm",children:D6.map(f=>c.jsx("option",{value:f.value,children:f.label},f.value))}),a&&c.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 ml-auto",children:["Cached until ",new Date(a.cached_until).toLocaleTimeString()]})]}),l&&!a&&c.jsx(me,{className:"h-[400px] w-full rounded-xl"}),u&&!a&&c.jsx("div",{className:"p-4 rounded-lg bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-300 text-sm",children:u}),a&&h&&c.jsxs(c.Fragment,{children:[a.partial&&c.jsxs("div",{className:"p-3 rounded-lg bg-amber-50 dark:bg-amber-900/20 text-amber-800 dark:text-amber-200 text-sm",children:["Some reports failed to load: ",a.failed_reports.join(", "),"."]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[c.jsx(St,{label:"Users",value:h.users.toLocaleString(),icon:ek,color:"bg-blue-500"}),c.jsx(St,{label:"Sessions",value:h.sessions.toLocaleString(),icon:xu,color:"bg-orange-500"}),c.jsx(St,{label:"Engagement",value:`${(h.engagementRate*100).toFixed(1)}%`,icon:og,color:"bg-purple-500"}),c.jsx(St,{label:"Avg session",value:`${h.avgSessionSec.toFixed(0)}s`,icon:vu,color:"bg-green-500"})]}),c.jsx(Ms,{title:"Traffic over time",description:`Active users, new users, sessions for ${a.property_name}`,className:"h-[400px]",children:c.jsx(T6,{series:a.traffic})}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Top pages"}),c.jsx(A6,{pages:a.top_pages})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Platforms"}),c.jsx(M6,{platforms:a.platforms})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Geography"}),c.jsx(L6,{rows:a.geography})]})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-xl shadow-md border border-gray-200 dark:border-white/5 p-6",children:[c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:"Top events"}),c.jsx(O6,{events:a.events})]})]})]})}const sh="https://insights.hotjar.com",F6=["info@sunbird.ai","analytics@sunbird.ai"],z6=[{name:"Heatmaps",icon:Y1,color:"bg-orange-500",description:"Aggregate click, move, scroll, and rage-click maps overlaid on each page. Shows where visitors focus attention and where they drop off.",useFor:"Spot unclicked CTAs, dead zones, and content that never gets scrolled into view."},{name:"Session Recordings",icon:vR,color:"bg-red-500",description:"Replay real user sessions with cursor movement, clicks, taps, scrolls, and form interactions. Filter by country, device, page, rage click, or u-turn.",useFor:"Debug confusing UX, watch how real users navigate sign-up, and confirm a bug is reproducible in the wild."},{name:"Funnels",icon:dR,color:"bg-purple-500",description:"Multi-step conversion funnels defined by URL patterns or events. Drop-off rate is shown per step with linked recordings for each stage.",useFor:"Measure landing-page → register → first API call conversion, and watch recordings of users who dropped off."},{name:"Surveys",icon:hf,color:"bg-blue-500",description:"On-site and link surveys (NPS, CSAT, CES, exit-intent, custom). Trigger on URL, time on page, scroll depth, or exit intent.",useFor:'Ask "What were you hoping to find?" on pages with high bounce, or NPS on the dashboard.'},{name:"Feedback Widget",icon:CR,color:"bg-green-500",description:"Inline rating widget (0–5 stars / emoji) pinned to any page. Visitors pick a rating, leave a comment, and optionally highlight the exact element they are commenting on.",useFor:"Passive, continuous sentiment signal per page. Great for the pricing and docs pages."},{name:"Trends & Dashboards",icon:Q1,color:"bg-indigo-500",description:"Aggregate trends over time: page-level NPS, CSAT, feedback score, rage clicks, u-turns, conversion rate. Composable dashboards.",useFor:"Track whether the last release moved the needle on rage-clicks or feedback scores."},{name:"User Attributes",icon:PR,color:"bg-teal-500",description:"Custom identifiers (user_id, plan, organization, role) sent via the Hotjar JS SDK and used to filter and segment every other tool.",useFor:'Filter recordings to "admin users on the Speech product who hit an error" without leaking PII.'},{name:"Engage (Interviews)",icon:ek,color:"bg-pink-500",description:"Schedule moderated user interviews with calendar integration and automatic incentive delivery. Recruit from the existing visitor pool.",useFor:"Book a live session with a real user who just rage-clicked the upload flow."},{name:"Integrations",icon:AR,color:"bg-amber-500",description:"Native integrations with Slack, Jira, Linear, Microsoft Teams, Google Analytics, Segment, HubSpot, Zapier, and more.",useFor:"Pipe new survey responses into the #product Slack channel, or link a recording to a Jira ticket."}];function V6(){return c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[c.jsxs("div",{children:[c.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Website & Engagement Funnel"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Qualitative website insights for all Sunbird products, powered by Hotjar."})]}),c.jsxs("a",{href:sh,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium shadow-sm",children:["Open Hotjar Insights",c.jsx(mr,{size:16})]})]}),c.jsxs("div",{className:"flex items-start gap-3 p-4 rounded-xl bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800/40 text-amber-900 dark:text-amber-100 text-sm",children:[c.jsx(sg,{size:18,className:"flex-shrink-0 mt-0.5"}),c.jsxs("div",{children:[c.jsx("p",{className:"font-medium",children:"Why open Hotjar instead of viewing the data here?"}),c.jsx("p",{className:"mt-1 text-amber-800 dark:text-amber-200/90",children:"Hotjar's public API only exposes a limited subset of administrative data (users, sites, survey metadata). Heatmaps, recordings, funnel drop-offs, and survey responses are only viewable inside the Hotjar dashboard. We therefore link out rather than maintain a partial mirror that would miss the highest-value insights."})]})]}),c.jsx(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"bg-white dark:bg-secondary rounded-xl shadow-sm border border-gray-100 dark:border-white/5 p-6",children:c.jsxs("div",{className:"flex items-start gap-3",children:[c.jsx("div",{className:"p-2 rounded-lg bg-primary-500 bg-opacity-10 dark:bg-opacity-20",children:c.jsx(Qn,{className:"w-5 h-5 text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"How to sign in"}),c.jsxs("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:["Hotjar access is tied to two shared Sunbird Google accounts. Use",c.jsx("span",{className:"font-medium",children:" Sign in with Google"})," — do not sign up with a new email."]}),c.jsxs("ol",{className:"mt-4 space-y-3 text-sm text-gray-700 dark:text-gray-300",children:[c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"1"}),c.jsxs("span",{children:["Open"," ",c.jsx("a",{href:sh,target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline font-medium",children:"insights.hotjar.com"}),"."]})]}),c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"2"}),c.jsxs("span",{children:["Click ",c.jsx("span",{className:"font-medium",children:"Sign in with Google"})," and choose one of the shared accounts below."]})]}),c.jsxs("li",{className:"flex gap-3",children:[c.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-50 dark:bg-primary-900/40 text-primary-700 dark:text-primary-300 flex items-center justify-center text-xs font-semibold",children:"3"}),c.jsx("span",{children:"Pick the site (Sunflower, Sunbird Speech, etc.) from the organization switcher in the top-left."})]})]}),c.jsx("div",{className:"mt-5 grid grid-cols-1 sm:grid-cols-2 gap-3",children:F6.map(e=>c.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black/20",children:[c.jsx("div",{className:"p-2 rounded-md bg-primary-50 dark:bg-primary-900/30",children:c.jsx(wu,{className:"w-4 h-4 text-primary-600 dark:text-primary-400"})}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"Shared Google account"}),c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white truncate",children:e})]})]},e))}),c.jsxs("p",{className:"mt-4 text-xs text-gray-500 dark:text-gray-400",children:["Credentials are managed in 1Password under ",c.jsx("em",{children:"Sunbird / Hotjar"}),". If you need access, ask an admin to add your email to the shared vault."]})]})]})}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"What you'll find in Hotjar"}),c.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"A quick guide to each tool and the kind of question it answers."}),c.jsx("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:z6.map((e,t)=>c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:t*.04},className:"bg-white dark:bg-secondary p-5 rounded-xl shadow-sm border border-gray-100 dark:border-white/5 hover:border-primary-500/30 transition-colors group flex flex-col",children:[c.jsx("div",{className:`p-2 rounded-lg w-fit ${e.color} bg-opacity-10 dark:bg-opacity-20 group-hover:scale-110 transition-transform`,children:c.jsx(e.icon,{className:`w-5 h-5 ${e.color.replace("bg-","text-")}`})}),c.jsx("h3",{className:"mt-3 text-base font-semibold text-gray-900 dark:text-white",children:e.name}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-300 leading-relaxed",children:e.description}),c.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-100 dark:border-white/5",children:[c.jsx("p",{className:"text-xs uppercase tracking-wide text-gray-400 dark:text-gray-500 font-medium",children:"Use it for"}),c.jsx("p",{className:"mt-1 text-xs text-gray-600 dark:text-gray-400",children:e.useFor})]})]},e.name))})]}),c.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4 p-5 rounded-xl border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black/20",children:[c.jsxs("div",{children:[c.jsx("p",{className:"text-sm font-medium text-gray-900 dark:text-white",children:"Ready to dig in?"}),c.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:"Open Hotjar in a new tab and pick the product you want to investigate."})]}),c.jsxs("a",{href:sh,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors text-sm font-medium",children:["Go to Hotjar Insights",c.jsx(mr,{size:16})]})]})]})}function $u(){const{theme:e,setTheme:t}=B1(),{isAuthenticated:n}=Qr(),[r,s]=S.useState(!1);return c.jsxs("nav",{className:"fixed top-0 w-full z-50 bg-white/80 dark:bg-black/80 backdrop-blur-md border-b border-gray-200 dark:border-white/10",children:[c.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"flex justify-between h-16 items-center",children:[c.jsxs(Ee,{to:"/",className:"flex items-center gap-2 font-bold text-xl text-gray-900 dark:text-white",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:"Sunbird AI"}),c.jsx("span",{children:"Sunbird AI"})]}),c.jsxs("div",{className:"hidden md:flex items-center gap-8",children:[c.jsx("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Documentation"}),c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"GitHub"}),c.jsx("a",{href:"https://sunflower.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Sunflower"})]}),c.jsxs("div",{className:"hidden md:flex items-center gap-4",children:[c.jsx("button",{onClick:()=>t(e==="dark"?"light":"dark"),className:"p-2 rounded-full hover:bg-gray-100 dark:hover:bg-white/10 text-gray-500 dark:text-gray-400 transition-colors","aria-label":"Toggle theme",children:e==="dark"?c.jsx(pf,{size:20}):c.jsx(ff,{size:20})}),c.jsx("div",{className:"h-6 w-px bg-gray-200 dark:bg-white/10 mx-2"}),n?c.jsx(Ee,{to:"/dashboard",className:"px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium transition-colors shadow-lg shadow-primary-500/20",children:"Dashboard"}):c.jsxs(c.Fragment,{children:[c.jsx(Ee,{to:"/login",className:"text-sm font-medium text-gray-700 hover:text-primary-600 dark:text-gray-300 dark:hover:text-primary-400 transition-colors",children:"Log in"}),c.jsx(Ee,{to:"/register",className:"px-4 py-2 rounded-lg bg-primary-600 hover:bg-primary-700 text-white text-sm font-medium transition-colors shadow-lg shadow-primary-500/20",children:"Sign Up"})]})]}),c.jsxs("div",{className:"flex items-center gap-4 md:hidden",children:[c.jsx("button",{onClick:()=>t(e==="dark"?"light":"dark"),className:"p-2 rounded-full hover:bg-gray-100 dark:hover:bg-white/10 text-gray-500 dark:text-gray-400 transition-colors",children:e==="dark"?c.jsx(pf,{size:20}):c.jsx(ff,{size:20})}),c.jsx("button",{onClick:()=>s(!r),className:"p-2 rounded-lg text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/10",children:r?c.jsx(ku,{size:24}):c.jsx(J1,{size:24})})]})]})}),c.jsx(YT,{children:r&&c.jsx(Lo.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"md:hidden bg-white dark:bg-black border-b border-gray-200 dark:border-white/10 overflow-hidden",children:c.jsxs("div",{className:"px-4 pt-2 pb-6 space-y-2",children:[c.jsx("a",{href:"https://docs.sunbird.ai",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"Documentation"}),c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"GitHub"}),c.jsx("a",{href:"https://sunflower.sunbird.ai",className:"block px-3 py-2 rounded-md text-base font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5",children:"Sunflower"}),c.jsx("div",{className:"pt-4 mt-4 border-t border-gray-200 dark:border-white/10",children:n?c.jsx(Ee,{to:"/dashboard",className:"block w-full text-center px-4 py-2 rounded-lg bg-primary-600 text-white font-medium",children:"Dashboard"}):c.jsxs(c.Fragment,{children:[c.jsx(Ee,{to:"/login",className:"block w-full text-center px-4 py-2 rounded-lg border border-gray-300 dark:border-white/10 text-gray-700 dark:text-gray-300 font-medium mb-3",children:"Log in"}),c.jsx(Ee,{to:"/register",className:"block w-full text-center px-4 py-2 rounded-lg bg-primary-600 text-white font-medium",children:"Sign Up"})]})})]})})})]})}function Hu(){return c.jsxs("footer",{className:"border-t border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-black",children:[c.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8",children:[c.jsxs("div",{className:"lg:col-span-2",children:[c.jsxs("div",{className:"flex items-center gap-2 font-bold text-xl text-gray-900 dark:text-white mb-4",children:[c.jsx("img",{src:"/logo.png",className:"w-8 h-8 object-cover",alt:"Sunbird AI"}),c.jsx("span",{children:"Sunbird AI"})]}),c.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-4 max-w-sm",children:"Empowering African languages with state-of-the-art AI models for translation, transcription, and speech synthesis."}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx("a",{href:"https://twitter.com/sunbirdai",target:"_blank",rel:"noopener noreferrer","aria-label":"Twitter",children:c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/x-twitter.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/x-twitter.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})}),c.jsx("a",{href:"https://github.com/SunbirdAI",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",children:c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/github.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/github.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})}),c.jsxs("a",{href:"https://www.linkedin.com/company/sunbird-ai",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn",children:[c.jsx("svg",{className:"w-5 h-5 bg-gray-400 dark:bg-gray-500 hover:bg-gray-500 dark:hover:bg-gray-400",style:{WebkitMaskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/linkedin.svg)",WebkitMaskRepeat:"no-repeat",WebkitMaskPosition:"center",maskImage:"url(https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/brands/linkedin.svg)",maskRepeat:"no-repeat",maskPosition:"center"}})," "]})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Resources"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Documentation"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"API Reference"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/translation-api-examples",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Code Examples"})}),c.jsx("li",{children:c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/blob/main/tutorial.md",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Tutorial"})})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Products"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://sunflower.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Sunflower"})}),c.jsx("li",{children:c.jsx(Ee,{to:"https://sunflower.sunbird.ai",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Translation"})}),c.jsx("li",{children:c.jsx(Ee,{to:"https://speech.sunbird.ai",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Speech"})})]})]}),c.jsxs("div",{children:[c.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4",children:"Company"}),c.jsxs("ul",{className:"space-y-3",children:[c.jsx("li",{children:c.jsx("a",{href:"https://sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"About Us"})}),c.jsx("li",{children:c.jsx("a",{href:"https://blog.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Blog"})}),c.jsx("li",{children:c.jsx(Ee,{to:"/privacy_policy",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Privacy Policy"})}),c.jsx("li",{children:c.jsx(Ee,{to:"/terms_of_service",className:"text-sm text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors",children:"Terms of Service"})})]})]})]})}),c.jsx("div",{className:"py-5 border-t border-gray-200 dark:border-white/10 flex items-center justify-center",children:c.jsxs("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:["© ",new Date().getFullYear()," Sunbird AI. All rights reserved."]})})]})}function B6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black transition-colors duration-300 selection:bg-primary-500 selection:text-white",children:[c.jsx($u,{}),c.jsx("div",{className:"relative pt-32 pb-16 sm:pt-40 sm:pb-24 lg:pb-32 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto text-center overflow-hidden",children:c.jsxs(Lo.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},children:[c.jsxs("h1",{className:"relative text-4xl sm:text-5xl lg:text-7xl font-extrabold tracking-tight text-gray-900 dark:text-white mb-6",children:["Welcome to the ",c.jsx("br",{className:"hidden sm:block"}),c.jsx("span",{className:"text-primary-600 dark:text-primary-500",children:"Sunbird AI API"})]}),c.jsx("p",{className:"relative text-xl text-gray-600 dark:text-gray-400 max-w-2xl mx-auto mb-10 leading-relaxed",children:"Get started with African language AI models. Translate, transcribe, and synthesize speech with state-of-the-art models designed for the continent."}),c.jsxs("div",{className:"relative flex flex-col sm:flex-row items-center justify-center gap-4",children:[c.jsxs(Ee,{to:"/register",className:"w-full sm:w-auto px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold text-lg transition-all shadow-xl shadow-primary-500/20 hover:shadow-primary-500/30 flex items-center justify-center gap-2",children:["Get Started",c.jsx(df,{size:20})]}),c.jsxs("a",{href:"https://docs.sunbird.ai",target:"_blank",rel:"noopener noreferrer",className:"w-full sm:w-auto px-8 py-4 rounded-xl bg-white dark:bg-secondary hover:bg-gray-50 dark:hover:bg-white/5 border border-gray-200 dark:border-white/10 text-gray-900 dark:text-white font-semibold text-lg transition-all backdrop-blur-sm flex items-center justify-center gap-2",children:[c.jsx(Ac,{size:20}),"Read Docs"]})]})]})}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-16",children:[c.jsxs("div",{className:"text-center mb-12",children:[c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"What You Can Build"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto",children:"Powerful AI capabilities for African languages at your fingertips"})]}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[c.jsxs("a",{href:"https://docs.sunbird.ai/guides/translation",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Translate Content"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Translate text between English and 5+ local Ugandan languages with high accuracy."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/speech-to-text",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Transcribe Audio"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Convert speech audio into text for captioning, logging, or analysis."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/text-to-speech",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Generate Speech"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Turn text into natural-sounding speech in local languages."})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/guides/sunflower-chat",target:"_blank",rel:"noopener noreferrer",className:"group p-8 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1",children:[c.jsx("div",{className:"w-14 h-14 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx("svg",{className:"w-7 h-7",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})})}),c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mb-2",children:"Conversational AI"}),c.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Build chatbots that understand and respond in local cultural contexts."})]})]})]}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-16",children:[c.jsxs("div",{className:"text-center mb-8",children:[c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"Supported Languages"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400",children:"We support translation between English and these Ugandan languages"})]}),c.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:["Luganda","Acholi","Ateso","Lugbara","Runyankole"].map(e=>c.jsx("div",{className:"px-6 py-3 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/5 text-gray-900 dark:text-white font-medium hover:border-primary-500 dark:hover:border-primary-500/50 transition-colors shadow-sm dark:shadow-md dark:shadow-black/20",children:e},e))}),c.jsx("div",{className:"text-center mt-6",children:c.jsxs("a",{href:"https://docs.sunbird.ai/languages",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-300 font-medium inline-flex items-center gap-2",children:["View all supported languages",c.jsx(df,{size:16})]})})]}),c.jsxs("div",{className:"px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto pb-24",children:[c.jsx("div",{className:"text-center mb-12",children:c.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4",children:"Get Started in Minutes"})}),c.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[c.jsxs(Ee,{to:"/tutorial",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(Ac,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Tutorial"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Learn how to use the API with step-by-step guides and best practices."})]}),c.jsxs("a",{href:"https://github.com/SunbirdAI/translation-api-examples",target:"_blank",rel:"noopener noreferrer",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(jR,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Examples"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"View code examples and SDK usage on GitHub for Python and JS."})]}),c.jsxs(Ee,{to:"/login",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(xu,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Usage Stats"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Monitor your API usage, request volume, and limits in real-time."})]}),c.jsxs(Ee,{to:"/login",className:"group p-6 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 border-b-4 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-2xl hover:-translate-y-1 backdrop-blur-sm",children:[c.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 mb-4 group-hover:scale-110 transition-transform",children:c.jsx(X1,{size:24})}),c.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"API Tokens"}),c.jsx("p",{className:"text-gray-500 dark:text-gray-400 text-sm leading-relaxed",children:"Manage your access tokens and security keys securely."})]})]})]}),c.jsx(Hu,{})]})}const $6=["NGO","Government","Private Sector","Research","Individual","Other"],Pb=["Health","Agriculture","Energy","Environment","Education","Governance"];function H6(){const[e,t]=S.useState({username:"",email:"",full_name:"",organization:"",organization_type:"",password:"",confirmPassword:""}),[n,r]=S.useState([]),[s,o]=S.useState(""),[i,a]=S.useState(""),[l,u]=S.useState(!1),[d,h]=S.useState(!1),[f,p]=S.useState(!1),g=Is(),m=async b=>{var k,w;if(b.preventDefault(),a(""),e.password!==e.confirmPassword){a("Passwords do not match");return}u(!0);try{await ae.post("/auth/register",{username:e.username,email:e.email,organization:e.organization,password:e.password,full_name:e.full_name||void 0,organization_type:e.organization_type||void 0,sector:n.length>0?n:void 0}),g("/login",{state:{message:"Registration successful! Please sign in."}})}catch(j){a(((w=(k=j.response)==null?void 0:k.data)==null?void 0:w.detail)||"Registration failed. Please try again.")}finally{u(!1)}},y=b=>{r(k=>k.includes(b)?k.filter(w=>w!==b):[...k,b])},x=()=>{const b=s.trim();b&&!n.includes(b)&&(r(k=>[...k,b]),o(""))},v=()=>{window.location.href="/auth/google/login?next=/dashboard"};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4 py-12",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Sign Up"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Sign up to access your API dashboard"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[i&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:i}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e.username,onChange:b=>t({...e,username:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"johndoe",disabled:l})]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Full Name ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(optional)"})]}),c.jsxs("div",{className:"relative",children:[c.jsx(To,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",value:e.full_name,onChange:b=>t({...e,full_name:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"John Doe",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email address"}),c.jsxs("div",{className:"relative",children:[c.jsx(wu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"email",required:!0,value:e.email,onChange:b=>t({...e,email:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"you@example.com",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization"}),c.jsxs("div",{className:"relative",children:[c.jsx(H1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e.organization,onChange:b=>t({...e,organization:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Company Name",disabled:l})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("div",{className:"relative",children:[c.jsx($1,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsxs("select",{required:!0,value:e.organization_type,onChange:b=>t({...e,organization_type:b.target.value}),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:l,children:[c.jsx("option",{value:"",children:"Select type..."}),$6.map(b=>c.jsx("option",{value:b,children:b},b))]})]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Impact Sectors ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(select all that apply)"})]}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:[...Pb,...n.filter(b=>!Pb.includes(b))].map(b=>c.jsxs("button",{type:"button",onClick:()=>y(b),disabled:l,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${n.includes(b)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[b," ",n.includes(b)&&"✓"]},b))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:s,onChange:b=>o(b.target.value),onKeyDown:b=>b.key==="Enter"&&(b.preventDefault(),x()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:l}),c.jsx("button",{type:"button",onClick:x,disabled:l,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:d?"text":"password",required:!0,value:e.password,onChange:b=>t({...e,password:b.target.value}),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>h(!d),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:d?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:f?"text":"password",required:!0,value:e.confirmPassword,onChange:b=>t({...e,confirmPassword:b.target.value}),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>p(!f),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:f?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("button",{type:"submit",disabled:l,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors shadow-lg shadow-primary-500/20 disabled:opacity-50 disabled:cursor-not-allowed",children:[" ",l&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),l?"Creating Account...":"Create Account"]})]}),c.jsxs("div",{className:"mt-6",children:[c.jsx("div",{className:"relative",children:c.jsxs("div",{className:"relative flex justify-center items-center text-sm",children:[c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"}),c.jsx("span",{className:"px-2 text-gray-500",children:"OR"}),c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"})]})}),c.jsx("div",{className:"mt-6",children:c.jsxs("button",{onClick:v,type:"button",className:"w-full inline-flex justify-center items-center gap-2 py-2 px-4 border border-gray-300 dark:border-white/10 rounded-lg shadow-sm bg-white dark:bg-white/5 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/10 transition-colors",children:[c.jsxs("svg",{className:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"25",height:"25",viewBox:"0 0 48 48",children:[c.jsx("path",{fill:"#FFC107",d:"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"}),c.jsx("path",{fill:"#FF3D00",d:"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"}),c.jsx("path",{fill:"#4CAF50",d:"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"}),c.jsx("path",{fill:"#1976D2",d:"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"})]}),"Sign Up with Google"]})})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:["Already have an account?"," ",c.jsx(Ee,{to:"/login",className:"font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Sign in"})]})})]})})})}function Rb(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(!1),[i,a]=S.useState(""),[l,u]=S.useState(!1),{login:d,checkAuth:h}=Qr(),f=Is(),p=ir();S.useEffect(()=>{const y=new URLSearchParams(p.search),x=y.get("token"),v=y.get("error");if(x){localStorage.setItem("access_token",x),ae.defaults.headers.common.Authorization=`Bearer ${x}`;const b=y.get("next")||"/dashboard";h().then(()=>{f(b)})}v&&a("Authentication failed. Please try again.")},[p,h,f]);const g=async y=>{var x,v;y.preventDefault(),a(""),u(!0);try{await d(e,n),f("/dashboard")}catch(b){a(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Invalid username or password")}finally{u(!1)}},m=()=>{window.location.href="/auth/google/login?next=/dashboard"};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsxs("div",{className:"max-w-md w-full space-y-8",children:[c.jsx("div",{className:"text-center"}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Sign In"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Login to access your API dashboard"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:g,children:[i&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:i}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Username"}),c.jsxs("div",{className:"relative",children:[c.jsx(RR,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"text",required:!0,value:e,onChange:y=>t(y.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"username",disabled:l})]})]}),c.jsxs("div",{children:[c.jsxs("div",{className:"flex items-center justify-between mb-1",children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"Password"}),c.jsx(Ee,{to:"/forgot-password",className:"text-sm font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Forgot password?"})]}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:s?"text":"password",required:!0,value:n,onChange:y=>r(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:l}),c.jsx("button",{type:"button",onClick:()=>o(!s),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:s?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("button",{type:"submit",disabled:l,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[l&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),l?"Signing in...":"Sign in"]})]}),c.jsxs("div",{className:"mt-6",children:[c.jsx("div",{className:"relative",children:c.jsxs("div",{className:"relative flex justify-center items-center text-sm",children:[c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"}),c.jsx("span",{className:"px-2 text-gray-500",children:"OR"}),c.jsx("div",{className:"flex-1 h-px bg-gray-300 dark:bg-white/10"})]})}),c.jsx("div",{className:"mt-6",children:c.jsxs("button",{onClick:m,type:"button",className:"w-full inline-flex justify-center items-center gap-2 py-2 px-4 border border-gray-300 dark:border-white/10 rounded-lg shadow-sm bg-white dark:bg-white/5 text-sm font-medium text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/10 transition-colors",children:[c.jsxs("svg",{className:"w-5 h-5",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"25",height:"25",viewBox:"0 0 48 48",children:[c.jsx("path",{fill:"#FFC107",d:"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"}),c.jsx("path",{fill:"#FF3D00",d:"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"}),c.jsx("path",{fill:"#4CAF50",d:"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"}),c.jsx("path",{fill:"#1976D2",d:"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"})]}),"Sign in with Google"]})})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:["Don't have an account?"," ",c.jsx(Ee,{to:"/register",className:"font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:"Sign up"})]})})]})]})})}function U6(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(""),[i,a]=S.useState(!1),l=async u=>{var d,h;u.preventDefault(),o(""),r(""),a(!0);try{const f=await ae.post("/auth/forgot-password",{email:e});f.data.success?r("Password reset email sent! Please check your inbox."):o(f.data.message||"Failed to send reset email")}catch(f){o(((h=(d=f.response)==null?void 0:d.data)==null?void 0:h.detail)||"Failed to send reset email. Please try again.")}finally{a(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary p-8 rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Forgot Password "}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Enter your email address and we'll send you a link to reset your password"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:l,children:[s&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:s}),n&&c.jsx("div",{className:"bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 p-3 rounded-lg text-sm",children:n}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Email address"}),c.jsxs("div",{className:"relative",children:[c.jsx(wu,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:"email",required:!0,value:e,onChange:u=>t(u.target.value),className:"w-full pl-10 pr-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"you@example.com",disabled:i})]})]}),c.jsxs("button",{type:"submit",disabled:i,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[i&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),i?"Sending...":"Send Reset Link"]})]}),c.jsx("div",{className:"mt-6 text-center",children:c.jsxs(Ee,{to:"/login",className:"inline-flex items-center gap-2 text-sm font-medium text-primary-600 hover:text-primary-500 dark:text-primary-400",children:[c.jsx(lR,{className:"w-4 h-4"}),"Back to Sign In"]})})]})})})}function W6(){const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(!1),[i,a]=S.useState(!1),[l,u]=S.useState(""),[d,h]=S.useState(!1),[f]=m1(),p=Is(),g=f.get("token");S.useEffect(()=>{g||u("Invalid or missing reset token")},[g]);const m=async y=>{var x,v;if(y.preventDefault(),u(""),e!==n){u("Passwords do not match");return}if(!g){u("Invalid reset token");return}h(!0);try{await ae.post("/auth/reset-password",{token:g,new_password:e}),p("/login",{state:{message:"Password reset successful! Please sign in with your new password."}})}catch(b){u(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Failed to reset password. The link may have expired.")}finally{h(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4",children:c.jsx("div",{className:"max-w-md w-full space-y-8",children:c.jsxs("div",{className:"bg-white dark:bg-secondary p-8 rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 border border-gray-100 dark:border-white/5 backdrop-blur-sm",children:[c.jsxs("div",{className:"gap-2 flex flex-col items-center justify-center mb-6",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Reset Password "}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Enter your new password below"})]}),c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[l&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:l}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:s?"text":"password",required:!0,value:e,onChange:y=>t(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:d||!g}),c.jsx("button",{type:"button",onClick:()=>o(!s),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:d||!g,children:s?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Confirm New Password"}),c.jsxs("div",{className:"relative",children:[c.jsx(Qn,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-400"}),c.jsx("input",{type:i?"text":"password",required:!0,value:n,onChange:y=>r(y.target.value),className:"w-full pl-10 pr-12 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"••••••••",disabled:d||!g}),c.jsx("button",{type:"button",onClick:()=>a(!i),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",disabled:d||!g,children:i?c.jsx(Dr,{className:"w-5 h-5"}):c.jsx(Ir,{className:"w-5 h-5"})})]})]}),c.jsx("button",{type:"submit",disabled:d||!g,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:d?"Resetting Password...":"Reset Password"})]})]})})})}const G6=["NGO","Government","Private Sector","Research","Individual","Other"],Eb=["Health","Agriculture","Energy","Environment","Education","Governance"];function q6(){const{user:e,checkAuth:t}=Qr(),n=Is(),[r,s]=S.useState({full_name:(e==null?void 0:e.full_name)||"",organization:(e==null?void 0:e.organization)==="Unknown"?"":(e==null?void 0:e.organization)||"",organization_type:(e==null?void 0:e.organization_type)||""}),[o,i]=S.useState((e==null?void 0:e.sector)||[]),[a,l]=S.useState(""),[u,d]=S.useState(!1),[h,f]=S.useState(""),p=y=>{i(x=>x.includes(y)?x.filter(v=>v!==y):[...x,y])},g=()=>{const y=a.trim();y&&!o.includes(y)&&(i(x=>[...x,y]),l(""))},m=async y=>{var x,v;y.preventDefault(),f(""),d(!0);try{await ae.put("/auth/profile",{full_name:r.full_name||void 0,organization:r.organization||void 0,organization_type:r.organization_type||void 0,sector:o.length>0?o:void 0}),await t(),n("/dashboard")}catch(b){f(((v=(x=b.response)==null?void 0:x.data)==null?void 0:v.detail)||"Failed to update profile. Please try again.")}finally{d(!1)}};return c.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 dark:bg-black px-4 py-12",children:c.jsxs("div",{className:"max-w-md w-full space-y-8",children:[c.jsxs("div",{className:"text-center",children:[c.jsx("img",{src:"/logo.png",alt:"Sunbird AI",className:"h-10 w-10 rounded-full object-cover mx-auto mb-3"}),c.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:"Complete Your Profile"}),c.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400",children:"Help us understand how you're using Sunbird AI so we can serve you better."})]}),c.jsxs("div",{className:"bg-white dark:bg-secondary rounded-2xl shadow-lg dark:shadow-lg dark:shadow-black/10 p-8 border border-gray-100 dark:border-white/5",children:[c.jsxs("form",{className:"space-y-6",onSubmit:m,children:[h&&c.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg text-sm",children:h}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Full Name"}),c.jsx("input",{type:"text",value:r.full_name,onChange:y=>s({...r,full_name:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"John Doe",disabled:u})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Name"}),c.jsx("input",{type:"text",value:r.organization,onChange:y=>s({...r,organization:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Sunbird AI",disabled:u})]}),c.jsxs("div",{children:[c.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"Organization Type"}),c.jsxs("select",{value:r.organization_type,onChange:y=>s({...r,organization_type:y.target.value}),className:"w-full px-4 py-2 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white appearance-none",disabled:u,children:[c.jsx("option",{value:"",children:"Select type..."}),G6.map(y=>c.jsx("option",{value:y,children:y},y))]})]}),c.jsxs("div",{children:[c.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:["Impact Sectors ",c.jsx("span",{className:"text-gray-400 font-normal",children:"(select all that apply)"})]}),c.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:[...Eb,...o.filter(y=>!Eb.includes(y))].map(y=>c.jsxs("button",{type:"button",onClick:()=>p(y),disabled:u,className:`px-3 py-1.5 rounded-full text-sm border transition-colors ${o.includes(y)?"border-primary-500 bg-primary-500/10 text-primary-600 dark:text-primary-400":"border-gray-200 dark:border-white/10 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[y," ",o.includes(y)&&"✓"]},y))}),c.jsxs("div",{className:"flex gap-2 mt-2",children:[c.jsx("input",{type:"text",value:a,onChange:y=>l(y.target.value),onKeyDown:y=>y.key==="Enter"&&(y.preventDefault(),g()),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black/50 border border-gray-200 dark:border-white/10 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-white text-sm placeholder-gray-400 dark:placeholder-gray-600",placeholder:"Add custom sector...",disabled:u}),c.jsx("button",{type:"button",onClick:g,disabled:u,className:"px-3 py-1.5 text-sm border border-gray-200 dark:border-white/10 rounded-lg text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-white/5 transition-colors",children:"Add"})]})]}),c.jsxs("button",{type:"submit",disabled:u,className:"w-full flex justify-center items-center gap-2 py-2 px-4 border border-transparent rounded-lg shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors shadow-lg shadow-primary-500/20 disabled:opacity-50 disabled:cursor-not-allowed",children:[u&&c.jsx(Da,{className:"w-4 h-4 animate-spin"}),u?"Saving...":"Save & Continue to Dashboard"]})]}),c.jsx("div",{className:"mt-4 text-center",children:c.jsx("button",{onClick:()=>n("/dashboard"),className:"text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors",children:"Skip for now →"})})]})]})})}function K6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black flex flex-col",children:[c.jsx($u,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-4xl mx-auto",children:[c.jsx("h1",{className:"text-4xl font-bold text-gray-900 dark:text-white mb-8",children:"Privacy Policy"}),c.jsxs("div",{className:"space-y-8 text-gray-700 dark:text-gray-300",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Introduction"}),c.jsx("p",{className:"leading-relaxed",children:"Welcome to the Privacy Policy of Sunbird AI. We understand that privacy online is important to users of our services, especially when utilizing our WhatsApp translation bot. This statement governs our privacy policies with respect to the collection, use, and disclosure of personal information when using our services."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Personally Identifiable Information"}),c.jsx("p",{className:"leading-relaxed",children:"Personally Identifiable Information refers to any information that identifies or can be used to identify, contact, or locate the person to whom such information pertains, including, but not limited to, name, address, phone number, email address, IP address, location, and browser."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"What Personally Identifiable Information is collected?"}),c.jsx("p",{className:"leading-relaxed",children:"We may collect basic user profile information from all users of our services. Additional information may be collected from users of our WhatsApp translation bot, including but not limited to, the content of messages for translation purposes."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"How is Personally Identifiable Information stored?"}),c.jsx("p",{className:"leading-relaxed",children:"Personally Identifiable Information collected by Sunbird AI is securely stored and is not accessible to third parties or employees of Sunbird AI except for use as indicated above."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"What choices are available to users regarding collection, use, and distribution of the information?"}),c.jsx("p",{className:"leading-relaxed",children:"Users may opt-out of certain data collection practices as outlined in this Privacy Policy by contacting Sunbird AI."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Changes to this Privacy Policy"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI reserves the right to update or change our Privacy Policy at any time. Users will be notified of any changes by posting the new Privacy Policy on this page."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Contact Us"}),c.jsxs("p",{className:"leading-relaxed",children:["If you have any questions about this Privacy Policy, please contact us at ",c.jsx("a",{href:"mailto:info@sunbird.ai",className:"text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 underline",children:"info@sunbird.ai"})]})]})]})]})}),c.jsx(Hu,{})]})}function Y6(){return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black flex flex-col",children:[c.jsx($u,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-4xl mx-auto",children:[c.jsx("h1",{className:"text-4xl font-bold text-gray-900 dark:text-white mb-8",children:"Terms of Service"}),c.jsxs("div",{className:"space-y-8 text-gray-700 dark:text-gray-300",children:[c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Agreement"}),c.jsx("p",{className:"leading-relaxed",children:"By accessing or using the services provided by Sunbird AI, you agree to abide by these Terms of Service. These Terms apply to all visitors, users, and others who access or use our services."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Use of Services"}),c.jsx("p",{className:"leading-relaxed",children:'Our services, including the WhatsApp translation bot, are provided on an "as is" and "as available" basis. Users are solely responsible for their use of the services and any consequences thereof.'})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Intellectual Property"}),c.jsx("p",{className:"leading-relaxed",children:"All intellectual property rights associated with the services provided by Sunbird AI, including but not limited to, the WhatsApp translation bot, are owned by Sunbird AI. Users are granted a limited, non-exclusive, non-transferable license to use the services for personal or non-commercial purposes."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Limitation of Liability"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses resulting from (i) your access to or use of or inability to access or use the services; (ii) any conduct or content of any third party on the services; (iii) any content obtained from the services; or (iv) unauthorized access, use, or alteration of your transmissions or content."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Changes to Terms of Service"}),c.jsx("p",{className:"leading-relaxed",children:"Sunbird AI reserves the right to update or change these Terms of Service at any time. Users will be notified of any changes by posting the new Terms of Service on this page."})]}),c.jsxs("div",{children:[c.jsx("h2",{className:"text-2xl font-semibold text-gray-900 dark:text-white mb-4",children:"Contact Us"}),c.jsxs("p",{className:"leading-relaxed",children:["If you have any questions about these Terms of Service, please contact us at ",c.jsx("a",{href:"mailto:info@sunbird.ai",className:"text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 underline",children:"info@sunbird.ai"})]})]})]})]})}),c.jsx(Hu,{})]})}function X6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Q6(e,t){if(e==null)return{};var n,r,s=X6(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;re.length)&&(t=e.length);for(var n=0,r=Array(t);n=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var oh={};function oF(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return oh[t]||(oh[t]=sF(e)),oh[t]}function iF(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(o){return o!=="token"}),s=oF(r);return s.reduce(function(o,i){return fo(fo({},o),n[i])},t)}function Ab(e){return e.join(" ")}function aF(e,t){var n=0;return function(r){return n+=1,r.map(function(s,o){return US({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(o)})})}}function US(e){var t=e.node,n=e.stylesheet,r=e.style,s=r===void 0?{}:r,o=e.useInlineStyles,i=e.key,a=t.properties,l=t.type,u=t.tagName,d=t.value;if(l==="text")return d;if(u){var h=aF(n,o),f;if(!o)f=fo(fo({},a),{},{className:Ab(a.className)});else{var p=Object.keys(n).reduce(function(x,v){return v.split(".").forEach(function(b){x.includes(b)||x.push(b)}),x},[]),g=a.className&&a.className.includes("token")?["token"]:[],m=a.className&&g.concat(a.className.filter(function(x){return!p.includes(x)}));f=fo(fo({},a),{},{className:Ab(m)||void 0,style:iF(a.className,Object.assign({},a.style,s),n)})}var y=h(t.children);return z.createElement(u,Yf({key:i},f),y)}}const lF=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var cF=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function Mb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Cr(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];e.length===void 0&&(e=[e]);for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return rc({children:w,lineNumber:j,lineNumberStyle:a,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:N,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function m(w,j){if(r&&j&&s){var N=GS(a,j,i);w.unshift(WS(j,N))}return w}function y(w,j){var N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||N.length>0?g(w,j,N):m(w,j)}for(var x=function(){var j=d[p],N=j.children[0].value,_=dF(N);if(_){var P=N.split(` +`),style:i,startingLineNumber:a}))}function pF(e){return"".concat(e.toString().length,".25em")}function WS(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function GS(e,t,n){var r={display:"inline-block",minWidth:pF(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,o=Cr(Cr({},r),s);return o}function sc(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,s=e.largestLineNumber,o=e.showInlineLineNumbers,i=e.lineProps,a=i===void 0?{}:i,l=e.className,u=l===void 0?[]:l,d=e.showLineNumbers,h=e.wrapLongLines,f=e.wrapLines,p=f===void 0?!1:f,g=p?Cr({},typeof a=="function"?a(n):a):{};if(g.className=g.className?[].concat(Kf(g.className.trim().split(/\s+/)),Kf(u)):u,n&&o){var m=GS(r,n,s);t.unshift(WS(n,m))}return h&d&&(g.style=Cr({display:"flex"},g.style)),{type:"element",tagName:"span",properties:g,children:t}}function qS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];e.length===void 0&&(e=[e]);for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:[];return sc({children:w,lineNumber:j,lineNumberStyle:a,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:N,showLineNumbers:r,wrapLongLines:l,wrapLines:t})}function m(w,j){if(r&&j&&s){var N=GS(a,j,i);w.unshift(WS(j,N))}return w}function y(w,j){var N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||N.length>0?g(w,j,N):m(w,j)}for(var x=function(){var j=d[p],N=j.children[0].value,_=dF(N);if(_){var P=N.split(` `);P.forEach(function(A,O){var F=r&&h.length+o,D={type:"text",value:"".concat(A,` -`)};if(O===0){var U=d.slice(f+1,p).concat(rc({children:[D],className:j.properties.className})),W=y(U,F);h.push(W)}else if(O===P.length-1){var M=d[p+1]&&d[p+1].children&&d[p+1].children[0],H={type:"text",value:"".concat(A)};if(M){var C=rc({children:[H],className:j.properties.className});d.splice(p+1,0,C)}else{var L=[H],E=y(L,F,j.properties.className);h.push(E)}}else{var I=[D],K=y(I,F,j.properties.className);h.push(K)}}),f=p}p++};p4&&n.slice(0,4)==="data"&&SF.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(Ob,CF);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!Ob.test(o)){let i=o.replace(kF,jF);i.charAt(0)!=="-"&&(i="-"+i),t="data"+i}}s=Kg}return new s(r,t)}function jF(e){return"-"+e.toLowerCase()}function CF(e){return e.charAt(1).toUpperCase()}const NF=YS([XS,vF,ZS,e_,t_],"html"),PF=YS([XS,wF,ZS,e_,t_],"svg");function Db(e){const t=[],n=String(e||"");let r=n.indexOf(","),s=0,o=!1;for(;!o;){r===-1&&(r=n.length,o=!0);const i=n.slice(s,r).trim();(i||!o)&&t.push(i),s=r+1,r=n.indexOf(",",s)}return t}const Ib=/[#.]/g;function RF(e,t){const n=e||"",r={};let s=0,o,i;for(;s=48&&t<=57}function IF(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}function FF(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}function Bb(e){return FF(e)||r_(e)}const $b=document.createElement("i");function Hb(e){const t="&"+e+";";$b.innerHTML=t;const n=$b.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}const zF=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function VF(e,t){const n={},r=typeof n.additional=="string"?n.additional.charCodeAt(0):n.additional,s=[];let o=0,i=-1,a="",l,u;n.position&&("start"in n.position||"indent"in n.position?(u=n.position.indent,l=n.position.start):l=n.position);let d=(l?l.line:0)||1,h=(l?l.column:0)||1,f=g(),p;for(o--;++o<=e.length;)if(p===10&&(h=(u?u[i]:0)||1),p=e.charCodeAt(o),p===38){const x=e.charCodeAt(o+1);if(x===9||x===10||x===12||x===32||x===38||x===60||Number.isNaN(x)||r&&x===r){a+=String.fromCharCode(p),h++;continue}const v=o+1;let b=v,k=v,w;if(x===35){k=++b;const D=e.charCodeAt(k);D===88||D===120?(w="hexadecimal",k=++b):w="decimal"}else w="named";let j="",N="",_="";const P=w==="named"?Bb:w==="decimal"?r_:IF;for(k--;++k<=e.length;){const D=e.charCodeAt(k);if(!P(D))break;_+=String.fromCharCode(D),w==="named"&&DF.includes(_)&&(j=_,N=Hb(_))}let A=e.charCodeAt(k)===59;if(A){k++;const D=w==="named"?Hb(_):!1;D&&(j=_,N=D)}let O=1+k-v,F="";if(!(!A&&n.nonTerminated===!1))if(!_)w!=="named"&&m(4,O);else if(w==="named"){if(A&&!N)m(5,1);else if(j!==_&&(k=b+j.length,O=1+k-b,A=!1),!A){const D=j?1:3;if(n.attribute){const U=e.charCodeAt(k);U===61?(m(D,O),N=""):Bb(U)?N="":m(D,O)}else m(D,O)}F=N}else{A||m(2,O);let D=Number.parseInt(_,w==="hexadecimal"?16:10);if(BF(D))m(7,O),F="�";else if(D in Vb)m(6,O),F=Vb[D];else{let U="";$F(D)&&m(6,O),D>65535&&(D-=65536,U+=String.fromCharCode(D>>>10|55296),D=56320|D&1023),F=U+String.fromCharCode(D)}}if(F){y(),f=g(),o=k-1,h+=k-v+1,s.push(F);const D=g();D.offset++,n.reference&&n.reference.call(n.referenceContext||void 0,F,{start:f,end:D},e.slice(v-1,k)),f=D}else _=e.slice(v-1,k),a+=_,h+=_.length,o=k-1}else p===10&&(d++,i++,h=0),Number.isNaN(p)?y():(a+=String.fromCharCode(p),h++);return s.join("");function g(){return{line:d,column:h,offset:o+((l?l.offset:0)||0)}}function m(x,v){let b;n.warning&&(b=g(),b.column+=v,b.offset+=v,n.warning.call(n.warningContext||void 0,zF[x],b,x))}function y(){a&&(s.push(a),n.text&&n.text.call(n.textContext||void 0,a,{start:f,end:g()}),a="")}}function BF(e){return e>=55296&&e<=57343||e>1114111}function $F(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}var HF=0,Ll={},Je={util:{type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++HF}),e.__id},clone:function e(t,n){n=n||{};var r,s;switch(Je.util.type(t)){case"Object":if(s=Je.util.objId(t),n[s])return n[s];r={},n[s]=r;for(var o in t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case"Array":return s=Je.util.objId(t),n[s]?n[s]:(r=[],n[s]=r,t.forEach(function(i,a){r[a]=e(i,n)}),r);default:return t}}},languages:{plain:Ll,plaintext:Ll,text:Ll,txt:Ll,extend:function(e,t){var n=Je.util.clone(Je.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r=r||Je.languages;var s=r[e],o={};for(var i in s)if(s.hasOwnProperty(i)){if(i==t)for(var a in n)n.hasOwnProperty(a)&&(o[a]=n[a]);n.hasOwnProperty(i)||(o[i]=s[i])}var l=r[e];return r[e]=o,Je.languages.DFS(Je.languages,function(u,d){d===l&&u!=e&&(this[u]=o)}),o},DFS:function e(t,n,r,s){s=s||{};var o=Je.util.objId;for(var i in t)if(t.hasOwnProperty(i)){n.call(t,i,t[i],r||i);var a=t[i],l=Je.util.type(a);l==="Object"&&!s[o(a)]?(s[o(a)]=!0,e(a,n,null,s)):l==="Array"&&!s[o(a)]&&(s[o(a)]=!0,e(a,n,i,s))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(Je.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=Je.tokenize(r.code,r.grammar),Je.hooks.run("after-tokenize",r),qi.stringify(Je.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var s=new UF;return sc(s,s.head,e),s_(e,s,t,s.head,0),GF(s)},hooks:{all:{},add:function(e,t){var n=Je.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=Je.hooks.all[e];if(!(!n||!n.length))for(var r=0,s;s=n[r++];)s(t)}},Token:qi};function qi(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||"").length|0}function Ub(e,t,n,r){e.lastIndex=t;var s=e.exec(n);if(s&&r&&s[1]){var o=s[1].length;s.index+=o,s[0]=s[0].slice(o)}return s}function s_(e,t,n,r,s,o){for(var i in n)if(!(!n.hasOwnProperty(i)||!n[i])){var a=n[i];a=Array.isArray(a)?a:[a];for(var l=0;l=o.reach);x+=y.value.length,y=y.next){var v=y.value;if(t.length>e.length)return;if(!(v instanceof qi)){var b=1,k;if(f){if(k=Ub(m,x,e,h),!k||k.index>=e.length)break;var _=k.index,w=k.index+k[0].length,j=x;for(j+=y.value.length;_>=j;)y=y.next,j+=y.value.length;if(j-=y.value.length,x=j,y.value instanceof qi)continue;for(var N=y;N!==t.tail&&(jo.reach&&(o.reach=F);var D=y.prev;A&&(D=sc(t,D,A),x+=A.length),WF(t,D,b);var U=new qi(i,d?Je.tokenize(P,d):P,p,P);if(y=sc(t,D,U),O&&sc(t,y,O),b>1){var W={cause:i+","+l,reach:F};s_(e,t,n,y.prev,x,W),o&&W.reach>o.reach&&(o.reach=W.reach)}}}}}}function UF(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function sc(e,t,n){var r=t.next,s={value:n,prev:t,next:r};return t.next=s,r.prev=s,e.length++,s}function WF(e,t,n){for(var r=t.next,s=0;s>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+n),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};t.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:s},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:r}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:s},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:s.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:s.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},r.inside=t.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=s.variable[1].inside,a=0;a]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}const ez={'code[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"]::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},prolog:{color:"hsl(220, 10%, 40%)"},cdata:{color:"hsl(220, 10%, 40%)"},doctype:{color:"hsl(220, 14%, 71%)"},punctuation:{color:"hsl(220, 14%, 71%)"},entity:{color:"hsl(220, 14%, 71%)",cursor:"help"},"attr-name":{color:"hsl(29, 54%, 61%)"},"class-name":{color:"hsl(29, 54%, 61%)"},boolean:{color:"hsl(29, 54%, 61%)"},constant:{color:"hsl(29, 54%, 61%)"},number:{color:"hsl(29, 54%, 61%)"},atrule:{color:"hsl(29, 54%, 61%)"},keyword:{color:"hsl(286, 60%, 67%)"},property:{color:"hsl(355, 65%, 65%)"},tag:{color:"hsl(355, 65%, 65%)"},symbol:{color:"hsl(355, 65%, 65%)"},deleted:{color:"hsl(355, 65%, 65%)"},important:{color:"hsl(355, 65%, 65%)"},selector:{color:"hsl(95, 38%, 62%)"},string:{color:"hsl(95, 38%, 62%)"},char:{color:"hsl(95, 38%, 62%)"},builtin:{color:"hsl(95, 38%, 62%)"},inserted:{color:"hsl(95, 38%, 62%)"},regex:{color:"hsl(95, 38%, 62%)"},"attr-value":{color:"hsl(95, 38%, 62%)"},"attr-value > .token.punctuation":{color:"hsl(95, 38%, 62%)"},variable:{color:"hsl(207, 82%, 66%)"},operator:{color:"hsl(207, 82%, 66%)"},function:{color:"hsl(207, 82%, 66%)"},url:{color:"hsl(187, 47%, 55%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(220, 14%, 71%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(220, 14%, 71%)"},".language-css .token.selector":{color:"hsl(355, 65%, 65%)"},".language-css .token.property":{color:"hsl(220, 14%, 71%)"},".language-css .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.string.url":{color:"hsl(95, 38%, 62%)"},".language-css .token.important":{color:"hsl(286, 60%, 67%)"},".language-css .token.atrule .token.rule":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.operator":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(5, 48%, 51%)"},".language-json .token.operator":{color:"hsl(220, 14%, 71%)"},".language-json .token.null.keyword":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.url":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.operator":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.content":{color:"hsl(207, 82%, 66%)"},".language-markdown .token.url > .token.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.url-reference.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(95, 38%, 62%)"},".language-markdown .token.bold .token.content":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.italic .token.content":{color:"hsl(286, 60%, 67%)"},".language-markdown .token.strike .token.content":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.list.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(355, 65%, 65%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.cr:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.lf:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.space:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},".line-highlight.line-highlight":{background:"hsla(220, 100%, 80%, 0.04)"},".line-highlight.line-highlight:before":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(220, 100%, 80%, 0.04)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".command-line .command-line-prompt":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(220, 14%, 45%)"},".command-line .command-line-prompt > span:before":{color:"hsl(220, 14%, 45%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(286, 60%, 67%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(224, 13%, 17%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(224, 13%, 17%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(224, 13%, 17%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(224, 13%, 17%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(219, 13%, 22%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(220, 14%, 71%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(220, 14%, 71%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(220, 14%, 71%)"}},tz={'code[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"]::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},prolog:{color:"hsl(230, 4%, 64%)"},cdata:{color:"hsl(230, 4%, 64%)"},doctype:{color:"hsl(230, 8%, 24%)"},punctuation:{color:"hsl(230, 8%, 24%)"},entity:{color:"hsl(230, 8%, 24%)",cursor:"help"},"attr-name":{color:"hsl(35, 99%, 36%)"},"class-name":{color:"hsl(35, 99%, 36%)"},boolean:{color:"hsl(35, 99%, 36%)"},constant:{color:"hsl(35, 99%, 36%)"},number:{color:"hsl(35, 99%, 36%)"},atrule:{color:"hsl(35, 99%, 36%)"},keyword:{color:"hsl(301, 63%, 40%)"},property:{color:"hsl(5, 74%, 59%)"},tag:{color:"hsl(5, 74%, 59%)"},symbol:{color:"hsl(5, 74%, 59%)"},deleted:{color:"hsl(5, 74%, 59%)"},important:{color:"hsl(5, 74%, 59%)"},selector:{color:"hsl(119, 34%, 47%)"},string:{color:"hsl(119, 34%, 47%)"},char:{color:"hsl(119, 34%, 47%)"},builtin:{color:"hsl(119, 34%, 47%)"},inserted:{color:"hsl(119, 34%, 47%)"},regex:{color:"hsl(119, 34%, 47%)"},"attr-value":{color:"hsl(119, 34%, 47%)"},"attr-value > .token.punctuation":{color:"hsl(119, 34%, 47%)"},variable:{color:"hsl(221, 87%, 60%)"},operator:{color:"hsl(221, 87%, 60%)"},function:{color:"hsl(221, 87%, 60%)"},url:{color:"hsl(198, 99%, 37%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(230, 8%, 24%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(230, 8%, 24%)"},".language-css .token.selector":{color:"hsl(5, 74%, 59%)"},".language-css .token.property":{color:"hsl(230, 8%, 24%)"},".language-css .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.string.url":{color:"hsl(119, 34%, 47%)"},".language-css .token.important":{color:"hsl(301, 63%, 40%)"},".language-css .token.atrule .token.rule":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.operator":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(344, 84%, 43%)"},".language-json .token.operator":{color:"hsl(230, 8%, 24%)"},".language-json .token.null.keyword":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.url":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.operator":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.content":{color:"hsl(221, 87%, 60%)"},".language-markdown .token.url > .token.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.url-reference.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(119, 34%, 47%)"},".language-markdown .token.bold .token.content":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.italic .token.content":{color:"hsl(301, 63%, 40%)"},".language-markdown .token.strike .token.content":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.list.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(5, 74%, 59%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.cr:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.lf:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.space:before":{color:"hsla(230, 8%, 24%, 0.2)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},".line-highlight.line-highlight":{background:"hsla(230, 8%, 24%, 0.05)"},".line-highlight.line-highlight:before":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(230, 8%, 24%, 0.05)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".command-line .command-line-prompt":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(230, 1%, 62%)"},".command-line .command-line-prompt > span:before":{color:"hsl(230, 1%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(301, 63%, 40%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(0, 0, 95%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(0, 0, 95%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(0, 0, 95%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(0, 0, 95%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(0, 0%, 100%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(230, 8%, 24%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(230, 8%, 24%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(230, 8%, 24%)"}};Qo.registerLanguage("python",Qg);Qo.registerLanguage("json",Xg);Qo.registerLanguage("bash",Yg);function nz(){const[e,t]=S.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark")?"dark":"light");return S.useEffect(()=>{const n=document.documentElement,r=()=>t(n.classList.contains("dark")?"dark":"light");r();const s=new MutationObserver(r);return s.observe(n,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}function Pe({code:e,language:t="python",label:n}){const r=nz(),[s,o]=S.useState(!1),i=async()=>{try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch{}},a=n??t.toUpperCase(),l=r==="dark"?ez:tz;return c.jsxs("div",{className:"group relative my-4 rounded-2xl border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-white/5 overflow-hidden",children:[c.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-200 dark:border-white/10 bg-white/50 dark:bg-black/30",children:[c.jsx("span",{className:"text-xs font-mono font-medium text-gray-500 dark:text-gray-400 tracking-wide",children:a}),c.jsx("button",{onClick:i,className:"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors","aria-label":s?"Copied":"Copy code",children:s?c.jsxs(c.Fragment,{children:[c.jsx(xu,{size:14,className:"text-primary-600 dark:text-primary-400"}),"Copied"]}):c.jsxs(c.Fragment,{children:[c.jsx(q1,{size:14}),"Copy"]})})]}),c.jsx(Qo,{language:t,style:l,customStyle:{margin:0,padding:"1rem 1.25rem",background:"transparent",fontSize:"0.875rem",lineHeight:"1.6"},codeTagProps:{style:{fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace'}},children:e})]})}const Wb=[{id:"overview",label:"Overview"},{id:"language-support",label:"Language Support"},{id:"authentication",label:"Authentication",part:"Part 1"},{id:"translation",label:"Translation",part:"Part 2"},{id:"speech-to-text",label:"Speech-to-Text",part:"Part 3"},{id:"language-detection",label:"Language Detection",part:"Part 4"},{id:"text-to-speech",label:"Text-to-Speech",part:"Part 5"},{id:"conversational-ai",label:"Conversational AI",part:"Part 6"},{id:"file-upload",label:"File Upload",part:"Part 7"},{id:"resources",label:"Resources"}],rz=[{name:"English",code:"eng"},{name:"Acholi",code:"ach"},{name:"Ateso",code:"teo"},{name:"Luganda",code:"lug"},{name:"Lugbara",code:"lgg"},{name:"Runyankole",code:"nyn"},{name:"Swahili",code:"swa"}],sz=[{name:"Acholi",code:"ach",speech:!0,transcription:!0,chat:!0},{name:"Afrikaans",code:"afr",speech:!0,transcription:!1,chat:!1},{name:"Alur",code:"alz",speech:!1,transcription:!1,chat:!0},{name:"Aringa",code:"luc",speech:!1,transcription:!1,chat:!0},{name:"Ateso",code:"teo",speech:!0,transcription:!0,chat:!0},{name:"Bari",code:"bfa",speech:!1,transcription:!1,chat:!0},{name:"English",code:"eng",speech:!0,transcription:!0,chat:!0},{name:"Ewe",code:"ewe",speech:!0,transcription:!1,chat:!1},{name:"Fulah",code:"ful",speech:!0,transcription:!1,chat:!1},{name:"Hausa",code:"hau",speech:!0,transcription:!1,chat:!1},{name:"Igbo",code:"ibo",speech:!0,transcription:!1,chat:!1},{name:"Jopadhola",code:"adh",speech:!1,transcription:!1,chat:!0},{name:"Kakwa",code:"keo",speech:!1,transcription:!1,chat:!0},{name:"Karamojong",code:"kdj",speech:!1,transcription:!1,chat:!0},{name:"Kikuyu",code:"kik",speech:!0,transcription:!1,chat:!1},{name:"Kinyarwanda",code:"kin",speech:!0,transcription:!0,chat:!0},{name:"Kumam",code:"kdi",speech:!1,transcription:!1,chat:!0},{name:"Kupsabiny",code:"kpz",speech:!1,transcription:!1,chat:!0},{name:"Kwamba",code:"rwm",speech:!1,transcription:!1,chat:!0},{name:"Lango",code:"laj",speech:!1,transcription:!1,chat:!0},{name:"Lingala",code:"lin",speech:!0,transcription:!1,chat:!1},{name:"Lubwisi",code:"tlj",speech:!1,transcription:!1,chat:!0},{name:"Lugbara",code:"lgg",speech:!0,transcription:!0,chat:!0,ttsVoiceless:!0},{name:"Lugungu",code:"rub",speech:!1,transcription:!1,chat:!0},{name:"Lugwere",code:"gwr",speech:!1,transcription:!1,chat:!0},{name:"Luganda",code:"lug",speech:!0,transcription:!0,chat:!0},{name:"Lumasaba",code:"myx",speech:!1,transcription:!0,chat:!0},{name:"Lunyole",code:"nuj",speech:!1,transcription:!1,chat:!0},{name:"Luo (Dholuo)",code:"luo",speech:!0,transcription:!1,chat:!1},{name:"Lusoga",code:"xog",speech:!1,transcription:!0,chat:!0},{name:"Ma'di",code:"mhi",speech:!1,transcription:!1,chat:!0},{name:"Pokot",code:"pok",speech:!1,transcription:!1,chat:!0},{name:"Rukiga",code:"cgg",speech:!1,transcription:!1,chat:!0},{name:"Rukonjo",code:"koo",speech:!1,transcription:!1,chat:!0},{name:"Runyankole",code:"nyn",speech:!0,transcription:!0,chat:!0},{name:"Runyoro",code:"nyo",speech:!1,transcription:!1,chat:!0},{name:"Ruruuli",code:"ruc",speech:!1,transcription:!1,chat:!0},{name:"Rutooro",code:"ttj",speech:!1,transcription:!0,chat:!0},{name:"Samia",code:"lsm",speech:!1,transcription:!1,chat:!0},{name:"Sesotho",code:"sot",speech:!0,transcription:!1,chat:!1,ttsVoiceless:!0},{name:"Setswana",code:"tsn",speech:!0,transcription:!1,chat:!1,ttsVoiceless:!0},{name:"Swahili",code:"swa",speech:!0,transcription:!0,chat:!0},{name:"Xhosa",code:"xho",speech:!0,transcription:!1,chat:!1},{name:"Yoruba",code:"yor",speech:!0,transcription:!1,chat:!1}],oz=[{code:"eng",name:"English (Ugandan)"},{code:"swa",name:"Swahili"},{code:"ach",name:"Acholi"},{code:"lgg",name:"Lugbara"},{code:"lug",name:"Luganda"},{code:"nyn",name:"Runyankole"},{code:"teo",name:"Ateso"},{code:"xog",name:"Lusoga"},{code:"ttj",name:"Rutooro"},{code:"kin",name:"Kinyarwanda"},{code:"myx",name:"Lumasaba"}],iz=[{config:"ach",language:"Acholi",iso:"—",region:"Uganda, South Sudan",speakers:["salt_ach_0001","waxal_ach_0001","waxal_ach_0005","waxal_ach_0006","waxal_ach_0008"]},{config:"afr",language:"Afrikaans",iso:"af",region:"South Africa, Namibia",speakers:["slr32_afr_0009"]},{config:"eng",language:"English",iso:"en",region:"(control language)",speakers:["salt_eng_0001","salt_eng_0002","salt_eng_0003"]},{config:"ewe",language:"Ewe",iso:"ee",region:"Ghana, Togo",speakers:["slr129_ewe_0001"]},{config:"ful",language:"Fulah",iso:"ff",region:"West Africa (Sahel)",speakers:["waxal_ful_0003","waxal_ful_0004","waxal_ful_0006"]},{config:"hau",language:"Hausa",iso:"ha",region:"Nigeria, Niger, Chad",speakers:["waxal_hau_0004","waxal_hau_0006","waxal_hau_0007","waxal_hau_0008"]},{config:"ibo",language:"Igbo",iso:"ig",region:"Nigeria",speakers:["waxal_ibo_0003","waxal_ibo_0005","waxal_ibo_0008"]},{config:"kik",language:"Kikuyu",iso:"ki",region:"Kenya",speakers:["waxal_kik_0003","waxal_kik_0004"]},{config:"kin",language:"Kinyarwanda",iso:"rw",region:"Rwanda",speakers:["bateesa_kin_0001"]},{config:"lgg",language:"Lugbara",iso:"—",region:"Uganda, DRC",speakers:[]},{config:"lin",language:"Lingala",iso:"ln",region:"DRC, Republic of Congo",speakers:["slr129_lin_0001"]},{config:"lug",language:"Luganda",iso:"lg",region:"Uganda",speakers:["salt_lug_0001","waxal_lug_0002","waxal_lug_0003","waxal_lug_0004","waxal_lug_0005","waxal_lug_0006","waxal_lug_0007","waxal_lug_0008"]},{config:"luo",language:"Luo (Dholuo)",iso:"—",region:"Kenya, Tanzania",speakers:["waxal_luo_0001","waxal_luo_0002","waxal_luo_0003","waxal_luo_0004"]},{config:"nyn",language:"Runyankole",iso:"—",region:"Uganda",speakers:["salt_nyn_0001","waxal_nyn_0003","waxal_nyn_0004","waxal_nyn_0007","waxal_nyn_0008"]},{config:"sot",language:"Sesotho",iso:"st",region:"Lesotho, South Africa",speakers:[]},{config:"swa",language:"Swahili",iso:"sw",region:"East Africa",speakers:["waxal_swa_0006","waxal_swa_0007"]},{config:"teo",language:"Ateso",iso:"—",region:"Uganda, Kenya",speakers:["salt_teo_0001"]},{config:"tsn",language:"Setswana",iso:"tn",region:"Botswana, South Africa",speakers:[]},{config:"xho",language:"Xhosa",iso:"xh",region:"South Africa",speakers:["slr32_xho_0012"]},{config:"yor",language:"Yoruba",iso:"yo",region:"Nigeria, Benin",speakers:["waxal_yor_0002","waxal_yor_0006","waxal_yor_0008"]}],az=[{name:"acholi_female",id:241,description:"Acholi (female)"},{name:"ateso_female",id:242,description:"Ateso (female)"},{name:"runyankore_female",id:243,description:"Runyankore (female)"},{name:"lugbara_female",id:245,description:"Lugbara (female)"},{name:"swahili_male",id:246,description:"Swahili (male)"},{name:"luganda_female",id:248,description:"Luganda (female)"}],lz=[{mode:"url",description:"Generate audio, upload to GCP, return a signed URL (valid ~30 minutes) — default"},{mode:"stream",description:"Stream raw audio chunks directly"},{mode:"both",description:"Stream audio and return a final signed URL"}],cz=["Temporary signed URLs (valid for 30 minutes)","Direct upload to Google Cloud Storage","Path traversal protection","Support for multiple content types"],uz=`import requests +`)};if(O===0){var U=d.slice(f+1,p).concat(sc({children:[D],className:j.properties.className})),W=y(U,F);h.push(W)}else if(O===P.length-1){var M=d[p+1]&&d[p+1].children&&d[p+1].children[0],H={type:"text",value:"".concat(A)};if(M){var C=sc({children:[H],className:j.properties.className});d.splice(p+1,0,C)}else{var L=[H],E=y(L,F,j.properties.className);h.push(E)}}else{var I=[D],Y=y(I,F,j.properties.className);h.push(Y)}}),f=p}p++};p4&&n.slice(0,4)==="data"&&SF.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(Ob,CF);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!Ob.test(o)){let i=o.replace(kF,jF);i.charAt(0)!=="-"&&(i="-"+i),t="data"+i}}s=Kg}return new s(r,t)}function jF(e){return"-"+e.toLowerCase()}function CF(e){return e.charAt(1).toUpperCase()}const NF=YS([XS,vF,ZS,e_,t_],"html"),PF=YS([XS,wF,ZS,e_,t_],"svg");function Db(e){const t=[],n=String(e||"");let r=n.indexOf(","),s=0,o=!1;for(;!o;){r===-1&&(r=n.length,o=!0);const i=n.slice(s,r).trim();(i||!o)&&t.push(i),s=r+1,r=n.indexOf(",",s)}return t}const Ib=/[#.]/g;function RF(e,t){const n=e||"",r={};let s=0,o,i;for(;s=48&&t<=57}function IF(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}function FF(e){const t=typeof e=="string"?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}function Bb(e){return FF(e)||r_(e)}const $b=document.createElement("i");function Hb(e){const t="&"+e+";";$b.innerHTML=t;const n=$b.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}const zF=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function VF(e,t){const n={},r=typeof n.additional=="string"?n.additional.charCodeAt(0):n.additional,s=[];let o=0,i=-1,a="",l,u;n.position&&("start"in n.position||"indent"in n.position?(u=n.position.indent,l=n.position.start):l=n.position);let d=(l?l.line:0)||1,h=(l?l.column:0)||1,f=g(),p;for(o--;++o<=e.length;)if(p===10&&(h=(u?u[i]:0)||1),p=e.charCodeAt(o),p===38){const x=e.charCodeAt(o+1);if(x===9||x===10||x===12||x===32||x===38||x===60||Number.isNaN(x)||r&&x===r){a+=String.fromCharCode(p),h++;continue}const v=o+1;let b=v,k=v,w;if(x===35){k=++b;const D=e.charCodeAt(k);D===88||D===120?(w="hexadecimal",k=++b):w="decimal"}else w="named";let j="",N="",_="";const P=w==="named"?Bb:w==="decimal"?r_:IF;for(k--;++k<=e.length;){const D=e.charCodeAt(k);if(!P(D))break;_+=String.fromCharCode(D),w==="named"&&DF.includes(_)&&(j=_,N=Hb(_))}let A=e.charCodeAt(k)===59;if(A){k++;const D=w==="named"?Hb(_):!1;D&&(j=_,N=D)}let O=1+k-v,F="";if(!(!A&&n.nonTerminated===!1))if(!_)w!=="named"&&m(4,O);else if(w==="named"){if(A&&!N)m(5,1);else if(j!==_&&(k=b+j.length,O=1+k-b,A=!1),!A){const D=j?1:3;if(n.attribute){const U=e.charCodeAt(k);U===61?(m(D,O),N=""):Bb(U)?N="":m(D,O)}else m(D,O)}F=N}else{A||m(2,O);let D=Number.parseInt(_,w==="hexadecimal"?16:10);if(BF(D))m(7,O),F="�";else if(D in Vb)m(6,O),F=Vb[D];else{let U="";$F(D)&&m(6,O),D>65535&&(D-=65536,U+=String.fromCharCode(D>>>10|55296),D=56320|D&1023),F=U+String.fromCharCode(D)}}if(F){y(),f=g(),o=k-1,h+=k-v+1,s.push(F);const D=g();D.offset++,n.reference&&n.reference.call(n.referenceContext||void 0,F,{start:f,end:D},e.slice(v-1,k)),f=D}else _=e.slice(v-1,k),a+=_,h+=_.length,o=k-1}else p===10&&(d++,i++,h=0),Number.isNaN(p)?y():(a+=String.fromCharCode(p),h++);return s.join("");function g(){return{line:d,column:h,offset:o+((l?l.offset:0)||0)}}function m(x,v){let b;n.warning&&(b=g(),b.column+=v,b.offset+=v,n.warning.call(n.warningContext||void 0,zF[x],b,x))}function y(){a&&(s.push(a),n.text&&n.text.call(n.textContext||void 0,a,{start:f,end:g()}),a="")}}function BF(e){return e>=55296&&e<=57343||e>1114111}function $F(e){return e>=1&&e<=8||e===11||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534}var HF=0,Ll={},Je={util:{type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++HF}),e.__id},clone:function e(t,n){n=n||{};var r,s;switch(Je.util.type(t)){case"Object":if(s=Je.util.objId(t),n[s])return n[s];r={},n[s]=r;for(var o in t)t.hasOwnProperty(o)&&(r[o]=e(t[o],n));return r;case"Array":return s=Je.util.objId(t),n[s]?n[s]:(r=[],n[s]=r,t.forEach(function(i,a){r[a]=e(i,n)}),r);default:return t}}},languages:{plain:Ll,plaintext:Ll,text:Ll,txt:Ll,extend:function(e,t){var n=Je.util.clone(Je.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r=r||Je.languages;var s=r[e],o={};for(var i in s)if(s.hasOwnProperty(i)){if(i==t)for(var a in n)n.hasOwnProperty(a)&&(o[a]=n[a]);n.hasOwnProperty(i)||(o[i]=s[i])}var l=r[e];return r[e]=o,Je.languages.DFS(Je.languages,function(u,d){d===l&&u!=e&&(this[u]=o)}),o},DFS:function e(t,n,r,s){s=s||{};var o=Je.util.objId;for(var i in t)if(t.hasOwnProperty(i)){n.call(t,i,t[i],r||i);var a=t[i],l=Je.util.type(a);l==="Object"&&!s[o(a)]?(s[o(a)]=!0,e(a,n,null,s)):l==="Array"&&!s[o(a)]&&(s[o(a)]=!0,e(a,n,i,s))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(Je.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=Je.tokenize(r.code,r.grammar),Je.hooks.run("after-tokenize",r),qi.stringify(Je.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var s=new UF;return oc(s,s.head,e),s_(e,s,t,s.head,0),GF(s)},hooks:{all:{},add:function(e,t){var n=Je.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=Je.hooks.all[e];if(!(!n||!n.length))for(var r=0,s;s=n[r++];)s(t)}},Token:qi};function qi(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||"").length|0}function Ub(e,t,n,r){e.lastIndex=t;var s=e.exec(n);if(s&&r&&s[1]){var o=s[1].length;s.index+=o,s[0]=s[0].slice(o)}return s}function s_(e,t,n,r,s,o){for(var i in n)if(!(!n.hasOwnProperty(i)||!n[i])){var a=n[i];a=Array.isArray(a)?a:[a];for(var l=0;l=o.reach);x+=y.value.length,y=y.next){var v=y.value;if(t.length>e.length)return;if(!(v instanceof qi)){var b=1,k;if(f){if(k=Ub(m,x,e,h),!k||k.index>=e.length)break;var _=k.index,w=k.index+k[0].length,j=x;for(j+=y.value.length;_>=j;)y=y.next,j+=y.value.length;if(j-=y.value.length,x=j,y.value instanceof qi)continue;for(var N=y;N!==t.tail&&(jo.reach&&(o.reach=F);var D=y.prev;A&&(D=oc(t,D,A),x+=A.length),WF(t,D,b);var U=new qi(i,d?Je.tokenize(P,d):P,p,P);if(y=oc(t,D,U),O&&oc(t,y,O),b>1){var W={cause:i+","+l,reach:F};s_(e,t,n,y.prev,x,W),o&&W.reach>o.reach&&(o.reach=W.reach)}}}}}}function UF(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function oc(e,t,n){var r=t.next,s={value:n,prev:t,next:r};return t.next=s,r.prev=s,e.length++,s}function WF(e,t,n){for(var r=t.next,s=0;s>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+n),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};t.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:s},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:r}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:s},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:s.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:s.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},r.inside=t.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=s.variable[1].inside,a=0;a]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}const ez={'code[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"]::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},prolog:{color:"hsl(220, 10%, 40%)"},cdata:{color:"hsl(220, 10%, 40%)"},doctype:{color:"hsl(220, 14%, 71%)"},punctuation:{color:"hsl(220, 14%, 71%)"},entity:{color:"hsl(220, 14%, 71%)",cursor:"help"},"attr-name":{color:"hsl(29, 54%, 61%)"},"class-name":{color:"hsl(29, 54%, 61%)"},boolean:{color:"hsl(29, 54%, 61%)"},constant:{color:"hsl(29, 54%, 61%)"},number:{color:"hsl(29, 54%, 61%)"},atrule:{color:"hsl(29, 54%, 61%)"},keyword:{color:"hsl(286, 60%, 67%)"},property:{color:"hsl(355, 65%, 65%)"},tag:{color:"hsl(355, 65%, 65%)"},symbol:{color:"hsl(355, 65%, 65%)"},deleted:{color:"hsl(355, 65%, 65%)"},important:{color:"hsl(355, 65%, 65%)"},selector:{color:"hsl(95, 38%, 62%)"},string:{color:"hsl(95, 38%, 62%)"},char:{color:"hsl(95, 38%, 62%)"},builtin:{color:"hsl(95, 38%, 62%)"},inserted:{color:"hsl(95, 38%, 62%)"},regex:{color:"hsl(95, 38%, 62%)"},"attr-value":{color:"hsl(95, 38%, 62%)"},"attr-value > .token.punctuation":{color:"hsl(95, 38%, 62%)"},variable:{color:"hsl(207, 82%, 66%)"},operator:{color:"hsl(207, 82%, 66%)"},function:{color:"hsl(207, 82%, 66%)"},url:{color:"hsl(187, 47%, 55%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(220, 14%, 71%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(220, 14%, 71%)"},".language-css .token.selector":{color:"hsl(355, 65%, 65%)"},".language-css .token.property":{color:"hsl(220, 14%, 71%)"},".language-css .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.string.url":{color:"hsl(95, 38%, 62%)"},".language-css .token.important":{color:"hsl(286, 60%, 67%)"},".language-css .token.atrule .token.rule":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.operator":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(5, 48%, 51%)"},".language-json .token.operator":{color:"hsl(220, 14%, 71%)"},".language-json .token.null.keyword":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.url":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.operator":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.content":{color:"hsl(207, 82%, 66%)"},".language-markdown .token.url > .token.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.url-reference.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(95, 38%, 62%)"},".language-markdown .token.bold .token.content":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.italic .token.content":{color:"hsl(286, 60%, 67%)"},".language-markdown .token.strike .token.content":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.list.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(355, 65%, 65%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.cr:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.lf:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.space:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},".line-highlight.line-highlight":{background:"hsla(220, 100%, 80%, 0.04)"},".line-highlight.line-highlight:before":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(220, 100%, 80%, 0.04)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".command-line .command-line-prompt":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(220, 14%, 45%)"},".command-line .command-line-prompt > span:before":{color:"hsl(220, 14%, 45%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(286, 60%, 67%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(224, 13%, 17%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(224, 13%, 17%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(224, 13%, 17%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(224, 13%, 17%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(219, 13%, 22%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(220, 14%, 71%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(220, 14%, 71%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(220, 14%, 71%)"}},tz={'code[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"]::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'code[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},'pre[class*="language-"] *::selection':{background:"hsl(230, 1%, 90%)",color:"inherit"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},prolog:{color:"hsl(230, 4%, 64%)"},cdata:{color:"hsl(230, 4%, 64%)"},doctype:{color:"hsl(230, 8%, 24%)"},punctuation:{color:"hsl(230, 8%, 24%)"},entity:{color:"hsl(230, 8%, 24%)",cursor:"help"},"attr-name":{color:"hsl(35, 99%, 36%)"},"class-name":{color:"hsl(35, 99%, 36%)"},boolean:{color:"hsl(35, 99%, 36%)"},constant:{color:"hsl(35, 99%, 36%)"},number:{color:"hsl(35, 99%, 36%)"},atrule:{color:"hsl(35, 99%, 36%)"},keyword:{color:"hsl(301, 63%, 40%)"},property:{color:"hsl(5, 74%, 59%)"},tag:{color:"hsl(5, 74%, 59%)"},symbol:{color:"hsl(5, 74%, 59%)"},deleted:{color:"hsl(5, 74%, 59%)"},important:{color:"hsl(5, 74%, 59%)"},selector:{color:"hsl(119, 34%, 47%)"},string:{color:"hsl(119, 34%, 47%)"},char:{color:"hsl(119, 34%, 47%)"},builtin:{color:"hsl(119, 34%, 47%)"},inserted:{color:"hsl(119, 34%, 47%)"},regex:{color:"hsl(119, 34%, 47%)"},"attr-value":{color:"hsl(119, 34%, 47%)"},"attr-value > .token.punctuation":{color:"hsl(119, 34%, 47%)"},variable:{color:"hsl(221, 87%, 60%)"},operator:{color:"hsl(221, 87%, 60%)"},function:{color:"hsl(221, 87%, 60%)"},url:{color:"hsl(198, 99%, 37%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(230, 8%, 24%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(230, 8%, 24%)"},".language-css .token.selector":{color:"hsl(5, 74%, 59%)"},".language-css .token.property":{color:"hsl(230, 8%, 24%)"},".language-css .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.function":{color:"hsl(198, 99%, 37%)"},".language-css .token.url > .token.string.url":{color:"hsl(119, 34%, 47%)"},".language-css .token.important":{color:"hsl(301, 63%, 40%)"},".language-css .token.atrule .token.rule":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.operator":{color:"hsl(301, 63%, 40%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(344, 84%, 43%)"},".language-json .token.operator":{color:"hsl(230, 8%, 24%)"},".language-json .token.null.keyword":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.url":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.operator":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(230, 8%, 24%)"},".language-markdown .token.url > .token.content":{color:"hsl(221, 87%, 60%)"},".language-markdown .token.url > .token.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.url-reference.url":{color:"hsl(198, 99%, 37%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(230, 4%, 64%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(119, 34%, 47%)"},".language-markdown .token.bold .token.content":{color:"hsl(35, 99%, 36%)"},".language-markdown .token.italic .token.content":{color:"hsl(301, 63%, 40%)"},".language-markdown .token.strike .token.content":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.list.punctuation":{color:"hsl(5, 74%, 59%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(5, 74%, 59%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.cr:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.lf:before":{color:"hsla(230, 8%, 24%, 0.2)"},"token.space:before":{color:"hsla(230, 8%, 24%, 0.2)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 6%, 44%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(230, 1%, 78%)",color:"hsl(230, 8%, 24%)"},".line-highlight.line-highlight":{background:"hsla(230, 8%, 24%, 0.05)"},".line-highlight.line-highlight:before":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(230, 1%, 90%)",color:"hsl(230, 8%, 24%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(230, 8%, 24%, 0.05)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".command-line .command-line-prompt":{borderRightColor:"hsla(230, 8%, 24%, 0.2)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(230, 1%, 62%)"},".command-line .command-line-prompt > span:before":{color:"hsl(230, 1%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(5, 74%, 59%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(119, 34%, 47%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(221, 87%, 60%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(301, 63%, 40%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(301, 63%, 40%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(0, 0, 95%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(0, 0, 95%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(0, 0, 95%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(0, 0, 95%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(0, 0%, 100%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(0, 0%, 100%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(230, 8%, 24%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(230, 8%, 24%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(230, 8%, 24%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(230, 8%, 24%)"}};Qo.registerLanguage("python",Qg);Qo.registerLanguage("json",Xg);Qo.registerLanguage("bash",Yg);function nz(){const[e,t]=S.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark")?"dark":"light");return S.useEffect(()=>{const n=document.documentElement,r=()=>t(n.classList.contains("dark")?"dark":"light");r();const s=new MutationObserver(r);return s.observe(n,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}function Pe({code:e,language:t="python",label:n}){const r=nz(),[s,o]=S.useState(!1),i=async()=>{try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch{}},a=n??t.toUpperCase(),l=r==="dark"?ez:tz;return c.jsxs("div",{className:"group relative my-4 rounded-2xl border border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-white/5 overflow-hidden",children:[c.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-200 dark:border-white/10 bg-white/50 dark:bg-black/30",children:[c.jsx("span",{className:"text-xs font-mono font-medium text-gray-500 dark:text-gray-400 tracking-wide",children:a}),c.jsx("button",{onClick:i,className:"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-white/10 transition-colors","aria-label":s?"Copied":"Copy code",children:s?c.jsxs(c.Fragment,{children:[c.jsx(bu,{size:14,className:"text-primary-600 dark:text-primary-400"}),"Copied"]}):c.jsxs(c.Fragment,{children:[c.jsx(q1,{size:14}),"Copy"]})})]}),c.jsx(Qo,{language:t,style:l,customStyle:{margin:0,padding:"1rem 1.25rem",background:"transparent",fontSize:"0.875rem",lineHeight:"1.6"},codeTagProps:{style:{fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace'}},children:e})]})}const Wb=[{id:"overview",label:"Overview"},{id:"language-support",label:"Language Support"},{id:"authentication",label:"Authentication",part:"Part 1"},{id:"translation",label:"Translation",part:"Part 2"},{id:"speech-to-text",label:"Speech-to-Text",part:"Part 3"},{id:"language-detection",label:"Language Detection",part:"Part 4"},{id:"text-to-speech",label:"Text-to-Speech",part:"Part 5"},{id:"conversational-ai",label:"Conversational AI",part:"Part 6"},{id:"file-upload",label:"File Upload",part:"Part 7"},{id:"resources",label:"Resources"}],rz=[{name:"English",code:"eng"},{name:"Acholi",code:"ach"},{name:"Ateso",code:"teo"},{name:"Luganda",code:"lug"},{name:"Lugbara",code:"lgg"},{name:"Runyankole",code:"nyn"},{name:"Swahili",code:"swa"}],sz=[{name:"Acholi",code:"ach",speech:!0,transcription:!0,chat:!0},{name:"Afrikaans",code:"afr",speech:!0,transcription:!1,chat:!1},{name:"Alur",code:"alz",speech:!1,transcription:!1,chat:!0},{name:"Aringa",code:"luc",speech:!1,transcription:!1,chat:!0},{name:"Ateso",code:"teo",speech:!0,transcription:!0,chat:!0},{name:"Bari",code:"bfa",speech:!1,transcription:!1,chat:!0},{name:"English",code:"eng",speech:!0,transcription:!0,chat:!0},{name:"Ewe",code:"ewe",speech:!0,transcription:!1,chat:!1},{name:"Fulah",code:"ful",speech:!0,transcription:!1,chat:!1},{name:"Hausa",code:"hau",speech:!0,transcription:!1,chat:!1},{name:"Igbo",code:"ibo",speech:!0,transcription:!1,chat:!1},{name:"Jopadhola",code:"adh",speech:!1,transcription:!1,chat:!0},{name:"Kakwa",code:"keo",speech:!1,transcription:!1,chat:!0},{name:"Karamojong",code:"kdj",speech:!1,transcription:!1,chat:!0},{name:"Kikuyu",code:"kik",speech:!0,transcription:!1,chat:!1},{name:"Kinyarwanda",code:"kin",speech:!0,transcription:!0,chat:!0},{name:"Kumam",code:"kdi",speech:!1,transcription:!1,chat:!0},{name:"Kupsabiny",code:"kpz",speech:!1,transcription:!1,chat:!0},{name:"Kwamba",code:"rwm",speech:!1,transcription:!1,chat:!0},{name:"Lango",code:"laj",speech:!1,transcription:!1,chat:!0},{name:"Lingala",code:"lin",speech:!0,transcription:!1,chat:!1},{name:"Lubwisi",code:"tlj",speech:!1,transcription:!1,chat:!0},{name:"Lugbara",code:"lgg",speech:!0,transcription:!0,chat:!0,ttsVoiceless:!0},{name:"Lugungu",code:"rub",speech:!1,transcription:!1,chat:!0},{name:"Lugwere",code:"gwr",speech:!1,transcription:!1,chat:!0},{name:"Luganda",code:"lug",speech:!0,transcription:!0,chat:!0},{name:"Lumasaba",code:"myx",speech:!1,transcription:!0,chat:!0},{name:"Lunyole",code:"nuj",speech:!1,transcription:!1,chat:!0},{name:"Luo (Dholuo)",code:"luo",speech:!0,transcription:!1,chat:!1},{name:"Lusoga",code:"xog",speech:!1,transcription:!0,chat:!0},{name:"Ma'di",code:"mhi",speech:!1,transcription:!1,chat:!0},{name:"Pokot",code:"pok",speech:!1,transcription:!1,chat:!0},{name:"Rukiga",code:"cgg",speech:!1,transcription:!1,chat:!0},{name:"Rukonjo",code:"koo",speech:!1,transcription:!1,chat:!0},{name:"Runyankole",code:"nyn",speech:!0,transcription:!0,chat:!0},{name:"Runyoro",code:"nyo",speech:!1,transcription:!1,chat:!0},{name:"Ruruuli",code:"ruc",speech:!1,transcription:!1,chat:!0},{name:"Rutooro",code:"ttj",speech:!1,transcription:!0,chat:!0},{name:"Samia",code:"lsm",speech:!1,transcription:!1,chat:!0},{name:"Sesotho",code:"sot",speech:!0,transcription:!1,chat:!1,ttsVoiceless:!0},{name:"Setswana",code:"tsn",speech:!0,transcription:!1,chat:!1,ttsVoiceless:!0},{name:"Swahili",code:"swa",speech:!0,transcription:!0,chat:!0},{name:"Xhosa",code:"xho",speech:!0,transcription:!1,chat:!1},{name:"Yoruba",code:"yor",speech:!0,transcription:!1,chat:!1}],oz=[{code:"eng",name:"English (Ugandan)"},{code:"swa",name:"Swahili"},{code:"ach",name:"Acholi"},{code:"lgg",name:"Lugbara"},{code:"lug",name:"Luganda"},{code:"nyn",name:"Runyankole"},{code:"teo",name:"Ateso"},{code:"xog",name:"Lusoga"},{code:"ttj",name:"Rutooro"},{code:"kin",name:"Kinyarwanda"},{code:"myx",name:"Lumasaba"}],iz=[{config:"ach",language:"Acholi",iso:"—",region:"Uganda, South Sudan",speakers:["salt_ach_0001","waxal_ach_0001","waxal_ach_0005","waxal_ach_0006","waxal_ach_0008"]},{config:"afr",language:"Afrikaans",iso:"af",region:"South Africa, Namibia",speakers:["slr32_afr_0009"]},{config:"eng",language:"English",iso:"en",region:"(control language)",speakers:["salt_eng_0001","salt_eng_0002","salt_eng_0003"]},{config:"ewe",language:"Ewe",iso:"ee",region:"Ghana, Togo",speakers:["slr129_ewe_0001"]},{config:"ful",language:"Fulah",iso:"ff",region:"West Africa (Sahel)",speakers:["waxal_ful_0003","waxal_ful_0004","waxal_ful_0006"]},{config:"hau",language:"Hausa",iso:"ha",region:"Nigeria, Niger, Chad",speakers:["waxal_hau_0004","waxal_hau_0006","waxal_hau_0007","waxal_hau_0008"]},{config:"ibo",language:"Igbo",iso:"ig",region:"Nigeria",speakers:["waxal_ibo_0003","waxal_ibo_0005","waxal_ibo_0008"]},{config:"kik",language:"Kikuyu",iso:"ki",region:"Kenya",speakers:["waxal_kik_0003","waxal_kik_0004"]},{config:"kin",language:"Kinyarwanda",iso:"rw",region:"Rwanda",speakers:["bateesa_kin_0001"]},{config:"lgg",language:"Lugbara",iso:"—",region:"Uganda, DRC",speakers:[]},{config:"lin",language:"Lingala",iso:"ln",region:"DRC, Republic of Congo",speakers:["slr129_lin_0001"]},{config:"lug",language:"Luganda",iso:"lg",region:"Uganda",speakers:["salt_lug_0001","waxal_lug_0002","waxal_lug_0003","waxal_lug_0004","waxal_lug_0005","waxal_lug_0006","waxal_lug_0007","waxal_lug_0008"]},{config:"luo",language:"Luo (Dholuo)",iso:"—",region:"Kenya, Tanzania",speakers:["waxal_luo_0001","waxal_luo_0002","waxal_luo_0003","waxal_luo_0004"]},{config:"nyn",language:"Runyankole",iso:"—",region:"Uganda",speakers:["salt_nyn_0001","waxal_nyn_0003","waxal_nyn_0004","waxal_nyn_0007","waxal_nyn_0008"]},{config:"sot",language:"Sesotho",iso:"st",region:"Lesotho, South Africa",speakers:[]},{config:"swa",language:"Swahili",iso:"sw",region:"East Africa",speakers:["waxal_swa_0006","waxal_swa_0007"]},{config:"teo",language:"Ateso",iso:"—",region:"Uganda, Kenya",speakers:["salt_teo_0001"]},{config:"tsn",language:"Setswana",iso:"tn",region:"Botswana, South Africa",speakers:[]},{config:"xho",language:"Xhosa",iso:"xh",region:"South Africa",speakers:["slr32_xho_0012"]},{config:"yor",language:"Yoruba",iso:"yo",region:"Nigeria, Benin",speakers:["waxal_yor_0002","waxal_yor_0006","waxal_yor_0008"]}],az=[{name:"acholi_female",id:241,description:"Acholi (female)"},{name:"ateso_female",id:242,description:"Ateso (female)"},{name:"runyankore_female",id:243,description:"Runyankore (female)"},{name:"lugbara_female",id:245,description:"Lugbara (female)"},{name:"swahili_male",id:246,description:"Swahili (male)"},{name:"luganda_female",id:248,description:"Luganda (female)"}],lz=[{mode:"url",description:"Generate audio, upload to GCP, return a signed URL (valid ~30 minutes) — default"},{mode:"stream",description:"Stream raw audio chunks directly"},{mode:"both",description:"Stream audio and return a final signed URL"}],cz=["Temporary signed URLs (valid for 30 minutes)","Direct upload to Google Cloud Storage","Path traversal protection","Support for multiple content types"],uz=`import requests url = "https://api.sunbird.ai/auth/register" data = { @@ -682,7 +682,7 @@ headers = { } payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ { "role": "user", @@ -699,7 +699,7 @@ print(response.json())`,Pz=`{ "id": "chatcmpl-8f14e45fceea167a5a36dedd4bea2543", "object": "chat.completion", "created": 1718000000, - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "choices": [ { "index": 0, @@ -723,7 +723,7 @@ client = OpenAI( ) completion = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[ { "role": "user", @@ -735,7 +735,7 @@ completion = client.chat.completions.create( print(completion.choices[0].message.content) # Ndi muyala nnyo, emmere erina okugabibwa mu budde.`,Ez=`payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ {"role": "system", "content": "You are a helpful multilingual assistant."}, {"role": "user", "content": "Translate 'hello' to Luganda."}, @@ -743,14 +743,14 @@ print(completion.choices[0].message.content) {"role": "user", "content": "And to Acholi?"}, ], }`,Tz=`stream = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[{"role": "user", "content": "Tell me about Uganda."}], stream=True, ) for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: - print(chunk.choices[0].delta.content, end="", flush=True)`,Az=`import os + print(chunk.choices[0].delta.content, end="", flush=True)`,Az=[{model:"sunflower-14b",isDefault:!0,coverage:"English + 31 Ugandan / regional languages (32 total)",bestFor:"High-accuracy translation, factual Q&A, summarization, and explanation across Ugandan languages"},{model:"sunflower-9b",isDefault:!1,coverage:"67 African languages (good / moderate / basic tiers)",bestFor:"Broad pan-African translation, instruction-following, and multi-turn chat"}],Mz=[{name:"Acholi",code:"ach"},{name:"Alur",code:"alz"},{name:"Aringa",code:"luc"},{name:"Ateso",code:"teo"},{name:"Bari",code:"bfa"},{name:"English",code:"eng"},{name:"Jopadhola",code:"adh"},{name:"Kakwa",code:"keo"},{name:"Karamojong",code:"kdj"},{name:"Kinyarwanda",code:"kin"},{name:"Kumam",code:"kdi"},{name:"Kupsabiny",code:"kpz"},{name:"Kwamba",code:"rwm"},{name:"Lango",code:"laj"},{name:"Lubwisi",code:"tlj"},{name:"Lugbara",code:"lgg"},{name:"Lugungu",code:"rub"},{name:"Lugwere",code:"gwr"},{name:"Luganda",code:"lug"},{name:"Lumasaba",code:"myx"},{name:"Lunyole",code:"nuj"},{name:"Ma'di",code:"mhi"},{name:"Pokot",code:"pok"},{name:"Rukiga",code:"cgg"},{name:"Rukonjo",code:"koo"},{name:"Runyankole",code:"nyn"},{name:"Runyoro",code:"nyo"},{name:"Ruruuli",code:"ruc"},{name:"Rutooro",code:"ttj"},{name:"Samia",code:"lsm"},{name:"Swahili",code:"swa"},{name:"Lusoga",code:"xog"}],Lz=[{tier:"Good",languages:"Afrikaans, Zulu, Nigerian Pidgin, Chichewa, Swahili, Xhosa, Somali, Lingala, Sotho, Igbo, Malagasy, Kinyarwanda, Hausa, Tswana, Yoruba, Luganda, Shona, Ndebele, Amharic, Kirundi, Runyoro, Luo, Ewe, Runyankole"},{tier:"Moderate",languages:"Kikuyu, Lusoga, Acholi, Rukiga, Rutooro, Oromo, Bemba, Ruruuli, Akan, Lango, Lugwere, Lugbara, Kumam, Lugungu, Lumasaba, Ateso, Lunyole"},{tier:"Basic",languages:"Kabyle, Rukonjo, Bambara, Lubwisi, Wolof, Samia, Jopadhola, Alur, Bari, Kakwa, Dagbani, Karamojong, Berber, Fulani, Kwamba, Ma'di, Aringa, Luhya, Kalenjin, Kupsabiny, Lendu, Dagaare, Ik, Pokot, Kanuri, Dinka"}],Oz=`import os import requests from dotenv import load_dotenv @@ -790,4 +790,4 @@ with open("/path/to/your/recording.wav", "rb") as f: ) if upload_response.status_code == 200: - print("File uploaded successfully!")`;function Mz(e){const[t,n]=S.useState(e[0]??"");return S.useEffect(()=>{const r=e.map(o=>document.getElementById(o)).filter(o=>o!==null);if(r.length===0)return;const s=new IntersectionObserver(o=>{const i=o.filter(a=>a.isIntersecting).sort((a,l)=>l.intersectionRatio-a.intersectionRatio);i.length>0&&n(i[0].target.id)},{rootMargin:"-20% 0px -70% 0px",threshold:[0,.25,.5,.75,1]});return r.forEach(o=>s.observe(o)),()=>s.disconnect()},[e]),t}function Rn({id:e,icon:t,part:n,title:r}){return c.jsxs("div",{id:e,className:"scroll-mt-24 mb-6",children:[n&&c.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-primary-600 dark:text-primary-400 mb-2",children:n}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("div",{className:"w-10 h-10 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 shrink-0",children:c.jsx(t,{size:20})}),c.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white",children:r})]})]})}function yi({children:e}){return c.jsxs("div",{className:"flex items-start gap-3 p-4 my-4 rounded-xl border border-primary-200 dark:border-primary-900/40 bg-primary-50/60 dark:bg-primary-900/10 text-sm text-gray-700 dark:text-gray-200",children:[c.jsx(sg,{size:18,className:"text-primary-600 dark:text-primary-400 shrink-0 mt-0.5"}),c.jsx("div",{className:"leading-relaxed",children:e})]})}function ht({children:e}){return c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mt-8 mb-3",children:e})}function Bt({children:e}){return c.jsx("h4",{className:"text-base font-semibold text-gray-800 dark:text-gray-100 mt-6 mb-2",children:e})}function be({children:e}){return c.jsx("p",{className:"text-gray-700 dark:text-gray-300 leading-relaxed",children:e})}function ih({items:e}){return c.jsx("ul",{className:"space-y-2 my-4",children:e.map((t,n)=>c.jsxs("li",{className:"flex items-start gap-2 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full bg-primary-500 shrink-0"}),c.jsx("span",{className:"leading-relaxed",children:t})]},n))})}function J({children:e}){return c.jsx("code",{className:"px-1.5 py-0.5 rounded-md bg-gray-100 dark:bg-white/10 text-primary-700 dark:text-primary-300 text-[0.9em] font-mono",children:e})}function ah({available:e,dagger:t=!1}){return e?c.jsxs("span",{className:"inline-flex items-center gap-0.5 text-green-600 dark:text-green-400",children:[c.jsx(xu,{size:16,"aria-label":"Available"}),t&&c.jsx("sup",{className:"text-amber-600 dark:text-amber-400",children:"†"})]}):c.jsx(wu,{size:16,className:"inline text-gray-300 dark:text-gray-600","aria-label":"Not supported"})}function Lz(){const e=Mz(Wb.map(t=>t.id));return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black transition-colors duration-300 selection:bg-primary-500 selection:text-white flex flex-col",children:[c.jsx(Bu,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-7xl mx-auto",children:[c.jsxs("div",{className:"max-w-4xl mx-auto text-center mb-12",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-300 text-xs font-semibold tracking-wider uppercase mb-4",children:[c.jsx(K0,{size:14}),"Tutorial"]}),c.jsx("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight text-gray-900 dark:text-white mb-4",children:"Sunbird AI API Tutorial"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto leading-relaxed",children:"A comprehensive guide for using the Sunbird AI API with Python code samples — translate, transcribe, synthesize speech, and chat across 30+ African languages."})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[240px_minmax(0,1fr)] gap-10",children:[c.jsx("aside",{className:"hidden lg:block",children:c.jsxs("nav",{className:"sticky top-24 py-2",children:[c.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-gray-500 dark:text-gray-400 mb-3 px-3",children:"On this page"}),c.jsx("ul",{className:"space-y-1",children:Wb.map(t=>{const n=e===t.id;return c.jsx("li",{children:c.jsxs("a",{href:`#${t.id}`,className:`block px-3 py-2 rounded-lg text-sm transition-colors border-l-2 ${n?"border-primary-500 text-primary-600 dark:text-primary-400 bg-primary-50 dark:bg-primary-900/10 font-medium":"border-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[t.part&&c.jsx("span",{className:"block text-[10px] font-semibold tracking-wider uppercase opacity-70",children:t.part}),t.label]})},t.id)})})]})}),c.jsxs("article",{className:"max-w-3xl space-y-16",children:[c.jsxs("section",{children:[c.jsx(Rn,{id:"overview",icon:hR,title:"Supported Languages"}),c.jsx(be,{children:"Sunbird AI provides AI services across English and a growing catalog of African languages. Languages are accepted as a 3-letter ISO code or a full language name; translation alone covers 32 languages."}),c.jsxs("div",{className:"flex flex-wrap gap-2 mt-6",children:[rz.map(t=>c.jsxs("div",{className:"px-3 py-1.5 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 text-sm text-gray-800 dark:text-gray-100",children:[t.name," ",c.jsxs("span",{className:"text-gray-400 dark:text-gray-500 font-mono text-xs",children:["(",t.code,")"]})]},t.code)),c.jsx("div",{className:"px-3 py-1.5 rounded-full bg-primary-50 dark:bg-primary-900/20 border border-primary-200 dark:border-primary-900/40 text-sm text-primary-700 dark:text-primary-300 font-medium",children:"+ 20 more"})]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"language-support",icon:yR,title:"Language Support by Endpoint"}),c.jsxs(be,{children:["Which languages each task endpoint currently serves. ",c.jsx("strong",{children:"Code"})," is the canonical ISO/SALT code the API accepts (full language names also work where an endpoint takes a"," ",c.jsx(J,{children:"language"})," or ",c.jsx(J,{children:"voice"}),")."," ",c.jsx(J,{children:"/tasks/translate"})," shares the same 32-language set as"," ",c.jsx(J,{children:"/tasks/chat/completions"}),"."]}),c.jsx("div",{className:"overflow-x-auto rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Language"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Code"}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Text-to-Speech"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/audio/speech"})]}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Speech-to-Text"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/audio/transcriptions"})]}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Chat"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/chat/completions"})]})]})}),c.jsx("tbody",{children:sz.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 text-gray-700 dark:text-gray-300 whitespace-nowrap",children:t.name}),c.jsx("td",{className:"px-4 py-3 font-mono text-primary-700 dark:text-primary-400",children:t.code}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.speech,dagger:t.ttsVoiceless})}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.transcription})}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.chat})})]},t.code))})]})}),c.jsxs(be,{children:[c.jsx("strong",{children:"†"})," Lugbara, Sesotho, and Setswana are in the orpheus-3b-tts training mix but currently expose no individual voice IDs, so synthesis depends on a future voice release. Languages outside these sets (for example Zulu) are not yet served by any endpoint."]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"authentication",icon:q0,part:"Part 1",title:"Authentication"}),c.jsx(ht,{children:"Creating an Account"}),c.jsxs("ol",{className:"space-y-3 my-4 list-none counter-reset-item",children:[c.jsxs("li",{className:"flex items-start gap-3 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-primary-600 text-white text-xs font-semibold shrink-0",children:"1"}),c.jsxs("span",{className:"leading-relaxed",children:["If you don't already have an account, create one at"," ",c.jsxs("a",{href:"https://api.sunbird.ai/register",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline inline-flex items-center gap-1",children:["api.sunbird.ai/register",c.jsx(mr,{size:12})]})]})]}),c.jsxs("li",{className:"flex items-start gap-3 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-primary-600 text-white text-xs font-semibold shrink-0",children:"2"}),c.jsxs("span",{className:"leading-relaxed",children:["Go to the"," ",c.jsxs("a",{href:"https://api.sunbird.ai/keys",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline inline-flex items-center gap-1",children:["tokens page",c.jsx(mr,{size:12})]})," ","to get your access token / API key."]})]})]}),c.jsx(ht,{children:"Using the Authentication API"}),c.jsx(Bt,{children:"Register a New User"}),c.jsx(Pe,{code:uz,language:"python",label:"Python — register"}),c.jsx(Bt,{children:"Get Access Token"}),c.jsx(Pe,{code:dz,language:"python",label:"Python — get token"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"translation",icon:pR,part:"Part 2",title:"Translation (Sunflower Model)"}),c.jsxs(be,{children:["Translate text between 32 Ugandan and East African languages using the Sunflower model. Languages are accepted as ISO 639-3 codes (",c.jsx(J,{children:"lug"}),") or full names (",c.jsx(J,{children:"Luganda"}),"), case-insensitively, and translation works between"," ",c.jsx("strong",{children:"any pair"})," of supported languages. ",c.jsx(J,{children:"source_language"})," is optional — when omitted, Sunflower infers it from the text."]}),c.jsx(Pe,{code:hz,language:"python",label:"Python — translate"}),c.jsx(Bt,{children:"Optional source, full names"}),c.jsxs(be,{children:[c.jsx(J,{children:"source_language"})," is optional, and full language names work too:"]}),c.jsx(Pe,{code:fz,language:"python",label:"Python — target only"}),c.jsx(Bt,{children:"Supported languages (ISO code → name)"}),c.jsx(Pe,{code:pz,language:"python",label:"Python — language codes"}),c.jsx(Bt,{children:"Response"}),c.jsx(be,{children:"The response shape is unchanged from the previous NLLB-backed endpoint:"}),c.jsx(Pe,{code:gz,language:"json",label:"JSON — response"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"speech-to-text",icon:bR,part:"Part 3",title:"Speech-to-Text (STT)"}),c.jsxs(be,{children:["Convert speech audio to text. The unified"," ",c.jsx(J,{children:"POST /tasks/audio/transcriptions"})," endpoint accepts an uploaded audio file (or a GCS object) and routes to the Modal (Whisper large-v3) or RunPod backend. Supports MP3, WAV, M4A, and more."]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Migrating from the legacy STT routes?"})," ",c.jsx(J,{children:"/tasks/modal/stt"}),","," ",c.jsx(J,{children:"/tasks/stt"}),", ",c.jsx(J,{children:"/tasks/stt_from_gcs"}),", and"," ",c.jsx(J,{children:"/tasks/org/stt"})," are ",c.jsx("strong",{children:"deprecated"})," (they still work but return ",c.jsx(J,{children:"Deprecation"}),"/",c.jsx(J,{children:"Sunset"})," headers). Switch to"," ",c.jsx(J,{children:"/tasks/audio/transcriptions"}),"."]}),c.jsx(ht,{children:"Transcribe a file (Modal / Whisper)"}),c.jsxs(be,{children:[c.jsx(J,{children:"language"})," is ",c.jsx("strong",{children:"required"}),"."," ",c.jsx(J,{children:"platform"})," defaults to ",c.jsx(J,{children:"modal"})," (Whisper large-v3)."]}),c.jsx(Pe,{code:mz,language:"python",label:"Python — Modal / Whisper"}),c.jsx(ht,{children:"Transcribe with RunPod (adapter, Whisper, diarization)"}),c.jsxs(be,{children:["The RunPod backend adds a language ",c.jsx(J,{children:"adapter"}),", the"," ",c.jsx(J,{children:"whisper"})," flag, and optional speaker diarization (",c.jsx(J,{children:"recognise_speakers"}),")."]}),c.jsx(Pe,{code:yz,language:"python",label:"Python — RunPod"}),c.jsxs(be,{children:["You can also transcribe audio already in GCS by passing"," ",c.jsx(J,{children:"gcs_blob_name"})," (with ",c.jsx(J,{children:'platform="runpod"'}),") instead of an ",c.jsx(J,{children:"audio"})," file — see ",c.jsx("strong",{children:"Part 7: File Upload"})," for generating upload URLs."]}),c.jsx(Bt,{children:"Example response"}),c.jsx(Pe,{code:xz,language:"json",label:"JSON — response"}),c.jsx(Bt,{children:"Supported languages"}),c.jsx("div",{className:"flex flex-wrap gap-2 my-4",children:oz.map(t=>c.jsxs("div",{className:"px-3 py-1 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 text-xs text-gray-800 dark:text-gray-100",children:[t.name," ",c.jsxs("span",{className:"text-gray-400 font-mono",children:["(",t.code,")"]})]},t.code))}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Note:"})," For files larger than 100MB, only the first 10 minutes will be transcribed."]}),c.jsx(be,{children:"The dictionary below represents the language codes available now for the STT endpoint:"}),c.jsx(Pe,{code:bz,language:"python",label:"Python — Whisper language IDs"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"language-detection",icon:wR,part:"Part 4",title:"Language Detection"}),c.jsx(be,{children:"Automatically detect the language of text input. Useful for routing text to appropriate translation or processing pipelines."}),c.jsx(Pe,{code:vz,language:"python",label:"Python — language ID"}),c.jsx(Bt,{children:"Supported Languages"}),c.jsx(be,{children:"Acholi, Ateso, English, Luganda, Lugbara, Runyankole."})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"text-to-speech",icon:ER,part:"Part 5",title:"Text-to-Speech (TTS)"}),c.jsxs(be,{children:["Synthesize speech from text. The unified ",c.jsx(J,{children:"POST /tasks/audio/speech"})," ","endpoint replaces ",c.jsx(J,{children:"/tasks/modal/tts"}),","," ",c.jsx(J,{children:"/tasks/runpod/tts"}),", and"," ",c.jsx(J,{children:"/tasks/modal/orpheus/tts"}),". Two models are available:"]}),c.jsx(ih,{items:[c.jsxs(c.Fragment,{children:[c.jsx(J,{children:"orpheus-3b-tts"})," (default) — multilingual, multi-speaker; voices are catalog tags (e.g. ",c.jsx(J,{children:"salt_lug_0001"}),"). List them with"," ",c.jsx(J,{children:"GET /tasks/voice/speakers"}),"."]}),c.jsxs(c.Fragment,{children:[c.jsx(J,{children:"spark-tts"})," — the six fixed Ugandan voices below; supports streaming on Modal."]})]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Migrating?"})," The legacy TTS, streaming (",c.jsx(J,{children:"/stream"}),","," ",c.jsx(J,{children:"/stream-with-url"}),"), Orpheus batch, speaker-listing, and"," ",c.jsx(J,{children:"refresh-url"})," endpoints are ",c.jsx("strong",{children:"deprecated"}),". Use the unified endpoints below."]}),c.jsx(ht,{children:"Single synthesis (orpheus-3b-tts, default)"}),c.jsx(Pe,{code:wz,language:"python",label:"Python — orpheus-3b-tts"}),c.jsx(Bt,{children:"orpheus-3b-tts: languages covered"}),c.jsxs(be,{children:["Speaker IDs encode both the source corpus (",c.jsx(J,{children:"salt_*"}),","," ",c.jsx(J,{children:"waxal_*"}),", ",c.jsx(J,{children:"slr32_*"}),","," ",c.jsx(J,{children:"slr129_*"}),", ",c.jsx(J,{children:"bateesa_*"}),") and the language. Languages shown with an em dash in the Speaker IDs column are present in the model's training mix but do not currently expose individual voice IDs in this checkpoint."]}),c.jsx("div",{className:"overflow-x-auto rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Config"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Language"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"ISO 639-1"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Region"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Speaker IDs"})]})}),c.jsx("tbody",{children:iz.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 align-top font-mono text-primary-700 dark:text-primary-400",children:t.config}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-700 dark:text-gray-300 whitespace-nowrap",children:t.language}),c.jsx("td",{className:"px-4 py-3 align-top font-mono text-gray-500 dark:text-gray-400",children:t.iso}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-600 dark:text-gray-400",children:t.region}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-700 dark:text-gray-300",children:t.speakers.length===0?c.jsx("span",{className:"text-gray-400 dark:text-gray-500",children:"—"}):c.jsx("div",{className:"flex flex-wrap gap-1",children:t.speakers.map(r=>c.jsx("code",{className:"px-1.5 py-0.5 rounded-md bg-gray-100 dark:bg-white/10 text-primary-700 dark:text-primary-300 text-xs font-mono",children:r},r))})})]},t.config))})]})}),c.jsxs(be,{children:["Per-language quality scales with the amount of training data Sunbird collected for that language. Audition the voices for each language before relying on a particular speaker — use the discovery snippet under ",c.jsx("strong",{children:"Listing voices"})," below."]}),c.jsx(ht,{children:"Single synthesis (spark-tts, fixed voices)"}),c.jsx(Pe,{code:kz,language:"python",label:"Python — spark-tts"}),c.jsx(Bt,{children:"spark-tts voices"}),c.jsx("div",{className:"overflow-hidden rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Voice name"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"ID"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Description"})]})}),c.jsx("tbody",{children:az.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 font-mono text-primary-700 dark:text-primary-400",children:t.name}),c.jsx("td",{className:"px-4 py-3 font-mono text-gray-700 dark:text-gray-300",children:t.id}),c.jsx("td",{className:"px-4 py-3 text-gray-700 dark:text-gray-300",children:t.description})]},t.id))})]})}),c.jsx(ht,{children:"Response Modes"}),c.jsxs(be,{children:[c.jsx(J,{children:"response_mode"})," applies to ",c.jsx("strong",{children:"spark-tts on Modal"}),":"]}),c.jsx(ih,{items:lz.map(t=>c.jsxs(c.Fragment,{children:[c.jsx(J,{children:t.mode})," — ",t.description]}))}),c.jsx(ht,{children:"Listing voices"}),c.jsx(Pe,{code:Sz,language:"python",label:"Python — list voices"}),c.jsx(ht,{children:"Batch synthesis (orpheus-3b-tts)"}),c.jsx(be,{children:"Synthesize up to 128 items in a single request:"}),c.jsx(Pe,{code:_z,language:"python",label:"Python — batch"}),c.jsx(ht,{children:"Refreshing an expired URL"}),c.jsxs(be,{children:["Signed URLs expire after ~30 minutes. Re-sign a stored object with"," ",c.jsx(J,{children:"GET /tasks/audio/speech/url"}),":"]}),c.jsx(Pe,{code:jz,language:"python",label:"Python — refresh URL"}),c.jsx(Bt,{children:"Example response (POST /tasks/audio/speech)"}),c.jsx(Pe,{code:Cz,language:"json",label:"JSON — response"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"conversational-ai",icon:hf,part:"Part 6",title:"Conversational AI (Sunflower)"}),c.jsxs(be,{children:["The Sunflower model provides conversational AI for 20+ Ugandan languages through an OpenAI-compatible endpoint: ",c.jsx(J,{children:"POST /tasks/chat/completions"}),". The request and response formats mirror the OpenAI Chat Completions API, so you can move between the OpenAI API and the Sunbird API by changing only the base URL and API key."]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Deprecated:"})," ",c.jsx(J,{children:"POST /tasks/sunflower_inference"})," and"," ",c.jsx(J,{children:"POST /tasks/sunflower_simple"})," are deprecated and will be removed in a future release. Use ",c.jsx(J,{children:"POST /tasks/chat/completions"})," instead — a single instruction is just a request with one user message."]}),c.jsx(ht,{children:"Chat Completion"}),c.jsx(Pe,{code:Nz,language:"python",label:"Python — chat completions"}),c.jsx(Bt,{children:"Example Response"}),c.jsx(Pe,{code:Pz,language:"json",label:"JSON — response"}),c.jsx(ht,{children:"Using the OpenAI SDK"}),c.jsx(be,{children:"Because the endpoint is OpenAI-compatible, the official OpenAI Python SDK works out of the box:"}),c.jsx(Pe,{code:Rz,language:"python",label:"Python — OpenAI SDK"}),c.jsx(ht,{children:"Multi-turn Conversations"}),c.jsxs(be,{children:["Maintain context by sending the running message history. You can also set a custom"," ",c.jsx(J,{children:"system"})," message (when omitted, a default Sunflower system message is applied):"]}),c.jsx(Pe,{code:Ez,language:"python",label:"Python — multi-turn"}),c.jsx(ht,{children:"Streaming"}),c.jsxs(be,{children:["Set ",c.jsx(J,{children:'"stream": true'})," to receive Server-Sent Events in OpenAI"," ",c.jsx(J,{children:"chat.completion.chunk"})," format, terminated by"," ",c.jsx(J,{children:"data: [DONE]"}),". With the OpenAI SDK:"]}),c.jsx(Pe,{code:Tz,language:"python",label:"Python — streaming"}),c.jsxs(yi,{children:["Supported request parameters: ",c.jsx(J,{children:"model"})," (only"," ",c.jsx(J,{children:"Sunbird/Sunflower-14B"}),"), ",c.jsx(J,{children:"messages"}),","," ",c.jsx(J,{children:"temperature"})," (0.0–2.0, default 0.3), ",c.jsx(J,{children:"max_tokens"}),","," ",c.jsx(J,{children:"top_p"}),", ",c.jsx(J,{children:"stop"}),", and"," ",c.jsx(J,{children:"stream"}),"."]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"file-upload",icon:NR,part:"Part 7",title:"File Upload (Signed URLs)"}),c.jsx(be,{children:"Generate secure signed URLs for direct client uploads to GCP Storage. Useful for uploading audio files before transcription."}),c.jsx(Pe,{code:Az,language:"python",label:"Python — signed URL upload"}),c.jsx(Bt,{children:"Features"}),c.jsx(ih,{items:cz})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"resources",icon:G0,title:"Additional Resources"}),c.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 my-4",children:[c.jsxs("a",{href:"https://docs.sunbird.ai/introduction",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(Tc,{size:18,className:"text-primary-600 dark:text-primary-400"}),"API Documentation",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"docs.sunbird.ai/introduction"})]}),c.jsxs("a",{href:"https://api.sunbird.ai/openapi.json",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(G0,{size:18,className:"text-primary-600 dark:text-primary-400"}),"OpenAPI Specification",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"api.sunbird.ai/openapi.json"})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/api-reference/introduction",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(K0,{size:18,className:"text-primary-600 dark:text-primary-400"}),"Usage Guide",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"docs.sunbird.ai/api-reference/introduction"})]}),c.jsxs("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/issues",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(hf,{size:18,className:"text-primary-600 dark:text-primary-400"}),"Feedback & Issues",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"github.com/SunbirdAI"})]})]}),c.jsx(ht,{children:"Rate Limiting"}),c.jsx(be,{children:"API endpoints are rate-limited to ensure fair usage. If you need higher rate limits for production use, please contact the Sunbird AI team."}),c.jsx(ht,{children:"Feedback and Questions"}),c.jsxs(be,{children:["Don't hesitate to leave us any feedback or questions by opening an"," ",c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/issues",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline",children:"issue on GitHub"}),"."]})]}),c.jsxs("section",{className:"mt-16 p-8 rounded-3xl bg-gradient-to-br from-primary-50 to-primary-100/40 dark:from-primary-900/20 dark:to-primary-900/5 border border-primary-200 dark:border-primary-900/40",children:[c.jsx("h3",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-2",children:"Ready to build?"}),c.jsx("p",{className:"text-gray-700 dark:text-gray-300 mb-5",children:"Get your access token and start calling the Sunbird AI API in minutes."}),c.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[c.jsxs(Ee,{to:"/register",className:"inline-flex items-center justify-center gap-2 px-6 py-3 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/20",children:["Create Account",c.jsx(df,{size:18})]}),c.jsxs(Ee,{to:"/keys",className:"inline-flex items-center justify-center gap-2 px-6 py-3 rounded-xl bg-white dark:bg-white/5 hover:bg-gray-50 dark:hover:bg-white/10 border border-gray-200 dark:border-white/10 text-gray-900 dark:text-white font-semibold transition-all",children:[c.jsx(q0,{size:18}),"Get API Keys"]})]})]})]})]})]})}),c.jsx($u,{})]})}function rt({title:e,children:t}){return S.useEffect(()=>{document.title=`${e} | Sunbird AI API`},[e]),c.jsx(c.Fragment,{children:t})}function dr({children:e}){const{isAuthenticated:t,isLoading:n}=Qr(),r=ir();return n?c.jsxs("div",{className:"min-h-screen flex items-center justify-center",children:[c.jsx(Da,{size:24,className:"animate-spin mr-2"}),"Loading..."]}):t?e:c.jsx(g1,{to:"/login",state:{from:r},replace:!0})}function Oz(){const{user:e}=Qr();return(e==null?void 0:e.account_type)==="Admin"?c.jsx(g1,{to:"/admin/analytics",replace:!0}):c.jsx(uI,{})}function Dz(){return c.jsxs(VN,{children:[c.jsx(Qe,{path:"/",element:c.jsx(rt,{title:"Home",children:c.jsx(B6,{})})}),c.jsx(Qe,{path:"/login",element:c.jsx(rt,{title:"Login",children:c.jsx(Rb,{})})}),c.jsx(Qe,{path:"/register",element:c.jsx(rt,{title:"Register",children:c.jsx(H6,{})})}),c.jsx(Qe,{path:"/forgot-password",element:c.jsx(rt,{title:"Forgot Password",children:c.jsx(U6,{})})}),c.jsx(Qe,{path:"/reset-password",element:c.jsx(rt,{title:"Reset Password",children:c.jsx(W6,{})})}),c.jsx(Qe,{path:"/privacy_policy",element:c.jsx(rt,{title:"Privacy Policy",children:c.jsx(K6,{})})}),c.jsx(Qe,{path:"/terms_of_service",element:c.jsx(rt,{title:"Terms of Service",children:c.jsx(Y6,{})})}),c.jsx(Qe,{path:"/tutorial",element:c.jsx(rt,{title:"Tutorial",children:c.jsx(Lz,{})})}),c.jsx(Qe,{path:"/setup-organization",element:c.jsx(rt,{title:"Setup Organization",children:c.jsx(Rb,{})})})," ",c.jsx(Qe,{path:"/complete-profile",element:c.jsx(dr,{children:c.jsx(rt,{title:"Complete Profile",children:c.jsx(q6,{})})})}),c.jsx(Qe,{path:"/dashboard",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Dashboard",children:c.jsx(Oz,{})})})})}),c.jsx(Qe,{path:"/keys",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"API Keys",children:c.jsx(d6,{})})})})}),c.jsx(Qe,{path:"/account",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Account Settings",children:c.jsx(f6,{})})})})}),c.jsx(Qe,{path:"/admin/analytics",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Admin Analytics",children:c.jsx(v6,{})})})})}),c.jsx(Qe,{path:"/admin/billing",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Infrastructure Billing",children:c.jsx(P6,{})})})})}),c.jsx(Qe,{path:"/admin/google-analytics",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Google Analytics",children:c.jsx(I6,{})})})})}),c.jsx(Qe,{path:"/admin/engagement-insights",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(rt,{title:"Website & Engagement Funnel",children:c.jsx(V6,{})})})})})]})}function Iz(){return c.jsx(KN,{children:c.jsx(oR,{defaultTheme:"system",storageKey:"sunbird-ui-theme",children:c.jsxs(rR,{children:[c.jsx(Dz,{}),c.jsx(_P,{position:"top-right",richColors:!0})]})})})}lh.createRoot(document.getElementById("root")).render(c.jsx(z.StrictMode,{children:c.jsx(Iz,{})})); + print("File uploaded successfully!")`;function Dz(e){const[t,n]=S.useState(e[0]??"");return S.useEffect(()=>{const r=e.map(o=>document.getElementById(o)).filter(o=>o!==null);if(r.length===0)return;const s=new IntersectionObserver(o=>{const i=o.filter(a=>a.isIntersecting).sort((a,l)=>l.intersectionRatio-a.intersectionRatio);i.length>0&&n(i[0].target.id)},{rootMargin:"-20% 0px -70% 0px",threshold:[0,.25,.5,.75,1]});return r.forEach(o=>s.observe(o)),()=>s.disconnect()},[e]),t}function Rn({id:e,icon:t,part:n,title:r}){return c.jsxs("div",{id:e,className:"scroll-mt-24 mb-6",children:[n&&c.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-primary-600 dark:text-primary-400 mb-2",children:n}),c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("div",{className:"w-10 h-10 rounded-xl bg-primary-50 dark:bg-primary-900/20 flex items-center justify-center text-primary-600 dark:text-primary-400 shrink-0",children:c.jsx(t,{size:20})}),c.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white",children:r})]})]})}function yi({children:e}){return c.jsxs("div",{className:"flex items-start gap-3 p-4 my-4 rounded-xl border border-primary-200 dark:border-primary-900/40 bg-primary-50/60 dark:bg-primary-900/10 text-sm text-gray-700 dark:text-gray-200",children:[c.jsx(sg,{size:18,className:"text-primary-600 dark:text-primary-400 shrink-0 mt-0.5"}),c.jsx("div",{className:"leading-relaxed",children:e})]})}function rt({children:e}){return c.jsx("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white mt-8 mb-3",children:e})}function vt({children:e}){return c.jsx("h4",{className:"text-base font-semibold text-gray-800 dark:text-gray-100 mt-6 mb-2",children:e})}function ge({children:e}){return c.jsx("p",{className:"text-gray-700 dark:text-gray-300 leading-relaxed",children:e})}function Ol({items:e}){return c.jsx("ul",{className:"space-y-2 my-4",children:e.map((t,n)=>c.jsxs("li",{className:"flex items-start gap-2 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full bg-primary-500 shrink-0"}),c.jsx("span",{className:"leading-relaxed",children:t})]},n))})}function G({children:e}){return c.jsx("code",{className:"px-1.5 py-0.5 rounded-md bg-gray-100 dark:bg-white/10 text-primary-700 dark:text-primary-300 text-[0.9em] font-mono",children:e})}function ah({available:e,dagger:t=!1}){return e?c.jsxs("span",{className:"inline-flex items-center gap-0.5 text-green-600 dark:text-green-400",children:[c.jsx(bu,{size:16,"aria-label":"Available"}),t&&c.jsx("sup",{className:"text-amber-600 dark:text-amber-400",children:"†"})]}):c.jsx(ku,{size:16,className:"inline text-gray-300 dark:text-gray-600","aria-label":"Not supported"})}function Iz(){const e=Dz(Wb.map(t=>t.id));return c.jsxs("div",{className:"min-h-screen bg-white dark:bg-black transition-colors duration-300 selection:bg-primary-500 selection:text-white flex flex-col",children:[c.jsx($u,{}),c.jsx("main",{className:"flex-1 pt-24 pb-16 px-4 sm:px-6 lg:px-8",children:c.jsxs("div",{className:"max-w-7xl mx-auto",children:[c.jsxs("div",{className:"max-w-4xl mx-auto text-center mb-12",children:[c.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-300 text-xs font-semibold tracking-wider uppercase mb-4",children:[c.jsx(K0,{size:14}),"Tutorial"]}),c.jsx("h1",{className:"text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight text-gray-900 dark:text-white mb-4",children:"Sunbird AI API Tutorial"}),c.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto leading-relaxed",children:"A comprehensive guide for using the Sunbird AI API with Python code samples — translate, transcribe, synthesize speech, and chat across 30+ African languages."})]}),c.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[240px_minmax(0,1fr)] gap-10",children:[c.jsx("aside",{className:"hidden lg:block",children:c.jsxs("nav",{className:"sticky top-24 py-2",children:[c.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-gray-500 dark:text-gray-400 mb-3 px-3",children:"On this page"}),c.jsx("ul",{className:"space-y-1",children:Wb.map(t=>{const n=e===t.id;return c.jsx("li",{children:c.jsxs("a",{href:`#${t.id}`,className:`block px-3 py-2 rounded-lg text-sm transition-colors border-l-2 ${n?"border-primary-500 text-primary-600 dark:text-primary-400 bg-primary-50 dark:bg-primary-900/10 font-medium":"border-transparent text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-white/5"}`,children:[t.part&&c.jsx("span",{className:"block text-[10px] font-semibold tracking-wider uppercase opacity-70",children:t.part}),t.label]})},t.id)})})]})}),c.jsxs("article",{className:"max-w-3xl space-y-16",children:[c.jsxs("section",{children:[c.jsx(Rn,{id:"overview",icon:hR,title:"Supported Languages"}),c.jsx(ge,{children:"Sunbird AI provides AI services across English and a growing catalog of African languages. Languages are accepted as a 3-letter ISO code or a full language name; translation alone covers 32 languages."}),c.jsxs("div",{className:"flex flex-wrap gap-2 mt-6",children:[rz.map(t=>c.jsxs("div",{className:"px-3 py-1.5 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 text-sm text-gray-800 dark:text-gray-100",children:[t.name," ",c.jsxs("span",{className:"text-gray-400 dark:text-gray-500 font-mono text-xs",children:["(",t.code,")"]})]},t.code)),c.jsx("div",{className:"px-3 py-1.5 rounded-full bg-primary-50 dark:bg-primary-900/20 border border-primary-200 dark:border-primary-900/40 text-sm text-primary-700 dark:text-primary-300 font-medium",children:"+ 20 more"})]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"language-support",icon:yR,title:"Language Support by Endpoint"}),c.jsxs(ge,{children:["Which languages each task endpoint currently serves. ",c.jsx("strong",{children:"Code"})," is the canonical ISO/SALT code the API accepts (full language names also work where an endpoint takes a"," ",c.jsx(G,{children:"language"})," or ",c.jsx(G,{children:"voice"}),"). The"," ",c.jsx(G,{children:"/tasks/chat/completions"})," column reflects the default"," ",c.jsx(G,{children:"sunflower-14b"})," model (English + 31 Ugandan/regional languages), which"," ",c.jsx(G,{children:"/tasks/translate"})," shares. The alternative"," ",c.jsx(G,{children:"sunflower-9b"})," model covers a broader set of 67 African languages — see"," ",c.jsx("a",{href:"#conversational-ai",className:"text-primary-600 dark:text-primary-400 hover:underline",children:"Part 6"})," ","for the per-model breakdown."]}),c.jsx("div",{className:"overflow-x-auto rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Language"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Code"}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Text-to-Speech"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/audio/speech"})]}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Speech-to-Text"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/audio/transcriptions"})]}),c.jsxs("th",{className:"px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:[c.jsx("div",{className:"text-center",children:"Chat"}),c.jsx("div",{className:"text-center font-mono font-normal text-[11px] text-gray-400 dark:text-gray-500",children:"/tasks/chat/completions"})]})]})}),c.jsx("tbody",{children:sz.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 text-gray-700 dark:text-gray-300 whitespace-nowrap",children:t.name}),c.jsx("td",{className:"px-4 py-3 font-mono text-primary-700 dark:text-primary-400",children:t.code}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.speech,dagger:t.ttsVoiceless})}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.transcription})}),c.jsx("td",{className:"px-4 py-3 text-center",children:c.jsx(ah,{available:t.chat})})]},t.code))})]})}),c.jsxs(ge,{children:[c.jsx("strong",{children:"†"})," Lugbara, Sesotho, and Setswana are in the orpheus-3b-tts training mix but currently expose no individual voice IDs, so synthesis depends on a future voice release. Languages outside these sets (for example Zulu) are not yet served by any endpoint."]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"authentication",icon:q0,part:"Part 1",title:"Authentication"}),c.jsx(rt,{children:"Creating an Account"}),c.jsxs("ol",{className:"space-y-3 my-4 list-none counter-reset-item",children:[c.jsxs("li",{className:"flex items-start gap-3 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-primary-600 text-white text-xs font-semibold shrink-0",children:"1"}),c.jsxs("span",{className:"leading-relaxed",children:["If you don't already have an account, create one at"," ",c.jsxs("a",{href:"https://api.sunbird.ai/register",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline inline-flex items-center gap-1",children:["api.sunbird.ai/register",c.jsx(mr,{size:12})]})]})]}),c.jsxs("li",{className:"flex items-start gap-3 text-gray-700 dark:text-gray-300",children:[c.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-primary-600 text-white text-xs font-semibold shrink-0",children:"2"}),c.jsxs("span",{className:"leading-relaxed",children:["Go to the"," ",c.jsxs("a",{href:"https://api.sunbird.ai/keys",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline inline-flex items-center gap-1",children:["tokens page",c.jsx(mr,{size:12})]})," ","to get your access token / API key."]})]})]}),c.jsx(rt,{children:"Using the Authentication API"}),c.jsx(vt,{children:"Register a New User"}),c.jsx(Pe,{code:uz,language:"python",label:"Python — register"}),c.jsx(vt,{children:"Get Access Token"}),c.jsx(Pe,{code:dz,language:"python",label:"Python — get token"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"translation",icon:pR,part:"Part 2",title:"Translation (Sunflower Model)"}),c.jsxs(ge,{children:["Translate text between 32 Ugandan and East African languages using the Sunflower model. Languages are accepted as ISO 639-3 codes (",c.jsx(G,{children:"lug"}),") or full names (",c.jsx(G,{children:"Luganda"}),"), case-insensitively, and translation works between"," ",c.jsx("strong",{children:"any pair"})," of supported languages. ",c.jsx(G,{children:"source_language"})," is optional — when omitted, Sunflower infers it from the text."]}),c.jsx(Pe,{code:hz,language:"python",label:"Python — translate"}),c.jsx(vt,{children:"Optional source, full names"}),c.jsxs(ge,{children:[c.jsx(G,{children:"source_language"})," is optional, and full language names work too:"]}),c.jsx(Pe,{code:fz,language:"python",label:"Python — target only"}),c.jsx(vt,{children:"Supported languages (ISO code → name)"}),c.jsx(Pe,{code:pz,language:"python",label:"Python — language codes"}),c.jsx(vt,{children:"Response"}),c.jsx(ge,{children:"The response shape is unchanged from the previous NLLB-backed endpoint:"}),c.jsx(Pe,{code:gz,language:"json",label:"JSON — response"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"speech-to-text",icon:bR,part:"Part 3",title:"Speech-to-Text (STT)"}),c.jsxs(ge,{children:["Convert speech audio to text. The unified"," ",c.jsx(G,{children:"POST /tasks/audio/transcriptions"})," endpoint accepts an uploaded audio file (or a GCS object) and routes to the Modal (Whisper large-v3) or RunPod backend. Supports MP3, WAV, M4A, and more."]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Migrating from the legacy STT routes?"})," ",c.jsx(G,{children:"/tasks/modal/stt"}),","," ",c.jsx(G,{children:"/tasks/stt"}),", ",c.jsx(G,{children:"/tasks/stt_from_gcs"}),", and"," ",c.jsx(G,{children:"/tasks/org/stt"})," are ",c.jsx("strong",{children:"deprecated"})," (they still work but return ",c.jsx(G,{children:"Deprecation"}),"/",c.jsx(G,{children:"Sunset"})," headers). Switch to"," ",c.jsx(G,{children:"/tasks/audio/transcriptions"}),"."]}),c.jsx(rt,{children:"Transcribe a file (Modal / Whisper)"}),c.jsxs(ge,{children:[c.jsx(G,{children:"language"})," is ",c.jsx("strong",{children:"required"}),"."," ",c.jsx(G,{children:"platform"})," defaults to ",c.jsx(G,{children:"modal"})," (Whisper large-v3)."]}),c.jsx(Pe,{code:mz,language:"python",label:"Python — Modal / Whisper"}),c.jsx(rt,{children:"Transcribe with RunPod (adapter, Whisper, diarization)"}),c.jsxs(ge,{children:["The RunPod backend adds a language ",c.jsx(G,{children:"adapter"}),", the"," ",c.jsx(G,{children:"whisper"})," flag, and optional speaker diarization (",c.jsx(G,{children:"recognise_speakers"}),")."]}),c.jsx(Pe,{code:yz,language:"python",label:"Python — RunPod"}),c.jsxs(ge,{children:["You can also transcribe audio already in GCS by passing"," ",c.jsx(G,{children:"gcs_blob_name"})," (with ",c.jsx(G,{children:'platform="runpod"'}),") instead of an ",c.jsx(G,{children:"audio"})," file — see ",c.jsx("strong",{children:"Part 7: File Upload"})," for generating upload URLs."]}),c.jsx(vt,{children:"Example response"}),c.jsx(Pe,{code:xz,language:"json",label:"JSON — response"}),c.jsx(vt,{children:"Supported languages"}),c.jsx("div",{className:"flex flex-wrap gap-2 my-4",children:oz.map(t=>c.jsxs("div",{className:"px-3 py-1 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 text-xs text-gray-800 dark:text-gray-100",children:[t.name," ",c.jsxs("span",{className:"text-gray-400 font-mono",children:["(",t.code,")"]})]},t.code))}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Note:"})," For files larger than 100MB, only the first 10 minutes will be transcribed."]}),c.jsx(ge,{children:"The dictionary below represents the language codes available now for the STT endpoint:"}),c.jsx(Pe,{code:bz,language:"python",label:"Python — Whisper language IDs"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"language-detection",icon:wR,part:"Part 4",title:"Language Detection"}),c.jsx(ge,{children:"Automatically detect the language of text input. Useful for routing text to appropriate translation or processing pipelines."}),c.jsx(Pe,{code:vz,language:"python",label:"Python — language ID"}),c.jsx(vt,{children:"Supported Languages"}),c.jsx(ge,{children:"Acholi, Ateso, English, Luganda, Lugbara, Runyankole."})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"text-to-speech",icon:ER,part:"Part 5",title:"Text-to-Speech (TTS)"}),c.jsxs(ge,{children:["Synthesize speech from text. The unified ",c.jsx(G,{children:"POST /tasks/audio/speech"})," ","endpoint replaces ",c.jsx(G,{children:"/tasks/modal/tts"}),","," ",c.jsx(G,{children:"/tasks/runpod/tts"}),", and"," ",c.jsx(G,{children:"/tasks/modal/orpheus/tts"}),". Two models are available:"]}),c.jsx(Ol,{items:[c.jsxs(c.Fragment,{children:[c.jsx(G,{children:"orpheus-3b-tts"})," (default) — multilingual, multi-speaker; voices are catalog tags (e.g. ",c.jsx(G,{children:"salt_lug_0001"}),"). List them with"," ",c.jsx(G,{children:"GET /tasks/voice/speakers"}),"."]}),c.jsxs(c.Fragment,{children:[c.jsx(G,{children:"spark-tts"})," — the six fixed Ugandan voices below; supports streaming on Modal."]})]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Migrating?"})," The legacy TTS, streaming (",c.jsx(G,{children:"/stream"}),","," ",c.jsx(G,{children:"/stream-with-url"}),"), Orpheus batch, speaker-listing, and"," ",c.jsx(G,{children:"refresh-url"})," endpoints are ",c.jsx("strong",{children:"deprecated"}),". Use the unified endpoints below."]}),c.jsx(rt,{children:"Single synthesis (orpheus-3b-tts, default)"}),c.jsx(Pe,{code:wz,language:"python",label:"Python — orpheus-3b-tts"}),c.jsx(vt,{children:"orpheus-3b-tts: languages covered"}),c.jsxs(ge,{children:["Speaker IDs encode both the source corpus (",c.jsx(G,{children:"salt_*"}),","," ",c.jsx(G,{children:"waxal_*"}),", ",c.jsx(G,{children:"slr32_*"}),","," ",c.jsx(G,{children:"slr129_*"}),", ",c.jsx(G,{children:"bateesa_*"}),") and the language. Languages shown with an em dash in the Speaker IDs column are present in the model's training mix but do not currently expose individual voice IDs in this checkpoint."]}),c.jsx("div",{className:"overflow-x-auto rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Config"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Language"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"ISO 639-1"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Region"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Speaker IDs"})]})}),c.jsx("tbody",{children:iz.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 align-top font-mono text-primary-700 dark:text-primary-400",children:t.config}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-700 dark:text-gray-300 whitespace-nowrap",children:t.language}),c.jsx("td",{className:"px-4 py-3 align-top font-mono text-gray-500 dark:text-gray-400",children:t.iso}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-600 dark:text-gray-400",children:t.region}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-700 dark:text-gray-300",children:t.speakers.length===0?c.jsx("span",{className:"text-gray-400 dark:text-gray-500",children:"—"}):c.jsx("div",{className:"flex flex-wrap gap-1",children:t.speakers.map(r=>c.jsx("code",{className:"px-1.5 py-0.5 rounded-md bg-gray-100 dark:bg-white/10 text-primary-700 dark:text-primary-300 text-xs font-mono",children:r},r))})})]},t.config))})]})}),c.jsxs(ge,{children:["Per-language quality scales with the amount of training data Sunbird collected for that language. Audition the voices for each language before relying on a particular speaker — use the discovery snippet under ",c.jsx("strong",{children:"Listing voices"})," below."]}),c.jsx(rt,{children:"Single synthesis (spark-tts, fixed voices)"}),c.jsx(Pe,{code:kz,language:"python",label:"Python — spark-tts"}),c.jsx(vt,{children:"spark-tts voices"}),c.jsx("div",{className:"overflow-hidden rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Voice name"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"ID"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Description"})]})}),c.jsx("tbody",{children:az.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsx("td",{className:"px-4 py-3 font-mono text-primary-700 dark:text-primary-400",children:t.name}),c.jsx("td",{className:"px-4 py-3 font-mono text-gray-700 dark:text-gray-300",children:t.id}),c.jsx("td",{className:"px-4 py-3 text-gray-700 dark:text-gray-300",children:t.description})]},t.id))})]})}),c.jsx(rt,{children:"Response Modes"}),c.jsxs(ge,{children:[c.jsx(G,{children:"response_mode"})," applies to ",c.jsx("strong",{children:"spark-tts on Modal"}),":"]}),c.jsx(Ol,{items:lz.map(t=>c.jsxs(c.Fragment,{children:[c.jsx(G,{children:t.mode})," — ",t.description]}))}),c.jsx(rt,{children:"Listing voices"}),c.jsx(Pe,{code:Sz,language:"python",label:"Python — list voices"}),c.jsx(rt,{children:"Batch synthesis (orpheus-3b-tts)"}),c.jsx(ge,{children:"Synthesize up to 128 items in a single request:"}),c.jsx(Pe,{code:_z,language:"python",label:"Python — batch"}),c.jsx(rt,{children:"Refreshing an expired URL"}),c.jsxs(ge,{children:["Signed URLs expire after ~30 minutes. Re-sign a stored object with"," ",c.jsx(G,{children:"GET /tasks/audio/speech/url"}),":"]}),c.jsx(Pe,{code:jz,language:"python",label:"Python — refresh URL"}),c.jsx(vt,{children:"Example response (POST /tasks/audio/speech)"}),c.jsx(Pe,{code:Cz,language:"json",label:"JSON — response"})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"conversational-ai",icon:hf,part:"Part 6",title:"Conversational AI (Sunflower)"}),c.jsxs(ge,{children:["The Sunflower models provide conversational AI for African languages through an OpenAI-compatible endpoint: ",c.jsx(G,{children:"POST /tasks/chat/completions"}),". The request and response formats mirror the OpenAI Chat Completions API, so you can move between the OpenAI API and the Sunbird API by changing only the base URL and API key."]}),c.jsxs(yi,{children:[c.jsx("strong",{children:"Deprecated:"})," ",c.jsx(G,{children:"POST /tasks/sunflower_inference"})," and"," ",c.jsx(G,{children:"POST /tasks/sunflower_simple"})," are deprecated and will be removed in a future release. Use ",c.jsx(G,{children:"POST /tasks/chat/completions"})," instead — a single instruction is just a request with one user message."]}),c.jsx(rt,{children:"Choosing a model"}),c.jsxs(ge,{children:["Select a model with the ",c.jsx(G,{children:"model"})," field. Two models are available;"," ",c.jsx(G,{children:"sunflower-14b"})," is the default when ",c.jsx(G,{children:"model"})," is omitted. The old ",c.jsx(G,{children:"Sunbird/Sunflower-14B"})," identifier is no longer accepted — sending it returns a ",c.jsx(G,{children:"400"})," error asking you to use"," ",c.jsx(G,{children:"sunflower-14b"})," instead."]}),c.jsx("div",{className:"overflow-x-auto rounded-2xl border border-gray-200 dark:border-white/10 my-4",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"bg-gray-50 dark:bg-white/5",children:c.jsxs("tr",{children:[c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"model"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Coverage"}),c.jsx("th",{className:"text-left px-4 py-3 font-semibold text-gray-700 dark:text-gray-200",children:"Best for"})]})}),c.jsx("tbody",{children:Az.map((t,n)=>c.jsxs("tr",{className:n%2===0?"bg-white dark:bg-transparent":"bg-gray-50/50 dark:bg-white/[0.02]",children:[c.jsxs("td",{className:"px-4 py-3 align-top font-mono text-primary-700 dark:text-primary-400 whitespace-nowrap",children:[t.model,t.isDefault&&c.jsx("span",{className:"ml-2 text-[10px] font-sans font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500",children:"default"})]}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-700 dark:text-gray-300",children:t.coverage}),c.jsx("td",{className:"px-4 py-3 align-top text-gray-600 dark:text-gray-400",children:t.bestFor})]},t.model))})]})}),c.jsx(vt,{children:"sunflower-14b — supported languages"}),c.jsx(ge,{children:"English plus 31 Ugandan and regional languages (32 total):"}),c.jsx("div",{className:"flex flex-wrap gap-2 my-4",children:Mz.map(t=>c.jsxs("div",{className:"px-3 py-1 rounded-full bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 text-xs text-gray-800 dark:text-gray-100",children:[t.name," ",c.jsxs("span",{className:"text-gray-400 font-mono",children:["(",t.code,")"]})]},t.code))}),c.jsx(vt,{children:"sunflower-9b — supported languages"}),c.jsx(ge,{children:"67 African languages, grouped by the model's understanding tier (per-language quality scales with available training data):"}),c.jsx(Ol,{items:Lz.map(t=>c.jsxs(c.Fragment,{children:[c.jsxs("strong",{children:[t.tier,":"]})," ",t.languages,"."]}))}),c.jsxs(ge,{children:["Full evaluations and language codes are on the model pages:"," ",c.jsx("a",{href:"https://salt.sunbird.ai/models/sunflower-14b",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline",children:"sunflower-14b"})," ","and"," ",c.jsx("a",{href:"https://salt.sunbird.ai/models/sunflower-qwen3.5-9b/",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline",children:"sunflower-qwen3.5-9b"}),"."]}),c.jsx(rt,{children:"Chat Completion"}),c.jsx(Pe,{code:Nz,language:"python",label:"Python — chat completions"}),c.jsx(vt,{children:"Example Response"}),c.jsx(Pe,{code:Pz,language:"json",label:"JSON — response"}),c.jsx(rt,{children:"Using the OpenAI SDK"}),c.jsx(ge,{children:"Because the endpoint is OpenAI-compatible, the official OpenAI Python SDK works out of the box:"}),c.jsx(Pe,{code:Rz,language:"python",label:"Python — OpenAI SDK"}),c.jsx(rt,{children:"Multi-turn Conversations"}),c.jsxs(ge,{children:["Maintain context by sending the running message history. You can also set a custom"," ",c.jsx(G,{children:"system"})," message (when omitted, a default Sunflower system message is applied):"]}),c.jsx(Pe,{code:Ez,language:"python",label:"Python — multi-turn"}),c.jsx(rt,{children:"Streaming"}),c.jsxs(ge,{children:["Set ",c.jsx(G,{children:'"stream": true'})," to receive Server-Sent Events in OpenAI"," ",c.jsx(G,{children:"chat.completion.chunk"})," format, terminated by"," ",c.jsx(G,{children:"data: [DONE]"}),". With the OpenAI SDK:"]}),c.jsx(Pe,{code:Tz,language:"python",label:"Python — streaming"}),c.jsxs(yi,{children:["Supported request parameters: ",c.jsx(G,{children:"model"})," (",c.jsx(G,{children:"sunflower-14b"})," or ",c.jsx(G,{children:"sunflower-9b"}),"; the old"," ",c.jsx(G,{children:"Sunbird/Sunflower-14B"})," identifier is no longer accepted),"," ",c.jsx(G,{children:"messages"}),", ",c.jsx(G,{children:"temperature"})," (0.0–2.0, default 0.3),"," ",c.jsx(G,{children:"max_tokens"}),", ",c.jsx(G,{children:"top_p"}),", ",c.jsx(G,{children:"stop"}),", and ",c.jsx(G,{children:"stream"}),"."]})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"file-upload",icon:NR,part:"Part 7",title:"File Upload (Signed URLs)"}),c.jsx(ge,{children:"Generate secure signed URLs for direct client uploads to GCP Storage. Useful for uploading audio files before transcription."}),c.jsx(Pe,{code:Oz,language:"python",label:"Python — signed URL upload"}),c.jsx(vt,{children:"Features"}),c.jsx(Ol,{items:cz})]}),c.jsxs("section",{children:[c.jsx(Rn,{id:"resources",icon:G0,title:"Additional Resources"}),c.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 my-4",children:[c.jsxs("a",{href:"https://docs.sunbird.ai/introduction",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(Ac,{size:18,className:"text-primary-600 dark:text-primary-400"}),"API Documentation",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"docs.sunbird.ai/introduction"})]}),c.jsxs("a",{href:"https://api.sunbird.ai/openapi.json",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(G0,{size:18,className:"text-primary-600 dark:text-primary-400"}),"OpenAPI Specification",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"api.sunbird.ai/openapi.json"})]}),c.jsxs("a",{href:"https://docs.sunbird.ai/api-reference/introduction",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(K0,{size:18,className:"text-primary-600 dark:text-primary-400"}),"Usage Guide",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"docs.sunbird.ai/api-reference/introduction"})]}),c.jsxs("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/issues",target:"_blank",rel:"noopener noreferrer",className:"group p-5 rounded-2xl bg-white dark:bg-white/5 border border-gray-200 dark:border-white/10 hover:border-primary-500 dark:hover:border-primary-500 transition-all hover:shadow-lg",children:[c.jsxs("div",{className:"flex items-center gap-2 text-gray-900 dark:text-white font-semibold mb-1",children:[c.jsx(hf,{size:18,className:"text-primary-600 dark:text-primary-400"}),"Feedback & Issues",c.jsx(mr,{size:14,className:"text-gray-400 group-hover:text-primary-500 transition-colors"})]}),c.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-mono",children:"github.com/SunbirdAI"})]})]}),c.jsx(rt,{children:"Rate Limiting"}),c.jsx(ge,{children:"API endpoints are rate-limited to ensure fair usage. If you need higher rate limits for production use, please contact the Sunbird AI team."}),c.jsx(rt,{children:"Feedback and Questions"}),c.jsxs(ge,{children:["Don't hesitate to leave us any feedback or questions by opening an"," ",c.jsx("a",{href:"https://github.com/SunbirdAI/sunbird-ai-api/issues",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 dark:text-primary-400 hover:underline",children:"issue on GitHub"}),"."]})]}),c.jsxs("section",{className:"mt-16 p-8 rounded-3xl bg-gradient-to-br from-primary-50 to-primary-100/40 dark:from-primary-900/20 dark:to-primary-900/5 border border-primary-200 dark:border-primary-900/40",children:[c.jsx("h3",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-2",children:"Ready to build?"}),c.jsx("p",{className:"text-gray-700 dark:text-gray-300 mb-5",children:"Get your access token and start calling the Sunbird AI API in minutes."}),c.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[c.jsxs(Ee,{to:"/register",className:"inline-flex items-center justify-center gap-2 px-6 py-3 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/20",children:["Create Account",c.jsx(df,{size:18})]}),c.jsxs(Ee,{to:"/keys",className:"inline-flex items-center justify-center gap-2 px-6 py-3 rounded-xl bg-white dark:bg-white/5 hover:bg-gray-50 dark:hover:bg-white/10 border border-gray-200 dark:border-white/10 text-gray-900 dark:text-white font-semibold transition-all",children:[c.jsx(q0,{size:18}),"Get API Keys"]})]})]})]})]})]})}),c.jsx(Hu,{})]})}function st({title:e,children:t}){return S.useEffect(()=>{document.title=`${e} | Sunbird AI API`},[e]),c.jsx(c.Fragment,{children:t})}function dr({children:e}){const{isAuthenticated:t,isLoading:n}=Qr(),r=ir();return n?c.jsxs("div",{className:"min-h-screen flex items-center justify-center",children:[c.jsx(Da,{size:24,className:"animate-spin mr-2"}),"Loading..."]}):t?e:c.jsx(g1,{to:"/login",state:{from:r},replace:!0})}function Fz(){const{user:e}=Qr();return(e==null?void 0:e.account_type)==="Admin"?c.jsx(g1,{to:"/admin/analytics",replace:!0}):c.jsx(uI,{})}function zz(){return c.jsxs(VN,{children:[c.jsx(Qe,{path:"/",element:c.jsx(st,{title:"Home",children:c.jsx(B6,{})})}),c.jsx(Qe,{path:"/login",element:c.jsx(st,{title:"Login",children:c.jsx(Rb,{})})}),c.jsx(Qe,{path:"/register",element:c.jsx(st,{title:"Register",children:c.jsx(H6,{})})}),c.jsx(Qe,{path:"/forgot-password",element:c.jsx(st,{title:"Forgot Password",children:c.jsx(U6,{})})}),c.jsx(Qe,{path:"/reset-password",element:c.jsx(st,{title:"Reset Password",children:c.jsx(W6,{})})}),c.jsx(Qe,{path:"/privacy_policy",element:c.jsx(st,{title:"Privacy Policy",children:c.jsx(K6,{})})}),c.jsx(Qe,{path:"/terms_of_service",element:c.jsx(st,{title:"Terms of Service",children:c.jsx(Y6,{})})}),c.jsx(Qe,{path:"/tutorial",element:c.jsx(st,{title:"Tutorial",children:c.jsx(Iz,{})})}),c.jsx(Qe,{path:"/setup-organization",element:c.jsx(st,{title:"Setup Organization",children:c.jsx(Rb,{})})})," ",c.jsx(Qe,{path:"/complete-profile",element:c.jsx(dr,{children:c.jsx(st,{title:"Complete Profile",children:c.jsx(q6,{})})})}),c.jsx(Qe,{path:"/dashboard",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Dashboard",children:c.jsx(Fz,{})})})})}),c.jsx(Qe,{path:"/keys",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"API Keys",children:c.jsx(d6,{})})})})}),c.jsx(Qe,{path:"/account",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Account Settings",children:c.jsx(f6,{})})})})}),c.jsx(Qe,{path:"/admin/analytics",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Admin Analytics",children:c.jsx(v6,{})})})})}),c.jsx(Qe,{path:"/admin/billing",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Infrastructure Billing",children:c.jsx(P6,{})})})})}),c.jsx(Qe,{path:"/admin/google-analytics",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Google Analytics",children:c.jsx(I6,{})})})})}),c.jsx(Qe,{path:"/admin/engagement-insights",element:c.jsx(dr,{children:c.jsx(ts,{children:c.jsx(st,{title:"Website & Engagement Funnel",children:c.jsx(V6,{})})})})})]})}function Vz(){return c.jsx(KN,{children:c.jsx(oR,{defaultTheme:"system",storageKey:"sunbird-ui-theme",children:c.jsxs(rR,{children:[c.jsx(zz,{}),c.jsx(_P,{position:"top-right",richColors:!0})]})})})}lh.createRoot(document.getElementById("root")).render(c.jsx(z.StrictMode,{children:c.jsx(Vz,{})})); diff --git a/app/static/react_build/index.html b/app/static/react_build/index.html index 1ab8f0b8..8a378d06 100644 --- a/app/static/react_build/index.html +++ b/app/static/react_build/index.html @@ -5,8 +5,8 @@ Sunbird AI API - - + +
diff --git a/app/tests/test_routers/test_chat.py b/app/tests/test_routers/test_chat.py index ec4af621..c6c335e2 100644 --- a/app/tests/test_routers/test_chat.py +++ b/app/tests/test_routers/test_chat.py @@ -32,7 +32,7 @@ class TestChatSchemas: def test_request_defaults(self) -> None: req = ChatCompletionRequest(messages=[{"role": "user", "content": "Hello"}]) - assert req.model == "Sunbird/Sunflower-14B" + assert req.model == "sunflower-14b" assert req.temperature == 0.3 assert req.stream is False assert req.max_tokens is None @@ -40,7 +40,30 @@ def test_request_defaults(self) -> None: assert req.stop is None def test_supported_models_constant(self) -> None: - assert SUPPORTED_MODELS == ("Sunbird/Sunflower-14B",) + assert SUPPORTED_MODELS == ( + "sunflower-14b", + "sunflower-9b", + ) + + def test_resolve_model_accepts_short_names(self) -> None: + from app.schemas.chat import resolve_model + + assert resolve_model("sunflower-14b") == "sunflower-14b" + assert resolve_model("sunflower-9b") == "sunflower-9b" + + def test_resolve_model_rejects_deprecated_alias(self) -> None: + from app.schemas.chat import RENAMED_MODELS, resolve_model + + # The old identifier is no longer resolvable, but is recorded as a + # renamed model so the router can point clients at the new name. + assert resolve_model("Sunbird/Sunflower-14B") is None + assert RENAMED_MODELS["Sunbird/Sunflower-14B"] == "sunflower-14b" + + def test_resolve_model_unknown_returns_none(self) -> None: + from app.schemas.chat import resolve_model + + assert resolve_model("gpt-4o") is None + assert resolve_model("sunflower-gemma-2b") is None def test_request_rejects_empty_messages(self) -> None: with pytest.raises(PydanticValidationError): @@ -156,7 +179,7 @@ async def test_successful_completion_openai_shape( assert data["object"] == "chat.completion" assert data["id"].startswith("chatcmpl-") assert isinstance(data["created"], int) - assert data["model"] == "Sunbird/Sunflower-14B" + assert data["model"] == "sunflower-14b" assert data["choices"][0]["index"] == 0 assert data["choices"][0]["message"]["role"] == "assistant" assert ( @@ -248,7 +271,7 @@ async def test_unknown_model_rejected_with_400( headers={"Authorization": f"Bearer {test_user['token']}"}, ) assert response.status_code == 400 - assert "Sunbird/Sunflower-14B" in response.json()["message"] + assert "sunflower-14b" in response.json()["message"] override_service.run_inference.assert_not_called() async def test_empty_messages_rejected_with_422( @@ -356,6 +379,82 @@ async def test_params_forwarded_to_service( assert kwargs["top_p"] == 0.8 assert kwargs["stop"] == ["###"] + async def test_model_routed_to_service( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + override_service.run_inference.return_value = SAMPLE_RESULT + await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-9b", + "messages": [{"role": "user", "content": "Hello"}], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert ( + override_service.run_inference.call_args.kwargs["model_type"] + == "sunflower-9b" + ) + + async def test_deprecated_alias_rejected_with_400( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "Sunbird/Sunflower-14B", + "messages": [{"role": "user", "content": "Hello"}], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 400 + message = response.json()["message"] + assert "Sunbird/Sunflower-14B" in message + assert "sunflower-14b" in message + override_service.run_inference.assert_not_called() + + async def test_gemma_model_rejected_with_400( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-gemma-2b", + "messages": [{"role": "user", "content": "Hello"}], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 400 + override_service.run_inference.assert_not_called() + + async def test_list_content_rejected_with_422( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-14b", + "messages": [ + {"role": "user", "content": [{"type": "text", "text": "hi"}]} + ], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 422 + override_service.run_inference.assert_not_called() + async def _read_sse_events(response) -> list: """Collect SSE `data:` payloads from a streaming httpx response.""" @@ -417,7 +516,7 @@ async def test_streaming_sse_chunks( assert len(ids) == 1 assert ids.pop().startswith("chatcmpl-") assert all(c["object"] == "chat.completion.chunk" for c in chunks) - assert all(c["model"] == "Sunbird/Sunflower-14B" for c in chunks) + assert all(c["model"] == "sunflower-14b" for c in chunks) # First chunk primes the assistant role assert chunks[0]["choices"][0]["delta"]["role"] == "assistant" diff --git a/app/tests/test_routers/test_translation.py b/app/tests/test_routers/test_translation.py index 652d0aed..cb9bc99a 100644 --- a/app/tests/test_routers/test_translation.py +++ b/app/tests/test_routers/test_translation.py @@ -222,7 +222,9 @@ async def record_feedback(*args, **kwargs): assert response.status_code == 200 assert len(calls) == 1 - assert calls[0]["model_type"] == "Sunbird/Sunflower-14B" + # DEFAULT_MODEL now holds the resolved canonical model key + # ("sunflower-14b"), not the legacy upstream model name string. + assert calls[0]["model_type"] == "sunflower-14b" assert calls[0]["inference_type"] == "translation" diff --git a/app/tests/test_services/test_inference_service.py b/app/tests/test_services/test_inference_service.py index 96c93d89..d31acbdc 100644 --- a/app/tests/test_services/test_inference_service.py +++ b/app/tests/test_services/test_inference_service.py @@ -89,7 +89,7 @@ def test_sunflower_and_qwen_aliases_share_endpoint(self) -> None: == service.endpoints["qwen"]["endpoint_id"] == "EP-123" ) - assert service.endpoints["sunflower"]["model_name"] == "Sunbird/Sunflower-14B" + assert service.endpoints["sunflower"]["model_name"] == "sunflower-14b" def test_sunflower_endpoint_id_preferred_over_qwen(self) -> None: """SUNFLOWER_ENDPOINT_ID wins over the legacy QWEN_ENDPOINT_ID.""" @@ -122,6 +122,25 @@ def test_legacy_qwen_endpoint_id_kwarg_still_works(self) -> None: assert service.sunflower_endpoint_id == "kw-ep" assert service.endpoints["qwen"]["endpoint_id"] == "kw-ep" + def test_endpoints_include_all_public_models(self, monkeypatch) -> None: + monkeypatch.setenv("SUNFLOWER_9B_ENDPOINT_ID", "ep-9b") + service = InferenceService() + assert "sunflower-14b" in service.endpoints + assert "sunflower-9b" in service.endpoints + assert "sunflower-gemma-2b" not in service.endpoints + assert service.endpoints["sunflower-9b"]["endpoint_id"] == "ep-9b" + + def test_9b_default_upstream_model_name(self) -> None: + service = InferenceService() + assert service.endpoints["sunflower-9b"]["model_name"] == "sunflower-9b" + + def test_legacy_keys_still_present(self) -> None: + service = InferenceService() + # Legacy internal keys still map to the 14B config, which sends the + # short upstream served name the endpoint expects. + assert service.endpoints["qwen"]["model_name"] == "sunflower-14b" + assert service.endpoints["sunflower-14b"]["model_name"] == "sunflower-14b" + class TestPydanticModels: """Tests for Pydantic request/response models.""" diff --git a/coverage.svg b/coverage.svg index a4bc7847..6dd35eeb 100644 --- a/coverage.svg +++ b/coverage.svg @@ -1 +1 @@ -coverage: 71.84%coverage71.84% \ No newline at end of file +coverage: 71.88%coverage71.88% \ No newline at end of file diff --git a/docs/sunflower-multi-models.md b/docs/sunflower-multi-models.md new file mode 100644 index 00000000..141b1283 --- /dev/null +++ b/docs/sunflower-multi-models.md @@ -0,0 +1,144 @@ +# Sunflower Models on RunPod Serverless — Usage & Operations Guide + +Sunbird AI's two Sunflower models served with **vLLM** on **RunPod Serverless** +(queue-based, scale-to-zero) with full **OpenAI-client compatibility**. + +| Model | HF checkpoint | Endpoint id | Served name (`model=`) | GPU pool | +| --- | --- | --- | --- | --- | +| Sunflower 14B | `Sunbird/Sunflower-14B` | `f4qvczc8rce33x` | `sunflower-14b` | 48 GB (A40) | +| Sunflower 9B | `Sunbird/Sunflower-Qwen3.5-9B` | `pzkf59qwe8ruvh` | `sunflower-9b` | 48 GB (A40) | + +- **Base URL per model:** `https://api.runpod.ai/v2//openai/v1` +- **API key:** your **RunPod API key** (not an OpenAI key) +- All endpoints scale to zero: idle cost is $0; the first request after idle + **cold-starts** a worker (~2–4 min — see [Cold starts](#cold-starts)). +- Both models are **text-only**. + +--- + +## 1. Using the endpoints with the OpenAI client + +### Setup + +```bash +pip install openai python-dotenv +``` + +```bash +# .env +RUNPOD_API_KEY=rpa_... +EP_SUNFLOWER_14B=ucplyhim9v5zrs +EP_SUNFLOWER_QWEN35_9B=pzkf59qwe8ruvh +``` + +```python +import os +from openai import OpenAI +from dotenv import load_dotenv + +load_dotenv() + +def client_for(endpoint_id: str) -> OpenAI: + return OpenAI( + api_key=os.environ["RUNPOD_API_KEY"], + base_url=f"https://api.runpod.ai/v2/{endpoint_id}/openai/v1", + ) + +client = client_for(os.environ["EP_SUNFLOWER_14B"]) +``` + +JavaScript works identically: + +```javascript +import { OpenAI } from "openai"; + +const client = new OpenAI({ + apiKey: process.env.RUNPOD_API_KEY, + baseURL: `https://api.runpod.ai/v2/${process.env.EP_SUNFLOWER_14B}/openai/v1`, +}); +``` + +### List served models + +```python +print([m.id for m in client.models.list()]) # ['sunflower-14b'] +``` + +### Chat + +```python +SYSTEM_PROMPT = ( + "You are Sunflower, a helpful assistant made by Sunbird AI who knows many " + "African languages." +) + +resp = client.chat.completions.create( + model="sunflower-14b", + messages=[ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", "content": "Oli otya!"}, + ], + max_tokens=200, + temperature=0.3, +) +print(resp.choices[0].message.content) +``` + +### Streaming + +```python +stream = client.chat.completions.create( + model="sunflower-14b", + messages=[{"role": "user", "content": "Mwasuze mutya!"}], + max_tokens=200, + stream=True, +) +for chunk in stream: + if chunk.choices and chunk.choices[0].delta.content: + print(chunk.choices[0].delta.content, end="", flush=True) +``` + +### Translation + +```python +def translate(client, model, text, source, target): + r = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", + "content": f"Translate the following {source} text to {target}, " + f"reply with only the translation:\n\n{text}"}, + ], + max_tokens=256, temperature=0.3, + ) + return r.choices[0].message.content + +translate(client, "sunflower-14b", "Where is the nearest hospital?", "English", "Luganda") +# -> "Eddwaliro erisingayo okuba okumpi liri ludda wa?" +``` + +--- + +## 2. Using via the Sunbird API + +Instead of calling RunPod directly, clients can go through Sunbird's own +`POST /tasks/chat/completions` endpoint (JWT/API-key auth, quota-enforced, +OpenAI-compatible request/response shape). Select a model with the `model` +field: + +```python +resp = sunbird_client.chat.completions.create( + model="sunflower-14b", # or "sunflower-9b" + messages=[{"role": "user", "content": "Oli otya!"}], +) +``` + +- **Supported values:** `sunflower-14b`, `sunflower-9b`. Any other value + returns `400 Bad Request`. +- **Legacy alias:** `Sunbird/Sunflower-14B` is still accepted and resolves to + `sunflower-14b` (the default model when `model` is omitted), so existing + integrations keep working unchanged. +- **Text only:** message `content` is a plain string. Non-string content + (e.g. a list of parts) is rejected at request validation with + `422 Unprocessable Entity`. diff --git a/docs/superpowers/plans/2026-07-21-chat-completions-multi-models.md b/docs/superpowers/plans/2026-07-21-chat-completions-multi-models.md new file mode 100644 index 00000000..aca38af9 --- /dev/null +++ b/docs/superpowers/plans/2026-07-21-chat-completions-multi-models.md @@ -0,0 +1,751 @@ +# Chat Completions Multi-Model Support Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Extend `POST /tasks/chat/completions` from one hardcoded model to three Sunflower models (each on its own RunPod endpoint), adding base64 audio input for the Gemma model. + +**Architecture:** A capability registry in `app/schemas/chat.py` (public model names, aliases, audio support) is the source of truth for validation. `InferenceService` builds a multi-entry endpoint map (endpoint IDs + upstream served names from env) for routing. The router resolves the requested model through the registry, validates audio capability, and passes the canonical name to the service. + +**Tech Stack:** FastAPI, Pydantic v2, OpenAI Python SDK (pointed at RunPod), pytest. + +## Global Constraints + +- Endpoint changes are limited to `/tasks/chat/completions`. Do not modify other routers/services. +- Public model names: `sunflower-14b` (default), `sunflower-9b`, `sunflower-gemma-2b`. Alias `Sunbird/Sunflower-14B` → `sunflower-14b`. +- Audio (`input_audio`, base64) is accepted **only** for `sunflower-gemma-2b`. +- Reject with `400` (`BadRequestError`): audio on a non-Gemma model; `audio_url`/`image_url`; unknown content-part types; unknown model. +- No server-side audio chunking (no ffmpeg). Audio is passed through; the ≤30s limit is documented only. +- Quota/billing unchanged. Legacy internal model keys `"qwen"` and `"sunflower"` must keep working (translation service + existing tests use them) and keep upstream model name `Sunbird/Sunflower-14B`. +- Endpoint IDs / upstream served names come from env vars (`os.getenv`), matching the existing `InferenceService` pattern. +- After each task: `pytest app/tests/ -v` for touched tests must pass; run `make lint-check` before the final commit. + +--- + +### Task 1: Multi-model schema — constants, aliases, resolvers, audio content parts + +**Files:** +- Modify: `app/schemas/chat.py` +- Test: `app/tests/test_routers/test_chat.py` (class `TestChatSchemas`) + +**Interfaces:** +- Consumes: nothing from other tasks. +- Produces: + - `SUPPORTED_MODELS: tuple[str, ...]` = `("sunflower-14b", "sunflower-9b", "sunflower-gemma-2b")` + - `DEFAULT_MODEL: str` = `"sunflower-14b"` + - `MODEL_ALIASES: dict[str, str]` = `{"Sunbird/Sunflower-14B": "sunflower-14b"}` + - `resolve_model(name: str) -> Optional[str]` — canonical name or `None` + - `model_supports_audio(name: str) -> bool` + - `ChatMessage.content: Union[str, List[ContentPart]]` where `ContentPart = Union[TextContentPart, InputAudioContentPart]` + +- [ ] **Step 1: Update existing schema unit tests to the new constants/defaults** + +In `app/tests/test_routers/test_chat.py`, change these existing assertions: + +```python + def test_request_defaults(self) -> None: + req = ChatCompletionRequest(messages=[{"role": "user", "content": "Hello"}]) + assert req.model == "sunflower-14b" + assert req.temperature == 0.3 + assert req.stream is False + assert req.max_tokens is None + assert req.top_p is None + assert req.stop is None + + def test_supported_models_constant(self) -> None: + assert SUPPORTED_MODELS == ( + "sunflower-14b", + "sunflower-9b", + "sunflower-gemma-2b", + ) +``` + +- [ ] **Step 2: Add new schema unit tests (still in `TestChatSchemas`)** + +```python + def test_resolve_model_accepts_short_names(self) -> None: + from app.schemas.chat import resolve_model + + assert resolve_model("sunflower-14b") == "sunflower-14b" + assert resolve_model("sunflower-9b") == "sunflower-9b" + assert resolve_model("sunflower-gemma-2b") == "sunflower-gemma-2b" + + def test_resolve_model_applies_alias(self) -> None: + from app.schemas.chat import resolve_model + + assert resolve_model("Sunbird/Sunflower-14B") == "sunflower-14b" + + def test_resolve_model_unknown_returns_none(self) -> None: + from app.schemas.chat import resolve_model + + assert resolve_model("gpt-4o") is None + + def test_model_supports_audio(self) -> None: + from app.schemas.chat import model_supports_audio + + assert model_supports_audio("sunflower-gemma-2b") is True + assert model_supports_audio("sunflower-14b") is False + assert model_supports_audio("Sunbird/Sunflower-14B") is False + assert model_supports_audio("unknown") is False + + def test_message_accepts_audio_content_parts(self) -> None: + msg = ChatMessage( + role="user", + content=[ + {"type": "text", "text": "Transcribe this"}, + {"type": "input_audio", "input_audio": {"data": "QUJD", "format": "mp3"}}, + ], + ) + assert isinstance(msg.content, list) + assert msg.content[1].type == "input_audio" + assert msg.content[1].input_audio.format == "mp3" + + def test_message_rejects_audio_url_part(self) -> None: + with pytest.raises(PydanticValidationError): + ChatMessage( + role="user", + content=[{"type": "audio_url", "audio_url": {"url": "http://x/a.mp3"}}], + ) + + def test_message_rejects_image_url_part(self) -> None: + with pytest.raises(PydanticValidationError): + ChatMessage( + role="user", + content=[{"type": "image_url", "image_url": {"url": "http://x/a.png"}}], + ) + + def test_message_rejects_unknown_part_type(self) -> None: + with pytest.raises(PydanticValidationError): + ChatMessage(role="user", content=[{"type": "video", "video": {}}]) + + def test_message_rejects_empty_content_list(self) -> None: + with pytest.raises(PydanticValidationError): + ChatMessage(role="user", content=[]) +``` + +- [ ] **Step 3: Run the schema tests to verify they fail** + +Run: `pytest app/tests/test_routers/test_chat.py::TestChatSchemas -v` +Expected: FAIL — new symbols not importable / new defaults not yet applied. + +- [ ] **Step 4: Rewrite the model constants and message schema in `app/schemas/chat.py`** + +Replace the constants block (currently lines 16-20) with: + +```python +# Public model names accepted in the `model` field, and per-model audio support. +_MODEL_AUDIO_SUPPORT = { + "sunflower-14b": False, + "sunflower-9b": False, + "sunflower-gemma-2b": True, +} +SUPPORTED_MODELS = tuple(_MODEL_AUDIO_SUPPORT.keys()) + +DEFAULT_MODEL = "sunflower-14b" + +# Backward-compatible aliases: legacy public name -> canonical model. +MODEL_ALIASES = {"Sunbird/Sunflower-14B": "sunflower-14b"} + +# Content-part types accepted inside a multimodal message. +_ALLOWED_PART_TYPES = {"text", "input_audio"} + + +def resolve_model(name: str) -> Optional[str]: + """Resolve a requested model name to its canonical name, applying aliases. + + Returns None if the model is not recognised. + """ + if name in _MODEL_AUDIO_SUPPORT: + return name + return MODEL_ALIASES.get(name) + + +def model_supports_audio(name: str) -> bool: + """Whether the requested model (after alias resolution) accepts audio input.""" + canonical = resolve_model(name) + return bool(canonical and _MODEL_AUDIO_SUPPORT[canonical]) +``` + +- [ ] **Step 5: Add content-part models and rewrite `ChatMessage` in `app/schemas/chat.py`** + +Replace the current `ChatMessage` class (lines 23-36) with: + +```python +class TextContentPart(BaseModel): + """A text segment of a multimodal message.""" + + type: Literal["text"] + text: str + + +class InputAudio(BaseModel): + """Base64-encoded audio payload (OpenAI `input_audio` shape).""" + + data: str = Field(..., description="Base64-encoded audio bytes") + format: str = Field(..., description="Audio format, e.g. 'mp3' or 'wav'") + + +class InputAudioContentPart(BaseModel): + """An audio segment of a multimodal message.""" + + type: Literal["input_audio"] + input_audio: InputAudio + + +ContentPart = Union[TextContentPart, InputAudioContentPart] + + +class ChatMessage(BaseModel): + """A single message in the conversation, OpenAI format. + + ``content`` is either a plain string or a list of content parts. Only + text and base64 ``input_audio`` parts are accepted; remote ``audio_url`` + / ``image_url`` parts and unknown types are rejected. + """ + + role: Literal["system", "user", "assistant"] = Field( + ..., description="Message role" + ) + content: Union[str, List[ContentPart]] = Field( + ..., description="Message content: text string or list of content parts" + ) + + @field_validator("content", mode="before") + @classmethod + def validate_content(cls, value: Any) -> Any: + if isinstance(value, str): + if not value.strip(): + raise ValueError("content cannot be empty") + return value + if isinstance(value, list): + if not value: + raise ValueError("content list cannot be empty") + for part in value: + if isinstance(part, dict): + part_type = part.get("type") + else: + part_type = getattr(part, "type", None) + if part_type in ("audio_url", "image_url"): + raise ValueError( + f"'{part_type}' is not supported. Embed audio as base64 " + "'input_audio'; remote URLs and images are not accepted." + ) + if part_type not in _ALLOWED_PART_TYPES: + raise ValueError( + f"Unsupported content part type '{part_type}'. Supported " + f"types: {', '.join(sorted(_ALLOWED_PART_TYPES))}." + ) + return value + raise ValueError("content must be a string or a list of content parts") +``` + +Update the imports at the top of the file to include what these use: + +```python +from typing import Any, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, field_validator +``` + +Update the module `__all__` list to add: `"DEFAULT_MODEL"` (already present), `"MODEL_ALIASES"`, `"resolve_model"`, `"model_supports_audio"`, `"TextContentPart"`, `"InputAudio"`, `"InputAudioContentPart"`, `"ContentPart"`. + +- [ ] **Step 6: Run the schema tests to verify they pass** + +Run: `pytest app/tests/test_routers/test_chat.py::TestChatSchemas -v` +Expected: PASS (all schema tests). + +- [ ] **Step 7: Commit** + +```bash +git add app/schemas/chat.py app/tests/test_routers/test_chat.py +git commit -m "feat(chat): multi-model constants, aliases, and audio content parts" +``` + +--- + +### Task 2: InferenceService multi-endpoint registry + +**Files:** +- Modify: `app/services/inference_service.py:479-527` (the `__init__` endpoint setup) +- Test: `app/tests/test_services/test_inference_service.py` + +**Interfaces:** +- Consumes: nothing from Task 1 (kept independent — service uses its own env-driven map). +- Produces: `InferenceService().endpoints` dict with keys `"sunflower-14b"`, `"sunflower-9b"`, `"sunflower-gemma-2b"`, plus legacy `"sunflower"` and `"qwen"`. Each value: `{"endpoint_id": str | None, "model_name": str}`. `run_inference(..., model_type=)` and `run_inference_stream(..., model_type=)` route by these keys (existing code, unchanged). + +- [ ] **Step 1: Add failing tests for the new endpoint entries** + +In `app/tests/test_services/test_inference_service.py`, add: + +```python + def test_endpoints_include_all_public_models(self, monkeypatch) -> None: + monkeypatch.setenv("SUNFLOWER_9B_ENDPOINT_ID", "ep-9b") + monkeypatch.setenv("SUNFLOWER_GEMMA_2B_ENDPOINT_ID", "ep-gemma") + service = InferenceService() + assert "sunflower-14b" in service.endpoints + assert "sunflower-9b" in service.endpoints + assert "sunflower-gemma-2b" in service.endpoints + assert service.endpoints["sunflower-9b"]["endpoint_id"] == "ep-9b" + assert service.endpoints["sunflower-gemma-2b"]["endpoint_id"] == "ep-gemma" + + def test_gemma_default_upstream_model_name(self) -> None: + service = InferenceService() + assert ( + service.endpoints["sunflower-gemma-2b"]["model_name"] + == "sunflower-gemma-2b" + ) + + def test_legacy_keys_still_present(self) -> None: + service = InferenceService() + assert service.endpoints["qwen"]["model_name"] == "Sunbird/Sunflower-14B" + assert service.endpoints["sunflower-14b"]["model_name"] == "Sunbird/Sunflower-14B" +``` + +(Use the file's existing import of `InferenceService`; `monkeypatch` is a built-in pytest fixture.) + +- [ ] **Step 2: Run the new tests to verify they fail** + +Run: `pytest app/tests/test_services/test_inference_service.py -k "endpoints_include_all_public_models or gemma_default_upstream or legacy_keys_still_present" -v` +Expected: FAIL — `KeyError` on `"sunflower-9b"` / `"sunflower-gemma-2b"`. + +- [ ] **Step 3: Rewrite the endpoint setup in `InferenceService.__init__`** + +Replace the block that currently builds `self.sunflower_endpoint_id`, `self.qwen_endpoint_id`, `sunflower_config`, and `self.endpoints` (lines ~497-518) with: + +```python + # Prefer the new SUNFLOWER_14B_ENDPOINT_ID; fall back to the legacy + # SUNFLOWER_ENDPOINT_ID / QWEN_ENDPOINT_ID so existing production + # environments keep working with no config change. + self.sunflower_endpoint_id = ( + sunflower_endpoint_id + or qwen_endpoint_id + or os.getenv("SUNFLOWER_14B_ENDPOINT_ID") + or os.getenv("SUNFLOWER_ENDPOINT_ID") + or os.getenv("QWEN_ENDPOINT_ID") + ) + # Backward-compatible attribute alias (some callers/tests read this). + self.qwen_endpoint_id = self.sunflower_endpoint_id + + self.sunflower_9b_endpoint_id = os.getenv("SUNFLOWER_9B_ENDPOINT_ID") + self.gemma_2b_endpoint_id = os.getenv("SUNFLOWER_GEMMA_2B_ENDPOINT_ID") + + # Upstream served model names (the `model=` value vLLM expects). + # Configurable per endpoint; defaults preserve current production + # behavior for 14B and follow docs/sunflower-multi-models.md otherwise. + sunflower_14b_model_name = os.getenv( + "SUNFLOWER_14B_MODEL_NAME", "Sunbird/Sunflower-14B" + ) + sunflower_9b_model_name = os.getenv( + "SUNFLOWER_9B_MODEL_NAME", "sunflower-9b" + ) + gemma_2b_model_name = os.getenv( + "SUNFLOWER_GEMMA_2B_MODEL_NAME", "sunflower-gemma-2b" + ) + + sunflower_14b_config = { + "endpoint_id": self.sunflower_endpoint_id, + "model_name": sunflower_14b_model_name, + } + self.endpoints = { + "sunflower-14b": sunflower_14b_config, + "sunflower-9b": { + "endpoint_id": self.sunflower_9b_endpoint_id, + "model_name": sunflower_9b_model_name, + }, + "sunflower-gemma-2b": { + "endpoint_id": self.gemma_2b_endpoint_id, + "model_name": gemma_2b_model_name, + }, + # Legacy internal aliases -> 14B (translation service, older + # callers, and OpenAI clients sending model="qwen"). + "sunflower": sunflower_14b_config, + "qwen": sunflower_14b_config, + } +``` + +Leave the two `if not self.runpod_api_key` / `if not self.sunflower_endpoint_id` warning blocks that follow unchanged. + +- [ ] **Step 4: Run the inference-service tests to verify they pass** + +Run: `pytest app/tests/test_services/test_inference_service.py -v` +Expected: PASS (new tests plus the existing `endpoints` / alias tests at lines 47, 85-92, 123). + +- [ ] **Step 5: Commit** + +```bash +git add app/services/inference_service.py app/tests/test_services/test_inference_service.py +git commit -m "feat(inference): route 9B and Gemma endpoints via multi-model map" +``` + +--- + +### Task 3: Router — model routing, audio capability validation, list content, feedback sanitization + +**Files:** +- Modify: `app/routers/chat.py` +- Test: `app/tests/test_routers/test_chat.py` + +**Interfaces:** +- Consumes: `resolve_model`, `model_supports_audio`, `SUPPORTED_MODELS` from `app/schemas/chat.py` (Task 1); `InferenceService.endpoints` keys from Task 2. +- Produces: request routing where `run_inference` / `run_inference_stream` receive `model_type=`; `400` on audio-to-text-model and unknown models; sanitized messages passed to `save_api_inference`. + +- [ ] **Step 1: Update existing router tests that assumed a single model** + +In `app/tests/test_routers/test_chat.py`, change these existing assertions: + +```python + # in test_successful_completion_openai_shape (request omits `model`) + assert data["model"] == "sunflower-14b" +``` + +```python + # in test_unknown_model_rejected_with_400 + assert "sunflower-14b" in response.json()["message"] +``` + +```python + # in test_streaming_sse_chunks (request omits `model`) + assert all(c["model"] == "sunflower-14b" for c in chunks) +``` + +- [ ] **Step 2: Add failing router tests for routing, audio capability, and alias** + +Add these tests inside `class TestChatCompletionsEndpoint`: + +```python + async def test_model_routed_to_service( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + override_service.run_inference.return_value = SAMPLE_RESULT + await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-9b", + "messages": [{"role": "user", "content": "Hello"}], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert override_service.run_inference.call_args.kwargs["model_type"] == "sunflower-9b" + + async def test_alias_routes_to_14b( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + override_service.run_inference.return_value = SAMPLE_RESULT + await async_client.post( + "/tasks/chat/completions", + json={ + "model": "Sunbird/Sunflower-14B", + "messages": [{"role": "user", "content": "Hello"}], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert override_service.run_inference.call_args.kwargs["model_type"] == "sunflower-14b" + + async def test_audio_accepted_on_gemma( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + override_service.run_inference.return_value = SAMPLE_RESULT + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-gemma-2b", + "messages": [ + { + "role": "user", + "content": [ + {"type": "input_audio", + "input_audio": {"data": "QUJD", "format": "mp3"}}, + {"type": "text", "text": "Transcribe this"}, + ], + } + ], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 200 + assert override_service.run_inference.call_args.kwargs["model_type"] == "sunflower-gemma-2b" + + async def test_audio_rejected_on_text_model( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-14b", + "messages": [ + { + "role": "user", + "content": [ + {"type": "input_audio", + "input_audio": {"data": "QUJD", "format": "mp3"}}, + ], + } + ], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 400 + assert "sunflower-gemma-2b" in response.json()["message"] + override_service.run_inference.assert_not_called() + + async def test_remote_audio_url_rejected_with_422( + self, + async_client: AsyncClient, + test_user: Dict, + override_service: MagicMock, + ) -> None: + response = await async_client.post( + "/tasks/chat/completions", + json={ + "model": "sunflower-gemma-2b", + "messages": [ + { + "role": "user", + "content": [ + {"type": "audio_url", + "audio_url": {"url": "http://x/a.mp3"}}, + ], + } + ], + }, + headers={"Authorization": f"Bearer {test_user['token']}"}, + ) + assert response.status_code == 422 + override_service.run_inference.assert_not_called() +``` + +Note: `audio_url` is rejected by Pydantic schema validation (Task 1) → `422`; audio-on-text-model is a router capability check → `400`. + +- [ ] **Step 3: Run the new router tests to verify they fail** + +Run: `pytest app/tests/test_routers/test_chat.py::TestChatCompletionsEndpoint -k "routed_to_service or alias_routes or audio" -v` +Expected: FAIL — router still hardcodes `model_type="qwen"` and has no audio check. + +- [ ] **Step 4: Update imports and model validation in `app/routers/chat.py`** + +Change the schema import block (lines 35-45) to add the resolvers: + +```python +from app.schemas.chat import ( + SUPPORTED_MODELS, + ChatCompletionChoice, + ChatCompletionChunk, + ChatCompletionChunkChoice, + ChatCompletionChunkDelta, + ChatCompletionRequest, + ChatCompletionResponse, + ChatCompletionResponseMessage, + ChatCompletionUsage, + model_supports_audio, + resolve_model, +) +``` + +Delete the `INTERNAL_MODEL_TYPE = "qwen"` constant (lines 59-61). + +Replace `_validate_model` (lines 82-90) with: + +```python +def _validate_model(chat_request: ChatCompletionRequest) -> None: + """Reject models not in the registry (short names + backward-compat alias).""" + if resolve_model(chat_request.model) is None: + raise BadRequestError( + message=( + f"Model '{chat_request.model}' is not supported. " + f"Supported models: {', '.join(SUPPORTED_MODELS)}" + ) + ) + + +def _message_has_audio(chat_request: ChatCompletionRequest) -> bool: + """True if any message carries an input_audio content part.""" + for message in chat_request.messages: + if isinstance(message.content, list): + for part in message.content: + if getattr(part, "type", None) == "input_audio": + return True + return False + + +def _validate_audio_capability(chat_request: ChatCompletionRequest) -> None: + """Audio is only accepted by models whose registry flags it.""" + if _message_has_audio(chat_request) and not model_supports_audio( + chat_request.model + ): + raise BadRequestError( + message=( + "Audio input is only supported on 'sunflower-gemma-2b'. " + f"Model '{chat_request.model}' does not accept audio." + ) + ) +``` + +- [ ] **Step 5: Handle list content in `_prepare_messages` and add feedback sanitization** + +Replace `_prepare_messages` (lines 69-79) with: + +```python +def _prepare_messages(chat_request: ChatCompletionRequest) -> List[Dict[str, Any]]: + """Convert request messages to dicts, injecting the default system message + when the client did not provide one (mirrors the legacy endpoints). + + String content is stripped; list content (multimodal parts) is serialized + to plain dicts for the OpenAI SDK. + """ + messages: List[Dict[str, Any]] = [] + for message in chat_request.messages: + if isinstance(message.content, str): + content: Any = message.content.strip() + else: + content = [part.model_dump() for part in message.content] + messages.append({"role": message.role, "content": content}) + + if not any(m["role"] == "system" for m in messages): + messages.insert( + 0, {"role": "system", "content": InferenceService.SYSTEM_MESSAGE} + ) + return messages + + +def _sanitize_messages_for_logging( + messages: List[Dict[str, Any]], +) -> List[Dict[str, Any]]: + """Strip base64 audio blobs before feedback logging to avoid bloating the + payload; keep the structure and format for analytics.""" + sanitized: List[Dict[str, Any]] = [] + for message in messages: + content = message.get("content") + if isinstance(content, list): + parts: List[Any] = [] + for part in content: + if isinstance(part, dict) and part.get("type") == "input_audio": + fmt = (part.get("input_audio") or {}).get("format", "unknown") + parts.append( + { + "type": "input_audio", + "input_audio": {"data": f"", "format": fmt}, + } + ) + else: + parts.append(part) + sanitized.append({"role": message["role"], "content": parts}) + else: + sanitized.append(message) + return sanitized +``` + +- [ ] **Step 6: Wire validation and routing into the endpoint handler** + +In `chat_completions` (lines 99-130), after `_validate_model(chat_request)` add the audio check: + +```python + await check_quota(quota, db, current_user) + _validate_model(chat_request) + _validate_audio_capability(chat_request) + messages = _prepare_messages(chat_request) +``` + +In `_create_chat_completion`, replace the `model_type=INTERNAL_MODEL_TYPE` argument (line 147) by resolving the model first. At the top of the function body add: + +```python + model_key = resolve_model(chat_request.model) +``` + +and change the service call argument to `model_type=model_key`. Then change the feedback task (lines 191-199) to log sanitized messages: + +```python + background_tasks.add_task( + save_api_inference, + _sanitize_messages_for_logging(messages), + content, + user, + model_type=chat_request.model, + processing_time=total_time, + inference_type=INFERENCE_TYPES["chat_completions"], + ) +``` + +In `_stream_chat_completion`, replace `model_type=INTERNAL_MODEL_TYPE` (line 383) with a resolved key. Add near the top of the function: + +```python + model_key = resolve_model(chat_request.model) +``` + +and pass `model_type=model_key` to `service.run_inference_stream`. Then change the `_save_stream_feedback` task registration (lines 394-401) to pass sanitized messages: + +```python + background_tasks.add_task( + _save_stream_feedback, + _sanitize_messages_for_logging(messages), + accumulated, + user, + chat_request.model, + start_time, + ) +``` + +Confirm `Any` is already imported from `typing` at the top of `chat.py` (it is, line 23). + +- [ ] **Step 7: Run the full chat test module to verify it passes** + +Run: `pytest app/tests/test_routers/test_chat.py -v` +Expected: PASS (updated existing tests + all new routing/audio tests). + +- [ ] **Step 8: Commit** + +```bash +git add app/routers/chat.py app/tests/test_routers/test_chat.py +git commit -m "feat(chat): route requests per model and validate audio capability" +``` + +--- + +### Task 4: Full suite, lint, and docs + +**Files:** +- Modify: `docs/sunflower-multi-models.md` (add a short "Using via the Sunbird API" note) — optional if time-boxed; keep the ≤30s audio caveat visible. +- Test: entire suite. + +- [ ] **Step 1: Run the full test suite** + +Run: `pytest app/tests/ -v` +Expected: PASS. Pay attention to `test_inference_service.py`, `test_inference_streaming.py`, `test_translation_service.py`, and `test_inference.py` — they exercise `model_type="qwen"` / the legacy keys, which must still resolve. + +- [ ] **Step 2: Fix any regressions** + +If a legacy test fails because it referenced the old single-model default, reconcile it against the Global Constraints (legacy `"qwen"`/`"sunflower"` keys must still map to the 14B config with model name `Sunbird/Sunflower-14B`). Do not weaken the new behavior to satisfy an outdated assertion — update the assertion if and only if it asserted the old default model string. + +- [ ] **Step 3: Lint** + +Run: `make lint-check` +Expected: no black/isort/flake8 issues. If needed: `make lint-apply` then re-run `make lint-check`. + +- [ ] **Step 4: Document the audio limit and model list** + +In `docs/sunflower-multi-models.md`, add a short note that via the Sunbird API (`/tasks/chat/completions`) clients select a model with `model="sunflower-14b" | "sunflower-9b" | "sunflower-gemma-2b"`, that `Sunbird/Sunflower-14B` remains accepted as an alias, and that audio (base64 `input_audio`, Gemma only) must be ≤30s per clip and is passed through without server-side chunking. + +- [ ] **Step 5: Commit** + +```bash +git add -A +git commit -m "docs(chat): document multi-model selection and audio limits" +``` + +--- + +## Self-Review Notes + +- **Spec coverage:** Registry (Task 1), config env vars (Task 2), schema multimodal content (Task 1), router routing + capability checks + list content (Task 3), feedback sanitization (Task 3), tests (Tasks 1-4), legacy-key preservation (Task 2 + Task 4). Ops confirmation of endpoint IDs / served names is a deploy-time step surfaced by `SUNFLOWER_*_MODEL_NAME` env overrides. +- **Naming consistency:** `resolve_model`, `model_supports_audio`, `_message_has_audio`, `_validate_audio_capability`, `_sanitize_messages_for_logging`, endpoint keys `sunflower-14b` / `sunflower-9b` / `sunflower-gemma-2b` used identically across tasks. +- **Backward compatibility:** Alias `Sunbird/Sunflower-14B`, legacy `"qwen"`/`"sunflower"` service keys, and the 14B upstream name `Sunbird/Sunflower-14B` are all preserved, so existing clients, the translation service, and existing service tests keep working. diff --git a/docs/superpowers/specs/2026-07-21-chat-completions-multi-models-design.md b/docs/superpowers/specs/2026-07-21-chat-completions-multi-models-design.md new file mode 100644 index 00000000..9c77729d --- /dev/null +++ b/docs/superpowers/specs/2026-07-21-chat-completions-multi-models-design.md @@ -0,0 +1,200 @@ +# Chat Completions Multi-Model Support — Design + +**Date:** 2026-07-21 +**Status:** Implemented, then amended (see below) +**Scope:** `POST /tasks/chat/completions` only + +> **Amendment (2026-07-21, pre-deployment):** Sunflower Gemma 2B and all audio +> support were removed before deployment by product decision. The endpoint now +> serves only the two text models `sunflower-14b` (default) and `sunflower-9b`. +> Everything below describing `sunflower-gemma-2b`, `input_audio` content parts, +> the audio-capability check, and feedback audio-sanitization is **historical** +> and no longer reflects the shipped code. Multi-model routing and the legacy +> internal `qwen`/`sunflower` keys remain. The public `Sunbird/Sunflower-14B` +> alias was **also removed**: it is no longer accepted and now returns a `400` +> telling the client to use `sunflower-14b`. Finally, the **upstream** served +> `model=` name sent to the RunPod/vLLM endpoints defaults to the short names +> (`sunflower-14b`, `sunflower-9b`) to match each endpoint's +> `--served-model-name` — the earlier `Sunbird/Sunflower-14B` default caused +> `404 "The model ... does not exist"` at the worker. Override per endpoint with +> `SUNFLOWER_14B_MODEL_NAME` / `SUNFLOWER_9B_MODEL_NAME` if a deployment differs. + +## Summary + +Extend the OpenAI-compatible chat completions endpoint from a single hardcoded +model to three Sunflower models, each served by its own RunPod serverless +endpoint. Add base64 audio input for the multimodal Gemma model. Keep the +endpoint OpenAI-compatible and backward-compatible with existing clients. + +### Models + +| Public model name (`model=`) | Upstream served name | RunPod endpoint (env var) | Audio | +| --- | --- | --- | --- | +| `sunflower-14b` (default) | `sunflower-14b` | `SUNFLOWER_14B_ENDPOINT_ID` (falls back to `SUNFLOWER_ENDPOINT_ID` / `QWEN_ENDPOINT_ID`) | No | +| `sunflower-9b` | `sunflower-9b` | `SUNFLOWER_9B_ENDPOINT_ID` | No | +| `sunflower-gemma-2b` | `sunflower-gemma-2b` | `SUNFLOWER_GEMMA_2B_ENDPOINT_ID` | Yes | + +**Alias:** `Sunbird/Sunflower-14B` → `sunflower-14b` (backward compatibility for +existing clients). + +> **Ops note:** The reference doc (`docs/sunflower-multi-models.md`) lists +> conflicting endpoint IDs (table vs. `.env` sample) and the current production +> endpoint may serve the 14B model under the name `Sunbird/Sunflower-14B` +> rather than `sunflower-14b`. The real endpoint IDs and the exact upstream +> served `model=` name for each endpoint must be confirmed against the deployed +> RunPod endpoints during implementation. Both are configuration values, not +> code assumptions. + +## Decisions (confirmed) + +1. **Multimodal scope:** text everywhere; **base64 `input_audio` only on + `sunflower-gemma-2b`**. No vision/images. +2. **Model naming:** accept short served names; keep `Sunbird/Sunflower-14B` as + an alias to the default. +3. **Quota/billing:** unchanged — all models share the existing + chat-completions quota and feedback logging. +4. **Audio ≤30s cap:** pass client audio straight through to RunPod (no + server-side ffmpeg chunking). Document the limit; audio over 30s fails + upstream. +5. **Audio on a text-only model:** reject with `400` (`BadRequestError`). +6. **Remote `audio_url` / `image_url`:** rejected because the RunPod worker's + outbound fetch is blocked, so only base64 `input_audio` is accepted. + *(Implementation note: this is enforced at the Pydantic schema layer, so the + actual status code is `422 Unprocessable Entity`, not `400`. The + audio-on-a-text-model check is a router-level `400`.)* + +## Architecture + +Request flow is unchanged: + +``` +POST /tasks/chat/completions + -> chat.py (validate model + content, resolve alias) + -> InferenceService.run_inference / run_inference_stream (route to endpoint) + -> RunPod OpenAI-compatible API +``` + +The key change is replacing the single hardcoded model (`INTERNAL_MODEL_TYPE = +"qwen"`) with model resolution driven by a shared **model registry**. + +### 1. Model registry (single source of truth) + +A small registry is the authority for model metadata, consumed by **both** the +router (validation) and `InferenceService` (routing) so the two never drift. + +Each entry provides: +- `endpoint_id` — resolved from environment (see §2). +- `upstream_model_name` — the `model=` value sent to the RunPod vLLM endpoint. +- `supports_audio` — capability flag (only `sunflower-gemma-2b` is `True`). + +Plus: +- An **alias map**: `{"Sunbird/Sunflower-14B": "sunflower-14b"}`. +- `resolve_model(name) -> canonical_name | None` — applies aliases, returns the + canonical public name or `None` if unknown. +- `get_config(canonical_name) -> entry` — endpoint/served-name/capability lookup. + +Location: a lightweight helper (e.g. `app/schemas/chat.py` constants or a small +`model_registry` module). Endpoint IDs are read at registry construction time +via `os.getenv`, matching the existing `InferenceService` pattern. + +### 2. Configuration + +New environment variables, read the same way `InferenceService` reads endpoint +IDs today (`os.getenv`): + +- `SUNFLOWER_14B_ENDPOINT_ID` — falls back to the existing + `SUNFLOWER_ENDPOINT_ID` / `QWEN_ENDPOINT_ID` so current production keeps + working with no config change. +- `SUNFLOWER_9B_ENDPOINT_ID` +- `SUNFLOWER_GEMMA_2B_ENDPOINT_ID` + +A model whose endpoint ID is unset is still registered but will fail clearly +when invoked (consistent with today's behavior for a missing endpoint ID). + +### 3. Schema (`app/schemas/chat.py`) + +- `SUPPORTED_MODELS` → `("sunflower-14b", "sunflower-9b", "sunflower-gemma-2b")`. +- `DEFAULT_MODEL = "sunflower-14b"`. +- `ChatMessage.content: Union[str, List[ContentPart]]` where a content part is + one of: + - **text**: `{"type": "text", "text": str}` + - **input_audio**: `{"type": "input_audio", "input_audio": {"data": , "format": str}}` +- A validator **rejects** `audio_url`, `image_url`, and any unknown part type + with a clear message naming what is supported. +- Plain `str` content continues to work unchanged (existing clients unaffected). + +### 4. Router (`app/routers/chat.py`) + +- Remove the hardcoded `INTERNAL_MODEL_TYPE = "qwen"`. +- `_validate_model`: resolve the requested model via the registry (short names + + alias). Unknown model → `400` listing supported models. +- **Capability check:** if any message contains audio content and the resolved + model is not `sunflower-gemma-2b` → `BadRequestError` (`400`) with a message + stating audio is only supported on `sunflower-gemma-2b`. +- `_prepare_messages`: handle both `str` and list content. Only `.strip()` + string content; leave content parts intact. Default system-message injection + is unchanged (still keyed on `role == "system"`). +- Pass the **resolved canonical model name** as `model_type` to + `run_inference` / `run_inference_stream` (replacing the constant). +- The response `model` field echoes the model the client requested (existing + behavior: `chat_request.model`). + +### 5. Inference service (`app/services/inference_service.py`) + +- Build `self.endpoints` from the registry so all three models are routable. + `_get_client`, `run_inference`, and `run_inference_stream` already key off + `model_type` and send `model=config["model_name"]`; they work once the + registry populates multiple entries with the correct `upstream_model_name`. +- Keep the `"qwen"` / `"sunflower"` internal keys working (translation service + and legacy callers still use them) — mapped to the 14B config. +- List content passes straight through the OpenAI SDK (`messages` are forwarded + as-is). Output cleaning (`_clean_response`, `ThinkTagFilter`) is unaffected — + model output is still text. + +### 6. Feedback logging + +`save_api_inference` JSON-serializes the entire messages array. Base64 audio +blobs would bloat and get stored in the feedback payload. Before scheduling the +background feedback task, **sanitize messages**: replace each `input_audio` +part's `data` with a compact placeholder (e.g. `""`), +preserving structure for analytics without the raw blob. Applies to both the +non-streaming and streaming paths. + +## Error handling + +| Condition | Result | +| --- | --- | +| Unknown / unsupported model | `400` listing supported models | +| Audio content on a non-Gemma model | `400` — audio only on `sunflower-gemma-2b` | +| Remote `audio_url` / `image_url` | `422` (schema-level) — only base64 `input_audio` supported | +| Unknown content part type | `422` (schema-level) — supported part types listed | +| Audio > 30s | Passed through; fails upstream (documented limit) | +| Model loading / timeout / upstream errors | Unchanged (existing retry + mapped responses) | + +## Testing (`app/tests/test_routers/test_chat.py`) + +New tests: +- Routing to each of the three models reaches the correct endpoint config. +- Alias `Sunbird/Sunflower-14B` resolves to `sunflower-14b`. +- Default model (`model` omitted) → `sunflower-14b`. +- Audio content accepted on `sunflower-gemma-2b` (mocked inference). +- Audio content on `sunflower-14b` / `sunflower-9b` → `400`. +- Remote `audio_url` / `image_url` → `400`. +- Unknown model → `400`. +- Feedback sanitization drops raw base64 audio data. + +Existing string-content and streaming tests must remain green. + +## Out of scope + +- Vision / image input. +- Server-side audio chunking (ffmpeg). +- Per-model quota or billing differentiation. +- Changes to any endpoint other than `/tasks/chat/completions`. + +## Definition of Done + +- `pytest app/tests/ -v` passes (new + existing). +- `make lint-check` passes. +- Reference doc endpoint IDs / served names confirmed against deployed + endpoints (ops). diff --git a/docs/tutorial.md b/docs/tutorial.md index 7966acce..3b4ec689 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -21,8 +21,11 @@ names also work where an endpoint takes a `language` or `voice`). - **`/tasks/audio/speech`** — text-to-speech (orpheus-3b-tts voice catalog). - **`/tasks/audio/transcriptions`** — speech-to-text (Whisper language IDs). -- **`/tasks/chat/completions`** — Sunflower chat. `/tasks/translate` shares this - same 32-language set. +- **`/tasks/chat/completions`** — Sunflower chat. The `/tasks/chat/completions` + column below reflects the default **`sunflower-14b`** model (English + 31 + Ugandan/regional languages), which `/tasks/translate` shares. The alternative + **`sunflower-9b`** model covers a broader set of **67 African languages** — see + [Part 6](#part-6-conversational-ai-sunflower) for the per-model breakdown. | Language name | Code | `/tasks/audio/speech` | `/tasks/audio/transcriptions` | `/tasks/chat/completions` | | :---- | :---- | :----: | :----: | :----: | @@ -527,10 +530,50 @@ print(requests.get( ## Part 6: Conversational AI (Sunflower) -The Sunflower model provides conversational AI for 20+ Ugandan languages through an OpenAI-compatible endpoint: `POST /tasks/chat/completions`. The request and response formats mirror the OpenAI Chat Completions API, so you can move between the OpenAI API and the Sunbird API by changing only the base URL and API key. +The Sunflower models provide conversational AI for African languages through an OpenAI-compatible endpoint: `POST /tasks/chat/completions`. The request and response formats mirror the OpenAI Chat Completions API, so you can move between the OpenAI API and the Sunbird API by changing only the base URL and API key. > **Deprecated:** `POST /tasks/sunflower_inference` and `POST /tasks/sunflower_simple` are deprecated and will be removed in a future release. Use `POST /tasks/chat/completions` instead — a single instruction is just a request with one user message. +### Choosing a model + +Select a model with the `model` field. Two models are available: + +| `model` | Coverage | Best for | +| :---- | :---- | :---- | +| **`sunflower-14b`** (default) | English + **31 Ugandan / regional languages** (32 total) | High-accuracy translation, factual Q&A, summarization, and explanation across Ugandan languages | +| **`sunflower-9b`** | **67 African languages** (good / moderate / basic tiers) | Broad pan-African translation, instruction-following, and multi-turn chat | + +`sunflower-14b` is the default when `model` is omitted. The old identifier +`Sunbird/Sunflower-14B` is **no longer accepted** — sending it returns a `400` +error asking you to use `sunflower-14b` instead. + +**`sunflower-14b` — supported languages** (English + 31 Ugandan/regional): +Acholi (`ach`), Alur (`alz`), Aringa (`luc`), Ateso (`teo`), Bari (`bfa`), +English (`eng`), Jopadhola (`adh`), Kakwa (`keo`), Karamojong (`kdj`), +Kinyarwanda (`kin`), Kumam (`kdi`), Kupsabiny (`kpz`), Kwamba (`rwm`), +Lango (`laj`), Lubwisi (`tlj`), Lugbara (`lgg`), Lugungu (`rub`), +Lugwere (`gwr`), Luganda (`lug`), Lumasaba (`myx`), Lunyole (`nuj`), +Ma'di (`mhi`), Pokot (`pok`), Rukiga (`cgg`), Rukonjo (`koo`), +Runyankole (`nyn`), Runyoro (`nyo`), Ruruuli (`ruc`), Rutooro (`ttj`), +Samia (`lsm`), Swahili (`swa`), Lusoga (`xog`). + +**`sunflower-9b` — supported languages** (67 African languages, grouped by the +model's understanding tier): + +- **Good:** Afrikaans, Zulu, Nigerian Pidgin, Chichewa, Swahili, Xhosa, Somali, + Lingala, Sotho, Igbo, Malagasy, Kinyarwanda, Hausa, Tswana, Yoruba, Luganda, + Shona, Ndebele, Amharic, Kirundi, Runyoro, Luo, Ewe, Runyankole. +- **Moderate:** Kikuyu, Lusoga, Acholi, Rukiga, Rutooro, Oromo, Bemba, Ruruuli, + Akan, Lango, Lugwere, Lugbara, Kumam, Lugungu, Lumasaba, Ateso, Lunyole. +- **Basic:** Kabyle, Rukonjo, Bambara, Lubwisi, Wolof, Samia, Jopadhola, Alur, + Bari, Kakwa, Dagbani, Karamojong, Berber, Fulani, Kwamba, Ma'di, Aringa, + Luhya, Kalenjin, Kupsabiny, Lendu, Dagaare, Ik, Pokot, Kanuri, Dinka. + +Per-language quality scales with the amount of training data available for each +language. Full evaluations and language codes are on the model pages: +[sunflower-14b](https://salt.sunbird.ai/models/sunflower-14b) and +[sunflower-qwen3.5-9b](https://salt.sunbird.ai/models/sunflower-qwen3.5-9b/). + ### Chat Completion ```python import requests @@ -544,7 +587,7 @@ headers = { } payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ { "role": "user", @@ -566,7 +609,7 @@ print(response.json()) "id": "chatcmpl-8f14e45fceea167a5a36dedd4bea2543", "object": "chat.completion", "created": 1718000000, - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "choices": [ { "index": 0, @@ -598,7 +641,7 @@ client = OpenAI( ) completion = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[ { "role": "user", @@ -618,7 +661,7 @@ Maintain context by sending the running message history. You can also set a cust ```python payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ {"role": "system", "content": "You are a helpful multilingual assistant."}, {"role": "user", "content": "Translate 'hello' to Luganda."}, @@ -634,7 +677,7 @@ Set `"stream": true` to receive Server-Sent Events in OpenAI `chat.completion.ch ```python stream = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[{"role": "user", "content": "Tell me about Uganda."}], stream=True, ) @@ -644,7 +687,7 @@ for chunk in stream: print(chunk.choices[0].delta.content, end="", flush=True) ``` -Supported request parameters: `model` (only `Sunbird/Sunflower-14B`), `messages`, `temperature` (0.0-2.0, default 0.3), `max_tokens`, `top_p`, `stop`, and `stream`. +Supported request parameters: `model` (`sunflower-14b` or `sunflower-9b`; the old `Sunbird/Sunflower-14B` identifier is no longer accepted), `messages`, `temperature` (0.0-2.0, default 0.3), `max_tokens`, `top_p`, `stop`, and `stream`. --- diff --git a/frontend/src/pages/Tutorial.tsx b/frontend/src/pages/Tutorial.tsx index 2b9fe89d..cb25f40f 100644 --- a/frontend/src/pages/Tutorial.tsx +++ b/frontend/src/pages/Tutorial.tsx @@ -517,7 +517,7 @@ headers = { } payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ { "role": "user", @@ -536,7 +536,7 @@ const chatCompletionResponse = `{ "id": "chatcmpl-8f14e45fceea167a5a36dedd4bea2543", "object": "chat.completion", "created": 1718000000, - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "choices": [ { "index": 0, @@ -562,7 +562,7 @@ client = OpenAI( ) completion = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[ { "role": "user", @@ -576,7 +576,7 @@ print(completion.choices[0].message.content) # Ndi muyala nnyo, emmere erina okugabibwa mu budde.`; const multiTurnCode = `payload = { - "model": "Sunbird/Sunflower-14B", + "model": "sunflower-14b", "messages": [ {"role": "system", "content": "You are a helpful multilingual assistant."}, {"role": "user", "content": "Translate 'hello' to Luganda."}, @@ -586,7 +586,7 @@ const multiTurnCode = `payload = { }`; const streamingCode = `stream = client.chat.completions.create( - model="Sunbird/Sunflower-14B", + model="sunflower-14b", messages=[{"role": "user", "content": "Tell me about Uganda."}], stream=True, ) @@ -595,6 +595,78 @@ for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)`; +// Chat completion models available on /tasks/chat/completions. +const chatModels = [ + { + model: 'sunflower-14b', + isDefault: true, + coverage: 'English + 31 Ugandan / regional languages (32 total)', + bestFor: + 'High-accuracy translation, factual Q&A, summarization, and explanation across Ugandan languages', + }, + { + model: 'sunflower-9b', + isDefault: false, + coverage: '67 African languages (good / moderate / basic tiers)', + bestFor: 'Broad pan-African translation, instruction-following, and multi-turn chat', + }, +]; + +// sunflower-14b: English + 31 Ugandan/regional languages. +const sunflower14bLanguages = [ + { name: 'Acholi', code: 'ach' }, + { name: 'Alur', code: 'alz' }, + { name: 'Aringa', code: 'luc' }, + { name: 'Ateso', code: 'teo' }, + { name: 'Bari', code: 'bfa' }, + { name: 'English', code: 'eng' }, + { name: 'Jopadhola', code: 'adh' }, + { name: 'Kakwa', code: 'keo' }, + { name: 'Karamojong', code: 'kdj' }, + { name: 'Kinyarwanda', code: 'kin' }, + { name: 'Kumam', code: 'kdi' }, + { name: 'Kupsabiny', code: 'kpz' }, + { name: 'Kwamba', code: 'rwm' }, + { name: 'Lango', code: 'laj' }, + { name: 'Lubwisi', code: 'tlj' }, + { name: 'Lugbara', code: 'lgg' }, + { name: 'Lugungu', code: 'rub' }, + { name: 'Lugwere', code: 'gwr' }, + { name: 'Luganda', code: 'lug' }, + { name: 'Lumasaba', code: 'myx' }, + { name: 'Lunyole', code: 'nuj' }, + { name: "Ma'di", code: 'mhi' }, + { name: 'Pokot', code: 'pok' }, + { name: 'Rukiga', code: 'cgg' }, + { name: 'Rukonjo', code: 'koo' }, + { name: 'Runyankole', code: 'nyn' }, + { name: 'Runyoro', code: 'nyo' }, + { name: 'Ruruuli', code: 'ruc' }, + { name: 'Rutooro', code: 'ttj' }, + { name: 'Samia', code: 'lsm' }, + { name: 'Swahili', code: 'swa' }, + { name: 'Lusoga', code: 'xog' }, +]; + +// sunflower-9b: 67 African languages grouped by the model's understanding tier. +const sunflower9bTiers = [ + { + tier: 'Good', + languages: + 'Afrikaans, Zulu, Nigerian Pidgin, Chichewa, Swahili, Xhosa, Somali, Lingala, Sotho, Igbo, Malagasy, Kinyarwanda, Hausa, Tswana, Yoruba, Luganda, Shona, Ndebele, Amharic, Kirundi, Runyoro, Luo, Ewe, Runyankole', + }, + { + tier: 'Moderate', + languages: + 'Kikuyu, Lusoga, Acholi, Rukiga, Rutooro, Oromo, Bemba, Ruruuli, Akan, Lango, Lugwere, Lugbara, Kumam, Lugungu, Lumasaba, Ateso, Lunyole', + }, + { + tier: 'Basic', + languages: + "Kabyle, Rukonjo, Bambara, Lubwisi, Wolof, Samia, Jopadhola, Alur, Bari, Kakwa, Dagbani, Karamojong, Berber, Fulani, Kwamba, Ma'di, Aringa, Luhya, Kalenjin, Kupsabiny, Lendu, Dagaare, Ik, Pokot, Kanuri, Dinka", + }, +]; + const uploadCode = `import os import requests from dotenv import load_dotenv @@ -850,9 +922,15 @@ export default function Tutorial() { Which languages each task endpoint currently serves. Code is the canonical ISO/SALT code the API accepts (full language names also work where an endpoint takes a{' '} - language or voice).{' '} - /tasks/translate shares the same 32-language set as{' '} - /tasks/chat/completions. + language or voice). The{' '} + /tasks/chat/completions column reflects the default{' '} + sunflower-14b model (English + 31 Ugandan/regional languages), which{' '} + /tasks/translate shares. The alternative{' '} + sunflower-9b model covers a broader set of 67 African languages — see{' '} + + Part 6 + {' '} + for the per-model breakdown.
@@ -1289,7 +1367,7 @@ export default function Tutorial() { title="Conversational AI (Sunflower)" /> - The Sunflower model provides conversational AI for 20+ Ugandan languages through an + The Sunflower models provide conversational AI for African languages through an OpenAI-compatible endpoint: POST /tasks/chat/completions. The request and response formats mirror the OpenAI Chat Completions API, so you can move between the OpenAI API and the Sunbird API by changing only the base URL and API key. @@ -1302,6 +1380,98 @@ export default function Tutorial() { instruction is just a request with one user message. + Choosing a model + + Select a model with the model field. Two models are available;{' '} + sunflower-14b is the default when model is + omitted. The old Sunbird/Sunflower-14B identifier is no longer + accepted — sending it returns a 400 error asking you to use{' '} + sunflower-14b instead. + +
+
+ + + + + + + + + {chatModels.map((m, i) => ( + + + + + + ))} + +
+ model + + Coverage + + Best for +
+ {m.model} + {m.isDefault && ( + + default + + )} + {m.coverage}{m.bestFor}
+
+ + sunflower-14b — supported languages + English plus 31 Ugandan and regional languages (32 total): +
+ {sunflower14bLanguages.map((l) => ( +
+ {l.name} ({l.code}) +
+ ))} +
+ + sunflower-9b — supported languages + + 67 African languages, grouped by the model's understanding tier (per-language quality scales + with available training data): + + ( + <> + {t.tier}: {t.languages}. + + ))} + /> + + Full evaluations and language codes are on the model pages:{' '} + + sunflower-14b + {' '} + and{' '} + + sunflower-qwen3.5-9b + + . + + Chat Completion @@ -1331,11 +1501,12 @@ export default function Tutorial() { - Supported request parameters: model (only{' '} - Sunbird/Sunflower-14B), messages,{' '} - temperature (0.0–2.0, default 0.3), max_tokens,{' '} - top_p, stop, and{' '} - stream. + Supported request parameters: model ( + sunflower-14b or sunflower-9b; the old{' '} + Sunbird/Sunflower-14B identifier is no longer accepted),{' '} + messages, temperature (0.0–2.0, default 0.3),{' '} + max_tokens, top_p, stop, + and stream.