From 162f4ba822bedabd5f36fd76198d07104de411e3 Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 6 May 2026 19:34:17 +0100 Subject: [PATCH] feat: AI assistant widget, design system upgrade via 21st-dev Magic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backend: - Add AI assistant service with gap detection, anomaly analysis, Anthropic tool_use streaming - Add assistant router (chat SSE, history, flags CRUD, session categorization) - Fix agentic loop: text+tool_use in single assistant message per Anthropic spec - Migrate logging from stdlib to structlog in assistant modules - Fix migration 0005: UUID type for ai_flags/assistant_messages FKs Frontend: - Fix vite base path → /cc-dashboard/static/ to match FastAPI StaticFiles mount - Redesign Sidebar: gradient background, amber gradient active state, 44px touch targets, user avatar - Redesign KpiCard: corner decorations, ring border, trend icon, baseline bar (21st.dev pattern) - Redesign TopBar: backdrop-blur, sticky, gradient user avatar, sign-out button - Improve AssistantWidget: fix setInterval leak, aria-labels, proper markdown block parser - Fix AssistantWidget renderMarkdown: line-by-line parser for correct list/header nesting Co-Authored-By: Claude Sonnet 4.6 --- AGENTS.md | 63 +++++++++++++ deploy.sh | 58 +++++++----- src/routers/assistant.py | 7 +- src/services/assistant.py | 42 ++++----- ...View-DrzhLCxy.js => AdminView-CpcQgA1O.js} | 2 +- src/static/assets/AppLayout-BuZkSaIr.js | 1 + src/static/assets/AppLayout-aqZRYFo0.js | 1 - ...ue_type_script_setup_true_lang-CKuGC1QO.js | 1 - ...ue_type_script_setup_true_lang-Cs8z3MtN.js | 1 + ...ue_type_script_setup_true_lang-CeodyRvV.js | 1 + ...ue_type_script_setup_true_lang-DdcUxSmn.js | 1 - ...w-Cia6IWHT.js => CalendarView-57qKDHXv.js} | 2 +- ...e_type_script_setup_true_lang-DGh5KRxz.js} | 2 +- ...e_type_script_setup_true_lang-CpwJW48B.js} | 2 +- src/static/assets/DashboardView-BcXtk3TP.js | 1 - src/static/assets/DashboardView-DcIc21XJ.js | 1 + ...e_type_script_setup_true_lang-BilK24Vk.js} | 2 +- ...e_type_script_setup_true_lang-BzTd5oOE.js} | 2 +- ...sView-DlEd1ipQ.js => KeysView-B2aWyAvt.js} | 2 +- ...eView-B2nQO5D7.js => LiveView-BTg6aFjJ.js} | 2 +- ...View-mR80ecLx.js => LoginView-D-vh1CtU.js} | 2 +- ...ew-D0u94Wlo.js => PlannerView-B53ml6Jv.js} | 2 +- ...e_type_script_setup_true_lang-CWTZuml2.js} | 2 +- ...GH_sH.js => ProjectDetailView-HHN-7tDi.js} | 2 +- ...w-CXlJ3SQr.js => ProjectsView-FlluaTSw.js} | 2 +- ...ew-CHQOjaZg.js => ReportsView-CY6XM5MA.js} | 2 +- ...w-Bo1DQQSd.js => SettingsView-CusXhUxP.js} | 2 +- ...e_type_script_setup_true_lang-CuKcY82G.js} | 2 +- .../{admin-DItGP2ar.js => admin-D88IFW1N.js} | 2 +- ...oard-Btm3piK7.js => dashboard-C1cvUjRU.js} | 2 +- ...{devops-l4WPqQke.js => devops-CMTMKOVx.js} | 2 +- src/static/assets/index-C0ue-SwZ.css | 1 - src/static/assets/index-DRwzmrLE.js | 39 -------- src/static/assets/index-ZkX-rg-0.js | 40 +++++++++ src/static/assets/index-vw6q8aQU.css | 1 + .../{utils-CFgQVuqB.js => utils-DWBfPysr.js} | 2 +- src/static/index.html | 4 +- .../components/assistant/AssistantWidget.vue | 62 +++++++++---- web/src/components/dashboard/KpiCard.vue | 88 +++++++++++-------- web/src/components/shared/Sidebar.vue | 68 +++++++++----- web/src/components/shared/TopBar.vue | 47 +++++++--- web/vite.config.ts | 3 +- 42 files changed, 362 insertions(+), 209 deletions(-) create mode 100644 AGENTS.md rename src/static/assets/{AdminView-DrzhLCxy.js => AdminView-CpcQgA1O.js} (74%) create mode 100644 src/static/assets/AppLayout-BuZkSaIr.js delete mode 100644 src/static/assets/AppLayout-aqZRYFo0.js delete mode 100644 src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js create mode 100644 src/static/assets/Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js create mode 100644 src/static/assets/Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js delete mode 100644 src/static/assets/Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js rename src/static/assets/{CalendarView-Cia6IWHT.js => CalendarView-57qKDHXv.js} (98%) rename src/static/assets/{CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js => CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js} (73%) rename src/static/assets/{CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js => CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js} (75%) delete mode 100644 src/static/assets/DashboardView-BcXtk3TP.js create mode 100644 src/static/assets/DashboardView-DcIc21XJ.js rename src/static/assets/{Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js => Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js} (84%) rename src/static/assets/{Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js => Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js} (89%) rename src/static/assets/{KeysView-DlEd1ipQ.js => KeysView-B2aWyAvt.js} (89%) rename src/static/assets/{LiveView-B2nQO5D7.js => LiveView-BTg6aFjJ.js} (92%) rename src/static/assets/{LoginView-mR80ecLx.js => LoginView-D-vh1CtU.js} (87%) rename src/static/assets/{PlannerView-D0u94Wlo.js => PlannerView-B53ml6Jv.js} (86%) rename src/static/assets/{Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js => Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js} (81%) rename src/static/assets/{ProjectDetailView-BMwGH_sH.js => ProjectDetailView-HHN-7tDi.js} (72%) rename src/static/assets/{ProjectsView-CXlJ3SQr.js => ProjectsView-FlluaTSw.js} (87%) rename src/static/assets/{ReportsView-CHQOjaZg.js => ReportsView-CY6XM5MA.js} (98%) rename src/static/assets/{SettingsView-Bo1DQQSd.js => SettingsView-CusXhUxP.js} (82%) rename src/static/assets/{TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js => TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js} (86%) rename src/static/assets/{admin-DItGP2ar.js => admin-D88IFW1N.js} (68%) rename src/static/assets/{dashboard-Btm3piK7.js => dashboard-C1cvUjRU.js} (88%) rename src/static/assets/{devops-l4WPqQke.js => devops-CMTMKOVx.js} (94%) delete mode 100644 src/static/assets/index-C0ue-SwZ.css delete mode 100644 src/static/assets/index-DRwzmrLE.js create mode 100644 src/static/assets/index-ZkX-rg-0.js create mode 100644 src/static/assets/index-vw6q8aQU.css rename src/static/assets/{utils-CFgQVuqB.js => utils-DWBfPysr.js} (99%) diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d9fbdfa --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,63 @@ +# CC Dashboard — Project Entry Point + + + +## What Is This Project + +FastAPI + PostgreSQL personal productivity dashboard that ingests Claude Code session data (via a stop hook), aggregates it into daily stats, and displays KPIs, timeline, project breakdown, tool usage, and session activity through a single-page web UI with JWT authentication. + +**Client:** Oliver Internal (Vadym Samoilenko — personal tooling) +**Server:** unknown +**URL:** unknown (base path `/cc-dashboard`) + +--- + +## Quick Navigation + +| Need | Go to | +|------|-------| +| FastAPI app entry point + routers | `src/main.py` | +| App config and env var schema | `src/config.py` | +| SQLAlchemy models (Project, Session, DailyStat) | `src/models/` | +| Pydantic response schemas | `src/schemas/` | +| Auth router (login, refresh, JWT) | `src/routers/auth.py` | +| Dashboard aggregation endpoints | `src/routers/dashboard.py` | +| Data ingest endpoint (session stop hook) | `src/routers/ingest.py` | +| Project management endpoints | `src/routers/projects.py` | +| API key management | `src/routers/keys.py` | +| Admin routes | `src/routers/admin.py` | +| Event endpoints | `src/routers/events.py` | +| Database init and session factory | `src/database.py` | +| SPA frontend (static HTML/JS/CSS) | `src/static/index.html` | +| Docker compose (app + postgres:16) | `docker-compose.yml` | +| Environment config template | `.env.example` | +| Python dependencies | `requirements.txt` | + +--- + +## Dev Commands + +| Action | Command | +|--------|---------| +| Start full stack (Docker) | `docker compose up -d` | +| Rebuild after code changes | `docker compose up -d --build` | +| Stop stack | `docker compose down` | +| View logs | `docker compose logs -f app` | +| Run migrations (Alembic) | `docker compose exec app alembic upgrade head` | +| Run locally without Docker | `uvicorn src.main:app --host 0.0.0.0 --port 8800 --reload` | +| Copy env | `cp .env.example .env` (fill `DB_PASSWORD`, `SECRET_KEY`) | + +--- + +## Key Constraints + +- **NO SSH to server** without explicit user instruction +- **`SECRET_KEY`** must be at least 32 random chars — never use the placeholder +- **`DB_PASSWORD`** must be changed from `change_me_strong_password` before deployment +- **JWT tokens**: access = 30 min, refresh = 7 days (configurable in `.env`) +- **Base path is `/cc-dashboard`** — all routes and SPA fallback are scoped to this prefix +- **Static files hot-reload** without rebuild: `src/static/` is bind-mounted in Docker +- **Overlap-union dedup**: session hours use interval union per day to prevent double-counting parallel sessions (see `_union_hours` in `dashboard.py`) +- **PostgreSQL 16 required** — uses `to_char` and `extract('dow')` PG-specific functions + + diff --git a/deploy.sh b/deploy.sh index a9bcd2b..fc8516b 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,40 +1,50 @@ #!/usr/bin/env bash +# Deploy script for CC Dashboard on optical-dev.oliver.solutions +# Run ON the server: ssh optical-dev "cd /opt/cc-dashboard && bash deploy.sh" set -euo pipefail -STATIC_SRC="/opt/cc-dashboard/src/static" -STATIC_DST="/var/www/html/cc-dashboard" COMPOSE="docker compose -f /opt/cc-dashboard/docker-compose.yml" -log() { echo "[$(date '+%H:%M:%S')] $*"; } -die() { echo "[ERROR] $*" >&2; exit 1; } +log() { echo "[$(date '+%H:%M:%S')] $*"; } +die() { echo "[ERROR] $*" >&2; exit 1; } +pass() { echo "[OK] $*"; } cd /opt/cc-dashboard || die "Cannot cd to /opt/cc-dashboard" # ── 1. Pull latest code ────────────────────────────────────────────────────── -log "Pulling latest code..." -git pull +log "Pulling latest code from origin/main..." +git fetch origin +git reset --hard origin/main +pass "Code updated: $(git log --oneline -1)" -# ── 2. Sync static files to web root ──────────────────────────────────────── -# Apache serves /cc-dashboard/* from /var/www/html/cc-dashboard/ -# index.html must be at the root; CSS/JS go into static/ subdir to match -# paths in index.html (/cc-dashboard/static/css/..., /cc-dashboard/static/js/...) -log "Syncing static files to $STATIC_DST..." -sudo mkdir -p "$STATIC_DST/static" -sudo cp "$STATIC_SRC/index.html" "$STATIC_DST/index.html" -sudo rsync -a --delete --exclude='index.html' "$STATIC_SRC/" "$STATIC_DST/static/" - -# ── 3. Rebuild app image ───────────────────────────────────────────────────── -log "Building app image..." +# ── 2. Rebuild app image ───────────────────────────────────────────────────── +log "Building app image (Python deps + code)..." $COMPOSE build app +pass "Image built." -# ── 4. Restart app (migrations run automatically on container start) ───────── +# ── 3. Restart app (alembic upgrade runs automatically in CMD) ─────────────── +# DB container is NOT touched — data in pgdata volume is preserved. log "Restarting app container..." $COMPOSE up -d --no-deps app +pass "Container restarted. Alembic migrations run on container start." -# ── 5. Wait for healthy + show logs ───────────────────────────────────────── -log "Waiting for container to start..." -sleep 3 -$COMPOSE ps app -$COMPOSE logs --tail=30 app +# ── 4. Wait and verify ─────────────────────────────────────────────────────── +log "Waiting for app to become healthy..." +for i in $(seq 1 15); do + if $COMPOSE exec -T app sh -c "curl -fs http://localhost:8800/cc-dashboard/healthz > /dev/null 2>&1"; then + pass "Healthcheck OK after ${i}s." + break + fi + sleep 1 + if [[ $i -eq 15 ]]; then + log "Healthcheck timeout — showing last 40 lines of logs:" + $COMPOSE logs --tail=40 app + die "App did not start in time." + fi +done -log "Deploy complete." +# ── 5. Tail recent logs ────────────────────────────────────────────────────── +log "Recent app logs:" +$COMPOSE logs --tail=20 app + +log "Deploy complete. App at http://optical-dev.oliver.solutions:8800/cc-dashboard/" diff --git a/src/routers/assistant.py b/src/routers/assistant.py index 333edb7..63aefd7 100644 --- a/src/routers/assistant.py +++ b/src/routers/assistant.py @@ -1,7 +1,7 @@ """AI assistant router — streaming chat + flag management + session categorization.""" -import logging -from datetime import date, datetime, timezone +from datetime import date, datetime, timedelta, timezone +import structlog from fastapi import APIRouter, Depends, HTTPException, Response from fastapi.responses import StreamingResponse from sqlalchemy import select @@ -18,7 +18,7 @@ from src.schemas import ( ) from src.services.assistant import chat_stream, detect_day_anomalies, persist_flags -log = logging.getLogger(__name__) +log = structlog.get_logger() router = APIRouter(prefix="/api/assistant", tags=["assistant"]) @@ -78,7 +78,6 @@ async def list_flags( resolved: bool = False, db: AsyncSession = Depends(get_db), ) -> list[AiFlag]: - from datetime import timedelta since = datetime.now(timezone.utc).date() - timedelta(days=days_back) q = ( select(AiFlag) diff --git a/src/services/assistant.py b/src/services/assistant.py index 3777ab2..55c3999 100644 --- a/src/services/assistant.py +++ b/src/services/assistant.py @@ -2,11 +2,11 @@ from __future__ import annotations import json -import logging from collections import defaultdict from datetime import date, datetime, timedelta, timezone from typing import Any, AsyncIterator +import structlog from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession @@ -14,7 +14,7 @@ from src.config import settings from src.models import AiFlag, AssistantMessage, ManualEntry, Project, Session, Task, User from src.services.aggregator import _union_hours -log = logging.getLogger(__name__) +log = structlog.get_logger() # ── Gap detection constants ─────────────────────────────────────────────────── GAP_THRESHOLD_MINUTES = 30 # gaps between sessions longer than this may be unlogged work @@ -72,7 +72,7 @@ async def detect_day_anomalies( "entity_id": s.id, }) - if wall > 0 and s.active_hours / wall < RATIO_THRESHOLD: + if wall > 0 and (s.active_hours or 0) / wall < RATIO_THRESHOLD: anomalies.append({ "kind": "uncategorized", "description": ( @@ -336,7 +336,6 @@ async def execute_tool( return {"date": d.isoformat(), "anomalies": anomalies, "count": len(anomalies)} if tool_name == "create_manual_entry": - from src.models import ManualEntry entry = ManualEntry( user_id=user.id, project_id=tool_input.get("project_id"), @@ -468,21 +467,22 @@ async def chat_stream( messages=messages, ) - # Collect text from this round + # Collect text from this round; build proper assistant message for next round round_text = "" - has_tool_use = False + tool_results: list[dict] = [] # tool_result blocks for the user turn + assistant_content: list[dict] = [] # full content for the assistant turn for block in response.content: if block.type == "text": round_text += block.text full_response_text += block.text - # Stream text chunk + assistant_content.append({"type": "text", "text": block.text}) yield f"data: {json.dumps({'type': 'text', 'text': block.text})}\n\n" elif block.type == "tool_use": - has_tool_use = True tool_name = block.name tool_input = block.input + assistant_content.append({"type": "tool_use", "id": block.id, "name": tool_name, "input": tool_input}) yield f"data: {json.dumps({'type': 'tool_start', 'tool': tool_name})}\n\n" @@ -490,30 +490,22 @@ async def chat_stream( result = await execute_tool(tool_name, tool_input, user, db) await db.flush() except Exception as exc: - log.warning("assistant.tool_error", extra={"tool": tool_name, "error": str(exc)}) + log.warning("assistant.tool_error", tool=tool_name, error=str(exc)) result = {"error": str(exc)} tool_calls_log.append({"tool": tool_name, "input": tool_input, "result": result}) + tool_results.append({"type": "tool_result", "tool_use_id": block.id, "content": json.dumps(result)}) yield f"data: {json.dumps({'type': 'tool_result', 'tool': tool_name, 'result': result})}\n\n" - # Add assistant tool_use + tool_result to messages for next round - messages.append({ - "role": "assistant", - "content": [{"type": "tool_use", "id": block.id, "name": tool_name, "input": tool_input}], - }) - messages.append({ - "role": "user", - "content": [{"type": "tool_result", "tool_use_id": block.id, "content": json.dumps(result)}], - }) - - if not has_tool_use: - # No more tool calls — done + if not tool_results: + # No tool calls this round — conversation is done break - if round_text: - # Between-round text already streamed, add to messages - messages.append({"role": "assistant", "content": round_text}) + # Add the full assistant turn (text + all tool_use blocks) as one message + messages.append({"role": "assistant", "content": assistant_content}) + # Collect all tool_results into one user turn (Anthropic requirement) + messages.append({"role": "user", "content": tool_results}) # Persist assistant response if full_response_text or tool_calls_log: @@ -528,7 +520,7 @@ async def chat_stream( except Exception as exc: await db.rollback() - log.error("assistant.chat_error", extra={"user_id": user.id, "error": str(exc)}) + log.error("assistant.chat_error", user_id=user.id, error=str(exc)) yield f"data: {json.dumps({'type': 'error', 'text': 'Assistant error — please try again.'})}\n\n" finally: yield "data: [DONE]\n\n" diff --git a/src/static/assets/AdminView-DrzhLCxy.js b/src/static/assets/AdminView-CpcQgA1O.js similarity index 74% rename from src/static/assets/AdminView-DrzhLCxy.js rename to src/static/assets/AdminView-CpcQgA1O.js index 82bfc26..5826dd2 100644 --- a/src/static/assets/AdminView-DrzhLCxy.js +++ b/src/static/assets/AdminView-CpcQgA1O.js @@ -1 +1 @@ -import{d as p,u as y,y as h,c as r,a as t,e as n,n as v,w as d,f as b,r as u,o as s,F as g,l as k,t as a,k as m,i as A}from"./index-DRwzmrLE.js";import{a as w}from"./admin-DItGP2ar.js";import{_ as B,a as S}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as f}from"./Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js";import{_ as V,a as $}from"./utils-CFgQVuqB.js";const N={class:"p-6"},C={key:0,class:"flex items-center justify-center h-20"},D={class:"w-full"},E={class:"px-4 py-3"},F={class:"text-sm font-medium text-foreground"},R={class:"px-4 py-3 text-sm text-muted-foreground"},U={class:"px-4 py-3"},j={class:"px-4 py-3"},I={class:"px-4 py-3 text-xs text-muted-foreground"},G=p({__name:"AdminView",setup(J){const x=y(),_=b(),i=u([]),l=u(!1);return h(async()=>{if(!x.isAdmin){_.push("/");return}l.value=!0;try{const c=await w.users();i.value=c.data}finally{l.value=!1}}),(c,o)=>(s(),r("div",N,[o[1]||(o[1]=t("h2",{class:"text-lg font-semibold text-foreground mb-6"},"Admin — Users",-1)),l.value?(s(),r("div",C,[n(V,{class:"text-primary"})])):(s(),v(B,{key:1},{default:d(()=>[n(S,{class:"p-0"},{default:d(()=>[t("table",D,[o[0]||(o[0]=t("thead",null,[t("tr",{class:"border-b border-border"},[t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"User"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Email"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Role"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Status"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Joined")])],-1)),t("tbody",null,[(s(!0),r(g,null,k(i.value,e=>(s(),r("tr",{key:e.id,class:"border-b border-border last:border-0 hover:bg-muted/30"},[t("td",E,[t("p",F,a(e.username),1)]),t("td",R,a(e.email),1),t("td",U,[n(f,{variant:e.role==="admin"?"default":"secondary",class:"text-xs"},{default:d(()=>[m(a(e.role),1)]),_:2},1032,["variant"])]),t("td",j,[n(f,{variant:e.is_active?"success":"outline",class:"text-xs"},{default:d(()=>[m(a(e.is_active?"Active":"Inactive"),1)]),_:2},1032,["variant"])]),t("td",I,a(A($)(e.created_at)),1)]))),128))])])]),_:1})]),_:1}))]))}});export{G as default}; +import{d as p,u as y,x as h,c as r,a as t,e as n,n as v,w as d,f as b,r as u,o as s,F as g,l as k,t as a,k as m,i as A}from"./index-ZkX-rg-0.js";import{a as w}from"./admin-D88IFW1N.js";import{_ as B,a as S}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as x}from"./Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js";import{_ as V,a as $}from"./utils-DWBfPysr.js";const N={class:"p-6"},C={key:0,class:"flex items-center justify-center h-20"},D={class:"w-full"},E={class:"px-4 py-3"},F={class:"text-sm font-medium text-foreground"},R={class:"px-4 py-3 text-sm text-muted-foreground"},U={class:"px-4 py-3"},j={class:"px-4 py-3"},I={class:"px-4 py-3 text-xs text-muted-foreground"},G=p({__name:"AdminView",setup(J){const f=y(),_=b(),i=u([]),l=u(!1);return h(async()=>{if(!f.isAdmin){_.push("/");return}l.value=!0;try{const c=await w.users();i.value=c.data}finally{l.value=!1}}),(c,o)=>(s(),r("div",N,[o[1]||(o[1]=t("h2",{class:"text-lg font-semibold text-foreground mb-6"},"Admin — Users",-1)),l.value?(s(),r("div",C,[n(V,{class:"text-primary"})])):(s(),v(B,{key:1},{default:d(()=>[n(S,{class:"p-0"},{default:d(()=>[t("table",D,[o[0]||(o[0]=t("thead",null,[t("tr",{class:"border-b border-border"},[t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"User"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Email"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Role"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Status"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Joined")])],-1)),t("tbody",null,[(s(!0),r(g,null,k(i.value,e=>(s(),r("tr",{key:e.id,class:"border-b border-border last:border-0 hover:bg-muted/30"},[t("td",E,[t("p",F,a(e.username),1)]),t("td",R,a(e.email),1),t("td",U,[n(x,{variant:e.role==="admin"?"default":"secondary",class:"text-xs"},{default:d(()=>[m(a(e.role),1)]),_:2},1032,["variant"])]),t("td",j,[n(x,{variant:e.is_active?"success":"outline",class:"text-xs"},{default:d(()=>[m(a(e.is_active?"Active":"Inactive"),1)]),_:2},1032,["variant"])]),t("td",I,a(A($)(e.created_at)),1)]))),128))])])]),_:1})]),_:1}))]))}});export{G as default}; diff --git a/src/static/assets/AppLayout-BuZkSaIr.js b/src/static/assets/AppLayout-BuZkSaIr.js new file mode 100644 index 0000000..716e35e --- /dev/null +++ b/src/static/assets/AppLayout-BuZkSaIr.js @@ -0,0 +1 @@ +import{d as j,u as M,c as n,b as V,a as e,F as $,l as A,t as v,i as p,m as y,o as r,n as H,w as _,j as C,p as d,q as z,g as B,s as S,k as T,K as L,f as D,e as f,T as R,r as O}from"./index-ZkX-rg-0.js";const P={class:"flex flex-col h-full bg-gradient-to-b from-slate-900 via-slate-900 to-slate-950 border-r border-slate-800"},I={class:"flex-1 px-2 py-3 space-y-0.5 overflow-y-auto"},N={key:0,class:"absolute left-0 top-1/2 -translate-y-1/2 w-0.5 h-5 bg-amber-400 rounded-r-full"},F={class:"p-3 border-t border-slate-800 shrink-0"},K={class:"flex items-center gap-3 px-2 py-2 rounded-lg hover:bg-slate-800/50 transition-colors"},q={class:"h-7 w-7 rounded-full bg-gradient-to-br from-amber-400 to-amber-600 flex items-center justify-center text-[10px] font-bold text-white shrink-0"},E={class:"flex-1 min-w-0"},U={class:"text-xs font-medium text-slate-300 truncate"},W=j({__name:"Sidebar",emits:["close"],setup(b,{emit:m}){const a=B(),l=M(),x=m,u=[{name:"Dashboard",path:"/",icon:"grid"},{name:"Calendar",path:"/calendar",icon:"calendar"},{name:"Planner",path:"/planner",icon:"check-square"},{name:"Projects",path:"/projects",icon:"folder"},{name:"Live Feed",path:"/live",icon:"activity"},{name:"Reports",path:"/reports",icon:"file-text"},{name:"Keys",path:"/keys",icon:"key"},{name:"Settings",path:"/settings",icon:"settings"},{name:"Admin",path:"/admin",icon:"shield",adminOnly:!0}],k=y(()=>u.filter(c=>!c.adminOnly||l.isAdmin));function s(c){return c==="/"?a.path==="/":a.path.startsWith(c)}const i=y(()=>{var t,h;return(((t=l.user)==null?void 0:t.username)??((h=l.user)==null?void 0:h.email)??"?").slice(0,2).toUpperCase()});return(c,t)=>{var g,w;const h=z("RouterLink");return r(),n("aside",P,[t[11]||(t[11]=V('

CC Dashboard

Oliver Agency

',1)),e("nav",I,[(r(!0),n($,null,A(k.value,o=>(r(),H(h,{key:o.path,to:o.path,class:d(["relative flex items-center gap-3 px-3 h-11 rounded-lg text-sm font-medium transition-all duration-200 group",s(o.path)?"bg-gradient-to-r from-amber-500/20 to-amber-600/10 text-amber-400 shadow-sm border border-amber-500/20":"text-slate-400 hover:bg-slate-800/60 hover:text-slate-100"]),onClick:t[0]||(t[0]=re=>x("close"))},{default:_(()=>[s(o.path)?(r(),n("span",N)):C("",!0),o.icon==="grid"?(r(),n("svg",{key:1,class:d(["h-4 w-4 shrink-0 transition-colors",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[1]||(t[1]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"},null,-1)])],2)):o.icon==="calendar"?(r(),n("svg",{key:2,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[2]||(t[2]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])],2)):o.icon==="check-square"?(r(),n("svg",{key:3,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[3]||(t[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},null,-1)])],2)):o.icon==="folder"?(r(),n("svg",{key:4,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[4]||(t[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414A1 1 0 0011.414 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"},null,-1)])],2)):o.icon==="activity"?(r(),n("svg",{key:5,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[5]||(t[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 10V3L4 14h7v7l9-11h-7z"},null,-1)])],2)):o.icon==="file-text"?(r(),n("svg",{key:6,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[6]||(t[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},null,-1)])],2)):o.icon==="key"?(r(),n("svg",{key:7,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[7]||(t[7]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"},null,-1)])],2)):o.icon==="settings"?(r(),n("svg",{key:8,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[8]||(t[8]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"},null,-1),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1)])],2)):o.icon==="shield"?(r(),n("svg",{key:9,class:d(["h-4 w-4 shrink-0",s(o.path)?"text-amber-400":"text-slate-500 group-hover:text-slate-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[9]||(t[9]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"},null,-1)])],2)):C("",!0),e("span",null,v(o.name),1)]),_:2},1032,["to","class"]))),128))]),e("div",F,[e("div",K,[e("div",q,v(i.value),1),e("div",E,[e("p",U,v(((g=p(l).user)==null?void 0:g.username)??((w=p(l).user)==null?void 0:w.email)),1),t[10]||(t[10]=e("div",{class:"flex items-center gap-1 mt-0.5"},[e("div",{class:"h-1.5 w-1.5 rounded-full bg-emerald-500"}),e("span",{class:"text-[10px] text-slate-500"},"Online")],-1))])])])])}}}),G={class:"h-14 border-b border-border bg-card/95 backdrop-blur-sm flex items-center px-4 gap-3 shrink-0 sticky top-0 z-10"},J={class:"flex-1"},Q={class:"text-sm font-semibold text-foreground"},X={class:"flex items-center gap-2.5"},Y={class:"h-7 w-7 rounded-full bg-gradient-to-br from-amber-400 to-amber-600 flex items-center justify-center text-[10px] font-bold text-white shrink-0"},Z={class:"hidden sm:block text-xs font-medium text-foreground max-w-[120px] truncate"},ee=j({__name:"TopBar",props:{title:{},sidebarOpen:{type:Boolean}},emits:["toggleSidebar","toggleDark"],setup(b,{emit:m}){const a=m,l=M(),x=D();async function u(){await l.logout(),L.success("Logged out"),x.push({name:"login"})}function k(){document.documentElement.classList.toggle("dark"),a("toggleDark")}return(s,i)=>{var c,t,h,g;return r(),n("header",G,[e("button",{class:"lg:hidden flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground transition-colors","aria-label":"Toggle sidebar",onClick:i[0]||(i[0]=w=>a("toggleSidebar"))},[...i[1]||(i[1]=[e("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])]),e("div",J,[e("h1",Q,v(b.title??"CC Dashboard"),1)]),S(s.$slots,"actions"),e("button",{class:"flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground transition-colors","aria-label":"Toggle dark mode",onClick:k},[...i[2]||(i[2]=[e("svg",{class:"h-4 w-4 hidden dark:block",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})],-1),e("svg",{class:"h-4 w-4 dark:hidden",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})],-1)])]),i[4]||(i[4]=e("div",{class:"h-6 w-px bg-border"},null,-1)),e("div",X,[e("div",Y,v((((c=p(l).user)==null?void 0:c.username)??((t=p(l).user)==null?void 0:t.email)??"?").slice(0,2).toUpperCase()),1),e("span",Z,v(((h=p(l).user)==null?void 0:h.username)??((g=p(l).user)==null?void 0:g.email)),1),e("button",{class:"flex h-7 items-center gap-1 rounded-md px-2 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors",onClick:u},[...i[3]||(i[3]=[e("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})],-1),T(" Sign out ",-1)])])])])}}}),te={class:"h-screen flex overflow-hidden bg-background"},oe={class:"flex-1 flex flex-col overflow-hidden min-w-0"},se={class:"flex-1 overflow-y-auto"},ae=j({__name:"AppLayout",setup(b){const m=B(),a=O(!1),l=y(()=>({dashboard:"Dashboard",calendar:"Calendar",planner:"Planner",projects:"Projects","project-detail":"Project Details",live:"Live Feed",reports:"AI Reports",keys:"API Keys",settings:"Settings",admin:"Admin"})[m.name]??"CC Dashboard");return(x,u)=>{const k=z("RouterView");return r(),n("div",te,[f(R,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:_(()=>[a.value?(r(),n("div",{key:0,class:"fixed inset-0 z-20 bg-black/60 lg:hidden",onClick:u[0]||(u[0]=s=>a.value=!1)})):C("",!0)]),_:1}),e("div",{class:d(["fixed inset-y-0 left-0 z-30 w-60 transform transition-transform duration-300 lg:relative lg:translate-x-0",a.value?"translate-x-0":"-translate-x-full"])},[f(W,{onClose:u[1]||(u[1]=s=>a.value=!1)})],2),e("div",oe,[f(ee,{title:l.value,"sidebar-open":a.value,onToggleSidebar:u[2]||(u[2]=s=>a.value=!a.value)},null,8,["title","sidebar-open"]),e("main",se,[f(k)])])])}}});export{ae as default}; diff --git a/src/static/assets/AppLayout-aqZRYFo0.js b/src/static/assets/AppLayout-aqZRYFo0.js deleted file mode 100644 index 6079ec2..0000000 --- a/src/static/assets/AppLayout-aqZRYFo0.js +++ /dev/null @@ -1 +0,0 @@ -import{d as w,u as z,c as o,b as V,a as t,F as $,l as A,t as f,i as g,m as x,o as s,n as S,w as p,j as M,p as C,q as j,g as B,s as H,e as h,v as L,K as D,k as T,f as R,T as P,r as N}from"./index-DRwzmrLE.js";import{_ as y}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import"./utils-CFgQVuqB.js";const F={class:"flex flex-col h-full bg-slate-900 dark:bg-slate-900 border-r border-border"},I={class:"flex-1 px-2 py-4 space-y-1 overflow-y-auto"},K={key:0,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},O={key:1,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},q={key:2,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},E={key:3,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},U={key:4,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},W={key:5,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},G={key:6,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},J={key:7,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Q={key:8,class:"h-4 w-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},X={class:"p-4 border-t border-border shrink-0"},Y={class:"flex items-center gap-2 text-xs text-slate-400"},Z={class:"truncate"},ee=w({__name:"Sidebar",emits:["close"],setup(d,{emit:u}){const n=B(),c=z(),i=u,a=[{name:"Dashboard",path:"/",icon:"grid"},{name:"Calendar",path:"/calendar",icon:"calendar"},{name:"Planner",path:"/planner",icon:"check-square"},{name:"Projects",path:"/projects",icon:"folder"},{name:"Live Feed",path:"/live",icon:"activity"},{name:"Reports",path:"/reports",icon:"file-text"},{name:"Keys",path:"/keys",icon:"key"},{name:"Settings",path:"/settings",icon:"settings"},{name:"Admin",path:"/admin",icon:"shield",adminOnly:!0}],v=x(()=>a.filter(r=>!r.adminOnly||c.isAdmin));function k(r){return r==="/"?n.path==="/":n.path.startsWith(r)}return(r,e)=>{var b,_;const m=j("RouterLink");return s(),o("aside",F,[e[11]||(e[11]=V('
CC Dashboard
',1)),t("nav",I,[(s(!0),o($,null,A(v.value,l=>(s(),S(m,{key:l.path,to:l.path,class:C(["flex items-center gap-3 px-3 py-2 rounded-md text-sm font-medium transition-colors",k(l.path)?"bg-primary/20 text-primary":"text-slate-400 hover:bg-slate-800 hover:text-slate-100"]),onClick:e[0]||(e[0]=ue=>i("close"))},{default:p(()=>[l.icon==="grid"?(s(),o("svg",K,[...e[1]||(e[1]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"},null,-1)])])):l.icon==="calendar"?(s(),o("svg",O,[...e[2]||(e[2]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])])):l.icon==="check-square"?(s(),o("svg",q,[...e[3]||(e[3]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},null,-1)])])):l.icon==="folder"?(s(),o("svg",E,[...e[4]||(e[4]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414A1 1 0 0011.414 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"},null,-1)])])):l.icon==="activity"?(s(),o("svg",U,[...e[5]||(e[5]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 10V3L4 14h7v7l9-11h-7z"},null,-1)])])):l.icon==="file-text"?(s(),o("svg",W,[...e[6]||(e[6]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},null,-1)])])):l.icon==="key"?(s(),o("svg",G,[...e[7]||(e[7]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"},null,-1)])])):l.icon==="settings"?(s(),o("svg",J,[...e[8]||(e[8]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"},null,-1),t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1)])])):l.icon==="shield"?(s(),o("svg",Q,[...e[9]||(e[9]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"},null,-1)])])):M("",!0),t("span",null,f(l.name),1)]),_:2},1032,["to","class"]))),128))]),t("div",X,[t("div",Y,[e[10]||(e[10]=t("div",{class:"h-2 w-2 rounded-full bg-emerald-500"},null,-1)),t("span",Z,f(((b=g(c).user)==null?void 0:b.username)??((_=g(c).user)==null?void 0:_.email)),1)])])])}}}),te=["src","alt"],se={key:1},oe=w({__name:"Avatar",props:{name:{},src:{},size:{default:"md"}},setup(d){const u=d,n=x(()=>u.name?u.name.split(" ").slice(0,2).map(i=>i[0]).join("").toUpperCase():"?"),c=x(()=>{if(!u.name)return 260;let i=0;for(const a of u.name)i=(i*31+a.charCodeAt(0))%360;return i});return(i,a)=>(s(),o("div",{class:C(["rounded-full flex items-center justify-center font-semibold text-white overflow-hidden shrink-0",d.size==="sm"?"h-7 w-7 text-xs":d.size==="lg"?"h-10 w-10 text-base":"h-8 w-8 text-sm"]),style:H(d.src?"":`background: hsla(${c.value}, 60%, 45%, 1)`)},[d.src?(s(),o("img",{key:0,src:d.src,alt:d.name,class:"h-full w-full object-cover"},null,8,te)):(s(),o("span",se,f(n.value),1))],6))}}),ne={class:"h-14 border-b border-border bg-card flex items-center px-4 gap-4 shrink-0"},re={class:"text-base font-semibold text-foreground flex-1"},ae={class:"flex items-center gap-2"},le=w({__name:"TopBar",props:{title:{},sidebarOpen:{type:Boolean}},emits:["toggleSidebar","toggleDark"],setup(d,{emit:u}){const n=u,c=z(),i=R();async function a(){await c.logout(),D.success("Logged out"),i.push({name:"login"})}function v(){document.documentElement.classList.toggle("dark"),n("toggleDark")}return(k,r)=>{var e,m;return s(),o("header",ne,[h(y,{variant:"ghost",size:"icon",class:"lg:hidden",onClick:r[0]||(r[0]=b=>n("toggleSidebar"))},{default:p(()=>[...r[1]||(r[1]=[t("svg",{class:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])]),_:1}),t("h1",re,f(d.title??"CC Dashboard"),1),L(k.$slots,"actions"),h(y,{variant:"ghost",size:"icon",onClick:v},{default:p(()=>[...r[2]||(r[2]=[t("svg",{class:"h-4 w-4 hidden dark:block",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})],-1),t("svg",{class:"h-4 w-4 dark:hidden",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})],-1)])]),_:1}),t("div",ae,[h(oe,{name:((e=g(c).user)==null?void 0:e.username)??((m=g(c).user)==null?void 0:m.email),size:"sm"},null,8,["name"]),h(y,{variant:"ghost",size:"sm",class:"text-xs text-muted-foreground",onClick:a},{default:p(()=>[...r[3]||(r[3]=[T(" Sign out ",-1)])]),_:1})])])}}}),ie={class:"h-screen flex overflow-hidden bg-background"},de={class:"flex-1 flex flex-col overflow-hidden min-w-0"},ce={class:"flex-1 overflow-y-auto"},pe=w({__name:"AppLayout",setup(d){const u=B(),n=N(!1),c=x(()=>({dashboard:"Dashboard",calendar:"Calendar",planner:"Planner",projects:"Projects","project-detail":"Project Details",live:"Live Feed",reports:"AI Reports",keys:"API Keys",settings:"Settings",admin:"Admin"})[u.name]??"CC Dashboard");return(i,a)=>{const v=j("RouterView");return s(),o("div",ie,[h(P,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:p(()=>[n.value?(s(),o("div",{key:0,class:"fixed inset-0 z-20 bg-black/60 lg:hidden",onClick:a[0]||(a[0]=k=>n.value=!1)})):M("",!0)]),_:1}),t("div",{class:C(["fixed inset-y-0 left-0 z-30 w-60 transform transition-transform duration-300 lg:relative lg:translate-x-0",n.value?"translate-x-0":"-translate-x-full"])},[h(ee,{onClose:a[1]||(a[1]=k=>n.value=!1)})],2),t("div",de,[h(le,{title:c.value,"sidebar-open":n.value,onToggleSidebar:a[2]||(a[2]=k=>n.value=!n.value)},null,8,["title","sidebar-open"]),t("main",ce,[h(v)])])])}}});export{pe as default}; diff --git a/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js b/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js deleted file mode 100644 index f6cb501..0000000 --- a/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a}from"./utils-CFgQVuqB.js";import{d as n,o,c as s,p as d,i,v as c}from"./index-DRwzmrLE.js";const f=n({__name:"Badge",props:{variant:{default:"default"},class:{}},setup(r){const e=r;return(t,l)=>(o(),s("span",{class:d(i(a)("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors",{"bg-primary text-primary-foreground":e.variant==="default","bg-secondary text-secondary-foreground":e.variant==="secondary","bg-destructive text-destructive-foreground":e.variant==="destructive","border border-border text-foreground":e.variant==="outline","bg-emerald-500/20 text-emerald-400":e.variant==="success","bg-amber-500/20 text-amber-400":e.variant==="warning"},e.class))},[c(t.$slots,"default")],2))}});export{f as _}; diff --git a/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js b/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js new file mode 100644 index 0000000..228ae4b --- /dev/null +++ b/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js @@ -0,0 +1 @@ +import{c as a}from"./utils-DWBfPysr.js";import{d as n,o as s,c as o,p as d,i,s as c}from"./index-ZkX-rg-0.js";const f=n({__name:"Badge",props:{variant:{default:"default"},class:{}},setup(r){const e=r;return(t,l)=>(s(),o("span",{class:d(i(a)("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors",{"bg-primary text-primary-foreground":e.variant==="default","bg-secondary text-secondary-foreground":e.variant==="secondary","bg-destructive text-destructive-foreground":e.variant==="destructive","border border-border text-foreground":e.variant==="outline","bg-emerald-500/20 text-emerald-400":e.variant==="success","bg-amber-500/20 text-amber-400":e.variant==="warning"},e.class))},[c(t.$slots,"default")],2))}});export{f as _}; diff --git a/src/static/assets/Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js new file mode 100644 index 0000000..0fa0cf8 --- /dev/null +++ b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js @@ -0,0 +1 @@ +import{c,_ as l}from"./utils-DWBfPysr.js";import{d as u,c as f,p as m,n as b,j as v,s as g,m as p,o as n}from"./index-ZkX-rg-0.js";const y=["type","disabled"],k=u({__name:"Button",props:{variant:{default:"default"},size:{default:"md"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{default:"button"},class:{}},emits:["click"],setup(t,{emit:o}){const e=t,a=o,r=p(()=>c("inline-flex items-center justify-center rounded-md font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50",{"bg-primary text-primary-foreground hover:bg-primary/90":e.variant==="default","border border-input bg-background hover:bg-accent hover:text-accent-foreground":e.variant==="outline","hover:bg-accent hover:text-accent-foreground":e.variant==="ghost","bg-destructive text-destructive-foreground hover:bg-destructive/90":e.variant==="destructive","bg-secondary text-secondary-foreground hover:bg-secondary/80":e.variant==="secondary","underline-offset-4 hover:underline text-primary":e.variant==="link","h-8 px-3 text-xs":e.size==="sm","h-10 px-4 py-2 text-sm":e.size==="md","h-11 px-8 text-base":e.size==="lg","h-9 w-9 p-0":e.size==="icon"},e.class));return(i,s)=>(n(),f("button",{class:m(r.value),type:t.type,disabled:t.disabled||t.loading,onClick:s[0]||(s[0]=d=>a("click",d))},[t.loading?(n(),b(l,{key:0,size:"sm",class:"mr-2"})):v("",!0),g(i.$slots,"default")],10,y))}});export{k as _}; diff --git a/src/static/assets/Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js deleted file mode 100644 index e47d551..0000000 --- a/src/static/assets/Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js +++ /dev/null @@ -1 +0,0 @@ -import{c,_ as l}from"./utils-CFgQVuqB.js";import{d as u,c as f,p as m,n as v,j as b,v as g,m as p,o}from"./index-DRwzmrLE.js";const y=["type","disabled"],k=u({__name:"Button",props:{variant:{default:"default"},size:{default:"md"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{default:"button"},class:{}},emits:["click"],setup(t,{emit:s}){const e=t,a=s,r=p(()=>c("inline-flex items-center justify-center rounded-md font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50",{"bg-primary text-primary-foreground hover:bg-primary/90":e.variant==="default","border border-input bg-background hover:bg-accent hover:text-accent-foreground":e.variant==="outline","hover:bg-accent hover:text-accent-foreground":e.variant==="ghost","bg-destructive text-destructive-foreground hover:bg-destructive/90":e.variant==="destructive","bg-secondary text-secondary-foreground hover:bg-secondary/80":e.variant==="secondary","underline-offset-4 hover:underline text-primary":e.variant==="link","h-8 px-3 text-xs":e.size==="sm","h-10 px-4 py-2 text-sm":e.size==="md","h-11 px-8 text-base":e.size==="lg","h-9 w-9 p-0":e.size==="icon"},e.class));return(i,n)=>(o(),f("button",{class:m(r.value),type:t.type,disabled:t.disabled||t.loading,onClick:n[0]||(n[0]=d=>a("click",d))},[t.loading?(o(),v(l,{key:0,size:"sm",class:"mr-2"})):b("",!0),g(i.$slots,"default")],10,y))}});export{k as _}; diff --git a/src/static/assets/CalendarView-Cia6IWHT.js b/src/static/assets/CalendarView-57qKDHXv.js similarity index 98% rename from src/static/assets/CalendarView-Cia6IWHT.js rename to src/static/assets/CalendarView-57qKDHXv.js index 41eab8f..2450ecc 100644 --- a/src/static/assets/CalendarView-Cia6IWHT.js +++ b/src/static/assets/CalendarView-57qKDHXv.js @@ -1 +1 @@ -import{B as Ee,r as S,m as W,d as G,o as w,c as v,a as f,e as E,w as Q,k as pe,t as M,i as y,j as T,p as q,s as j,h as De,_ as $e,F,l as B,n as Ye,y as _e,K as me}from"./index-DRwzmrLE.js";import{d as Fe}from"./dashboard-Btm3piK7.js";import{i as P,f as U}from"./utils-CFgQVuqB.js";import{_ as K}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{u as se,_ as Be}from"./TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js";import{_ as Ne}from"./Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js";import"./Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js";import"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import"./devops-l4WPqQke.js";const Z=40/30;function Le(t){if(t.length===0)return[];const n=[...t].sort((o,c)=>new Date(o.start_at).getTime()-new Date(c.start_at).getTime()),e=[],r=[];for(const o of n){const c=new Date(o.start_at).getTime(),i=new Date(o.end_at).getTime();let l=-1;for(let d=0;d{const i=new Date(o.start_at).getTime(),l=new Date(o.end_at).getTime();let d=c;for(const u of r){const h=new Date(u.block.start_at).getTime(),m=new Date(u.block.end_at).getTime();hi&&u.lane>d&&(d=u.lane)}return{block:o,lane:c,totalLanes:d+1}})}function je(t,n=7){return((t.getHours()-n)*60+t.getMinutes())*Z}function He(t,n){const e=(n.getTime()-t.getTime())/6e4;return Math.max(e*Z,20)}function he(t){const n=t.getDay(),e=new Date(t);return e.setDate(t.getDate()-(n+6)%7),e.setHours(0,0,0,0),Array.from({length:7},(r,a)=>{const o=new Date(e);return o.setDate(e.getDate()+a),o})}function ge(t,n=15){return Math.round(t/n)*n}const J=Ee("calendar",()=>{const t=S([]),n=S(new Date),e=S("week"),r=S(!1),a=S(null),o=W(()=>he(n.value));async function c(s,_,x){r.value=!0,a.value=null;try{const b=await Fe.calendar({from:s,to:_,view:x});t.value=b.data}catch(b){const O=b;a.value=O.message??"Failed to fetch calendar"}finally{r.value=!1}}async function i(){if(e.value==="week"){const s=he(n.value),_=P(s[0]),x=P(s[6]);await c(_,x,"week")}else{const s=P(n.value);await c(s,s,"day")}}function l(){const s=new Date(n.value);e.value==="week"?s.setDate(s.getDate()-7):s.setDate(s.getDate()-1),n.value=s}function d(){const s=new Date(n.value);e.value==="week"?s.setDate(s.getDate()+7):s.setDate(s.getDate()+1),n.value=s}function u(){n.value=new Date}function h(s){e.value=s}function m(s){t.value.push(s)}function p(s){const _=t.value.findIndex(x=>x.id===s.id);_!==-1&&(t.value[_]=s)}function D(s){t.value=t.value.filter(_=>_.id!==s)}function g(s){const _=P(s);return t.value.filter(x=>P(new Date(x.start_at))===_)}return{blocks:t,currentDate:n,view:e,loading:r,error:a,weekDays:o,fetch:c,fetchCurrentView:i,navigatePrev:l,navigateNext:d,goToToday:u,setView:h,addBlock:m,updateBlock:p,removeBlock:D,getBlocksForDay:g}});function C(t){const n=Object.prototype.toString.call(t);return t instanceof Date||typeof t=="object"&&n==="[object Date]"?new t.constructor(+t):typeof t=="number"||n==="[object Number]"||typeof t=="string"||n==="[object String]"?new Date(t):new Date(NaN)}function z(t,n){return t instanceof Date?new t.constructor(n):new Date(n)}const Me=6048e5,qe=864e5;let ze={};function te(){return ze}function X(t,n){var i,l,d,u;const e=te(),r=(n==null?void 0:n.weekStartsOn)??((l=(i=n==null?void 0:n.locale)==null?void 0:i.options)==null?void 0:l.weekStartsOn)??e.weekStartsOn??((u=(d=e.locale)==null?void 0:d.options)==null?void 0:u.weekStartsOn)??0,a=C(t),o=a.getDay(),c=(o=a.getTime()?e+1:n.getTime()>=c.getTime()?e:e-1}function we(t){const n=C(t);return n.setHours(0,0,0,0),n}function ve(t){const n=C(t),e=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return e.setUTCFullYear(n.getFullYear()),+t-+e}function Re(t,n){const e=we(t),r=we(n),a=+e-ve(e),o=+r-ve(r);return Math.round((a-o)/qe)}function Ve(t){const n=Pe(t),e=z(t,0);return e.setFullYear(n,0,4),e.setHours(0,0,0,0),ee(e)}function Ae(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function Ie(t){if(!Ae(t)&&typeof t!="number")return!1;const n=C(t);return!isNaN(Number(n))}function Qe(t){const n=C(t),e=z(t,0);return e.setFullYear(n.getFullYear(),0,1),e.setHours(0,0,0,0),e}const Xe={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Ge=(t,n,e)=>{let r;const a=Xe[t];return typeof a=="string"?r=a:n===1?r=a.one:r=a.other.replace("{{count}}",n.toString()),e!=null&&e.addSuffix?e.comparison&&e.comparison>0?"in "+r:r+" ago":r};function ae(t){return(n={})=>{const e=n.width?String(n.width):t.defaultWidth;return t.formats[e]||t.formats[t.defaultWidth]}}const Je={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Ue={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ke={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Ze={date:ae({formats:Je,defaultWidth:"full"}),time:ae({formats:Ue,defaultWidth:"full"}),dateTime:ae({formats:Ke,defaultWidth:"full"})},et={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},tt=(t,n,e,r)=>et[t];function A(t){return(n,e)=>{const r=e!=null&&e.context?String(e.context):"standalone";let a;if(r==="formatting"&&t.formattingValues){const c=t.defaultFormattingWidth||t.defaultWidth,i=e!=null&&e.width?String(e.width):c;a=t.formattingValues[i]||t.formattingValues[c]}else{const c=t.defaultWidth,i=e!=null&&e.width?String(e.width):t.defaultWidth;a=t.values[i]||t.values[c]}const o=t.argumentCallback?t.argumentCallback(n):n;return a[o]}}const nt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},rt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},at={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},ot={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},st={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},it={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ut=(t,n)=>{const e=Number(t),r=e%100;if(r>20||r<10)switch(r%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"},ct={ordinalNumber:ut,era:A({values:nt,defaultWidth:"wide"}),quarter:A({values:rt,defaultWidth:"wide",argumentCallback:t=>t-1}),month:A({values:at,defaultWidth:"wide"}),day:A({values:ot,defaultWidth:"wide"}),dayPeriod:A({values:st,defaultWidth:"wide",formattingValues:it,defaultFormattingWidth:"wide"})};function I(t){return(n,e={})=>{const r=e.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=n.match(a);if(!o)return null;const c=o[0],i=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],l=Array.isArray(i)?lt(i,h=>h.test(c)):dt(i,h=>h.test(c));let d;d=t.valueCallback?t.valueCallback(l):l,d=e.valueCallback?e.valueCallback(d):d;const u=n.slice(c.length);return{value:d,rest:u}}}function dt(t,n){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&n(t[e]))return e}function lt(t,n){for(let e=0;e{const r=n.match(t.matchPattern);if(!r)return null;const a=r[0],o=n.match(t.parsePattern);if(!o)return null;let c=t.valueCallback?t.valueCallback(o[0]):o[0];c=e.valueCallback?e.valueCallback(c):c;const i=n.slice(a.length);return{value:c,rest:i}}}const mt=/^(\d+)(th|st|nd|rd)?/i,ht=/\d+/i,gt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},wt={any:[/^b/i,/^(a|c)/i]},vt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},yt={any:[/1/i,/2/i,/3/i,/4/i]},bt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},kt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},xt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},pt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Dt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},_t={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Mt={ordinalNumber:ft({matchPattern:mt,parsePattern:ht,valueCallback:t=>parseInt(t,10)}),era:I({matchPatterns:gt,defaultMatchWidth:"wide",parsePatterns:wt,defaultParseWidth:"any"}),quarter:I({matchPatterns:vt,defaultMatchWidth:"wide",parsePatterns:yt,defaultParseWidth:"any",valueCallback:t=>t+1}),month:I({matchPatterns:bt,defaultMatchWidth:"wide",parsePatterns:kt,defaultParseWidth:"any"}),day:I({matchPatterns:xt,defaultMatchWidth:"wide",parsePatterns:pt,defaultParseWidth:"any"}),dayPeriod:I({matchPatterns:Dt,defaultMatchWidth:"any",parsePatterns:_t,defaultParseWidth:"any"})},Pt={code:"en-US",formatDistance:Ge,formatLong:Ze,formatRelative:tt,localize:ct,match:Mt,options:{weekStartsOn:0,firstWeekContainsDate:1}};function St(t){const n=C(t);return Re(n,Qe(n))+1}function Tt(t){const n=C(t),e=+ee(n)-+Ve(n);return Math.round(e/Me)+1}function Se(t,n){var u,h,m,p;const e=C(t),r=e.getFullYear(),a=te(),o=(n==null?void 0:n.firstWeekContainsDate)??((h=(u=n==null?void 0:n.locale)==null?void 0:u.options)==null?void 0:h.firstWeekContainsDate)??a.firstWeekContainsDate??((p=(m=a.locale)==null?void 0:m.options)==null?void 0:p.firstWeekContainsDate)??1,c=z(t,0);c.setFullYear(r+1,0,o),c.setHours(0,0,0,0);const i=X(c,n),l=z(t,0);l.setFullYear(r,0,o),l.setHours(0,0,0,0);const d=X(l,n);return e.getTime()>=i.getTime()?r+1:e.getTime()>=d.getTime()?r:r-1}function Ot(t,n){var i,l,d,u;const e=te(),r=(n==null?void 0:n.firstWeekContainsDate)??((l=(i=n==null?void 0:n.locale)==null?void 0:i.options)==null?void 0:l.firstWeekContainsDate)??e.firstWeekContainsDate??((u=(d=e.locale)==null?void 0:d.options)==null?void 0:u.firstWeekContainsDate)??1,a=Se(t,n),o=z(t,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),X(o,n)}function Ct(t,n){const e=C(t),r=+X(e,n)-+Ot(e,n);return Math.round(r/Me)+1}function k(t,n){const e=t<0?"-":"",r=Math.abs(t).toString().padStart(n,"0");return e+r}const $={y(t,n){const e=t.getFullYear(),r=e>0?e:1-e;return k(n==="yy"?r%100:r,n.length)},M(t,n){const e=t.getMonth();return n==="M"?String(e+1):k(e+1,2)},d(t,n){return k(t.getDate(),n.length)},a(t,n){const e=t.getHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.toUpperCase();case"aaa":return e;case"aaaaa":return e[0];case"aaaa":default:return e==="am"?"a.m.":"p.m."}},h(t,n){return k(t.getHours()%12||12,n.length)},H(t,n){return k(t.getHours(),n.length)},m(t,n){return k(t.getMinutes(),n.length)},s(t,n){return k(t.getSeconds(),n.length)},S(t,n){const e=n.length,r=t.getMilliseconds(),a=Math.trunc(r*Math.pow(10,e-3));return k(a,n.length)}},R={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},ye={G:function(t,n,e){const r=t.getFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return e.era(r,{width:"abbreviated"});case"GGGGG":return e.era(r,{width:"narrow"});case"GGGG":default:return e.era(r,{width:"wide"})}},y:function(t,n,e){if(n==="yo"){const r=t.getFullYear(),a=r>0?r:1-r;return e.ordinalNumber(a,{unit:"year"})}return $.y(t,n)},Y:function(t,n,e,r){const a=Se(t,r),o=a>0?a:1-a;if(n==="YY"){const c=o%100;return k(c,2)}return n==="Yo"?e.ordinalNumber(o,{unit:"year"}):k(o,n.length)},R:function(t,n){const e=Pe(t);return k(e,n.length)},u:function(t,n){const e=t.getFullYear();return k(e,n.length)},Q:function(t,n,e){const r=Math.ceil((t.getMonth()+1)/3);switch(n){case"Q":return String(r);case"QQ":return k(r,2);case"Qo":return e.ordinalNumber(r,{unit:"quarter"});case"QQQ":return e.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return e.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,n,e){const r=Math.ceil((t.getMonth()+1)/3);switch(n){case"q":return String(r);case"qq":return k(r,2);case"qo":return e.ordinalNumber(r,{unit:"quarter"});case"qqq":return e.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return e.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,n,e){const r=t.getMonth();switch(n){case"M":case"MM":return $.M(t,n);case"Mo":return e.ordinalNumber(r+1,{unit:"month"});case"MMM":return e.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return e.month(r,{width:"wide",context:"formatting"})}},L:function(t,n,e){const r=t.getMonth();switch(n){case"L":return String(r+1);case"LL":return k(r+1,2);case"Lo":return e.ordinalNumber(r+1,{unit:"month"});case"LLL":return e.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return e.month(r,{width:"wide",context:"standalone"})}},w:function(t,n,e,r){const a=Ct(t,r);return n==="wo"?e.ordinalNumber(a,{unit:"week"}):k(a,n.length)},I:function(t,n,e){const r=Tt(t);return n==="Io"?e.ordinalNumber(r,{unit:"week"}):k(r,n.length)},d:function(t,n,e){return n==="do"?e.ordinalNumber(t.getDate(),{unit:"date"}):$.d(t,n)},D:function(t,n,e){const r=St(t);return n==="Do"?e.ordinalNumber(r,{unit:"dayOfYear"}):k(r,n.length)},E:function(t,n,e){const r=t.getDay();switch(n){case"E":case"EE":case"EEE":return e.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(r,{width:"short",context:"formatting"});case"EEEE":default:return e.day(r,{width:"wide",context:"formatting"})}},e:function(t,n,e,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(n){case"e":return String(o);case"ee":return k(o,2);case"eo":return e.ordinalNumber(o,{unit:"day"});case"eee":return e.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(a,{width:"short",context:"formatting"});case"eeee":default:return e.day(a,{width:"wide",context:"formatting"})}},c:function(t,n,e,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(n){case"c":return String(o);case"cc":return k(o,n.length);case"co":return e.ordinalNumber(o,{unit:"day"});case"ccc":return e.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(a,{width:"narrow",context:"standalone"});case"cccccc":return e.day(a,{width:"short",context:"standalone"});case"cccc":default:return e.day(a,{width:"wide",context:"standalone"})}},i:function(t,n,e){const r=t.getDay(),a=r===0?7:r;switch(n){case"i":return String(a);case"ii":return k(a,n.length);case"io":return e.ordinalNumber(a,{unit:"day"});case"iii":return e.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(r,{width:"short",context:"formatting"});case"iiii":default:return e.day(r,{width:"wide",context:"formatting"})}},a:function(t,n,e){const a=t.getHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,n,e){const r=t.getHours();let a;switch(r===12?a=R.noon:r===0?a=R.midnight:a=r/12>=1?"pm":"am",n){case"b":case"bb":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,n,e){const r=t.getHours();let a;switch(r>=17?a=R.evening:r>=12?a=R.afternoon:r>=4?a=R.morning:a=R.night,n){case"B":case"BB":case"BBB":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,n,e){if(n==="ho"){let r=t.getHours()%12;return r===0&&(r=12),e.ordinalNumber(r,{unit:"hour"})}return $.h(t,n)},H:function(t,n,e){return n==="Ho"?e.ordinalNumber(t.getHours(),{unit:"hour"}):$.H(t,n)},K:function(t,n,e){const r=t.getHours()%12;return n==="Ko"?e.ordinalNumber(r,{unit:"hour"}):k(r,n.length)},k:function(t,n,e){let r=t.getHours();return r===0&&(r=24),n==="ko"?e.ordinalNumber(r,{unit:"hour"}):k(r,n.length)},m:function(t,n,e){return n==="mo"?e.ordinalNumber(t.getMinutes(),{unit:"minute"}):$.m(t,n)},s:function(t,n,e){return n==="so"?e.ordinalNumber(t.getSeconds(),{unit:"second"}):$.s(t,n)},S:function(t,n){return $.S(t,n)},X:function(t,n,e){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(n){case"X":return ke(r);case"XXXX":case"XX":return L(r);case"XXXXX":case"XXX":default:return L(r,":")}},x:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"x":return ke(r);case"xxxx":case"xx":return L(r);case"xxxxx":case"xxx":default:return L(r,":")}},O:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+be(r,":");case"OOOO":default:return"GMT"+L(r,":")}},z:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+be(r,":");case"zzzz":default:return"GMT"+L(r,":")}},t:function(t,n,e){const r=Math.trunc(t.getTime()/1e3);return k(r,n.length)},T:function(t,n,e){const r=t.getTime();return k(r,n.length)}};function be(t,n=""){const e=t>0?"-":"+",r=Math.abs(t),a=Math.trunc(r/60),o=r%60;return o===0?e+String(a):e+String(a)+n+k(o,2)}function ke(t,n){return t%60===0?(t>0?"-":"+")+k(Math.abs(t)/60,2):L(t,n)}function L(t,n=""){const e=t>0?"-":"+",r=Math.abs(t),a=k(Math.trunc(r/60),2),o=k(r%60,2);return e+a+n+o}const xe=(t,n)=>{switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},Te=(t,n)=>{switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},Wt=(t,n)=>{const e=t.match(/(P+)(p+)?/)||[],r=e[1],a=e[2];if(!a)return xe(t,n);let o;switch(r){case"P":o=n.dateTime({width:"short"});break;case"PP":o=n.dateTime({width:"medium"});break;case"PPP":o=n.dateTime({width:"long"});break;case"PPPP":default:o=n.dateTime({width:"full"});break}return o.replace("{{date}}",xe(r,n)).replace("{{time}}",Te(a,n))},Et={p:Te,P:Wt},$t=/^D+$/,Yt=/^Y+$/,Ft=["D","DD","YY","YYYY"];function Bt(t){return $t.test(t)}function Nt(t){return Yt.test(t)}function Lt(t,n,e){const r=jt(t,n,e);if(console.warn(r),Ft.includes(t))throw new RangeError(r)}function jt(t,n,e){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${n}\`) for formatting ${r} to the input \`${e}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Ht=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,qt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,zt=/^'([^]*?)'?$/,Rt=/''/g,Vt=/[a-zA-Z]/;function H(t,n,e){var u,h,m,p,D,g,s,_;const r=te(),a=(e==null?void 0:e.locale)??r.locale??Pt,o=(e==null?void 0:e.firstWeekContainsDate)??((h=(u=e==null?void 0:e.locale)==null?void 0:u.options)==null?void 0:h.firstWeekContainsDate)??r.firstWeekContainsDate??((p=(m=r.locale)==null?void 0:m.options)==null?void 0:p.firstWeekContainsDate)??1,c=(e==null?void 0:e.weekStartsOn)??((g=(D=e==null?void 0:e.locale)==null?void 0:D.options)==null?void 0:g.weekStartsOn)??r.weekStartsOn??((_=(s=r.locale)==null?void 0:s.options)==null?void 0:_.weekStartsOn)??0,i=C(t);if(!Ie(i))throw new RangeError("Invalid time value");let l=n.match(qt).map(x=>{const b=x[0];if(b==="p"||b==="P"){const O=Et[b];return O(x,a.formatLong)}return x}).join("").match(Ht).map(x=>{if(x==="''")return{isToken:!1,value:"'"};const b=x[0];if(b==="'")return{isToken:!1,value:At(x)};if(ye[b])return{isToken:!0,value:x};if(b.match(Vt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return{isToken:!1,value:x}});a.localize.preprocessor&&(l=a.localize.preprocessor(i,l));const d={firstWeekContainsDate:o,weekStartsOn:c,locale:a};return l.map(x=>{if(!x.isToken)return x.value;const b=x.value;(!(e!=null&&e.useAdditionalWeekYearTokens)&&Nt(b)||!(e!=null&&e.useAdditionalDayOfYearTokens)&&Bt(b))&&Lt(b,n,String(t));const O=ye[b[0]];return O(i,b,a.localize,d)}).join("")}function At(t){const n=t.match(zt);return n?n[1].replace(Rt,"'"):t}const It={class:"flex items-center gap-2 flex-wrap"},Qt={class:"flex items-center gap-1"},Xt={class:"text-sm font-medium text-foreground flex-1 min-w-0 truncate"},Gt={key:0,class:"text-xs text-muted-foreground"},Jt={class:"flex items-center rounded-md border border-border overflow-hidden"},Ut=G({__name:"CalendarToolbar",setup(t){const n=J(),e=W(()=>{if(n.view==="week"){const c=n.weekDays;if(!c.length)return"";const i=c[0],l=c[6];return i.getMonth()===l.getMonth()?`${H(i,"MMM d")} – ${H(l,"d, yyyy")}`:`${H(i,"MMM d")} – ${H(l,"MMM d, yyyy")}`}else return H(n.currentDate,"EEEE, MMMM d, yyyy")});async function r(c){c==="prev"?n.navigatePrev():n.navigateNext(),await n.fetchCurrentView()}async function a(){n.goToToday(),await n.fetchCurrentView()}async function o(c){n.setView(c),await n.fetchCurrentView()}return(c,i)=>(w(),v("div",It,[f("div",Qt,[E(K,{variant:"outline",size:"sm",onClick:i[0]||(i[0]=l=>r("prev"))},{default:Q(()=>[...i[4]||(i[4]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1}),E(K,{variant:"outline",size:"sm",onClick:a},{default:Q(()=>[...i[5]||(i[5]=[pe("Today",-1)])]),_:1}),E(K,{variant:"outline",size:"sm",onClick:i[1]||(i[1]=l=>r("next"))},{default:Q(()=>[...i[6]||(i[6]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])]),_:1})]),f("span",Xt,M(e.value),1),y(n).loading?(w(),v("div",Gt,"Loading...")):T("",!0),f("div",Jt,[f("button",{class:q(["px-3 py-1.5 text-xs font-medium transition-colors",y(n).view==="day"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:i[2]||(i[2]=l=>o("day"))}," Day ",2),f("button",{class:q(["px-3 py-1.5 text-xs font-medium transition-colors",y(n).view==="week"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:i[3]||(i[3]=l=>o("week"))}," Week ",2)])]))}}),Kt=7;function Oe(){const t=se(),n=J(),e=S(null),r=S(null),a=S(null),o=S(null);function c(D,g){var s,_;e.value=D.id,(s=g.dataTransfer)==null||s.setData("task_id",D.id),(_=g.dataTransfer)==null||_.setData("estimate_hours",String(D.estimate_hours??1))}function i(D,g){g.preventDefault(),r.value=P(D)}function l(){r.value=null}async function d(D,g){var le,fe;g.preventDefault(),r.value=null,e.value=null;const s=(le=g.dataTransfer)==null?void 0:le.getData("task_id"),_=parseFloat(((fe=g.dataTransfer)==null?void 0:fe.getData("estimate_hours"))??"1")||1;if(!s)return;const b=g.currentTarget.getBoundingClientRect(),O=g.clientY-b.top,ie=ge(O/Z,15),ne=Math.max(0,Math.min(ie,12*60)),N=new Date(D);N.setHours(Kt,0,0,0),N.setMinutes(N.getMinutes()+ne);const re=new Date(N);re.setMinutes(re.getMinutes()+Math.round(_*60));const ue=N.toISOString(),ce=re.toISOString(),de=`temp_${Date.now()}`,Ce={kind:"planned",id:de,project_id:null,job_number:"",display_name:"Loading...",start_at:ue,end_at:ce,title:"",color_hue:260,tags:[],task_id:s,session_id:null,manual_entry_id:null};n.addBlock(Ce);try{await t.createBlock(s,{start_at:ue,end_at:ce}),await n.fetchCurrentView()}catch(We){n.removeBlock(de),console.error("Failed to create task block:",We)}}let u=0,h="",m=null;function p(D,g){g.preventDefault(),g.stopPropagation(),a.value=D,m=D,u=g.clientY,h=D.end_at,o.value=D.end_at;const s=x=>{if(!m)return;const b=x.clientY-u,O=ge(b/Z,15),ne=new Date(h).getTime()+O*6e4,N=new Date(m.start_at).getTime()+15*6e4;o.value=new Date(Math.max(ne,N)).toISOString()},_=async()=>{if(document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",_),!m||!o.value){a.value=null;return}const x=m.id,b=o.value;if(b===h){a.value=null,o.value=null;return}try{m.task_id&&await t.updateBlock(x,{end_at:b}),n.updateBlock({...m,end_at:b})}catch(O){console.error("Failed to resize block:",O),n.updateBlock({...m,end_at:h})}a.value=null,o.value=null,m=null};document.addEventListener("mousemove",s),document.addEventListener("mouseup",_)}return{draggingTaskId:e,dragOverDay:r,resizingBlock:a,resizePreviewEnd:o,onDragStart:c,onDragOver:i,onDragLeave:l,onDrop:d,onResizeStart:p}}function Zt(t){return`hsla(${t}, 65%, 45%, 0.85)`}function en(t){return`hsla(${t}, 65%, 55%, 1)`}const tn={class:"px-1.5 py-1 h-full flex flex-col text-white overflow-hidden"},nn={class:"text-xs font-semibold leading-tight truncate"},rn={key:0,class:"text-xs opacity-75 truncate"},an={key:1,class:"text-xs opacity-75 mt-auto"},on=G({__name:"CalendarBlock",props:{block:{},lane:{},totalLanes:{},top:{},height:{},resizeEnd:{}},emits:["resizeStart","click"],setup(t,{emit:n}){const e=t,r=n,a=W(()=>e.resizeEnd?new Date(e.resizeEnd):new Date(e.block.end_at)),o=W(()=>{if(!e.resizeEnd)return e.height;const u=(a.value.getTime()-new Date(e.block.start_at).getTime())/6e4;return Math.max(u*(40/30),20)}),c=W(()=>{const d=a.value.getTime()-new Date(e.block.start_at).getTime();return U(d/36e5)}),i=W(()=>{const d=`calc(${100/e.totalLanes}% - 2px)`,u=`calc(${e.lane/e.totalLanes*100}% + 1px)`;return{top:`${e.top}px`,height:`${o.value}px`,width:d,left:u,backgroundColor:Zt(e.block.color_hue),borderColor:en(e.block.color_hue)}}),l=W(()=>o.value<40);return(d,u)=>(w(),v("div",{class:q(["absolute rounded overflow-hidden cursor-pointer select-none group",{"border-2":t.block.kind==="session","border-2 border-dashed opacity-80":t.block.kind==="planned","border-2 calendar-block--manual":t.block.kind==="manual"}]),style:j(i.value),onClick:u[1]||(u[1]=h=>r("click",t.block))},[f("div",tn,[f("p",nn,M(t.block.display_name),1),!l.value&&t.block.job_number?(w(),v("p",rn,M(t.block.job_number),1)):T("",!0),l.value?T("",!0):(w(),v("p",an,M(c.value),1))]),f("div",{class:"absolute bottom-0 left-0 right-0 h-2 cursor-s-resize opacity-0 group-hover:opacity-100 flex items-center justify-center",onMousedown:u[0]||(u[0]=De(h=>r("resizeStart",h),["stop"]))},[...u[2]||(u[2]=[f("div",{class:"w-8 h-0.5 bg-white/60 rounded"},null,-1)])],32)],6))}}),sn=$e(on,[["__scopeId","data-v-5829880c"]]),un={class:"flex overflow-auto h-full"},cn={class:"flex flex-1 gap-px min-w-0"},dn=["onDragover","onDrop"],ln={key:1,class:"absolute inset-0 bg-primary/10 pointer-events-none z-0"},Y=7,oe=19,V=40,fn=G({__name:"CalendarGrid",emits:["blockClick"],setup(t,{emit:n}){const e=Array.from({length:oe-Y+1},(p,D)=>Y+D),r=J(),a=Oe(),o=n,c=W(()=>r.view==="week"?r.weekDays:[r.currentDate]),i=P(new Date);function l(p){const D=r.getBlocksForDay(p);return Le(D)}function d(p){return je(new Date(p.start_at),Y)}function u(p){return He(new Date(p.start_at),new Date(p.end_at))}function h(p){var D;return((D=a.resizingBlock.value)==null?void 0:D.id)===p.id}function m(p){return p===12?"12 PM":p>12?`${p-12} PM`:`${p} AM`}return(p,D)=>(w(),v("div",un,[f("div",{class:"w-12 shrink-0 relative",style:j({height:`${(oe-Y+1)*V*2}px`})},[(w(!0),v(F,null,B(y(e),g=>(w(),v("div",{key:g,class:"absolute right-2 text-xs text-muted-foreground",style:j({top:`${(g-Y)*V*2-6}px`})},M(m(g)),5))),128))],4),f("div",cn,[(w(!0),v(F,null,B(c.value,g=>(w(),v("div",{key:y(P)(g),class:q(["flex-1 relative border-l border-border",{"bg-primary/5":y(P)(g)===y(i)}]),style:j({height:`${(oe-Y)*V*2}px`}),onDragover:s=>y(a).onDragOver(g,s),onDragleave:D[0]||(D[0]=s=>y(a).onDragLeave()),onDrop:s=>y(a).onDrop(g,s)},[y(r).view==="week"?(w(),v("div",{key:0,class:q(["sticky top-0 z-10 text-center py-1 text-xs font-medium border-b border-border bg-background",y(P)(g)===y(i)?"text-primary":"text-muted-foreground"])},[f("div",null,M(y(H)(g,"EEE")),1),f("div",{class:q(["inline-flex h-6 w-6 mx-auto items-center justify-center rounded-full text-sm",y(P)(g)===y(i)?"bg-primary text-primary-foreground":""])},M(y(H)(g,"d")),3)],2)):T("",!0),(w(!0),v(F,null,B(y(e),s=>(w(),v("div",{key:s,class:"absolute left-0 right-0 border-t border-border/40",style:j({top:`${(s-Y)*V*2}px`})},null,4))),128)),(w(!0),v(F,null,B(y(e).slice(0,-1),s=>(w(),v("div",{key:`half-${s}`,class:"absolute left-0 right-0 border-t border-border/20",style:j({top:`${(s-Y)*V*2+V}px`})},null,4))),128)),y(a).dragOverDay.value===y(P)(g)?(w(),v("div",ln)):T("",!0),(w(!0),v(F,null,B(l(g),({block:s,lane:_,totalLanes:x})=>(w(),Ye(sn,{key:s.id,block:s,lane:_,"total-lanes":x,top:d(s),height:u(s),"resize-end":h(s)?y(a).resizePreviewEnd.value:null,onClick:b=>o("blockClick",s),onResizeStart:b=>y(a).onResizeStart(s,b)},null,8,["block","lane","total-lanes","top","height","resize-end","onClick","onResizeStart"]))),128))],46,dn))),128))])]))}}),mn={class:"flex flex-col h-full bg-card border-l border-border"},hn={class:"p-3 border-b border-border flex items-center justify-between shrink-0"},gn={class:"flex-1 overflow-y-auto p-2 space-y-1.5"},wn={key:0,class:"text-xs text-muted-foreground p-2"},vn={key:1,class:"text-xs text-muted-foreground p-2 text-center"},yn=["onDragstart"],bn={class:"flex items-start gap-2"},kn={class:"flex-1 min-w-0"},xn={class:"text-xs font-medium text-foreground leading-tight truncate"},pn={class:"flex items-center gap-1.5 mt-1 flex-wrap"},Dn={key:0,class:"text-xs text-muted-foreground"},_n={key:0,class:"p-3 border-t border-border shrink-0"},Mn={class:"space-y-1"},Pn={class:"text-muted-foreground truncate max-w-[100px]"},Sn={class:"text-foreground"},Tn=G({__name:"PlannerSidebar",emits:["createTask"],setup(t,{emit:n}){const e=se(),r=J(),a=Oe(),o=n,c=W(()=>P(r.currentDate));_e(()=>{e.fetchForDate(c.value)});const i=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],l=u=>u>=4?"bg-red-500":u===3?"bg-amber-500":"bg-emerald-500",d=W(()=>{const u={};for(const h of e.tasks){const m=h.project_id??"_none";u[m]||(u[m]={name:h.project_id?m:"No Project",planned:0,actual:0}),u[m].planned+=h.estimate_hours??0,u[m].actual+=h.actual_hours??0}return Object.values(u)});return(u,h)=>(w(),v("div",mn,[f("div",hn,[h[2]||(h[2]=f("h3",{class:"text-sm font-semibold text-foreground"},"Planner",-1)),E(K,{size:"sm",variant:"ghost",onClick:h[0]||(h[0]=m=>o("createTask"))},{default:Q(()=>[...h[1]||(h[1]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)])]),_:1})]),f("div",gn,[y(e).loading?(w(),v("div",wn,"Loading...")):y(e).tasks.length===0?(w(),v("div",vn," No tasks for today ")):T("",!0),(w(!0),v(F,null,B(y(e).tasks,m=>(w(),v("div",{key:m.id,class:"rounded-md border border-border bg-background p-2 cursor-grab active:cursor-grabbing hover:border-primary/50 transition-colors",draggable:"true",onDragstart:p=>y(a).onDragStart(m,p)},[f("div",bn,[f("div",{class:q(["h-2 w-2 rounded-full mt-1.5 shrink-0",l(m.priority)])},null,2),f("div",kn,[f("p",xn,M(m.title),1),f("div",pn,[E(Ne,{variant:i(m.status),class:"text-xs py-0"},{default:Q(()=>[pe(M(m.status),1)]),_:2},1032,["variant"]),m.estimate_hours?(w(),v("span",Dn,M(y(U)(m.estimate_hours)),1)):T("",!0)])])])],40,yn))),128))]),d.value.length?(w(),v("div",_n,[h[3]||(h[3]=f("p",{class:"text-xs font-medium text-muted-foreground mb-2"},"Plan vs Actual",-1)),f("div",Mn,[(w(!0),v(F,null,B(d.value,m=>(w(),v("div",{key:m.name,class:"flex items-center justify-between text-xs"},[f("span",Pn,M(m.name),1),f("span",Sn,M(y(U)(m.planned))+" / "+M(y(U)(m.actual)),1)]))),128))])])):T("",!0)]))}}),On={class:"h-full flex flex-col"},Cn={class:"p-4 border-b border-border flex items-center gap-3 flex-wrap"},Wn={class:"flex items-center gap-2 ml-auto"},En={class:"flex-1 flex overflow-hidden"},$n={class:"flex-1 overflow-auto"},Yn={key:0,class:"w-56 shrink-0 overflow-hidden"},Fn={class:"bg-card border border-border rounded-lg shadow-xl p-4 w-72"},Bn={class:"flex items-start justify-between gap-2 mb-3"},Nn={class:"font-semibold text-sm text-foreground"},Ln={key:0,class:"text-xs text-muted-foreground"},jn={class:"space-y-1 text-xs text-muted-foreground"},Hn={key:0,class:"mt-2 flex flex-wrap gap-1"},Jn=G({__name:"CalendarView",setup(t){const n=J(),e=se(),r=S(!0),a=S(!1),o=S(null);_e(()=>{n.fetchCurrentView()});function c(l){o.value=l}async function i(l){try{await e.create(l),me.success("Task created"),a.value=!1,e.fetchForDate(P(n.currentDate))}catch{me.error("Failed to create task")}}return(l,d)=>(w(),v("div",On,[f("div",Cn,[E(Ut),f("div",Wn,[f("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:d[0]||(d[0]=u=>r.value=!r.value)},M(r.value?"Hide Planner":"Show Planner"),1)])]),f("div",En,[f("div",$n,[E(fn,{onBlockClick:c})]),r.value?(w(),v("div",Yn,[E(Tn,{onCreateTask:d[1]||(d[1]=u=>a.value=!0)})])):T("",!0)]),o.value?(w(),v("div",{key:0,class:"fixed inset-0 z-40 flex items-center justify-center p-4",onClick:d[3]||(d[3]=De(u=>o.value=null,["self"]))},[f("div",Fn,[f("div",Bn,[f("div",null,[f("p",Nn,M(o.value.display_name),1),o.value.job_number?(w(),v("p",Ln,M(o.value.job_number),1)):T("",!0)]),f("button",{class:"text-muted-foreground hover:text-foreground",onClick:d[2]||(d[2]=u=>o.value=null)},[...d[5]||(d[5]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),f("div",jn,[f("p",null,"Start: "+M(new Date(o.value.start_at).toLocaleString()),1),f("p",null,"End: "+M(new Date(o.value.end_at).toLocaleString()),1),f("p",null,"Type: "+M(o.value.kind),1)]),o.value.tags.length?(w(),v("div",Hn,[(w(!0),v(F,null,B(o.value.tags,u=>(w(),v("span",{key:u.id,class:"px-1.5 py-0.5 rounded text-xs",style:j({background:`${u.color_hex}22`,color:u.color_hex})},M(u.name),5))),128))])):T("",!0)])])):T("",!0),E(Be,{open:a.value,"default-date":y(P)(y(n).currentDate),onClose:d[4]||(d[4]=u=>a.value=!1),onSave:i},null,8,["open","default-date"])]))}});export{Jn as default}; +import{B as Ee,r as S,m as W,d as G,o as w,c as v,a as f,e as E,w as Q,k as pe,t as M,i as y,j as T,p as q,A as j,h as De,_ as $e,F,l as B,n as Ye,x as _e,K as me}from"./index-ZkX-rg-0.js";import{d as Fe}from"./dashboard-C1cvUjRU.js";import{i as P,f as U}from"./utils-DWBfPysr.js";import{_ as K}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{u as se,_ as Be}from"./TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js";import{_ as Ne}from"./Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js";import"./Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js";import"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import"./devops-CMTMKOVx.js";const Z=40/30;function Le(t){if(t.length===0)return[];const n=[...t].sort((o,c)=>new Date(o.start_at).getTime()-new Date(c.start_at).getTime()),e=[],r=[];for(const o of n){const c=new Date(o.start_at).getTime(),i=new Date(o.end_at).getTime();let l=-1;for(let d=0;d{const i=new Date(o.start_at).getTime(),l=new Date(o.end_at).getTime();let d=c;for(const u of r){const h=new Date(u.block.start_at).getTime(),m=new Date(u.block.end_at).getTime();hi&&u.lane>d&&(d=u.lane)}return{block:o,lane:c,totalLanes:d+1}})}function je(t,n=7){return((t.getHours()-n)*60+t.getMinutes())*Z}function He(t,n){const e=(n.getTime()-t.getTime())/6e4;return Math.max(e*Z,20)}function he(t){const n=t.getDay(),e=new Date(t);return e.setDate(t.getDate()-(n+6)%7),e.setHours(0,0,0,0),Array.from({length:7},(r,a)=>{const o=new Date(e);return o.setDate(e.getDate()+a),o})}function ge(t,n=15){return Math.round(t/n)*n}const J=Ee("calendar",()=>{const t=S([]),n=S(new Date),e=S("week"),r=S(!1),a=S(null),o=W(()=>he(n.value));async function c(s,_,x){r.value=!0,a.value=null;try{const b=await Fe.calendar({from:s,to:_,view:x});t.value=b.data}catch(b){const O=b;a.value=O.message??"Failed to fetch calendar"}finally{r.value=!1}}async function i(){if(e.value==="week"){const s=he(n.value),_=P(s[0]),x=P(s[6]);await c(_,x,"week")}else{const s=P(n.value);await c(s,s,"day")}}function l(){const s=new Date(n.value);e.value==="week"?s.setDate(s.getDate()-7):s.setDate(s.getDate()-1),n.value=s}function d(){const s=new Date(n.value);e.value==="week"?s.setDate(s.getDate()+7):s.setDate(s.getDate()+1),n.value=s}function u(){n.value=new Date}function h(s){e.value=s}function m(s){t.value.push(s)}function p(s){const _=t.value.findIndex(x=>x.id===s.id);_!==-1&&(t.value[_]=s)}function D(s){t.value=t.value.filter(_=>_.id!==s)}function g(s){const _=P(s);return t.value.filter(x=>P(new Date(x.start_at))===_)}return{blocks:t,currentDate:n,view:e,loading:r,error:a,weekDays:o,fetch:c,fetchCurrentView:i,navigatePrev:l,navigateNext:d,goToToday:u,setView:h,addBlock:m,updateBlock:p,removeBlock:D,getBlocksForDay:g}});function C(t){const n=Object.prototype.toString.call(t);return t instanceof Date||typeof t=="object"&&n==="[object Date]"?new t.constructor(+t):typeof t=="number"||n==="[object Number]"||typeof t=="string"||n==="[object String]"?new Date(t):new Date(NaN)}function z(t,n){return t instanceof Date?new t.constructor(n):new Date(n)}const Me=6048e5,qe=864e5;let ze={};function te(){return ze}function X(t,n){var i,l,d,u;const e=te(),r=(n==null?void 0:n.weekStartsOn)??((l=(i=n==null?void 0:n.locale)==null?void 0:i.options)==null?void 0:l.weekStartsOn)??e.weekStartsOn??((u=(d=e.locale)==null?void 0:d.options)==null?void 0:u.weekStartsOn)??0,a=C(t),o=a.getDay(),c=(o=a.getTime()?e+1:n.getTime()>=c.getTime()?e:e-1}function we(t){const n=C(t);return n.setHours(0,0,0,0),n}function ve(t){const n=C(t),e=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return e.setUTCFullYear(n.getFullYear()),+t-+e}function Re(t,n){const e=we(t),r=we(n),a=+e-ve(e),o=+r-ve(r);return Math.round((a-o)/qe)}function Ve(t){const n=Pe(t),e=z(t,0);return e.setFullYear(n,0,4),e.setHours(0,0,0,0),ee(e)}function Ae(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function Ie(t){if(!Ae(t)&&typeof t!="number")return!1;const n=C(t);return!isNaN(Number(n))}function Qe(t){const n=C(t),e=z(t,0);return e.setFullYear(n.getFullYear(),0,1),e.setHours(0,0,0,0),e}const Xe={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Ge=(t,n,e)=>{let r;const a=Xe[t];return typeof a=="string"?r=a:n===1?r=a.one:r=a.other.replace("{{count}}",n.toString()),e!=null&&e.addSuffix?e.comparison&&e.comparison>0?"in "+r:r+" ago":r};function ae(t){return(n={})=>{const e=n.width?String(n.width):t.defaultWidth;return t.formats[e]||t.formats[t.defaultWidth]}}const Je={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Ue={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ke={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Ze={date:ae({formats:Je,defaultWidth:"full"}),time:ae({formats:Ue,defaultWidth:"full"}),dateTime:ae({formats:Ke,defaultWidth:"full"})},et={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},tt=(t,n,e,r)=>et[t];function A(t){return(n,e)=>{const r=e!=null&&e.context?String(e.context):"standalone";let a;if(r==="formatting"&&t.formattingValues){const c=t.defaultFormattingWidth||t.defaultWidth,i=e!=null&&e.width?String(e.width):c;a=t.formattingValues[i]||t.formattingValues[c]}else{const c=t.defaultWidth,i=e!=null&&e.width?String(e.width):t.defaultWidth;a=t.values[i]||t.values[c]}const o=t.argumentCallback?t.argumentCallback(n):n;return a[o]}}const nt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},rt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},at={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},ot={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},st={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},it={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ut=(t,n)=>{const e=Number(t),r=e%100;if(r>20||r<10)switch(r%10){case 1:return e+"st";case 2:return e+"nd";case 3:return e+"rd"}return e+"th"},ct={ordinalNumber:ut,era:A({values:nt,defaultWidth:"wide"}),quarter:A({values:rt,defaultWidth:"wide",argumentCallback:t=>t-1}),month:A({values:at,defaultWidth:"wide"}),day:A({values:ot,defaultWidth:"wide"}),dayPeriod:A({values:st,defaultWidth:"wide",formattingValues:it,defaultFormattingWidth:"wide"})};function I(t){return(n,e={})=>{const r=e.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=n.match(a);if(!o)return null;const c=o[0],i=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],l=Array.isArray(i)?lt(i,h=>h.test(c)):dt(i,h=>h.test(c));let d;d=t.valueCallback?t.valueCallback(l):l,d=e.valueCallback?e.valueCallback(d):d;const u=n.slice(c.length);return{value:d,rest:u}}}function dt(t,n){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&n(t[e]))return e}function lt(t,n){for(let e=0;e{const r=n.match(t.matchPattern);if(!r)return null;const a=r[0],o=n.match(t.parsePattern);if(!o)return null;let c=t.valueCallback?t.valueCallback(o[0]):o[0];c=e.valueCallback?e.valueCallback(c):c;const i=n.slice(a.length);return{value:c,rest:i}}}const mt=/^(\d+)(th|st|nd|rd)?/i,ht=/\d+/i,gt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},wt={any:[/^b/i,/^(a|c)/i]},vt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},yt={any:[/1/i,/2/i,/3/i,/4/i]},bt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},kt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},xt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},pt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Dt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},_t={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Mt={ordinalNumber:ft({matchPattern:mt,parsePattern:ht,valueCallback:t=>parseInt(t,10)}),era:I({matchPatterns:gt,defaultMatchWidth:"wide",parsePatterns:wt,defaultParseWidth:"any"}),quarter:I({matchPatterns:vt,defaultMatchWidth:"wide",parsePatterns:yt,defaultParseWidth:"any",valueCallback:t=>t+1}),month:I({matchPatterns:bt,defaultMatchWidth:"wide",parsePatterns:kt,defaultParseWidth:"any"}),day:I({matchPatterns:xt,defaultMatchWidth:"wide",parsePatterns:pt,defaultParseWidth:"any"}),dayPeriod:I({matchPatterns:Dt,defaultMatchWidth:"any",parsePatterns:_t,defaultParseWidth:"any"})},Pt={code:"en-US",formatDistance:Ge,formatLong:Ze,formatRelative:tt,localize:ct,match:Mt,options:{weekStartsOn:0,firstWeekContainsDate:1}};function St(t){const n=C(t);return Re(n,Qe(n))+1}function Tt(t){const n=C(t),e=+ee(n)-+Ve(n);return Math.round(e/Me)+1}function Se(t,n){var u,h,m,p;const e=C(t),r=e.getFullYear(),a=te(),o=(n==null?void 0:n.firstWeekContainsDate)??((h=(u=n==null?void 0:n.locale)==null?void 0:u.options)==null?void 0:h.firstWeekContainsDate)??a.firstWeekContainsDate??((p=(m=a.locale)==null?void 0:m.options)==null?void 0:p.firstWeekContainsDate)??1,c=z(t,0);c.setFullYear(r+1,0,o),c.setHours(0,0,0,0);const i=X(c,n),l=z(t,0);l.setFullYear(r,0,o),l.setHours(0,0,0,0);const d=X(l,n);return e.getTime()>=i.getTime()?r+1:e.getTime()>=d.getTime()?r:r-1}function Ot(t,n){var i,l,d,u;const e=te(),r=(n==null?void 0:n.firstWeekContainsDate)??((l=(i=n==null?void 0:n.locale)==null?void 0:i.options)==null?void 0:l.firstWeekContainsDate)??e.firstWeekContainsDate??((u=(d=e.locale)==null?void 0:d.options)==null?void 0:u.firstWeekContainsDate)??1,a=Se(t,n),o=z(t,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),X(o,n)}function Ct(t,n){const e=C(t),r=+X(e,n)-+Ot(e,n);return Math.round(r/Me)+1}function k(t,n){const e=t<0?"-":"",r=Math.abs(t).toString().padStart(n,"0");return e+r}const $={y(t,n){const e=t.getFullYear(),r=e>0?e:1-e;return k(n==="yy"?r%100:r,n.length)},M(t,n){const e=t.getMonth();return n==="M"?String(e+1):k(e+1,2)},d(t,n){return k(t.getDate(),n.length)},a(t,n){const e=t.getHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.toUpperCase();case"aaa":return e;case"aaaaa":return e[0];case"aaaa":default:return e==="am"?"a.m.":"p.m."}},h(t,n){return k(t.getHours()%12||12,n.length)},H(t,n){return k(t.getHours(),n.length)},m(t,n){return k(t.getMinutes(),n.length)},s(t,n){return k(t.getSeconds(),n.length)},S(t,n){const e=n.length,r=t.getMilliseconds(),a=Math.trunc(r*Math.pow(10,e-3));return k(a,n.length)}},R={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},ye={G:function(t,n,e){const r=t.getFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return e.era(r,{width:"abbreviated"});case"GGGGG":return e.era(r,{width:"narrow"});case"GGGG":default:return e.era(r,{width:"wide"})}},y:function(t,n,e){if(n==="yo"){const r=t.getFullYear(),a=r>0?r:1-r;return e.ordinalNumber(a,{unit:"year"})}return $.y(t,n)},Y:function(t,n,e,r){const a=Se(t,r),o=a>0?a:1-a;if(n==="YY"){const c=o%100;return k(c,2)}return n==="Yo"?e.ordinalNumber(o,{unit:"year"}):k(o,n.length)},R:function(t,n){const e=Pe(t);return k(e,n.length)},u:function(t,n){const e=t.getFullYear();return k(e,n.length)},Q:function(t,n,e){const r=Math.ceil((t.getMonth()+1)/3);switch(n){case"Q":return String(r);case"QQ":return k(r,2);case"Qo":return e.ordinalNumber(r,{unit:"quarter"});case"QQQ":return e.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return e.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return e.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,n,e){const r=Math.ceil((t.getMonth()+1)/3);switch(n){case"q":return String(r);case"qq":return k(r,2);case"qo":return e.ordinalNumber(r,{unit:"quarter"});case"qqq":return e.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return e.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return e.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,n,e){const r=t.getMonth();switch(n){case"M":case"MM":return $.M(t,n);case"Mo":return e.ordinalNumber(r+1,{unit:"month"});case"MMM":return e.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return e.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return e.month(r,{width:"wide",context:"formatting"})}},L:function(t,n,e){const r=t.getMonth();switch(n){case"L":return String(r+1);case"LL":return k(r+1,2);case"Lo":return e.ordinalNumber(r+1,{unit:"month"});case"LLL":return e.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return e.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return e.month(r,{width:"wide",context:"standalone"})}},w:function(t,n,e,r){const a=Ct(t,r);return n==="wo"?e.ordinalNumber(a,{unit:"week"}):k(a,n.length)},I:function(t,n,e){const r=Tt(t);return n==="Io"?e.ordinalNumber(r,{unit:"week"}):k(r,n.length)},d:function(t,n,e){return n==="do"?e.ordinalNumber(t.getDate(),{unit:"date"}):$.d(t,n)},D:function(t,n,e){const r=St(t);return n==="Do"?e.ordinalNumber(r,{unit:"dayOfYear"}):k(r,n.length)},E:function(t,n,e){const r=t.getDay();switch(n){case"E":case"EE":case"EEE":return e.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return e.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return e.day(r,{width:"short",context:"formatting"});case"EEEE":default:return e.day(r,{width:"wide",context:"formatting"})}},e:function(t,n,e,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(n){case"e":return String(o);case"ee":return k(o,2);case"eo":return e.ordinalNumber(o,{unit:"day"});case"eee":return e.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return e.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return e.day(a,{width:"short",context:"formatting"});case"eeee":default:return e.day(a,{width:"wide",context:"formatting"})}},c:function(t,n,e,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(n){case"c":return String(o);case"cc":return k(o,n.length);case"co":return e.ordinalNumber(o,{unit:"day"});case"ccc":return e.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return e.day(a,{width:"narrow",context:"standalone"});case"cccccc":return e.day(a,{width:"short",context:"standalone"});case"cccc":default:return e.day(a,{width:"wide",context:"standalone"})}},i:function(t,n,e){const r=t.getDay(),a=r===0?7:r;switch(n){case"i":return String(a);case"ii":return k(a,n.length);case"io":return e.ordinalNumber(a,{unit:"day"});case"iii":return e.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return e.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return e.day(r,{width:"short",context:"formatting"});case"iiii":default:return e.day(r,{width:"wide",context:"formatting"})}},a:function(t,n,e){const a=t.getHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,n,e){const r=t.getHours();let a;switch(r===12?a=R.noon:r===0?a=R.midnight:a=r/12>=1?"pm":"am",n){case"b":case"bb":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,n,e){const r=t.getHours();let a;switch(r>=17?a=R.evening:r>=12?a=R.afternoon:r>=4?a=R.morning:a=R.night,n){case"B":case"BB":case"BBB":return e.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return e.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return e.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,n,e){if(n==="ho"){let r=t.getHours()%12;return r===0&&(r=12),e.ordinalNumber(r,{unit:"hour"})}return $.h(t,n)},H:function(t,n,e){return n==="Ho"?e.ordinalNumber(t.getHours(),{unit:"hour"}):$.H(t,n)},K:function(t,n,e){const r=t.getHours()%12;return n==="Ko"?e.ordinalNumber(r,{unit:"hour"}):k(r,n.length)},k:function(t,n,e){let r=t.getHours();return r===0&&(r=24),n==="ko"?e.ordinalNumber(r,{unit:"hour"}):k(r,n.length)},m:function(t,n,e){return n==="mo"?e.ordinalNumber(t.getMinutes(),{unit:"minute"}):$.m(t,n)},s:function(t,n,e){return n==="so"?e.ordinalNumber(t.getSeconds(),{unit:"second"}):$.s(t,n)},S:function(t,n){return $.S(t,n)},X:function(t,n,e){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(n){case"X":return ke(r);case"XXXX":case"XX":return L(r);case"XXXXX":case"XXX":default:return L(r,":")}},x:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"x":return ke(r);case"xxxx":case"xx":return L(r);case"xxxxx":case"xxx":default:return L(r,":")}},O:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+be(r,":");case"OOOO":default:return"GMT"+L(r,":")}},z:function(t,n,e){const r=t.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+be(r,":");case"zzzz":default:return"GMT"+L(r,":")}},t:function(t,n,e){const r=Math.trunc(t.getTime()/1e3);return k(r,n.length)},T:function(t,n,e){const r=t.getTime();return k(r,n.length)}};function be(t,n=""){const e=t>0?"-":"+",r=Math.abs(t),a=Math.trunc(r/60),o=r%60;return o===0?e+String(a):e+String(a)+n+k(o,2)}function ke(t,n){return t%60===0?(t>0?"-":"+")+k(Math.abs(t)/60,2):L(t,n)}function L(t,n=""){const e=t>0?"-":"+",r=Math.abs(t),a=k(Math.trunc(r/60),2),o=k(r%60,2);return e+a+n+o}const xe=(t,n)=>{switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},Te=(t,n)=>{switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},Wt=(t,n)=>{const e=t.match(/(P+)(p+)?/)||[],r=e[1],a=e[2];if(!a)return xe(t,n);let o;switch(r){case"P":o=n.dateTime({width:"short"});break;case"PP":o=n.dateTime({width:"medium"});break;case"PPP":o=n.dateTime({width:"long"});break;case"PPPP":default:o=n.dateTime({width:"full"});break}return o.replace("{{date}}",xe(r,n)).replace("{{time}}",Te(a,n))},Et={p:Te,P:Wt},$t=/^D+$/,Yt=/^Y+$/,Ft=["D","DD","YY","YYYY"];function Bt(t){return $t.test(t)}function Nt(t){return Yt.test(t)}function Lt(t,n,e){const r=jt(t,n,e);if(console.warn(r),Ft.includes(t))throw new RangeError(r)}function jt(t,n,e){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${n}\`) for formatting ${r} to the input \`${e}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Ht=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,qt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,zt=/^'([^]*?)'?$/,Rt=/''/g,Vt=/[a-zA-Z]/;function H(t,n,e){var u,h,m,p,D,g,s,_;const r=te(),a=(e==null?void 0:e.locale)??r.locale??Pt,o=(e==null?void 0:e.firstWeekContainsDate)??((h=(u=e==null?void 0:e.locale)==null?void 0:u.options)==null?void 0:h.firstWeekContainsDate)??r.firstWeekContainsDate??((p=(m=r.locale)==null?void 0:m.options)==null?void 0:p.firstWeekContainsDate)??1,c=(e==null?void 0:e.weekStartsOn)??((g=(D=e==null?void 0:e.locale)==null?void 0:D.options)==null?void 0:g.weekStartsOn)??r.weekStartsOn??((_=(s=r.locale)==null?void 0:s.options)==null?void 0:_.weekStartsOn)??0,i=C(t);if(!Ie(i))throw new RangeError("Invalid time value");let l=n.match(qt).map(x=>{const b=x[0];if(b==="p"||b==="P"){const O=Et[b];return O(x,a.formatLong)}return x}).join("").match(Ht).map(x=>{if(x==="''")return{isToken:!1,value:"'"};const b=x[0];if(b==="'")return{isToken:!1,value:At(x)};if(ye[b])return{isToken:!0,value:x};if(b.match(Vt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return{isToken:!1,value:x}});a.localize.preprocessor&&(l=a.localize.preprocessor(i,l));const d={firstWeekContainsDate:o,weekStartsOn:c,locale:a};return l.map(x=>{if(!x.isToken)return x.value;const b=x.value;(!(e!=null&&e.useAdditionalWeekYearTokens)&&Nt(b)||!(e!=null&&e.useAdditionalDayOfYearTokens)&&Bt(b))&&Lt(b,n,String(t));const O=ye[b[0]];return O(i,b,a.localize,d)}).join("")}function At(t){const n=t.match(zt);return n?n[1].replace(Rt,"'"):t}const It={class:"flex items-center gap-2 flex-wrap"},Qt={class:"flex items-center gap-1"},Xt={class:"text-sm font-medium text-foreground flex-1 min-w-0 truncate"},Gt={key:0,class:"text-xs text-muted-foreground"},Jt={class:"flex items-center rounded-md border border-border overflow-hidden"},Ut=G({__name:"CalendarToolbar",setup(t){const n=J(),e=W(()=>{if(n.view==="week"){const c=n.weekDays;if(!c.length)return"";const i=c[0],l=c[6];return i.getMonth()===l.getMonth()?`${H(i,"MMM d")} – ${H(l,"d, yyyy")}`:`${H(i,"MMM d")} – ${H(l,"MMM d, yyyy")}`}else return H(n.currentDate,"EEEE, MMMM d, yyyy")});async function r(c){c==="prev"?n.navigatePrev():n.navigateNext(),await n.fetchCurrentView()}async function a(){n.goToToday(),await n.fetchCurrentView()}async function o(c){n.setView(c),await n.fetchCurrentView()}return(c,i)=>(w(),v("div",It,[f("div",Qt,[E(K,{variant:"outline",size:"sm",onClick:i[0]||(i[0]=l=>r("prev"))},{default:Q(()=>[...i[4]||(i[4]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1}),E(K,{variant:"outline",size:"sm",onClick:a},{default:Q(()=>[...i[5]||(i[5]=[pe("Today",-1)])]),_:1}),E(K,{variant:"outline",size:"sm",onClick:i[1]||(i[1]=l=>r("next"))},{default:Q(()=>[...i[6]||(i[6]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])]),_:1})]),f("span",Xt,M(e.value),1),y(n).loading?(w(),v("div",Gt,"Loading...")):T("",!0),f("div",Jt,[f("button",{class:q(["px-3 py-1.5 text-xs font-medium transition-colors",y(n).view==="day"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:i[2]||(i[2]=l=>o("day"))}," Day ",2),f("button",{class:q(["px-3 py-1.5 text-xs font-medium transition-colors",y(n).view==="week"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:i[3]||(i[3]=l=>o("week"))}," Week ",2)])]))}}),Kt=7;function Oe(){const t=se(),n=J(),e=S(null),r=S(null),a=S(null),o=S(null);function c(D,g){var s,_;e.value=D.id,(s=g.dataTransfer)==null||s.setData("task_id",D.id),(_=g.dataTransfer)==null||_.setData("estimate_hours",String(D.estimate_hours??1))}function i(D,g){g.preventDefault(),r.value=P(D)}function l(){r.value=null}async function d(D,g){var le,fe;g.preventDefault(),r.value=null,e.value=null;const s=(le=g.dataTransfer)==null?void 0:le.getData("task_id"),_=parseFloat(((fe=g.dataTransfer)==null?void 0:fe.getData("estimate_hours"))??"1")||1;if(!s)return;const b=g.currentTarget.getBoundingClientRect(),O=g.clientY-b.top,ie=ge(O/Z,15),ne=Math.max(0,Math.min(ie,12*60)),N=new Date(D);N.setHours(Kt,0,0,0),N.setMinutes(N.getMinutes()+ne);const re=new Date(N);re.setMinutes(re.getMinutes()+Math.round(_*60));const ue=N.toISOString(),ce=re.toISOString(),de=`temp_${Date.now()}`,Ce={kind:"planned",id:de,project_id:null,job_number:"",display_name:"Loading...",start_at:ue,end_at:ce,title:"",color_hue:260,tags:[],task_id:s,session_id:null,manual_entry_id:null};n.addBlock(Ce);try{await t.createBlock(s,{start_at:ue,end_at:ce}),await n.fetchCurrentView()}catch(We){n.removeBlock(de),console.error("Failed to create task block:",We)}}let u=0,h="",m=null;function p(D,g){g.preventDefault(),g.stopPropagation(),a.value=D,m=D,u=g.clientY,h=D.end_at,o.value=D.end_at;const s=x=>{if(!m)return;const b=x.clientY-u,O=ge(b/Z,15),ne=new Date(h).getTime()+O*6e4,N=new Date(m.start_at).getTime()+15*6e4;o.value=new Date(Math.max(ne,N)).toISOString()},_=async()=>{if(document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",_),!m||!o.value){a.value=null;return}const x=m.id,b=o.value;if(b===h){a.value=null,o.value=null;return}try{m.task_id&&await t.updateBlock(x,{end_at:b}),n.updateBlock({...m,end_at:b})}catch(O){console.error("Failed to resize block:",O),n.updateBlock({...m,end_at:h})}a.value=null,o.value=null,m=null};document.addEventListener("mousemove",s),document.addEventListener("mouseup",_)}return{draggingTaskId:e,dragOverDay:r,resizingBlock:a,resizePreviewEnd:o,onDragStart:c,onDragOver:i,onDragLeave:l,onDrop:d,onResizeStart:p}}function Zt(t){return`hsla(${t}, 65%, 45%, 0.85)`}function en(t){return`hsla(${t}, 65%, 55%, 1)`}const tn={class:"px-1.5 py-1 h-full flex flex-col text-white overflow-hidden"},nn={class:"text-xs font-semibold leading-tight truncate"},rn={key:0,class:"text-xs opacity-75 truncate"},an={key:1,class:"text-xs opacity-75 mt-auto"},on=G({__name:"CalendarBlock",props:{block:{},lane:{},totalLanes:{},top:{},height:{},resizeEnd:{}},emits:["resizeStart","click"],setup(t,{emit:n}){const e=t,r=n,a=W(()=>e.resizeEnd?new Date(e.resizeEnd):new Date(e.block.end_at)),o=W(()=>{if(!e.resizeEnd)return e.height;const u=(a.value.getTime()-new Date(e.block.start_at).getTime())/6e4;return Math.max(u*(40/30),20)}),c=W(()=>{const d=a.value.getTime()-new Date(e.block.start_at).getTime();return U(d/36e5)}),i=W(()=>{const d=`calc(${100/e.totalLanes}% - 2px)`,u=`calc(${e.lane/e.totalLanes*100}% + 1px)`;return{top:`${e.top}px`,height:`${o.value}px`,width:d,left:u,backgroundColor:Zt(e.block.color_hue),borderColor:en(e.block.color_hue)}}),l=W(()=>o.value<40);return(d,u)=>(w(),v("div",{class:q(["absolute rounded overflow-hidden cursor-pointer select-none group",{"border-2":t.block.kind==="session","border-2 border-dashed opacity-80":t.block.kind==="planned","border-2 calendar-block--manual":t.block.kind==="manual"}]),style:j(i.value),onClick:u[1]||(u[1]=h=>r("click",t.block))},[f("div",tn,[f("p",nn,M(t.block.display_name),1),!l.value&&t.block.job_number?(w(),v("p",rn,M(t.block.job_number),1)):T("",!0),l.value?T("",!0):(w(),v("p",an,M(c.value),1))]),f("div",{class:"absolute bottom-0 left-0 right-0 h-2 cursor-s-resize opacity-0 group-hover:opacity-100 flex items-center justify-center",onMousedown:u[0]||(u[0]=De(h=>r("resizeStart",h),["stop"]))},[...u[2]||(u[2]=[f("div",{class:"w-8 h-0.5 bg-white/60 rounded"},null,-1)])],32)],6))}}),sn=$e(on,[["__scopeId","data-v-5829880c"]]),un={class:"flex overflow-auto h-full"},cn={class:"flex flex-1 gap-px min-w-0"},dn=["onDragover","onDrop"],ln={key:1,class:"absolute inset-0 bg-primary/10 pointer-events-none z-0"},Y=7,oe=19,V=40,fn=G({__name:"CalendarGrid",emits:["blockClick"],setup(t,{emit:n}){const e=Array.from({length:oe-Y+1},(p,D)=>Y+D),r=J(),a=Oe(),o=n,c=W(()=>r.view==="week"?r.weekDays:[r.currentDate]),i=P(new Date);function l(p){const D=r.getBlocksForDay(p);return Le(D)}function d(p){return je(new Date(p.start_at),Y)}function u(p){return He(new Date(p.start_at),new Date(p.end_at))}function h(p){var D;return((D=a.resizingBlock.value)==null?void 0:D.id)===p.id}function m(p){return p===12?"12 PM":p>12?`${p-12} PM`:`${p} AM`}return(p,D)=>(w(),v("div",un,[f("div",{class:"w-12 shrink-0 relative",style:j({height:`${(oe-Y+1)*V*2}px`})},[(w(!0),v(F,null,B(y(e),g=>(w(),v("div",{key:g,class:"absolute right-2 text-xs text-muted-foreground",style:j({top:`${(g-Y)*V*2-6}px`})},M(m(g)),5))),128))],4),f("div",cn,[(w(!0),v(F,null,B(c.value,g=>(w(),v("div",{key:y(P)(g),class:q(["flex-1 relative border-l border-border",{"bg-primary/5":y(P)(g)===y(i)}]),style:j({height:`${(oe-Y)*V*2}px`}),onDragover:s=>y(a).onDragOver(g,s),onDragleave:D[0]||(D[0]=s=>y(a).onDragLeave()),onDrop:s=>y(a).onDrop(g,s)},[y(r).view==="week"?(w(),v("div",{key:0,class:q(["sticky top-0 z-10 text-center py-1 text-xs font-medium border-b border-border bg-background",y(P)(g)===y(i)?"text-primary":"text-muted-foreground"])},[f("div",null,M(y(H)(g,"EEE")),1),f("div",{class:q(["inline-flex h-6 w-6 mx-auto items-center justify-center rounded-full text-sm",y(P)(g)===y(i)?"bg-primary text-primary-foreground":""])},M(y(H)(g,"d")),3)],2)):T("",!0),(w(!0),v(F,null,B(y(e),s=>(w(),v("div",{key:s,class:"absolute left-0 right-0 border-t border-border/40",style:j({top:`${(s-Y)*V*2}px`})},null,4))),128)),(w(!0),v(F,null,B(y(e).slice(0,-1),s=>(w(),v("div",{key:`half-${s}`,class:"absolute left-0 right-0 border-t border-border/20",style:j({top:`${(s-Y)*V*2+V}px`})},null,4))),128)),y(a).dragOverDay.value===y(P)(g)?(w(),v("div",ln)):T("",!0),(w(!0),v(F,null,B(l(g),({block:s,lane:_,totalLanes:x})=>(w(),Ye(sn,{key:s.id,block:s,lane:_,"total-lanes":x,top:d(s),height:u(s),"resize-end":h(s)?y(a).resizePreviewEnd.value:null,onClick:b=>o("blockClick",s),onResizeStart:b=>y(a).onResizeStart(s,b)},null,8,["block","lane","total-lanes","top","height","resize-end","onClick","onResizeStart"]))),128))],46,dn))),128))])]))}}),mn={class:"flex flex-col h-full bg-card border-l border-border"},hn={class:"p-3 border-b border-border flex items-center justify-between shrink-0"},gn={class:"flex-1 overflow-y-auto p-2 space-y-1.5"},wn={key:0,class:"text-xs text-muted-foreground p-2"},vn={key:1,class:"text-xs text-muted-foreground p-2 text-center"},yn=["onDragstart"],bn={class:"flex items-start gap-2"},kn={class:"flex-1 min-w-0"},xn={class:"text-xs font-medium text-foreground leading-tight truncate"},pn={class:"flex items-center gap-1.5 mt-1 flex-wrap"},Dn={key:0,class:"text-xs text-muted-foreground"},_n={key:0,class:"p-3 border-t border-border shrink-0"},Mn={class:"space-y-1"},Pn={class:"text-muted-foreground truncate max-w-[100px]"},Sn={class:"text-foreground"},Tn=G({__name:"PlannerSidebar",emits:["createTask"],setup(t,{emit:n}){const e=se(),r=J(),a=Oe(),o=n,c=W(()=>P(r.currentDate));_e(()=>{e.fetchForDate(c.value)});const i=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],l=u=>u>=4?"bg-red-500":u===3?"bg-amber-500":"bg-emerald-500",d=W(()=>{const u={};for(const h of e.tasks){const m=h.project_id??"_none";u[m]||(u[m]={name:h.project_id?m:"No Project",planned:0,actual:0}),u[m].planned+=h.estimate_hours??0,u[m].actual+=h.actual_hours??0}return Object.values(u)});return(u,h)=>(w(),v("div",mn,[f("div",hn,[h[2]||(h[2]=f("h3",{class:"text-sm font-semibold text-foreground"},"Planner",-1)),E(K,{size:"sm",variant:"ghost",onClick:h[0]||(h[0]=m=>o("createTask"))},{default:Q(()=>[...h[1]||(h[1]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)])]),_:1})]),f("div",gn,[y(e).loading?(w(),v("div",wn,"Loading...")):y(e).tasks.length===0?(w(),v("div",vn," No tasks for today ")):T("",!0),(w(!0),v(F,null,B(y(e).tasks,m=>(w(),v("div",{key:m.id,class:"rounded-md border border-border bg-background p-2 cursor-grab active:cursor-grabbing hover:border-primary/50 transition-colors",draggable:"true",onDragstart:p=>y(a).onDragStart(m,p)},[f("div",bn,[f("div",{class:q(["h-2 w-2 rounded-full mt-1.5 shrink-0",l(m.priority)])},null,2),f("div",kn,[f("p",xn,M(m.title),1),f("div",pn,[E(Ne,{variant:i(m.status),class:"text-xs py-0"},{default:Q(()=>[pe(M(m.status),1)]),_:2},1032,["variant"]),m.estimate_hours?(w(),v("span",Dn,M(y(U)(m.estimate_hours)),1)):T("",!0)])])])],40,yn))),128))]),d.value.length?(w(),v("div",_n,[h[3]||(h[3]=f("p",{class:"text-xs font-medium text-muted-foreground mb-2"},"Plan vs Actual",-1)),f("div",Mn,[(w(!0),v(F,null,B(d.value,m=>(w(),v("div",{key:m.name,class:"flex items-center justify-between text-xs"},[f("span",Pn,M(m.name),1),f("span",Sn,M(y(U)(m.planned))+" / "+M(y(U)(m.actual)),1)]))),128))])])):T("",!0)]))}}),On={class:"h-full flex flex-col"},Cn={class:"p-4 border-b border-border flex items-center gap-3 flex-wrap"},Wn={class:"flex items-center gap-2 ml-auto"},En={class:"flex-1 flex overflow-hidden"},$n={class:"flex-1 overflow-auto"},Yn={key:0,class:"w-56 shrink-0 overflow-hidden"},Fn={class:"bg-card border border-border rounded-lg shadow-xl p-4 w-72"},Bn={class:"flex items-start justify-between gap-2 mb-3"},Nn={class:"font-semibold text-sm text-foreground"},Ln={key:0,class:"text-xs text-muted-foreground"},jn={class:"space-y-1 text-xs text-muted-foreground"},Hn={key:0,class:"mt-2 flex flex-wrap gap-1"},Jn=G({__name:"CalendarView",setup(t){const n=J(),e=se(),r=S(!0),a=S(!1),o=S(null);_e(()=>{n.fetchCurrentView()});function c(l){o.value=l}async function i(l){try{await e.create(l),me.success("Task created"),a.value=!1,e.fetchForDate(P(n.currentDate))}catch{me.error("Failed to create task")}}return(l,d)=>(w(),v("div",On,[f("div",Cn,[E(Ut),f("div",Wn,[f("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:d[0]||(d[0]=u=>r.value=!r.value)},M(r.value?"Hide Planner":"Show Planner"),1)])]),f("div",En,[f("div",$n,[E(fn,{onBlockClick:c})]),r.value?(w(),v("div",Yn,[E(Tn,{onCreateTask:d[1]||(d[1]=u=>a.value=!0)})])):T("",!0)]),o.value?(w(),v("div",{key:0,class:"fixed inset-0 z-40 flex items-center justify-center p-4",onClick:d[3]||(d[3]=De(u=>o.value=null,["self"]))},[f("div",Fn,[f("div",Bn,[f("div",null,[f("p",Nn,M(o.value.display_name),1),o.value.job_number?(w(),v("p",Ln,M(o.value.job_number),1)):T("",!0)]),f("button",{class:"text-muted-foreground hover:text-foreground",onClick:d[2]||(d[2]=u=>o.value=null)},[...d[5]||(d[5]=[f("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[f("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),f("div",jn,[f("p",null,"Start: "+M(new Date(o.value.start_at).toLocaleString()),1),f("p",null,"End: "+M(new Date(o.value.end_at).toLocaleString()),1),f("p",null,"Type: "+M(o.value.kind),1)]),o.value.tags.length?(w(),v("div",Hn,[(w(!0),v(F,null,B(o.value.tags,u=>(w(),v("span",{key:u.id,class:"px-1.5 py-0.5 rounded text-xs",style:j({background:`${u.color_hex}22`,color:u.color_hex})},M(u.name),5))),128))])):T("",!0)])])):T("",!0),E(Be,{open:a.value,"default-date":y(P)(y(n).currentDate),onClose:d[4]||(d[4]=u=>a.value=!1),onSave:i},null,8,["open","default-date"])]))}});export{Jn as default}; diff --git a/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js b/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js similarity index 73% rename from src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js rename to src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js index 0105a3f..ccbd722 100644 --- a/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js +++ b/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js @@ -1 +1 @@ -import{c as e}from"./utils-CFgQVuqB.js";import{d as o,c as t,p as n,i as c,v as p,o as l}from"./index-DRwzmrLE.js";const _=o({__name:"Card",props:{class:{}},setup(s){const a=s;return(r,d)=>(l(),t("div",{class:n(c(e)("rounded-lg border bg-card text-card-foreground shadow-sm",a.class))},[p(r.$slots,"default")],2))}}),f=o({__name:"CardContent",props:{class:{}},setup(s){const a=s;return(r,d)=>(l(),t("div",{class:n(c(e)("p-6 pt-0",a.class))},[p(r.$slots,"default")],2))}});export{_,f as a}; +import{c as e}from"./utils-DWBfPysr.js";import{d as o,c as t,p as n,i as c,s as p,o as l}from"./index-ZkX-rg-0.js";const _=o({__name:"Card",props:{class:{}},setup(s){const a=s;return(r,d)=>(l(),t("div",{class:n(c(e)("rounded-lg border bg-card text-card-foreground shadow-sm",a.class))},[p(r.$slots,"default")],2))}}),f=o({__name:"CardContent",props:{class:{}},setup(s){const a=s;return(r,d)=>(l(),t("div",{class:n(c(e)("p-6 pt-0",a.class))},[p(r.$slots,"default")],2))}});export{_,f as a}; diff --git a/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js b/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js similarity index 75% rename from src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js rename to src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js index 9fc4529..f4b12c1 100644 --- a/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js +++ b/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js @@ -1 +1 @@ -import{c as t}from"./utils-CFgQVuqB.js";import{d as o,o as n,c as r,p as c,i as l,v as p}from"./index-DRwzmrLE.js";const f=o({__name:"CardHeader",props:{class:{}},setup(s){const e=s;return(a,i)=>(n(),r("div",{class:c(l(t)("flex flex-col space-y-1.5 p-6",e.class))},[p(a.$slots,"default")],2))}}),_=o({__name:"CardTitle",props:{class:{}},setup(s){const e=s;return(a,i)=>(n(),r("h3",{class:c(l(t)("text-lg font-semibold leading-none tracking-tight",e.class))},[p(a.$slots,"default")],2))}});export{f as _,_ as a}; +import{c as t}from"./utils-DWBfPysr.js";import{d as o,o as n,c as r,p as c,i as l,s as p}from"./index-ZkX-rg-0.js";const f=o({__name:"CardHeader",props:{class:{}},setup(s){const e=s;return(a,i)=>(n(),r("div",{class:c(l(t)("flex flex-col space-y-1.5 p-6",e.class))},[p(a.$slots,"default")],2))}}),_=o({__name:"CardTitle",props:{class:{}},setup(s){const e=s;return(a,i)=>(n(),r("h3",{class:c(l(t)("text-lg font-semibold leading-none tracking-tight",e.class))},[p(a.$slots,"default")],2))}});export{f as _,_ as a}; diff --git a/src/static/assets/DashboardView-BcXtk3TP.js b/src/static/assets/DashboardView-BcXtk3TP.js deleted file mode 100644 index 1ad76cc..0000000 --- a/src/static/assets/DashboardView-BcXtk3TP.js +++ /dev/null @@ -1 +0,0 @@ -import{d as K,n as O,w as d,o as e,e as n,a as o,t as v,c as t,j as C,p as U,x as Q,y as X,F as x,l as h,z as W,A as E,i as p,r as g,m as N,k as _,s as S}from"./index-DRwzmrLE.js";import{d as k}from"./dashboard-Btm3piK7.js";import{_ as b,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as T,a as A}from"./CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js";import{_ as Y}from"./Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js";import{_ as Z}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{f as w,i as L}from"./utils-CFgQVuqB.js";const ee={class:"flex items-start justify-between gap-2"},te={class:"flex-1 min-w-0"},se={class:"text-xs text-muted-foreground font-medium uppercase tracking-wide truncate"},oe={class:"mt-1"},le={key:0,class:"h-8 w-24 bg-muted animate-pulse rounded"},ae={key:1,class:"text-2xl font-bold text-foreground"},ne={key:0,class:"text-xs text-muted-foreground mt-1 truncate"},re={key:0,class:"h-9 w-9 rounded-lg bg-primary/10 flex items-center justify-center shrink-0"},de={key:0,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ie={key:1,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ue={key:2,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},me={key:4,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ve={key:5,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},fe={key:0,class:"mt-3 flex items-center gap-1 text-xs"},ge={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 10l7-7m0 0l7 7m-7-7v18"},xe={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 14l-7 7m0 0l-7-7m7 7V3"},y=K({__name:"KpiCard",props:{label:{},value:{},icon:{},trend:{},description:{},loading:{type:Boolean}},setup(i){return(c,r)=>(e(),O(b,{class:"relative overflow-hidden"},{default:d(()=>[n($,{class:"p-5"},{default:d(()=>[o("div",ee,[o("div",te,[o("p",se,v(i.label),1),o("div",oe,[i.loading?(e(),t("div",le)):(e(),t("p",ae,v(i.value),1))]),i.description?(e(),t("p",ne,v(i.description),1)):C("",!0)]),i.icon?(e(),t("div",re,[i.icon==="clock"?(e(),t("svg",de,[...r[0]||(r[0]=[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])])):i.icon==="calendar"?(e(),t("svg",ie,[...r[1]||(r[1]=[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])])):i.icon==="folder"?(e(),t("svg",ue,[...r[2]||(r[2]=[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414A1 1 0 0011.414 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"},null,-1)])])):i.icon==="trending-up"?(e(),t("svg",ce,[...r[3]||(r[3]=[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},null,-1)])])):i.icon==="git"?(e(),t("svg",me,[...r[4]||(r[4]=[o("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"2"},null,-1),o("path",{"stroke-linecap":"round","stroke-width":"2",d:"M2 12h6M16 12h6"},null,-1)])])):(e(),t("svg",ve,[...r[5]||(r[5]=[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)])]))])):C("",!0)]),i.trend!==void 0?(e(),t("div",fe,[(e(),t("svg",{class:U([i.trend>=0?"text-emerald-400":"text-red-400","h-3 w-3"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i.trend>=0?(e(),t("path",ge)):(e(),t("path",xe))],2)),o("span",{class:U(i.trend>=0?"text-emerald-400":"text-red-400")},v(Math.abs(i.trend))+"% ",3),r[6]||(r[6]=o("span",{class:"text-muted-foreground"},"vs last period",-1))])):C("",!0)]),_:1})]),_:1}))}}),he={class:"p-6 space-y-6"},ye={class:"flex flex-wrap items-center gap-3"},pe={class:"flex items-center rounded-md border border-border overflow-hidden"},_e=["onClick"],ke={class:"grid grid-cols-2 md:grid-cols-3 xl:grid-cols-6 gap-4"},we={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},be={key:0,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},$e={key:1,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Ce={key:2,class:"h-40 flex items-end gap-px"},je=["title"],De={key:0,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Me={key:1,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Be={key:2,class:"h-40 flex items-end gap-2"},Ve=["title"],ze={class:"text-xs text-muted-foreground"},He={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ne={key:0,class:"space-y-2"},Te={key:1,class:"text-sm text-muted-foreground py-4 text-center"},Ae={key:2,class:"space-y-2"},Fe={class:"text-xs text-foreground w-24 truncate shrink-0"},Pe={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},Se={class:"text-xs text-muted-foreground w-10 text-right shrink-0"},Le={key:0,class:"space-y-2"},Ue={key:1,class:"text-sm text-muted-foreground py-4 text-center"},We={key:2,class:"space-y-2"},Ee={class:"flex items-center justify-between text-xs mb-0.5"},Ke={class:"text-foreground truncate max-w-[160px]"},Oe={class:"text-muted-foreground shrink-0"},Ze=K({__name:"DashboardView",setup(i){const c=g("30d"),r=g(""),j=g(""),f=g(null),F=g([]),D=g([]),M=g([]),B=g([]),u=g(!1),R=N(()=>{const a=new Date,l=L(a);if(c.value==="today")return{from:l,to:l};if(c.value==="7d"){const m=new Date(a);return m.setDate(a.getDate()-7),{from:L(m),to:l}}else if(c.value==="30d"){const m=new Date(a);return m.setDate(a.getDate()-30),{from:L(m),to:l}}else return{from:r.value||l,to:j.value||l}});async function P(){if(!(c.value==="custom"&&(!r.value||!j.value))){u.value=!0;try{const a=R.value,[l,m,V,z,H]=await Promise.all([k.summary(a),k.projects(a),k.monthly(a),k.dow(a),k.tools(a)]);f.value=l.data,F.value=m.data,D.value=V.data,M.value=z.data,B.value=H.data}catch(a){console.error("Failed to load dashboard data",a)}finally{u.value=!1}}}Q(c,()=>{c.value!=="custom"&&P()}),X(()=>P());const q=N(()=>Math.max(...D.value.map(a=>a.hours),1)),G=N(()=>Math.max(...M.value.map(a=>a.hours),1)),I=N(()=>Math.max(...B.value.map(a=>a.pct),1)),J=a=>a?a>90?"danger":a>70?"warning":"success":"default";return(a,l)=>{var m,V,z,H;return e(),t("div",he,[o("div",ye,[l[4]||(l[4]=o("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Overview",-1)),o("div",pe,[(e(),t(x,null,h(["today","7d","30d","custom"],s=>o("button",{key:s,class:U(["px-3 py-1.5 text-xs font-medium transition-colors",c.value===s?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:Re=>c.value=s},v(s==="today"?"Today":s==="7d"?"7 days":s==="30d"?"30 days":"Custom"),11,_e)),64))]),c.value==="custom"?(e(),t(x,{key:0},[W(o("input",{"onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),type:"date",class:"h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-ring"},null,512),[[E,r.value]]),l[3]||(l[3]=o("span",{class:"text-xs text-muted-foreground"},"to",-1)),W(o("input",{"onUpdate:modelValue":l[1]||(l[1]=s=>j.value=s),type:"date",class:"h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-ring"},null,512),[[E,j.value]]),n(Z,{size:"sm",loading:u.value,onClick:P},{default:d(()=>[...l[2]||(l[2]=[_("Apply",-1)])]),_:1},8,["loading"])],64)):C("",!0)]),o("div",ke,[n(y,{label:"Total Hours",value:f.value?p(w)(f.value.total_hours):"-",icon:"clock",loading:u.value},null,8,["value","loading"]),n(y,{label:"Working Days",value:((m=f.value)==null?void 0:m.working_days)??"-",icon:"calendar",loading:u.value},null,8,["value","loading"]),n(y,{label:"Projects",value:((V=f.value)==null?void 0:V.total_projects)??"-",icon:"folder",loading:u.value},null,8,["value","loading"]),n(y,{label:"Avg / Day",value:f.value?p(w)(f.value.avg_hours_per_day):"-",icon:"trending-up",loading:u.value},null,8,["value","loading"]),n(y,{label:"Top Project",value:((z=f.value)==null?void 0:z.top_project)??"-",icon:"star",loading:u.value},null,8,["value","loading"]),n(y,{label:"Commits",value:((H=f.value)==null?void 0:H.total_commits)??"-",icon:"git",loading:u.value},null,8,["value","loading"])]),o("div",we,[n(b,null,{default:d(()=>[n(T,{class:"pb-2"},{default:d(()=>[n(A,{class:"text-sm"},{default:d(()=>[...l[5]||(l[5]=[_("Hours by Day",-1)])]),_:1})]),_:1}),n($,null,{default:d(()=>[u.value?(e(),t("div",be," Loading... ")):D.value.length===0?(e(),t("div",$e," No data ")):(e(),t("div",Ce,[(e(!0),t(x,null,h(D.value,s=>(e(),t("div",{key:s.date,class:"flex-1 flex flex-col items-center gap-0.5 group",title:`${s.date}: ${p(w)(s.hours)}`},[o("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${s.hours/q.value*100}%`})},null,4)],8,je))),128))]))]),_:1})]),_:1}),n(b,null,{default:d(()=>[n(T,{class:"pb-2"},{default:d(()=>[n(A,{class:"text-sm"},{default:d(()=>[...l[6]||(l[6]=[_("Hours by Day of Week",-1)])]),_:1})]),_:1}),n($,null,{default:d(()=>[u.value?(e(),t("div",De," Loading... ")):M.value.length===0?(e(),t("div",Me," No data ")):(e(),t("div",Be,[(e(!0),t(x,null,h(M.value,s=>(e(),t("div",{key:s.dow,class:"flex-1 flex flex-col items-center gap-1"},[o("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${Math.max(s.hours/G.value*100,2)}%`}),title:`${p(w)(s.hours)}`},null,12,Ve),o("span",ze,v(s.label.slice(0,2)),1)]))),128))]))]),_:1})]),_:1})]),o("div",He,[n(b,null,{default:d(()=>[n(T,{class:"pb-2"},{default:d(()=>[n(A,{class:"text-sm"},{default:d(()=>[...l[7]||(l[7]=[_("Tool Usage",-1)])]),_:1})]),_:1}),n($,null,{default:d(()=>[u.value?(e(),t("div",Ne,[(e(),t(x,null,h(5,s=>o("div",{key:s,class:"h-6 bg-muted animate-pulse rounded"})),64))])):B.value.length===0?(e(),t("div",Te," No data ")):(e(),t("div",Ae,[(e(!0),t(x,null,h(B.value.slice(0,8),s=>(e(),t("div",{key:s.tool,class:"flex items-center gap-2"},[o("span",Fe,v(s.tool),1),o("div",Pe,[o("div",{class:"h-full bg-primary rounded-full",style:S({width:`${s.pct/I.value*100}%`})},null,4)]),o("span",Se,v(s.pct.toFixed(0))+"% ",1)]))),128))]))]),_:1})]),_:1}),n(b,null,{default:d(()=>[n(T,{class:"pb-2"},{default:d(()=>[n(A,{class:"text-sm"},{default:d(()=>[...l[8]||(l[8]=[_("Projects",-1)])]),_:1})]),_:1}),n($,null,{default:d(()=>[u.value?(e(),t("div",Le,[(e(),t(x,null,h(5,s=>o("div",{key:s,class:"h-8 bg-muted animate-pulse rounded"})),64))])):F.value.length===0?(e(),t("div",Ue," No data ")):(e(),t("div",We,[(e(!0),t(x,null,h(F.value.slice(0,8),s=>(e(),t("div",{key:s.project_id},[o("div",Ee,[o("span",Ke,v(s.display_name),1),o("span",Oe,v(p(w)(s.total_hours)),1)]),s.progress_pct!==null?(e(),O(Y,{key:0,value:s.progress_pct,color:J(s.progress_pct)},null,8,["value","color"])):C("",!0)]))),128))]))]),_:1})]),_:1})])])}}});export{Ze as default}; diff --git a/src/static/assets/DashboardView-DcIc21XJ.js b/src/static/assets/DashboardView-DcIc21XJ.js new file mode 100644 index 0000000..556d844 --- /dev/null +++ b/src/static/assets/DashboardView-DcIc21XJ.js @@ -0,0 +1 @@ +import{d as E,n as K,w as i,o as e,a as s,e as r,t as c,c as t,j,k as y,p as O,v as Q,x as X,F as x,l as h,y as U,z as W,i as k,r as g,m as N,A as S}from"./index-ZkX-rg-0.js";import{d as _}from"./dashboard-C1cvUjRU.js";import{_ as b,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as T,a as A}from"./CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js";import{_ as Y}from"./Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js";import{_ as Z}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{f as w,i as L}from"./utils-DWBfPysr.js";const ee={class:"flex items-start justify-between gap-2"},te={class:"flex-1 min-w-0"},se={class:"text-[11px] text-muted-foreground font-semibold uppercase tracking-widest truncate"},oe={class:"mt-1.5"},le={key:0,class:"h-8 w-24 bg-muted animate-pulse rounded"},ae={key:1,class:"text-2xl font-bold text-foreground tracking-tight"},ne={key:0,class:"text-xs text-muted-foreground mt-1 truncate"},re={key:0,class:"h-10 w-10 rounded-xl bg-primary/10 ring-1 ring-primary/20 flex items-center justify-center shrink-0"},de={key:0,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ie={key:1,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ue={key:2,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},me={key:4,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ve={key:5,class:"h-5 w-5 text-primary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},fe={key:0,class:"mt-3 flex items-center gap-1.5 text-xs"},ge={class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},xe={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 10l7-7m0 0l7 7m-7-7v18"},he={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M19 14l-7 7m0 0l-7-7m7 7V3"},pe={key:2,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 12h14"},p=E({__name:"KpiCard",props:{label:{},value:{},icon:{},trend:{},description:{},loading:{type:Boolean}},setup(d){return(m,a)=>(e(),K(b,{class:"relative overflow-hidden transition-all duration-200 hover:shadow-md hover:-translate-y-px"},{default:i(()=>[a[8]||(a[8]=s("span",{class:"pointer-events-none absolute -right-6 -top-6 h-16 w-16 rounded-full bg-primary/5"},null,-1)),a[9]||(a[9]=s("span",{class:"pointer-events-none absolute -right-2 -top-2 h-8 w-8 rounded-full bg-primary/8"},null,-1)),r($,{class:"p-5"},{default:i(()=>[s("div",ee,[s("div",te,[s("p",se,c(d.label),1),s("div",oe,[d.loading?(e(),t("div",le)):(e(),t("p",ae,c(d.value),1))]),d.description?(e(),t("p",ne,c(d.description),1)):j("",!0)]),d.icon?(e(),t("div",re,[d.icon==="clock"?(e(),t("svg",de,[...a[0]||(a[0]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])])):d.icon==="calendar"?(e(),t("svg",ie,[...a[1]||(a[1]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])])):d.icon==="folder"?(e(),t("svg",ue,[...a[2]||(a[2]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7a2 2 0 012-2h3.586a1 1 0 01.707.293l1.414 1.414A1 1 0 0011.414 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"},null,-1)])])):d.icon==="trending-up"?(e(),t("svg",ce,[...a[3]||(a[3]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},null,-1)])])):d.icon==="git"?(e(),t("svg",me,[...a[4]||(a[4]=[s("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"2"},null,-1),s("path",{"stroke-linecap":"round","stroke-width":"2",d:"M2 12h6M16 12h6"},null,-1)])])):(e(),t("svg",ve,[...a[5]||(a[5]=[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"},null,-1)])]))])):j("",!0)]),d.trend!==void 0?(e(),t("div",fe,[s("div",{class:O(["flex items-center gap-1 font-semibold",d.trend>0?"text-emerald-500":d.trend<0?"text-red-400":"text-muted-foreground"])},[(e(),t("svg",ge,[d.trend>0?(e(),t("path",xe)):d.trend<0?(e(),t("path",he)):(e(),t("path",pe))])),y(" "+c(d.trend>0?"+":"")+c(Math.abs(d.trend))+"% ",1)],2),a[6]||(a[6]=s("span",{class:"text-muted-foreground"},"vs last period",-1))])):j("",!0),a[7]||(a[7]=s("div",{class:"mt-3 h-0.5 w-12 rounded-full bg-primary/30"},null,-1))]),_:1})]),_:1}))}}),ye={class:"p-6 space-y-6"},ke={class:"flex flex-wrap items-center gap-3"},_e={class:"flex items-center rounded-md border border-border overflow-hidden"},we=["onClick"],be={class:"grid grid-cols-2 md:grid-cols-3 xl:grid-cols-6 gap-4"},$e={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},je={key:0,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Ce={key:1,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Me={key:2,class:"h-40 flex items-end gap-px"},De=["title"],Be={key:0,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},Ve={key:1,class:"h-40 flex items-center justify-center text-sm text-muted-foreground"},ze={key:2,class:"h-40 flex items-end gap-2"},He=["title"],Ne={class:"text-xs text-muted-foreground"},Te={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Ae={key:0,class:"space-y-2"},Fe={key:1,class:"text-sm text-muted-foreground py-4 text-center"},Pe={key:2,class:"space-y-2"},Se={class:"text-xs text-foreground w-24 truncate shrink-0"},Le={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},Ue={class:"text-xs text-muted-foreground w-10 text-right shrink-0"},We={key:0,class:"space-y-2"},Ee={key:1,class:"text-sm text-muted-foreground py-4 text-center"},Ke={key:2,class:"space-y-2"},Oe={class:"flex items-center justify-between text-xs mb-0.5"},Re={class:"text-foreground truncate max-w-[160px]"},qe={class:"text-muted-foreground shrink-0"},tt=E({__name:"DashboardView",setup(d){const m=g("30d"),a=g(""),C=g(""),f=g(null),F=g([]),M=g([]),D=g([]),B=g([]),u=g(!1),R=N(()=>{const n=new Date,l=L(n);if(m.value==="today")return{from:l,to:l};if(m.value==="7d"){const v=new Date(n);return v.setDate(n.getDate()-7),{from:L(v),to:l}}else if(m.value==="30d"){const v=new Date(n);return v.setDate(n.getDate()-30),{from:L(v),to:l}}else return{from:a.value||l,to:C.value||l}});async function P(){if(!(m.value==="custom"&&(!a.value||!C.value))){u.value=!0;try{const n=R.value,[l,v,V,z,H]=await Promise.all([_.summary(n),_.projects(n),_.monthly(n),_.dow(n),_.tools(n)]);f.value=l.data,F.value=v.data,M.value=V.data,D.value=z.data,B.value=H.data}catch(n){console.error("Failed to load dashboard data",n)}finally{u.value=!1}}}Q(m,()=>{m.value!=="custom"&&P()}),X(()=>P());const q=N(()=>Math.max(...M.value.map(n=>n.hours),1)),G=N(()=>Math.max(...D.value.map(n=>n.hours),1)),I=N(()=>Math.max(...B.value.map(n=>n.pct),1)),J=n=>n?n>90?"danger":n>70?"warning":"success":"default";return(n,l)=>{var v,V,z,H;return e(),t("div",ye,[s("div",ke,[l[4]||(l[4]=s("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Overview",-1)),s("div",_e,[(e(),t(x,null,h(["today","7d","30d","custom"],o=>s("button",{key:o,class:O(["px-3 py-1.5 text-xs font-medium transition-colors",m.value===o?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:Ge=>m.value=o},c(o==="today"?"Today":o==="7d"?"7 days":o==="30d"?"30 days":"Custom"),11,we)),64))]),m.value==="custom"?(e(),t(x,{key:0},[U(s("input",{"onUpdate:modelValue":l[0]||(l[0]=o=>a.value=o),type:"date",class:"h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-ring"},null,512),[[W,a.value]]),l[3]||(l[3]=s("span",{class:"text-xs text-muted-foreground"},"to",-1)),U(s("input",{"onUpdate:modelValue":l[1]||(l[1]=o=>C.value=o),type:"date",class:"h-8 rounded-md border border-input bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-ring"},null,512),[[W,C.value]]),r(Z,{size:"sm",loading:u.value,onClick:P},{default:i(()=>[...l[2]||(l[2]=[y("Apply",-1)])]),_:1},8,["loading"])],64)):j("",!0)]),s("div",be,[r(p,{label:"Total Hours",value:f.value?k(w)(f.value.total_hours):"-",icon:"clock",loading:u.value},null,8,["value","loading"]),r(p,{label:"Working Days",value:((v=f.value)==null?void 0:v.working_days)??"-",icon:"calendar",loading:u.value},null,8,["value","loading"]),r(p,{label:"Projects",value:((V=f.value)==null?void 0:V.total_projects)??"-",icon:"folder",loading:u.value},null,8,["value","loading"]),r(p,{label:"Avg / Day",value:f.value?k(w)(f.value.avg_hours_per_day):"-",icon:"trending-up",loading:u.value},null,8,["value","loading"]),r(p,{label:"Top Project",value:((z=f.value)==null?void 0:z.top_project)??"-",icon:"star",loading:u.value},null,8,["value","loading"]),r(p,{label:"Commits",value:((H=f.value)==null?void 0:H.total_commits)??"-",icon:"git",loading:u.value},null,8,["value","loading"])]),s("div",$e,[r(b,null,{default:i(()=>[r(T,{class:"pb-2"},{default:i(()=>[r(A,{class:"text-sm"},{default:i(()=>[...l[5]||(l[5]=[y("Hours by Day",-1)])]),_:1})]),_:1}),r($,null,{default:i(()=>[u.value?(e(),t("div",je," Loading... ")):M.value.length===0?(e(),t("div",Ce," No data ")):(e(),t("div",Me,[(e(!0),t(x,null,h(M.value,o=>(e(),t("div",{key:o.date,class:"flex-1 flex flex-col items-center gap-0.5 group",title:`${o.date}: ${k(w)(o.hours)}`},[s("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${o.hours/q.value*100}%`})},null,4)],8,De))),128))]))]),_:1})]),_:1}),r(b,null,{default:i(()=>[r(T,{class:"pb-2"},{default:i(()=>[r(A,{class:"text-sm"},{default:i(()=>[...l[6]||(l[6]=[y("Hours by Day of Week",-1)])]),_:1})]),_:1}),r($,null,{default:i(()=>[u.value?(e(),t("div",Be," Loading... ")):D.value.length===0?(e(),t("div",Ve," No data ")):(e(),t("div",ze,[(e(!0),t(x,null,h(D.value,o=>(e(),t("div",{key:o.dow,class:"flex-1 flex flex-col items-center gap-1"},[s("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${Math.max(o.hours/G.value*100,2)}%`}),title:`${k(w)(o.hours)}`},null,12,He),s("span",Ne,c(o.label.slice(0,2)),1)]))),128))]))]),_:1})]),_:1})]),s("div",Te,[r(b,null,{default:i(()=>[r(T,{class:"pb-2"},{default:i(()=>[r(A,{class:"text-sm"},{default:i(()=>[...l[7]||(l[7]=[y("Tool Usage",-1)])]),_:1})]),_:1}),r($,null,{default:i(()=>[u.value?(e(),t("div",Ae,[(e(),t(x,null,h(5,o=>s("div",{key:o,class:"h-6 bg-muted animate-pulse rounded"})),64))])):B.value.length===0?(e(),t("div",Fe," No data ")):(e(),t("div",Pe,[(e(!0),t(x,null,h(B.value.slice(0,8),o=>(e(),t("div",{key:o.tool,class:"flex items-center gap-2"},[s("span",Se,c(o.tool),1),s("div",Le,[s("div",{class:"h-full bg-primary rounded-full",style:S({width:`${o.pct/I.value*100}%`})},null,4)]),s("span",Ue,c(o.pct.toFixed(0))+"% ",1)]))),128))]))]),_:1})]),_:1}),r(b,null,{default:i(()=>[r(T,{class:"pb-2"},{default:i(()=>[r(A,{class:"text-sm"},{default:i(()=>[...l[8]||(l[8]=[y("Projects",-1)])]),_:1})]),_:1}),r($,null,{default:i(()=>[u.value?(e(),t("div",We,[(e(),t(x,null,h(5,o=>s("div",{key:o,class:"h-8 bg-muted animate-pulse rounded"})),64))])):F.value.length===0?(e(),t("div",Ee," No data ")):(e(),t("div",Ke,[(e(!0),t(x,null,h(F.value.slice(0,8),o=>(e(),t("div",{key:o.project_id},[s("div",Oe,[s("span",Re,c(o.display_name),1),s("span",qe,c(k(w)(o.total_hours)),1)]),o.progress_pct!==null?(e(),K(Y,{key:0,value:o.progress_pct,color:J(o.progress_pct)},null,8,["value","color"])):j("",!0)]))),128))]))]),_:1})]),_:1})])])}}});export{tt as default}; diff --git a/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js b/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js similarity index 84% rename from src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js rename to src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js index a739587..6f7bd7f 100644 --- a/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js +++ b/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js @@ -1 +1 @@ -import{d as y,y as k,E as b,n as h,G as g,e as c,T as x,w as u,o as a,c as n,a as o,v as r,t as m,j as i,p as w}from"./index-DRwzmrLE.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";const C={key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4"},B=["aria-label"],j={key:0,class:"flex items-center justify-between p-6 pb-4"},E={class:"text-lg font-semibold text-foreground"},z={key:0,class:"text-sm text-muted-foreground mt-1"},L={class:"px-6 pb-4"},M={key:1,class:"flex justify-end gap-2 px-6 pb-6"},V=y({__name:"Dialog",props:{open:{type:Boolean},title:{},description:{},maxWidth:{default:"max-w-lg"}},emits:["close"],setup(e,{emit:f}){const p=e,l=f;function d(t){t.key==="Escape"&&p.open&&l("close")}return k(()=>document.addEventListener("keydown",d)),b(()=>document.removeEventListener("keydown",d)),(t,s)=>(a(),h(g,{to:"body"},[c(x,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:u(()=>[e.open?(a(),n("div",C,[o("div",{class:"absolute inset-0 bg-black/60 backdrop-blur-sm",onClick:s[0]||(s[0]=v=>l("close"))}),o("div",{class:w(["relative w-full bg-card border border-border rounded-lg shadow-xl z-10",e.maxWidth]),role:"dialog","aria-modal":!0,"aria-label":e.title},[e.title||t.$slots.header?(a(),n("div",j,[o("div",null,[r(t.$slots,"header",{},()=>[o("h2",E,m(e.title),1),e.description?(a(),n("p",z,m(e.description),1)):i("",!0)])]),c($,{variant:"ghost",size:"icon",class:"shrink-0",onClick:s[1]||(s[1]=v=>l("close"))},{default:u(()=>[...s[2]||(s[2]=[o("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]),_:1})])):i("",!0),o("div",L,[r(t.$slots,"default")]),t.$slots.footer?(a(),n("div",M,[r(t.$slots,"footer")])):i("",!0)],10,B)])):i("",!0)]),_:3})]))}});export{V as _}; +import{d as y,x as k,E as b,n as h,G as x,e as c,T as g,w as u,o as a,c as n,a as o,s as r,t as m,j as i,p as w}from"./index-ZkX-rg-0.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";const C={key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4"},B=["aria-label"],j={key:0,class:"flex items-center justify-between p-6 pb-4"},E={class:"text-lg font-semibold text-foreground"},z={key:0,class:"text-sm text-muted-foreground mt-1"},L={class:"px-6 pb-4"},M={key:1,class:"flex justify-end gap-2 px-6 pb-6"},V=y({__name:"Dialog",props:{open:{type:Boolean},title:{},description:{},maxWidth:{default:"max-w-lg"}},emits:["close"],setup(e,{emit:f}){const p=e,l=f;function d(t){t.key==="Escape"&&p.open&&l("close")}return k(()=>document.addEventListener("keydown",d)),b(()=>document.removeEventListener("keydown",d)),(t,s)=>(a(),h(x,{to:"body"},[c(g,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:u(()=>[e.open?(a(),n("div",C,[o("div",{class:"absolute inset-0 bg-black/60 backdrop-blur-sm",onClick:s[0]||(s[0]=v=>l("close"))}),o("div",{class:w(["relative w-full bg-card border border-border rounded-lg shadow-xl z-10",e.maxWidth]),role:"dialog","aria-modal":!0,"aria-label":e.title},[e.title||t.$slots.header?(a(),n("div",j,[o("div",null,[r(t.$slots,"header",{},()=>[o("h2",E,m(e.title),1),e.description?(a(),n("p",z,m(e.description),1)):i("",!0)])]),c($,{variant:"ghost",size:"icon",class:"shrink-0",onClick:s[1]||(s[1]=v=>l("close"))},{default:u(()=>[...s[2]||(s[2]=[o("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]),_:1})])):i("",!0),o("div",L,[r(t.$slots,"default")]),t.$slots.footer?(a(),n("div",M,[r(t.$slots,"footer")])):i("",!0)],10,B)])):i("",!0)]),_:3})]))}});export{V as _}; diff --git a/src/static/assets/Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js b/src/static/assets/Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js similarity index 89% rename from src/static/assets/Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js rename to src/static/assets/Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js index 5487632..a47adb8 100644 --- a/src/static/assets/Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js +++ b/src/static/assets/Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js @@ -1 +1 @@ -import{c as i}from"./utils-CFgQVuqB.js";import{d,c as s,p as u,i as m,o as r}from"./index-DRwzmrLE.js";const c=["id","name","type","value","placeholder","disabled","autocomplete","min","max","step"],g=d({__name:"Input",props:{modelValue:{},type:{},placeholder:{},disabled:{type:Boolean},class:{},id:{},name:{},autocomplete:{},min:{},max:{},step:{}},emits:["update:modelValue","change","blur","focus"],setup(e,{emit:a}){const n=e,o=a;return(f,t)=>(r(),s("input",{id:e.id,name:e.name,type:e.type??"text",value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,autocomplete:e.autocomplete,min:e.min,max:e.max,step:e.step,class:u(m(i)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",n.class)),onInput:t[0]||(t[0]=l=>o("update:modelValue",l.target.value)),onChange:t[1]||(t[1]=l=>o("change",l.target.value)),onBlur:t[2]||(t[2]=l=>o("blur",l)),onFocus:t[3]||(t[3]=l=>o("focus",l))},null,42,c))}});export{g as _}; +import{c as i}from"./utils-DWBfPysr.js";import{d,c as s,p as u,i as m,o as r}from"./index-ZkX-rg-0.js";const c=["id","name","type","value","placeholder","disabled","autocomplete","min","max","step"],g=d({__name:"Input",props:{modelValue:{},type:{},placeholder:{},disabled:{type:Boolean},class:{},id:{},name:{},autocomplete:{},min:{},max:{},step:{}},emits:["update:modelValue","change","blur","focus"],setup(e,{emit:a}){const n=e,o=a;return(f,t)=>(r(),s("input",{id:e.id,name:e.name,type:e.type??"text",value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,autocomplete:e.autocomplete,min:e.min,max:e.max,step:e.step,class:u(m(i)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",n.class)),onInput:t[0]||(t[0]=l=>o("update:modelValue",l.target.value)),onChange:t[1]||(t[1]=l=>o("change",l.target.value)),onBlur:t[2]||(t[2]=l=>o("blur",l)),onFocus:t[3]||(t[3]=l=>o("focus",l))},null,42,c))}});export{g as _}; diff --git a/src/static/assets/KeysView-DlEd1ipQ.js b/src/static/assets/KeysView-B2aWyAvt.js similarity index 89% rename from src/static/assets/KeysView-DlEd1ipQ.js rename to src/static/assets/KeysView-B2aWyAvt.js index 09e24fd..1da1c03 100644 --- a/src/static/assets/KeysView-DlEd1ipQ.js +++ b/src/static/assets/KeysView-B2aWyAvt.js @@ -1 +1 @@ -import{a as b}from"./admin-DItGP2ar.js";import{_ as K,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as v}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{_ as V}from"./Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js";import{_ as N}from"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import{_ as A,a as k}from"./utils-CFgQVuqB.js";import{d as B,y as L,c as l,a as t,e as r,w as n,r as i,o as a,k as p,F as P,l as j,t as u,i as h,n as F,j as I,K as y}from"./index-DRwzmrLE.js";const D={class:"p-6"},R={class:"flex items-center justify-between mb-6"},z={key:0,class:"flex items-center justify-center h-20"},M={key:1,class:"text-center text-muted-foreground py-8 text-sm"},T={key:2,class:"w-full"},U={class:"px-4 py-3 text-sm text-foreground"},E={class:"px-4 py-3 text-sm font-mono text-muted-foreground"},H={class:"px-4 py-3 text-xs text-muted-foreground"},S={class:"px-4 py-3 text-xs text-muted-foreground"},q={class:"px-4 py-3 text-right"},G={class:"space-y-4"},J={key:0,class:"rounded-md bg-emerald-500/10 border border-emerald-500/30 p-3"},O={class:"text-xs font-mono text-foreground break-all"},Q={key:1,class:"space-y-1.5"},le=B({__name:"KeysView",setup(W){const f=i([]),_=i(!1),c=i(!1),m=i(""),x=i(!1),d=i(null);L(()=>g());async function g(){_.value=!0;try{const o=await b.keys();f.value=o.data}finally{_.value=!1}}async function w(){if(m.value.trim()){x.value=!0;try{const o=await b.createKey({label:m.value});d.value=o.data.key,y.success("API key created"),await g(),m.value=""}catch{y.error("Failed to create key")}finally{x.value=!1}}}async function C(o){if(confirm(`Revoke key "${o.label}"? This cannot be undone.`))try{await b.revokeKey(o.id),y.success("Key revoked"),f.value=f.value.filter(e=>e.id!==o.id)}catch{y.error("Failed to revoke key")}}return(o,e)=>(a(),l("div",D,[t("div",R,[e[5]||(e[5]=t("h2",{class:"text-lg font-semibold text-foreground"},"API Keys",-1)),r(v,{size:"sm",onClick:e[0]||(e[0]=s=>{c.value=!0,d.value=null})},{default:n(()=>[...e[4]||(e[4]=[t("svg",{class:"h-4 w-4 mr-1.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),p(" New Key ",-1)])]),_:1})]),r(K,null,{default:n(()=>[r($,{class:"p-0"},{default:n(()=>[_.value?(a(),l("div",z,[r(A,{class:"text-primary"})])):f.value.length===0?(a(),l("div",M," No API keys ")):(a(),l("table",T,[e[7]||(e[7]=t("thead",null,[t("tr",{class:"border-b border-border"},[t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Label"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Prefix"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Created"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Last Used"),t("th",{class:"px-4 py-3"})])],-1)),t("tbody",null,[(a(!0),l(P,null,j(f.value,s=>(a(),l("tr",{key:s.id,class:"border-b border-border last:border-0 hover:bg-muted/30"},[t("td",U,u(s.label),1),t("td",E,u(s.prefix)+"...",1),t("td",H,u(h(k)(s.created_at)),1),t("td",S,u(s.last_used?h(k)(s.last_used):"Never"),1),t("td",q,[r(v,{variant:"ghost",size:"sm",class:"text-destructive",onClick:X=>C(s)},{default:n(()=>[...e[6]||(e[6]=[p(" Revoke ",-1)])]),_:1},8,["onClick"])])]))),128))])]))]),_:1})]),_:1}),r(V,{open:c.value,title:"Create API Key",onClose:e[3]||(e[3]=s=>c.value=!1)},{footer:n(()=>[r(v,{variant:"outline",onClick:e[2]||(e[2]=s=>c.value=!1)},{default:n(()=>[p(u(d.value?"Done":"Cancel"),1)]),_:1}),d.value?I("",!0):(a(),F(v,{key:0,loading:x.value,onClick:w},{default:n(()=>[...e[10]||(e[10]=[p(" Create ",-1)])]),_:1},8,["loading"]))]),default:n(()=>[t("div",G,[d.value?(a(),l("div",J,[e[8]||(e[8]=t("p",{class:"text-xs text-emerald-400 font-medium mb-1"},"Key created — save it now!",-1)),t("p",O,u(d.value),1)])):(a(),l("div",Q,[e[9]||(e[9]=t("label",{class:"text-sm font-medium text-foreground"},"Label",-1)),r(N,{modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=s=>m.value=s),placeholder:"e.g. claude-collector",disabled:x.value},null,8,["modelValue","disabled"])]))])]),_:1},8,["open"])]))}});export{le as default}; +import{a as b}from"./admin-D88IFW1N.js";import{_ as K,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as v}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{_ as V}from"./Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js";import{_ as N}from"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import{_ as A,a as k}from"./utils-DWBfPysr.js";import{d as B,x as L,c as l,a as t,e as r,w as n,r as i,o as a,k as p,F as P,l as j,t as u,i as h,n as F,j as I,K as y}from"./index-ZkX-rg-0.js";const D={class:"p-6"},R={class:"flex items-center justify-between mb-6"},z={key:0,class:"flex items-center justify-center h-20"},M={key:1,class:"text-center text-muted-foreground py-8 text-sm"},T={key:2,class:"w-full"},U={class:"px-4 py-3 text-sm text-foreground"},E={class:"px-4 py-3 text-sm font-mono text-muted-foreground"},H={class:"px-4 py-3 text-xs text-muted-foreground"},S={class:"px-4 py-3 text-xs text-muted-foreground"},q={class:"px-4 py-3 text-right"},G={class:"space-y-4"},J={key:0,class:"rounded-md bg-emerald-500/10 border border-emerald-500/30 p-3"},O={class:"text-xs font-mono text-foreground break-all"},Q={key:1,class:"space-y-1.5"},le=B({__name:"KeysView",setup(W){const f=i([]),_=i(!1),c=i(!1),m=i(""),x=i(!1),d=i(null);L(()=>g());async function g(){_.value=!0;try{const o=await b.keys();f.value=o.data}finally{_.value=!1}}async function w(){if(m.value.trim()){x.value=!0;try{const o=await b.createKey({label:m.value});d.value=o.data.key,y.success("API key created"),await g(),m.value=""}catch{y.error("Failed to create key")}finally{x.value=!1}}}async function C(o){if(confirm(`Revoke key "${o.label}"? This cannot be undone.`))try{await b.revokeKey(o.id),y.success("Key revoked"),f.value=f.value.filter(e=>e.id!==o.id)}catch{y.error("Failed to revoke key")}}return(o,e)=>(a(),l("div",D,[t("div",R,[e[5]||(e[5]=t("h2",{class:"text-lg font-semibold text-foreground"},"API Keys",-1)),r(v,{size:"sm",onClick:e[0]||(e[0]=s=>{c.value=!0,d.value=null})},{default:n(()=>[...e[4]||(e[4]=[t("svg",{class:"h-4 w-4 mr-1.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),p(" New Key ",-1)])]),_:1})]),r(K,null,{default:n(()=>[r($,{class:"p-0"},{default:n(()=>[_.value?(a(),l("div",z,[r(A,{class:"text-primary"})])):f.value.length===0?(a(),l("div",M," No API keys ")):(a(),l("table",T,[e[7]||(e[7]=t("thead",null,[t("tr",{class:"border-b border-border"},[t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Label"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Prefix"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Created"),t("th",{class:"text-left text-xs font-medium text-muted-foreground px-4 py-3"},"Last Used"),t("th",{class:"px-4 py-3"})])],-1)),t("tbody",null,[(a(!0),l(P,null,j(f.value,s=>(a(),l("tr",{key:s.id,class:"border-b border-border last:border-0 hover:bg-muted/30"},[t("td",U,u(s.label),1),t("td",E,u(s.prefix)+"...",1),t("td",H,u(h(k)(s.created_at)),1),t("td",S,u(s.last_used?h(k)(s.last_used):"Never"),1),t("td",q,[r(v,{variant:"ghost",size:"sm",class:"text-destructive",onClick:X=>C(s)},{default:n(()=>[...e[6]||(e[6]=[p(" Revoke ",-1)])]),_:1},8,["onClick"])])]))),128))])]))]),_:1})]),_:1}),r(V,{open:c.value,title:"Create API Key",onClose:e[3]||(e[3]=s=>c.value=!1)},{footer:n(()=>[r(v,{variant:"outline",onClick:e[2]||(e[2]=s=>c.value=!1)},{default:n(()=>[p(u(d.value?"Done":"Cancel"),1)]),_:1}),d.value?I("",!0):(a(),F(v,{key:0,loading:x.value,onClick:w},{default:n(()=>[...e[10]||(e[10]=[p(" Create ",-1)])]),_:1},8,["loading"]))]),default:n(()=>[t("div",G,[d.value?(a(),l("div",J,[e[8]||(e[8]=t("p",{class:"text-xs text-emerald-400 font-medium mb-1"},"Key created — save it now!",-1)),t("p",O,u(d.value),1)])):(a(),l("div",Q,[e[9]||(e[9]=t("label",{class:"text-sm font-medium text-foreground"},"Label",-1)),r(N,{modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=s=>m.value=s),placeholder:"e.g. claude-collector",disabled:x.value},null,8,["modelValue","disabled"])]))])]),_:1},8,["open"])]))}});export{le as default}; diff --git a/src/static/assets/LiveView-B2nQO5D7.js b/src/static/assets/LiveView-BTg6aFjJ.js similarity index 92% rename from src/static/assets/LiveView-B2nQO5D7.js rename to src/static/assets/LiveView-BTg6aFjJ.js index 602eeeb..5957ac7 100644 --- a/src/static/assets/LiveView-B2nQO5D7.js +++ b/src/static/assets/LiveView-BTg6aFjJ.js @@ -1 +1 @@ -import{E as j,r as g,d as L,u as J,y as O,c as d,a as r,p as b,i,t as v,n as T,w as x,j as k,e as E,o as l,k as S,F as V,l as B,m as F}from"./index-DRwzmrLE.js";import{_ as z,a as A}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as w}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import"./utils-CFgQVuqB.js";function D(C){const e=g([]),f=g(!1),o=g(null);let s=null,u=null,m=!1;function p(){if(!m)try{s=new EventSource(C),s.onopen=()=>{f.value=!0,o.value=null},s.onmessage=n=>{try{const h=JSON.parse(n.data);e.value.push({type:"message",data:h}),e.value.length>200&&e.value.shift()}catch{e.value.push({type:"message",data:n.data})}},s.addEventListener("session_start",n=>{try{e.value.push({type:"session_start",data:JSON.parse(n.data)})}catch{e.value.push({type:"session_start",data:n.data})}e.value.length>200&&e.value.shift()}),s.addEventListener("session_end",n=>{try{e.value.push({type:"session_end",data:JSON.parse(n.data)})}catch{e.value.push({type:"session_end",data:n.data})}e.value.length>200&&e.value.shift()}),s.addEventListener("activity",n=>{try{e.value.push({type:"activity",data:JSON.parse(n.data)})}catch{e.value.push({type:"activity",data:n.data})}e.value.length>200&&e.value.shift()}),s.onerror=()=>{f.value=!1,o.value="Connection lost, reconnecting...",s==null||s.close(),s=null,m||(u=setTimeout(()=>p(),5e3))}}catch{o.value="Failed to connect to event stream",m||(u=setTimeout(()=>p(),5e3))}}function _(){m=!0,u&&clearTimeout(u),s==null||s.close(),s=null,f.value=!1}function y(){e.value=[]}return j(()=>{_()}),{events:e,connected:f,error:o,connect:p,disconnect:_,clearEvents:y}}const $={class:"p-6 h-full flex flex-col"},I={class:"flex items-center gap-3 mb-4"},M={class:"flex items-center gap-2"},P={class:"text-xs text-muted-foreground"},R={key:0,class:"mb-4 text-xs text-amber-400 bg-amber-500/10 border border-amber-500/30 rounded px-3 py-2"},U={key:0,class:"flex items-center justify-center h-full text-sm text-muted-foreground"},W={key:1,class:"overflow-y-auto h-full font-mono text-xs"},q={class:"flex-1 min-w-0"},G={class:"flex items-center gap-2 flex-wrap"},H={key:0,class:"text-muted-foreground"},K={class:"text-muted-foreground truncate mt-0.5"},ee=L({__name:"LiveView",setup(C){const e=J(),{events:f,connected:o,error:s,connect:u,clearEvents:m}=D("/cc-dashboard/api/events/stream");O(()=>{e.isAuthenticated&&u()});const p=F(()=>[...f.value].reverse().slice(0,100));function _(t){return t==="session_start"?"text-emerald-400":t==="session_end"?"text-amber-400":t==="activity"?"text-blue-400":"text-muted-foreground"}function y(t){return t==="session_start"?"▶":t==="session_end"?"■":t==="activity"?"●":"○"}function n(t){if(typeof t=="string")return t;if(t&&typeof t=="object"){const a=t;return a.message||a.summary||JSON.stringify(t)}return String(t)}function h(t){if(t&&typeof t=="object"){const a=t;return a.display_name||a.project_id||""}return""}return(t,a)=>(l(),d("div",$,[r("div",I,[a[2]||(a[2]=r("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Live Feed",-1)),r("div",M,[r("div",{class:b(["h-2 w-2 rounded-full",i(o)?"bg-emerald-500 animate-pulse":"bg-red-500"])},null,2),r("span",P,v(i(o)?"Connected":"Disconnected"),1)]),i(o)?k("",!0):(l(),T(w,{key:0,variant:"outline",size:"sm",onClick:i(u)},{default:x(()=>[...a[0]||(a[0]=[S(" Reconnect ",-1)])]),_:1},8,["onClick"])),E(w,{variant:"ghost",size:"sm",onClick:i(m)},{default:x(()=>[...a[1]||(a[1]=[S(" Clear ",-1)])]),_:1},8,["onClick"])]),i(s)&&!i(o)?(l(),d("div",R,v(i(s)),1)):k("",!0),E(z,{class:"flex-1 overflow-hidden"},{default:x(()=>[E(A,{class:"p-0 h-full"},{default:x(()=>[p.value.length===0?(l(),d("div",U,[...a[3]||(a[3]=[r("div",{class:"text-center"},[r("div",{class:"text-2xl mb-2"},"📡"),r("p",null,"Waiting for events..."),r("p",{class:"text-xs mt-1"},"Activity will appear here in real-time")],-1)])])):(l(),d("div",W,[(l(!0),d(V,null,B(p.value,(c,N)=>(l(),d("div",{key:N,class:"flex items-start gap-2 px-4 py-1.5 hover:bg-muted/50 border-b border-border/30"},[r("span",{class:b([_(c.type),"shrink-0 mt-0.5"])},v(y(c.type)),3),r("div",q,[r("div",G,[r("span",{class:b([_(c.type),"font-medium"])},v(c.type),3),h(c.data)?(l(),d("span",H,v(h(c.data)),1)):k("",!0)]),r("p",K,v(n(c.data)),1)])]))),128))]))]),_:1})]),_:1})]))}});export{ee as default}; +import{E as j,r as g,d as L,u as J,x as O,c as d,a as r,p as b,i,t as v,n as T,w as x,j as k,e as E,o as l,k as S,F as V,l as B,m as F}from"./index-ZkX-rg-0.js";import{_ as z,a as A}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as w}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import"./utils-DWBfPysr.js";function D(C){const e=g([]),f=g(!1),o=g(null);let s=null,u=null,m=!1;function p(){if(!m)try{s=new EventSource(C),s.onopen=()=>{f.value=!0,o.value=null},s.onmessage=n=>{try{const h=JSON.parse(n.data);e.value.push({type:"message",data:h}),e.value.length>200&&e.value.shift()}catch{e.value.push({type:"message",data:n.data})}},s.addEventListener("session_start",n=>{try{e.value.push({type:"session_start",data:JSON.parse(n.data)})}catch{e.value.push({type:"session_start",data:n.data})}e.value.length>200&&e.value.shift()}),s.addEventListener("session_end",n=>{try{e.value.push({type:"session_end",data:JSON.parse(n.data)})}catch{e.value.push({type:"session_end",data:n.data})}e.value.length>200&&e.value.shift()}),s.addEventListener("activity",n=>{try{e.value.push({type:"activity",data:JSON.parse(n.data)})}catch{e.value.push({type:"activity",data:n.data})}e.value.length>200&&e.value.shift()}),s.onerror=()=>{f.value=!1,o.value="Connection lost, reconnecting...",s==null||s.close(),s=null,m||(u=setTimeout(()=>p(),5e3))}}catch{o.value="Failed to connect to event stream",m||(u=setTimeout(()=>p(),5e3))}}function _(){m=!0,u&&clearTimeout(u),s==null||s.close(),s=null,f.value=!1}function y(){e.value=[]}return j(()=>{_()}),{events:e,connected:f,error:o,connect:p,disconnect:_,clearEvents:y}}const $={class:"p-6 h-full flex flex-col"},I={class:"flex items-center gap-3 mb-4"},M={class:"flex items-center gap-2"},P={class:"text-xs text-muted-foreground"},R={key:0,class:"mb-4 text-xs text-amber-400 bg-amber-500/10 border border-amber-500/30 rounded px-3 py-2"},U={key:0,class:"flex items-center justify-center h-full text-sm text-muted-foreground"},W={key:1,class:"overflow-y-auto h-full font-mono text-xs"},q={class:"flex-1 min-w-0"},G={class:"flex items-center gap-2 flex-wrap"},H={key:0,class:"text-muted-foreground"},K={class:"text-muted-foreground truncate mt-0.5"},ee=L({__name:"LiveView",setup(C){const e=J(),{events:f,connected:o,error:s,connect:u,clearEvents:m}=D("/cc-dashboard/api/events/stream");O(()=>{e.isAuthenticated&&u()});const p=F(()=>[...f.value].reverse().slice(0,100));function _(t){return t==="session_start"?"text-emerald-400":t==="session_end"?"text-amber-400":t==="activity"?"text-blue-400":"text-muted-foreground"}function y(t){return t==="session_start"?"▶":t==="session_end"?"■":t==="activity"?"●":"○"}function n(t){if(typeof t=="string")return t;if(t&&typeof t=="object"){const a=t;return a.message||a.summary||JSON.stringify(t)}return String(t)}function h(t){if(t&&typeof t=="object"){const a=t;return a.display_name||a.project_id||""}return""}return(t,a)=>(l(),d("div",$,[r("div",I,[a[2]||(a[2]=r("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Live Feed",-1)),r("div",M,[r("div",{class:b(["h-2 w-2 rounded-full",i(o)?"bg-emerald-500 animate-pulse":"bg-red-500"])},null,2),r("span",P,v(i(o)?"Connected":"Disconnected"),1)]),i(o)?k("",!0):(l(),T(w,{key:0,variant:"outline",size:"sm",onClick:i(u)},{default:x(()=>[...a[0]||(a[0]=[S(" Reconnect ",-1)])]),_:1},8,["onClick"])),E(w,{variant:"ghost",size:"sm",onClick:i(m)},{default:x(()=>[...a[1]||(a[1]=[S(" Clear ",-1)])]),_:1},8,["onClick"])]),i(s)&&!i(o)?(l(),d("div",R,v(i(s)),1)):k("",!0),E(z,{class:"flex-1 overflow-hidden"},{default:x(()=>[E(A,{class:"p-0 h-full"},{default:x(()=>[p.value.length===0?(l(),d("div",U,[...a[3]||(a[3]=[r("div",{class:"text-center"},[r("div",{class:"text-2xl mb-2"},"📡"),r("p",null,"Waiting for events..."),r("p",{class:"text-xs mt-1"},"Activity will appear here in real-time")],-1)])])):(l(),d("div",W,[(l(!0),d(V,null,B(p.value,(c,N)=>(l(),d("div",{key:N,class:"flex items-start gap-2 px-4 py-1.5 hover:bg-muted/50 border-b border-border/30"},[r("span",{class:b([_(c.type),"shrink-0 mt-0.5"])},v(y(c.type)),3),r("div",q,[r("div",G,[r("span",{class:b([_(c.type),"font-medium"])},v(c.type),3),h(c.data)?(l(),d("span",H,v(h(c.data)),1)):k("",!0)]),r("p",K,v(n(c.data)),1)])]))),128))]))]),_:1})]),_:1})]))}});export{ee as default}; diff --git a/src/static/assets/LoginView-mR80ecLx.js b/src/static/assets/LoginView-D-vh1CtU.js similarity index 87% rename from src/static/assets/LoginView-mR80ecLx.js rename to src/static/assets/LoginView-D-vh1CtU.js index 6d9b0f0..4dde0c9 100644 --- a/src/static/assets/LoginView-mR80ecLx.js +++ b/src/static/assets/LoginView-D-vh1CtU.js @@ -1 +1 @@ -import{d as g,u as b,c as u,a as s,b as _,e as a,w as i,o as m,f as h,g as w,h as y,i as o,t as V,j as k,k as C,r as c}from"./index-DRwzmrLE.js";import{_ as S}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{_ as p}from"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import{_ as N,a as j}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import"./utils-CFgQVuqB.js";const B={class:"min-h-screen flex items-center justify-center bg-background p-4"},$={class:"w-full max-w-sm"},q={key:0,class:"rounded-md bg-destructive/10 border border-destructive/30 px-3 py-2 text-sm text-destructive"},z={class:"space-y-1.5"},D={class:"space-y-1.5"},U=g({__name:"LoginView",setup(E){const f=h(),v=w(),t=b(),r=c(""),l=c("");async function x(){try{await t.login(r.value,l.value);const n=v.query.redirect;f.push(n??"/")}catch{}}return(n,e)=>(m(),u("div",B,[s("div",$,[e[5]||(e[5]=_('

CC Dashboard

Corporate Planning Hub

',1)),a(N,null,{default:i(()=>[a(j,{class:"pt-6"},{default:i(()=>[s("form",{class:"space-y-4",onSubmit:y(x,["prevent"])},[o(t).error?(m(),u("div",q,V(o(t).error),1)):k("",!0),s("div",z,[e[2]||(e[2]=s("label",{for:"email",class:"text-sm font-medium text-foreground"},"Email",-1)),a(p,{id:"email",modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=d=>r.value=d),type:"email",placeholder:"you@company.com",autocomplete:"email",disabled:o(t).loading,required:""},null,8,["modelValue","disabled"])]),s("div",D,[e[3]||(e[3]=s("label",{for:"password",class:"text-sm font-medium text-foreground"},"Password",-1)),a(p,{id:"password",modelValue:l.value,"onUpdate:modelValue":e[1]||(e[1]=d=>l.value=d),type:"password",placeholder:"••••••••",autocomplete:"current-password",disabled:o(t).loading,required:""},null,8,["modelValue","disabled"])]),a(S,{type:"submit",class:"w-full",loading:o(t).loading},{default:i(()=>[...e[4]||(e[4]=[C(" Sign in ",-1)])]),_:1},8,["loading"])],32)]),_:1})]),_:1})])]))}});export{U as default}; +import{d as g,u as b,c as u,a as s,b as _,e as a,w as i,o as m,f as h,g as w,h as y,i as o,t as V,j as k,k as C,r as c}from"./index-ZkX-rg-0.js";import{_ as S}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{_ as p}from"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import{_ as N,a as j}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import"./utils-DWBfPysr.js";const B={class:"min-h-screen flex items-center justify-center bg-background p-4"},$={class:"w-full max-w-sm"},q={key:0,class:"rounded-md bg-destructive/10 border border-destructive/30 px-3 py-2 text-sm text-destructive"},z={class:"space-y-1.5"},D={class:"space-y-1.5"},U=g({__name:"LoginView",setup(E){const f=h(),v=w(),t=b(),r=c(""),l=c("");async function x(){try{await t.login(r.value,l.value);const n=v.query.redirect;f.push(n??"/")}catch{}}return(n,e)=>(m(),u("div",B,[s("div",$,[e[5]||(e[5]=_('

CC Dashboard

Corporate Planning Hub

',1)),a(N,null,{default:i(()=>[a(j,{class:"pt-6"},{default:i(()=>[s("form",{class:"space-y-4",onSubmit:y(x,["prevent"])},[o(t).error?(m(),u("div",q,V(o(t).error),1)):k("",!0),s("div",z,[e[2]||(e[2]=s("label",{for:"email",class:"text-sm font-medium text-foreground"},"Email",-1)),a(p,{id:"email",modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=d=>r.value=d),type:"email",placeholder:"you@company.com",autocomplete:"email",disabled:o(t).loading,required:""},null,8,["modelValue","disabled"])]),s("div",D,[e[3]||(e[3]=s("label",{for:"password",class:"text-sm font-medium text-foreground"},"Password",-1)),a(p,{id:"password",modelValue:l.value,"onUpdate:modelValue":e[1]||(e[1]=d=>l.value=d),type:"password",placeholder:"••••••••",autocomplete:"current-password",disabled:o(t).loading,required:""},null,8,["modelValue","disabled"])]),a(S,{type:"submit",class:"w-full",loading:o(t).loading},{default:i(()=>[...e[4]||(e[4]=[C(" Sign in ",-1)])]),_:1},8,["loading"])],32)]),_:1})]),_:1})])]))}});export{U as default}; diff --git a/src/static/assets/PlannerView-D0u94Wlo.js b/src/static/assets/PlannerView-B53ml6Jv.js similarity index 86% rename from src/static/assets/PlannerView-D0u94Wlo.js rename to src/static/assets/PlannerView-B53ml6Jv.js index b5a5af3..21f3910 100644 --- a/src/static/assets/PlannerView-D0u94Wlo.js +++ b/src/static/assets/PlannerView-B53ml6Jv.js @@ -1 +1 @@ -import{u as N,_ as E}from"./TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js";import{d as L,o as a,c as r,a as t,p as P,t as v,F as _,l as V,s as A,j as h,e as f,w,k as B,i as D,h as M,m as F,z as H,C as U,n as K,r as b,y as I,x as O,K as g}from"./index-DRwzmrLE.js";import{_ as q}from"./Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js";import{f as S,i as T}from"./utils-CFgQVuqB.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{_ as j}from"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import"./Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js";import"./devops-l4WPqQke.js";const G=["draggable"],J={class:"flex items-start gap-2"},Q=["title"],R={class:"flex-1 min-w-0"},W={class:"text-sm font-medium text-foreground leading-tight truncate"},X={key:0,class:"flex items-center gap-1 mt-1 flex-wrap"},Y={class:"flex items-center gap-2 mt-1.5 flex-wrap"},Z={key:0,class:"text-xs text-muted-foreground"},ee={key:1,class:"text-xs text-emerald-400"},te={key:2,class:"text-xs text-blue-400 ml-auto",title:"Azure DevOps"},se={class:"flex items-center gap-1 opacity-0 group-hover:opacity-100 shrink-0"},oe=L({__name:"TaskCard",props:{task:{},draggable:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:d}){const n=d,c=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],m=u=>["","Low","Medium","High","Critical","Blocker"][u]??"Unknown",k=u=>u>=4?"bg-red-500":u===3?"bg-amber-500":"bg-emerald-500";return(u,o)=>(a(),r("div",{draggable:s.draggable,class:"rounded-lg border border-border bg-card p-3 hover:border-primary/50 transition-colors cursor-pointer group",onClick:o[2]||(o[2]=l=>n("edit",s.task))},[t("div",J,[t("div",{class:P(["h-2 w-2 rounded-full mt-1.5 shrink-0",k(s.task.priority)]),title:m(s.task.priority)},null,10,Q),t("div",R,[t("p",W,v(s.task.title),1),s.task.tags.length?(a(),r("div",X,[(a(!0),r(_,null,V(s.task.tags,l=>(a(),r("span",{key:l.id,class:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",style:A({background:`${l.color_hex}22`,color:l.color_hex})},v(l.name),5))),128))])):h("",!0),t("div",Y,[f(q,{variant:c(s.task.status),class:"text-xs py-0"},{default:w(()=>[B(v(s.task.status),1)]),_:1},8,["variant"]),s.task.estimate_hours?(a(),r("span",Z," ~"+v(D(S)(s.task.estimate_hours)),1)):h("",!0),s.task.actual_hours?(a(),r("span",ee,v(D(S)(s.task.actual_hours))+" actual ",1)):h("",!0),s.task.azure_work_item_id?(a(),r("span",te," #"+v(s.task.azure_work_item_id),1)):h("",!0)])]),t("div",se,[s.task.status!=="done"?(a(),r("button",{key:0,class:"p-1 rounded hover:bg-emerald-500/20 text-emerald-400",title:"Mark done",onClick:o[0]||(o[0]=M(l=>n("complete",s.task),["stop"]))},[...o[3]||(o[3]=[t("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)])])):h("",!0),t("button",{class:"p-1 rounded hover:bg-red-500/20 text-red-400",title:"Delete",onClick:o[1]||(o[1]=M(l=>n("delete",s.task),["stop"]))},[...o[4]||(o[4]=[t("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])])])])],8,G))}}),ae={class:"space-y-6"},ne={key:0,class:"text-sm text-muted-foreground py-4 text-center"},le={class:"flex items-center gap-2 mb-2"},re={class:"text-xs font-semibold uppercase tracking-wide text-muted-foreground"},ie={class:"text-xs text-muted-foreground bg-muted px-1.5 py-0.5 rounded-full"},de={class:"space-y-2"},ue={key:0,class:"text-sm text-muted-foreground text-center py-8"},ce=L({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:d}){const n=s,c=d,m=F(()=>{var o;const u={doing:[],todo:[],done:[],cancelled:[]};for(const l of n.tasks)(o=u[l.status])==null||o.push(l);return u}),k={doing:"In Progress",todo:"To Do",done:"Done",cancelled:"Cancelled"};return(u,o)=>(a(),r("div",ae,[s.loading?(a(),r("div",ne,"Loading tasks...")):(a(),r(_,{key:1},[(a(!0),r(_,null,V(m.value,(l,y)=>H((a(),r("div",{key:y},[t("div",le,[t("h3",re,v(k[y]),1),t("span",ie,v(l.length),1)]),t("div",de,[(a(!0),r(_,null,V(l,p=>(a(),K(oe,{key:p.id,task:p,draggable:"",onEdit:C=>c("edit",p),onComplete:C=>c("complete",p),onDelete:C=>c("delete",p)},null,8,["task","onEdit","onComplete","onDelete"]))),128))])])),[[U,l.length>0]])),128)),n.tasks.length?h("",!0):(a(),r("div",ue," No tasks found "))],64))]))}}),me={class:"p-6"},ke={class:"flex items-center gap-3 mb-6 flex-wrap"},fe={class:"flex items-center gap-1"},be=L({__name:"PlannerView",setup(s){const d=N(),n=b(T(new Date)),c=b(!1),m=b(null),k=b("");I(()=>{d.fetchAll()}),O(n,()=>{d.fetchForDate(n.value)});const u=F(()=>k.value?d.tasks.filter(i=>{var e;return((e=i.project_id)==null?void 0:e.toLowerCase().includes(k.value.toLowerCase()))||i.title.toLowerCase().includes(k.value.toLowerCase())}):d.tasks);function o(){m.value=null,c.value=!0}function l(i){m.value=i,c.value=!0}async function y(i){try{m.value?(await d.update(m.value.id,i),g.success("Task updated")):(await d.create(i),g.success("Task created")),c.value=!1,d.fetchForDate(n.value)}catch{g.error("Failed to save task")}}async function p(i){try{await d.complete(i.id),g.success("Task completed")}catch{g.error("Failed to complete task")}}async function C(i){if(confirm(`Delete "${i.title}"?`))try{await d.remove(i.id),g.success("Task deleted")}catch{g.error("Failed to delete task")}}function z(i){const e=new Date(n.value);e.setDate(e.getDate()+i),n.value=T(e)}return(i,e)=>(a(),r("div",me,[t("div",ke,[e[10]||(e[10]=t("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Planner",-1)),t("div",fe,[f($,{variant:"outline",size:"sm",onClick:e[0]||(e[0]=x=>z(-1))},{default:w(()=>[...e[6]||(e[6]=[t("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1}),f(j,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=x=>n.value=x),type:"date",class:"h-8 w-36 text-xs"},null,8,["modelValue"]),f($,{variant:"outline",size:"sm",onClick:e[2]||(e[2]=x=>z(1))},{default:w(()=>[...e[7]||(e[7]=[t("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])]),_:1}),f($,{variant:"outline",size:"sm",onClick:e[3]||(e[3]=x=>n.value=D(T)(new Date))},{default:w(()=>[...e[8]||(e[8]=[B("Today",-1)])]),_:1})]),f(j,{modelValue:k.value,"onUpdate:modelValue":e[4]||(e[4]=x=>k.value=x),placeholder:"Search tasks...",class:"h-8 w-40 text-xs"},null,8,["modelValue"]),f($,{size:"sm",onClick:o},{default:w(()=>[...e[9]||(e[9]=[t("svg",{class:"h-4 w-4 mr-1.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),B(" New Task ",-1)])]),_:1})]),f(ce,{tasks:u.value,loading:D(d).loading,onEdit:l,onComplete:p,onDelete:C},null,8,["tasks","loading"]),f(E,{open:c.value,task:m.value,"default-date":n.value,onClose:e[5]||(e[5]=x=>c.value=!1),onSave:y},null,8,["open","task","default-date"])]))}});export{be as default}; +import{u as N,_ as E}from"./TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js";import{d as L,o as a,c as r,a as t,p as A,t as v,F as _,l as V,A as P,j as h,e as f,w,k as B,i as D,h as z,m as F,y as H,C as U,n as K,r as b,x as I,v as O,K as g}from"./index-ZkX-rg-0.js";import{_ as q}from"./Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js";import{f as S,i as T}from"./utils-DWBfPysr.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{_ as j}from"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import"./Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js";import"./devops-CMTMKOVx.js";const G=["draggable"],J={class:"flex items-start gap-2"},Q=["title"],R={class:"flex-1 min-w-0"},W={class:"text-sm font-medium text-foreground leading-tight truncate"},X={key:0,class:"flex items-center gap-1 mt-1 flex-wrap"},Y={class:"flex items-center gap-2 mt-1.5 flex-wrap"},Z={key:0,class:"text-xs text-muted-foreground"},ee={key:1,class:"text-xs text-emerald-400"},te={key:2,class:"text-xs text-blue-400 ml-auto",title:"Azure DevOps"},se={class:"flex items-center gap-1 opacity-0 group-hover:opacity-100 shrink-0"},oe=L({__name:"TaskCard",props:{task:{},draggable:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:d}){const n=d,c=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],m=u=>["","Low","Medium","High","Critical","Blocker"][u]??"Unknown",k=u=>u>=4?"bg-red-500":u===3?"bg-amber-500":"bg-emerald-500";return(u,o)=>(a(),r("div",{draggable:s.draggable,class:"rounded-lg border border-border bg-card p-3 hover:border-primary/50 transition-colors cursor-pointer group",onClick:o[2]||(o[2]=l=>n("edit",s.task))},[t("div",J,[t("div",{class:A(["h-2 w-2 rounded-full mt-1.5 shrink-0",k(s.task.priority)]),title:m(s.task.priority)},null,10,Q),t("div",R,[t("p",W,v(s.task.title),1),s.task.tags.length?(a(),r("div",X,[(a(!0),r(_,null,V(s.task.tags,l=>(a(),r("span",{key:l.id,class:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",style:P({background:`${l.color_hex}22`,color:l.color_hex})},v(l.name),5))),128))])):h("",!0),t("div",Y,[f(q,{variant:c(s.task.status),class:"text-xs py-0"},{default:w(()=>[B(v(s.task.status),1)]),_:1},8,["variant"]),s.task.estimate_hours?(a(),r("span",Z," ~"+v(D(S)(s.task.estimate_hours)),1)):h("",!0),s.task.actual_hours?(a(),r("span",ee,v(D(S)(s.task.actual_hours))+" actual ",1)):h("",!0),s.task.azure_work_item_id?(a(),r("span",te," #"+v(s.task.azure_work_item_id),1)):h("",!0)])]),t("div",se,[s.task.status!=="done"?(a(),r("button",{key:0,class:"p-1 rounded hover:bg-emerald-500/20 text-emerald-400",title:"Mark done",onClick:o[0]||(o[0]=z(l=>n("complete",s.task),["stop"]))},[...o[3]||(o[3]=[t("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)])])):h("",!0),t("button",{class:"p-1 rounded hover:bg-red-500/20 text-red-400",title:"Delete",onClick:o[1]||(o[1]=z(l=>n("delete",s.task),["stop"]))},[...o[4]||(o[4]=[t("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])])])])],8,G))}}),ae={class:"space-y-6"},ne={key:0,class:"text-sm text-muted-foreground py-4 text-center"},le={class:"flex items-center gap-2 mb-2"},re={class:"text-xs font-semibold uppercase tracking-wide text-muted-foreground"},ie={class:"text-xs text-muted-foreground bg-muted px-1.5 py-0.5 rounded-full"},de={class:"space-y-2"},ue={key:0,class:"text-sm text-muted-foreground text-center py-8"},ce=L({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:d}){const n=s,c=d,m=F(()=>{var o;const u={doing:[],todo:[],done:[],cancelled:[]};for(const l of n.tasks)(o=u[l.status])==null||o.push(l);return u}),k={doing:"In Progress",todo:"To Do",done:"Done",cancelled:"Cancelled"};return(u,o)=>(a(),r("div",ae,[s.loading?(a(),r("div",ne,"Loading tasks...")):(a(),r(_,{key:1},[(a(!0),r(_,null,V(m.value,(l,y)=>H((a(),r("div",{key:y},[t("div",le,[t("h3",re,v(k[y]),1),t("span",ie,v(l.length),1)]),t("div",de,[(a(!0),r(_,null,V(l,p=>(a(),K(oe,{key:p.id,task:p,draggable:"",onEdit:C=>c("edit",p),onComplete:C=>c("complete",p),onDelete:C=>c("delete",p)},null,8,["task","onEdit","onComplete","onDelete"]))),128))])])),[[U,l.length>0]])),128)),n.tasks.length?h("",!0):(a(),r("div",ue," No tasks found "))],64))]))}}),me={class:"p-6"},ke={class:"flex items-center gap-3 mb-6 flex-wrap"},fe={class:"flex items-center gap-1"},be=L({__name:"PlannerView",setup(s){const d=N(),n=b(T(new Date)),c=b(!1),m=b(null),k=b("");I(()=>{d.fetchAll()}),O(n,()=>{d.fetchForDate(n.value)});const u=F(()=>k.value?d.tasks.filter(i=>{var e;return((e=i.project_id)==null?void 0:e.toLowerCase().includes(k.value.toLowerCase()))||i.title.toLowerCase().includes(k.value.toLowerCase())}):d.tasks);function o(){m.value=null,c.value=!0}function l(i){m.value=i,c.value=!0}async function y(i){try{m.value?(await d.update(m.value.id,i),g.success("Task updated")):(await d.create(i),g.success("Task created")),c.value=!1,d.fetchForDate(n.value)}catch{g.error("Failed to save task")}}async function p(i){try{await d.complete(i.id),g.success("Task completed")}catch{g.error("Failed to complete task")}}async function C(i){if(confirm(`Delete "${i.title}"?`))try{await d.remove(i.id),g.success("Task deleted")}catch{g.error("Failed to delete task")}}function M(i){const e=new Date(n.value);e.setDate(e.getDate()+i),n.value=T(e)}return(i,e)=>(a(),r("div",me,[t("div",ke,[e[10]||(e[10]=t("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Planner",-1)),t("div",fe,[f($,{variant:"outline",size:"sm",onClick:e[0]||(e[0]=x=>M(-1))},{default:w(()=>[...e[6]||(e[6]=[t("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1}),f(j,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=x=>n.value=x),type:"date",class:"h-8 w-36 text-xs"},null,8,["modelValue"]),f($,{variant:"outline",size:"sm",onClick:e[2]||(e[2]=x=>M(1))},{default:w(()=>[...e[7]||(e[7]=[t("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])]),_:1}),f($,{variant:"outline",size:"sm",onClick:e[3]||(e[3]=x=>n.value=D(T)(new Date))},{default:w(()=>[...e[8]||(e[8]=[B("Today",-1)])]),_:1})]),f(j,{modelValue:k.value,"onUpdate:modelValue":e[4]||(e[4]=x=>k.value=x),placeholder:"Search tasks...",class:"h-8 w-40 text-xs"},null,8,["modelValue"]),f($,{size:"sm",onClick:o},{default:w(()=>[...e[9]||(e[9]=[t("svg",{class:"h-4 w-4 mr-1.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),B(" New Task ",-1)])]),_:1})]),f(ce,{tasks:u.value,loading:D(d).loading,onEdit:l,onComplete:p,onDelete:C},null,8,["tasks","loading"]),f(E,{open:c.value,task:m.value,"default-date":n.value,onClose:e[5]||(e[5]=x=>c.value=!1),onSave:y},null,8,["open","task","default-date"])]))}});export{be as default}; diff --git a/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js b/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js similarity index 81% rename from src/static/assets/Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js rename to src/static/assets/Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js index dbeea0f..558cc5e 100644 --- a/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js +++ b/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js @@ -1 +1 @@ -import{c as r}from"./utils-CFgQVuqB.js";import{d as s,o as n,c as t,p as l,i as c,a as d,s as u}from"./index-DRwzmrLE.js";const h=s({__name:"Progress",props:{value:{},max:{default:100},class:{},color:{default:"default"}},setup(a){const e=a,o=()=>Math.min(100,Math.max(0,e.value/e.max*100));return(i,m)=>(n(),t("div",{class:l(c(r)("relative h-2 w-full overflow-hidden rounded-full bg-secondary",e.class))},[d("div",{class:l(["h-full rounded-full transition-all duration-300",{"bg-primary":a.color==="default","bg-emerald-500":a.color==="success","bg-amber-500":a.color==="warning","bg-red-500":a.color==="danger"}]),style:u({width:`${o()}%`})},null,6)],2))}});export{h as _}; +import{c as r}from"./utils-DWBfPysr.js";import{d as s,o as n,c as t,p as l,i as c,a as d,A as u}from"./index-ZkX-rg-0.js";const h=s({__name:"Progress",props:{value:{},max:{default:100},class:{},color:{default:"default"}},setup(a){const e=a,o=()=>Math.min(100,Math.max(0,e.value/e.max*100));return(i,m)=>(n(),t("div",{class:l(c(r)("relative h-2 w-full overflow-hidden rounded-full bg-secondary",e.class))},[d("div",{class:l(["h-full rounded-full transition-all duration-300",{"bg-primary":a.color==="default","bg-emerald-500":a.color==="success","bg-amber-500":a.color==="warning","bg-red-500":a.color==="danger"}]),style:u({width:`${o()}%`})},null,6)],2))}});export{h as _}; diff --git a/src/static/assets/ProjectDetailView-BMwGH_sH.js b/src/static/assets/ProjectDetailView-HHN-7tDi.js similarity index 72% rename from src/static/assets/ProjectDetailView-BMwGH_sH.js rename to src/static/assets/ProjectDetailView-HHN-7tDi.js index 0521822..b0c6c46 100644 --- a/src/static/assets/ProjectDetailView-BMwGH_sH.js +++ b/src/static/assets/ProjectDetailView-HHN-7tDi.js @@ -1 +1 @@ -import{d as $,y as N,c as t,e as l,F as u,a as o,t as n,j as c,i as _,w as r,g as D,r as b,o as e,k as m,l as f,s as k}from"./index-DRwzmrLE.js";import{d as T}from"./dashboard-Btm3piK7.js";import{_ as x,a as p}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as h,a as v}from"./CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js";import{f as y,_ as V,b as F}from"./utils-CFgQVuqB.js";const B={class:"p-6"},C={key:0,class:"flex items-center justify-center h-40"},R={class:"mb-6"},S={class:"flex items-start justify-between gap-4 flex-wrap"},z={class:"text-xl font-bold text-foreground"},A={class:"flex items-center gap-3 mt-1 flex-wrap"},M={key:0,class:"text-sm text-muted-foreground"},P={key:1,class:"text-xs bg-muted text-muted-foreground px-2 py-1 rounded"},E=["href"],H={class:"text-right"},I={class:"text-2xl font-bold text-foreground"},L={class:"h-32 flex items-end gap-px"},U=["title"],q={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},G={key:0,class:"text-sm text-muted-foreground"},J={key:1,class:"space-y-1.5"},K=["title"],O={class:"text-foreground shrink-0 ml-2"},Q={key:0,class:"text-sm text-muted-foreground"},W={key:1,class:"space-y-2"},X={class:"text-xs text-foreground w-24 truncate shrink-0"},Y={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},Z={class:"text-xs text-muted-foreground w-8 text-right shrink-0"},tt={key:0,class:"text-sm text-muted-foreground"},et={key:1,class:"space-y-2"},st={class:"flex-1 min-w-0"},ot={class:"text-xs text-foreground"},at={key:0,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},lt={class:"text-right shrink-0"},rt={class:"text-xs font-medium text-foreground"},dt={class:"text-xs text-muted-foreground"},nt={key:2,class:"text-center text-muted-foreground py-12"},pt=$({__name:"ProjectDetailView",setup(it){const w=D().params.id,a=b(null),g=b(!1);N(async()=>{g.value=!0;try{const i=await T.project(w);a.value=i.data}finally{g.value=!1}});const j=()=>{var i;return Math.max(...((i=a.value)==null?void 0:i.timeline.map(d=>d.hours))??[1],1)};return(i,d)=>(e(),t("div",B,[g.value?(e(),t("div",C,[l(V,{size:"lg",class:"text-primary"})])):a.value?(e(),t(u,{key:1},[o("div",R,[o("div",S,[o("div",null,[o("h2",z,n(a.value.display_name),1),o("div",A,[a.value.client?(e(),t("span",M,n(a.value.client),1)):c("",!0),a.value.job_number?(e(),t("span",P,n(a.value.job_number),1)):c("",!0),a.value.repo_url?(e(),t("a",{key:2,href:a.value.repo_url,target:"_blank",class:"text-xs text-primary hover:underline"}," Repository → ",8,E)):c("",!0)])]),o("div",H,[o("p",I,n(_(y)(a.value.total_hours)),1),d[0]||(d[0]=o("p",{class:"text-xs text-muted-foreground"},"total hours",-1))])])]),l(x,{class:"mb-6"},{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[1]||(d[1]=[m("Daily Activity",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[o("div",L,[(e(!0),t(u,null,f(a.value.timeline,s=>(e(),t("div",{key:s.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors",style:k({height:`${s.hours/j()*100}%`}),title:`${s.date}: ${_(y)(s.hours)}`},null,12,U))),128))])]),_:1})]),_:1}),o("div",q,[l(x,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[2]||(d[2]=[m("Top Files",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.top_files.length?(e(),t("div",J,[(e(!0),t(u,null,f(a.value.top_files.slice(0,10),s=>(e(),t("div",{key:s.path,class:"flex items-center justify-between text-xs"},[o("span",{class:"text-muted-foreground truncate max-w-[200px]",title:s.path},n(s.path.split("/").pop()),9,K),o("span",O,n(s.count)+"×",1)]))),128))])):(e(),t("div",G,"No data"))]),_:1})]),_:1}),l(x,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[3]||(d[3]=[m("Tool Usage",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.top_tools.length?(e(),t("div",W,[(e(!0),t(u,null,f(a.value.top_tools.slice(0,8),s=>(e(),t("div",{key:s.tool,class:"flex items-center gap-2"},[o("span",X,n(s.tool),1),o("div",Y,[o("div",{class:"h-full bg-primary rounded-full",style:k({width:`${s.pct}%`})},null,4)]),o("span",Z,n(s.pct.toFixed(0))+"% ",1)]))),128))])):(e(),t("div",Q,"No data"))]),_:1})]),_:1})]),l(x,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[4]||(d[4]=[m("Recent Sessions",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.sessions.length?(e(),t("div",et,[(e(!0),t(u,null,f(a.value.sessions.slice(0,50),s=>(e(),t("div",{key:s.id,class:"flex items-start gap-3 py-2 border-b border-border last:border-0"},[o("div",st,[o("p",ot,n(_(F)(s.start_at)),1),s.summary?(e(),t("p",at,n(s.summary),1)):c("",!0)]),o("div",lt,[o("p",rt,n(_(y)(s.duration_hours)),1),o("p",dt,n(s.commit_count)+" commits ",1)])]))),128))])):(e(),t("div",tt,"No sessions"))]),_:1})]),_:1})],64)):(e(),t("div",nt," Project not found "))]))}});export{pt as default}; +import{d as $,x as N,c as t,e as l,F as u,a as o,t as n,j as c,i as _,w as r,g as D,r as b,o as e,k as m,l as x,A as k}from"./index-ZkX-rg-0.js";import{d as T}from"./dashboard-C1cvUjRU.js";import{_ as f,a as p}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as h,a as v}from"./CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js";import{f as y,_ as V,b as F}from"./utils-DWBfPysr.js";const A={class:"p-6"},B={key:0,class:"flex items-center justify-center h-40"},C={class:"mb-6"},R={class:"flex items-start justify-between gap-4 flex-wrap"},S={class:"text-xl font-bold text-foreground"},z={class:"flex items-center gap-3 mt-1 flex-wrap"},M={key:0,class:"text-sm text-muted-foreground"},P={key:1,class:"text-xs bg-muted text-muted-foreground px-2 py-1 rounded"},E=["href"],H={class:"text-right"},I={class:"text-2xl font-bold text-foreground"},L={class:"h-32 flex items-end gap-px"},U=["title"],q={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},G={key:0,class:"text-sm text-muted-foreground"},J={key:1,class:"space-y-1.5"},K=["title"],O={class:"text-foreground shrink-0 ml-2"},Q={key:0,class:"text-sm text-muted-foreground"},W={key:1,class:"space-y-2"},X={class:"text-xs text-foreground w-24 truncate shrink-0"},Y={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},Z={class:"text-xs text-muted-foreground w-8 text-right shrink-0"},tt={key:0,class:"text-sm text-muted-foreground"},et={key:1,class:"space-y-2"},st={class:"flex-1 min-w-0"},ot={class:"text-xs text-foreground"},at={key:0,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},lt={class:"text-right shrink-0"},rt={class:"text-xs font-medium text-foreground"},dt={class:"text-xs text-muted-foreground"},nt={key:2,class:"text-center text-muted-foreground py-12"},pt=$({__name:"ProjectDetailView",setup(it){const w=D().params.id,a=b(null),g=b(!1);N(async()=>{g.value=!0;try{const i=await T.project(w);a.value=i.data}finally{g.value=!1}});const j=()=>{var i;return Math.max(...((i=a.value)==null?void 0:i.timeline.map(d=>d.hours))??[1],1)};return(i,d)=>(e(),t("div",A,[g.value?(e(),t("div",B,[l(V,{size:"lg",class:"text-primary"})])):a.value?(e(),t(u,{key:1},[o("div",C,[o("div",R,[o("div",null,[o("h2",S,n(a.value.display_name),1),o("div",z,[a.value.client?(e(),t("span",M,n(a.value.client),1)):c("",!0),a.value.job_number?(e(),t("span",P,n(a.value.job_number),1)):c("",!0),a.value.repo_url?(e(),t("a",{key:2,href:a.value.repo_url,target:"_blank",class:"text-xs text-primary hover:underline"}," Repository → ",8,E)):c("",!0)])]),o("div",H,[o("p",I,n(_(y)(a.value.total_hours)),1),d[0]||(d[0]=o("p",{class:"text-xs text-muted-foreground"},"total hours",-1))])])]),l(f,{class:"mb-6"},{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[1]||(d[1]=[m("Daily Activity",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[o("div",L,[(e(!0),t(u,null,x(a.value.timeline,s=>(e(),t("div",{key:s.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors",style:k({height:`${s.hours/j()*100}%`}),title:`${s.date}: ${_(y)(s.hours)}`},null,12,U))),128))])]),_:1})]),_:1}),o("div",q,[l(f,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[2]||(d[2]=[m("Top Files",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.top_files.length?(e(),t("div",J,[(e(!0),t(u,null,x(a.value.top_files.slice(0,10),s=>(e(),t("div",{key:s.path,class:"flex items-center justify-between text-xs"},[o("span",{class:"text-muted-foreground truncate max-w-[200px]",title:s.path},n(s.path.split("/").pop()),9,K),o("span",O,n(s.count)+"×",1)]))),128))])):(e(),t("div",G,"No data"))]),_:1})]),_:1}),l(f,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[3]||(d[3]=[m("Tool Usage",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.top_tools.length?(e(),t("div",W,[(e(!0),t(u,null,x(a.value.top_tools.slice(0,8),s=>(e(),t("div",{key:s.tool,class:"flex items-center gap-2"},[o("span",X,n(s.tool),1),o("div",Y,[o("div",{class:"h-full bg-primary rounded-full",style:k({width:`${s.pct}%`})},null,4)]),o("span",Z,n(s.pct.toFixed(0))+"% ",1)]))),128))])):(e(),t("div",Q,"No data"))]),_:1})]),_:1})]),l(f,null,{default:r(()=>[l(h,{class:"pb-2"},{default:r(()=>[l(v,{class:"text-sm"},{default:r(()=>[...d[4]||(d[4]=[m("Recent Sessions",-1)])]),_:1})]),_:1}),l(p,null,{default:r(()=>[a.value.sessions.length?(e(),t("div",et,[(e(!0),t(u,null,x(a.value.sessions.slice(0,50),s=>(e(),t("div",{key:s.id,class:"flex items-start gap-3 py-2 border-b border-border last:border-0"},[o("div",st,[o("p",ot,n(_(F)(s.start_at)),1),s.summary?(e(),t("p",at,n(s.summary),1)):c("",!0)]),o("div",lt,[o("p",rt,n(_(y)(s.duration_hours)),1),o("p",dt,n(s.commit_count)+" commits ",1)])]))),128))])):(e(),t("div",tt,"No sessions"))]),_:1})]),_:1})],64)):(e(),t("div",nt," Project not found "))]))}});export{pt as default}; diff --git a/src/static/assets/ProjectsView-CXlJ3SQr.js b/src/static/assets/ProjectsView-FlluaTSw.js similarity index 87% rename from src/static/assets/ProjectsView-CXlJ3SQr.js rename to src/static/assets/ProjectsView-FlluaTSw.js index 76fbbd4..ac1e2fa 100644 --- a/src/static/assets/ProjectsView-CXlJ3SQr.js +++ b/src/static/assets/ProjectsView-FlluaTSw.js @@ -1 +1 @@ -import{d as p,y as g,c as r,a as s,e as d,F as v,l as y,r as _,o,n as h,w as f,t as a,j as i,i as u,p as b,f as k}from"./index-DRwzmrLE.js";import{d as w}from"./dashboard-Btm3piK7.js";import{a as C,_ as $}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as B}from"./Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js";import{_ as N,f as V,a as D}from"./utils-CFgQVuqB.js";const F={class:"p-6"},j={key:0,class:"flex items-center justify-center h-40"},z={key:1,class:"text-center text-muted-foreground py-12"},L={key:2,class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4"},P={class:"flex items-start justify-between gap-2 mb-3"},S={class:"min-w-0"},A={class:"font-semibold text-sm text-foreground truncate"},E={key:0,class:"text-xs text-muted-foreground truncate"},M={key:0,class:"text-xs bg-muted text-muted-foreground px-1.5 py-0.5 rounded shrink-0"},R={class:"space-y-1.5"},T={class:"flex items-center justify-between text-xs"},q={class:"font-medium text-foreground"},G={class:"flex items-center justify-between text-xs"},H={class:"text-foreground"},I={key:0,class:"flex items-center justify-between text-xs"},J={class:"text-foreground"},K={key:0,class:"mt-3"},O={class:"flex items-center justify-between text-xs mb-1"},st=p({__name:"ProjectsView",setup(Q){const m=k(),l=_([]),c=_(!1);g(async()=>{c.value=!0;try{const n=await w.projects({});l.value=n.data.sort((e,t)=>t.total_hours-e.total_hours)}finally{c.value=!1}});const x=n=>n?n>90?"danger":n>70?"warning":"success":"default";return(n,e)=>(o(),r("div",F,[e[4]||(e[4]=s("h2",{class:"text-lg font-semibold text-foreground mb-6"},"Projects",-1)),c.value?(o(),r("div",j,[d(N,{size:"lg",class:"text-primary"})])):l.value.length===0?(o(),r("div",z," No projects found ")):(o(),r("div",L,[(o(!0),r(v,null,y(l.value,t=>(o(),h($,{key:t.project_id,class:"cursor-pointer hover:border-primary/50 transition-colors",onClick:U=>u(m).push(`/projects/${t.project_id}`)},{default:f(()=>[d(C,{class:"p-4"},{default:f(()=>[s("div",P,[s("div",S,[s("p",A,a(t.display_name),1),t.client?(o(),r("p",E,a(t.client),1)):i("",!0)]),t.job_number?(o(),r("span",M,a(t.job_number),1)):i("",!0)]),s("div",R,[s("div",T,[e[0]||(e[0]=s("span",{class:"text-muted-foreground"},"Total hours",-1)),s("span",q,a(u(V)(t.total_hours)),1)]),s("div",G,[e[1]||(e[1]=s("span",{class:"text-muted-foreground"},"Sessions",-1)),s("span",H,a(t.session_count),1)]),t.last_active?(o(),r("div",I,[e[2]||(e[2]=s("span",{class:"text-muted-foreground"},"Last active",-1)),s("span",J,a(u(D)(t.last_active)),1)])):i("",!0)]),t.progress_pct!==null?(o(),r("div",K,[s("div",O,[e[3]||(e[3]=s("span",{class:"text-muted-foreground"},"Budget",-1)),s("span",{class:b(t.progress_pct>90?"text-red-400":"text-muted-foreground")},a(t.progress_pct.toFixed(0))+"% ",3)]),d(B,{value:t.progress_pct,color:x(t.progress_pct)},null,8,["value","color"])])):i("",!0)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]))]))}});export{st as default}; +import{d as p,x as g,c as r,a as s,e as d,F as v,l as y,r as _,o,n as h,w as f,t as a,j as i,i as u,p as b,f as k}from"./index-ZkX-rg-0.js";import{d as w}from"./dashboard-C1cvUjRU.js";import{a as C,_ as $}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as B}from"./Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js";import{_ as N,f as V,a as D}from"./utils-DWBfPysr.js";const F={class:"p-6"},j={key:0,class:"flex items-center justify-center h-40"},z={key:1,class:"text-center text-muted-foreground py-12"},L={key:2,class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4"},P={class:"flex items-start justify-between gap-2 mb-3"},S={class:"min-w-0"},A={class:"font-semibold text-sm text-foreground truncate"},E={key:0,class:"text-xs text-muted-foreground truncate"},M={key:0,class:"text-xs bg-muted text-muted-foreground px-1.5 py-0.5 rounded shrink-0"},R={class:"space-y-1.5"},T={class:"flex items-center justify-between text-xs"},q={class:"font-medium text-foreground"},G={class:"flex items-center justify-between text-xs"},H={class:"text-foreground"},I={key:0,class:"flex items-center justify-between text-xs"},J={class:"text-foreground"},K={key:0,class:"mt-3"},O={class:"flex items-center justify-between text-xs mb-1"},st=p({__name:"ProjectsView",setup(Q){const m=k(),l=_([]),c=_(!1);g(async()=>{c.value=!0;try{const n=await w.projects({});l.value=n.data.sort((e,t)=>t.total_hours-e.total_hours)}finally{c.value=!1}});const x=n=>n?n>90?"danger":n>70?"warning":"success":"default";return(n,e)=>(o(),r("div",F,[e[4]||(e[4]=s("h2",{class:"text-lg font-semibold text-foreground mb-6"},"Projects",-1)),c.value?(o(),r("div",j,[d(N,{size:"lg",class:"text-primary"})])):l.value.length===0?(o(),r("div",z," No projects found ")):(o(),r("div",L,[(o(!0),r(v,null,y(l.value,t=>(o(),h($,{key:t.project_id,class:"cursor-pointer hover:border-primary/50 transition-colors",onClick:U=>u(m).push(`/projects/${t.project_id}`)},{default:f(()=>[d(C,{class:"p-4"},{default:f(()=>[s("div",P,[s("div",S,[s("p",A,a(t.display_name),1),t.client?(o(),r("p",E,a(t.client),1)):i("",!0)]),t.job_number?(o(),r("span",M,a(t.job_number),1)):i("",!0)]),s("div",R,[s("div",T,[e[0]||(e[0]=s("span",{class:"text-muted-foreground"},"Total hours",-1)),s("span",q,a(u(V)(t.total_hours)),1)]),s("div",G,[e[1]||(e[1]=s("span",{class:"text-muted-foreground"},"Sessions",-1)),s("span",H,a(t.session_count),1)]),t.last_active?(o(),r("div",I,[e[2]||(e[2]=s("span",{class:"text-muted-foreground"},"Last active",-1)),s("span",J,a(u(D)(t.last_active)),1)])):i("",!0)]),t.progress_pct!==null?(o(),r("div",K,[s("div",O,[e[3]||(e[3]=s("span",{class:"text-muted-foreground"},"Budget",-1)),s("span",{class:b(t.progress_pct>90?"text-red-400":"text-muted-foreground")},a(t.progress_pct.toFixed(0))+"% ",3)]),d(B,{value:t.progress_pct,color:x(t.progress_pct)},null,8,["value","color"])])):i("",!0)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]))]))}});export{st as default}; diff --git a/src/static/assets/ReportsView-CHQOjaZg.js b/src/static/assets/ReportsView-CY6XM5MA.js similarity index 98% rename from src/static/assets/ReportsView-CHQOjaZg.js rename to src/static/assets/ReportsView-CY6XM5MA.js index 2a701aa..e5018f9 100644 --- a/src/static/assets/ReportsView-CHQOjaZg.js +++ b/src/static/assets/ReportsView-CY6XM5MA.js @@ -1,4 +1,4 @@ -var Ce=Object.defineProperty;var ae=a=>{throw TypeError(a)};var Ee=(a,t,e)=>t in a?Ce(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e;var k=(a,t,e)=>Ee(a,typeof t!="symbol"?t+"":t,e),Le=(a,t,e)=>t.has(a)||ae("Cannot "+e);var ce=(a,t,e)=>t.has(a)?ae("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(a):t.set(a,e);var Z=(a,t,e)=>(Le(a,t,"access private method"),e);import{D as V,d as Be,y as qe,c as z,a as x,p as U,e as P,w as I,F as Ze,l as Pe,r as A,o as $,k as G,n as pe,t as W,i as De,j as he,K as ue,_ as Me}from"./index-DRwzmrLE.js";import{a as Qe,_ as je}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as fe}from"./Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js";import{_ as Ne}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{_ as Oe,a as He,i as Fe}from"./utils-CFgQVuqB.js";const ge={list:()=>V.get("/api/reports"),get:a=>V.get(`/api/reports/${a}`),generate:a=>V.post("/api/reports/generate",a)};function J(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let S=J();function we(a){S=a}const ye=/[&<>"']/,Ve=new RegExp(ye.source,"g"),$e=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Ue=new RegExp($e.source,"g"),Ge={"&":"&","<":"<",">":">",'"':""","'":"'"},de=a=>Ge[a];function m(a,t){if(t){if(ye.test(a))return a.replace(Ve,de)}else if($e.test(a))return a.replace(Ue,de);return a}const We=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Xe(a){return a.replace(We,(t,e)=>(e=e.toLowerCase(),e==="colon"?":":e.charAt(0)==="#"?e.charAt(1)==="x"?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""))}const Ke=/(^|[^\[])\^/g;function d(a,t){let e=typeof a=="string"?a:a.source;t=t||"";const n={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(Ke,"$1"),e=e.replace(i,s),n},getRegex:()=>new RegExp(e,t)};return n}function ke(a){try{a=encodeURI(a).replace(/%25/g,"%")}catch{return null}return a}const E={exec:()=>null};function xe(a,t){const e=a.replace(/\|/g,(r,s,l)=>{let o=!1,u=s;for(;--u>=0&&l[u]==="\\";)o=!o;return o?"|":" |"}),n=e.split(/ \|/);let i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length{throw TypeError(a)};var Ee=(a,t,e)=>t in a?Ce(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e;var k=(a,t,e)=>Ee(a,typeof t!="symbol"?t+"":t,e),Le=(a,t,e)=>t.has(a)||ae("Cannot "+e);var ce=(a,t,e)=>t.has(a)?ae("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(a):t.set(a,e);var Z=(a,t,e)=>(Le(a,t,"access private method"),e);import{D as V,d as Be,x as qe,c as z,a as x,p as U,e as P,w as I,F as Ze,l as Pe,r as A,o as $,k as G,n as pe,t as W,i as De,j as he,K as ue,_ as Me}from"./index-ZkX-rg-0.js";import{a as Qe,_ as je}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as fe}from"./Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js";import{_ as Ne}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{_ as Oe,a as He,i as Fe}from"./utils-DWBfPysr.js";const ge={list:()=>V.get("/api/reports"),get:a=>V.get(`/api/reports/${a}`),generate:a=>V.post("/api/reports/generate",a)};function J(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let S=J();function we(a){S=a}const ye=/[&<>"']/,Ve=new RegExp(ye.source,"g"),$e=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Ue=new RegExp($e.source,"g"),Ge={"&":"&","<":"<",">":">",'"':""","'":"'"},de=a=>Ge[a];function m(a,t){if(t){if(ye.test(a))return a.replace(Ve,de)}else if($e.test(a))return a.replace(Ue,de);return a}const We=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Xe(a){return a.replace(We,(t,e)=>(e=e.toLowerCase(),e==="colon"?":":e.charAt(0)==="#"?e.charAt(1)==="x"?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""))}const Ke=/(^|[^\[])\^/g;function d(a,t){let e=typeof a=="string"?a:a.source;t=t||"";const n={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(Ke,"$1"),e=e.replace(i,s),n},getRegex:()=>new RegExp(e,t)};return n}function ke(a){try{a=encodeURI(a).replace(/%25/g,"%")}catch{return null}return a}const E={exec:()=>null};function xe(a,t){const e=a.replace(/\|/g,(r,s,l)=>{let o=!1,u=s;for(;--u>=0&&l[u]==="\\";)o=!o;return o?"|":" |"}),n=e.split(/ \|/);let i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length{const r=i.match(/^\s+/);if(r===null)return i;const[s]=r;return s.length>=n.length?i.slice(n.length):i}).join(` `)}class Q{constructor(t){k(this,"options");k(this,"rules");k(this,"lexer");this.options=t||S}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const n=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:D(n,` `)}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const n=e[0],i=Ye(n,e[3]||"");return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(/#$/.test(n)){const i=D(n,"#");(this.options.pedantic||!i||/ $/.test(i))&&(n=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){let n=e[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` diff --git a/src/static/assets/SettingsView-Bo1DQQSd.js b/src/static/assets/SettingsView-CusXhUxP.js similarity index 82% rename from src/static/assets/SettingsView-Bo1DQQSd.js rename to src/static/assets/SettingsView-CusXhUxP.js index 80053a1..7b882e3 100644 --- a/src/static/assets/SettingsView-Bo1DQQSd.js +++ b/src/static/assets/SettingsView-CusXhUxP.js @@ -1 +1 @@ -import{d as B,u as T,y as H,c as C,a,e as o,w as s,r as u,o as y,k as i,i as n,t as x,j as k,n as j,D as K,K as m}from"./index-DRwzmrLE.js";import{u as L}from"./devops-l4WPqQke.js";import{_ as A,a as P}from"./CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js";import{_ as U,a as I}from"./CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js";import{_ as f}from"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import{_}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{i as O}from"./utils-CFgQVuqB.js";function M(v,d){const t=`/cc-dashboard/api/export/timesheet.csv?from=${v}&to=${d}`,r=document.createElement("a");r.href=t,r.download=`timesheet-${v}-${d}.csv`,r.click()}function q(v,d){const t=`/cc-dashboard/api/export/timesheet.ics?from=${v}&to=${d}`,r=document.createElement("a");r.href=t,r.download=`timesheet-${v}-${d}.ics`,r.click()}const G={class:"p-6 space-y-6 max-w-2xl"},J={class:"space-y-1.5"},Q={class:"space-y-1.5"},R={key:0,class:"text-xs text-muted-foreground space-y-1"},W={class:"text-foreground"},X={class:"text-foreground"},Y={key:0},Z={key:1,class:"text-red-400"},h={class:"grid grid-cols-2 gap-3"},ee={class:"space-y-1.5"},te={class:"space-y-1.5"},ae={class:"space-y-1.5"},oe={class:"text-sm font-medium text-foreground"},se={class:"flex items-center gap-2"},le={class:"flex items-center gap-3 flex-wrap"},ne={class:"space-y-1.5"},re={class:"space-y-1.5"},ie={class:"flex items-center gap-2"},ge=B({__name:"SettingsView",setup(v){const d=T(),t=L(),r=u(""),D=u(0),S=u(!1),c=u(""),p=u(""),g=u(""),b=u(!1),V=u(""),w=u("");H(()=>{d.user&&(r.value=d.user.username,D.value=d.user.daily_overhead_hours??0),t.fetchIntegration().then(()=>{t.integration&&(c.value=t.integration.org,p.value=t.integration.project)});const $=new Date;w.value=O($);const e=new Date($);e.setDate($.getDate()-30),V.value=O(e)});async function N(){S.value=!0;try{await K.patch("/api/auth/me",{username:r.value,daily_overhead_hours:D.value}),await d.fetchMe(),m.success("Profile saved")}catch{m.error("Failed to save profile")}finally{S.value=!1}}async function z(){if(!c.value||!p.value||!g.value){m.error("All ADO fields are required");return}b.value=!0;try{await t.saveIntegration({org:c.value,project:p.value,pat:g.value}),g.value="",m.success("Integration saved")}catch{m.error("Failed to save integration")}finally{b.value=!1}}async function E(){if(confirm("Delete ADO integration?"))try{await t.deleteIntegration(),c.value="",p.value="",g.value="",m.success("Integration deleted")}catch{m.error("Failed to delete integration")}}async function F(){try{await t.sync(),m.success("Sync complete")}catch{m.error(t.error??"Sync failed")}}return($,e)=>(y(),C("div",G,[e[26]||(e[26]=a("h2",{class:"text-lg font-semibold text-foreground"},"Settings",-1)),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[9]||(e[9]=[i("Profile",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[a("div",J,[e[10]||(e[10]=a("label",{class:"text-sm font-medium text-foreground"},"Username",-1)),o(f,{modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=l=>r.value=l),placeholder:"username"},null,8,["modelValue"])]),a("div",Q,[e[11]||(e[11]=a("label",{class:"text-sm font-medium text-foreground"},"Daily Overhead Hours",-1)),o(f,{modelValue:D.value,"onUpdate:modelValue":e[1]||(e[1]=l=>D.value=l),type:"number",min:"0",max:"8",step:"0.25",class:"w-32"},null,8,["modelValue"]),e[12]||(e[12]=a("p",{class:"text-xs text-muted-foreground"}," Hours per day to add for overhead / meetings ",-1))]),o(_,{loading:S.value,onClick:N},{default:s(()=>[...e[13]||(e[13]=[i("Save Profile",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[14]||(e[14]=[i("Azure DevOps Integration",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[n(t).integration?(y(),C("div",R,[a("p",null,[e[15]||(e[15]=i(" Connected to ",-1)),a("strong",W,x(n(t).integration.org),1),e[16]||(e[16]=i(" / ",-1)),a("strong",X,x(n(t).integration.project),1)]),n(t).integration.last_synced_at?(y(),C("p",Y," Last synced: "+x(new Date(n(t).integration.last_synced_at).toLocaleString()),1)):k("",!0),n(t).integration.last_sync_error?(y(),C("p",Z," Error: "+x(n(t).integration.last_sync_error),1)):k("",!0)])):k("",!0),a("div",h,[a("div",ee,[e[17]||(e[17]=a("label",{class:"text-sm font-medium text-foreground"},"Organization",-1)),o(f,{modelValue:c.value,"onUpdate:modelValue":e[2]||(e[2]=l=>c.value=l),placeholder:"myorg"},null,8,["modelValue"])]),a("div",te,[e[18]||(e[18]=a("label",{class:"text-sm font-medium text-foreground"},"Project",-1)),o(f,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=l=>p.value=l),placeholder:"myproject"},null,8,["modelValue"])])]),a("div",ae,[a("label",oe," Personal Access Token "+x(n(t).integration?"(leave blank to keep current)":""),1),o(f,{modelValue:g.value,"onUpdate:modelValue":e[4]||(e[4]=l=>g.value=l),type:"password",placeholder:"••••••••",autocomplete:"new-password"},null,8,["modelValue"])]),a("div",se,[o(_,{loading:b.value,onClick:z},{default:s(()=>[i(x(n(t).integration?"Update":"Connect"),1)]),_:1},8,["loading"]),n(t).integration?(y(),j(_,{key:0,variant:"outline",loading:n(t).syncing,onClick:F},{default:s(()=>[...e[19]||(e[19]=[i(" Sync Now ",-1)])]),_:1},8,["loading"])):k("",!0),n(t).integration?(y(),j(_,{key:1,variant:"destructive",size:"sm",onClick:E},{default:s(()=>[...e[20]||(e[20]=[i(" Disconnect ",-1)])]),_:1})):k("",!0)])]),_:1})]),_:1}),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[21]||(e[21]=[i("Export",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[a("div",le,[a("div",ne,[e[22]||(e[22]=a("label",{class:"text-xs text-muted-foreground"},"From",-1)),o(f,{modelValue:V.value,"onUpdate:modelValue":e[5]||(e[5]=l=>V.value=l),type:"date",class:"h-8 text-xs"},null,8,["modelValue"])]),a("div",re,[e[23]||(e[23]=a("label",{class:"text-xs text-muted-foreground"},"To",-1)),o(f,{modelValue:w.value,"onUpdate:modelValue":e[6]||(e[6]=l=>w.value=l),type:"date",class:"h-8 text-xs"},null,8,["modelValue"])])]),a("div",ie,[o(_,{variant:"outline",size:"sm",onClick:e[7]||(e[7]=l=>n(M)(V.value,w.value))},{default:s(()=>[...e[24]||(e[24]=[i(" Download CSV ",-1)])]),_:1}),o(_,{variant:"outline",size:"sm",onClick:e[8]||(e[8]=l=>n(q)(V.value,w.value))},{default:s(()=>[...e[25]||(e[25]=[i(" Download ICS ",-1)])]),_:1})])]),_:1})]),_:1})]))}});export{ge as default}; +import{d as B,u as T,x as H,c as C,a,e as o,w as s,r as u,o as x,k as i,i as n,t as y,j as k,n as j,D as K,K as m}from"./index-ZkX-rg-0.js";import{u as L}from"./devops-CMTMKOVx.js";import{_ as A,a as P}from"./CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js";import{_ as U,a as I}from"./CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js";import{_ as f}from"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import{_}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{i as O}from"./utils-DWBfPysr.js";function M(v,d){const t=`/cc-dashboard/api/export/timesheet.csv?from=${v}&to=${d}`,r=document.createElement("a");r.href=t,r.download=`timesheet-${v}-${d}.csv`,r.click()}function q(v,d){const t=`/cc-dashboard/api/export/timesheet.ics?from=${v}&to=${d}`,r=document.createElement("a");r.href=t,r.download=`timesheet-${v}-${d}.ics`,r.click()}const G={class:"p-6 space-y-6 max-w-2xl"},J={class:"space-y-1.5"},Q={class:"space-y-1.5"},R={key:0,class:"text-xs text-muted-foreground space-y-1"},W={class:"text-foreground"},X={class:"text-foreground"},Y={key:0},Z={key:1,class:"text-red-400"},h={class:"grid grid-cols-2 gap-3"},ee={class:"space-y-1.5"},te={class:"space-y-1.5"},ae={class:"space-y-1.5"},oe={class:"text-sm font-medium text-foreground"},se={class:"flex items-center gap-2"},le={class:"flex items-center gap-3 flex-wrap"},ne={class:"space-y-1.5"},re={class:"space-y-1.5"},ie={class:"flex items-center gap-2"},ge=B({__name:"SettingsView",setup(v){const d=T(),t=L(),r=u(""),D=u(0),S=u(!1),c=u(""),p=u(""),g=u(""),b=u(!1),V=u(""),w=u("");H(()=>{d.user&&(r.value=d.user.username,D.value=d.user.daily_overhead_hours??0),t.fetchIntegration().then(()=>{t.integration&&(c.value=t.integration.org,p.value=t.integration.project)});const $=new Date;w.value=O($);const e=new Date($);e.setDate($.getDate()-30),V.value=O(e)});async function N(){S.value=!0;try{await K.patch("/api/auth/me",{username:r.value,daily_overhead_hours:D.value}),await d.fetchMe(),m.success("Profile saved")}catch{m.error("Failed to save profile")}finally{S.value=!1}}async function z(){if(!c.value||!p.value||!g.value){m.error("All ADO fields are required");return}b.value=!0;try{await t.saveIntegration({org:c.value,project:p.value,pat:g.value}),g.value="",m.success("Integration saved")}catch{m.error("Failed to save integration")}finally{b.value=!1}}async function E(){if(confirm("Delete ADO integration?"))try{await t.deleteIntegration(),c.value="",p.value="",g.value="",m.success("Integration deleted")}catch{m.error("Failed to delete integration")}}async function F(){try{await t.sync(),m.success("Sync complete")}catch{m.error(t.error??"Sync failed")}}return($,e)=>(x(),C("div",G,[e[26]||(e[26]=a("h2",{class:"text-lg font-semibold text-foreground"},"Settings",-1)),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[9]||(e[9]=[i("Profile",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[a("div",J,[e[10]||(e[10]=a("label",{class:"text-sm font-medium text-foreground"},"Username",-1)),o(f,{modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=l=>r.value=l),placeholder:"username"},null,8,["modelValue"])]),a("div",Q,[e[11]||(e[11]=a("label",{class:"text-sm font-medium text-foreground"},"Daily Overhead Hours",-1)),o(f,{modelValue:D.value,"onUpdate:modelValue":e[1]||(e[1]=l=>D.value=l),type:"number",min:"0",max:"8",step:"0.25",class:"w-32"},null,8,["modelValue"]),e[12]||(e[12]=a("p",{class:"text-xs text-muted-foreground"}," Hours per day to add for overhead / meetings ",-1))]),o(_,{loading:S.value,onClick:N},{default:s(()=>[...e[13]||(e[13]=[i("Save Profile",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[14]||(e[14]=[i("Azure DevOps Integration",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[n(t).integration?(x(),C("div",R,[a("p",null,[e[15]||(e[15]=i(" Connected to ",-1)),a("strong",W,y(n(t).integration.org),1),e[16]||(e[16]=i(" / ",-1)),a("strong",X,y(n(t).integration.project),1)]),n(t).integration.last_synced_at?(x(),C("p",Y," Last synced: "+y(new Date(n(t).integration.last_synced_at).toLocaleString()),1)):k("",!0),n(t).integration.last_sync_error?(x(),C("p",Z," Error: "+y(n(t).integration.last_sync_error),1)):k("",!0)])):k("",!0),a("div",h,[a("div",ee,[e[17]||(e[17]=a("label",{class:"text-sm font-medium text-foreground"},"Organization",-1)),o(f,{modelValue:c.value,"onUpdate:modelValue":e[2]||(e[2]=l=>c.value=l),placeholder:"myorg"},null,8,["modelValue"])]),a("div",te,[e[18]||(e[18]=a("label",{class:"text-sm font-medium text-foreground"},"Project",-1)),o(f,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=l=>p.value=l),placeholder:"myproject"},null,8,["modelValue"])])]),a("div",ae,[a("label",oe," Personal Access Token "+y(n(t).integration?"(leave blank to keep current)":""),1),o(f,{modelValue:g.value,"onUpdate:modelValue":e[4]||(e[4]=l=>g.value=l),type:"password",placeholder:"••••••••",autocomplete:"new-password"},null,8,["modelValue"])]),a("div",se,[o(_,{loading:b.value,onClick:z},{default:s(()=>[i(y(n(t).integration?"Update":"Connect"),1)]),_:1},8,["loading"]),n(t).integration?(x(),j(_,{key:0,variant:"outline",loading:n(t).syncing,onClick:F},{default:s(()=>[...e[19]||(e[19]=[i(" Sync Now ",-1)])]),_:1},8,["loading"])):k("",!0),n(t).integration?(x(),j(_,{key:1,variant:"destructive",size:"sm",onClick:E},{default:s(()=>[...e[20]||(e[20]=[i(" Disconnect ",-1)])]),_:1})):k("",!0)])]),_:1})]),_:1}),o(A,null,{default:s(()=>[o(U,null,{default:s(()=>[o(I,{class:"text-sm"},{default:s(()=>[...e[21]||(e[21]=[i("Export",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[a("div",le,[a("div",ne,[e[22]||(e[22]=a("label",{class:"text-xs text-muted-foreground"},"From",-1)),o(f,{modelValue:V.value,"onUpdate:modelValue":e[5]||(e[5]=l=>V.value=l),type:"date",class:"h-8 text-xs"},null,8,["modelValue"])]),a("div",re,[e[23]||(e[23]=a("label",{class:"text-xs text-muted-foreground"},"To",-1)),o(f,{modelValue:w.value,"onUpdate:modelValue":e[6]||(e[6]=l=>w.value=l),type:"date",class:"h-8 text-xs"},null,8,["modelValue"])])]),a("div",ie,[o(_,{variant:"outline",size:"sm",onClick:e[7]||(e[7]=l=>n(M)(V.value,w.value))},{default:s(()=>[...e[24]||(e[24]=[i(" Download CSV ",-1)])]),_:1}),o(_,{variant:"outline",size:"sm",onClick:e[8]||(e[8]=l=>n(q)(V.value,w.value))},{default:s(()=>[...e[25]||(e[25]=[i(" Download ICS ",-1)])]),_:1})])]),_:1})]),_:1})]))}});export{ge as default}; diff --git a/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js b/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js similarity index 86% rename from src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js rename to src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js index f4ad1bf..315c5bb 100644 --- a/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js +++ b/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js @@ -1 +1 @@ -import{D as c,B as N,r as x,d as C,o as b,c as y,p as D,i as $,t as V,j as T,v as F,x as A,n as E,w as k,a as l,e as v,F as L,l as M,h as P,k as z}from"./index-DRwzmrLE.js";import{_ as W}from"./Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js";import{_ as B}from"./Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js";import{c as U}from"./utils-CFgQVuqB.js";import{_ as S}from"./Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js";import{u as H}from"./devops-l4WPqQke.js";const f={list:e=>c.get("/api/tasks",{params:e}),get:e=>c.get(`/api/tasks/${e}`),create:e=>c.post("/api/tasks",e),update:(e,n)=>c.patch(`/api/tasks/${e}`,n),remove:e=>c.delete(`/api/tasks/${e}`),complete:e=>c.post(`/api/tasks/${e}/complete`),blocks:e=>c.get(`/api/tasks/${e}/blocks`),createBlock:(e,n)=>c.post(`/api/tasks/${e}/blocks`,n),updateBlock:(e,n)=>c.patch(`/api/tasks/blocks/${e}`,n),deleteBlock:e=>c.delete(`/api/tasks/blocks/${e}`)},re=N("tasks",()=>{const e=x([]),n=x(!1),o=x(null);async function p(d){n.value=!0,o.value=null;try{const i=await f.list({date:d});e.value=i.data}catch(i){const r=i;o.value=r.message??"Failed to fetch tasks"}finally{n.value=!1}}async function m(d){n.value=!0,o.value=null;try{const i=await f.list(d?{project_id:d}:void 0);e.value=i.data}catch(i){const r=i;o.value=r.message??"Failed to fetch tasks"}finally{n.value=!1}}async function a(d){const i=await f.create(d);return e.value.push(i.data),i.data}async function u(d,i){const r=await f.update(d,i),w=e.value.findIndex(I=>I.id===d);return w!==-1&&(e.value[w]=r.data),r.data}async function _(d){await f.remove(d),e.value=e.value.filter(i=>i.id!==d)}async function g(d){const i=await f.complete(d),r=e.value.findIndex(w=>w.id===d);return r!==-1&&(e.value[r]=i.data),i.data}async function t(d,i){return(await f.createBlock(d,i)).data}async function s(d,i){return(await f.updateBlock(d,i)).data}async function j(d){await f.deleteBlock(d)}return{tasks:e,loading:n,error:o,fetchForDate:p,fetchAll:m,create:a,update:u,remove:_,complete:g,createBlock:t,updateBlock:s,deleteBlock:j}}),O=["id","value","placeholder","disabled","rows"],q=C({__name:"Textarea",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},rows:{},class:{},id:{}},emits:["update:modelValue"],setup(e,{emit:n}){const o=e,p=n;return(m,a)=>(b(),y("textarea",{id:e.id,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,class:D($(U)("flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 resize-none",o.class)),onInput:a[0]||(a[0]=u=>p("update:modelValue",u.target.value))},null,42,O))}}),G=["id","value","disabled"],J=["selected"],h=C({__name:"Select",props:{modelValue:{},disabled:{type:Boolean},class:{},id:{},placeholder:{}},emits:["update:modelValue","change"],setup(e,{emit:n}){const o=e,p=n;return(m,a)=>(b(),y("select",{id:e.id,value:e.modelValue,disabled:e.disabled,class:D($(U)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",o.class)),onChange:a[0]||(a[0]=u=>p("update:modelValue",u.target.value))},[e.placeholder?(b(),y("option",{key:0,value:"",disabled:"",selected:!e.modelValue},V(e.placeholder),9,J)):T("",!0),F(m.$slots,"default")],42,G))}}),K={class:"space-y-1.5"},Q={class:"space-y-1.5"},R={class:"grid grid-cols-2 gap-3"},X={class:"space-y-1.5"},Y={class:"space-y-1.5"},Z={class:"grid grid-cols-2 gap-3"},ee={class:"space-y-1.5"},te={class:"space-y-1.5"},ae={key:0,class:"space-y-1.5"},le=["value"],me=C({__name:"TaskForm",props:{open:{type:Boolean},task:{default:null},defaultDate:{}},emits:["close","save"],setup(e,{emit:n}){const o=e,p=n,m=H(),a=x({title:"",notes:"",planned_date:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0});A(()=>o.open,g=>{g&&(o.task?a.value={title:o.task.title,notes:o.task.notes??"",planned_date:o.task.planned_date??"",estimate_hours:o.task.estimate_hours??1,status:o.task.status,priority:o.task.priority,project_id:o.task.project_id??void 0,azure_work_item_id:o.task.azure_work_item_id??void 0}:a.value={title:"",notes:"",planned_date:o.defaultDate??"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0},m.integration&&!m.workItems.length&&m.fetchWorkItems("open"))},{immediate:!0});const u=x(!1);async function _(){if(a.value.title.trim()){u.value=!0;try{const g={title:a.value.title,notes:a.value.notes||void 0,planned_date:a.value.planned_date,estimate_hours:a.value.estimate_hours,status:a.value.status,priority:a.value.priority,project_id:a.value.project_id||null,azure_work_item_id:a.value.azure_work_item_id||null};p("save",g)}finally{u.value=!1}}}return(g,t)=>(b(),E(W,{open:e.open,title:e.task?"Edit Task":"New Task","max-width":"max-w-md",onClose:t[8]||(t[8]=s=>p("close"))},{footer:k(()=>[v(S,{variant:"outline",disabled:u.value,onClick:t[7]||(t[7]=s=>p("close"))},{default:k(()=>[...t[18]||(t[18]=[z("Cancel",-1)])]),_:1},8,["disabled"]),v(S,{loading:u.value,onClick:_},{default:k(()=>[z(V(e.task?"Update":"Create"),1)]),_:1},8,["loading"])]),default:k(()=>[l("form",{class:"space-y-4",onSubmit:P(_,["prevent"])},[l("div",K,[t[9]||(t[9]=l("label",{class:"text-sm font-medium text-foreground"},"Title *",-1)),v(B,{modelValue:a.value.title,"onUpdate:modelValue":t[0]||(t[0]=s=>a.value.title=s),placeholder:"Task title...",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",Q,[t[10]||(t[10]=l("label",{class:"text-sm font-medium text-foreground"},"Notes",-1)),v(q,{modelValue:a.value.notes,"onUpdate:modelValue":t[1]||(t[1]=s=>a.value.notes=s),placeholder:"Additional notes...",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",R,[l("div",X,[t[11]||(t[11]=l("label",{class:"text-sm font-medium text-foreground"},"Planned Date",-1)),v(B,{modelValue:a.value.planned_date,"onUpdate:modelValue":t[2]||(t[2]=s=>a.value.planned_date=s),type:"date",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",Y,[t[12]||(t[12]=l("label",{class:"text-sm font-medium text-foreground"},"Estimate (h)",-1)),v(B,{modelValue:a.value.estimate_hours,"onUpdate:modelValue":t[3]||(t[3]=s=>a.value.estimate_hours=s),type:"number",min:"0.25",max:"24",step:"0.25",disabled:u.value},null,8,["modelValue","disabled"])])]),l("div",Z,[l("div",ee,[t[14]||(t[14]=l("label",{class:"text-sm font-medium text-foreground"},"Status",-1)),v(h,{modelValue:a.value.status,"onUpdate:modelValue":t[4]||(t[4]=s=>a.value.status=s),disabled:u.value},{default:k(()=>[...t[13]||(t[13]=[l("option",{value:"todo"},"Todo",-1),l("option",{value:"doing"},"Doing",-1),l("option",{value:"done"},"Done",-1),l("option",{value:"cancelled"},"Cancelled",-1)])]),_:1},8,["modelValue","disabled"])]),l("div",te,[t[16]||(t[16]=l("label",{class:"text-sm font-medium text-foreground"},"Priority",-1)),v(h,{modelValue:a.value.priority,"onUpdate:modelValue":t[5]||(t[5]=s=>a.value.priority=s),disabled:u.value},{default:k(()=>[...t[15]||(t[15]=[l("option",{value:"1"},"1 - Low",-1),l("option",{value:"2"},"2 - Normal",-1),l("option",{value:"3"},"3 - Medium",-1),l("option",{value:"4"},"4 - High",-1),l("option",{value:"5"},"5 - Critical",-1)])]),_:1},8,["modelValue","disabled"])])]),$(m).workItems.length?(b(),y("div",ae,[t[17]||(t[17]=l("label",{class:"text-sm font-medium text-foreground"},"Azure DevOps Work Item",-1)),v(h,{modelValue:a.value.azure_work_item_id,"onUpdate:modelValue":t[6]||(t[6]=s=>a.value.azure_work_item_id=s),disabled:u.value,placeholder:"Link work item..."},{default:k(()=>[(b(!0),y(L,null,M($(m).workItems,s=>(b(),y("option",{key:s.id,value:String(s.id)}," #"+V(s.id)+" – "+V(s.title),9,le))),128))]),_:1},8,["modelValue","disabled"])])):T("",!0)],32)]),_:1},8,["open","title"]))}});export{me as _,re as u}; +import{D as c,B as N,r as _,d as C,o as b,c as y,p as D,i as $,t as V,j as T,s as F,v as A,n as E,w as k,a as l,e as v,F as L,l as M,h as P,k as z}from"./index-ZkX-rg-0.js";import{_ as W}from"./Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js";import{_ as B}from"./Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js";import{c as U}from"./utils-DWBfPysr.js";import{_ as S}from"./Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js";import{u as H}from"./devops-CMTMKOVx.js";const f={list:e=>c.get("/api/tasks",{params:e}),get:e=>c.get(`/api/tasks/${e}`),create:e=>c.post("/api/tasks",e),update:(e,n)=>c.patch(`/api/tasks/${e}`,n),remove:e=>c.delete(`/api/tasks/${e}`),complete:e=>c.post(`/api/tasks/${e}/complete`),blocks:e=>c.get(`/api/tasks/${e}/blocks`),createBlock:(e,n)=>c.post(`/api/tasks/${e}/blocks`,n),updateBlock:(e,n)=>c.patch(`/api/tasks/blocks/${e}`,n),deleteBlock:e=>c.delete(`/api/tasks/blocks/${e}`)},re=N("tasks",()=>{const e=_([]),n=_(!1),o=_(null);async function p(d){n.value=!0,o.value=null;try{const i=await f.list({date:d});e.value=i.data}catch(i){const r=i;o.value=r.message??"Failed to fetch tasks"}finally{n.value=!1}}async function m(d){n.value=!0,o.value=null;try{const i=await f.list(d?{project_id:d}:void 0);e.value=i.data}catch(i){const r=i;o.value=r.message??"Failed to fetch tasks"}finally{n.value=!1}}async function a(d){const i=await f.create(d);return e.value.push(i.data),i.data}async function u(d,i){const r=await f.update(d,i),w=e.value.findIndex(I=>I.id===d);return w!==-1&&(e.value[w]=r.data),r.data}async function x(d){await f.remove(d),e.value=e.value.filter(i=>i.id!==d)}async function g(d){const i=await f.complete(d),r=e.value.findIndex(w=>w.id===d);return r!==-1&&(e.value[r]=i.data),i.data}async function t(d,i){return(await f.createBlock(d,i)).data}async function s(d,i){return(await f.updateBlock(d,i)).data}async function j(d){await f.deleteBlock(d)}return{tasks:e,loading:n,error:o,fetchForDate:p,fetchAll:m,create:a,update:u,remove:x,complete:g,createBlock:t,updateBlock:s,deleteBlock:j}}),O=["id","value","placeholder","disabled","rows"],q=C({__name:"Textarea",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},rows:{},class:{},id:{}},emits:["update:modelValue"],setup(e,{emit:n}){const o=e,p=n;return(m,a)=>(b(),y("textarea",{id:e.id,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,class:D($(U)("flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 resize-none",o.class)),onInput:a[0]||(a[0]=u=>p("update:modelValue",u.target.value))},null,42,O))}}),G=["id","value","disabled"],J=["selected"],h=C({__name:"Select",props:{modelValue:{},disabled:{type:Boolean},class:{},id:{},placeholder:{}},emits:["update:modelValue","change"],setup(e,{emit:n}){const o=e,p=n;return(m,a)=>(b(),y("select",{id:e.id,value:e.modelValue,disabled:e.disabled,class:D($(U)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm","ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",o.class)),onChange:a[0]||(a[0]=u=>p("update:modelValue",u.target.value))},[e.placeholder?(b(),y("option",{key:0,value:"",disabled:"",selected:!e.modelValue},V(e.placeholder),9,J)):T("",!0),F(m.$slots,"default")],42,G))}}),K={class:"space-y-1.5"},Q={class:"space-y-1.5"},R={class:"grid grid-cols-2 gap-3"},X={class:"space-y-1.5"},Y={class:"space-y-1.5"},Z={class:"grid grid-cols-2 gap-3"},ee={class:"space-y-1.5"},te={class:"space-y-1.5"},ae={key:0,class:"space-y-1.5"},le=["value"],me=C({__name:"TaskForm",props:{open:{type:Boolean},task:{default:null},defaultDate:{}},emits:["close","save"],setup(e,{emit:n}){const o=e,p=n,m=H(),a=_({title:"",notes:"",planned_date:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0});A(()=>o.open,g=>{g&&(o.task?a.value={title:o.task.title,notes:o.task.notes??"",planned_date:o.task.planned_date??"",estimate_hours:o.task.estimate_hours??1,status:o.task.status,priority:o.task.priority,project_id:o.task.project_id??void 0,azure_work_item_id:o.task.azure_work_item_id??void 0}:a.value={title:"",notes:"",planned_date:o.defaultDate??"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0},m.integration&&!m.workItems.length&&m.fetchWorkItems("open"))},{immediate:!0});const u=_(!1);async function x(){if(a.value.title.trim()){u.value=!0;try{const g={title:a.value.title,notes:a.value.notes||void 0,planned_date:a.value.planned_date,estimate_hours:a.value.estimate_hours,status:a.value.status,priority:a.value.priority,project_id:a.value.project_id||null,azure_work_item_id:a.value.azure_work_item_id||null};p("save",g)}finally{u.value=!1}}}return(g,t)=>(b(),E(W,{open:e.open,title:e.task?"Edit Task":"New Task","max-width":"max-w-md",onClose:t[8]||(t[8]=s=>p("close"))},{footer:k(()=>[v(S,{variant:"outline",disabled:u.value,onClick:t[7]||(t[7]=s=>p("close"))},{default:k(()=>[...t[18]||(t[18]=[z("Cancel",-1)])]),_:1},8,["disabled"]),v(S,{loading:u.value,onClick:x},{default:k(()=>[z(V(e.task?"Update":"Create"),1)]),_:1},8,["loading"])]),default:k(()=>[l("form",{class:"space-y-4",onSubmit:P(x,["prevent"])},[l("div",K,[t[9]||(t[9]=l("label",{class:"text-sm font-medium text-foreground"},"Title *",-1)),v(B,{modelValue:a.value.title,"onUpdate:modelValue":t[0]||(t[0]=s=>a.value.title=s),placeholder:"Task title...",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",Q,[t[10]||(t[10]=l("label",{class:"text-sm font-medium text-foreground"},"Notes",-1)),v(q,{modelValue:a.value.notes,"onUpdate:modelValue":t[1]||(t[1]=s=>a.value.notes=s),placeholder:"Additional notes...",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",R,[l("div",X,[t[11]||(t[11]=l("label",{class:"text-sm font-medium text-foreground"},"Planned Date",-1)),v(B,{modelValue:a.value.planned_date,"onUpdate:modelValue":t[2]||(t[2]=s=>a.value.planned_date=s),type:"date",disabled:u.value},null,8,["modelValue","disabled"])]),l("div",Y,[t[12]||(t[12]=l("label",{class:"text-sm font-medium text-foreground"},"Estimate (h)",-1)),v(B,{modelValue:a.value.estimate_hours,"onUpdate:modelValue":t[3]||(t[3]=s=>a.value.estimate_hours=s),type:"number",min:"0.25",max:"24",step:"0.25",disabled:u.value},null,8,["modelValue","disabled"])])]),l("div",Z,[l("div",ee,[t[14]||(t[14]=l("label",{class:"text-sm font-medium text-foreground"},"Status",-1)),v(h,{modelValue:a.value.status,"onUpdate:modelValue":t[4]||(t[4]=s=>a.value.status=s),disabled:u.value},{default:k(()=>[...t[13]||(t[13]=[l("option",{value:"todo"},"Todo",-1),l("option",{value:"doing"},"Doing",-1),l("option",{value:"done"},"Done",-1),l("option",{value:"cancelled"},"Cancelled",-1)])]),_:1},8,["modelValue","disabled"])]),l("div",te,[t[16]||(t[16]=l("label",{class:"text-sm font-medium text-foreground"},"Priority",-1)),v(h,{modelValue:a.value.priority,"onUpdate:modelValue":t[5]||(t[5]=s=>a.value.priority=s),disabled:u.value},{default:k(()=>[...t[15]||(t[15]=[l("option",{value:"1"},"1 - Low",-1),l("option",{value:"2"},"2 - Normal",-1),l("option",{value:"3"},"3 - Medium",-1),l("option",{value:"4"},"4 - High",-1),l("option",{value:"5"},"5 - Critical",-1)])]),_:1},8,["modelValue","disabled"])])]),$(m).workItems.length?(b(),y("div",ae,[t[17]||(t[17]=l("label",{class:"text-sm font-medium text-foreground"},"Azure DevOps Work Item",-1)),v(h,{modelValue:a.value.azure_work_item_id,"onUpdate:modelValue":t[6]||(t[6]=s=>a.value.azure_work_item_id=s),disabled:u.value,placeholder:"Link work item..."},{default:k(()=>[(b(!0),y(L,null,M($(m).workItems,s=>(b(),y("option",{key:s.id,value:String(s.id)}," #"+V(s.id)+" – "+V(s.title),9,le))),128))]),_:1},8,["modelValue","disabled"])])):T("",!0)],32)]),_:1},8,["open","title"]))}});export{me as _,re as u}; diff --git a/src/static/assets/admin-DItGP2ar.js b/src/static/assets/admin-D88IFW1N.js similarity index 68% rename from src/static/assets/admin-DItGP2ar.js rename to src/static/assets/admin-D88IFW1N.js index 844225b..b20811c 100644 --- a/src/static/assets/admin-DItGP2ar.js +++ b/src/static/assets/admin-D88IFW1N.js @@ -1 +1 @@ -import{D as e}from"./index-DRwzmrLE.js";const i={users:()=>e.get("/api/admin/users"),keys:()=>e.get("/api/keys"),createKey:s=>e.post("/api/keys",s),revokeKey:s=>e.delete(`/api/keys/${s}`)};export{i as a}; +import{D as e}from"./index-ZkX-rg-0.js";const i={users:()=>e.get("/api/admin/users"),keys:()=>e.get("/api/keys"),createKey:s=>e.post("/api/keys",s),revokeKey:s=>e.delete(`/api/keys/${s}`)};export{i as a}; diff --git a/src/static/assets/dashboard-Btm3piK7.js b/src/static/assets/dashboard-C1cvUjRU.js similarity index 88% rename from src/static/assets/dashboard-Btm3piK7.js rename to src/static/assets/dashboard-C1cvUjRU.js index 01ce9a8..add234b 100644 --- a/src/static/assets/dashboard-Btm3piK7.js +++ b/src/static/assets/dashboard-C1cvUjRU.js @@ -1 +1 @@ -import{D as t}from"./index-DRwzmrLE.js";const e={summary:a=>t.get("/api/dashboard/summary",{params:a}),projects:a=>t.get("/api/dashboard/projects",{params:a}),timeline:a=>t.get("/api/dashboard/timeline",{params:a}),monthly:a=>t.get("/api/dashboard/monthly",{params:a}),dow:a=>t.get("/api/dashboard/dow",{params:a}),tools:a=>t.get("/api/dashboard/tools",{params:a}),activity:a=>t.get("/api/dashboard/activity",{params:a}),calendar:a=>t.get("/api/dashboard/calendar",{params:a}),project:(a,o)=>t.get("/api/dashboard/project/"+a,{params:o})};export{e as d}; +import{D as t}from"./index-ZkX-rg-0.js";const e={summary:a=>t.get("/api/dashboard/summary",{params:a}),projects:a=>t.get("/api/dashboard/projects",{params:a}),timeline:a=>t.get("/api/dashboard/timeline",{params:a}),monthly:a=>t.get("/api/dashboard/monthly",{params:a}),dow:a=>t.get("/api/dashboard/dow",{params:a}),tools:a=>t.get("/api/dashboard/tools",{params:a}),activity:a=>t.get("/api/dashboard/activity",{params:a}),calendar:a=>t.get("/api/dashboard/calendar",{params:a}),project:(a,o)=>t.get("/api/dashboard/project/"+a,{params:o})};export{e as d}; diff --git a/src/static/assets/devops-l4WPqQke.js b/src/static/assets/devops-CMTMKOVx.js similarity index 94% rename from src/static/assets/devops-l4WPqQke.js rename to src/static/assets/devops-CMTMKOVx.js index 140c678..fa1bdc3 100644 --- a/src/static/assets/devops-l4WPqQke.js +++ b/src/static/assets/devops-CMTMKOVx.js @@ -1 +1 @@ -import{D as s,B as I,r as o}from"./index-DRwzmrLE.js";const i={getIntegration:()=>s.get("/api/devops/integration"),saveIntegration:e=>s.put("/api/devops/integration",e),deleteIntegration:()=>s.delete("/api/devops/integration"),sync:()=>s.post("/api/devops/sync"),workItems:e=>s.get("/api/devops/work-items",{params:e?{state:e}:void 0})},m=I("devops",()=>{const e=o(null),r=o([]),l=o(!1),n=o(!1),c=o(null);async function u(){n.value=!0;try{const t=await i.getIntegration();e.value=t.data}catch{e.value=null}finally{n.value=!1}}async function d(t){const a=await i.saveIntegration(t);e.value=a.data}async function g(){await i.deleteIntegration(),e.value=null}async function f(){var t,a;l.value=!0,c.value=null;try{await i.sync(),await u()}catch(v){const p=v;throw c.value=((a=(t=p.response)==null?void 0:t.data)==null?void 0:a.detail)??p.message??"Sync failed",v}finally{l.value=!1}}async function y(t){n.value=!0;try{const a=await i.workItems(t);r.value=a.data}catch{r.value=[]}finally{n.value=!1}}return{integration:e,workItems:r,syncing:l,loading:n,error:c,fetchIntegration:u,saveIntegration:d,deleteIntegration:g,sync:f,fetchWorkItems:y}});export{m as u}; +import{D as s,B as I,r as o}from"./index-ZkX-rg-0.js";const i={getIntegration:()=>s.get("/api/devops/integration"),saveIntegration:e=>s.put("/api/devops/integration",e),deleteIntegration:()=>s.delete("/api/devops/integration"),sync:()=>s.post("/api/devops/sync"),workItems:e=>s.get("/api/devops/work-items",{params:e?{state:e}:void 0})},m=I("devops",()=>{const e=o(null),r=o([]),l=o(!1),n=o(!1),c=o(null);async function u(){n.value=!0;try{const t=await i.getIntegration();e.value=t.data}catch{e.value=null}finally{n.value=!1}}async function d(t){const a=await i.saveIntegration(t);e.value=a.data}async function g(){await i.deleteIntegration(),e.value=null}async function f(){var t,a;l.value=!0,c.value=null;try{await i.sync(),await u()}catch(v){const p=v;throw c.value=((a=(t=p.response)==null?void 0:t.data)==null?void 0:a.detail)??p.message??"Sync failed",v}finally{l.value=!1}}async function y(t){n.value=!0;try{const a=await i.workItems(t);r.value=a.data}catch{r.value=[]}finally{n.value=!1}}return{integration:e,workItems:r,syncing:l,loading:n,error:c,fetchIntegration:u,saveIntegration:d,deleteIntegration:g,sync:f,fetchWorkItems:y}});export{m as u}; diff --git a/src/static/assets/index-C0ue-SwZ.css b/src/static/assets/index-C0ue-SwZ.css deleted file mode 100644 index be1302f..0000000 --- a/src/static/assets/index-C0ue-SwZ.css +++ /dev/null @@ -1 +0,0 @@ -.slide-up-enter-active[data-v-5edd7614],.slide-up-leave-active[data-v-5edd7614]{transition:all .25s cubic-bezier(.34,1.56,.64,1)}.slide-up-enter-from[data-v-5edd7614],.slide-up-leave-to[data-v-5edd7614]{opacity:0;transform:translateY(20px) scale(.95)}.prose[data-v-5edd7614] li{margin:.125rem 0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 224 71.4% 4.1%;--card: 0 0% 100%;--card-foreground: 224 71.4% 4.1%;--popover: 0 0% 100%;--popover-foreground: 224 71.4% 4.1%;--primary: 262.1 83.3% 57.8%;--primary-foreground: 210 20% 98%;--secondary: 220 14.3% 95.9%;--secondary-foreground: 220.9 39.3% 11%;--muted: 220 14.3% 95.9%;--muted-foreground: 220 8.9% 46.1%;--accent: 220 14.3% 95.9%;--accent-foreground: 220.9 39.3% 11%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 20% 98%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 262.1 83.3% 57.8%;--radius: .5rem}.dark{--background: 224 71.4% 4.1%;--foreground: 210 20% 98%;--card: 224 71.4% 4.1%;--card-foreground: 210 20% 98%;--popover: 215 27.9% 10%;--popover-foreground: 210 20% 98%;--primary: 263.4 70% 50.4%;--primary-foreground: 210 20% 98%;--secondary: 215 27.9% 16.9%;--secondary-foreground: 210 20% 98%;--muted: 215 27.9% 16.9%;--muted-foreground: 217.9 10.6% 64.9%;--accent: 215 27.9% 16.9%;--accent-foreground: 210 20% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 20% 98%;--border: 215 27.9% 16.9%;--input: 215 27.9% 16.9%;--ring: 263.4 70% 50.4%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;background-color:hsl(var(--border))}::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-6{right:1.5rem}.top-0{top:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-\[600px\]{max-height:600px}.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-2{width:.5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[380px\]{width:380px}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-\[100px\]{max-width:100px}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[80\%\]{max-width:80%}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-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-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))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@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-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-s-resize{cursor:s-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.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-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-px{gap:1px}.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-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-500\/30{border-color:#f59e0b4d}.border-border{border-color:hsl(var(--border))}.border-border\/20{border-color:hsl(var(--border) / .2)}.border-border\/30{border-color:hsl(var(--border) / .3)}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-500\/30{border-color:#10b9814d}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/20{background-color:#f59e0b33}.bg-background{background-color:hsl(var(--background))}.bg-black\/60{background-color:#0009}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/90{background-color:hsl(var(--destructive) / .9)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-primary\/70{background-color:hsl(var(--primary) / .7)}.bg-primary\/90{background-color:hsl(var(--primary) / .9)}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/40{background-color:#7f1d1d66}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/80{background-color:hsl(var(--secondary) / .8)}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-white\/60{background-color:#fff9}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-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-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.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-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / 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-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-2xl{--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)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.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-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-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-width:0px}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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-amber-400:hover{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-300:hover{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-500\/20:hover{background-color:#10b98133}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-500\/20:hover{background-color:#ef444433}.hover\:bg-red-900\/60:hover{background-color:#7f1d1d99}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-400:hover{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-slate-100:hover{--tw-text-opacity: 1;color:rgb(241 245 249 / 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}.focus\:border-amber-400:focus{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;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))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:relative{position:relative}.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-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/src/static/assets/index-DRwzmrLE.js b/src/static/assets/index-DRwzmrLE.js deleted file mode 100644 index 9870f81..0000000 --- a/src/static/assets/index-DRwzmrLE.js +++ /dev/null @@ -1,39 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-mR80ecLx.js","assets/Button.vue_vue_type_script_setup_true_lang-DdcUxSmn.js","assets/utils-CFgQVuqB.js","assets/Input.vue_vue_type_script_setup_true_lang-CR2nSoFe.js","assets/CardContent.vue_vue_type_script_setup_true_lang-Dhtfm4bR.js","assets/AppLayout-aqZRYFo0.js","assets/DashboardView-BcXtk3TP.js","assets/dashboard-Btm3piK7.js","assets/CardTitle.vue_vue_type_script_setup_true_lang-BDTVk4qm.js","assets/Progress.vue_vue_type_script_setup_true_lang-B3vZXDIA.js","assets/CalendarView-Cia6IWHT.js","assets/TaskForm.vue_vue_type_script_setup_true_lang-Cu9G2tGA.js","assets/Dialog.vue_vue_type_script_setup_true_lang-B-pK_nBZ.js","assets/devops-l4WPqQke.js","assets/Badge.vue_vue_type_script_setup_true_lang-CKuGC1QO.js","assets/CalendarView-DGmJamL9.css","assets/PlannerView-D0u94Wlo.js","assets/ProjectsView-CXlJ3SQr.js","assets/ProjectDetailView-BMwGH_sH.js","assets/LiveView-B2nQO5D7.js","assets/ReportsView-CHQOjaZg.js","assets/ReportsView-BczQ2gJa.css","assets/KeysView-DlEd1ipQ.js","assets/admin-DItGP2ar.js","assets/SettingsView-Bo1DQQSd.js","assets/AdminView-DrzhLCxy.js"])))=>i.map(i=>d[i]); -var Bi=e=>{throw TypeError(e)};var ao=(e,t,n)=>t.has(e)||Bi("Cannot "+n);var O=(e,t,n)=>(ao(e,t,"read from private field"),n?n.call(e):t.get(e)),he=(e,t,n)=>t.has(e)?Bi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ne=(e,t,n,s)=>(ao(e,t,"write to private field"),s?s.call(e,n):t.set(e,n),n),$e=(e,t,n)=>(ao(e,t,"access private method"),n);var lr=(e,t,n,s)=>({set _(r){ne(e,t,r,n)},get _(){return O(e,t,s)}});(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** -* @vue/shared v3.5.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function ai(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Ee={},Yn=[],Ht=()=>{},Rl=()=>!1,Lr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fr=e=>e.startsWith("onUpdate:"),He=Object.assign,li=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ju=Object.prototype.hasOwnProperty,we=(e,t)=>ju.call(e,t),X=Array.isArray,Xn=e=>Xs(e)==="[object Map]",Al=e=>Xs(e)==="[object Set]",ji=e=>Xs(e)==="[object Date]",re=e=>typeof e=="function",Ae=e=>typeof e=="string",gt=e=>typeof e=="symbol",_e=e=>e!==null&&typeof e=="object",Ol=e=>(_e(e)||re(e))&&re(e.then)&&re(e.catch),Tl=Object.prototype.toString,Xs=e=>Tl.call(e),Uu=e=>Xs(e).slice(8,-1),Pl=e=>Xs(e)==="[object Object]",Mr=e=>Ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rs=ai(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),kr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hu=/-\w/g,it=kr(e=>e.replace(Hu,t=>t.slice(1).toUpperCase())),qu=/\B([A-Z])/g,xn=kr(e=>e.replace(qu,"-$1").toLowerCase()),Br=kr(e=>e.charAt(0).toUpperCase()+e.slice(1)),lo=kr(e=>e?`on${Br(e)}`:""),jt=(e,t)=>!Object.is(e,t),gr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},ci=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vu=e=>{const t=Ae(e)?Number(e):NaN;return isNaN(t)?e:t};let Ui;const jr=()=>Ui||(Ui=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(X(e)){const t={};for(let n=0;n{if(n){const s=n.split(Ku);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function dt(e){let t="";if(Ae(e))t=e;else if(X(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Ct=e=>Ae(e)?e:e==null?"":X(e)||_e(e)&&(e.toString===Tl||!re(e.toString))?Il(e)?Ct(e.value):JSON.stringify(e,Ll,2):String(e),Ll=(e,t)=>Il(t)?Ll(e,t.value):Xn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[co(s,o)+" =>"]=r,n),{})}:Al(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>co(n))}:gt(t)?co(t):_e(t)&&!X(t)&&!Pl(t)?String(t):t,co=(e,t="")=>{var n;return gt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ue;class Fl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ue&&(Ue.active?(this.parent=Ue,this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ue===this)Ue=this.prevScope;else{let t=Ue;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Os){let t=Os;for(Os=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;As;){let t=As;for(As=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Hl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ql(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),hi(s),Xu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Po(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ms)||(e.globalVersion=Ms,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Po(e))))return;e.flags|=2;const t=e.dep,n=Ce,s=Rt;Ce=e,Rt=!0;try{Hl(e);const r=e.fn(e._value);(t.version===0||jt(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Ce=n,Rt=s,ql(e),e.flags&=-3}}function hi(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)hi(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Rt=!0;const $l=[];function Xt(){$l.push(Rt),Rt=!1}function Zt(){const e=$l.pop();Rt=e===void 0?!0:e}function qi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ce;Ce=void 0;try{t()}finally{Ce=n}}}let Ms=0;class Zu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class pi{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Ce||!Rt||Ce===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ce)n=this.activeLink=new Zu(Ce,this),Ce.deps?(n.prevDep=Ce.depsTail,Ce.depsTail.nextDep=n,Ce.depsTail=n):Ce.deps=Ce.depsTail=n,Kl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Ce.depsTail,n.nextDep=void 0,Ce.depsTail.nextDep=n,Ce.depsTail=n,Ce.deps===n&&(Ce.deps=s)}return n}trigger(t){this.version++,Ms++,this.notify(t)}notify(t){fi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{di()}}}function Kl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Kl(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Er=new WeakMap,Bn=Symbol(""),Do=Symbol(""),ks=Symbol("");function Ge(e,t,n){if(Rt&&Ce){let s=Er.get(e);s||Er.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new pi),r.map=s,r.key=n),r.track()}}function Gt(e,t,n,s,r,o){const i=Er.get(e);if(!i){Ms++;return}const a=l=>{l&&l.trigger()};if(fi(),t==="clear")i.forEach(a);else{const l=X(e),u=l&&Mr(n);if(l&&n==="length"){const c=Number(s);i.forEach((f,h)=>{(h==="length"||h===ks||!gt(h)&&h>=c)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),u&&a(i.get(ks)),t){case"add":l?u&&a(i.get("length")):(a(i.get(Bn)),Xn(e)&&a(i.get(Do)));break;case"delete":l||(a(i.get(Bn)),Xn(e)&&a(i.get(Do)));break;case"set":Xn(e)&&a(i.get(Bn));break}}di()}function ef(e,t){const n=Er.get(e);return n&&n.get(t)}function $n(e){const t=ge(e);return t===e?t:(Ge(t,"iterate",ks),mt(e)?t:t.map(At))}function Ur(e){return Ge(e=ge(e),"iterate",ks),e}function kt(e,t){return en(e)?fs(Yt(e)?At(t):t):At(t)}const tf={__proto__:null,[Symbol.iterator](){return fo(this,Symbol.iterator,e=>kt(this,e))},concat(...e){return $n(this).concat(...e.map(t=>X(t)?$n(t):t))},entries(){return fo(this,"entries",e=>(e[1]=kt(this,e[1]),e))},every(e,t){return qt(this,"every",e,t,void 0,arguments)},filter(e,t){return qt(this,"filter",e,t,n=>n.map(s=>kt(this,s)),arguments)},find(e,t){return qt(this,"find",e,t,n=>kt(this,n),arguments)},findIndex(e,t){return qt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return qt(this,"findLast",e,t,n=>kt(this,n),arguments)},findLastIndex(e,t){return qt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return qt(this,"forEach",e,t,void 0,arguments)},includes(...e){return ho(this,"includes",e)},indexOf(...e){return ho(this,"indexOf",e)},join(e){return $n(this).join(e)},lastIndexOf(...e){return ho(this,"lastIndexOf",e)},map(e,t){return qt(this,"map",e,t,void 0,arguments)},pop(){return gs(this,"pop")},push(...e){return gs(this,"push",e)},reduce(e,...t){return Vi(this,"reduce",e,t)},reduceRight(e,...t){return Vi(this,"reduceRight",e,t)},shift(){return gs(this,"shift")},some(e,t){return qt(this,"some",e,t,void 0,arguments)},splice(...e){return gs(this,"splice",e)},toReversed(){return $n(this).toReversed()},toSorted(e){return $n(this).toSorted(e)},toSpliced(...e){return $n(this).toSpliced(...e)},unshift(...e){return gs(this,"unshift",e)},values(){return fo(this,"values",e=>kt(this,e))}};function fo(e,t,n){const s=Ur(e),r=s[t]();return s!==e&&!mt(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=n(o.value)),o}),r}const nf=Array.prototype;function qt(e,t,n,s,r,o){const i=Ur(e),a=i!==e&&!mt(e),l=i[t];if(l!==nf[t]){const f=l.apply(e,o);return a?At(f):f}let u=n;i!==e&&(a?u=function(f,h){return n.call(this,kt(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const c=l.call(i,u,s);return a&&r?r(c):c}function Vi(e,t,n,s){const r=Ur(e),o=r!==e&&!mt(e);let i=n,a=!1;r!==e&&(o?(a=s.length===0,i=function(u,c,f){return a&&(a=!1,u=kt(e,u)),n.call(this,u,kt(e,c),f,e)}):n.length>3&&(i=function(u,c,f){return n.call(this,u,c,f,e)}));const l=r[t](i,...s);return a?kt(e,l):l}function ho(e,t,n){const s=ge(e);Ge(s,"iterate",ks);const r=s[t](...n);return(r===-1||r===!1)&&Hr(n[0])?(n[0]=ge(n[0]),s[t](...n)):r}function gs(e,t,n=[]){Xt(),fi();const s=ge(e)[t].apply(e,n);return di(),Zt(),s}const sf=ai("__proto__,__v_isRef,__isVue"),Ql=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(gt));function rf(e){gt(e)||(e=String(e));const t=ge(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class zl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?mf:Yl:o?Jl:Gl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=X(t);if(!r){let l;if(i&&(l=tf[n]))return l;if(n==="hasOwnProperty")return rf}const a=Reflect.get(t,n,Pe(t)?t:s);if((gt(n)?Ql.has(n):sf(n))||(r||Ge(t,"get",n),o))return a;if(Pe(a)){const l=i&&Mr(n)?a:a.value;return r&&_e(l)?Io(l):l}return _e(a)?r?Io(a):Zs(a):a}}class Wl extends zl{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];const i=X(t)&&Mr(n);if(!this._isShallow){const u=en(o);if(!mt(s)&&!en(s)&&(o=ge(o),s=ge(s)),!i&&Pe(o)&&!Pe(s))return u||(o.value=s),!0}const a=i?Number(n)e,cr=e=>Reflect.getPrototypeOf(e);function uf(e,t,n){return function(...s){const r=this.__v_raw,o=ge(r),i=Xn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=r[e](...s),c=n?No:t?fs:At;return!t&&Ge(o,"iterate",l?Do:Bn),He(Object.create(u),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:a?[c(f[0]),c(f[1])]:c(f),done:h}}})}}function ur(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ff(e,t){const n={get(r){const o=this.__v_raw,i=ge(o),a=ge(r);e||(jt(r,a)&&Ge(i,"get",r),Ge(i,"get",a));const{has:l}=cr(i),u=t?No:e?fs:At;if(l.call(i,r))return u(o.get(r));if(l.call(i,a))return u(o.get(a));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&Ge(ge(r),"iterate",Bn),r.size},has(r){const o=this.__v_raw,i=ge(o),a=ge(r);return e||(jt(r,a)&&Ge(i,"has",r),Ge(i,"has",a)),r===a?o.has(r):o.has(r)||o.has(a)},forEach(r,o){const i=this,a=i.__v_raw,l=ge(a),u=t?No:e?fs:At;return!e&&Ge(l,"iterate",Bn),a.forEach((c,f)=>r.call(o,u(c),u(f),i))}};return He(n,e?{add:ur("add"),set:ur("set"),delete:ur("delete"),clear:ur("clear")}:{add(r){const o=ge(this),i=cr(o),a=ge(r),l=!t&&!mt(r)&&!en(r)?a:r;return i.has.call(o,l)||jt(r,l)&&i.has.call(o,r)||jt(a,l)&&i.has.call(o,a)||(o.add(l),Gt(o,"add",l,l)),this},set(r,o){!t&&!mt(o)&&!en(o)&&(o=ge(o));const i=ge(this),{has:a,get:l}=cr(i);let u=a.call(i,r);u||(r=ge(r),u=a.call(i,r));const c=l.call(i,r);return i.set(r,o),u?jt(o,c)&&Gt(i,"set",r,o):Gt(i,"add",r,o),this},delete(r){const o=ge(this),{has:i,get:a}=cr(o);let l=i.call(o,r);l||(r=ge(r),l=i.call(o,r)),a&&a.call(o,r);const u=o.delete(r);return l&&Gt(o,"delete",r,void 0),u},clear(){const r=ge(this),o=r.size!==0,i=r.clear();return o&&Gt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=uf(r,e,t)}),n}function mi(e,t){const n=ff(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(we(n,r)&&r in s?n:s,r,o)}const df={get:mi(!1,!1)},hf={get:mi(!1,!0)},pf={get:mi(!0,!1)};const Gl=new WeakMap,Jl=new WeakMap,Yl=new WeakMap,mf=new WeakMap;function gf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yf(e){return e.__v_skip||!Object.isExtensible(e)?0:gf(Uu(e))}function Zs(e){return en(e)?e:gi(e,!1,af,df,Gl)}function Xl(e){return gi(e,!1,cf,hf,Jl)}function Io(e){return gi(e,!0,lf,pf,Yl)}function gi(e,t,n,s,r){if(!_e(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=yf(e);if(o===0)return e;const i=r.get(e);if(i)return i;const a=new Proxy(e,o===2?s:n);return r.set(e,a),a}function Yt(e){return en(e)?Yt(e.__v_raw):!!(e&&e.__v_isReactive)}function en(e){return!!(e&&e.__v_isReadonly)}function mt(e){return!!(e&&e.__v_isShallow)}function Hr(e){return e?!!e.__v_raw:!1}function ge(e){const t=e&&e.__v_raw;return t?ge(t):e}function yi(e){return!we(e,"__v_skip")&&Object.isExtensible(e)&&Dl(e,"__v_skip",!0),e}const At=e=>_e(e)?Zs(e):e,fs=e=>_e(e)?Io(e):e;function Pe(e){return e?e.__v_isRef===!0:!1}function fe(e){return Zl(e,!1)}function vf(e){return Zl(e,!0)}function Zl(e,t){return Pe(e)?e:new bf(e,t)}class bf{constructor(t,n){this.dep=new pi,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ge(t),this._value=n?t:At(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||mt(t)||en(t);t=s?t:ge(t),jt(t,n)&&(this._rawValue=t,this._value=s?t:At(t),this.dep.trigger())}}function Ke(e){return Pe(e)?e.value:e}const wf={get:(e,t,n)=>t==="__v_raw"?e:Ke(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Pe(r)&&!Pe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ec(e){return Yt(e)?e:new Proxy(e,wf)}function _f(e){const t=X(e)?new Array(e.length):{};for(const n in e)t[n]=Ef(e,n);return t}class xf{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=gt(n)?n:String(n),this._raw=ge(t);let r=!0,o=t;if(!X(t)||gt(this._key)||!Mr(this._key))do r=!Hr(o)||mt(o);while(r&&(o=o.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Ke(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Pe(this._raw[this._key])){const n=this._object[this._key];if(Pe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ef(this._raw,this._key)}}function Ef(e,t,n){return new xf(e,t,n)}class Sf{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new pi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ms-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ce!==this)return Ul(this,!0),!0}get value(){const t=this.dep.track();return Vl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Cf(e,t,n=!1){let s,r;return re(e)?s=e:(s=e.get,r=e.set),new Sf(s,r,n)}const fr={},Sr=new WeakMap;let An;function Rf(e,t=!1,n=An){if(n){let s=Sr.get(n);s||Sr.set(n,s=[]),s.push(e)}}function Af(e,t,n=Ee){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:a,call:l}=n,u=v=>r?v:mt(v)||r===!1||r===0?Jt(v,1):Jt(v);let c,f,h,p,x=!1,g=!1;if(Pe(e)?(f=()=>e.value,x=mt(e)):Yt(e)?(f=()=>u(e),x=!0):X(e)?(g=!0,x=e.some(v=>Yt(v)||mt(v)),f=()=>e.map(v=>{if(Pe(v))return v.value;if(Yt(v))return u(v);if(re(v))return l?l(v,2):v()})):re(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){Xt();try{h()}finally{Zt()}}const v=An;An=c;try{return l?l(e,3,[p]):e(p)}finally{An=v}}:f=Ht,t&&r){const v=f,N=r===!0?1/0:r;f=()=>Jt(v(),N)}const w=kl(),S=()=>{c.stop(),w&&w.active&&li(w.effects,c)};if(o&&t){const v=t;t=(...N)=>{v(...N),S()}}let R=g?new Array(e.length).fill(fr):fr;const y=v=>{if(!(!(c.flags&1)||!c.dirty&&!v))if(t){const N=c.run();if(r||x||(g?N.some(($,k)=>jt($,R[k])):jt(N,R))){h&&h();const $=An;An=c;try{const k=[N,R===fr?void 0:g&&R[0]===fr?[]:R,p];R=N,l?l(t,3,k):t(...k)}finally{An=$}}}else c.run()};return a&&a(y),c=new Bl(f),c.scheduler=i?()=>i(y,!1):y,p=v=>Rf(v,!1,c),h=c.onStop=()=>{const v=Sr.get(c);if(v){if(l)l(v,4);else for(const N of v)N();Sr.delete(c)}},t?s?y(!0):R=c.run():i?i(y.bind(null,!0),!0):c.run(),S.pause=c.pause.bind(c),S.resume=c.resume.bind(c),S.stop=S,S}function Jt(e,t=1/0,n){if(t<=0||!_e(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Pe(e))Jt(e.value,t,n);else if(X(e))for(let s=0;s{Jt(s,t,n)});else if(Pl(e)){for(const s in e)Jt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Jt(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function er(e,t,n,s){try{return s?e(...s):e()}catch(r){qr(r,t,n)}}function Ot(e,t,n,s){if(re(e)){const r=er(e,t,n,s);return r&&Ol(r)&&r.catch(o=>{qr(o,t,n)}),r}if(X(e)){const r=[];for(let o=0;o>>1,r=rt[s],o=Bs(r);o=Bs(n)?rt.push(e):rt.splice(Tf(t),0,e),e.flags|=1,nc()}}function nc(){Cr||(Cr=tc.then(rc))}function Pf(e){X(e)?Zn.push(...e):un&&e.id===-1?un.splice(zn+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1),nc()}function $i(e,t,n=Nt+1){for(;nBs(n)-Bs(s));if(Zn.length=0,un){un.push(...t);return}for(un=t,zn=0;zne.id==null?e.flags&2?-1:1/0:e.id;function rc(e){try{for(Nt=0;Nt{s._d&&Tr(-1);const o=Rr(t);let i;try{i=e(...r)}finally{Rr(o),s._d&&Tr(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Df(e,t){if(Qe===null)return e;const n=Wr(Qe),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&re(t)?t.call(s&&s.proxy):t}}function Nf(){return!!(zr()||jn)}const If=Symbol.for("v-scx"),Lf=()=>xt(If);function Jn(e,t){return bi(e,null,t)}function wn(e,t,n){return bi(e,t,n)}function bi(e,t,n=Ee){const{immediate:s,deep:r,flush:o,once:i}=n,a=He({},n),l=t&&s||!t&&o!=="post";let u;if($s){if(o==="sync"){const p=Lf();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=Ht,p.resume=Ht,p.pause=Ht,p}}const c=Ye;a.call=(p,x,g)=>Ot(p,c,x,g);let f=!1;o==="post"?a.scheduler=p=>{tt(p,c&&c.suspense)}:o!=="sync"&&(f=!0,a.scheduler=(p,x)=>{x?p():vi(p)}),a.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const h=Af(e,t,a);return $s&&(u?u.push(h):l&&h()),h}function Ff(e,t,n){const s=this.proxy,r=Ae(e)?e.includes(".")?ic(s,e):()=>s[e]:e.bind(s,s);let o;re(t)?o=t:(o=t.handler,n=t);const i=tr(this),a=bi(r,o.bind(s),n);return i(),a}function ic(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,On=e=>e&&(e.disabled||e.disabled===""),Mf=e=>e&&(e.defer||e.defer===""),Ki=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Qi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Lo=(e,t)=>{const n=e&&e.to;return Ae(n)?t?t(n):null:n},kf={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,o,i,a,l,u){const{mc:c,pc:f,pbc:h,o:{insert:p,querySelector:x,createText:g,createComment:w,parentNode:S}}=u,R=On(t.props);let{dynamicChildren:y}=t;const v=(k,D,E)=>{k.shapeFlag&16&&c(k.children,D,E,r,o,i,a,l)},N=(k=t)=>{const D=On(k.props),E=k.target=Lo(k.props,x),B=Fo(E,k,g,p);E&&(i!=="svg"&&Ki(E)?i="svg":i!=="mathml"&&Qi(E)&&(i="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(E),D||(v(k,E,B),Es(k,!1)))},$=k=>{const D=()=>{if(an.get(k)===D){if(an.delete(k),On(k.props)){const E=S(k.el)||n;v(k,E,k.anchor),Es(k,!0)}N(k)}};an.set(k,D),tt(D,o)};if(e==null){const k=t.el=g(""),D=t.anchor=g("");if(p(k,n,s),p(D,n,s),Mf(t.props)||o&&o.pendingBranch){$(t);return}R&&(v(t,n,D),Es(t,!0)),N()}else{t.el=e.el;const k=t.anchor=e.anchor,D=an.get(e);if(D){D.flags|=8,an.delete(e),$(t);return}t.targetStart=e.targetStart;const E=t.target=e.target,B=t.targetAnchor=e.targetAnchor,z=On(e.props),j=z?n:E,te=z?k:B;if(i==="svg"||Ki(E)?i="svg":(i==="mathml"||Qi(E))&&(i="mathml"),y?(h(e.dynamicChildren,y,j,r,o,i,a),Ei(e,t,!0)):l||f(e,t,j,te,r,o,i,a,!1),R)z?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):dr(t,n,k,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ae=t.target=Lo(t.props,x);ae&&dr(t,ae,null,u,0)}else z&&dr(t,E,B,u,1);Es(t,R)}},remove(e,t,n,{um:s,o:{remove:r}},o){const{shapeFlag:i,children:a,anchor:l,targetStart:u,targetAnchor:c,target:f,props:h}=e;let p=o||!On(h);const x=an.get(e);if(x&&(x.flags|=8,an.delete(e),p=!1),f&&(r(u),r(c)),o&&r(l),i&16)for(let g=0;g{e.isMounted=!0}),wi(()=>{e.isUnmounting=!0}),e}const yt=[Function,Array],cc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:yt,onEnter:yt,onAfterEnter:yt,onEnterCancelled:yt,onBeforeLeave:yt,onLeave:yt,onAfterLeave:yt,onLeaveCancelled:yt,onBeforeAppear:yt,onAppear:yt,onAfterAppear:yt,onAppearCancelled:yt},uc=e=>{const t=e.subTree;return t.component?uc(t.component):t},Uf={name:"BaseTransition",props:cc,setup(e,{slots:t}){const n=zr(),s=jf();return()=>{const r=t.default&&hc(t.default(),!0),o=r&&r.length?fc(r):n.subTree?st():void 0;if(!o)return;const i=ge(e),{mode:a}=i;if(s.isLeaving)return po(o);const l=zi(o);if(!l)return po(o);let u=Mo(l,i,s,n,f=>u=f);l.type!==Je&&js(l,u);let c=n.subTree&&zi(n.subTree);if(c&&c.type!==Je&&!Tn(c,l)&&uc(n).type!==Je){let f=Mo(c,i,s,n);if(js(c,f),a==="out-in"&&l.type!==Je)return s.isLeaving=!0,f.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},po(o);a==="in-out"&&l.type!==Je?f.delayLeave=(h,p,x)=>{const g=dc(s,c);g[String(c.key)]=c,h[It]=()=>{p(),h[It]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{x(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function fc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Je){t=n;break}}return t}const Hf=Uf;function dc(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Mo(e,t,n,s,r){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:h,onLeave:p,onAfterLeave:x,onLeaveCancelled:g,onBeforeAppear:w,onAppear:S,onAfterAppear:R,onAppearCancelled:y}=t,v=String(e.key),N=dc(n,e),$=(E,B)=>{E&&Ot(E,s,9,B)},k=(E,B)=>{const z=B[1];$(E,B),X(E)?E.every(j=>j.length<=1)&&z():E.length<=1&&z()},D={mode:i,persisted:a,beforeEnter(E){let B=l;if(!n.isMounted)if(o)B=w||l;else return;E[It]&&E[It](!0);const z=N[v];z&&Tn(e,z)&&z.el[It]&&z.el[It](),$(B,[E])},enter(E){if(N[v]===e)return;let B=u,z=c,j=f;if(!n.isMounted)if(o)B=S||u,z=R||c,j=y||f;else return;let te=!1;E[ys]=Se=>{te||(te=!0,Se?$(j,[E]):$(z,[E]),D.delayedLeave&&D.delayedLeave(),E[ys]=void 0)};const ae=E[ys].bind(null,!1);B?k(B,[E,ae]):ae()},leave(E,B){const z=String(e.key);if(E[ys]&&E[ys](!0),n.isUnmounting)return B();$(h,[E]);let j=!1;E[It]=ae=>{j||(j=!0,B(),ae?$(g,[E]):$(x,[E]),E[It]=void 0,N[z]===e&&delete N[z])};const te=E[It].bind(null,!1);N[z]=e,p?k(p,[E,te]):te()},clone(E){const B=Mo(E,t,n,s,r);return r&&r(B),B}};return D}function po(e){if(Vr(e))return e=_n(e),e.children=null,e}function zi(e){if(!Vr(e))return lc(e.type)&&e.children?fc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&re(n.default))return n.default()}}function js(e,t){e.shapeFlag&6&&e.component?(e.transition=t,js(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function hc(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;oTs(g,t&&(X(t)?t[w]:t),n,s,r));return}if(es(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Ts(e,t,n,s.component.subTree);return}const o=s.shapeFlag&4?Wr(s.component):s.el,i=r?null:o,{i:a,r:l}=e,u=t&&t.r,c=a.refs===Ee?a.refs={}:a.refs,f=a.setupState,h=ge(f),p=f===Ee?Rl:g=>Wi(c,g)?!1:we(h,g),x=(g,w)=>!(w&&Wi(c,w));if(u!=null&&u!==l){if(Gi(t),Ae(u))c[u]=null,p(u)&&(f[u]=null);else if(Pe(u)){const g=t;x(u,g.k)&&(u.value=null),g.k&&(c[g.k]=null)}}if(re(l))er(l,a,12,[i,c]);else{const g=Ae(l),w=Pe(l);if(g||w){const S=()=>{if(e.f){const R=g?p(l)?f[l]:c[l]:x()||!e.k?l.value:c[e.k];if(r)X(R)&&li(R,o);else if(X(R))R.includes(o)||R.push(o);else if(g)c[l]=[o],p(l)&&(f[l]=c[l]);else{const y=[o];x(l,e.k)&&(l.value=y),e.k&&(c[e.k]=y)}}else g?(c[l]=i,p(l)&&(f[l]=i)):w&&(x(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const R=()=>{S(),Ar.delete(e)};R.id=-1,Ar.set(e,R),tt(R,n)}else Gi(e),S()}}}function Gi(e){const t=Ar.get(e);t&&(t.flags|=8,Ar.delete(e))}jr().requestIdleCallback;jr().cancelIdleCallback;const es=e=>!!e.type.__asyncLoader,Vr=e=>e.type.__isKeepAlive;function qf(e,t){mc(e,"a",t)}function Vf(e,t){mc(e,"da",t)}function mc(e,t,n=Ye){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if($r(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Vr(r.parent.vnode)&&$f(s,t,n,r),r=r.parent}}function $f(e,t,n,s){const r=$r(t,e,s,!0);gc(()=>{li(s[t],r)},n)}function $r(e,t,n=Ye,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Xt();const a=tr(n),l=Ot(t,n,e,i);return a(),Zt(),l});return s?r.unshift(o):r.push(o),o}}const tn=e=>(t,n=Ye)=>{(!$s||e==="sp")&&$r(e,(...s)=>t(...s),n)},Kf=tn("bm"),Us=tn("m"),Qf=tn("bu"),zf=tn("u"),wi=tn("bum"),gc=tn("um"),Wf=tn("sp"),Gf=tn("rtg"),Jf=tn("rtc");function Yf(e,t=Ye){$r("ec",e,t)}const yc="components";function Xf(e,t){return bc(yc,e,!0,t)||e}const vc=Symbol.for("v-ndc");function vs(e){return Ae(e)?bc(yc,e,!1)||e:e||vc}function bc(e,t,n=!0,s=!1){const r=Qe||Ye;if(r){const o=r.type;{const a=Md(o,!1);if(a&&(a===t||a===it(t)||a===Br(it(t))))return o}const i=Ji(r[e]||o[e],t)||Ji(r.appContext[e],t);return!i&&s?o:i}}function Ji(e,t){return e&&(e[t]||e[it(t)]||e[Br(it(t))])}function ts(e,t,n,s){let r;const o=n,i=X(e);if(i||Ae(e)){const a=i&&Yt(e);let l=!1,u=!1;a&&(l=!mt(e),u=en(e),e=Ur(e)),r=new Array(e.length);for(let c=0,f=e.length;ct(a,l,void 0,o));else{const a=Object.keys(e);r=new Array(a.length);for(let l=0,u=a.length;l0;return t!=="default"&&(n.name=t),Z(),Ut(Re,null,[Te("slot",n,s&&s())],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),Z();const i=o&&wc(o(n)),a=n.key||i&&i.key,l=Ut(Re,{key:(a&&!gt(a)?a:`_${t}`)+(!i&&s?"_fb":"")},i||(s?s():[]),i&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function wc(e){return e.some(t=>qs(t)?!(t.type===Je||t.type===Re&&!wc(t.children)):!0)?e:null}const ko=e=>e?jc(e)?Wr(e):ko(e.parent):null,Ps=He(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ko(e.parent),$root:e=>ko(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>xc(e),$forceUpdate:e=>e.f||(e.f=()=>{vi(e.update)}),$nextTick:e=>e.n||(e.n=Hn.bind(e.proxy)),$watch:e=>Ff.bind(e)}),mo=(e,t)=>e!==Ee&&!e.__isScriptSetup&&we(e,t),Zf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(mo(s,t))return i[t]=1,s[t];if(r!==Ee&&we(r,t))return i[t]=2,r[t];if(we(o,t))return i[t]=3,o[t];if(n!==Ee&&we(n,t))return i[t]=4,n[t];Bo&&(i[t]=0)}}const u=Ps[t];let c,f;if(u)return t==="$attrs"&&Ge(e.attrs,"get",""),u(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==Ee&&we(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,we(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return mo(r,t)?(r[t]=n,!0):s!==Ee&&we(s,t)?(s[t]=n,!0):we(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:o,type:i}},a){let l;return!!(n[a]||e!==Ee&&a[0]!=="$"&&we(e,a)||mo(t,a)||we(o,a)||we(s,a)||we(Ps,a)||we(r.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:we(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ed(){return td().attrs}function td(e){const t=zr();return t.setupContext||(t.setupContext=Hc(t))}function Yi(e){return X(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Bo=!0;function nd(e){const t=xc(e),n=e.proxy,s=e.ctx;Bo=!1,t.beforeCreate&&Xi(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:h,beforeUpdate:p,updated:x,activated:g,deactivated:w,beforeDestroy:S,beforeUnmount:R,destroyed:y,unmounted:v,render:N,renderTracked:$,renderTriggered:k,errorCaptured:D,serverPrefetch:E,expose:B,inheritAttrs:z,components:j,directives:te,filters:ae}=t;if(u&&sd(u,s,null),i)for(const Y in i){const oe=i[Y];re(oe)&&(s[Y]=oe.bind(n))}if(r){const Y=r.call(n,n);_e(Y)&&(e.data=Zs(Y))}if(Bo=!0,o)for(const Y in o){const oe=o[Y],ue=re(oe)?oe.bind(n,n):re(oe.get)?oe.get.bind(n,n):Ht,ye=!re(oe)&&re(oe.set)?oe.set.bind(n):Ht,Le=me({get:ue,set:ye});Object.defineProperty(s,Y,{enumerable:!0,configurable:!0,get:()=>Le.value,set:ke=>Le.value=ke})}if(a)for(const Y in a)_c(a[Y],s,n,Y);if(l){const Y=re(l)?l.call(n):l;Reflect.ownKeys(Y).forEach(oe=>{yr(oe,Y[oe])})}c&&Xi(c,e,"c");function le(Y,oe){X(oe)?oe.forEach(ue=>Y(ue.bind(n))):oe&&Y(oe.bind(n))}if(le(Kf,f),le(Us,h),le(Qf,p),le(zf,x),le(qf,g),le(Vf,w),le(Yf,D),le(Jf,$),le(Gf,k),le(wi,R),le(gc,v),le(Wf,E),X(B))if(B.length){const Y=e.exposed||(e.exposed={});B.forEach(oe=>{Object.defineProperty(Y,oe,{get:()=>n[oe],set:ue=>n[oe]=ue,enumerable:!0})})}else e.exposed||(e.exposed={});N&&e.render===Ht&&(e.render=N),z!=null&&(e.inheritAttrs=z),j&&(e.components=j),te&&(e.directives=te),E&&pc(e)}function sd(e,t,n=Ht){X(e)&&(e=jo(e));for(const s in e){const r=e[s];let o;_e(r)?"default"in r?o=xt(r.from||s,r.default,!0):o=xt(r.from||s):o=xt(r),Pe(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Xi(e,t,n){Ot(X(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function _c(e,t,n,s){let r=s.includes(".")?ic(n,s):()=>n[s];if(Ae(e)){const o=t[e];re(o)&&wn(r,o)}else if(re(e))wn(r,e.bind(n));else if(_e(e))if(X(e))e.forEach(o=>_c(o,t,n,s));else{const o=re(e.handler)?e.handler.bind(n):t[e.handler];re(o)&&wn(r,o,e)}}function xc(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!r.length&&!n&&!s?l=t:(l={},r.length&&r.forEach(u=>Or(l,u,i,!0)),Or(l,t,i)),_e(t)&&o.set(t,l),l}function Or(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Or(e,o,n,!0),r&&r.forEach(i=>Or(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const a=rd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const rd={data:Zi,props:ea,emits:ea,methods:Ss,computed:Ss,beforeCreate:et,created:et,beforeMount:et,mounted:et,beforeUpdate:et,updated:et,beforeDestroy:et,beforeUnmount:et,destroyed:et,unmounted:et,activated:et,deactivated:et,errorCaptured:et,serverPrefetch:et,components:Ss,directives:Ss,watch:id,provide:Zi,inject:od};function Zi(e,t){return t?e?function(){return He(re(e)?e.call(this,this):e,re(t)?t.call(this,this):t)}:t:e}function od(e,t){return Ss(jo(e),jo(t))}function jo(e){if(X(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${it(t)}Modifiers`]||e[`${xn(t)}Modifiers`];function ud(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Ee;let r=n;const o=t.startsWith("update:"),i=o&&cd(s,t.slice(7));i&&(i.trim&&(r=n.map(c=>Ae(c)?c.trim():c)),i.number&&(r=n.map(ci)));let a,l=s[a=lo(t)]||s[a=lo(it(t))];!l&&o&&(l=s[a=lo(xn(t))]),l&&Ot(l,e,6,r);const u=s[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ot(u,e,6,r)}}const fd=new WeakMap;function Sc(e,t,n=!1){const s=n?fd:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},a=!1;if(!re(e)){const l=u=>{const c=Sc(u,t,!0);c&&(a=!0,He(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(_e(e)&&s.set(e,null),null):(X(o)?o.forEach(l=>i[l]=null):He(i,o),_e(e)&&s.set(e,i),i)}function Kr(e,t){return!e||!Lr(t)?!1:(t=t.slice(2).replace(/Once$/,""),we(e,t[0].toLowerCase()+t.slice(1))||we(e,xn(t))||we(e,t))}function ta(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:a,emit:l,render:u,renderCache:c,props:f,data:h,setupState:p,ctx:x,inheritAttrs:g}=e,w=Rr(e);let S,R;try{if(n.shapeFlag&4){const v=r||s,N=v;S=Bt(u.call(N,v,c,f,p,h,x)),R=a}else{const v=t;S=Bt(v.length>1?v(f,{attrs:a,slots:i,emit:l}):v(f,null)),R=t.props?a:dd(a)}}catch(v){Ds.length=0,qr(v,e,1),S=Te(Je)}let y=S;if(R&&g!==!1){const v=Object.keys(R),{shapeFlag:N}=y;v.length&&N&7&&(o&&v.some(Fr)&&(R=hd(R,o)),y=_n(y,R,!1,!0))}return n.dirs&&(y=_n(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&js(y,n.transition),S=y,Rr(w),S}const dd=e=>{let t;for(const n in e)(n==="class"||n==="style"||Lr(n))&&((t||(t={}))[n]=e[n]);return t},hd=(e,t)=>{const n={};for(const s in e)(!Fr(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function pd(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:a,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?na(s,i,u):!!i;if(l&8){const c=t.dynamicProps;for(let f=0;fObject.create(Rc),Oc=e=>Object.getPrototypeOf(e)===Rc;function gd(e,t,n,s=!1){const r={},o=Ac();e.propsDefaults=Object.create(null),Tc(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:Xl(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function yd(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,a=ge(r),[l]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,p]=Pc(f,t,!0);He(i,h),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return _e(e)&&s.set(e,Yn),Yn;if(X(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",xi=e=>X(e)?e.map(Bt):[Bt(e)],bd=(e,t,n)=>{if(t._n)return t;const s=fn((...r)=>xi(t(...r)),n);return s._c=!1,s},Dc=(e,t,n)=>{const s=e._ctx;for(const r in e){if(_i(r))continue;const o=e[r];if(re(o))t[r]=bd(r,o,s);else if(o!=null){const i=xi(o);t[r]=()=>i}}},Nc=(e,t)=>{const n=xi(t);e.slots.default=()=>n},Ic=(e,t,n)=>{for(const s in t)(n||!_i(s))&&(e[s]=t[s])},wd=(e,t,n)=>{const s=e.slots=Ac();if(e.vnode.shapeFlag&32){const r=t._;r?(Ic(s,t,n),n&&Dl(s,"_",r,!0)):Dc(t,s)}else t&&Nc(e,t)},_d=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=Ee;if(s.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Ic(r,t,n):(o=!t.$stable,Dc(t,r)),i=t}else t&&(Nc(e,t),i={default:1});if(o)for(const a in r)!_i(a)&&i[a]==null&&delete r[a]},tt=Rd;function xd(e){return Ed(e)}function Ed(e,t){const n=jr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:h,setScopeId:p=Ht,insertStaticContent:x}=e,g=(d,m,b,T=null,I=null,P=null,q=void 0,H=null,U=!!m.dynamicChildren)=>{if(d===m)return;d&&!Tn(d,m)&&(T=C(d),ke(d,I,P,!0),d=null),m.patchFlag===-2&&(U=!1,m.dynamicChildren=null);const{type:F,ref:J,shapeFlag:V}=m;switch(F){case Qr:w(d,m,b,T);break;case Je:S(d,m,b,T);break;case vr:d==null&&R(m,b,T,q);break;case Re:j(d,m,b,T,I,P,q,H,U);break;default:V&1?N(d,m,b,T,I,P,q,H,U):V&6?te(d,m,b,T,I,P,q,H,U):(V&64||V&128)&&F.process(d,m,b,T,I,P,q,H,U,K)}J!=null&&I?Ts(J,d&&d.ref,P,m||d,!m):J==null&&d&&d.ref!=null&&Ts(d.ref,null,P,d,!0)},w=(d,m,b,T)=>{if(d==null)s(m.el=a(m.children),b,T);else{const I=m.el=d.el;m.children!==d.children&&u(I,m.children)}},S=(d,m,b,T)=>{d==null?s(m.el=l(m.children||""),b,T):m.el=d.el},R=(d,m,b,T)=>{[d.el,d.anchor]=x(d.children,m,b,T,d.el,d.anchor)},y=({el:d,anchor:m},b,T)=>{let I;for(;d&&d!==m;)I=h(d),s(d,b,T),d=I;s(m,b,T)},v=({el:d,anchor:m})=>{let b;for(;d&&d!==m;)b=h(d),r(d),d=b;r(m)},N=(d,m,b,T,I,P,q,H,U)=>{if(m.type==="svg"?q="svg":m.type==="math"&&(q="mathml"),d==null)$(m,b,T,I,P,q,H,U);else{const F=d.el&&d.el._isVueCE?d.el:null;try{F&&F._beginPatch(),E(d,m,I,P,q,H,U)}finally{F&&F._endPatch()}}},$=(d,m,b,T,I,P,q,H)=>{let U,F;const{props:J,shapeFlag:V,transition:W,dirs:ee}=d;if(U=d.el=i(d.type,P,J&&J.is,J),V&8?c(U,d.children):V&16&&D(d.children,U,null,T,I,go(d,P),q,H),ee&&En(d,null,T,"created"),k(U,d,d.scopeId,q,T),J){for(const ve in J)ve!=="value"&&!Rs(ve)&&o(U,ve,null,J[ve],P,T);"value"in J&&o(U,"value",null,J.value,P),(F=J.onVnodeBeforeMount)&&Dt(F,T,d)}ee&&En(d,null,T,"beforeMount");const pe=Sd(I,W);pe&&W.beforeEnter(U),s(U,m,b),((F=J&&J.onVnodeMounted)||pe||ee)&&tt(()=>{try{F&&Dt(F,T,d),pe&&W.enter(U),ee&&En(d,null,T,"mounted")}finally{}},I)},k=(d,m,b,T,I)=>{if(b&&p(d,b),T)for(let P=0;P{for(let F=U;F{const H=m.el=d.el;let{patchFlag:U,dynamicChildren:F,dirs:J}=m;U|=d.patchFlag&16;const V=d.props||Ee,W=m.props||Ee;let ee;if(b&&Sn(b,!1),(ee=W.onVnodeBeforeUpdate)&&Dt(ee,b,m,d),J&&En(m,d,b,"beforeUpdate"),b&&Sn(b,!0),(V.innerHTML&&W.innerHTML==null||V.textContent&&W.textContent==null)&&c(H,""),F?B(d.dynamicChildren,F,H,b,T,go(m,I),P):q||oe(d,m,H,null,b,T,go(m,I),P,!1),U>0){if(U&16)z(H,V,W,b,I);else if(U&2&&V.class!==W.class&&o(H,"class",null,W.class,I),U&4&&o(H,"style",V.style,W.style,I),U&8){const pe=m.dynamicProps;for(let ve=0;ve{ee&&Dt(ee,b,m,d),J&&En(m,d,b,"updated")},T)},B=(d,m,b,T,I,P,q)=>{for(let H=0;H{if(m!==b){if(m!==Ee)for(const P in m)!Rs(P)&&!(P in b)&&o(d,P,m[P],null,I,T);for(const P in b){if(Rs(P))continue;const q=b[P],H=m[P];q!==H&&P!=="value"&&o(d,P,H,q,I,T)}"value"in b&&o(d,"value",m.value,b.value,I)}},j=(d,m,b,T,I,P,q,H,U)=>{const F=m.el=d?d.el:a(""),J=m.anchor=d?d.anchor:a("");let{patchFlag:V,dynamicChildren:W,slotScopeIds:ee}=m;ee&&(H=H?H.concat(ee):ee),d==null?(s(F,b,T),s(J,b,T),D(m.children||[],b,J,I,P,q,H,U)):V>0&&V&64&&W&&d.dynamicChildren&&d.dynamicChildren.length===W.length?(B(d.dynamicChildren,W,b,I,P,q,H),(m.key!=null||I&&m===I.subTree)&&Ei(d,m,!0)):oe(d,m,b,J,I,P,q,H,U)},te=(d,m,b,T,I,P,q,H,U)=>{m.slotScopeIds=H,d==null?m.shapeFlag&512?I.ctx.activate(m,b,T,q,U):ae(m,b,T,I,P,q,U):Se(d,m,U)},ae=(d,m,b,T,I,P,q)=>{const H=d.component=Nd(d,T,I);if(Vr(d)&&(H.ctx.renderer=K),Id(H,!1,q),H.asyncDep){if(I&&I.registerDep(H,le,q),!d.el){const U=H.subTree=Te(Je);S(null,U,m,b),d.placeholder=U.el}}else le(H,d,m,b,I,P,q)},Se=(d,m,b)=>{const T=m.component=d.component;if(pd(d,m,b))if(T.asyncDep&&!T.asyncResolved){Y(T,m,b);return}else T.next=m,T.update();else m.el=d.el,T.vnode=m},le=(d,m,b,T,I,P,q)=>{const H=()=>{if(d.isMounted){let{next:V,bu:W,u:ee,parent:pe,vnode:ve}=d;{const ut=Lc(d);if(ut){V&&(V.el=ve.el,Y(d,V,q)),ut.asyncDep.then(()=>{tt(()=>{d.isUnmounted||F()},I)});return}}let xe=V,De;Sn(d,!1),V?(V.el=ve.el,Y(d,V,q)):V=ve,W&&gr(W),(De=V.props&&V.props.onVnodeBeforeUpdate)&&Dt(De,pe,V,ve),Sn(d,!0);const Me=ta(d),ct=d.subTree;d.subTree=Me,g(ct,Me,f(ct.el),C(ct),d,I,P),V.el=Me.el,xe===null&&md(d,Me.el),ee&&tt(ee,I),(De=V.props&&V.props.onVnodeUpdated)&&tt(()=>Dt(De,pe,V,ve),I)}else{let V;const{el:W,props:ee}=m,{bm:pe,m:ve,parent:xe,root:De,type:Me}=d,ct=es(m);Sn(d,!1),pe&&gr(pe),!ct&&(V=ee&&ee.onVnodeBeforeMount)&&Dt(V,xe,m),Sn(d,!0);{De.ce&&De.ce._hasShadowRoot()&&De.ce._injectChildStyle(Me,d.parent?d.parent.type:void 0);const ut=d.subTree=ta(d);g(null,ut,b,T,d,I,P),m.el=ut.el}if(ve&&tt(ve,I),!ct&&(V=ee&&ee.onVnodeMounted)){const ut=m;tt(()=>Dt(V,xe,ut),I)}(m.shapeFlag&256||xe&&es(xe.vnode)&&xe.vnode.shapeFlag&256)&&d.a&&tt(d.a,I),d.isMounted=!0,m=b=T=null}};d.scope.on();const U=d.effect=new Bl(H);d.scope.off();const F=d.update=U.run.bind(U),J=d.job=U.runIfDirty.bind(U);J.i=d,J.id=d.uid,U.scheduler=()=>vi(J),Sn(d,!0),F()},Y=(d,m,b)=>{m.component=d;const T=d.vnode.props;d.vnode=m,d.next=null,yd(d,m.props,T,b),_d(d,m.children,b),Xt(),$i(d),Zt()},oe=(d,m,b,T,I,P,q,H,U=!1)=>{const F=d&&d.children,J=d?d.shapeFlag:0,V=m.children,{patchFlag:W,shapeFlag:ee}=m;if(W>0){if(W&128){ye(F,V,b,T,I,P,q,H,U);return}else if(W&256){ue(F,V,b,T,I,P,q,H,U);return}}ee&8?(J&16&&ie(F,I,P),V!==F&&c(b,V)):J&16?ee&16?ye(F,V,b,T,I,P,q,H,U):ie(F,I,P,!0):(J&8&&c(b,""),ee&16&&D(V,b,T,I,P,q,H,U))},ue=(d,m,b,T,I,P,q,H,U)=>{d=d||Yn,m=m||Yn;const F=d.length,J=m.length,V=Math.min(F,J);let W;for(W=0;WJ?ie(d,I,P,!0,!1,V):D(m,b,T,I,P,q,H,U,V)},ye=(d,m,b,T,I,P,q,H,U)=>{let F=0;const J=m.length;let V=d.length-1,W=J-1;for(;F<=V&&F<=W;){const ee=d[F],pe=m[F]=U?zt(m[F]):Bt(m[F]);if(Tn(ee,pe))g(ee,pe,b,null,I,P,q,H,U);else break;F++}for(;F<=V&&F<=W;){const ee=d[V],pe=m[W]=U?zt(m[W]):Bt(m[W]);if(Tn(ee,pe))g(ee,pe,b,null,I,P,q,H,U);else break;V--,W--}if(F>V){if(F<=W){const ee=W+1,pe=eeW)for(;F<=V;)ke(d[F],I,P,!0),F++;else{const ee=F,pe=F,ve=new Map;for(F=pe;F<=W;F++){const Be=m[F]=U?zt(m[F]):Bt(m[F]);Be.key!=null&&ve.set(Be.key,F)}let xe,De=0;const Me=W-pe+1;let ct=!1,ut=0;const nn=new Array(Me);for(F=0;F=Me){ke(Be,I,P,!0);continue}let ze;if(Be.key!=null)ze=ve.get(Be.key);else for(xe=pe;xe<=W;xe++)if(nn[xe-pe]===0&&Tn(Be,m[xe])){ze=xe;break}ze===void 0?ke(Be,I,P,!0):(nn[ze-pe]=F+1,ze>=ut?ut=ze:ct=!0,g(Be,m[ze],b,null,I,P,q,H,U),De++)}const sn=ct?Cd(nn):Yn;for(xe=sn.length-1,F=Me-1;F>=0;F--){const Be=pe+F,ze=m[Be],Mi=m[Be+1],ki=Be+1{const{el:P,type:q,transition:H,children:U,shapeFlag:F}=d;if(F&6){Le(d.component.subTree,m,b,T);return}if(F&128){d.suspense.move(m,b,T);return}if(F&64){q.move(d,m,b,K);return}if(q===Re){s(P,m,b);for(let V=0;VH.enter(P),I);else{const{leave:V,delayLeave:W,afterLeave:ee}=H,pe=()=>{d.ctx.isUnmounted?r(P):s(P,m,b)},ve=()=>{P._isLeaving&&P[It](!0),V(P,()=>{pe(),ee&&ee()})};W?W(P,pe,ve):ve()}else s(P,m,b)},ke=(d,m,b,T=!1,I=!1)=>{const{type:P,props:q,ref:H,children:U,dynamicChildren:F,shapeFlag:J,patchFlag:V,dirs:W,cacheIndex:ee,memo:pe}=d;if(V===-2&&(I=!1),H!=null&&(Xt(),Ts(H,null,b,d,!0),Zt()),ee!=null&&(m.renderCache[ee]=void 0),J&256){m.ctx.deactivate(d);return}const ve=J&1&&W,xe=!es(d);let De;if(xe&&(De=q&&q.onVnodeBeforeUnmount)&&Dt(De,m,d),J&6)A(d.component,b,T);else{if(J&128){d.suspense.unmount(b,T);return}ve&&En(d,null,m,"beforeUnmount"),J&64?d.type.remove(d,m,b,K,T):F&&!F.hasOnce&&(P!==Re||V>0&&V&64)?ie(F,m,b,!1,!0):(P===Re&&V&384||!I&&J&16)&&ie(U,m,b),T&&Oe(d)}const Me=pe!=null&&ee==null;(xe&&(De=q&&q.onVnodeUnmounted)||ve||Me)&&tt(()=>{De&&Dt(De,m,d),ve&&En(d,null,m,"unmounted"),Me&&(d.el=null)},b)},Oe=d=>{const{type:m,el:b,anchor:T,transition:I}=d;if(m===Re){Ve(b,T);return}if(m===vr){v(d);return}const P=()=>{r(b),I&&!I.persisted&&I.afterLeave&&I.afterLeave()};if(d.shapeFlag&1&&I&&!I.persisted){const{leave:q,delayLeave:H}=I,U=()=>q(b,P);H?H(d.el,P,U):U()}else P()},Ve=(d,m)=>{let b;for(;d!==m;)b=h(d),r(d),d=b;r(m)},A=(d,m,b)=>{const{bum:T,scope:I,job:P,subTree:q,um:H,m:U,a:F}=d;ra(U),ra(F),T&&gr(T),I.stop(),P&&(P.flags|=8,ke(q,d,m,b)),H&&tt(H,m),tt(()=>{d.isUnmounted=!0},m)},ie=(d,m,b,T=!1,I=!1,P=0)=>{for(let q=P;q{if(d.shapeFlag&6)return C(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const m=h(d.anchor||d.el),b=m&&m[ac];return b?h(b):m};let L=!1;const M=(d,m,b)=>{let T;d==null?m._vnode&&(ke(m._vnode,null,null,!0),T=m._vnode.component):g(m._vnode||null,d,m,null,null,null,b),m._vnode=d,L||(L=!0,$i(T),sc(),L=!1)},K={p:g,um:ke,m:Le,r:Oe,mt:ae,mc:D,pc:oe,pbc:B,n:C,o:e};return{render:M,hydrate:void 0,createApp:ld(M)}}function go({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Sn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Sd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ei(e,t,n=!1){const s=e.children,r=t.children;if(X(s)&&X(r))for(let o=0;o>1,e[n[a]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Lc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Lc(t)}function ra(e){if(e)for(let t=0;te.__isSuspense;function Rd(e,t){t&&t.pendingBranch?X(e)?t.effects.push(...e):t.effects.push(e):Pf(e)}const Re=Symbol.for("v-fgt"),Qr=Symbol.for("v-txt"),Je=Symbol.for("v-cmt"),vr=Symbol.for("v-stc"),Ds=[];let pt=null;function Z(e=!1){Ds.push(pt=e?null:[])}function Ad(){Ds.pop(),pt=Ds[Ds.length-1]||null}let Hs=1;function Tr(e,t=!1){Hs+=e,e<0&&pt&&t&&(pt.hasOnce=!0)}function kc(e){return e.dynamicChildren=Hs>0?pt||Yn:null,Ad(),Hs>0&&pt&&pt.push(e),e}function ce(e,t,n,s,r,o){return kc(G(e,t,n,s,r,o,!0))}function Ut(e,t,n,s,r){return kc(Te(e,t,n,s,r,!0))}function qs(e){return e?e.__v_isVNode===!0:!1}function Tn(e,t){return e.type===t.type&&e.key===t.key}const Bc=({key:e})=>e??null,br=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ae(e)||Pe(e)||re(e)?{i:Qe,r:e,k:t,f:!!n}:e:null);function G(e,t=null,n=null,s=0,r=null,o=e===Re?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bc(t),ref:t&&br(t),scopeId:oc,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Qe};return a?(Si(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Ae(n)?8:16),Hs>0&&!i&&pt&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&pt.push(l),l}const Te=Od;function Od(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===vc)&&(e=Je),qs(e)){const a=_n(e,t,!0);return n&&Si(a,n),Hs>0&&!o&&pt&&(a.shapeFlag&6?pt[pt.indexOf(e)]=a:pt.push(a)),a.patchFlag=-2,a}if(kd(e)&&(e=e.__vccOpts),t){t=Td(t);let{class:a,style:l}=t;a&&!Ae(a)&&(t.class=dt(a)),_e(l)&&(Hr(l)&&!X(l)&&(l=He({},l)),t.style=bn(l))}const i=Ae(e)?1:Mc(e)?128:lc(e)?64:_e(e)?4:re(e)?2:0;return G(e,t,n,s,r,i,o,!0)}function Td(e){return e?Hr(e)||Oc(e)?He({},e):e:null}function _n(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:a,transition:l}=e,u=t?Ns(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Bc(u),ref:t&&t.ref?n&&o?X(o)?o.concat(br(t)):[o,br(t)]:br(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Re?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_n(e.ssContent),ssFallback:e.ssFallback&&_n(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&s&&js(c,l.clone(c)),c}function Vs(e=" ",t=0){return Te(Qr,null,e,t)}function A0(e,t){const n=Te(vr,null,e);return n.staticCount=t,n}function st(e="",t=!1){return t?(Z(),Ut(Je,null,e)):Te(Je,null,e)}function Bt(e){return e==null||typeof e=="boolean"?Te(Je):X(e)?Te(Re,null,e.slice()):qs(e)?zt(e):Te(Qr,null,String(e))}function zt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_n(e)}function Si(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(X(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Si(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Oc(t)?t._ctx=Qe:r===3&&Qe&&(Qe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else re(t)?(t={default:t,_ctx:Qe},n=32):(t=String(t),s&64?(n=16,t=[Vs(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ns(...e){const t={};for(let n=0;nYe||Qe;let Pr,Ho;{const e=jr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};Pr=t("__VUE_INSTANCE_SETTERS__",n=>Ye=n),Ho=t("__VUE_SSR_SETTERS__",n=>$s=n)}const tr=e=>{const t=Ye;return Pr(e),e.scope.on(),()=>{e.scope.off(),Pr(t)}},oa=()=>{Ye&&Ye.scope.off(),Pr(null)};function jc(e){return e.vnode.shapeFlag&4}let $s=!1;function Id(e,t=!1,n=!1){t&&Ho(t);const{props:s,children:r}=e.vnode,o=jc(e);gd(e,s,o,t),wd(e,r,n||t);const i=o?Ld(e,t):void 0;return t&&Ho(!1),i}function Ld(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Zf);const{setup:s}=n;if(s){Xt();const r=e.setupContext=s.length>1?Hc(e):null,o=tr(e),i=er(s,e,0,[e.props,r]),a=Ol(i);if(Zt(),o(),(a||e.sp)&&!es(e)&&pc(e),a){if(i.then(oa,oa),t)return i.then(l=>{ia(e,l)}).catch(l=>{qr(l,e,0)});e.asyncDep=i}else ia(e,i)}else Uc(e)}function ia(e,t,n){re(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:_e(t)&&(e.setupState=ec(t)),Uc(e)}function Uc(e,t,n){const s=e.type;e.render||(e.render=s.render||Ht);{const r=tr(e);Xt();try{nd(e)}finally{Zt(),r()}}}const Fd={get(e,t){return Ge(e,"get",""),e[t]}};function Hc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Fd),slots:e.slots,emit:e.emit,expose:t}}function Wr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ec(yi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ps)return Ps[n](e)},has(t,n){return n in t||n in Ps}})):e.proxy}function Md(e,t=!0){return re(e)?e.displayName||e.name:e.name||t&&e.__name}function kd(e){return re(e)&&"__vccOpts"in e}const me=(e,t)=>Cf(e,t,$s);function Ci(e,t,n){try{Tr(-1);const s=arguments.length;return s===2?_e(t)&&!X(t)?qs(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&qs(n)&&(n=[n]),Te(e,t,n))}finally{Tr(1)}}const Bd="3.5.34";/** -* @vue/runtime-dom v3.5.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let qo;const aa=typeof window<"u"&&window.trustedTypes;if(aa)try{qo=aa.createPolicy("vue",{createHTML:e=>e})}catch{}const qc=qo?e=>qo.createHTML(e):e=>e,jd="http://www.w3.org/2000/svg",Ud="http://www.w3.org/1998/Math/MathML",Qt=typeof document<"u"?document:null,la=Qt&&Qt.createElement("template"),Hd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Qt.createElementNS(jd,e):t==="mathml"?Qt.createElementNS(Ud,e):n?Qt.createElement(e,{is:n}):Qt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Qt.createTextNode(e),createComment:e=>Qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{la.innerHTML=qc(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const a=la.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rn="transition",bs="animation",Ks=Symbol("_vtc"),Vc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},qd=He({},cc,Vc),Vd=e=>(e.displayName="Transition",e.props=qd,e),$d=Vd((e,{slots:t})=>Ci(Hf,Kd(e),t)),Cn=(e,t=[])=>{X(e)?e.forEach(n=>n(...t)):e&&e(...t)},ca=e=>e?X(e)?e.some(t=>t.length>1):e.length>1:!1;function Kd(e){const t={};for(const j in e)j in Vc||(t[j]=e[j]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:u=i,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,x=Qd(r),g=x&&x[0],w=x&&x[1],{onBeforeEnter:S,onEnter:R,onEnterCancelled:y,onLeave:v,onLeaveCancelled:N,onBeforeAppear:$=S,onAppear:k=R,onAppearCancelled:D=y}=t,E=(j,te,ae,Se)=>{j._enterCancelled=Se,Rn(j,te?c:a),Rn(j,te?u:i),ae&&ae()},B=(j,te)=>{j._isLeaving=!1,Rn(j,f),Rn(j,p),Rn(j,h),te&&te()},z=j=>(te,ae)=>{const Se=j?k:R,le=()=>E(te,j,ae);Cn(Se,[te,le]),ua(()=>{Rn(te,j?l:o),Vt(te,j?c:a),ca(Se)||fa(te,s,g,le)})};return He(t,{onBeforeEnter(j){Cn(S,[j]),Vt(j,o),Vt(j,i)},onBeforeAppear(j){Cn($,[j]),Vt(j,l),Vt(j,u)},onEnter:z(!1),onAppear:z(!0),onLeave(j,te){j._isLeaving=!0;const ae=()=>B(j,te);Vt(j,f),j._enterCancelled?(Vt(j,h),pa(j)):(pa(j),Vt(j,h)),ua(()=>{j._isLeaving&&(Rn(j,f),Vt(j,p),ca(v)||fa(j,s,w,ae))}),Cn(v,[j,ae])},onEnterCancelled(j){E(j,!1,void 0,!0),Cn(y,[j])},onAppearCancelled(j){E(j,!0,void 0,!0),Cn(D,[j])},onLeaveCancelled(j){B(j),Cn(N,[j])}})}function Qd(e){if(e==null)return null;if(_e(e))return[yo(e.enter),yo(e.leave)];{const t=yo(e);return[t,t]}}function yo(e){return Vu(e)}function Vt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ks]||(e[Ks]=new Set)).add(t)}function Rn(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Ks];n&&(n.delete(t),n.size||(e[Ks]=void 0))}function ua(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zd=0;function fa(e,t,n,s){const r=e._endId=++zd,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=Wd(e,t);if(!i)return s();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,h),o()},h=p=>{p.target===e&&++c>=l&&f()};setTimeout(()=>{c(n[x]||"").split(", "),r=s(`${rn}Delay`),o=s(`${rn}Duration`),i=da(r,o),a=s(`${bs}Delay`),l=s(`${bs}Duration`),u=da(a,l);let c=null,f=0,h=0;t===rn?i>0&&(c=rn,f=i,h=o.length):t===bs?u>0&&(c=bs,f=u,h=l.length):(f=Math.max(i,u),c=f>0?i>u?rn:bs:null,h=c?c===rn?o.length:l.length:0);const p=c===rn&&/\b(?:transform|all)(?:,|$)/.test(s(`${rn}Property`).toString());return{type:c,timeout:f,propCount:h,hasTransform:p}}function da(e,t){for(;e.lengthha(n)+ha(e[s])))}function ha(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function pa(e){return(e?e.ownerDocument:document).body.offsetHeight}function Gd(e,t,n){const s=e[Ks];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),$c=Symbol("_vsh"),O0={name:"show",beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ws(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),ws(e,!0),s.enter(e)):s.leave(e,()=>{ws(e,!1)}):ws(e,t))},beforeUnmount(e,{value:t}){ws(e,t)}};function ws(e,t){e.style.display=t?e[Dr]:"none",e[$c]=!t}const Jd=Symbol(""),Yd=/(?:^|;)\s*display\s*:/;function Xd(e,t,n){const s=e.style,r=Ae(n);let o=!1;if(n&&!r){if(t)if(Ae(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Cs(s,a,"")}else for(const i in t)n[i]==null&&Cs(s,i,"");for(const i in n){i==="display"&&(o=!0);const a=n[i];a!=null?eh(e,i,!Ae(t)&&t?t[i]:void 0,a)||Cs(s,i,a):Cs(s,i,"")}}else if(r){if(t!==n){const i=s[Jd];i&&(n+=";"+i),s.cssText=n,o=Yd.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=o?s.display:"",e[$c]&&(s.display="none"))}const ma=/\s*!important$/;function Cs(e,t,n){if(X(n))n.forEach(s=>Cs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Zd(e,t);ma.test(n)?e.setProperty(xn(s),n.replace(ma,""),"important"):e[s]=n}}const ga=["Webkit","Moz","ms"],vo={};function Zd(e,t){const n=vo[t];if(n)return n;let s=it(t);if(s!=="filter"&&s in e)return vo[t]=s;s=Br(s);for(let r=0;rbo||(rh.then(()=>bo=0),bo=Date.now());function ih(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ot(ah(s,n.value),t,5,[s])};return n.value=e,n.attached=oh(),n}function ah(e,t){if(X(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const xa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,lh=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?Gd(e,s,i):t==="style"?Xd(e,n,s):Lr(t)?Fr(t)||nh(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ch(e,t,s,i))?(ba(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&va(e,t,s,i,o,t!=="value")):e._isVueCE&&(uh(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ae(s)))?ba(e,it(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),va(e,t,s,i))};function ch(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&xa(t)&&re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return xa(t)&&Ae(n)?!1:t in e}function uh(e,t){const n=e._def.props;if(!n)return!1;const s=it(t);return Array.isArray(n)?n.some(r=>it(r)===s):Object.keys(n).some(r=>it(r)===s)}const Ea=e=>{const t=e.props["onUpdate:modelValue"]||!1;return X(t)?n=>gr(t,n):t};function fh(e){e.target.composing=!0}function Sa(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const wo=Symbol("_assign");function Ca(e,t,n){return t&&(e=e.trim()),n&&(e=ci(e)),e}const dh={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[wo]=Ea(r);const o=s||r.props&&r.props.type==="number";Wn(e,t?"change":"input",i=>{i.target.composing||e[wo](Ca(e.value,n,o))}),(n||o)&&Wn(e,"change",()=>{e.value=Ca(e.value,n,o)}),t||(Wn(e,"compositionstart",fh),Wn(e,"compositionend",Sa),Wn(e,"change",Sa))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[wo]=Ea(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?ci(e.value):e.value,l=t??"";if(a===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===l)||(e.value=l)}},hh=["ctrl","shift","alt","meta"],ph={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>hh.some(n=>e[`${n}Key`]&&!t.includes(n))},Ra=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=xn(r.key);if(t.some(i=>i===o||mh[i]===o))return e(r)})},gh=He({patchProp:lh},Hd);let Oa;function yh(){return Oa||(Oa=xd(gh))}const vh=(...e)=>{const t=yh().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=wh(s);if(!r)return;const o=t._component;!re(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,bh(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function bh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wh(e){return Ae(e)?document.querySelector(e):e}/*! - * pinia v2.3.1 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let Kc;const Gr=e=>Kc=e,Qc=Symbol();function Vo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Is;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Is||(Is={}));function _h(){const e=Ml(!0),t=e.run(()=>fe({}));let n=[],s=[];const r=yi({install(o){Gr(r),r._a=o,o.provide(Qc,r),o.config.globalProperties.$pinia=r,s.forEach(i=>n.push(i)),s=[]},use(o){return this._a?n.push(o):s.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const zc=()=>{};function Ta(e,t,n,s=zc){e.push(t);const r=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),s())};return!n&&kl()&&Yu(r),r}function Kn(e,...t){e.slice().forEach(n=>{n(...t)})}const xh=e=>e(),Pa=Symbol(),_o=Symbol();function $o(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];Vo(r)&&Vo(s)&&e.hasOwnProperty(n)&&!Pe(s)&&!Yt(s)?e[n]=$o(r,s):e[n]=s}return e}const Eh=Symbol();function Sh(e){return!Vo(e)||!e.hasOwnProperty(Eh)}const{assign:ln}=Object;function Ch(e){return!!(Pe(e)&&e.effect)}function Rh(e,t,n,s){const{state:r,actions:o,getters:i}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=r?r():{});const c=_f(n.state.value[e]);return ln(c,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=yi(me(()=>{Gr(n);const p=n._s.get(e);return i[h].call(p,p)})),f),{}))}return l=Wc(e,u,t,n,s,!0),l}function Wc(e,t,n={},s,r,o){let i;const a=ln({actions:{}},n),l={deep:!0};let u,c,f=[],h=[],p;const x=s.state.value[e];!o&&!x&&(s.state.value[e]={});let g;function w(D){let E;u=c=!1,typeof D=="function"?(D(s.state.value[e]),E={type:Is.patchFunction,storeId:e,events:p}):($o(s.state.value[e],D),E={type:Is.patchObject,payload:D,storeId:e,events:p});const B=g=Symbol();Hn().then(()=>{g===B&&(u=!0)}),c=!0,Kn(f,E,s.state.value[e])}const S=o?function(){const{state:E}=n,B=E?E():{};this.$patch(z=>{ln(z,B)})}:zc;function R(){i.stop(),f=[],h=[],s._s.delete(e)}const y=(D,E="")=>{if(Pa in D)return D[_o]=E,D;const B=function(){Gr(s);const z=Array.from(arguments),j=[],te=[];function ae(Y){j.push(Y)}function Se(Y){te.push(Y)}Kn(h,{args:z,name:B[_o],store:N,after:ae,onError:Se});let le;try{le=D.apply(this&&this.$id===e?this:N,z)}catch(Y){throw Kn(te,Y),Y}return le instanceof Promise?le.then(Y=>(Kn(j,Y),Y)).catch(Y=>(Kn(te,Y),Promise.reject(Y))):(Kn(j,le),le)};return B[Pa]=!0,B[_o]=E,B},v={_p:s,$id:e,$onAction:Ta.bind(null,h),$patch:w,$reset:S,$subscribe(D,E={}){const B=Ta(f,D,E.detached,()=>z()),z=i.run(()=>wn(()=>s.state.value[e],j=>{(E.flush==="sync"?c:u)&&D({storeId:e,type:Is.direct,events:p},j)},ln({},l,E)));return B},$dispose:R},N=Zs(v);s._s.set(e,N);const k=(s._a&&s._a.runWithContext||xh)(()=>s._e.run(()=>(i=Ml()).run(()=>t({action:y}))));for(const D in k){const E=k[D];if(Pe(E)&&!Ch(E)||Yt(E))o||(x&&Sh(E)&&(Pe(E)?E.value=x[D]:$o(E,x[D])),s.state.value[e][D]=E);else if(typeof E=="function"){const B=y(E,D);k[D]=B,a.actions[D]=E}}return ln(N,k),ln(ge(N),k),Object.defineProperty(N,"$state",{get:()=>s.state.value[e],set:D=>{w(E=>{ln(E,D)})}}),s._p.forEach(D=>{ln(N,i.run(()=>D({store:N,app:s._a,pinia:s,options:a})))}),x&&o&&n.hydrate&&n.hydrate(N.$state,x),u=!0,c=!0,N}/*! #__NO_SIDE_EFFECTS__ */function Ah(e,t,n){let s,r;const o=typeof t=="function";typeof e=="string"?(s=e,r=o?n:t):(r=e,s=e.id);function i(a,l){const u=Nf();return a=a||(u?xt(Qc,null):null),a&&Gr(a),a=Kc,a._s.has(s)||(o?Wc(s,t,r,a):Rh(s,r,a)),a._s.get(s)}return i.$id=s,i}var Jr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Nn,hn,ns,yl,Oh=(yl=class extends Jr{constructor(){super();he(this,Nn);he(this,hn);he(this,ns);ne(this,ns,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){O(this,hn)||this.setEventListener(O(this,ns))}onUnsubscribe(){var t;this.hasListeners()||((t=O(this,hn))==null||t.call(this),ne(this,hn,void 0))}setEventListener(t){var n;ne(this,ns,t),(n=O(this,hn))==null||n.call(this),ne(this,hn,t(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(t){O(this,Nn)!==t&&(ne(this,Nn,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof O(this,Nn)=="boolean"?O(this,Nn):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Nn=new WeakMap,hn=new WeakMap,ns=new WeakMap,yl),Gc=new Oh,Th={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},pn,ii,vl,Ph=(vl=class{constructor(){he(this,pn,Th);he(this,ii,!1)}setTimeoutProvider(e){ne(this,pn,e)}setTimeout(e,t){return O(this,pn).setTimeout(e,t)}clearTimeout(e){O(this,pn).clearTimeout(e)}setInterval(e,t){return O(this,pn).setInterval(e,t)}clearInterval(e){O(this,pn).clearInterval(e)}},pn=new WeakMap,ii=new WeakMap,vl),Ko=new Ph;function Dh(e){setTimeout(e,0)}var Jc=typeof window>"u"||"Deno"in globalThis;function Et(){}function Nh(e,t){return typeof e=="function"?e(t):e}function Ih(e){return typeof e=="number"&&e>=0&&e!==1/0}function Lh(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Qo(e,t){return typeof e=="function"?e(t):e}function Fh(e,t){return typeof e=="function"?e(t):e}function Da(e,t){const{type:n="all",exact:s,fetchStatus:r,predicate:o,queryKey:i,stale:a}=e;if(i){if(s){if(t.queryHash!==Ri(i,t.options))return!1}else if(!zs(t.queryKey,i))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||r&&r!==t.state.fetchStatus||o&&!o(t))}function Na(e,t){const{exact:n,status:s,predicate:r,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(Qs(t.options.mutationKey)!==Qs(o))return!1}else if(!zs(t.options.mutationKey,o))return!1}return!(s&&t.state.status!==s||r&&!r(t))}function Ri(e,t){return((t==null?void 0:t.queryKeyHashFn)||Qs)(e)}function Qs(e){return JSON.stringify(e,(t,n)=>zo(n)?Object.keys(n).sort().reduce((s,r)=>(s[r]=n[r],s),{}):n)}function zs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>zs(e[n],t[n])):!1}var Mh=Object.prototype.hasOwnProperty;function Yc(e,t,n=0){if(e===t)return e;if(n>500)return t;const s=Ia(e)&&Ia(t);if(!s&&!(zo(e)&&zo(t)))return t;const o=(s?e:Object.keys(e)).length,i=s?t:Object.keys(t),a=i.length,l=s?new Array(a):{};let u=0;for(let c=0;c{Ko.setTimeout(t,e)})}function Bh(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Yc(e,t):t}function jh(e,t,n=0){const s=[...e,t];return n&&s.length>n?s.slice(1):s}function Uh(e,t,n=0){const s=[t,...e];return n&&s.length>n?s.slice(0,-1):s}var Ai=Symbol();function Xc(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Ai?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Hh(e,t,n){let s=!1,r;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(r??(r=t()),s||(s=!0,r.aborted?n():r.addEventListener("abort",n,{once:!0})),r)}),e}var Zc=(()=>{let e=()=>Jc;return{isServer(){return e()},setIsServer(t){e=t}}})();function qh(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});n.status="pending",n.catch(()=>{});function s(r){Object.assign(n,r),delete n.resolve,delete n.reject}return n.resolve=r=>{s({status:"fulfilled",value:r}),e(r)},n.reject=r=>{s({status:"rejected",reason:r}),t(r)},n}var Vh=Dh;function $h(){let e=[],t=0,n=a=>{a()},s=a=>{a()},r=Vh;const o=a=>{t?e.push(a):r(()=>{n(a)})},i=()=>{const a=e;e=[],a.length&&r(()=>{s(()=>{a.forEach(l=>{n(l)})})})};return{batch:a=>{let l;t++;try{l=a()}finally{t--,t||i()}return l},batchCalls:a=>(...l)=>{o(()=>{a(...l)})},schedule:o,setNotifyFunction:a=>{n=a},setBatchNotifyFunction:a=>{s=a},setScheduler:a=>{r=a}}}var ot=$h(),ss,mn,rs,bl,Kh=(bl=class extends Jr{constructor(){super();he(this,ss,!0);he(this,mn);he(this,rs);ne(this,rs,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",s)}}})}onSubscribe(){O(this,mn)||this.setEventListener(O(this,rs))}onUnsubscribe(){var t;this.hasListeners()||((t=O(this,mn))==null||t.call(this),ne(this,mn,void 0))}setEventListener(t){var n;ne(this,rs,t),(n=O(this,mn))==null||n.call(this),ne(this,mn,t(this.setOnline.bind(this)))}setOnline(t){O(this,ss)!==t&&(ne(this,ss,t),this.listeners.forEach(s=>{s(t)}))}isOnline(){return O(this,ss)}},ss=new WeakMap,mn=new WeakMap,rs=new WeakMap,bl),Nr=new Kh;function Qh(e){return Math.min(1e3*2**e,3e4)}function eu(e){return(e??"online")==="online"?Nr.isOnline():!0}var Wo=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function tu(e){let t=!1,n=0,s;const r=qh(),o=()=>r.status!=="pending",i=g=>{var w;if(!o()){const S=new Wo(g);h(S),(w=e.onCancel)==null||w.call(e,S)}},a=()=>{t=!0},l=()=>{t=!1},u=()=>Gc.isFocused()&&(e.networkMode==="always"||Nr.isOnline())&&e.canRun(),c=()=>eu(e.networkMode)&&e.canRun(),f=g=>{o()||(s==null||s(),r.resolve(g))},h=g=>{o()||(s==null||s(),r.reject(g))},p=()=>new Promise(g=>{var w;s=S=>{(o()||u())&&g(S)},(w=e.onPause)==null||w.call(e)}).then(()=>{var g;s=void 0,o()||(g=e.onContinue)==null||g.call(e)}),x=()=>{if(o())return;let g;const w=n===0?e.initialPromise:void 0;try{g=w??e.fn()}catch(S){g=Promise.reject(S)}Promise.resolve(g).then(f).catch(S=>{var $;if(o())return;const R=e.retry??(Zc.isServer()?0:3),y=e.retryDelay??Qh,v=typeof y=="function"?y(n,S):y,N=R===!0||typeof R=="number"&&nu()?void 0:p()).then(()=>{t?h(S):x()})})};return{promise:r,status:()=>r.status,cancel:i,continue:()=>(s==null||s(),r),cancelRetry:a,continueRetry:l,canStart:c,start:()=>(c()?x():p().then(x),r)}}var In,wl,nu=(wl=class{constructor(){he(this,In)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ih(this.gcTime)&&ne(this,In,Ko.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zc.isServer()?1/0:5*60*1e3))}clearGcTimeout(){O(this,In)!==void 0&&(Ko.clearTimeout(O(this,In)),ne(this,In,void 0))}},In=new WeakMap,wl);function zh(e){return{onFetch:(t,n)=>{var c,f,h,p,x;const s=t.options,r=(h=(f=(c=t.fetchOptions)==null?void 0:c.meta)==null?void 0:f.fetchMore)==null?void 0:h.direction,o=((p=t.state.data)==null?void 0:p.pages)||[],i=((x=t.state.data)==null?void 0:x.pageParams)||[];let a={pages:[],pageParams:[]},l=0;const u=async()=>{let g=!1;const w=y=>{Hh(y,()=>t.signal,()=>g=!0)},S=Xc(t.options,t.fetchOptions),R=async(y,v,N)=>{if(g)return Promise.reject(t.signal.reason);if(v==null&&y.pages.length)return Promise.resolve(y);const k=(()=>{const z={client:t.client,queryKey:t.queryKey,pageParam:v,direction:N?"backward":"forward",meta:t.options.meta};return w(z),z})(),D=await S(k),{maxPages:E}=t.options,B=N?Uh:jh;return{pages:B(y.pages,D,E),pageParams:B(y.pageParams,v,E)}};if(r&&o.length){const y=r==="backward",v=y?Wh:Fa,N={pages:o,pageParams:i},$=v(s,N);a=await R(N,$,y)}else{const y=e??o.length;do{const v=l===0?i[0]??s.initialPageParam:Fa(s,a);if(l>0&&v==null)break;a=await R(a,v),l++}while(l{var g,w;return(w=(g=t.options).persister)==null?void 0:w.call(g,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function Fa(e,{pages:t,pageParams:n}){const s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,n[s],n):void 0}function Wh(e,{pages:t,pageParams:n}){var s;return t.length>0?(s=e.getPreviousPageParam)==null?void 0:s.call(e,t[0],t,n[0],n):void 0}var os,Ln,is,wt,Fn,qe,Gs,Mn,ht,su,Kt,_l,Gh=(_l=class extends nu{constructor(t){super();he(this,ht);he(this,os);he(this,Ln);he(this,is);he(this,wt);he(this,Fn);he(this,qe);he(this,Gs);he(this,Mn);ne(this,Mn,!1),ne(this,Gs,t.defaultOptions),this.setOptions(t.options),this.observers=[],ne(this,Fn,t.client),ne(this,wt,O(this,Fn).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,ne(this,Ln,ka(this.options)),this.state=t.state??O(this,Ln),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return O(this,os)}get promise(){var t;return(t=O(this,qe))==null?void 0:t.promise}setOptions(t){if(this.options={...O(this,Gs),...t},t!=null&&t._type&&ne(this,os,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=ka(this.options);n.data!==void 0&&(this.setState(Ma(n.data,n.dataUpdatedAt)),ne(this,Ln,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&O(this,wt).remove(this)}setData(t,n){const s=Bh(this.state.data,t,this.options);return $e(this,ht,Kt).call(this,{data:s,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),s}setState(t){$e(this,ht,Kt).call(this,{type:"setState",state:t})}cancel(t){var s,r;const n=(s=O(this,qe))==null?void 0:s.promise;return(r=O(this,qe))==null||r.cancel(t),n?n.then(Et).catch(Et):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return O(this,Ln)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Fh(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ai||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Qo(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Lh(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(s=>s.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=O(this,qe))==null||n.continue()}onOnline(){var n;const t=this.observers.find(s=>s.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=O(this,qe))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),O(this,wt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(O(this,qe)&&(O(this,Mn)||$e(this,ht,su).call(this)?O(this,qe).cancel({revert:!0}):O(this,qe).cancelRetry()),this.scheduleGc()),O(this,wt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||$e(this,ht,Kt).call(this,{type:"invalidate"})}async fetch(t,n){var u,c,f,h,p,x,g,w,S,R,y;if(this.state.fetchStatus!=="idle"&&((u=O(this,qe))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(O(this,qe))return O(this,qe).continueRetry(),O(this,qe).promise}if(t&&this.setOptions(t),!this.options.queryFn){const v=this.observers.find(N=>N.options.queryFn);v&&this.setOptions(v.options)}const s=new AbortController,r=v=>{Object.defineProperty(v,"signal",{enumerable:!0,get:()=>(ne(this,Mn,!0),s.signal)})},o=()=>{const v=Xc(this.options,n),$=(()=>{const k={client:O(this,Fn),queryKey:this.queryKey,meta:this.meta};return r(k),k})();return ne(this,Mn,!1),this.options.persister?this.options.persister(v,$,this):v($)},a=(()=>{const v={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:O(this,Fn),state:this.state,fetchFn:o};return r(v),v})(),l=O(this,os)==="infinite"?zh(this.options.pages):this.options.behavior;l==null||l.onFetch(a,this),ne(this,is,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((c=a.fetchOptions)==null?void 0:c.meta))&&$e(this,ht,Kt).call(this,{type:"fetch",meta:(f=a.fetchOptions)==null?void 0:f.meta}),ne(this,qe,tu({initialPromise:n==null?void 0:n.initialPromise,fn:a.fetchFn,onCancel:v=>{v instanceof Wo&&v.revert&&this.setState({...O(this,is),fetchStatus:"idle"}),s.abort()},onFail:(v,N)=>{$e(this,ht,Kt).call(this,{type:"failed",failureCount:v,error:N})},onPause:()=>{$e(this,ht,Kt).call(this,{type:"pause"})},onContinue:()=>{$e(this,ht,Kt).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0}));try{const v=await O(this,qe).start();if(v===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(v),(p=(h=O(this,wt).config).onSuccess)==null||p.call(h,v,this),(g=(x=O(this,wt).config).onSettled)==null||g.call(x,v,this.state.error,this),v}catch(v){if(v instanceof Wo){if(v.silent)return O(this,qe).promise;if(v.revert){if(this.state.data===void 0)throw v;return this.state.data}}throw $e(this,ht,Kt).call(this,{type:"error",error:v}),(S=(w=O(this,wt).config).onError)==null||S.call(w,v,this),(y=(R=O(this,wt).config).onSettled)==null||y.call(R,this.state.data,v,this),v}finally{this.scheduleGc()}}},os=new WeakMap,Ln=new WeakMap,is=new WeakMap,wt=new WeakMap,Fn=new WeakMap,qe=new WeakMap,Gs=new WeakMap,Mn=new WeakMap,ht=new WeakSet,su=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Kt=function(t){const n=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...Jh(s.data,this.options),fetchMeta:t.meta??null};case"success":const r={...s,...Ma(t.data,t.dataUpdatedAt),dataUpdateCount:s.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return ne(this,is,t.manual?r:void 0),r;case"error":const o=t.error;return{...s,error:o,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=n(this.state),ot.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),O(this,wt).notify({query:this,type:"updated",action:t})})},_l);function Jh(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:eu(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Ma(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function ka(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,s=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Js,Lt,We,kn,Ft,cn,xl,Yh=(xl=class extends nu{constructor(t){super();he(this,Ft);he(this,Js);he(this,Lt);he(this,We);he(this,kn);ne(this,Js,t.client),this.mutationId=t.mutationId,ne(this,We,t.mutationCache),ne(this,Lt,[]),this.state=t.state||Xh(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){O(this,Lt).includes(t)||(O(this,Lt).push(t),this.clearGcTimeout(),O(this,We).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){ne(this,Lt,O(this,Lt).filter(n=>n!==t)),this.scheduleGc(),O(this,We).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){O(this,Lt).length||(this.state.status==="pending"?this.scheduleGc():O(this,We).remove(this))}continue(){var t;return((t=O(this,kn))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,a,l,u,c,f,h,p,x,g,w,S,R,y,v,N,$,k;const n=()=>{$e(this,Ft,cn).call(this,{type:"continue"})},s={client:O(this,Js),meta:this.options.meta,mutationKey:this.options.mutationKey};ne(this,kn,tu({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(D,E)=>{$e(this,Ft,cn).call(this,{type:"failed",failureCount:D,error:E})},onPause:()=>{$e(this,Ft,cn).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>O(this,We).canRun(this)}));const r=this.state.status==="pending",o=!O(this,kn).canStart();try{if(r)n();else{$e(this,Ft,cn).call(this,{type:"pending",variables:t,isPaused:o}),O(this,We).config.onMutate&&await O(this,We).config.onMutate(t,this,s);const E=await((a=(i=this.options).onMutate)==null?void 0:a.call(i,t,s));E!==this.state.context&&$e(this,Ft,cn).call(this,{type:"pending",context:E,variables:t,isPaused:o})}const D=await O(this,kn).start();return await((u=(l=O(this,We).config).onSuccess)==null?void 0:u.call(l,D,t,this.state.context,this,s)),await((f=(c=this.options).onSuccess)==null?void 0:f.call(c,D,t,this.state.context,s)),await((p=(h=O(this,We).config).onSettled)==null?void 0:p.call(h,D,null,this.state.variables,this.state.context,this,s)),await((g=(x=this.options).onSettled)==null?void 0:g.call(x,D,null,t,this.state.context,s)),$e(this,Ft,cn).call(this,{type:"success",data:D}),D}catch(D){try{await((S=(w=O(this,We).config).onError)==null?void 0:S.call(w,D,t,this.state.context,this,s))}catch(E){Promise.reject(E)}try{await((y=(R=this.options).onError)==null?void 0:y.call(R,D,t,this.state.context,s))}catch(E){Promise.reject(E)}try{await((N=(v=O(this,We).config).onSettled)==null?void 0:N.call(v,void 0,D,this.state.variables,this.state.context,this,s))}catch(E){Promise.reject(E)}try{await((k=($=this.options).onSettled)==null?void 0:k.call($,void 0,D,t,this.state.context,s))}catch(E){Promise.reject(E)}throw $e(this,Ft,cn).call(this,{type:"error",error:D}),D}finally{O(this,We).runNext(this)}}},Js=new WeakMap,Lt=new WeakMap,We=new WeakMap,kn=new WeakMap,Ft=new WeakSet,cn=function(t){const n=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),ot.batch(()=>{O(this,Lt).forEach(s=>{s.onMutationUpdate(t)}),O(this,We).notify({mutation:this,type:"updated",action:t})})},xl);function Xh(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Wt,St,Ys,El,ru=(El=class extends Jr{constructor(n={}){super();he(this,Wt);he(this,St);he(this,Ys);this.config=n,ne(this,Wt,new Set),ne(this,St,new Map),ne(this,Ys,0)}build(n,s,r){const o=new Yh({client:n,mutationCache:this,mutationId:++lr(this,Ys)._,options:n.defaultMutationOptions(s),state:r});return this.add(o),o}add(n){O(this,Wt).add(n);const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s);r?r.push(n):O(this,St).set(s,[n])}this.notify({type:"added",mutation:n})}remove(n){if(O(this,Wt).delete(n)){const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s);if(r)if(r.length>1){const o=r.indexOf(n);o!==-1&&r.splice(o,1)}else r[0]===n&&O(this,St).delete(s)}}this.notify({type:"removed",mutation:n})}canRun(n){const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s),o=r==null?void 0:r.find(i=>i.state.status==="pending");return!o||o===n}else return!0}runNext(n){var r;const s=hr(n);if(typeof s=="string"){const o=(r=O(this,St).get(s))==null?void 0:r.find(i=>i!==n&&i.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){ot.batch(()=>{O(this,Wt).forEach(n=>{this.notify({type:"removed",mutation:n})}),O(this,Wt).clear(),O(this,St).clear()})}getAll(){return Array.from(O(this,Wt))}find(n){const s={exact:!0,...n};return this.getAll().find(r=>Na(s,r))}findAll(n={}){return this.getAll().filter(s=>Na(n,s))}notify(n){ot.batch(()=>{this.listeners.forEach(s=>{s(n)})})}resumePausedMutations(){const n=this.getAll().filter(s=>s.state.isPaused);return ot.batch(()=>Promise.all(n.map(s=>s.continue().catch(Et))))}},Wt=new WeakMap,St=new WeakMap,Ys=new WeakMap,El);function hr(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Mt,Sl,ou=(Sl=class extends Jr{constructor(n={}){super();he(this,Mt);this.config=n,ne(this,Mt,new Map)}build(n,s,r){const o=s.queryKey,i=s.queryHash??Ri(o,s);let a=this.get(i);return a||(a=new Gh({client:n,queryKey:o,queryHash:i,options:n.defaultQueryOptions(s),state:r,defaultOptions:n.getQueryDefaults(o)}),this.add(a)),a}add(n){O(this,Mt).has(n.queryHash)||(O(this,Mt).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const s=O(this,Mt).get(n.queryHash);s&&(n.destroy(),s===n&&O(this,Mt).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){ot.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return O(this,Mt).get(n)}getAll(){return[...O(this,Mt).values()]}find(n){const s={exact:!0,...n};return this.getAll().find(r=>Da(s,r))}findAll(n={}){const s=this.getAll();return Object.keys(n).length>0?s.filter(r=>Da(n,r)):s}notify(n){ot.batch(()=>{this.listeners.forEach(s=>{s(n)})})}onFocus(){ot.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){ot.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},Mt=new WeakMap,Sl),Ne,gn,yn,as,ls,vn,cs,us,Cl,Zh=(Cl=class{constructor(t={}){he(this,Ne);he(this,gn);he(this,yn);he(this,as);he(this,ls);he(this,vn);he(this,cs);he(this,us);ne(this,Ne,t.queryCache||new ou),ne(this,gn,t.mutationCache||new ru),ne(this,yn,t.defaultOptions||{}),ne(this,as,new Map),ne(this,ls,new Map),ne(this,vn,0)}mount(){lr(this,vn)._++,O(this,vn)===1&&(ne(this,cs,Gc.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ne).onFocus())})),ne(this,us,Nr.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ne).onOnline())})))}unmount(){var t,n;lr(this,vn)._--,O(this,vn)===0&&((t=O(this,cs))==null||t.call(this),ne(this,cs,void 0),(n=O(this,us))==null||n.call(this),ne(this,us,void 0))}isFetching(t){return O(this,Ne).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return O(this,gn).findAll({...t,status:"pending"}).length}getQueryData(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=O(this,Ne).get(n.queryHash))==null?void 0:s.state.data}ensureQueryData(t){const n=this.defaultQueryOptions(t),s=O(this,Ne).build(this,n),r=s.state.data;return r===void 0?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime(Qo(n.staleTime,s))&&this.prefetchQuery(n),Promise.resolve(r))}getQueriesData(t){return O(this,Ne).findAll(t).map(({queryKey:n,state:s})=>{const r=s.data;return[n,r]})}setQueryData(t,n,s){const r=this.defaultQueryOptions({queryKey:t}),o=O(this,Ne).get(r.queryHash),i=o==null?void 0:o.state.data,a=Nh(n,i);if(a!==void 0)return O(this,Ne).build(this,r).setData(a,{...s,manual:!0})}setQueriesData(t,n,s){return ot.batch(()=>O(this,Ne).findAll(t).map(({queryKey:r})=>[r,this.setQueryData(r,n,s)]))}getQueryState(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=O(this,Ne).get(n.queryHash))==null?void 0:s.state}removeQueries(t){const n=O(this,Ne);ot.batch(()=>{n.findAll(t).forEach(s=>{n.remove(s)})})}resetQueries(t,n){const s=O(this,Ne);return ot.batch(()=>(s.findAll(t).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...t},n)))}cancelQueries(t,n={}){const s={revert:!0,...n},r=ot.batch(()=>O(this,Ne).findAll(t).map(o=>o.cancel(s)));return Promise.all(r).then(Et).catch(Et)}invalidateQueries(t,n={}){return ot.batch(()=>(O(this,Ne).findAll(t).forEach(s=>{s.invalidate()}),(t==null?void 0:t.refetchType)==="none"?Promise.resolve():this.refetchQueries({...t,type:(t==null?void 0:t.refetchType)??(t==null?void 0:t.type)??"active"},n)))}refetchQueries(t,n={}){const s={...n,cancelRefetch:n.cancelRefetch??!0},r=ot.batch(()=>O(this,Ne).findAll(t).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let i=o.fetch(void 0,s);return s.throwOnError||(i=i.catch(Et)),o.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(r).then(Et)}fetchQuery(t){const n=this.defaultQueryOptions(t);n.retry===void 0&&(n.retry=!1);const s=O(this,Ne).build(this,n);return s.isStaleByTime(Qo(n.staleTime,s))?s.fetch(n):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(Et).catch(Et)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(Et).catch(Et)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return Nr.isOnline()?O(this,gn).resumePausedMutations():Promise.resolve()}getQueryCache(){return O(this,Ne)}getMutationCache(){return O(this,gn)}getDefaultOptions(){return O(this,yn)}setDefaultOptions(t){ne(this,yn,t)}setQueryDefaults(t,n){O(this,as).set(Qs(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...O(this,as).values()],s={};return n.forEach(r=>{zs(t,r.queryKey)&&Object.assign(s,r.defaultOptions)}),s}setMutationDefaults(t,n){O(this,ls).set(Qs(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...O(this,ls).values()],s={};return n.forEach(r=>{zs(t,r.mutationKey)&&Object.assign(s,r.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;const n={...O(this,yn).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||(n.queryHash=Ri(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.queryFn===Ai&&(n.enabled=!1),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...O(this,yn).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){O(this,Ne).clear(),O(this,gn).clear()}},Ne=new WeakMap,gn=new WeakMap,yn=new WeakMap,as=new WeakMap,ls=new WeakMap,vn=new WeakMap,cs=new WeakMap,us=new WeakMap,Cl),ep="VUE_QUERY_CLIENT";function tp(e){const t=e?`:${e}`:"";return`${ep}${t}`}function Go(e,t,n="",s=0){if(t){const r=t(e,n,s);if(r===void 0&&Pe(e)||r!==void 0)return r}if(Array.isArray(e))return e.map((r,o)=>Go(r,t,String(o),s+1));if(typeof e=="object"&&sp(e)){const r=Object.entries(e).map(([o,i])=>[o,Go(i,t,o,s+1)]);return Object.fromEntries(r)}return e}function np(e,t){return Go(e,t)}function de(e,t=!1){return np(e,(n,s,r)=>{if(r===1&&s==="queryKey")return de(n,!0);if(t&&rp(n))return de(n(),t);if(Pe(n))return de(Ke(n),t)})}function sp(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function rp(e){return typeof e=="function"}var op=class extends ou{find(e){return super.find(de(e))}findAll(e={}){return super.findAll(de(e))}},ip=class extends ru{find(e){return super.find(de(e))}findAll(e={}){return super.findAll(de(e))}},ap=class extends Zh{constructor(e={}){const t={defaultOptions:e.defaultOptions,queryCache:e.queryCache||new op,mutationCache:e.mutationCache||new ip};super(t),this.isRestoring=fe(!1)}isFetching(e={}){return super.isFetching(de(e))}isMutating(e={}){return super.isMutating(de(e))}getQueryData(e){return super.getQueryData(de(e))}ensureQueryData(e){return super.ensureQueryData(de(e))}getQueriesData(e){return super.getQueriesData(de(e))}setQueryData(e,t,n={}){return super.setQueryData(de(e),t,de(n))}setQueriesData(e,t,n={}){return super.setQueriesData(de(e),t,de(n))}getQueryState(e){return super.getQueryState(de(e))}removeQueries(e={}){return super.removeQueries(de(e))}resetQueries(e={},t={}){return super.resetQueries(de(e),de(t))}cancelQueries(e={},t={}){return super.cancelQueries(de(e),de(t))}invalidateQueries(e={},t={}){const n=de(e),s=de(t);if(super.invalidateQueries({...n,refetchType:"none"},s),n.refetchType==="none")return Promise.resolve();const r={...n,type:n.refetchType??n.type??"active"};return Hn().then(()=>super.refetchQueries(r,s))}refetchQueries(e={},t={}){return super.refetchQueries(de(e),de(t))}fetchQuery(e){return super.fetchQuery(de(e))}prefetchQuery(e){return super.prefetchQuery(de(e))}fetchInfiniteQuery(e){return super.fetchInfiniteQuery(de(e))}prefetchInfiniteQuery(e){return super.prefetchInfiniteQuery(de(e))}setDefaultOptions(e){super.setDefaultOptions(de(e))}setQueryDefaults(e,t){super.setQueryDefaults(de(e),de(t))}getQueryDefaults(e){return super.getQueryDefaults(de(e))}setMutationDefaults(e,t){super.setMutationDefaults(de(e),de(t))}getMutationDefaults(e){return super.getMutationDefaults(de(e))}},lp={install:(e,t={})=>{const n=tp(t.queryClientKey);let s;if("queryClient"in t&&t.queryClient)s=t.queryClient;else{const i="queryClientConfig"in t?t.queryClientConfig:void 0;s=new ap(i)}Jc||s.mount();let r=()=>{};if(t.clientPersister){s.isRestoring&&(s.isRestoring.value=!0);const[i,a]=t.clientPersister(s);r=i,a.then(()=>{var l;s.isRestoring&&(s.isRestoring.value=!1),(l=t.clientPersisterOnSuccess)==null||l.call(t,s)})}const o=()=>{s.unmount(),r()};if(e.onUnmount)e.onUnmount(o);else{const i=e.unmount;e.unmount=function(){o(),i()}}e.provide(n,s)}},cp=Object.defineProperty,up=(e,t,n)=>t in e?cp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ze=(e,t,n)=>up(e,typeof t!="symbol"?t+"":t,n);function fp(e){if(typeof document>"u")return;function t(){let n=document.head||document.getElementsByTagName("head")[0];if(!n)return;let s=document.createElement("style");s.type="text/css",n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}fp(":where([data-sonner-toaster][dir=ltr]),:where(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%)}:where([data-sonner-toaster][dir=rtl]),:where(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%)}:where([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}:where([data-sonner-toaster][data-lifted=true]){transform:translateY(-10px)}@media (hover:none) and (pointer:coarse){:where([data-sonner-toaster][data-lifted=true]){transform:none}}:where([data-sonner-toaster][data-x-position=right]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position=left]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position=center]){left:50%;transform:translateX(-50%)}:where([data-sonner-toaster][data-y-position=top]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position=bottom]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([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);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}:where([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}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}:where([data-sonner-toast][data-y-position=top]){top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=bottom]){bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([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)}:where([data-sonner-toast][data-promise=true]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([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;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=dark]) :where([data-cancel]){background:rgba(255,255,255,.3)}[data-sonner-toast] [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);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-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}:where([data-sonner-toast]) :where([data-disabled=true]){cursor:not-allowed}[data-sonner-toast]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=true])::before{content:'';position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=top][data-swiping=true])::before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=bottom][data-swiping=true])::before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=false][data-removed=true])::before{content:'';position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast])::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=true]){--y:translateY(0);opacity:1}:where([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)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=false][data-front=false][data-styled=true])>*{opacity:0}:where([data-sonner-toast][data-visible=false]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=true][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]){--y:translateY(calc(var(--lift) * -100%));opacity:0}:where([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}:where([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}:where([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,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:swipe-out .2s ease-out forwards}@keyframes swipe-out{from{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;--mobile-offset:16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 91%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 91%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 91%);--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-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-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--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, 100%, 12%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 12%);--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-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%)}");let Jo=0;class dp{constructor(){Ze(this,"subscribers"),Ze(this,"toasts"),Ze(this,"subscribe",t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)})),Ze(this,"publish",t=>{this.subscribers.forEach(n=>n(t))}),Ze(this,"addToast",t=>{this.publish(t),this.toasts=[...this.toasts,t]}),Ze(this,"create",t=>{var n;const{message:s,...r}=t,o=typeof t.id=="number"||t.id&&((n=t.id)==null?void 0:n.length)>0?t.id:Jo++,i=this.toasts.find(l=>l.id===o),a=t.dismissible===void 0?!0:t.dismissible;return i?this.toasts=this.toasts.map(l=>l.id===o?(this.publish({...l,...t,id:o,title:s}),{...l,...t,id:o,dismissible:a,title:s}):l):this.addToast({title:s,...r,dismissible:a,id:o}),o}),Ze(this,"dismiss",t=>(t||this.toasts.forEach(n=>{this.subscribers.forEach(s=>s({id:n.id,dismiss:!0}))}),this.subscribers.forEach(n=>n({id:t,dismiss:!0})),t)),Ze(this,"message",(t,n)=>this.create({...n,message:t,type:"default"})),Ze(this,"error",(t,n)=>this.create({...n,type:"error",message:t})),Ze(this,"success",(t,n)=>this.create({...n,type:"success",message:t})),Ze(this,"info",(t,n)=>this.create({...n,type:"info",message:t})),Ze(this,"warning",(t,n)=>this.create({...n,type:"warning",message:t})),Ze(this,"loading",(t,n)=>this.create({...n,type:"loading",message:t})),Ze(this,"promise",(t,n)=>{if(!n)return;let s;n.loading!==void 0&&(s=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const r=t instanceof Promise?t:t();let o=s!==void 0,i;const a=r.then(async u=>{if(i=["resolve",u],pp(u)&&!u.ok){o=!1;const c=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;this.create({id:s,type:"error",message:c,description:f})}else if(n.success!==void 0){o=!1;const c=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description;this.create({id:s,type:"success",message:c,description:f})}}).catch(async u=>{if(i=["reject",u],n.error!==void 0){o=!1;const c=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description;this.create({id:s,type:"error",message:c,description:f})}}).finally(()=>{var u;o&&(this.dismiss(s),s=void 0),(u=n.finally)==null||u.call(n)}),l=()=>new Promise((u,c)=>a.then(()=>i[0]==="reject"?c(i[1]):u(i[1])).catch(c));return typeof s!="string"&&typeof s!="number"?{unwrap:l}:Object.assign(s,{unwrap:l})}),Ze(this,"custom",(t,n)=>{const s=(n==null?void 0:n.id)||Jo++;return this.publish({component:t,id:s,...n}),s}),this.subscribers=[],this.toasts=[]}}const ft=new dp;function hp(e,t){const n=(t==null?void 0:t.id)||Jo++;return ft.create({message:e,id:n,type:"default",...t}),n}const pp=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",mp=hp,gp=()=>ft.toasts,N0=Object.assign(mp,{success:ft.success,info:ft.info,warning:ft.warning,error:ft.error,custom:ft.custom,message:ft.message,promise:ft.promise,dismiss:ft.dismiss,loading:ft.loading},{getHistory:gp});function pr(e){return e.label!==void 0}function yp(){const e=fe(!1);return Jn(()=>{const t=()=>{e.value=document.hidden};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)}),{isDocumentHidden:e}}const vp=["aria-live","data-rich-colors","data-styled","data-mounted","data-promise","data-removed","data-visible","data-y-position","data-x-position","data-index","data-front","data-swiping","data-dismissible","data-type","data-invert","data-swipe-out","data-expanded"],bp=["aria-label","data-disabled"],wp=4e3,_p=20,xp=200,Ep=Vn({__name:"Toast",props:{toast:{},toasts:{},index:{},expanded:{type:Boolean},invert:{type:Boolean},heights:{},gap:{},position:{},visibleToasts:{},expandByDefault:{type:Boolean},closeButton:{type:Boolean},interacting:{type:Boolean},style:{},cancelButtonStyle:{},actionButtonStyle:{},duration:{},class:{},unstyled:{type:Boolean},descriptionClass:{},loadingIcon:{},classes:{},icons:{},closeButtonAriaLabel:{},pauseWhenPageIsHidden:{type:Boolean},cn:{type:Function},defaultRichColors:{type:Boolean}},emits:["update:heights","removeToast"],setup(e,{emit:t}){const n=e,s=t,r=fe(!1),o=fe(!1),i=fe(!1),a=fe(!1),l=fe(!1),u=fe(0),c=fe(0),f=fe(n.toast.duration||n.duration||wp),h=fe(null),p=fe(null),x=me(()=>n.index===0),g=me(()=>n.index+1<=n.visibleToasts),w=me(()=>n.toast.type),S=me(()=>n.toast.dismissible!==!1),R=me(()=>n.toast.class||""),y=me(()=>n.descriptionClass||""),v=n.toast.style||{},N=me(()=>n.heights.findIndex(A=>A.toastId===n.toast.id)||0),$=me(()=>n.toast.closeButton??n.closeButton),k=fe(0),D=fe(0),E=fe(null),B=me(()=>n.position.split("-")),z=me(()=>B.value[0]),j=me(()=>B.value[1]),te=me(()=>typeof n.toast.title!="string"),ae=me(()=>typeof n.toast.description!="string"),Se=me(()=>n.heights.reduce((A,ie,C)=>C>=N.value?A:A+ie.height,0)),le=yp(),Y=me(()=>n.toast.invert||n.invert),oe=me(()=>w.value==="loading"),ue=me(()=>N.value*n.gap+Se.value||0);Us(()=>{if(!r.value)return;const A=p.value,ie=A==null?void 0:A.style.height;A.style.height="auto";const C=A.getBoundingClientRect().height;A.style.height=ie,c.value=C;let L;n.heights.find(M=>M.toastId===n.toast.id)?L=n.heights.map(M=>M.toastId===n.toast.id?{...M,height:C}:M):L=[{toastId:n.toast.id,height:C,position:n.toast.position},...n.heights],s("update:heights",L)});function ye(){o.value=!0,u.value=ue.value;const A=n.heights.filter(ie=>ie.toastId!==n.toast.id);s("update:heights",A),setTimeout(()=>{s("removeToast",n.toast)},xp)}function Le(){var A,ie;if(oe.value||!S.value)return{};ye(),(ie=(A=n.toast).onDismiss)==null||ie.call(A,n.toast)}function ke(A){oe.value||!S.value||(h.value=new Date,u.value=ue.value,A.target.setPointerCapture(A.pointerId),A.target.tagName!=="BUTTON"&&(i.value=!0,E.value={x:A.clientX,y:A.clientY}))}function Oe(){var A,ie,C,L,M;if(a.value||!S)return;E.value=null;const K=Number(((A=p.value)==null?void 0:A.style.getPropertyValue("--swipe-amount").replace("px",""))||0),se=new Date().getTime()-((ie=h.value)==null?void 0:ie.getTime()),d=Math.abs(K)/se;if(Math.abs(K)>=_p||d>.11){u.value=ue.value,(L=(C=n.toast).onDismiss)==null||L.call(C,n.toast),ye(),a.value=!0,l.value=!1;return}(M=p.value)==null||M.style.setProperty("--swipe-amount","0px"),i.value=!1}function Ve(A){var ie,C;if(!E.value||!S.value)return;const L=A.clientY-E.value.y,M=((ie=window.getSelection())==null?void 0:ie.toString().length)>0,K=z.value==="top"?Math.min(0,L):Math.max(0,L);Math.abs(K)>0&&(l.value=!0),!M&&((C=p.value)==null||C.style.setProperty("--swipe-amount",`${K}px`))}return Jn(A=>{if(n.toast.promise&&w.value==="loading"||n.toast.duration===1/0||n.toast.type==="loading")return;let ie;const C=()=>{if(D.value{f.value!==1/0&&(k.value=new Date().getTime(),ie=setTimeout(()=>{var M,K;(K=(M=n.toast).onAutoClose)==null||K.call(M,n.toast),ye()},f.value))};n.expanded||n.interacting||n.pauseWhenPageIsHidden&&le?C():L(),A(()=>{clearTimeout(ie)})}),wn(()=>n.toast.delete,()=>{n.toast.delete&&ye()},{deep:!0}),Us(()=>{if(r.value=!0,p.value){const A=p.value.getBoundingClientRect().height;c.value=A;const ie=[{toastId:n.toast.id,height:A,position:n.toast.position},...n.heights];s("update:heights",ie)}}),wi(()=>{if(p.value){const A=n.heights.filter(ie=>ie.toastId!==n.toast.id);s("update:heights",A)}}),(A,ie)=>{var C,L,M,K,se,d,m,b,T,I,P,q,H,U,F,J,V,W,ee,pe,ve,xe,De,Me,ct,ut,nn;return Z(),ce("li",{ref_key:"toastRef",ref:p,"aria-live":A.toast.important?"assertive":"polite","aria-atomic":"true",role:"status",tabindex:"0","data-sonner-toast":"true",class:dt(A.cn(n.class,R.value,(C=A.classes)==null?void 0:C.toast,(L=A.toast.classes)==null?void 0:L.toast,(M=A.classes)==null?void 0:M[w.value],(se=(K=A.toast)==null?void 0:K.classes)==null?void 0:se[w.value])),"data-rich-colors":A.toast.richColors??A.defaultRichColors,"data-styled":!(A.toast.component||(d=A.toast)!=null&&d.unstyled||A.unstyled),"data-mounted":r.value,"data-promise":!!A.toast.promise,"data-removed":o.value,"data-visible":g.value,"data-y-position":z.value,"data-x-position":j.value,"data-index":A.index,"data-front":x.value,"data-swiping":i.value,"data-dismissible":S.value,"data-type":w.value,"data-invert":Y.value,"data-swipe-out":a.value,"data-expanded":!!(A.expanded||A.expandByDefault&&r.value),style:bn({"--index":A.index,"--toasts-before":A.index,"--z-index":A.toasts.length-A.index,"--offset":`${o.value?u.value:ue.value}px`,"--initial-height":A.expandByDefault?"auto":`${c.value}px`,...A.style,...Ke(v)}),onPointerdown:ke,onPointerup:Oe,onPointermove:Ve},[$.value&&!A.toast.component?(Z(),ce("button",{key:0,"aria-label":A.closeButtonAriaLabel||"Close toast","data-disabled":oe.value,"data-close-button":"true",class:dt(A.cn((m=A.classes)==null?void 0:m.closeButton,(T=(b=A.toast)==null?void 0:b.classes)==null?void 0:T.closeButton)),onClick:Le},[(I=A.icons)!=null&&I.close?(Z(),Ut(vs((P=A.icons)==null?void 0:P.close),{key:0})):_t(A.$slots,"close-icon",{key:1})],10,bp)):st("",!0),A.toast.component?(Z(),Ut(vs(A.toast.component),Ns({key:1},A.toast.componentProps,{onCloseToast:Le}),null,16)):(Z(),ce(Re,{key:2},[w.value!=="default"||A.toast.icon||A.toast.promise?(Z(),ce("div",{key:0,"data-icon":"",class:dt(A.cn((q=A.classes)==null?void 0:q.icon,(U=(H=A.toast)==null?void 0:H.classes)==null?void 0:U.icon))},[A.toast.icon?(Z(),Ut(vs(A.toast.icon),{key:0})):(Z(),ce(Re,{key:1},[w.value==="loading"?_t(A.$slots,"loading-icon",{key:0}):w.value==="success"?_t(A.$slots,"success-icon",{key:1}):w.value==="error"?_t(A.$slots,"error-icon",{key:2}):w.value==="warning"?_t(A.$slots,"warning-icon",{key:3}):w.value==="info"?_t(A.$slots,"info-icon",{key:4}):st("",!0)],64))],2)):st("",!0),G("div",{"data-content":"",class:dt(A.cn((F=A.classes)==null?void 0:F.content,(V=(J=A.toast)==null?void 0:J.classes)==null?void 0:V.content))},[G("div",{"data-title":"",class:dt(A.cn((W=A.classes)==null?void 0:W.title,(ee=A.toast.classes)==null?void 0:ee.title))},[te.value?(Z(),Ut(vs(A.toast.title),Hi(Ns({key:0},A.toast.componentProps)),null,16)):(Z(),ce(Re,{key:1},[Vs(Ct(A.toast.title),1)],64))],2),A.toast.description?(Z(),ce("div",{key:0,"data-description":"",class:dt(A.cn(A.descriptionClass,y.value,(pe=A.classes)==null?void 0:pe.description,(ve=A.toast.classes)==null?void 0:ve.description))},[ae.value?(Z(),Ut(vs(A.toast.description),Hi(Ns({key:0},A.toast.componentProps)),null,16)):(Z(),ce(Re,{key:1},[Vs(Ct(A.toast.description),1)],64))],2)):st("",!0)],2),A.toast.cancel?(Z(),ce("button",{key:1,style:bn(A.toast.cancelButtonStyle||A.cancelButtonStyle),class:dt(A.cn((xe=A.classes)==null?void 0:xe.cancelButton,(De=A.toast.classes)==null?void 0:De.cancelButton)),"data-button":"","data-cancel":"",onClick:ie[0]||(ie[0]=sn=>{var Be,ze;Ke(pr)(A.toast.cancel)&&S.value&&((ze=(Be=A.toast.cancel).onClick)==null||ze.call(Be,sn),ye())})},Ct(Ke(pr)(A.toast.cancel)?(Me=A.toast.cancel)==null?void 0:Me.label:A.toast.cancel),7)):st("",!0),A.toast.action?(Z(),ce("button",{key:2,style:bn(A.toast.actionButtonStyle||A.actionButtonStyle),class:dt(A.cn((ct=A.classes)==null?void 0:ct.actionButton,(ut=A.toast.classes)==null?void 0:ut.actionButton)),"data-button":"","data-action":"",onClick:ie[1]||(ie[1]=sn=>{var Be,ze;Ke(pr)(A.toast.action)&&(sn.defaultPrevented||((ze=(Be=A.toast.action).onClick)==null||ze.call(Be,sn),!sn.defaultPrevented&&ye()))})},Ct(Ke(pr)(A.toast.action)?(nn=A.toast.action)==null?void 0:nn.label:A.toast.action),7)):st("",!0)],64))],46,vp)}}}),nr=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Sp={},Cp={xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stoke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"};function Rp(e,t){return Z(),ce("svg",Cp,t[0]||(t[0]=[G("line",{x1:"18",y1:"6",x2:"6",y2:"18"},null,-1),G("line",{x1:"6",y1:"6",x2:"18",y2:"18"},null,-1)]))}const Ap=nr(Sp,[["render",Rp]]),Op=["data-visible"],Tp={class:"sonner-spinner"},Pp=Vn({__name:"Loader",props:{visible:{type:Boolean}},setup(e){const t=Array(12).fill(0);return(n,s)=>(Z(),ce("div",{class:"sonner-loading-wrapper","data-visible":n.visible},[G("div",Tp,[(Z(!0),ce(Re,null,ts(Ke(t),r=>(Z(),ce("div",{key:`spinner-bar-${r}`,class:"sonner-loading-bar"}))),128))])],8,Op))}}),Dp={},Np={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function Ip(e,t){return Z(),ce("svg",Np,t[0]||(t[0]=[G("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Lp=nr(Dp,[["render",Ip]]),Fp={},Mp={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function kp(e,t){return Z(),ce("svg",Mp,t[0]||(t[0]=[G("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Bp=nr(Fp,[["render",kp]]),jp={},Up={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"};function Hp(e,t){return Z(),ce("svg",Up,t[0]||(t[0]=[G("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const qp=nr(jp,[["render",Hp]]),Vp={},$p={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function Kp(e,t){return Z(),ce("svg",$p,t[0]||(t[0]=[G("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Qp=nr(Vp,[["render",Kp]]),zp=["aria-label"],Wp=["dir","data-theme","data-rich-colors","data-y-position","data-x-position","data-lifted"],Gp=3,Ba="32px",Jp=356,Yp=14,Xp=typeof window<"u"&&typeof document<"u";function Zp(...e){return e.filter(Boolean).join(" ")}const em=Vn({name:"Toaster",inheritAttrs:!1,__name:"Toaster",props:{invert:{type:Boolean,default:!1},theme:{default:"light"},position:{default:"bottom-right"},hotkey:{default:()=>["altKey","KeyT"]},richColors:{type:Boolean,default:!1},expand:{type:Boolean,default:!1},duration:{},gap:{default:Yp},visibleToasts:{default:Gp},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:""},style:{default:()=>({})},offset:{default:Ba},dir:{default:"auto"},icons:{},containerAriaLabel:{default:"Notifications"},pauseWhenPageIsHidden:{type:Boolean,default:!1},cn:{type:Function,default:Zp}},setup(e){const t=e;function n(){if(typeof window>"u"||typeof document>"u")return"ltr";const y=document.documentElement.getAttribute("dir");return y==="auto"||!y?window.getComputedStyle(document.documentElement).direction:y}const s=ed(),r=fe([]),o=me(()=>(y,v)=>r.value.filter(N=>!N.position&&v===0||N.position===y)),i=me(()=>{const y=r.value.filter(v=>v.position).map(v=>v.position);return y.length>0?Array.from(new Set([t.position].concat(y))):[t.position]}),a=fe([]),l=fe(!1),u=fe(!1),c=fe(t.theme!=="system"?t.theme:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),f=fe(null),h=fe(null),p=fe(!1),x=t.hotkey.join("+").replace(/Key/g,"").replace(/Digit/g,"");function g(y){var v;(v=r.value.find(N=>N.id===y.id))!=null&&v.delete||ft.dismiss(y.id),r.value=r.value.filter(({id:N})=>N!==y.id)}function w(y){var v,N;p.value&&!((N=(v=y.currentTarget)==null?void 0:v.contains)!=null&&N.call(v,y.relatedTarget))&&(p.value=!1,h.value&&(h.value.focus({preventScroll:!0}),h.value=null))}function S(y){y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||p.value||(p.value=!0,h.value=y.relatedTarget)}function R(y){y.target&&y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||(u.value=!0)}return Jn(y=>{const v=ft.subscribe(N=>{if(N.dismiss){r.value=r.value.map($=>$.id===N.id?{...$,delete:!0}:$);return}Hn(()=>{const $=r.value.findIndex(k=>k.id===N.id);$!==-1?r.value=[...r.value.slice(0,$),{...r.value[$],...N},...r.value.slice($+1)]:r.value=[N,...r.value]})});y(v)}),wn(()=>t.theme,y=>{if(y!=="system"){c.value=y;return}if(y==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?c.value="dark":c.value="light"),typeof window>"u")return;const v=window.matchMedia("(prefers-color-scheme: dark)");try{v.addEventListener("change",({matches:N})=>{N?c.value="dark":c.value="light"})}catch{v.addListener(({matches:N})=>{try{N?c.value="dark":c.value="light"}catch($){console.error($)}})}}),Jn(()=>{f.value&&h.value&&(h.value.focus({preventScroll:!0}),h.value=null,p.value=!1)}),Jn(()=>{r.value.length<=1&&(l.value=!1)}),Jn(y=>{function v(N){const $=t.hotkey.every(E=>N[E]||N.code===E),k=Array.isArray(f.value)?f.value[0]:f.value;$&&(l.value=!0,k==null||k.focus());const D=document.activeElement===f.value||(k==null?void 0:k.contains(document.activeElement));N.code==="Escape"&&D&&(l.value=!1)}Xp&&(document.addEventListener("keydown",v),y(()=>{document.removeEventListener("keydown",v)}))}),(y,v)=>(Z(),ce("section",{"aria-label":`${y.containerAriaLabel} ${Ke(x)}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false"},[(Z(!0),ce(Re,null,ts(i.value,(N,$)=>{var k;return Z(),ce("ol",Ns({key:N,ref_for:!0,ref_key:"listRef",ref:f,"data-sonner-toaster":"",class:t.class,dir:y.dir==="auto"?n():y.dir,tabIndex:-1,"data-theme":y.theme,"data-rich-colors":y.richColors,"data-y-position":N.split("-")[0],"data-x-position":N.split("-")[1],"data-lifted":l.value&&r.value.length>1&&!y.expand,style:{"--front-toast-height":`${(k=a.value[0])==null?void 0:k.height}px`,"--offset":typeof y.offset=="number"?`${y.offset}px`:y.offset||Ba,"--width":`${Jp}px`,"--gap":`${y.gap}px`,...y.style,...Ke(s).style}},y.$attrs,{onBlur:w,onFocus:S,onMouseenter:v[1]||(v[1]=()=>l.value=!0),onMousemove:v[2]||(v[2]=()=>l.value=!0),onMouseleave:v[3]||(v[3]=()=>{u.value||(l.value=!1)}),onPointerdown:R,onPointerup:v[4]||(v[4]=()=>u.value=!1)}),[(Z(!0),ce(Re,null,ts(o.value(N,$),(D,E)=>{var B,z,j,te,ae,Se,le,Y,oe;return Z(),Ut(Ep,{key:D.id,heights:a.value.filter(ue=>ue.position===D.position),icons:y.icons,index:E,toast:D,defaultRichColors:y.richColors,duration:((B=y.toastOptions)==null?void 0:B.duration)??y.duration,class:dt(((z=y.toastOptions)==null?void 0:z.class)??""),descriptionClass:(j=y.toastOptions)==null?void 0:j.descriptionClass,invert:y.invert,visibleToasts:y.visibleToasts,closeButton:((te=y.toastOptions)==null?void 0:te.closeButton)??y.closeButton,interacting:u.value,position:N,style:bn((ae=y.toastOptions)==null?void 0:ae.style),unstyled:(Se=y.toastOptions)==null?void 0:Se.unstyled,classes:(le=y.toastOptions)==null?void 0:le.classes,cancelButtonStyle:(Y=y.toastOptions)==null?void 0:Y.cancelButtonStyle,actionButtonStyle:(oe=y.toastOptions)==null?void 0:oe.actionButtonStyle,toasts:r.value.filter(ue=>ue.position===D.position),expandByDefault:y.expand,gap:y.gap,expanded:l.value,pauseWhenPageIsHidden:y.pauseWhenPageIsHidden,cn:y.cn,"onUpdate:heights":v[0]||(v[0]=ue=>{a.value=ue}),onRemoveToast:g},{"close-icon":fn(()=>[_t(y.$slots,"close-icon",{},()=>[Te(Ap)])]),"loading-icon":fn(()=>[_t(y.$slots,"loading-icon",{},()=>[Te(Pp,{visible:D.type==="loading"},null,8,["visible"])])]),"success-icon":fn(()=>[_t(y.$slots,"success-icon",{},()=>[Te(Lp)])]),"error-icon":fn(()=>[_t(y.$slots,"error-icon",{},()=>[Te(Qp)])]),"warning-icon":fn(()=>[_t(y.$slots,"warning-icon",{},()=>[Te(qp)])]),"info-icon":fn(()=>[_t(y.$slots,"info-icon",{},()=>[Te(Bp)])]),_:2},1032,["heights","icons","index","toast","defaultRichColors","duration","class","descriptionClass","invert","visibleToasts","closeButton","interacting","position","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","toasts","expandByDefault","gap","expanded","pauseWhenPageIsHidden","cn"])}),128))],16,Wp)}),128))],8,zp))}});function iu(e,t){return function(){return e.apply(t,arguments)}}const{toString:tm}=Object.prototype,{getPrototypeOf:Yr}=Object,{iterator:Xr,toStringTag:au}=Symbol,Zr=(e=>t=>{const n=tm.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Pt=e=>(e=e.toLowerCase(),t=>Zr(t)===e),eo=e=>t=>typeof t===e,{isArray:ms}=Array,ds=eo("undefined");function sr(e){return e!==null&&!ds(e)&&e.constructor!==null&&!ds(e.constructor)&<(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const lu=Pt("ArrayBuffer");function nm(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&lu(e.buffer),t}const sm=eo("string"),lt=eo("function"),cu=eo("number"),rr=e=>e!==null&&typeof e=="object",rm=e=>e===!0||e===!1,wr=e=>{if(Zr(e)!=="object")return!1;const t=Yr(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(au in e)&&!(Xr in e)},om=e=>{if(!rr(e)||sr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},im=Pt("Date"),am=Pt("File"),lm=e=>!!(e&&typeof e.uri<"u"),cm=e=>e&&typeof e.getParts<"u",um=Pt("Blob"),fm=Pt("FileList"),dm=e=>rr(e)&<(e.pipe);function hm(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const ja=hm(),Ua=typeof ja.FormData<"u"?ja.FormData:void 0,pm=e=>{if(!e)return!1;if(Ua&&e instanceof Ua)return!0;const t=Yr(e);if(!t||t===Object.prototype||!lt(e.append))return!1;const n=Zr(e);return n==="formdata"||n==="object"&<(e.toString)&&e.toString()==="[object FormData]"},mm=Pt("URLSearchParams"),[gm,ym,vm,bm]=["ReadableStream","Request","Response","Headers"].map(Pt),wm=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function or(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let s,r;if(typeof e!="object"&&(e=[e]),ms(e))for(s=0,r=e.length;s0;)if(r=n[s],t===r.toLowerCase())return r;return null}const Pn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,fu=e=>!ds(e)&&e!==Pn;function Yo(...e){const{caseless:t,skipUndefined:n}=fu(this)&&this||{},s={},r=(o,i)=>{if(i==="__proto__"||i==="constructor"||i==="prototype")return;const a=t&&uu(s,i)||i,l=Xo(s,a)?s[a]:void 0;wr(l)&&wr(o)?s[a]=Yo(l,o):wr(o)?s[a]=Yo({},o):ms(o)?s[a]=o.slice():(!n||!ds(o))&&(s[a]=o)};for(let o=0,i=e.length;o(or(t,(r,o)=>{n&<(r)?Object.defineProperty(e,o,{__proto__:null,value:iu(r,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{__proto__:null,value:r,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),e),xm=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Em=(e,t,n,s)=>{e.prototype=Object.create(t.prototype,s),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Sm=(e,t,n,s)=>{let r,o,i;const a={};if(t=t||{},e==null)return t;do{for(r=Object.getOwnPropertyNames(e),o=r.length;o-- >0;)i=r[o],(!s||s(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Yr(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Cm=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const s=e.indexOf(t,n);return s!==-1&&s===n},Rm=e=>{if(!e)return null;if(ms(e))return e;let t=e.length;if(!cu(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Am=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Yr(Uint8Array)),Om=(e,t)=>{const s=(e&&e[Xr]).call(e);let r;for(;(r=s.next())&&!r.done;){const o=r.value;t.call(e,o[0],o[1])}},Tm=(e,t)=>{let n;const s=[];for(;(n=e.exec(t))!==null;)s.push(n);return s},Pm=Pt("HTMLFormElement"),Dm=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,r){return s.toUpperCase()+r}),Xo=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Nm=Pt("RegExp"),du=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),s={};or(n,(r,o)=>{let i;(i=t(r,o,e))!==!1&&(s[o]=i||r)}),Object.defineProperties(e,s)},Im=e=>{du(e,(t,n)=>{if(lt(e)&&["arguments","caller","callee"].includes(n))return!1;const s=e[n];if(lt(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lm=(e,t)=>{const n={},s=r=>{r.forEach(o=>{n[o]=!0})};return ms(e)?s(e):s(String(e).split(t)),n},Fm=()=>{},Mm=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function km(e){return!!(e&<(e.append)&&e[au]==="FormData"&&e[Xr])}const Bm=e=>{const t=new Array(10),n=(s,r)=>{if(rr(s)){if(t.indexOf(s)>=0)return;if(sr(s))return s;if(!("toJSON"in s)){t[r]=s;const o=ms(s)?[]:{};return or(s,(i,a)=>{const l=n(i,r+1);!ds(l)&&(o[a]=l)}),t[r]=void 0,o}}return s};return n(e,0)},jm=Pt("AsyncFunction"),Um=e=>e&&(rr(e)||lt(e))&<(e.then)&<(e.catch),hu=((e,t)=>e?setImmediate:t?((n,s)=>(Pn.addEventListener("message",({source:r,data:o})=>{r===Pn&&o===n&&s.length&&s.shift()()},!1),r=>{s.push(r),Pn.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",lt(Pn.postMessage)),Hm=typeof queueMicrotask<"u"?queueMicrotask.bind(Pn):typeof process<"u"&&process.nextTick||hu,qm=e=>e!=null&<(e[Xr]),_={isArray:ms,isArrayBuffer:lu,isBuffer:sr,isFormData:pm,isArrayBufferView:nm,isString:sm,isNumber:cu,isBoolean:rm,isObject:rr,isPlainObject:wr,isEmptyObject:om,isReadableStream:gm,isRequest:ym,isResponse:vm,isHeaders:bm,isUndefined:ds,isDate:im,isFile:am,isReactNativeBlob:lm,isReactNative:cm,isBlob:um,isRegExp:Nm,isFunction:lt,isStream:dm,isURLSearchParams:mm,isTypedArray:Am,isFileList:fm,forEach:or,merge:Yo,extend:_m,trim:wm,stripBOM:xm,inherits:Em,toFlatObject:Sm,kindOf:Zr,kindOfTest:Pt,endsWith:Cm,toArray:Rm,forEachEntry:Om,matchAll:Tm,isHTMLForm:Pm,hasOwnProperty:Xo,hasOwnProp:Xo,reduceDescriptors:du,freezeMethods:Im,toObjectSet:Lm,toCamelCase:Dm,noop:Fm,toFiniteNumber:Mm,findKey:uu,global:Pn,isContextDefined:fu,isSpecCompliantForm:km,toJSONObject:Bm,isAsyncFn:jm,isThenable:Um,setImmediate:hu,asap:Hm,isIterable:qm},Vm=_.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"]),$m=e=>{const t={};let n,s,r;return e&&e.split(` -`).forEach(function(i){r=i.indexOf(":"),n=i.substring(0,r).trim().toLowerCase(),s=i.substring(r+1).trim(),!(!n||t[n]&&Vm[n])&&(n==="set-cookie"?t[n]?t[n].push(s):t[n]=[s]:t[n]=t[n]?t[n]+", "+s:s)}),t},Ha=Symbol("internals"),Km=/[^\x09\x20-\x7E\x80-\xFF]/g;function Qm(e){let t=0,n=e.length;for(;tt;){const s=e.charCodeAt(n-1);if(s!==9&&s!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}function _s(e){return e&&String(e).trim().toLowerCase()}function zm(e){return Qm(e.replace(Km,""))}function _r(e){return e===!1||e==null?e:_.isArray(e)?e.map(_r):zm(String(e))}function Wm(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(e);)t[s[1]]=s[2];return t}const Gm=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function xo(e,t,n,s,r){if(_.isFunction(s))return s.call(this,t,n);if(r&&(t=n),!!_.isString(t)){if(_.isString(s))return t.indexOf(s)!==-1;if(_.isRegExp(s))return s.test(t)}}function Jm(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,s)=>n.toUpperCase()+s)}function Ym(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+n,{__proto__:null,value:function(r,o,i){return this[s].call(this,t,r,o,i)},configurable:!0})})}let at=class{constructor(t){t&&this.set(t)}set(t,n,s){const r=this;function o(a,l,u){const c=_s(l);if(!c)throw new Error("header name must be a non-empty string");const f=_.findKey(r,c);(!f||r[f]===void 0||u===!0||u===void 0&&r[f]!==!1)&&(r[f||l]=_r(a))}const i=(a,l)=>_.forEach(a,(u,c)=>o(u,c,l));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Gm(t))i($m(t),n);else if(_.isObject(t)&&_.isIterable(t)){let a={},l,u;for(const c of t){if(!_.isArray(c))throw TypeError("Object iterator must return a key-value pair");a[u=c[0]]=(l=a[u])?_.isArray(l)?[...l,c[1]]:[l,c[1]]:c[1]}i(a,n)}else t!=null&&o(n,t,s);return this}get(t,n){if(t=_s(t),t){const s=_.findKey(this,t);if(s){const r=this[s];if(!n)return r;if(n===!0)return Wm(r);if(_.isFunction(n))return n.call(this,r,s);if(_.isRegExp(n))return n.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_s(t),t){const s=_.findKey(this,t);return!!(s&&this[s]!==void 0&&(!n||xo(this,this[s],s,n)))}return!1}delete(t,n){const s=this;let r=!1;function o(i){if(i=_s(i),i){const a=_.findKey(s,i);a&&(!n||xo(s,s[a],a,n))&&(delete s[a],r=!0)}}return _.isArray(t)?t.forEach(o):o(t),r}clear(t){const n=Object.keys(this);let s=n.length,r=!1;for(;s--;){const o=n[s];(!t||xo(this,this[o],o,t,!0))&&(delete this[o],r=!0)}return r}normalize(t){const n=this,s={};return _.forEach(this,(r,o)=>{const i=_.findKey(s,o);if(i){n[i]=_r(r),delete n[o];return}const a=t?Jm(o):String(o).trim();a!==o&&delete n[o],n[a]=_r(r),s[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(s,r)=>{s!=null&&s!==!1&&(n[r]=t&&_.isArray(s)?s.join(", "):s)}),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 s=new this(t);return n.forEach(r=>s.set(r)),s}static accessor(t){const s=(this[Ha]=this[Ha]={accessors:{}}).accessors,r=this.prototype;function o(i){const a=_s(i);s[a]||(Ym(r,i),s[a]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};at.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(at.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[n]=s}}});_.freezeMethods(at);const Xm="[REDACTED ****]";function Zm(e){if(_.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(_.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function eg(e,t){const n=new Set(t.map(o=>String(o).toLowerCase())),s=[],r=o=>{if(o===null||typeof o!="object"||_.isBuffer(o))return o;if(s.indexOf(o)!==-1)return;o instanceof at&&(o=o.toJSON()),s.push(o);let i;if(_.isArray(o))i=[],o.forEach((a,l)=>{const u=r(a);_.isUndefined(u)||(i[l]=u)});else{if(!_.isPlainObject(o)&&Zm(o))return s.pop(),o;i=Object.create(null);for(const[a,l]of Object.entries(o)){const u=n.has(a.toLowerCase())?Xm:r(l);_.isUndefined(u)||(i[a]=u)}}return s.pop(),i};return r(e)}let Q=class pu extends Error{static from(t,n,s,r,o,i){const a=new pu(t.message,n||t.code,s,r,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,s,r,o){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),s&&(this.config=s),r&&(this.request=r),o&&(this.response=o,this.status=o.status)}toJSON(){const t=this.config,n=t&&_.hasOwnProp(t,"redact")?t.redact:void 0,s=_.isArray(n)&&n.length>0?eg(t,n):_.toJSONObject(t);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:s,code:this.code,status:this.status}}};Q.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";Q.ERR_BAD_OPTION="ERR_BAD_OPTION";Q.ECONNABORTED="ECONNABORTED";Q.ETIMEDOUT="ETIMEDOUT";Q.ECONNREFUSED="ECONNREFUSED";Q.ERR_NETWORK="ERR_NETWORK";Q.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";Q.ERR_DEPRECATED="ERR_DEPRECATED";Q.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";Q.ERR_BAD_REQUEST="ERR_BAD_REQUEST";Q.ERR_CANCELED="ERR_CANCELED";Q.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";Q.ERR_INVALID_URL="ERR_INVALID_URL";Q.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const tg=null;function Zo(e){return _.isPlainObject(e)||_.isArray(e)}function mu(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function Eo(e,t,n){return e?e.concat(t).map(function(r,o){return r=mu(r),!n&&o?"["+r+"]":r}).join(n?".":""):t}function ng(e){return _.isArray(e)&&!e.some(Zo)}const sg=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function to(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,S){return!_.isUndefined(S[w])});const s=n.metaTokens,r=n.visitor||f,o=n.dots,i=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?100:n.maxDepth,u=a&&_.isSpecCompliantForm(t);if(!_.isFunction(r))throw new TypeError("visitor must be a function");function c(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!u&&_.isBlob(g))throw new Q("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?u&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function f(g,w,S){let R=g;if(_.isReactNative(t)&&_.isReactNativeBlob(g))return t.append(Eo(S,w,o),c(g)),!1;if(g&&!S&&typeof g=="object"){if(_.endsWith(w,"{}"))w=s?w:w.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&ng(g)||(_.isFileList(g)||_.endsWith(w,"[]"))&&(R=_.toArray(g)))return w=mu(w),R.forEach(function(v,N){!(_.isUndefined(v)||v===null)&&t.append(i===!0?Eo([w],N,o):i===null?w:w+"[]",c(v))}),!1}return Zo(g)?!0:(t.append(Eo(S,w,o),c(g)),!1)}const h=[],p=Object.assign(sg,{defaultVisitor:f,convertValue:c,isVisitable:Zo});function x(g,w,S=0){if(!_.isUndefined(g)){if(S>l)throw new Q("Object is too deeply nested ("+S+" levels). Max depth: "+l,Q.ERR_FORM_DATA_DEPTH_EXCEEDED);if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+w.join("."));h.push(g),_.forEach(g,function(y,v){(!(_.isUndefined(y)||y===null)&&r.call(t,y,_.isString(v)?v.trim():v,w,p))===!0&&x(y,w?w.concat(v):[v],S+1)}),h.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return x(e),t}function qa(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(s){return t[s]})}function Oi(e,t){this._pairs=[],e&&to(e,this,t)}const gu=Oi.prototype;gu.append=function(t,n){this._pairs.push([t,n])};gu.toString=function(t){const n=t?function(s){return t.call(this,s,qa)}:qa;return this._pairs.map(function(r){return n(r[0])+"="+n(r[1])},"").join("&")};function rg(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function yu(e,t,n){if(!t)return e;const s=n&&n.encode||rg,r=_.isFunction(n)?{serialize:n}:n,o=r&&r.serialize;let i;if(o?i=o(t,r):i=_.isURLSearchParams(t)?t.toString():new Oi(t,r).toString(s),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class Va{constructor(){this.handlers=[]}use(t,n,s){return this.handlers.push({fulfilled:t,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(s){s!==null&&t(s)})}}const Ti={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},og=typeof URLSearchParams<"u"?URLSearchParams:Oi,ig=typeof FormData<"u"?FormData:null,ag=typeof Blob<"u"?Blob:null,lg={isBrowser:!0,classes:{URLSearchParams:og,FormData:ig,Blob:ag},protocols:["http","https","file","blob","url","data"]},Pi=typeof window<"u"&&typeof document<"u",ei=typeof navigator=="object"&&navigator||void 0,cg=Pi&&(!ei||["ReactNative","NativeScript","NS"].indexOf(ei.product)<0),ug=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",fg=Pi&&window.location.href||"http://localhost",dg=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Pi,hasStandardBrowserEnv:cg,hasStandardBrowserWebWorkerEnv:ug,navigator:ei,origin:fg},Symbol.toStringTag,{value:"Module"})),Xe={...dg,...lg};function hg(e,t){return to(e,new Xe.classes.URLSearchParams,{visitor:function(n,s,r,o){return Xe.isNode&&_.isBuffer(n)?(this.append(s,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function pg(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function mg(e){const t={},n=Object.keys(e);let s;const r=n.length;let o;for(s=0;s=n.length;return i=!i&&_.isArray(r)?r.length:i,l?(_.hasOwnProp(r,i)?r[i]=_.isArray(r[i])?r[i].concat(s):[r[i],s]:r[i]=s,!a):((!r[i]||!_.isObject(r[i]))&&(r[i]=[]),t(n,s,r[i],o)&&_.isArray(r[i])&&(r[i]=mg(r[i])),!a)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(s,r)=>{t(pg(s),r,n,0)}),n}return null}const Qn=(e,t)=>e!=null&&_.hasOwnProp(e,t)?e[t]:void 0;function gg(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(e)}const ir={transitional:Ti,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const s=n.getContentType()||"",r=s.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return r?JSON.stringify(vu(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){const l=Qn(this,"formSerializer");if(s.indexOf("application/x-www-form-urlencoded")>-1)return hg(t,l).toString();if((a=_.isFileList(t))||s.indexOf("multipart/form-data")>-1){const u=Qn(this,"env"),c=u&&u.FormData;return to(a?{"files[]":t}:t,c&&new c,l)}}return o||r?(n.setContentType("application/json",!1),gg(t)):t}],transformResponse:[function(t){const n=Qn(this,"transitional")||ir.transitional,s=n&&n.forcedJSONParsing,r=Qn(this,"responseType"),o=r==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(s&&!r||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,Qn(this,"parseReviver"))}catch(l){if(a)throw l.name==="SyntaxError"?Q.from(l,Q.ERR_BAD_RESPONSE,this,null,Qn(this,"response")):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Xe.classes.FormData,Blob:Xe.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch","query"],e=>{ir.headers[e]={}});function So(e,t){const n=this||ir,s=t||n,r=at.from(s.headers);let o=s.data;return _.forEach(e,function(a){o=a.call(n,o,r.normalize(),t?t.status:void 0)}),r.normalize(),o}function bu(e){return!!(e&&e.__CANCEL__)}let ar=class extends Q{constructor(t,n,s){super(t??"canceled",Q.ERR_CANCELED,n,s),this.name="CanceledError",this.__CANCEL__=!0}};function wu(e,t,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?e(n):t(new Q("Request failed with status code "+n.status,n.status>=400&&n.status<500?Q.ERR_BAD_REQUEST:Q.ERR_BAD_RESPONSE,n.config,n.request,n))}function yg(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function vg(e,t){e=e||10;const n=new Array(e),s=new Array(e);let r=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=s[o];i||(i=u),n[r]=l,s[r]=u;let f=o,h=0;for(;f!==r;)h+=n[f++],f=f%e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),u-i{n=c,r=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const c=Date.now(),f=c-n;f>=s?i(u,c):(r=u,o||(o=setTimeout(()=>{o=null,i(r)},s-f)))},()=>r&&i(r)]}const Ir=(e,t,n=3)=>{let s=0;const r=vg(50,250);return bg(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=a!=null?Math.min(i,a):i,u=Math.max(0,l-s),c=r(u);s=Math.max(s,l);const f={loaded:l,total:a,progress:a?l/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a?(a-l)/c:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},$a=(e,t)=>{const n=e!=null;return[s=>t[0]({lengthComputable:n,total:e,loaded:s}),t[1]]},Ka=e=>(...t)=>_.asap(()=>e(...t)),wg=Xe.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Xe.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Xe.origin),Xe.navigator&&/(msie|trident)/i.test(Xe.navigator.userAgent)):()=>!0,_g=Xe.hasStandardBrowserEnv?{write(e,t,n,s,r,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),_.isString(s)&&a.push(`path=${s}`),_.isString(r)&&a.push(`domain=${r}`),o===!0&&a.push("secure"),_.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;ne instanceof at?{...e}:e;function qn(e,t){t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(u,c,f,h){return _.isPlainObject(u)&&_.isPlainObject(c)?_.merge.call({caseless:h},u,c):_.isPlainObject(c)?_.merge({},c):_.isArray(c)?c.slice():c}function r(u,c,f,h){if(_.isUndefined(c)){if(!_.isUndefined(u))return s(void 0,u,f,h)}else return s(u,c,f,h)}function o(u,c){if(!_.isUndefined(c))return s(void 0,c)}function i(u,c){if(_.isUndefined(c)){if(!_.isUndefined(u))return s(void 0,u)}else return s(void 0,c)}function a(u,c,f){if(_.hasOwnProp(t,f))return s(u,c);if(_.hasOwnProp(e,f))return s(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,allowedSocketPaths:i,responseEncoding:i,validateStatus:a,headers:(u,c,f)=>r(Qa(u),Qa(c),f,!0)};return _.forEach(Object.keys({...e,...t}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const f=_.hasOwnProp(l,c)?l[c]:r,h=_.hasOwnProp(e,c)?e[c]:void 0,p=_.hasOwnProp(t,c)?t[c]:void 0,x=f(h,p,c);_.isUndefined(x)&&f!==a||(n[c]=x)}),n}const Sg=["content-type","content-length"];function Cg(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t).forEach(([s,r])=>{Sg.includes(s.toLowerCase())&&e.set(s,r)})}const Rg=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),xu=e=>{const t=qn({},e),n=h=>_.hasOwnProp(t,h)?t[h]:void 0,s=n("data");let r=n("withXSRFToken");const o=n("xsrfHeaderName"),i=n("xsrfCookieName");let a=n("headers");const l=n("auth"),u=n("baseURL"),c=n("allowAbsoluteUrls"),f=n("url");if(t.headers=a=at.from(a),t.url=yu(_u(u,f,c),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?Rg(l.password):""))),_.isFormData(s)&&(Xe.hasStandardBrowserEnv||Xe.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):_.isFunction(s.getHeaders)&&Cg(a,s.getHeaders(),n("formDataHeaderPolicy"))),Xe.hasStandardBrowserEnv&&(_.isFunction(r)&&(r=r(t)),r===!0||r==null&&wg(t.url))){const p=o&&i&&_g.read(i);p&&a.set(o,p)}return t},Ag=typeof XMLHttpRequest<"u",Og=Ag&&function(e){return new Promise(function(n,s){const r=xu(e);let o=r.data;const i=at.from(r.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=r,c,f,h,p,x;function g(){p&&p(),x&&x(),r.cancelToken&&r.cancelToken.unsubscribe(c),r.signal&&r.signal.removeEventListener("abort",c)}let w=new XMLHttpRequest;w.open(r.method.toUpperCase(),r.url,!0),w.timeout=r.timeout;function S(){if(!w)return;const y=at.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),N={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:y,config:e,request:w};wu(function(k){n(k),g()},function(k){s(k),g()},N),w=null}"onloadend"in w?w.onloadend=S:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.startsWith("file:"))||setTimeout(S)},w.onabort=function(){w&&(s(new Q("Request aborted",Q.ECONNABORTED,e,w)),g(),w=null)},w.onerror=function(v){const N=v&&v.message?v.message:"Network Error",$=new Q(N,Q.ERR_NETWORK,e,w);$.event=v||null,s($),g(),w=null},w.ontimeout=function(){let v=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const N=r.transitional||Ti;r.timeoutErrorMessage&&(v=r.timeoutErrorMessage),s(new Q(v,N.clarifyTimeoutError?Q.ETIMEDOUT:Q.ECONNABORTED,e,w)),g(),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&_.forEach(i.toJSON(),function(v,N){w.setRequestHeader(N,v)}),_.isUndefined(r.withCredentials)||(w.withCredentials=!!r.withCredentials),a&&a!=="json"&&(w.responseType=r.responseType),u&&([h,x]=Ir(u,!0),w.addEventListener("progress",h)),l&&w.upload&&([f,p]=Ir(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",p)),(r.cancelToken||r.signal)&&(c=y=>{w&&(s(!y||y.type?new ar(null,e,w):y),w.abort(),g(),w=null)},r.cancelToken&&r.cancelToken.subscribe(c),r.signal&&(r.signal.aborted?c():r.signal.addEventListener("abort",c)));const R=yg(r.url);if(R&&!Xe.protocols.includes(R)){s(new Q("Unsupported protocol "+R+":",Q.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Tg=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let s=new AbortController,r;const o=function(u){if(!r){r=!0,a();const c=u instanceof Error?u:this.reason;s.abort(c instanceof Q?c:new ar(c instanceof Error?c.message:c))}};let i=t&&setTimeout(()=>{i=null,o(new Q(`timeout of ${t}ms exceeded`,Q.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}=s;return l.unsubscribe=()=>_.asap(a),l}},Pg=function*(e,t){let n=e.byteLength;if(n{const r=Dg(e,t);let o=0,i,a=l=>{i||(i=!0,s&&s(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await r.next();if(u){a(),l.close();return}let f=c.byteLength;if(n){let h=o+=f;n(h)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),r.return()}},{highWaterMark:2})};function Ig(e){if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),s=e.slice(t+1);if(/;base64/i.test(n)){let i=s.length;const a=s.length;for(let p=0;p=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102)&&(g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102)&&(i-=2,p+=2)}let l=0,u=a-1;const c=p=>p>=2&&s.charCodeAt(p-2)===37&&s.charCodeAt(p-1)===51&&(s.charCodeAt(p)===68||s.charCodeAt(p)===100);u>=0&&(s.charCodeAt(u)===61?(l++,u--):c(u)&&(l++,u-=3)),l===1&&u>=0&&(s.charCodeAt(u)===61||c(u))&&l++;const h=Math.floor(i/4)*3-(l||0);return h>0?h:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(s,"utf8");let o=0;for(let i=0,a=s.length;i=55296&&l<=56319&&i+1=56320&&u<=57343?(o+=4,i++):o+=3}else o+=3}return o}const Di="1.16.0",Wa=64*1024,{isFunction:mr}=_,Ga=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Lg=e=>{const t=_.global??globalThis,{ReadableStream:n,TextEncoder:s}=t;e=_.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:r,Request:o,Response:i}=e,a=r?mr(r):typeof fetch=="function",l=mr(o),u=mr(i);if(!a)return!1;const c=a&&mr(n),f=a&&(typeof s=="function"?(S=>R=>S.encode(R))(new s):async S=>new Uint8Array(await new o(S).arrayBuffer())),h=l&&c&&Ga(()=>{let S=!1;const R=new o(Xe.origin,{body:new n,method:"POST",get duplex(){return S=!0,"half"}}),y=R.headers.has("Content-Type");return R.body!=null&&R.body.cancel(),S&&!y}),p=u&&c&&Ga(()=>_.isReadableStream(new i("").body)),x={stream:p&&(S=>S.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(S=>{!x[S]&&(x[S]=(R,y)=>{let v=R&&R[S];if(v)return v.call(R);throw new Q(`Response type '${S}' is not supported`,Q.ERR_NOT_SUPPORT,y)})});const g=async S=>{if(S==null)return 0;if(_.isBlob(S))return S.size;if(_.isSpecCompliantForm(S))return(await new o(Xe.origin,{method:"POST",body:S}).arrayBuffer()).byteLength;if(_.isArrayBufferView(S)||_.isArrayBuffer(S))return S.byteLength;if(_.isURLSearchParams(S)&&(S=S+""),_.isString(S))return(await f(S)).byteLength},w=async(S,R)=>{const y=_.toFiniteNumber(S.getContentLength());return y??g(R)};return async S=>{let{url:R,method:y,data:v,signal:N,cancelToken:$,timeout:k,onDownloadProgress:D,onUploadProgress:E,responseType:B,headers:z,withCredentials:j="same-origin",fetchOptions:te,maxContentLength:ae,maxBodyLength:Se}=xu(S);const le=_.isNumber(ae)&&ae>-1,Y=_.isNumber(Se)&&Se>-1;let oe=r||fetch;B=B?(B+"").toLowerCase():"text";let ue=Tg([N,$&&$.toAbortSignal()],k),ye=null;const Le=ue&&ue.unsubscribe&&(()=>{ue.unsubscribe()});let ke;try{if(le&&typeof R=="string"&&R.startsWith("data:")&&Ig(R)>ae)throw new Q("maxContentLength size of "+ae+" exceeded",Q.ERR_BAD_RESPONSE,S,ye);if(Y&&y!=="get"&&y!=="head"){const L=await w(z,v);if(typeof L=="number"&&isFinite(L)&&L>Se)throw new Q("Request body larger than maxBodyLength limit",Q.ERR_BAD_REQUEST,S,ye)}if(E&&h&&y!=="get"&&y!=="head"&&(ke=await w(z,v))!==0){let L=new o(R,{method:"POST",body:v,duplex:"half"}),M;if(_.isFormData(v)&&(M=L.headers.get("content-type"))&&z.setContentType(M),L.body){const[K,se]=$a(ke,Ir(Ka(E)));v=za(L.body,Wa,K,se)}}_.isString(j)||(j=j?"include":"omit");const Oe=l&&"credentials"in o.prototype;if(_.isFormData(v)){const L=z.getContentType();L&&/^multipart\/form-data/i.test(L)&&!/boundary=/i.test(L)&&z.delete("content-type")}z.set("User-Agent","axios/"+Di,!1);const Ve={...te,signal:ue,method:y.toUpperCase(),headers:z.normalize().toJSON(),body:v,duplex:"half",credentials:Oe?j:void 0};ye=l&&new o(R,Ve);let A=await(l?oe(ye,te):oe(R,Ve));if(le){const L=_.toFiniteNumber(A.headers.get("content-length"));if(L!=null&&L>ae)throw new Q("maxContentLength size of "+ae+" exceeded",Q.ERR_BAD_RESPONSE,S,ye)}const ie=p&&(B==="stream"||B==="response");if(p&&A.body&&(D||le||ie&&Le)){const L={};["status","statusText","headers"].forEach(b=>{L[b]=A[b]});const M=_.toFiniteNumber(A.headers.get("content-length")),[K,se]=D&&$a(M,Ir(Ka(D),!0))||[];let d=0;const m=b=>{if(le&&(d=b,d>ae))throw new Q("maxContentLength size of "+ae+" exceeded",Q.ERR_BAD_RESPONSE,S,ye);K&&K(b)};A=new i(za(A.body,Wa,m,()=>{se&&se(),Le&&Le()}),L)}B=B||"text";let C=await x[_.findKey(x,B)||"text"](A,S);if(le&&!p&&!ie){let L;if(C!=null&&(typeof C.byteLength=="number"?L=C.byteLength:typeof C.size=="number"?L=C.size:typeof C=="string"&&(L=typeof s=="function"?new s().encode(C).byteLength:C.length)),typeof L=="number"&&L>ae)throw new Q("maxContentLength size of "+ae+" exceeded",Q.ERR_BAD_RESPONSE,S,ye)}return!ie&&Le&&Le(),await new Promise((L,M)=>{wu(L,M,{data:C,headers:at.from(A.headers),status:A.status,statusText:A.statusText,config:S,request:ye})})}catch(Oe){if(Le&&Le(),ue&&ue.aborted&&ue.reason instanceof Q){const Ve=ue.reason;throw Ve.config=S,ye&&(Ve.request=ye),Oe!==Ve&&(Ve.cause=Oe),Ve}throw Oe&&Oe.name==="TypeError"&&/Load failed|fetch/i.test(Oe.message)?Object.assign(new Q("Network Error",Q.ERR_NETWORK,S,ye,Oe&&Oe.response),{cause:Oe.cause||Oe}):Q.from(Oe,Oe&&Oe.code,S,ye,Oe&&Oe.response)}}},Fg=new Map,Eu=e=>{let t=e&&e.env||{};const{fetch:n,Request:s,Response:r}=t,o=[s,r,n];let i=o.length,a=i,l,u,c=Fg;for(;a--;)l=o[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:Lg(t)),c=u;return u};Eu();const Ni={http:tg,xhr:Og,fetch:{get:Eu}};_.forEach(Ni,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Ja=e=>`- ${e}`,Mg=e=>_.isFunction(e)||e===null||e===!1;function kg(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let s,r;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(Ja).join(` -`):" "+Ja(i[0]):"as no adapter specified";throw new Q("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r}const Su={getAdapter:kg,adapters:Ni};function Co(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ar(null,e)}function Ya(e){return Co(e),e.headers=at.from(e.headers),e.data=So.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Su.getAdapter(e.adapter||ir.adapter,e)(e).then(function(s){Co(e),e.response=s;try{s.data=So.call(e,e.transformResponse,s)}finally{delete e.response}return s.headers=at.from(s.headers),s},function(s){if(!bu(s)&&(Co(e),s&&s.response)){e.response=s.response;try{s.response.data=So.call(e,e.transformResponse,s.response)}finally{delete e.response}s.response.headers=at.from(s.response.headers)}return Promise.reject(s)})}const no={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{no[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const Xa={};no.transitional=function(t,n,s){function r(o,i){return"[Axios v"+Di+"] Transitional option '"+o+"'"+i+(s?". "+s:"")}return(o,i,a)=>{if(t===!1)throw new Q(r(i," has been removed"+(n?" in "+n:"")),Q.ERR_DEPRECATED);return n&&!Xa[i]&&(Xa[i]=!0,console.warn(r(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};no.spelling=function(t){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function Bg(e,t,n){if(typeof e!="object")throw new Q("options must be an object",Q.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let r=s.length;for(;r-- >0;){const o=s[r],i=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new Q("option "+o+" must be "+l,Q.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Q("Unknown option "+o,Q.ERR_BAD_OPTION)}}const xr={assertOptions:Bg,validators:no},vt=xr.validators;let Un=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Va,response:new Va}}async request(t,n){try{return await this._request(t,n)}catch(s){if(s instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;const o=(()=>{if(!r.stack)return"";const i=r.stack.indexOf(` -`);return i===-1?"":r.stack.slice(i+1)})();try{if(!s.stack)s.stack=o;else if(o){const i=o.indexOf(` -`),a=i===-1?-1:o.indexOf(` -`,i+1),l=a===-1?"":o.slice(a+1);String(s.stack).endsWith(l)||(s.stack+=` -`+o)}}catch{}}throw s}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=qn(this.defaults,n);const{transitional:s,paramsSerializer:r,headers:o}=n;s!==void 0&&xr.assertOptions(s,{silentJSONParsing:vt.transitional(vt.boolean),forcedJSONParsing:vt.transitional(vt.boolean),clarifyTimeoutError:vt.transitional(vt.boolean),legacyInterceptorReqResOrdering:vt.transitional(vt.boolean)},!1),r!=null&&(_.isFunction(r)?n.paramsSerializer={serialize:r}:xr.assertOptions(r,{encode:vt.function,serialize:vt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),xr.assertOptions(n,{baseUrl:vt.spelling("baseURL"),withXsrfToken:vt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","query","common"],x=>{delete o[x]}),n.headers=at.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(g){if(typeof g.runWhen=="function"&&g.runWhen(n)===!1)return;l=l&&g.synchronous;const w=n.transitional||Ti;w&&w.legacyInterceptorReqResOrdering?a.unshift(g.fulfilled,g.rejected):a.push(g.fulfilled,g.rejected)});const u=[];this.interceptors.response.forEach(function(g){u.push(g.fulfilled,g.rejected)});let c,f=0,h;if(!l){const x=[Ya.bind(this),void 0];for(x.unshift(...a),x.push(...u),h=x.length,c=Promise.resolve(n);f{if(!s._listeners)return;let o=s._listeners.length;for(;o-- >0;)s._listeners[o](r);s._listeners=null}),this.promise.then=r=>{let o;const i=new Promise(a=>{s.subscribe(a),o=a}).then(r);return i.cancel=function(){s.unsubscribe(o)},i},t(function(o,i,a){s.reason||(s.reason=new ar(o,i,a),n(s.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=s=>{t.abort(s)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Cu(function(r){t=r}),cancel:t}}};function Ug(e){return function(n){return e.apply(null,n)}}function Hg(e){return _.isObject(e)&&e.isAxiosError===!0}const ti={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(ti).forEach(([e,t])=>{ti[t]=e});function Ru(e){const t=new Un(e),n=iu(Un.prototype.request,t);return _.extend(n,Un.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(r){return Ru(qn(e,r))},n}const Fe=Ru(ir);Fe.Axios=Un;Fe.CanceledError=ar;Fe.CancelToken=jg;Fe.isCancel=bu;Fe.VERSION=Di;Fe.toFormData=to;Fe.AxiosError=Q;Fe.Cancel=Fe.CanceledError;Fe.all=function(t){return Promise.all(t)};Fe.spread=Ug;Fe.isAxiosError=Hg;Fe.mergeConfig=qn;Fe.AxiosHeaders=at;Fe.formToJSON=e=>vu(_.isHTMLForm(e)?new FormData(e):e);Fe.getAdapter=Su.getAdapter;Fe.HttpStatusCode=ti;Fe.default=Fe;const{Axios:M0,AxiosError:k0,CanceledError:B0,isCancel:j0,CancelToken:U0,VERSION:H0,all:q0,Cancel:V0,isAxiosError:$0,spread:K0,toFormData:Q0,AxiosHeaders:z0,HttpStatusCode:W0,formToJSON:G0,getAdapter:J0,mergeConfig:Y0,create:X0}=Fe,Ls=Fe.create({baseURL:"/cc-dashboard",headers:{"Content-Type":"application/json"}});function qg(e,t){Ls.interceptors.request.use(n=>{const s=e();return s&&(n.headers.Authorization=`Bearer ${s}`),n}),Ls.interceptors.response.use(n=>n,n=>{var s;return((s=n.response)==null?void 0:s.status)===401&&t(),Promise.reject(n)})}const so=Ah("auth",()=>{const e=fe(null),t=fe(null),n=fe(!1),s=fe(null),r=me(()=>e.value!==null),o=me(()=>{var c;return((c=t.value)==null?void 0:c.role)==="admin"});async function i(c,f){var h,p;n.value=!0,s.value=null;try{const x=new URLSearchParams;x.append("username",c),x.append("password",f);const g=await Ls.post("/api/auth/login",x,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});e.value=g.data.access_token,await l()}catch(x){const g=x;throw s.value=((p=(h=g.response)==null?void 0:h.data)==null?void 0:p.detail)??"Login failed",x}finally{n.value=!1}}async function a(){try{await Ls.post("/api/auth/logout")}catch{}finally{e.value=null,t.value=null}}async function l(){const c=await Ls.get("/api/auth/me");t.value=c.data}function u(){return e.value}return{token:e,user:t,loading:n,error:s,isAuthenticated:r,isAdmin:o,login:i,logout:a,fetchMe:l,getToken:u}}),Vg={key:0,class:"absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-red-500 text-white text-xs font-bold"},$g={key:0,class:"fixed bottom-6 right-6 z-50 flex flex-col w-[380px] max-h-[600px] rounded-2xl bg-gray-900 border border-gray-700 shadow-2xl overflow-hidden"},Kg={class:"flex items-center justify-between px-4 py-3 border-b border-gray-700 bg-gray-800 flex-shrink-0"},Qg={class:"flex items-center gap-1"},zg={key:0,class:"flex flex-col items-center justify-center h-full py-8 text-center"},Wg={class:"mt-4 flex flex-wrap justify-center gap-2"},Gg=["onClick"],Jg={key:0,class:"flex justify-end"},Yg={class:"max-w-[80%] rounded-2xl rounded-tr-sm bg-amber-400 px-3 py-2"},Xg={class:"text-sm text-gray-900"},Zg={key:1,class:"flex justify-start"},ey={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},ty=["innerHTML"],ny={key:1,class:"flex justify-start"},sy={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},ry={key:0,class:"mb-2 space-y-1"},oy=["innerHTML"],iy={key:2,class:"flex items-center gap-1"},ay={class:"flex-shrink-0 border-t border-gray-700 bg-gray-800 p-3"},ly={class:"flex items-end gap-2"},cy=["disabled","onKeydown"],uy=["disabled"],fy=Vn({__name:"AssistantWidget",setup(e){const t=so(),n=fe(!1),s=fe([]),r=fe(""),o=fe(!1),i=fe(""),a=fe([]),l=fe(0),u=fe(),c=fe(),f=["Check today for gaps","How many hours this week?","Any uncategorized sessions?","Summarize yesterday"];function h(D){return{get_daily_summary:"Loading daily summary…",get_sessions:"Fetching sessions…",get_project_stats:"Calculating project hours…",detect_anomalies:"Scanning for gaps…",create_manual_entry:"Creating manual entry…",set_session_category:"Updating category…",get_unresolved_flags:"Loading flags…"}[D]??`Running ${D}…`}function p(D){return D.replace(/&/g,"&").replace(//g,">").replace(/### (.+)/g,'

$1

').replace(/## (.+)/g,'

$1

').replace(/# (.+)/g,'

$1

').replace(/\*\*(.+?)\*\*/g,'$1').replace(/`(.+?)`/g,'$1').replace(/^- (.+)/gm,'
  • $1
  • ').replace(/^(\d+)\. (.+)/gm,'
  • $2
  • ').replace(/<\/li>\n
  • ').replace(/\n/g,"
    ")}async function x(){try{const D=await fetch("/cc-dashboard/api/assistant/history?limit=30",{headers:{Authorization:`Bearer ${t.token}`}});if(!D.ok)return;s.value=await D.json()}catch{}}async function g(){try{const D=await fetch("/cc-dashboard/api/assistant/flags?days_back=7&resolved=false",{headers:{Authorization:`Bearer ${t.token}`}});if(!D.ok)return;const E=await D.json();l.value=E.length}catch{}}async function w(){await fetch("/cc-dashboard/api/assistant/history",{method:"DELETE",headers:{Authorization:`Bearer ${t.token}`}}),s.value=[]}function S(){R("Show me all unresolved time-tracking issues from the last 7 days")}function R(D){r.value=D,y()}async function y(){const D=r.value.trim();if(!D||o.value)return;r.value="",$();const E={id:crypto.randomUUID(),role:"user",content:D,created_at:new Date().toISOString()};s.value.push(E),v(),o.value=!0,i.value="",a.value=[];try{const B=await fetch("/cc-dashboard/api/assistant/chat",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},body:JSON.stringify({message:D})});if(!B.ok||!B.body)throw new Error(`HTTP ${B.status}`);const z=B.body.getReader(),j=new TextDecoder;let te="";for(;;){const{done:ae,value:Se}=await z.read();if(ae)break;te+=j.decode(Se,{stream:!0});const le=te.split(` -`);te=le.pop()??"";for(const Y of le){if(!Y.startsWith("data: "))continue;const oe=Y.slice(6).trim();if(oe!=="[DONE]")try{const ue=JSON.parse(oe);ue.type==="text"?(i.value+=ue.text,v()):ue.type==="tool_start"?a.value.includes(ue.tool)||a.value.push(ue.tool):ue.type==="tool_result"?a.value=a.value.filter(ye=>ye!==ue.tool):ue.type==="error"&&(i.value=ue.text)}catch{}}}i.value&&s.value.push({id:crypto.randomUUID(),role:"assistant",content:i.value,created_at:new Date().toISOString()}),await g()}catch{s.value.push({id:crypto.randomUUID(),role:"assistant",content:"Failed to get response. Please try again.",created_at:new Date().toISOString()})}finally{o.value=!1,i.value="",a.value=[],v()}}function v(){Hn(()=>{u.value&&(u.value.scrollTop=u.value.scrollHeight)})}function N(D){const E=D.target;E.style.height="auto",E.style.height=`${Math.min(E.scrollHeight,96)}px`}function $(){c.value&&(c.value.style.height="auto")}async function k(){n.value=!0,await x(),Hn(()=>{var D;return(D=c.value)==null?void 0:D.focus()}),v()}return Us(()=>{g(),setInterval(g,5*60*1e3)}),wn(n,D=>{D&&g()}),(D,E)=>(Z(),ce(Re,null,[n.value?st("",!0):(Z(),ce("button",{key:0,class:"fixed bottom-6 right-6 z-50 flex h-14 w-14 items-center justify-center rounded-full bg-amber-400 text-gray-900 shadow-lg hover:bg-amber-300 transition-all duration-200 hover:scale-105 active:scale-95",title:"AI Assistant",onClick:k},[E[2]||(E[2]=G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-7 w-7",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[G("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})],-1)),l.value>0?(Z(),ce("span",Vg,Ct(l.value>9?"9+":l.value),1)):st("",!0)])),Te($d,{name:"slide-up"},{default:fn(()=>[n.value?(Z(),ce("div",$g,[G("div",Kg,[E[6]||(E[6]=G("div",{class:"flex items-center gap-2"},[G("div",{class:"flex h-8 w-8 items-center justify-center rounded-full bg-amber-400"},[G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 text-gray-900",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[G("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})])]),G("div",null,[G("p",{class:"text-sm font-semibold text-white"},"Time Analyst"),G("p",{class:"text-xs text-gray-400"},"AI assistant")])],-1)),G("div",Qg,[l.value>0?(Z(),ce("button",{key:0,class:"flex items-center gap-1 rounded-full bg-red-900/40 px-2 py-0.5 text-xs text-red-400 hover:bg-red-900/60 transition-colors",title:"View anomalies",onClick:S},[E[3]||(E[3]=G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-3 w-3",viewBox:"0 0 20 20",fill:"currentColor"},[G("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),Vs(" "+Ct(l.value)+" issue"+Ct(l.value>1?"s":""),1)])):st("",!0),G("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors",title:"Clear history",onClick:w},[...E[4]||(E[4]=[G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[G("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])]),G("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors",onClick:E[0]||(E[0]=B=>n.value=!1)},[...E[5]||(E[5]=[G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[G("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),G("div",{ref_key:"messagesEl",ref:u,class:"flex-1 overflow-y-auto p-3 space-y-3 min-h-0"},[s.value.length===0&&!o.value?(Z(),ce("div",zg,[E[7]||(E[7]=G("div",{class:"h-12 w-12 rounded-full bg-amber-400/10 flex items-center justify-center mb-3"},[G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[G("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})])],-1)),E[8]||(E[8]=G("p",{class:"text-sm font-medium text-gray-300"},"Time Analyst",-1)),E[9]||(E[9]=G("p",{class:"text-xs text-gray-500 mt-1"},"Ask me about your hours, gaps, or missing time entries.",-1)),G("div",Wg,[(Z(),ce(Re,null,ts(f,B=>G("button",{key:B,class:"rounded-full border border-gray-600 px-3 py-1.5 text-xs text-gray-400 hover:border-amber-400 hover:text-amber-400 transition-colors",onClick:z=>R(B)},Ct(B),9,Gg)),64))])])):st("",!0),(Z(!0),ce(Re,null,ts(s.value,B=>(Z(),ce(Re,{key:B.id},[B.role==="user"?(Z(),ce("div",Jg,[G("div",Yg,[G("p",Xg,Ct(B.content),1)])])):(Z(),ce("div",Zg,[G("div",ey,[G("div",{class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:p(B.content)},null,8,ty)])]))],64))),128)),o.value||i.value?(Z(),ce("div",ny,[G("div",sy,[a.value.length>0?(Z(),ce("div",ry,[(Z(!0),ce(Re,null,ts(a.value,B=>(Z(),ce("div",{key:B,class:"flex items-center gap-1.5 text-xs text-amber-400"},[E[10]||(E[10]=G("svg",{class:"h-3 w-3 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[G("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),G("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),Vs(" "+Ct(h(B)),1)]))),128))])):st("",!0),i.value?(Z(),ce("div",{key:1,class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:p(i.value)},null,8,oy)):(Z(),ce("div",iy,[...E[11]||(E[11]=[G("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"0ms"}},null,-1),G("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"150ms"}},null,-1),G("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"300ms"}},null,-1)])]))])])):st("",!0)],512),G("div",ay,[G("div",ly,[Df(G("textarea",{ref_key:"inputEl",ref:c,"onUpdate:modelValue":E[1]||(E[1]=B=>r.value=B),rows:"1",placeholder:"Ask about your time...",class:"flex-1 resize-none rounded-xl bg-gray-700 border border-gray-600 px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:border-amber-400 transition-colors max-h-24 overflow-y-auto",disabled:o.value,onKeydown:[Aa(Ra(y,["exact","prevent"]),["enter"]),Aa(Ra(()=>{},["shift","exact"]),["enter"])],onInput:N},null,40,cy),[[dh,r.value]]),G("button",{disabled:!r.value.trim()||o.value,class:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-xl bg-amber-400 text-gray-900 transition-all hover:bg-amber-300 disabled:opacity-40 disabled:cursor-not-allowed",onClick:y},[...E[12]||(E[12]=[G("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor"},[G("path",{d:"M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z"})],-1)])],8,uy)]),E[13]||(E[13]=G("p",{class:"mt-1.5 text-center text-xs text-gray-600"},"Enter to send · Shift+Enter for newline",-1))])])):st("",!0)]),_:1})],64))}}),dy=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},hy=dy(fy,[["__scopeId","data-v-5edd7614"]]),py=Vn({__name:"App",setup(e){const t=so(),n=me(()=>t.isAuthenticated);return(s,r)=>{const o=Xf("RouterView");return Z(),ce(Re,null,[Te(o),n.value?(Z(),Ut(hy,{key:0})):st("",!0),Te(Ke(em),{position:"top-right","toast-options":{style:{background:"hsl(var(--card))",color:"hsl(var(--card-foreground))",border:"1px solid hsl(var(--border))"}}})],64)}}}),my="modulepreload",gy=function(e){return"/cc-dashboard/"+e},Za={},bt=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(l=>{if(l=gy(l),l in Za)return;Za[l]=!0;const u=l.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":my,u||(f.as="script"),f.crossOrigin="",f.href=l,a&&f.setAttribute("nonce",a),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return r.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})};/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */const Gn=typeof document<"u";function Au(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function yy(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Au(e.default)}const be=Object.assign;function Ro(e,t){const n={};for(const s in t){const r=t[s];n[s]=Tt(r)?r.map(e):e(r)}return n}const Fs=()=>{},Tt=Array.isArray;function el(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const Ou=/#/g,vy=/&/g,by=/\//g,wy=/=/g,_y=/\?/g,Tu=/\+/g,xy=/%5B/g,Ey=/%5D/g,Pu=/%5E/g,Sy=/%60/g,Du=/%7B/g,Cy=/%7C/g,Nu=/%7D/g,Ry=/%20/g;function Ii(e){return e==null?"":encodeURI(""+e).replace(Cy,"|").replace(xy,"[").replace(Ey,"]")}function Ay(e){return Ii(e).replace(Du,"{").replace(Nu,"}").replace(Pu,"^")}function ni(e){return Ii(e).replace(Tu,"%2B").replace(Ry,"+").replace(Ou,"%23").replace(vy,"%26").replace(Sy,"`").replace(Du,"{").replace(Nu,"}").replace(Pu,"^")}function Oy(e){return ni(e).replace(wy,"%3D")}function Ty(e){return Ii(e).replace(Ou,"%23").replace(_y,"%3F")}function Py(e){return Ty(e).replace(by,"%2F")}function Ws(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Dy=/\/$/,Ny=e=>e.replace(Dy,"");function Ao(e,t,n="/"){let s,r={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(s=t.slice(0,l),o=t.slice(l,a>0?a:t.length),r=e(o.slice(1))),a>=0&&(s=s||t.slice(0,a),i=t.slice(a,t.length)),s=My(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:Ws(i)}}function Iy(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function tl(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ly(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&hs(t.matched[s],n.matched[r])&&Iu(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function hs(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Iu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Fy(e[n],t[n]))return!1;return!0}function Fy(e,t){return Tt(e)?nl(e,t):Tt(t)?nl(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function nl(e,t){return Tt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function My(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const on={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let si=function(e){return e.pop="pop",e.push="push",e}({}),Oo=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function ky(e){if(!e)if(Gn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ny(e)}const By=/^[^#]+#/;function jy(e,t){return e.replace(By,"#")+t}function Uy(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const ro=()=>({left:window.scrollX,top:window.scrollY});function Hy(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Uy(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function sl(e,t){return(history.state?history.state.position-t:-1)+e}const ri=new Map;function qy(e,t){ri.set(e,t)}function Vy(e){const t=ri.get(e);return ri.delete(e),t}function $y(e){return typeof e=="string"||e&&typeof e=="object"}function Lu(e){return typeof e=="string"||typeof e=="symbol"}let Ie=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const Fu=Symbol("");Ie.MATCHER_NOT_FOUND+"",Ie.NAVIGATION_GUARD_REDIRECT+"",Ie.NAVIGATION_ABORTED+"",Ie.NAVIGATION_CANCELLED+"",Ie.NAVIGATION_DUPLICATED+"";function ps(e,t){return be(new Error,{type:e,[Fu]:!0},t)}function $t(e,t){return e instanceof Error&&Fu in e&&(t==null||!!(e.type&t))}const Ky=["params","query","hash"];function Qy(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Ky)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function zy(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&ni(r)):[s&&ni(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Wy(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Tt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const Gy=Symbol(""),ol=Symbol(""),oo=Symbol(""),Li=Symbol(""),oi=Symbol("");function xs(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function dn(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((a,l)=>{const u=h=>{h===!1?l(ps(Ie.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?l(h):$y(h)?l(ps(Ie.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&s.enterCallbacks[r]===i&&typeof h=="function"&&i.push(h),a())},c=o(()=>e.call(s&&s.instances[r],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(h=>l(h))})}function To(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(Au(l)){const u=(l.__vccOpts||l)[t];u&&o.push(dn(u,n,s,i,a,r))}else{let u=l();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=yy(c)?c.default:c;i.mods[a]=c,i.components[a]=f;const h=(f.__vccOpts||f)[t];return h&&dn(h,n,s,i,a,r)()}))}}return o}function Jy(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;ihs(u,a))?s.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(u=>hs(u,l))||r.push(l))}return[n,s,r]}/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let Yy=()=>location.protocol+"//"+location.host;function Mu(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,a=r.slice(i);return a[0]!=="/"&&(a="/"+a),tl(a,"")}return tl(n,e)+s+r}function Xy(e,t,n,s){let r=[],o=[],i=null;const a=({state:h})=>{const p=Mu(e,location),x=n.value,g=t.value;let w=0;if(h){if(n.value=p,t.value=h,i&&i===x){i=null;return}w=g?h.position-g.position:0}else s(p);r.forEach(S=>{S(n.value,x,{delta:w,type:si.pop,direction:w?w>0?Oo.forward:Oo.back:Oo.unknown})})};function l(){i=n.value}function u(h){r.push(h);const p=()=>{const x=r.indexOf(h);x>-1&&r.splice(x,1)};return o.push(p),p}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(be({},h.state,{scroll:ro()}),"")}}function f(){for(const h of o)h();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:u,destroy:f}}function il(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?ro():null}}function Zy(e){const{history:t,location:n}=window,s={value:Mu(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,u,c){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Yy()+e+l;try{t[c?"replaceState":"pushState"](u,"",h),r.value=u}catch(p){console.error(p),n[c?"replace":"assign"](h)}}function i(l,u){o(l,be({},t.state,il(r.value.back,l,r.value.forward,!0),u,{position:r.value.position}),!0),s.value=l}function a(l,u){const c=be({},r.value,t.state,{forward:l,scroll:ro()});o(c.current,c,!0),o(l,be({},il(s.value,l,null),{position:c.position+1},u),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function e0(e){e=ky(e);const t=Zy(e),n=Xy(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=be({location:"",base:e,go:s,createHref:jy.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Dn=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var je=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(je||{});const t0={type:Dn.Static,value:""},n0=/[a-zA-Z0-9_]/;function s0(e){if(!e)return[[]];if(e==="/")return[[t0]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=je.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,u="",c="";function f(){u&&(n===je.Static?o.push({type:Dn.Static,value:u}):n===je.Param||n===je.ParamRegExp||n===je.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Dn.Param,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;at.length?t.length===1&&t[0]===nt.Static+nt.Segment?1:-1:0}function ku(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const l0={strict:!1,end:!0,sensitive:!1};function c0(e,t,n){const s=i0(s0(e.path),n),r=be(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function u0(e,t){const n=[],s=new Map;t=el(l0,t);function r(f){return s.get(f)}function o(f,h,p){const x=!p,g=ul(f);g.aliasOf=p&&p.record;const w=el(t,f),S=[g];if("alias"in f){const v=typeof f.alias=="string"?[f.alias]:f.alias;for(const N of v)S.push(ul(be({},g,{components:p?p.record.components:g.components,path:N,aliasOf:p?p.record:g})))}let R,y;for(const v of S){const{path:N}=v;if(h&&N[0]!=="/"){const $=h.record.path,k=$[$.length-1]==="/"?"":"/";v.path=h.record.path+(N&&k+N)}if(R=c0(v,h,w),p?p.alias.push(R):(y=y||R,y!==R&&y.alias.push(R),x&&f.name&&!fl(R)&&i(f.name)),Bu(R)&&l(R),g.children){const $=g.children;for(let k=0;k<$.length;k++)o($[k],R,p&&p.children[k])}p=p||R}return y?()=>{i(y)}:Fs}function i(f){if(Lu(f)){const h=s.get(f);h&&(s.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const h=h0(f,n);n.splice(h,0,f),f.record.name&&!fl(f)&&s.set(f.record.name,f)}function u(f,h){let p,x={},g,w;if("name"in f&&f.name){if(p=s.get(f.name),!p)throw ps(Ie.MATCHER_NOT_FOUND,{location:f});w=p.record.name,x=be(cl(h.params,p.keys.filter(y=>!y.optional).concat(p.parent?p.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),f.params&&cl(f.params,p.keys.map(y=>y.name))),g=p.stringify(x)}else if(f.path!=null)g=f.path,p=n.find(y=>y.re.test(g)),p&&(x=p.parse(g),w=p.record.name);else{if(p=h.name?s.get(h.name):n.find(y=>y.re.test(h.path)),!p)throw ps(Ie.MATCHER_NOT_FOUND,{location:f,currentLocation:h});w=p.record.name,x=be({},h.params,f.params),g=p.stringify(x)}const S=[];let R=p;for(;R;)S.unshift(R.record),R=R.parent;return{name:w,path:g,params:x,matched:S,meta:d0(S)}}e.forEach(f=>o(f));function c(){n.length=0,s.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:r}}function cl(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function ul(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:f0(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function f0(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function fl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function d0(e){return e.reduce((t,n)=>be(t,n.meta),{})}function h0(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;ku(e,t[o])<0?s=o:n=o+1}const r=p0(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function p0(e){let t=e;for(;t=t.parent;)if(Bu(t)&&ku(e,t)===0)return t}function Bu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function dl(e){const t=xt(oo),n=xt(Li),s=me(()=>{const l=Ke(e.to);return t.resolve(l)}),r=me(()=>{const{matched:l}=s.value,{length:u}=l,c=l[u-1],f=n.matched;if(!c||!f.length)return-1;const h=f.findIndex(hs.bind(null,c));if(h>-1)return h;const p=hl(l[u-2]);return u>1&&hl(c)===p&&f[f.length-1].path!==p?f.findIndex(hs.bind(null,l[u-2])):h}),o=me(()=>r.value>-1&&b0(n.params,s.value.params)),i=me(()=>r.value>-1&&r.value===n.matched.length-1&&Iu(n.params,s.value.params));function a(l={}){if(v0(l)){const u=t[Ke(e.replace)?"replace":"push"](Ke(e.to)).catch(Fs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:me(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function m0(e){return e.length===1?e[0]:e}const g0=Vn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:dl,setup(e,{slots:t}){const n=Zs(dl(e)),{options:s}=xt(oo),r=me(()=>({[pl(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[pl(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&m0(t.default(n));return e.custom?o:Ci("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),y0=g0;function v0(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function b0(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Tt(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function hl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const pl=(e,t,n)=>e??t??n,w0=Vn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=xt(oi),r=me(()=>e.route||s.value),o=xt(ol,0),i=me(()=>{let u=Ke(o);const{matched:c}=r.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=me(()=>r.value.matched[i.value]);yr(ol,me(()=>i.value+1)),yr(Gy,a),yr(oi,r);const l=fe();return wn(()=>[l.value,a.value,e.name],([u,c,f],[h,p,x])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===h&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!hs(c,p)||!h)&&(c.enterCallbacks[f]||[]).forEach(g=>g(u))},{flush:"post"}),()=>{const u=r.value,c=e.name,f=a.value,h=f&&f.components[c];if(!h)return ml(n.default,{Component:h,route:u});const p=f.props[c],x=p?p===!0?u.params:typeof p=="function"?p(u):p:null,w=Ci(h,be({},x,t,{onVnodeUnmounted:S=>{S.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return ml(n.default,{Component:w,route:u})||w}}});function ml(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const _0=w0;function x0(e){const t=u0(e.routes,e),n=e.parseQuery||zy,s=e.stringifyQuery||rl,r=e.history,o=xs(),i=xs(),a=xs(),l=vf(on);let u=on;Gn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Ro.bind(null,C=>""+C),f=Ro.bind(null,Py),h=Ro.bind(null,Ws);function p(C,L){let M,K;return Lu(C)?(M=t.getRecordMatcher(C),K=L):K=C,t.addRoute(K,M)}function x(C){const L=t.getRecordMatcher(C);L&&t.removeRoute(L)}function g(){return t.getRoutes().map(C=>C.record)}function w(C){return!!t.getRecordMatcher(C)}function S(C,L){if(L=be({},L||l.value),typeof C=="string"){const b=Ao(n,C,L.path),T=t.resolve({path:b.path},L),I=r.createHref(b.fullPath);return be(b,T,{params:h(T.params),hash:Ws(b.hash),redirectedFrom:void 0,href:I})}let M;if(C.path!=null)M=be({},C,{path:Ao(n,C.path,L.path).path});else{const b=be({},C.params);for(const T in b)b[T]==null&&delete b[T];M=be({},C,{params:f(b)}),L.params=f(L.params)}const K=t.resolve(M,L),se=C.hash||"";K.params=c(h(K.params));const d=Iy(s,be({},C,{hash:Ay(se),path:K.path})),m=r.createHref(d);return be({fullPath:d,hash:se,query:s===rl?Wy(C.query):C.query||{}},K,{redirectedFrom:void 0,href:m})}function R(C){return typeof C=="string"?Ao(n,C,l.value.path):be({},C)}function y(C,L){if(u!==C)return ps(Ie.NAVIGATION_CANCELLED,{from:L,to:C})}function v(C){return k(C)}function N(C){return v(be(R(C),{replace:!0}))}function $(C,L){const M=C.matched[C.matched.length-1];if(M&&M.redirect){const{redirect:K}=M;let se=typeof K=="function"?K(C,L):K;return typeof se=="string"&&(se=se.includes("?")||se.includes("#")?se=R(se):{path:se},se.params={}),be({query:C.query,hash:C.hash,params:se.path!=null?{}:C.params},se)}}function k(C,L){const M=u=S(C),K=l.value,se=C.state,d=C.force,m=C.replace===!0,b=$(M,K);if(b)return k(be(R(b),{state:typeof b=="object"?be({},se,b.state):se,force:d,replace:m}),L||M);const T=M;T.redirectedFrom=L;let I;return!d&&Ly(s,K,M)&&(I=ps(Ie.NAVIGATION_DUPLICATED,{to:T,from:K}),Le(K,K,!0,!1)),(I?Promise.resolve(I):B(T,K)).catch(P=>$t(P)?$t(P,Ie.NAVIGATION_GUARD_REDIRECT)?P:ye(P):oe(P,T,K)).then(P=>{if(P){if($t(P,Ie.NAVIGATION_GUARD_REDIRECT))return k(be({replace:m},R(P.to),{state:typeof P.to=="object"?be({},se,P.to.state):se,force:d}),L||T)}else P=j(T,K,!0,m,se);return z(T,K,P),P})}function D(C,L){const M=y(C,L);return M?Promise.reject(M):Promise.resolve()}function E(C){const L=Ve.values().next().value;return L&&typeof L.runWithContext=="function"?L.runWithContext(C):C()}function B(C,L){let M;const[K,se,d]=Jy(C,L);M=To(K.reverse(),"beforeRouteLeave",C,L);for(const b of K)b.leaveGuards.forEach(T=>{M.push(dn(T,C,L))});const m=D.bind(null,C,L);return M.push(m),ie(M).then(()=>{M=[];for(const b of o.list())M.push(dn(b,C,L));return M.push(m),ie(M)}).then(()=>{M=To(se,"beforeRouteUpdate",C,L);for(const b of se)b.updateGuards.forEach(T=>{M.push(dn(T,C,L))});return M.push(m),ie(M)}).then(()=>{M=[];for(const b of d)if(b.beforeEnter)if(Tt(b.beforeEnter))for(const T of b.beforeEnter)M.push(dn(T,C,L));else M.push(dn(b.beforeEnter,C,L));return M.push(m),ie(M)}).then(()=>(C.matched.forEach(b=>b.enterCallbacks={}),M=To(d,"beforeRouteEnter",C,L,E),M.push(m),ie(M))).then(()=>{M=[];for(const b of i.list())M.push(dn(b,C,L));return M.push(m),ie(M)}).catch(b=>$t(b,Ie.NAVIGATION_CANCELLED)?b:Promise.reject(b))}function z(C,L,M){a.list().forEach(K=>E(()=>K(C,L,M)))}function j(C,L,M,K,se){const d=y(C,L);if(d)return d;const m=L===on,b=Gn?history.state:{};M&&(K||m?r.replace(C.fullPath,be({scroll:m&&b&&b.scroll},se)):r.push(C.fullPath,se)),l.value=C,Le(C,L,M,m),ye()}let te;function ae(){te||(te=r.listen((C,L,M)=>{if(!A.listening)return;const K=S(C),se=$(K,A.currentRoute.value);if(se){k(be(se,{replace:!0,force:!0}),K).catch(Fs);return}u=K;const d=l.value;Gn&&qy(sl(d.fullPath,M.delta),ro()),B(K,d).catch(m=>$t(m,Ie.NAVIGATION_ABORTED|Ie.NAVIGATION_CANCELLED)?m:$t(m,Ie.NAVIGATION_GUARD_REDIRECT)?(k(be(R(m.to),{force:!0}),K).then(b=>{$t(b,Ie.NAVIGATION_ABORTED|Ie.NAVIGATION_DUPLICATED)&&!M.delta&&M.type===si.pop&&r.go(-1,!1)}).catch(Fs),Promise.reject()):(M.delta&&r.go(-M.delta,!1),oe(m,K,d))).then(m=>{m=m||j(K,d,!1),m&&(M.delta&&!$t(m,Ie.NAVIGATION_CANCELLED)?r.go(-M.delta,!1):M.type===si.pop&&$t(m,Ie.NAVIGATION_ABORTED|Ie.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),z(K,d,m)}).catch(Fs)}))}let Se=xs(),le=xs(),Y;function oe(C,L,M){ye(C);const K=le.list();return K.length?K.forEach(se=>se(C,L,M)):console.error(C),Promise.reject(C)}function ue(){return Y&&l.value!==on?Promise.resolve():new Promise((C,L)=>{Se.add([C,L])})}function ye(C){return Y||(Y=!C,ae(),Se.list().forEach(([L,M])=>C?M(C):L()),Se.reset()),C}function Le(C,L,M,K){const{scrollBehavior:se}=e;if(!Gn||!se)return Promise.resolve();const d=!M&&Vy(sl(C.fullPath,0))||(K||!M)&&history.state&&history.state.scroll||null;return Hn().then(()=>se(C,L,d)).then(m=>m&&Hy(m)).catch(m=>oe(m,C,L))}const ke=C=>r.go(C);let Oe;const Ve=new Set,A={currentRoute:l,listening:!0,addRoute:p,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:g,resolve:S,options:e,push:v,replace:N,go:ke,back:()=>ke(-1),forward:()=>ke(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:le.add,isReady:ue,install(C){C.component("RouterLink",y0),C.component("RouterView",_0),C.config.globalProperties.$router=A,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>Ke(l)}),Gn&&!Oe&&l.value===on&&(Oe=!0,v(r.location).catch(K=>{}));const L={};for(const K in on)Object.defineProperty(L,K,{get:()=>l.value[K],enumerable:!0});C.provide(oo,A),C.provide(Li,Xl(L)),C.provide(oi,l);const M=C.unmount;Ve.add(C),C.unmount=function(){Ve.delete(C),Ve.size<1&&(u=on,te&&te(),te=null,l.value=on,Oe=!1,Y=!1),M()}}};function ie(C){return C.reduce((L,M)=>L.then(()=>E(M)),Promise.resolve())}return A}function Z0(){return xt(oo)}function ev(e){return xt(Li)}const E0=[{path:"/login",name:"login",component:()=>bt(()=>import("./LoginView-mR80ecLx.js"),__vite__mapDeps([0,1,2,3,4])),meta:{public:!0}},{path:"/",component:()=>bt(()=>import("./AppLayout-aqZRYFo0.js"),__vite__mapDeps([5,1,2])),children:[{path:"",name:"dashboard",component:()=>bt(()=>import("./DashboardView-BcXtk3TP.js"),__vite__mapDeps([6,7,4,2,8,9,1]))},{path:"calendar",name:"calendar",component:()=>bt(()=>import("./CalendarView-Cia6IWHT.js"),__vite__mapDeps([10,7,2,1,11,12,3,13,14,15]))},{path:"planner",name:"planner",component:()=>bt(()=>import("./PlannerView-D0u94Wlo.js"),__vite__mapDeps([16,11,12,1,2,3,13,14]))},{path:"projects",name:"projects",component:()=>bt(()=>import("./ProjectsView-CXlJ3SQr.js"),__vite__mapDeps([17,7,4,2,9]))},{path:"projects/:id",name:"project-detail",component:()=>bt(()=>import("./ProjectDetailView-BMwGH_sH.js"),__vite__mapDeps([18,7,4,2,8]))},{path:"live",name:"live",component:()=>bt(()=>import("./LiveView-B2nQO5D7.js"),__vite__mapDeps([19,4,2,1]))},{path:"reports",name:"reports",component:()=>bt(()=>import("./ReportsView-CHQOjaZg.js"),__vite__mapDeps([20,4,2,14,1,21]))},{path:"keys",name:"keys",component:()=>bt(()=>import("./KeysView-DlEd1ipQ.js"),__vite__mapDeps([22,23,4,2,1,12,3]))},{path:"settings",name:"settings",component:()=>bt(()=>import("./SettingsView-Bo1DQQSd.js"),__vite__mapDeps([24,13,4,2,8,3,1]))},{path:"admin",name:"admin",component:()=>bt(()=>import("./AdminView-DrzhLCxy.js"),__vite__mapDeps([25,23,4,2,14])),meta:{adminOnly:!0}}]},{path:"/:pathMatch(.*)*",redirect:"/"}],Fi=x0({history:e0("/cc-dashboard/"),routes:E0});Fi.beforeEach((e,t,n)=>{const s=so();if(e.meta.public){n();return}if(!s.isAuthenticated){n({name:"login",query:{redirect:e.fullPath}});return}if(e.meta.adminOnly&&!s.isAdmin){n({name:"dashboard"});return}n()});const io=vh(py),S0=_h();io.use(S0);io.use(Fi);io.use(lp);const gl=so();qg(()=>gl.getToken(),()=>{gl.logout(),Fi.push({name:"login"})});io.mount("#app");export{dh as A,Ah as B,O0 as C,Ls as D,gc as E,Re as F,R0 as G,N0 as K,$d as T,dy as _,G as a,A0 as b,ce as c,Vn as d,Te as e,Z0 as f,ev as g,Ra as h,Ke as i,st as j,Vs as k,ts as l,me as m,Ut as n,Z as o,dt as p,Xf as q,fe as r,bn as s,Ct as t,so as u,_t as v,fn as w,wn as x,Us as y,Df as z}; diff --git a/src/static/assets/index-ZkX-rg-0.js b/src/static/assets/index-ZkX-rg-0.js new file mode 100644 index 0000000..4b7598d --- /dev/null +++ b/src/static/assets/index-ZkX-rg-0.js @@ -0,0 +1,40 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-D-vh1CtU.js","assets/Button.vue_vue_type_script_setup_true_lang-CeodyRvV.js","assets/utils-DWBfPysr.js","assets/Input.vue_vue_type_script_setup_true_lang-BzTd5oOE.js","assets/CardContent.vue_vue_type_script_setup_true_lang-DGh5KRxz.js","assets/DashboardView-DcIc21XJ.js","assets/dashboard-C1cvUjRU.js","assets/CardTitle.vue_vue_type_script_setup_true_lang-CpwJW48B.js","assets/Progress.vue_vue_type_script_setup_true_lang-CWTZuml2.js","assets/CalendarView-57qKDHXv.js","assets/TaskForm.vue_vue_type_script_setup_true_lang-CuKcY82G.js","assets/Dialog.vue_vue_type_script_setup_true_lang-BilK24Vk.js","assets/devops-CMTMKOVx.js","assets/Badge.vue_vue_type_script_setup_true_lang-Cs8z3MtN.js","assets/CalendarView-DGmJamL9.css","assets/PlannerView-B53ml6Jv.js","assets/ProjectsView-FlluaTSw.js","assets/ProjectDetailView-HHN-7tDi.js","assets/LiveView-BTg6aFjJ.js","assets/ReportsView-CY6XM5MA.js","assets/ReportsView-BczQ2gJa.css","assets/KeysView-B2aWyAvt.js","assets/admin-D88IFW1N.js","assets/SettingsView-CusXhUxP.js","assets/AdminView-CpcQgA1O.js"])))=>i.map(i=>d[i]); +var ji=e=>{throw TypeError(e)};var ao=(e,t,n)=>t.has(e)||ji("Cannot "+n);var O=(e,t,n)=>(ao(e,t,"read from private field"),n?n.call(e):t.get(e)),pe=(e,t,n)=>t.has(e)?ji("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ne=(e,t,n,s)=>(ao(e,t,"write to private field"),s?s.call(e,n):t.set(e,n),n),$e=(e,t,n)=>(ao(e,t,"access private method"),n);var lr=(e,t,n,s)=>({set _(r){ne(e,t,r,n)},get _(){return O(e,t,s)}});(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** +* @vue/shared v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ai(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Se={},Yn=[],Ht=()=>{},Al=()=>!1,Lr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fr=e=>e.startsWith("onUpdate:"),He=Object.assign,li=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ju=Object.prototype.hasOwnProperty,_e=(e,t)=>ju.call(e,t),Z=Array.isArray,Xn=e=>Xs(e)==="[object Map]",Ol=e=>Xs(e)==="[object Set]",Ui=e=>Xs(e)==="[object Date]",oe=e=>typeof e=="function",Ae=e=>typeof e=="string",gt=e=>typeof e=="symbol",xe=e=>e!==null&&typeof e=="object",Tl=e=>(xe(e)||oe(e))&&oe(e.then)&&oe(e.catch),Pl=Object.prototype.toString,Xs=e=>Pl.call(e),Uu=e=>Xs(e).slice(8,-1),Dl=e=>Xs(e)==="[object Object]",Mr=e=>Ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rs=ai(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),kr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hu=/-\w/g,it=kr(e=>e.replace(Hu,t=>t.slice(1).toUpperCase())),qu=/\B([A-Z])/g,xn=kr(e=>e.replace(qu,"-$1").toLowerCase()),Br=kr(e=>e.charAt(0).toUpperCase()+e.slice(1)),lo=kr(e=>e?`on${Br(e)}`:""),jt=(e,t)=>!Object.is(e,t),gr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},ci=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vu=e=>{const t=Ae(e)?Number(e):NaN;return isNaN(t)?e:t};let Hi;const jr=()=>Hi||(Hi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(Z(e)){const t={};for(let n=0;n{if(n){const s=n.split(Ku);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function dt(e){let t="";if(Ae(e))t=e;else if(Z(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Ct=e=>Ae(e)?e:e==null?"":Z(e)||xe(e)&&(e.toString===Pl||!oe(e.toString))?Ll(e)?Ct(e.value):JSON.stringify(e,Fl,2):String(e),Fl=(e,t)=>Ll(t)?Fl(e,t.value):Xn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[co(s,o)+" =>"]=r,n),{})}:Ol(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>co(n))}:gt(t)?co(t):xe(t)&&!Z(t)&&!Dl(t)?String(t):t,co=(e,t="")=>{var n;return gt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ue;class Ml{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ue&&(Ue.active?(this.parent=Ue,this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ue===this)Ue=this.prevScope;else{let t=Ue;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Os){let t=Os;for(Os=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;As;){let t=As;for(As=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function ql(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Vl(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),hi(s),Xu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Po(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&($l(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function $l(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ms)||(e.globalVersion=Ms,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Po(e))))return;e.flags|=2;const t=e.dep,n=Ce,s=Rt;Ce=e,Rt=!0;try{ql(e);const r=e.fn(e._value);(t.version===0||jt(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Ce=n,Rt=s,Vl(e),e.flags&=-3}}function hi(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)hi(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Rt=!0;const Kl=[];function Xt(){Kl.push(Rt),Rt=!1}function Zt(){const e=Kl.pop();Rt=e===void 0?!0:e}function Vi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ce;Ce=void 0;try{t()}finally{Ce=n}}}let Ms=0;class Zu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class pi{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Ce||!Rt||Ce===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ce)n=this.activeLink=new Zu(Ce,this),Ce.deps?(n.prevDep=Ce.depsTail,Ce.depsTail.nextDep=n,Ce.depsTail=n):Ce.deps=Ce.depsTail=n,Ql(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Ce.depsTail,n.nextDep=void 0,Ce.depsTail.nextDep=n,Ce.depsTail=n,Ce.deps===n&&(Ce.deps=s)}return n}trigger(t){this.version++,Ms++,this.notify(t)}notify(t){fi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{di()}}}function Ql(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ql(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Er=new WeakMap,Bn=Symbol(""),Do=Symbol(""),ks=Symbol("");function Ge(e,t,n){if(Rt&&Ce){let s=Er.get(e);s||Er.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new pi),r.map=s,r.key=n),r.track()}}function Gt(e,t,n,s,r,o){const i=Er.get(e);if(!i){Ms++;return}const a=l=>{l&&l.trigger()};if(fi(),t==="clear")i.forEach(a);else{const l=Z(e),u=l&&Mr(n);if(l&&n==="length"){const c=Number(s);i.forEach((f,h)=>{(h==="length"||h===ks||!gt(h)&&h>=c)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),u&&a(i.get(ks)),t){case"add":l?u&&a(i.get("length")):(a(i.get(Bn)),Xn(e)&&a(i.get(Do)));break;case"delete":l||(a(i.get(Bn)),Xn(e)&&a(i.get(Do)));break;case"set":Xn(e)&&a(i.get(Bn));break}}di()}function ef(e,t){const n=Er.get(e);return n&&n.get(t)}function $n(e){const t=ye(e);return t===e?t:(Ge(t,"iterate",ks),mt(e)?t:t.map(At))}function Ur(e){return Ge(e=ye(e),"iterate",ks),e}function kt(e,t){return en(e)?fs(Yt(e)?At(t):t):At(t)}const tf={__proto__:null,[Symbol.iterator](){return fo(this,Symbol.iterator,e=>kt(this,e))},concat(...e){return $n(this).concat(...e.map(t=>Z(t)?$n(t):t))},entries(){return fo(this,"entries",e=>(e[1]=kt(this,e[1]),e))},every(e,t){return qt(this,"every",e,t,void 0,arguments)},filter(e,t){return qt(this,"filter",e,t,n=>n.map(s=>kt(this,s)),arguments)},find(e,t){return qt(this,"find",e,t,n=>kt(this,n),arguments)},findIndex(e,t){return qt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return qt(this,"findLast",e,t,n=>kt(this,n),arguments)},findLastIndex(e,t){return qt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return qt(this,"forEach",e,t,void 0,arguments)},includes(...e){return ho(this,"includes",e)},indexOf(...e){return ho(this,"indexOf",e)},join(e){return $n(this).join(e)},lastIndexOf(...e){return ho(this,"lastIndexOf",e)},map(e,t){return qt(this,"map",e,t,void 0,arguments)},pop(){return gs(this,"pop")},push(...e){return gs(this,"push",e)},reduce(e,...t){return $i(this,"reduce",e,t)},reduceRight(e,...t){return $i(this,"reduceRight",e,t)},shift(){return gs(this,"shift")},some(e,t){return qt(this,"some",e,t,void 0,arguments)},splice(...e){return gs(this,"splice",e)},toReversed(){return $n(this).toReversed()},toSorted(e){return $n(this).toSorted(e)},toSpliced(...e){return $n(this).toSpliced(...e)},unshift(...e){return gs(this,"unshift",e)},values(){return fo(this,"values",e=>kt(this,e))}};function fo(e,t,n){const s=Ur(e),r=s[t]();return s!==e&&!mt(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=n(o.value)),o}),r}const nf=Array.prototype;function qt(e,t,n,s,r,o){const i=Ur(e),a=i!==e&&!mt(e),l=i[t];if(l!==nf[t]){const f=l.apply(e,o);return a?At(f):f}let u=n;i!==e&&(a?u=function(f,h){return n.call(this,kt(e,f),h,e)}:n.length>2&&(u=function(f,h){return n.call(this,f,h,e)}));const c=l.call(i,u,s);return a&&r?r(c):c}function $i(e,t,n,s){const r=Ur(e),o=r!==e&&!mt(e);let i=n,a=!1;r!==e&&(o?(a=s.length===0,i=function(u,c,f){return a&&(a=!1,u=kt(e,u)),n.call(this,u,kt(e,c),f,e)}):n.length>3&&(i=function(u,c,f){return n.call(this,u,c,f,e)}));const l=r[t](i,...s);return a?kt(e,l):l}function ho(e,t,n){const s=ye(e);Ge(s,"iterate",ks);const r=s[t](...n);return(r===-1||r===!1)&&Hr(n[0])?(n[0]=ye(n[0]),s[t](...n)):r}function gs(e,t,n=[]){Xt(),fi();const s=ye(e)[t].apply(e,n);return di(),Zt(),s}const sf=ai("__proto__,__v_isRef,__isVue"),zl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(gt));function rf(e){gt(e)||(e=String(e));const t=ye(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class Wl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?mf:Xl:o?Yl:Jl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=Z(t);if(!r){let l;if(i&&(l=tf[n]))return l;if(n==="hasOwnProperty")return rf}const a=Reflect.get(t,n,Pe(t)?t:s);if((gt(n)?zl.has(n):sf(n))||(r||Ge(t,"get",n),o))return a;if(Pe(a)){const l=i&&Mr(n)?a:a.value;return r&&xe(l)?Io(l):l}return xe(a)?r?Io(a):Zs(a):a}}class Gl extends Wl{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];const i=Z(t)&&Mr(n);if(!this._isShallow){const u=en(o);if(!mt(s)&&!en(s)&&(o=ye(o),s=ye(s)),!i&&Pe(o)&&!Pe(s))return u||(o.value=s),!0}const a=i?Number(n)e,cr=e=>Reflect.getPrototypeOf(e);function uf(e,t,n){return function(...s){const r=this.__v_raw,o=ye(r),i=Xn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=r[e](...s),c=n?No:t?fs:At;return!t&&Ge(o,"iterate",l?Do:Bn),He(Object.create(u),{next(){const{value:f,done:h}=u.next();return h?{value:f,done:h}:{value:a?[c(f[0]),c(f[1])]:c(f),done:h}}})}}function ur(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ff(e,t){const n={get(r){const o=this.__v_raw,i=ye(o),a=ye(r);e||(jt(r,a)&&Ge(i,"get",r),Ge(i,"get",a));const{has:l}=cr(i),u=t?No:e?fs:At;if(l.call(i,r))return u(o.get(r));if(l.call(i,a))return u(o.get(a));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&Ge(ye(r),"iterate",Bn),r.size},has(r){const o=this.__v_raw,i=ye(o),a=ye(r);return e||(jt(r,a)&&Ge(i,"has",r),Ge(i,"has",a)),r===a?o.has(r):o.has(r)||o.has(a)},forEach(r,o){const i=this,a=i.__v_raw,l=ye(a),u=t?No:e?fs:At;return!e&&Ge(l,"iterate",Bn),a.forEach((c,f)=>r.call(o,u(c),u(f),i))}};return He(n,e?{add:ur("add"),set:ur("set"),delete:ur("delete"),clear:ur("clear")}:{add(r){const o=ye(this),i=cr(o),a=ye(r),l=!t&&!mt(r)&&!en(r)?a:r;return i.has.call(o,l)||jt(r,l)&&i.has.call(o,r)||jt(a,l)&&i.has.call(o,a)||(o.add(l),Gt(o,"add",l,l)),this},set(r,o){!t&&!mt(o)&&!en(o)&&(o=ye(o));const i=ye(this),{has:a,get:l}=cr(i);let u=a.call(i,r);u||(r=ye(r),u=a.call(i,r));const c=l.call(i,r);return i.set(r,o),u?jt(o,c)&&Gt(i,"set",r,o):Gt(i,"add",r,o),this},delete(r){const o=ye(this),{has:i,get:a}=cr(o);let l=i.call(o,r);l||(r=ye(r),l=i.call(o,r)),a&&a.call(o,r);const u=o.delete(r);return l&&Gt(o,"delete",r,void 0),u},clear(){const r=ye(this),o=r.size!==0,i=r.clear();return o&&Gt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=uf(r,e,t)}),n}function mi(e,t){const n=ff(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(_e(n,r)&&r in s?n:s,r,o)}const df={get:mi(!1,!1)},hf={get:mi(!1,!0)},pf={get:mi(!0,!1)};const Jl=new WeakMap,Yl=new WeakMap,Xl=new WeakMap,mf=new WeakMap;function gf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yf(e){return e.__v_skip||!Object.isExtensible(e)?0:gf(Uu(e))}function Zs(e){return en(e)?e:gi(e,!1,af,df,Jl)}function Zl(e){return gi(e,!1,cf,hf,Yl)}function Io(e){return gi(e,!0,lf,pf,Xl)}function gi(e,t,n,s,r){if(!xe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=yf(e);if(o===0)return e;const i=r.get(e);if(i)return i;const a=new Proxy(e,o===2?s:n);return r.set(e,a),a}function Yt(e){return en(e)?Yt(e.__v_raw):!!(e&&e.__v_isReactive)}function en(e){return!!(e&&e.__v_isReadonly)}function mt(e){return!!(e&&e.__v_isShallow)}function Hr(e){return e?!!e.__v_raw:!1}function ye(e){const t=e&&e.__v_raw;return t?ye(t):e}function yi(e){return!_e(e,"__v_skip")&&Object.isExtensible(e)&&Nl(e,"__v_skip",!0),e}const At=e=>xe(e)?Zs(e):e,fs=e=>xe(e)?Io(e):e;function Pe(e){return e?e.__v_isRef===!0:!1}function fe(e){return ec(e,!1)}function vf(e){return ec(e,!0)}function ec(e,t){return Pe(e)?e:new bf(e,t)}class bf{constructor(t,n){this.dep=new pi,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ye(t),this._value=n?t:At(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||mt(t)||en(t);t=s?t:ye(t),jt(t,n)&&(this._rawValue=t,this._value=s?t:At(t),this.dep.trigger())}}function Ke(e){return Pe(e)?e.value:e}const wf={get:(e,t,n)=>t==="__v_raw"?e:Ke(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Pe(r)&&!Pe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function tc(e){return Yt(e)?e:new Proxy(e,wf)}function _f(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=Ef(e,n);return t}class xf{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=gt(n)?n:String(n),this._raw=ye(t);let r=!0,o=t;if(!Z(t)||gt(this._key)||!Mr(this._key))do r=!Hr(o)||mt(o);while(r&&(o=o.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Ke(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Pe(this._raw[this._key])){const n=this._object[this._key];if(Pe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ef(this._raw,this._key)}}function Ef(e,t,n){return new xf(e,t,n)}class Sf{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new pi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ms-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ce!==this)return Hl(this,!0),!0}get value(){const t=this.dep.track();return $l(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Cf(e,t,n=!1){let s,r;return oe(e)?s=e:(s=e.get,r=e.set),new Sf(s,r,n)}const fr={},Sr=new WeakMap;let An;function Rf(e,t=!1,n=An){if(n){let s=Sr.get(n);s||Sr.set(n,s=[]),s.push(e)}}function Af(e,t,n=Se){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:a,call:l}=n,u=v=>r?v:mt(v)||r===!1||r===0?Jt(v,1):Jt(v);let c,f,h,p,x=!1,g=!1;if(Pe(e)?(f=()=>e.value,x=mt(e)):Yt(e)?(f=()=>u(e),x=!0):Z(e)?(g=!0,x=e.some(v=>Yt(v)||mt(v)),f=()=>e.map(v=>{if(Pe(v))return v.value;if(Yt(v))return u(v);if(oe(v))return l?l(v,2):v()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){Xt();try{h()}finally{Zt()}}const v=An;An=c;try{return l?l(e,3,[p]):e(p)}finally{An=v}}:f=Ht,t&&r){const v=f,D=r===!0?1/0:r;f=()=>Jt(v(),D)}const w=Bl(),E=()=>{c.stop(),w&&w.active&&li(w.effects,c)};if(o&&t){const v=t;t=(...D)=>{v(...D),E()}}let R=g?new Array(e.length).fill(fr):fr;const y=v=>{if(!(!(c.flags&1)||!c.dirty&&!v))if(t){const D=c.run();if(r||x||(g?D.some((K,j)=>jt(K,R[j])):jt(D,R))){h&&h();const K=An;An=c;try{const j=[D,R===fr?void 0:g&&R[0]===fr?[]:R,p];R=D,l?l(t,3,j):t(...j)}finally{An=K}}}else c.run()};return a&&a(y),c=new jl(f),c.scheduler=i?()=>i(y,!1):y,p=v=>Rf(v,!1,c),h=c.onStop=()=>{const v=Sr.get(c);if(v){if(l)l(v,4);else for(const D of v)D();Sr.delete(c)}},t?s?y(!0):R=c.run():i?i(y.bind(null,!0),!0):c.run(),E.pause=c.pause.bind(c),E.resume=c.resume.bind(c),E.stop=E,E}function Jt(e,t=1/0,n){if(t<=0||!xe(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Pe(e))Jt(e.value,t,n);else if(Z(e))for(let s=0;s{Jt(s,t,n)});else if(Dl(e)){for(const s in e)Jt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Jt(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function er(e,t,n,s){try{return s?e(...s):e()}catch(r){qr(r,t,n)}}function Ot(e,t,n,s){if(oe(e)){const r=er(e,t,n,s);return r&&Tl(r)&&r.catch(o=>{qr(o,t,n)}),r}if(Z(e)){const r=[];for(let o=0;o>>1,r=rt[s],o=Bs(r);o=Bs(n)?rt.push(e):rt.splice(Tf(t),0,e),e.flags|=1,sc()}}function sc(){Cr||(Cr=nc.then(oc))}function Pf(e){Z(e)?Zn.push(...e):un&&e.id===-1?un.splice(zn+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1),sc()}function Ki(e,t,n=Nt+1){for(;nBs(n)-Bs(s));if(Zn.length=0,un){un.push(...t);return}for(un=t,zn=0;zne.id==null?e.flags&2?-1:1/0:e.id;function oc(e){try{for(Nt=0;Nt{s._d&&Tr(-1);const o=Rr(t);let i;try{i=e(...r)}finally{Rr(o),s._d&&Tr(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Df(e,t){if(Qe===null)return e;const n=Wr(Qe),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&oe(t)?t.call(s&&s.proxy):t}}function Nf(){return!!(zr()||jn)}const If=Symbol.for("v-scx"),Lf=()=>xt(If);function Jn(e,t){return bi(e,null,t)}function wn(e,t,n){return bi(e,t,n)}function bi(e,t,n=Se){const{immediate:s,deep:r,flush:o,once:i}=n,a=He({},n),l=t&&s||!t&&o!=="post";let u;if($s){if(o==="sync"){const p=Lf();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=Ht,p.resume=Ht,p.pause=Ht,p}}const c=Ye;a.call=(p,x,g)=>Ot(p,c,x,g);let f=!1;o==="post"?a.scheduler=p=>{tt(p,c&&c.suspense)}:o!=="sync"&&(f=!0,a.scheduler=(p,x)=>{x?p():vi(p)}),a.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const h=Af(e,t,a);return $s&&(u?u.push(h):l&&h()),h}function Ff(e,t,n){const s=this.proxy,r=Ae(e)?e.includes(".")?ac(s,e):()=>s[e]:e.bind(s,s);let o;oe(t)?o=t:(o=t.handler,n=t);const i=tr(this),a=bi(r,o.bind(s),n);return i(),a}function ac(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,On=e=>e&&(e.disabled||e.disabled===""),Mf=e=>e&&(e.defer||e.defer===""),Qi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,zi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Lo=(e,t)=>{const n=e&&e.to;return Ae(n)?t?t(n):null:n},kf={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,o,i,a,l,u){const{mc:c,pc:f,pbc:h,o:{insert:p,querySelector:x,createText:g,createComment:w,parentNode:E}}=u,R=On(t.props);let{dynamicChildren:y}=t;const v=(j,B,S)=>{j.shapeFlag&16&&c(j.children,B,S,r,o,i,a,l)},D=(j=t)=>{const B=On(j.props),S=j.target=Lo(j.props,x),I=Fo(S,j,g,p);S&&(i!=="svg"&&Qi(S)?i="svg":i!=="mathml"&&zi(S)&&(i="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(S),B||(v(j,S,I),Es(j,!1)))},K=j=>{const B=()=>{if(an.get(j)===B){if(an.delete(j),On(j.props)){const S=E(j.el)||n;v(j,S,j.anchor),Es(j,!0)}D(j)}};an.set(j,B),tt(B,o)};if(e==null){const j=t.el=g(""),B=t.anchor=g("");if(p(j,n,s),p(B,n,s),Mf(t.props)||o&&o.pendingBranch){K(t);return}R&&(v(t,n,B),Es(t,!0)),D()}else{t.el=e.el;const j=t.anchor=e.anchor,B=an.get(e);if(B){B.flags|=8,an.delete(e),K(t);return}t.targetStart=e.targetStart;const S=t.target=e.target,I=t.targetAnchor=e.targetAnchor,q=On(e.props),F=q?n:S,W=q?j:I;if(i==="svg"||Qi(S)?i="svg":(i==="mathml"||zi(S))&&(i="mathml"),y?(h(e.dynamicChildren,y,F,r,o,i,a),Si(e,t,!0)):l||f(e,t,F,W,r,o,i,a,!1),R)q?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):dr(t,n,j,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const se=t.target=Lo(t.props,x);se&&dr(t,se,null,u,0)}else q&&dr(t,S,I,u,1);Es(t,R)}},remove(e,t,n,{um:s,o:{remove:r}},o){const{shapeFlag:i,children:a,anchor:l,targetStart:u,targetAnchor:c,target:f,props:h}=e;let p=o||!On(h);const x=an.get(e);if(x&&(x.flags|=8,an.delete(e),p=!1),f&&(r(u),r(c)),o&&r(l),i&16)for(let g=0;g{e.isMounted=!0}),wi(()=>{e.isUnmounting=!0}),e}const yt=[Function,Array],uc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:yt,onEnter:yt,onAfterEnter:yt,onEnterCancelled:yt,onBeforeLeave:yt,onLeave:yt,onAfterLeave:yt,onLeaveCancelled:yt,onBeforeAppear:yt,onAppear:yt,onAfterAppear:yt,onAppearCancelled:yt},fc=e=>{const t=e.subTree;return t.component?fc(t.component):t},Uf={name:"BaseTransition",props:uc,setup(e,{slots:t}){const n=zr(),s=jf();return()=>{const r=t.default&&pc(t.default(),!0),o=r&&r.length?dc(r):n.subTree?st():void 0;if(!o)return;const i=ye(e),{mode:a}=i;if(s.isLeaving)return po(o);const l=Wi(o);if(!l)return po(o);let u=Mo(l,i,s,n,f=>u=f);l.type!==Je&&js(l,u);let c=n.subTree&&Wi(n.subTree);if(c&&c.type!==Je&&!Tn(c,l)&&fc(n).type!==Je){let f=Mo(c,i,s,n);if(js(c,f),a==="out-in"&&l.type!==Je)return s.isLeaving=!0,f.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},po(o);a==="in-out"&&l.type!==Je?f.delayLeave=(h,p,x)=>{const g=hc(s,c);g[String(c.key)]=c,h[It]=()=>{p(),h[It]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{x(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function dc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Je){t=n;break}}return t}const Hf=Uf;function hc(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Mo(e,t,n,s,r){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:h,onLeave:p,onAfterLeave:x,onLeaveCancelled:g,onBeforeAppear:w,onAppear:E,onAfterAppear:R,onAppearCancelled:y}=t,v=String(e.key),D=hc(n,e),K=(S,I)=>{S&&Ot(S,s,9,I)},j=(S,I)=>{const q=I[1];K(S,I),Z(S)?S.every(F=>F.length<=1)&&q():S.length<=1&&q()},B={mode:i,persisted:a,beforeEnter(S){let I=l;if(!n.isMounted)if(o)I=w||l;else return;S[It]&&S[It](!0);const q=D[v];q&&Tn(e,q)&&q.el[It]&&q.el[It](),K(I,[S])},enter(S){if(D[v]===e)return;let I=u,q=c,F=f;if(!n.isMounted)if(o)I=E||u,q=R||c,F=y||f;else return;let W=!1;S[ys]=de=>{W||(W=!0,de?K(F,[S]):K(q,[S]),B.delayedLeave&&B.delayedLeave(),S[ys]=void 0)};const se=S[ys].bind(null,!1);I?j(I,[S,se]):se()},leave(S,I){const q=String(e.key);if(S[ys]&&S[ys](!0),n.isUnmounting)return I();K(h,[S]);let F=!1;S[It]=se=>{F||(F=!0,I(),se?K(g,[S]):K(x,[S]),S[It]=void 0,D[q]===e&&delete D[q])};const W=S[It].bind(null,!1);D[q]=e,p?j(p,[S,W]):W()},clone(S){const I=Mo(S,t,n,s,r);return r&&r(I),I}};return B}function po(e){if(Vr(e))return e=_n(e),e.children=null,e}function Wi(e){if(!Vr(e))return cc(e.type)&&e.children?dc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function js(e,t){e.shapeFlag&6&&e.component?(e.transition=t,js(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pc(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;oTs(g,t&&(Z(t)?t[w]:t),n,s,r));return}if(es(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Ts(e,t,n,s.component.subTree);return}const o=s.shapeFlag&4?Wr(s.component):s.el,i=r?null:o,{i:a,r:l}=e,u=t&&t.r,c=a.refs===Se?a.refs={}:a.refs,f=a.setupState,h=ye(f),p=f===Se?Al:g=>Gi(c,g)?!1:_e(h,g),x=(g,w)=>!(w&&Gi(c,w));if(u!=null&&u!==l){if(Ji(t),Ae(u))c[u]=null,p(u)&&(f[u]=null);else if(Pe(u)){const g=t;x(u,g.k)&&(u.value=null),g.k&&(c[g.k]=null)}}if(oe(l))er(l,a,12,[i,c]);else{const g=Ae(l),w=Pe(l);if(g||w){const E=()=>{if(e.f){const R=g?p(l)?f[l]:c[l]:x()||!e.k?l.value:c[e.k];if(r)Z(R)&&li(R,o);else if(Z(R))R.includes(o)||R.push(o);else if(g)c[l]=[o],p(l)&&(f[l]=c[l]);else{const y=[o];x(l,e.k)&&(l.value=y),e.k&&(c[e.k]=y)}}else g?(c[l]=i,p(l)&&(f[l]=i)):w&&(x(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const R=()=>{E(),Ar.delete(e)};R.id=-1,Ar.set(e,R),tt(R,n)}else Ji(e),E()}}}function Ji(e){const t=Ar.get(e);t&&(t.flags|=8,Ar.delete(e))}jr().requestIdleCallback;jr().cancelIdleCallback;const es=e=>!!e.type.__asyncLoader,Vr=e=>e.type.__isKeepAlive;function qf(e,t){gc(e,"a",t)}function Vf(e,t){gc(e,"da",t)}function gc(e,t,n=Ye){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if($r(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Vr(r.parent.vnode)&&$f(s,t,n,r),r=r.parent}}function $f(e,t,n,s){const r=$r(t,e,s,!0);_i(()=>{li(s[t],r)},n)}function $r(e,t,n=Ye,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Xt();const a=tr(n),l=Ot(t,n,e,i);return a(),Zt(),l});return s?r.unshift(o):r.push(o),o}}const tn=e=>(t,n=Ye)=>{(!$s||e==="sp")&&$r(e,(...s)=>t(...s),n)},Kf=tn("bm"),Us=tn("m"),Qf=tn("bu"),zf=tn("u"),wi=tn("bum"),_i=tn("um"),Wf=tn("sp"),Gf=tn("rtg"),Jf=tn("rtc");function Yf(e,t=Ye){$r("ec",e,t)}const yc="components";function Xf(e,t){return bc(yc,e,!0,t)||e}const vc=Symbol.for("v-ndc");function vs(e){return Ae(e)?bc(yc,e,!1)||e:e||vc}function bc(e,t,n=!0,s=!1){const r=Qe||Ye;if(r){const o=r.type;{const a=Md(o,!1);if(a&&(a===t||a===it(t)||a===Br(it(t))))return o}const i=Yi(r[e]||o[e],t)||Yi(r.appContext[e],t);return!i&&s?o:i}}function Yi(e,t){return e&&(e[t]||e[it(t)]||e[Br(it(t))])}function ts(e,t,n,s){let r;const o=n,i=Z(e);if(i||Ae(e)){const a=i&&Yt(e);let l=!1,u=!1;a&&(l=!mt(e),u=en(e),e=Ur(e)),r=new Array(e.length);for(let c=0,f=e.length;ct(a,l,void 0,o));else{const a=Object.keys(e);r=new Array(a.length);for(let l=0,u=a.length;l0;return t!=="default"&&(n.name=t),ee(),Ut(Re,null,[Te("slot",n,s&&s())],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ee();const i=o&&wc(o(n)),a=n.key||i&&i.key,l=Ut(Re,{key:(a&&!gt(a)?a:`_${t}`)+(!i&&s?"_fb":"")},i||(s?s():[]),i&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function wc(e){return e.some(t=>qs(t)?!(t.type===Je||t.type===Re&&!wc(t.children)):!0)?e:null}const ko=e=>e?jc(e)?Wr(e):ko(e.parent):null,Ps=He(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ko(e.parent),$root:e=>ko(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>xc(e),$forceUpdate:e=>e.f||(e.f=()=>{vi(e.update)}),$nextTick:e=>e.n||(e.n=Hn.bind(e.proxy)),$watch:e=>Ff.bind(e)}),mo=(e,t)=>e!==Se&&!e.__isScriptSetup&&_e(e,t),Zf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(mo(s,t))return i[t]=1,s[t];if(r!==Se&&_e(r,t))return i[t]=2,r[t];if(_e(o,t))return i[t]=3,o[t];if(n!==Se&&_e(n,t))return i[t]=4,n[t];Bo&&(i[t]=0)}}const u=Ps[t];let c,f;if(u)return t==="$attrs"&&Ge(e.attrs,"get",""),u(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==Se&&_e(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,_e(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return mo(r,t)?(r[t]=n,!0):s!==Se&&_e(s,t)?(s[t]=n,!0):_e(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:o,type:i}},a){let l;return!!(n[a]||e!==Se&&a[0]!=="$"&&_e(e,a)||mo(t,a)||_e(o,a)||_e(s,a)||_e(Ps,a)||_e(r.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:_e(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ed(){return td().attrs}function td(e){const t=zr();return t.setupContext||(t.setupContext=Hc(t))}function Xi(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Bo=!0;function nd(e){const t=xc(e),n=e.proxy,s=e.ctx;Bo=!1,t.beforeCreate&&Zi(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:h,beforeUpdate:p,updated:x,activated:g,deactivated:w,beforeDestroy:E,beforeUnmount:R,destroyed:y,unmounted:v,render:D,renderTracked:K,renderTriggered:j,errorCaptured:B,serverPrefetch:S,expose:I,inheritAttrs:q,components:F,directives:W,filters:se}=t;if(u&&sd(u,s,null),i)for(const X in i){const ie=i[X];oe(ie)&&(s[X]=ie.bind(n))}if(r){const X=r.call(n,n);xe(X)&&(e.data=Zs(X))}if(Bo=!0,o)for(const X in o){const ie=o[X],ve=oe(ie)?ie.bind(n,n):oe(ie.get)?ie.get.bind(n,n):Ht,ue=!oe(ie)&&oe(ie.set)?ie.set.bind(n):Ht,De=ge({get:ve,set:ue});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>De.value,set:ke=>De.value=ke})}if(a)for(const X in a)_c(a[X],s,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(ie=>{yr(ie,X[ie])})}c&&Zi(c,e,"c");function le(X,ie){Z(ie)?ie.forEach(ve=>X(ve.bind(n))):ie&&X(ie.bind(n))}if(le(Kf,f),le(Us,h),le(Qf,p),le(zf,x),le(qf,g),le(Vf,w),le(Yf,B),le(Jf,K),le(Gf,j),le(wi,R),le(_i,v),le(Wf,S),Z(I))if(I.length){const X=e.exposed||(e.exposed={});I.forEach(ie=>{Object.defineProperty(X,ie,{get:()=>n[ie],set:ve=>n[ie]=ve,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===Ht&&(e.render=D),q!=null&&(e.inheritAttrs=q),F&&(e.components=F),W&&(e.directives=W),S&&mc(e)}function sd(e,t,n=Ht){Z(e)&&(e=jo(e));for(const s in e){const r=e[s];let o;xe(r)?"default"in r?o=xt(r.from||s,r.default,!0):o=xt(r.from||s):o=xt(r),Pe(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Zi(e,t,n){Ot(Z(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function _c(e,t,n,s){let r=s.includes(".")?ac(n,s):()=>n[s];if(Ae(e)){const o=t[e];oe(o)&&wn(r,o)}else if(oe(e))wn(r,e.bind(n));else if(xe(e))if(Z(e))e.forEach(o=>_c(o,t,n,s));else{const o=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(o)&&wn(r,o,e)}}function xc(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!r.length&&!n&&!s?l=t:(l={},r.length&&r.forEach(u=>Or(l,u,i,!0)),Or(l,t,i)),xe(t)&&o.set(t,l),l}function Or(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Or(e,o,n,!0),r&&r.forEach(i=>Or(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const a=rd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const rd={data:ea,props:ta,emits:ta,methods:Ss,computed:Ss,beforeCreate:et,created:et,beforeMount:et,mounted:et,beforeUpdate:et,updated:et,beforeDestroy:et,beforeUnmount:et,destroyed:et,unmounted:et,activated:et,deactivated:et,errorCaptured:et,serverPrefetch:et,components:Ss,directives:Ss,watch:id,provide:ea,inject:od};function ea(e,t){return t?e?function(){return He(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function od(e,t){return Ss(jo(e),jo(t))}function jo(e){if(Z(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${it(t)}Modifiers`]||e[`${xn(t)}Modifiers`];function ud(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Se;let r=n;const o=t.startsWith("update:"),i=o&&cd(s,t.slice(7));i&&(i.trim&&(r=n.map(c=>Ae(c)?c.trim():c)),i.number&&(r=n.map(ci)));let a,l=s[a=lo(t)]||s[a=lo(it(t))];!l&&o&&(l=s[a=lo(xn(t))]),l&&Ot(l,e,6,r);const u=s[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ot(u,e,6,r)}}const fd=new WeakMap;function Sc(e,t,n=!1){const s=n?fd:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},a=!1;if(!oe(e)){const l=u=>{const c=Sc(u,t,!0);c&&(a=!0,He(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(xe(e)&&s.set(e,null),null):(Z(o)?o.forEach(l=>i[l]=null):He(i,o),xe(e)&&s.set(e,i),i)}function Kr(e,t){return!e||!Lr(t)?!1:(t=t.slice(2).replace(/Once$/,""),_e(e,t[0].toLowerCase()+t.slice(1))||_e(e,xn(t))||_e(e,t))}function na(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:a,emit:l,render:u,renderCache:c,props:f,data:h,setupState:p,ctx:x,inheritAttrs:g}=e,w=Rr(e);let E,R;try{if(n.shapeFlag&4){const v=r||s,D=v;E=Bt(u.call(D,v,c,f,p,h,x)),R=a}else{const v=t;E=Bt(v.length>1?v(f,{attrs:a,slots:i,emit:l}):v(f,null)),R=t.props?a:dd(a)}}catch(v){Ds.length=0,qr(v,e,1),E=Te(Je)}let y=E;if(R&&g!==!1){const v=Object.keys(R),{shapeFlag:D}=y;v.length&&D&7&&(o&&v.some(Fr)&&(R=hd(R,o)),y=_n(y,R,!1,!0))}return n.dirs&&(y=_n(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&js(y,n.transition),E=y,Rr(w),E}const dd=e=>{let t;for(const n in e)(n==="class"||n==="style"||Lr(n))&&((t||(t={}))[n]=e[n]);return t},hd=(e,t)=>{const n={};for(const s in e)(!Fr(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function pd(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:a,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?sa(s,i,u):!!i;if(l&8){const c=t.dynamicProps;for(let f=0;fObject.create(Rc),Oc=e=>Object.getPrototypeOf(e)===Rc;function gd(e,t,n,s=!1){const r={},o=Ac();e.propsDefaults=Object.create(null),Tc(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:Zl(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function yd(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,a=ye(r),[l]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,p]=Pc(f,t,!0);He(i,h),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return xe(e)&&s.set(e,Yn),Yn;if(Z(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Ei=e=>Z(e)?e.map(Bt):[Bt(e)],bd=(e,t,n)=>{if(t._n)return t;const s=fn((...r)=>Ei(t(...r)),n);return s._c=!1,s},Dc=(e,t,n)=>{const s=e._ctx;for(const r in e){if(xi(r))continue;const o=e[r];if(oe(o))t[r]=bd(r,o,s);else if(o!=null){const i=Ei(o);t[r]=()=>i}}},Nc=(e,t)=>{const n=Ei(t);e.slots.default=()=>n},Ic=(e,t,n)=>{for(const s in t)(n||!xi(s))&&(e[s]=t[s])},wd=(e,t,n)=>{const s=e.slots=Ac();if(e.vnode.shapeFlag&32){const r=t._;r?(Ic(s,t,n),n&&Nl(s,"_",r,!0)):Dc(t,s)}else t&&Nc(e,t)},_d=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=Se;if(s.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Ic(r,t,n):(o=!t.$stable,Dc(t,r)),i=t}else t&&(Nc(e,t),i={default:1});if(o)for(const a in r)!xi(a)&&i[a]==null&&delete r[a]},tt=Rd;function xd(e){return Ed(e)}function Ed(e,t){const n=jr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:h,setScopeId:p=Ht,insertStaticContent:x}=e,g=(d,m,b,T=null,N=null,P=null,V=void 0,H=null,U=!!m.dynamicChildren)=>{if(d===m)return;d&&!Tn(d,m)&&(T=C(d),ke(d,N,P,!0),d=null),m.patchFlag===-2&&(U=!1,m.dynamicChildren=null);const{type:M,ref:Y,shapeFlag:$}=m;switch(M){case Qr:w(d,m,b,T);break;case Je:E(d,m,b,T);break;case vr:d==null&&R(m,b,T,V);break;case Re:F(d,m,b,T,N,P,V,H,U);break;default:$&1?D(d,m,b,T,N,P,V,H,U):$&6?W(d,m,b,T,N,P,V,H,U):($&64||$&128)&&M.process(d,m,b,T,N,P,V,H,U,Q)}Y!=null&&N?Ts(Y,d&&d.ref,P,m||d,!m):Y==null&&d&&d.ref!=null&&Ts(d.ref,null,P,d,!0)},w=(d,m,b,T)=>{if(d==null)s(m.el=a(m.children),b,T);else{const N=m.el=d.el;m.children!==d.children&&u(N,m.children)}},E=(d,m,b,T)=>{d==null?s(m.el=l(m.children||""),b,T):m.el=d.el},R=(d,m,b,T)=>{[d.el,d.anchor]=x(d.children,m,b,T,d.el,d.anchor)},y=({el:d,anchor:m},b,T)=>{let N;for(;d&&d!==m;)N=h(d),s(d,b,T),d=N;s(m,b,T)},v=({el:d,anchor:m})=>{let b;for(;d&&d!==m;)b=h(d),r(d),d=b;r(m)},D=(d,m,b,T,N,P,V,H,U)=>{if(m.type==="svg"?V="svg":m.type==="math"&&(V="mathml"),d==null)K(m,b,T,N,P,V,H,U);else{const M=d.el&&d.el._isVueCE?d.el:null;try{M&&M._beginPatch(),S(d,m,N,P,V,H,U)}finally{M&&M._endPatch()}}},K=(d,m,b,T,N,P,V,H)=>{let U,M;const{props:Y,shapeFlag:$,transition:G,dirs:te}=d;if(U=d.el=i(d.type,P,Y&&Y.is,Y),$&8?c(U,d.children):$&16&&B(d.children,U,null,T,N,go(d,P),V,H),te&&En(d,null,T,"created"),j(U,d,d.scopeId,V,T),Y){for(const be in Y)be!=="value"&&!Rs(be)&&o(U,be,null,Y[be],P,T);"value"in Y&&o(U,"value",null,Y.value,P),(M=Y.onVnodeBeforeMount)&&Dt(M,T,d)}te&&En(d,null,T,"beforeMount");const me=Sd(N,G);me&&G.beforeEnter(U),s(U,m,b),((M=Y&&Y.onVnodeMounted)||me||te)&&tt(()=>{try{M&&Dt(M,T,d),me&&G.enter(U),te&&En(d,null,T,"mounted")}finally{}},N)},j=(d,m,b,T,N)=>{if(b&&p(d,b),T)for(let P=0;P{for(let M=U;M{const H=m.el=d.el;let{patchFlag:U,dynamicChildren:M,dirs:Y}=m;U|=d.patchFlag&16;const $=d.props||Se,G=m.props||Se;let te;if(b&&Sn(b,!1),(te=G.onVnodeBeforeUpdate)&&Dt(te,b,m,d),Y&&En(m,d,b,"beforeUpdate"),b&&Sn(b,!0),($.innerHTML&&G.innerHTML==null||$.textContent&&G.textContent==null)&&c(H,""),M?I(d.dynamicChildren,M,H,b,T,go(m,N),P):V||ie(d,m,H,null,b,T,go(m,N),P,!1),U>0){if(U&16)q(H,$,G,b,N);else if(U&2&&$.class!==G.class&&o(H,"class",null,G.class,N),U&4&&o(H,"style",$.style,G.style,N),U&8){const me=m.dynamicProps;for(let be=0;be{te&&Dt(te,b,m,d),Y&&En(m,d,b,"updated")},T)},I=(d,m,b,T,N,P,V)=>{for(let H=0;H{if(m!==b){if(m!==Se)for(const P in m)!Rs(P)&&!(P in b)&&o(d,P,m[P],null,N,T);for(const P in b){if(Rs(P))continue;const V=b[P],H=m[P];V!==H&&P!=="value"&&o(d,P,H,V,N,T)}"value"in b&&o(d,"value",m.value,b.value,N)}},F=(d,m,b,T,N,P,V,H,U)=>{const M=m.el=d?d.el:a(""),Y=m.anchor=d?d.anchor:a("");let{patchFlag:$,dynamicChildren:G,slotScopeIds:te}=m;te&&(H=H?H.concat(te):te),d==null?(s(M,b,T),s(Y,b,T),B(m.children||[],b,Y,N,P,V,H,U)):$>0&&$&64&&G&&d.dynamicChildren&&d.dynamicChildren.length===G.length?(I(d.dynamicChildren,G,b,N,P,V,H),(m.key!=null||N&&m===N.subTree)&&Si(d,m,!0)):ie(d,m,b,Y,N,P,V,H,U)},W=(d,m,b,T,N,P,V,H,U)=>{m.slotScopeIds=H,d==null?m.shapeFlag&512?N.ctx.activate(m,b,T,V,U):se(m,b,T,N,P,V,U):de(d,m,U)},se=(d,m,b,T,N,P,V)=>{const H=d.component=Nd(d,T,N);if(Vr(d)&&(H.ctx.renderer=Q),Id(H,!1,V),H.asyncDep){if(N&&N.registerDep(H,le,V),!d.el){const U=H.subTree=Te(Je);E(null,U,m,b),d.placeholder=U.el}}else le(H,d,m,b,N,P,V)},de=(d,m,b)=>{const T=m.component=d.component;if(pd(d,m,b))if(T.asyncDep&&!T.asyncResolved){X(T,m,b);return}else T.next=m,T.update();else m.el=d.el,T.vnode=m},le=(d,m,b,T,N,P,V)=>{const H=()=>{if(d.isMounted){let{next:$,bu:G,u:te,parent:me,vnode:be}=d;{const ut=Lc(d);if(ut){$&&($.el=be.el,X(d,$,V)),ut.asyncDep.then(()=>{tt(()=>{d.isUnmounted||M()},N)});return}}let Ee=$,Ne;Sn(d,!1),$?($.el=be.el,X(d,$,V)):$=be,G&&gr(G),(Ne=$.props&&$.props.onVnodeBeforeUpdate)&&Dt(Ne,me,$,be),Sn(d,!0);const Me=na(d),ct=d.subTree;d.subTree=Me,g(ct,Me,f(ct.el),C(ct),d,N,P),$.el=Me.el,Ee===null&&md(d,Me.el),te&&tt(te,N),(Ne=$.props&&$.props.onVnodeUpdated)&&tt(()=>Dt(Ne,me,$,be),N)}else{let $;const{el:G,props:te}=m,{bm:me,m:be,parent:Ee,root:Ne,type:Me}=d,ct=es(m);Sn(d,!1),me&&gr(me),!ct&&($=te&&te.onVnodeBeforeMount)&&Dt($,Ee,m),Sn(d,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(Me,d.parent?d.parent.type:void 0);const ut=d.subTree=na(d);g(null,ut,b,T,d,N,P),m.el=ut.el}if(be&&tt(be,N),!ct&&($=te&&te.onVnodeMounted)){const ut=m;tt(()=>Dt($,Ee,ut),N)}(m.shapeFlag&256||Ee&&es(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&d.a&&tt(d.a,N),d.isMounted=!0,m=b=T=null}};d.scope.on();const U=d.effect=new jl(H);d.scope.off();const M=d.update=U.run.bind(U),Y=d.job=U.runIfDirty.bind(U);Y.i=d,Y.id=d.uid,U.scheduler=()=>vi(Y),Sn(d,!0),M()},X=(d,m,b)=>{m.component=d;const T=d.vnode.props;d.vnode=m,d.next=null,yd(d,m.props,T,b),_d(d,m.children,b),Xt(),Ki(d),Zt()},ie=(d,m,b,T,N,P,V,H,U=!1)=>{const M=d&&d.children,Y=d?d.shapeFlag:0,$=m.children,{patchFlag:G,shapeFlag:te}=m;if(G>0){if(G&128){ue(M,$,b,T,N,P,V,H,U);return}else if(G&256){ve(M,$,b,T,N,P,V,H,U);return}}te&8?(Y&16&&ae(M,N,P),$!==M&&c(b,$)):Y&16?te&16?ue(M,$,b,T,N,P,V,H,U):ae(M,N,P,!0):(Y&8&&c(b,""),te&16&&B($,b,T,N,P,V,H,U))},ve=(d,m,b,T,N,P,V,H,U)=>{d=d||Yn,m=m||Yn;const M=d.length,Y=m.length,$=Math.min(M,Y);let G;for(G=0;G<$;G++){const te=m[G]=U?zt(m[G]):Bt(m[G]);g(d[G],te,b,null,N,P,V,H,U)}M>Y?ae(d,N,P,!0,!1,$):B(m,b,T,N,P,V,H,U,$)},ue=(d,m,b,T,N,P,V,H,U)=>{let M=0;const Y=m.length;let $=d.length-1,G=Y-1;for(;M<=$&&M<=G;){const te=d[M],me=m[M]=U?zt(m[M]):Bt(m[M]);if(Tn(te,me))g(te,me,b,null,N,P,V,H,U);else break;M++}for(;M<=$&&M<=G;){const te=d[$],me=m[G]=U?zt(m[G]):Bt(m[G]);if(Tn(te,me))g(te,me,b,null,N,P,V,H,U);else break;$--,G--}if(M>$){if(M<=G){const te=G+1,me=teG)for(;M<=$;)ke(d[M],N,P,!0),M++;else{const te=M,me=M,be=new Map;for(M=me;M<=G;M++){const Be=m[M]=U?zt(m[M]):Bt(m[M]);Be.key!=null&&be.set(Be.key,M)}let Ee,Ne=0;const Me=G-me+1;let ct=!1,ut=0;const nn=new Array(Me);for(M=0;M=Me){ke(Be,N,P,!0);continue}let ze;if(Be.key!=null)ze=be.get(Be.key);else for(Ee=me;Ee<=G;Ee++)if(nn[Ee-me]===0&&Tn(Be,m[Ee])){ze=Ee;break}ze===void 0?ke(Be,N,P,!0):(nn[ze-me]=M+1,ze>=ut?ut=ze:ct=!0,g(Be,m[ze],b,null,N,P,V,H,U),Ne++)}const sn=ct?Cd(nn):Yn;for(Ee=sn.length-1,M=Me-1;M>=0;M--){const Be=me+M,ze=m[Be],ki=m[Be+1],Bi=Be+1{const{el:P,type:V,transition:H,children:U,shapeFlag:M}=d;if(M&6){De(d.component.subTree,m,b,T);return}if(M&128){d.suspense.move(m,b,T);return}if(M&64){V.move(d,m,b,Q);return}if(V===Re){s(P,m,b);for(let $=0;$H.enter(P),N);else{const{leave:$,delayLeave:G,afterLeave:te}=H,me=()=>{d.ctx.isUnmounted?r(P):s(P,m,b)},be=()=>{P._isLeaving&&P[It](!0),$(P,()=>{me(),te&&te()})};G?G(P,me,be):be()}else s(P,m,b)},ke=(d,m,b,T=!1,N=!1)=>{const{type:P,props:V,ref:H,children:U,dynamicChildren:M,shapeFlag:Y,patchFlag:$,dirs:G,cacheIndex:te,memo:me}=d;if($===-2&&(N=!1),H!=null&&(Xt(),Ts(H,null,b,d,!0),Zt()),te!=null&&(m.renderCache[te]=void 0),Y&256){m.ctx.deactivate(d);return}const be=Y&1&&G,Ee=!es(d);let Ne;if(Ee&&(Ne=V&&V.onVnodeBeforeUnmount)&&Dt(Ne,m,d),Y&6)A(d.component,b,T);else{if(Y&128){d.suspense.unmount(b,T);return}be&&En(d,null,m,"beforeUnmount"),Y&64?d.type.remove(d,m,b,Q,T):M&&!M.hasOnce&&(P!==Re||$>0&&$&64)?ae(M,m,b,!1,!0):(P===Re&&$&384||!N&&Y&16)&&ae(U,m,b),T&&Oe(d)}const Me=me!=null&&te==null;(Ee&&(Ne=V&&V.onVnodeUnmounted)||be||Me)&&tt(()=>{Ne&&Dt(Ne,m,d),be&&En(d,null,m,"unmounted"),Me&&(d.el=null)},b)},Oe=d=>{const{type:m,el:b,anchor:T,transition:N}=d;if(m===Re){Ve(b,T);return}if(m===vr){v(d);return}const P=()=>{r(b),N&&!N.persisted&&N.afterLeave&&N.afterLeave()};if(d.shapeFlag&1&&N&&!N.persisted){const{leave:V,delayLeave:H}=N,U=()=>V(b,P);H?H(d.el,P,U):U()}else P()},Ve=(d,m)=>{let b;for(;d!==m;)b=h(d),r(d),d=b;r(m)},A=(d,m,b)=>{const{bum:T,scope:N,job:P,subTree:V,um:H,m:U,a:M}=d;oa(U),oa(M),T&&gr(T),N.stop(),P&&(P.flags|=8,ke(V,d,m,b)),H&&tt(H,m),tt(()=>{d.isUnmounted=!0},m)},ae=(d,m,b,T=!1,N=!1,P=0)=>{for(let V=P;V{if(d.shapeFlag&6)return C(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const m=h(d.anchor||d.el),b=m&&m[lc];return b?h(b):m};let L=!1;const k=(d,m,b)=>{let T;d==null?m._vnode&&(ke(m._vnode,null,null,!0),T=m._vnode.component):g(m._vnode||null,d,m,null,null,null,b),m._vnode=d,L||(L=!0,Ki(T),rc(),L=!1)},Q={p:g,um:ke,m:De,r:Oe,mt:se,mc:B,pc:ie,pbc:I,n:C,o:e};return{render:k,hydrate:void 0,createApp:ld(k)}}function go({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Sn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Sd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Si(e,t,n=!1){const s=e.children,r=t.children;if(Z(s)&&Z(r))for(let o=0;o>1,e[n[a]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Lc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Lc(t)}function oa(e){if(e)for(let t=0;te.__isSuspense;function Rd(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):Pf(e)}const Re=Symbol.for("v-fgt"),Qr=Symbol.for("v-txt"),Je=Symbol.for("v-cmt"),vr=Symbol.for("v-stc"),Ds=[];let pt=null;function ee(e=!1){Ds.push(pt=e?null:[])}function Ad(){Ds.pop(),pt=Ds[Ds.length-1]||null}let Hs=1;function Tr(e,t=!1){Hs+=e,e<0&&pt&&t&&(pt.hasOnce=!0)}function kc(e){return e.dynamicChildren=Hs>0?pt||Yn:null,Ad(),Hs>0&&pt&&pt.push(e),e}function ce(e,t,n,s,r,o){return kc(J(e,t,n,s,r,o,!0))}function Ut(e,t,n,s,r){return kc(Te(e,t,n,s,r,!0))}function qs(e){return e?e.__v_isVNode===!0:!1}function Tn(e,t){return e.type===t.type&&e.key===t.key}const Bc=({key:e})=>e??null,br=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ae(e)||Pe(e)||oe(e)?{i:Qe,r:e,k:t,f:!!n}:e:null);function J(e,t=null,n=null,s=0,r=null,o=e===Re?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bc(t),ref:t&&br(t),scopeId:ic,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Qe};return a?(Ci(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Ae(n)?8:16),Hs>0&&!i&&pt&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&pt.push(l),l}const Te=Od;function Od(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===vc)&&(e=Je),qs(e)){const a=_n(e,t,!0);return n&&Ci(a,n),Hs>0&&!o&&pt&&(a.shapeFlag&6?pt[pt.indexOf(e)]=a:pt.push(a)),a.patchFlag=-2,a}if(kd(e)&&(e=e.__vccOpts),t){t=Td(t);let{class:a,style:l}=t;a&&!Ae(a)&&(t.class=dt(a)),xe(l)&&(Hr(l)&&!Z(l)&&(l=He({},l)),t.style=bn(l))}const i=Ae(e)?1:Mc(e)?128:cc(e)?64:xe(e)?4:oe(e)?2:0;return J(e,t,n,s,r,i,o,!0)}function Td(e){return e?Hr(e)||Oc(e)?He({},e):e:null}function _n(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:a,transition:l}=e,u=t?Ns(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Bc(u),ref:t&&t.ref?n&&o?Z(o)?o.concat(br(t)):[o,br(t)]:br(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Re?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_n(e.ssContent),ssFallback:e.ssFallback&&_n(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&s&&js(c,l.clone(c)),c}function Vs(e=" ",t=0){return Te(Qr,null,e,t)}function A0(e,t){const n=Te(vr,null,e);return n.staticCount=t,n}function st(e="",t=!1){return t?(ee(),Ut(Je,null,e)):Te(Je,null,e)}function Bt(e){return e==null||typeof e=="boolean"?Te(Je):Z(e)?Te(Re,null,e.slice()):qs(e)?zt(e):Te(Qr,null,String(e))}function zt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_n(e)}function Ci(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ci(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Oc(t)?t._ctx=Qe:r===3&&Qe&&(Qe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:Qe},n=32):(t=String(t),s&64?(n=16,t=[Vs(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ns(...e){const t={};for(let n=0;nYe||Qe;let Pr,Ho;{const e=jr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};Pr=t("__VUE_INSTANCE_SETTERS__",n=>Ye=n),Ho=t("__VUE_SSR_SETTERS__",n=>$s=n)}const tr=e=>{const t=Ye;return Pr(e),e.scope.on(),()=>{e.scope.off(),Pr(t)}},ia=()=>{Ye&&Ye.scope.off(),Pr(null)};function jc(e){return e.vnode.shapeFlag&4}let $s=!1;function Id(e,t=!1,n=!1){t&&Ho(t);const{props:s,children:r}=e.vnode,o=jc(e);gd(e,s,o,t),wd(e,r,n||t);const i=o?Ld(e,t):void 0;return t&&Ho(!1),i}function Ld(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Zf);const{setup:s}=n;if(s){Xt();const r=e.setupContext=s.length>1?Hc(e):null,o=tr(e),i=er(s,e,0,[e.props,r]),a=Tl(i);if(Zt(),o(),(a||e.sp)&&!es(e)&&mc(e),a){if(i.then(ia,ia),t)return i.then(l=>{aa(e,l)}).catch(l=>{qr(l,e,0)});e.asyncDep=i}else aa(e,i)}else Uc(e)}function aa(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:xe(t)&&(e.setupState=tc(t)),Uc(e)}function Uc(e,t,n){const s=e.type;e.render||(e.render=s.render||Ht);{const r=tr(e);Xt();try{nd(e)}finally{Zt(),r()}}}const Fd={get(e,t){return Ge(e,"get",""),e[t]}};function Hc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Fd),slots:e.slots,emit:e.emit,expose:t}}function Wr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tc(yi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ps)return Ps[n](e)},has(t,n){return n in t||n in Ps}})):e.proxy}function Md(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function kd(e){return oe(e)&&"__vccOpts"in e}const ge=(e,t)=>Cf(e,t,$s);function Ri(e,t,n){try{Tr(-1);const s=arguments.length;return s===2?xe(t)&&!Z(t)?qs(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&qs(n)&&(n=[n]),Te(e,t,n))}finally{Tr(1)}}const Bd="3.5.34";/** +* @vue/runtime-dom v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let qo;const la=typeof window<"u"&&window.trustedTypes;if(la)try{qo=la.createPolicy("vue",{createHTML:e=>e})}catch{}const qc=qo?e=>qo.createHTML(e):e=>e,jd="http://www.w3.org/2000/svg",Ud="http://www.w3.org/1998/Math/MathML",Qt=typeof document<"u"?document:null,ca=Qt&&Qt.createElement("template"),Hd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Qt.createElementNS(jd,e):t==="mathml"?Qt.createElementNS(Ud,e):n?Qt.createElement(e,{is:n}):Qt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Qt.createTextNode(e),createComment:e=>Qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{ca.innerHTML=qc(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const a=ca.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},rn="transition",bs="animation",Ks=Symbol("_vtc"),Vc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},qd=He({},uc,Vc),Vd=e=>(e.displayName="Transition",e.props=qd,e),$d=Vd((e,{slots:t})=>Ri(Hf,Kd(e),t)),Cn=(e,t=[])=>{Z(e)?e.forEach(n=>n(...t)):e&&e(...t)},ua=e=>e?Z(e)?e.some(t=>t.length>1):e.length>1:!1;function Kd(e){const t={};for(const F in e)F in Vc||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:u=i,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,x=Qd(r),g=x&&x[0],w=x&&x[1],{onBeforeEnter:E,onEnter:R,onEnterCancelled:y,onLeave:v,onLeaveCancelled:D,onBeforeAppear:K=E,onAppear:j=R,onAppearCancelled:B=y}=t,S=(F,W,se,de)=>{F._enterCancelled=de,Rn(F,W?c:a),Rn(F,W?u:i),se&&se()},I=(F,W)=>{F._isLeaving=!1,Rn(F,f),Rn(F,p),Rn(F,h),W&&W()},q=F=>(W,se)=>{const de=F?j:R,le=()=>S(W,F,se);Cn(de,[W,le]),fa(()=>{Rn(W,F?l:o),Vt(W,F?c:a),ua(de)||da(W,s,g,le)})};return He(t,{onBeforeEnter(F){Cn(E,[F]),Vt(F,o),Vt(F,i)},onBeforeAppear(F){Cn(K,[F]),Vt(F,l),Vt(F,u)},onEnter:q(!1),onAppear:q(!0),onLeave(F,W){F._isLeaving=!0;const se=()=>I(F,W);Vt(F,f),F._enterCancelled?(Vt(F,h),ma(F)):(ma(F),Vt(F,h)),fa(()=>{F._isLeaving&&(Rn(F,f),Vt(F,p),ua(v)||da(F,s,w,se))}),Cn(v,[F,se])},onEnterCancelled(F){S(F,!1,void 0,!0),Cn(y,[F])},onAppearCancelled(F){S(F,!0,void 0,!0),Cn(B,[F])},onLeaveCancelled(F){I(F),Cn(D,[F])}})}function Qd(e){if(e==null)return null;if(xe(e))return[yo(e.enter),yo(e.leave)];{const t=yo(e);return[t,t]}}function yo(e){return Vu(e)}function Vt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ks]||(e[Ks]=new Set)).add(t)}function Rn(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Ks];n&&(n.delete(t),n.size||(e[Ks]=void 0))}function fa(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let zd=0;function da(e,t,n,s){const r=e._endId=++zd,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=Wd(e,t);if(!i)return s();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,h),o()},h=p=>{p.target===e&&++c>=l&&f()};setTimeout(()=>{c(n[x]||"").split(", "),r=s(`${rn}Delay`),o=s(`${rn}Duration`),i=ha(r,o),a=s(`${bs}Delay`),l=s(`${bs}Duration`),u=ha(a,l);let c=null,f=0,h=0;t===rn?i>0&&(c=rn,f=i,h=o.length):t===bs?u>0&&(c=bs,f=u,h=l.length):(f=Math.max(i,u),c=f>0?i>u?rn:bs:null,h=c?c===rn?o.length:l.length:0);const p=c===rn&&/\b(?:transform|all)(?:,|$)/.test(s(`${rn}Property`).toString());return{type:c,timeout:f,propCount:h,hasTransform:p}}function ha(e,t){for(;e.lengthpa(n)+pa(e[s])))}function pa(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ma(e){return(e?e.ownerDocument:document).body.offsetHeight}function Gd(e,t,n){const s=e[Ks];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),$c=Symbol("_vsh"),O0={name:"show",beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ws(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),ws(e,!0),s.enter(e)):s.leave(e,()=>{ws(e,!1)}):ws(e,t))},beforeUnmount(e,{value:t}){ws(e,t)}};function ws(e,t){e.style.display=t?e[Dr]:"none",e[$c]=!t}const Jd=Symbol(""),Yd=/(?:^|;)\s*display\s*:/;function Xd(e,t,n){const s=e.style,r=Ae(n);let o=!1;if(n&&!r){if(t)if(Ae(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Cs(s,a,"")}else for(const i in t)n[i]==null&&Cs(s,i,"");for(const i in n){i==="display"&&(o=!0);const a=n[i];a!=null?eh(e,i,!Ae(t)&&t?t[i]:void 0,a)||Cs(s,i,a):Cs(s,i,"")}}else if(r){if(t!==n){const i=s[Jd];i&&(n+=";"+i),s.cssText=n,o=Yd.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=o?s.display:"",e[$c]&&(s.display="none"))}const ga=/\s*!important$/;function Cs(e,t,n){if(Z(n))n.forEach(s=>Cs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Zd(e,t);ga.test(n)?e.setProperty(xn(s),n.replace(ga,""),"important"):e[s]=n}}const ya=["Webkit","Moz","ms"],vo={};function Zd(e,t){const n=vo[t];if(n)return n;let s=it(t);if(s!=="filter"&&s in e)return vo[t]=s;s=Br(s);for(let r=0;rbo||(rh.then(()=>bo=0),bo=Date.now());function ih(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ot(ah(s,n.value),t,5,[s])};return n.value=e,n.attached=oh(),n}function ah(e,t){if(Z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Ea=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,lh=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?Gd(e,s,i):t==="style"?Xd(e,n,s):Lr(t)?Fr(t)||nh(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ch(e,t,s,i))?(wa(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ba(e,t,s,i,o,t!=="value")):e._isVueCE&&(uh(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ae(s)))?wa(e,it(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ba(e,t,s,i))};function ch(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ea(t)&&oe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Ea(t)&&Ae(n)?!1:t in e}function uh(e,t){const n=e._def.props;if(!n)return!1;const s=it(t);return Array.isArray(n)?n.some(r=>it(r)===s):Object.keys(n).some(r=>it(r)===s)}const Sa=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>gr(t,n):t};function fh(e){e.target.composing=!0}function Ca(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const wo=Symbol("_assign");function Ra(e,t,n){return t&&(e=e.trim()),n&&(e=ci(e)),e}const dh={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[wo]=Sa(r);const o=s||r.props&&r.props.type==="number";Wn(e,t?"change":"input",i=>{i.target.composing||e[wo](Ra(e.value,n,o))}),(n||o)&&Wn(e,"change",()=>{e.value=Ra(e.value,n,o)}),t||(Wn(e,"compositionstart",fh),Wn(e,"compositionend",Ca),Wn(e,"change",Ca))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[wo]=Sa(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?ci(e.value):e.value,l=t??"";if(a===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===l)||(e.value=l)}},hh=["ctrl","shift","alt","meta"],ph={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>hh.some(n=>e[`${n}Key`]&&!t.includes(n))},Aa=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=xn(r.key);if(t.some(i=>i===o||mh[i]===o))return e(r)})},gh=He({patchProp:lh},Hd);let Ta;function yh(){return Ta||(Ta=xd(gh))}const vh=(...e)=>{const t=yh().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=wh(s);if(!r)return;const o=t._component;!oe(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,bh(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t};function bh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wh(e){return Ae(e)?document.querySelector(e):e}/*! + * pinia v2.3.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let Kc;const Gr=e=>Kc=e,Qc=Symbol();function Vo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Is;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Is||(Is={}));function _h(){const e=kl(!0),t=e.run(()=>fe({}));let n=[],s=[];const r=yi({install(o){Gr(r),r._a=o,o.provide(Qc,r),o.config.globalProperties.$pinia=r,s.forEach(i=>n.push(i)),s=[]},use(o){return this._a?n.push(o):s.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const zc=()=>{};function Pa(e,t,n,s=zc){e.push(t);const r=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),s())};return!n&&Bl()&&Yu(r),r}function Kn(e,...t){e.slice().forEach(n=>{n(...t)})}const xh=e=>e(),Da=Symbol(),_o=Symbol();function $o(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];Vo(r)&&Vo(s)&&e.hasOwnProperty(n)&&!Pe(s)&&!Yt(s)?e[n]=$o(r,s):e[n]=s}return e}const Eh=Symbol();function Sh(e){return!Vo(e)||!e.hasOwnProperty(Eh)}const{assign:ln}=Object;function Ch(e){return!!(Pe(e)&&e.effect)}function Rh(e,t,n,s){const{state:r,actions:o,getters:i}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=r?r():{});const c=_f(n.state.value[e]);return ln(c,o,Object.keys(i||{}).reduce((f,h)=>(f[h]=yi(ge(()=>{Gr(n);const p=n._s.get(e);return i[h].call(p,p)})),f),{}))}return l=Wc(e,u,t,n,s,!0),l}function Wc(e,t,n={},s,r,o){let i;const a=ln({actions:{}},n),l={deep:!0};let u,c,f=[],h=[],p;const x=s.state.value[e];!o&&!x&&(s.state.value[e]={});let g;function w(B){let S;u=c=!1,typeof B=="function"?(B(s.state.value[e]),S={type:Is.patchFunction,storeId:e,events:p}):($o(s.state.value[e],B),S={type:Is.patchObject,payload:B,storeId:e,events:p});const I=g=Symbol();Hn().then(()=>{g===I&&(u=!0)}),c=!0,Kn(f,S,s.state.value[e])}const E=o?function(){const{state:S}=n,I=S?S():{};this.$patch(q=>{ln(q,I)})}:zc;function R(){i.stop(),f=[],h=[],s._s.delete(e)}const y=(B,S="")=>{if(Da in B)return B[_o]=S,B;const I=function(){Gr(s);const q=Array.from(arguments),F=[],W=[];function se(X){F.push(X)}function de(X){W.push(X)}Kn(h,{args:q,name:I[_o],store:D,after:se,onError:de});let le;try{le=B.apply(this&&this.$id===e?this:D,q)}catch(X){throw Kn(W,X),X}return le instanceof Promise?le.then(X=>(Kn(F,X),X)).catch(X=>(Kn(W,X),Promise.reject(X))):(Kn(F,le),le)};return I[Da]=!0,I[_o]=S,I},v={_p:s,$id:e,$onAction:Pa.bind(null,h),$patch:w,$reset:E,$subscribe(B,S={}){const I=Pa(f,B,S.detached,()=>q()),q=i.run(()=>wn(()=>s.state.value[e],F=>{(S.flush==="sync"?c:u)&&B({storeId:e,type:Is.direct,events:p},F)},ln({},l,S)));return I},$dispose:R},D=Zs(v);s._s.set(e,D);const j=(s._a&&s._a.runWithContext||xh)(()=>s._e.run(()=>(i=kl()).run(()=>t({action:y}))));for(const B in j){const S=j[B];if(Pe(S)&&!Ch(S)||Yt(S))o||(x&&Sh(S)&&(Pe(S)?S.value=x[B]:$o(S,x[B])),s.state.value[e][B]=S);else if(typeof S=="function"){const I=y(S,B);j[B]=I,a.actions[B]=S}}return ln(D,j),ln(ye(D),j),Object.defineProperty(D,"$state",{get:()=>s.state.value[e],set:B=>{w(S=>{ln(S,B)})}}),s._p.forEach(B=>{ln(D,i.run(()=>B({store:D,app:s._a,pinia:s,options:a})))}),x&&o&&n.hydrate&&n.hydrate(D.$state,x),u=!0,c=!0,D}/*! #__NO_SIDE_EFFECTS__ */function Ah(e,t,n){let s,r;const o=typeof t=="function";typeof e=="string"?(s=e,r=o?n:t):(r=e,s=e.id);function i(a,l){const u=Nf();return a=a||(u?xt(Qc,null):null),a&&Gr(a),a=Kc,a._s.has(s)||(o?Wc(s,t,r,a):Rh(s,r,a)),a._s.get(s)}return i.$id=s,i}var Jr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Nn,hn,ns,vl,Oh=(vl=class extends Jr{constructor(){super();pe(this,Nn);pe(this,hn);pe(this,ns);ne(this,ns,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){O(this,hn)||this.setEventListener(O(this,ns))}onUnsubscribe(){var t;this.hasListeners()||((t=O(this,hn))==null||t.call(this),ne(this,hn,void 0))}setEventListener(t){var n;ne(this,ns,t),(n=O(this,hn))==null||n.call(this),ne(this,hn,t(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(t){O(this,Nn)!==t&&(ne(this,Nn,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof O(this,Nn)=="boolean"?O(this,Nn):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Nn=new WeakMap,hn=new WeakMap,ns=new WeakMap,vl),Gc=new Oh,Th={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},pn,ii,bl,Ph=(bl=class{constructor(){pe(this,pn,Th);pe(this,ii,!1)}setTimeoutProvider(e){ne(this,pn,e)}setTimeout(e,t){return O(this,pn).setTimeout(e,t)}clearTimeout(e){O(this,pn).clearTimeout(e)}setInterval(e,t){return O(this,pn).setInterval(e,t)}clearInterval(e){O(this,pn).clearInterval(e)}},pn=new WeakMap,ii=new WeakMap,bl),Ko=new Ph;function Dh(e){setTimeout(e,0)}var Jc=typeof window>"u"||"Deno"in globalThis;function Et(){}function Nh(e,t){return typeof e=="function"?e(t):e}function Ih(e){return typeof e=="number"&&e>=0&&e!==1/0}function Lh(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Qo(e,t){return typeof e=="function"?e(t):e}function Fh(e,t){return typeof e=="function"?e(t):e}function Na(e,t){const{type:n="all",exact:s,fetchStatus:r,predicate:o,queryKey:i,stale:a}=e;if(i){if(s){if(t.queryHash!==Ai(i,t.options))return!1}else if(!zs(t.queryKey,i))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||r&&r!==t.state.fetchStatus||o&&!o(t))}function Ia(e,t){const{exact:n,status:s,predicate:r,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(Qs(t.options.mutationKey)!==Qs(o))return!1}else if(!zs(t.options.mutationKey,o))return!1}return!(s&&t.state.status!==s||r&&!r(t))}function Ai(e,t){return((t==null?void 0:t.queryKeyHashFn)||Qs)(e)}function Qs(e){return JSON.stringify(e,(t,n)=>zo(n)?Object.keys(n).sort().reduce((s,r)=>(s[r]=n[r],s),{}):n)}function zs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>zs(e[n],t[n])):!1}var Mh=Object.prototype.hasOwnProperty;function Yc(e,t,n=0){if(e===t)return e;if(n>500)return t;const s=La(e)&&La(t);if(!s&&!(zo(e)&&zo(t)))return t;const o=(s?e:Object.keys(e)).length,i=s?t:Object.keys(t),a=i.length,l=s?new Array(a):{};let u=0;for(let c=0;c{Ko.setTimeout(t,e)})}function Bh(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Yc(e,t):t}function jh(e,t,n=0){const s=[...e,t];return n&&s.length>n?s.slice(1):s}function Uh(e,t,n=0){const s=[t,...e];return n&&s.length>n?s.slice(0,-1):s}var Oi=Symbol();function Xc(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Oi?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Hh(e,t,n){let s=!1,r;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(r??(r=t()),s||(s=!0,r.aborted?n():r.addEventListener("abort",n,{once:!0})),r)}),e}var Zc=(()=>{let e=()=>Jc;return{isServer(){return e()},setIsServer(t){e=t}}})();function qh(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});n.status="pending",n.catch(()=>{});function s(r){Object.assign(n,r),delete n.resolve,delete n.reject}return n.resolve=r=>{s({status:"fulfilled",value:r}),e(r)},n.reject=r=>{s({status:"rejected",reason:r}),t(r)},n}var Vh=Dh;function $h(){let e=[],t=0,n=a=>{a()},s=a=>{a()},r=Vh;const o=a=>{t?e.push(a):r(()=>{n(a)})},i=()=>{const a=e;e=[],a.length&&r(()=>{s(()=>{a.forEach(l=>{n(l)})})})};return{batch:a=>{let l;t++;try{l=a()}finally{t--,t||i()}return l},batchCalls:a=>(...l)=>{o(()=>{a(...l)})},schedule:o,setNotifyFunction:a=>{n=a},setBatchNotifyFunction:a=>{s=a},setScheduler:a=>{r=a}}}var ot=$h(),ss,mn,rs,wl,Kh=(wl=class extends Jr{constructor(){super();pe(this,ss,!0);pe(this,mn);pe(this,rs);ne(this,rs,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",s)}}})}onSubscribe(){O(this,mn)||this.setEventListener(O(this,rs))}onUnsubscribe(){var t;this.hasListeners()||((t=O(this,mn))==null||t.call(this),ne(this,mn,void 0))}setEventListener(t){var n;ne(this,rs,t),(n=O(this,mn))==null||n.call(this),ne(this,mn,t(this.setOnline.bind(this)))}setOnline(t){O(this,ss)!==t&&(ne(this,ss,t),this.listeners.forEach(s=>{s(t)}))}isOnline(){return O(this,ss)}},ss=new WeakMap,mn=new WeakMap,rs=new WeakMap,wl),Nr=new Kh;function Qh(e){return Math.min(1e3*2**e,3e4)}function eu(e){return(e??"online")==="online"?Nr.isOnline():!0}var Wo=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function tu(e){let t=!1,n=0,s;const r=qh(),o=()=>r.status!=="pending",i=g=>{var w;if(!o()){const E=new Wo(g);h(E),(w=e.onCancel)==null||w.call(e,E)}},a=()=>{t=!0},l=()=>{t=!1},u=()=>Gc.isFocused()&&(e.networkMode==="always"||Nr.isOnline())&&e.canRun(),c=()=>eu(e.networkMode)&&e.canRun(),f=g=>{o()||(s==null||s(),r.resolve(g))},h=g=>{o()||(s==null||s(),r.reject(g))},p=()=>new Promise(g=>{var w;s=E=>{(o()||u())&&g(E)},(w=e.onPause)==null||w.call(e)}).then(()=>{var g;s=void 0,o()||(g=e.onContinue)==null||g.call(e)}),x=()=>{if(o())return;let g;const w=n===0?e.initialPromise:void 0;try{g=w??e.fn()}catch(E){g=Promise.reject(E)}Promise.resolve(g).then(f).catch(E=>{var K;if(o())return;const R=e.retry??(Zc.isServer()?0:3),y=e.retryDelay??Qh,v=typeof y=="function"?y(n,E):y,D=R===!0||typeof R=="number"&&nu()?void 0:p()).then(()=>{t?h(E):x()})})};return{promise:r,status:()=>r.status,cancel:i,continue:()=>(s==null||s(),r),cancelRetry:a,continueRetry:l,canStart:c,start:()=>(c()?x():p().then(x),r)}}var In,_l,nu=(_l=class{constructor(){pe(this,In)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ih(this.gcTime)&&ne(this,In,Ko.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Zc.isServer()?1/0:5*60*1e3))}clearGcTimeout(){O(this,In)!==void 0&&(Ko.clearTimeout(O(this,In)),ne(this,In,void 0))}},In=new WeakMap,_l);function zh(e){return{onFetch:(t,n)=>{var c,f,h,p,x;const s=t.options,r=(h=(f=(c=t.fetchOptions)==null?void 0:c.meta)==null?void 0:f.fetchMore)==null?void 0:h.direction,o=((p=t.state.data)==null?void 0:p.pages)||[],i=((x=t.state.data)==null?void 0:x.pageParams)||[];let a={pages:[],pageParams:[]},l=0;const u=async()=>{let g=!1;const w=y=>{Hh(y,()=>t.signal,()=>g=!0)},E=Xc(t.options,t.fetchOptions),R=async(y,v,D)=>{if(g)return Promise.reject(t.signal.reason);if(v==null&&y.pages.length)return Promise.resolve(y);const j=(()=>{const q={client:t.client,queryKey:t.queryKey,pageParam:v,direction:D?"backward":"forward",meta:t.options.meta};return w(q),q})(),B=await E(j),{maxPages:S}=t.options,I=D?Uh:jh;return{pages:I(y.pages,B,S),pageParams:I(y.pageParams,v,S)}};if(r&&o.length){const y=r==="backward",v=y?Wh:Ma,D={pages:o,pageParams:i},K=v(s,D);a=await R(D,K,y)}else{const y=e??o.length;do{const v=l===0?i[0]??s.initialPageParam:Ma(s,a);if(l>0&&v==null)break;a=await R(a,v),l++}while(l{var g,w;return(w=(g=t.options).persister)==null?void 0:w.call(g,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function Ma(e,{pages:t,pageParams:n}){const s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,n[s],n):void 0}function Wh(e,{pages:t,pageParams:n}){var s;return t.length>0?(s=e.getPreviousPageParam)==null?void 0:s.call(e,t[0],t,n[0],n):void 0}var os,Ln,is,wt,Fn,qe,Gs,Mn,ht,su,Kt,xl,Gh=(xl=class extends nu{constructor(t){super();pe(this,ht);pe(this,os);pe(this,Ln);pe(this,is);pe(this,wt);pe(this,Fn);pe(this,qe);pe(this,Gs);pe(this,Mn);ne(this,Mn,!1),ne(this,Gs,t.defaultOptions),this.setOptions(t.options),this.observers=[],ne(this,Fn,t.client),ne(this,wt,O(this,Fn).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,ne(this,Ln,Ba(this.options)),this.state=t.state??O(this,Ln),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return O(this,os)}get promise(){var t;return(t=O(this,qe))==null?void 0:t.promise}setOptions(t){if(this.options={...O(this,Gs),...t},t!=null&&t._type&&ne(this,os,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=Ba(this.options);n.data!==void 0&&(this.setState(ka(n.data,n.dataUpdatedAt)),ne(this,Ln,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&O(this,wt).remove(this)}setData(t,n){const s=Bh(this.state.data,t,this.options);return $e(this,ht,Kt).call(this,{data:s,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),s}setState(t){$e(this,ht,Kt).call(this,{type:"setState",state:t})}cancel(t){var s,r;const n=(s=O(this,qe))==null?void 0:s.promise;return(r=O(this,qe))==null||r.cancel(t),n?n.then(Et).catch(Et):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return O(this,Ln)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Fh(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Oi||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Qo(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Lh(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(s=>s.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=O(this,qe))==null||n.continue()}onOnline(){var n;const t=this.observers.find(s=>s.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=O(this,qe))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),O(this,wt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(O(this,qe)&&(O(this,Mn)||$e(this,ht,su).call(this)?O(this,qe).cancel({revert:!0}):O(this,qe).cancelRetry()),this.scheduleGc()),O(this,wt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||$e(this,ht,Kt).call(this,{type:"invalidate"})}async fetch(t,n){var u,c,f,h,p,x,g,w,E,R,y;if(this.state.fetchStatus!=="idle"&&((u=O(this,qe))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(O(this,qe))return O(this,qe).continueRetry(),O(this,qe).promise}if(t&&this.setOptions(t),!this.options.queryFn){const v=this.observers.find(D=>D.options.queryFn);v&&this.setOptions(v.options)}const s=new AbortController,r=v=>{Object.defineProperty(v,"signal",{enumerable:!0,get:()=>(ne(this,Mn,!0),s.signal)})},o=()=>{const v=Xc(this.options,n),K=(()=>{const j={client:O(this,Fn),queryKey:this.queryKey,meta:this.meta};return r(j),j})();return ne(this,Mn,!1),this.options.persister?this.options.persister(v,K,this):v(K)},a=(()=>{const v={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:O(this,Fn),state:this.state,fetchFn:o};return r(v),v})(),l=O(this,os)==="infinite"?zh(this.options.pages):this.options.behavior;l==null||l.onFetch(a,this),ne(this,is,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((c=a.fetchOptions)==null?void 0:c.meta))&&$e(this,ht,Kt).call(this,{type:"fetch",meta:(f=a.fetchOptions)==null?void 0:f.meta}),ne(this,qe,tu({initialPromise:n==null?void 0:n.initialPromise,fn:a.fetchFn,onCancel:v=>{v instanceof Wo&&v.revert&&this.setState({...O(this,is),fetchStatus:"idle"}),s.abort()},onFail:(v,D)=>{$e(this,ht,Kt).call(this,{type:"failed",failureCount:v,error:D})},onPause:()=>{$e(this,ht,Kt).call(this,{type:"pause"})},onContinue:()=>{$e(this,ht,Kt).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0}));try{const v=await O(this,qe).start();if(v===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(v),(p=(h=O(this,wt).config).onSuccess)==null||p.call(h,v,this),(g=(x=O(this,wt).config).onSettled)==null||g.call(x,v,this.state.error,this),v}catch(v){if(v instanceof Wo){if(v.silent)return O(this,qe).promise;if(v.revert){if(this.state.data===void 0)throw v;return this.state.data}}throw $e(this,ht,Kt).call(this,{type:"error",error:v}),(E=(w=O(this,wt).config).onError)==null||E.call(w,v,this),(y=(R=O(this,wt).config).onSettled)==null||y.call(R,this.state.data,v,this),v}finally{this.scheduleGc()}}},os=new WeakMap,Ln=new WeakMap,is=new WeakMap,wt=new WeakMap,Fn=new WeakMap,qe=new WeakMap,Gs=new WeakMap,Mn=new WeakMap,ht=new WeakSet,su=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Kt=function(t){const n=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...Jh(s.data,this.options),fetchMeta:t.meta??null};case"success":const r={...s,...ka(t.data,t.dataUpdatedAt),dataUpdateCount:s.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return ne(this,is,t.manual?r:void 0),r;case"error":const o=t.error;return{...s,error:o,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=n(this.state),ot.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),O(this,wt).notify({query:this,type:"updated",action:t})})},xl);function Jh(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:eu(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function ka(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Ba(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,s=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Js,Lt,We,kn,Ft,cn,El,Yh=(El=class extends nu{constructor(t){super();pe(this,Ft);pe(this,Js);pe(this,Lt);pe(this,We);pe(this,kn);ne(this,Js,t.client),this.mutationId=t.mutationId,ne(this,We,t.mutationCache),ne(this,Lt,[]),this.state=t.state||Xh(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){O(this,Lt).includes(t)||(O(this,Lt).push(t),this.clearGcTimeout(),O(this,We).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){ne(this,Lt,O(this,Lt).filter(n=>n!==t)),this.scheduleGc(),O(this,We).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){O(this,Lt).length||(this.state.status==="pending"?this.scheduleGc():O(this,We).remove(this))}continue(){var t;return((t=O(this,kn))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,a,l,u,c,f,h,p,x,g,w,E,R,y,v,D,K,j;const n=()=>{$e(this,Ft,cn).call(this,{type:"continue"})},s={client:O(this,Js),meta:this.options.meta,mutationKey:this.options.mutationKey};ne(this,kn,tu({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(B,S)=>{$e(this,Ft,cn).call(this,{type:"failed",failureCount:B,error:S})},onPause:()=>{$e(this,Ft,cn).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>O(this,We).canRun(this)}));const r=this.state.status==="pending",o=!O(this,kn).canStart();try{if(r)n();else{$e(this,Ft,cn).call(this,{type:"pending",variables:t,isPaused:o}),O(this,We).config.onMutate&&await O(this,We).config.onMutate(t,this,s);const S=await((a=(i=this.options).onMutate)==null?void 0:a.call(i,t,s));S!==this.state.context&&$e(this,Ft,cn).call(this,{type:"pending",context:S,variables:t,isPaused:o})}const B=await O(this,kn).start();return await((u=(l=O(this,We).config).onSuccess)==null?void 0:u.call(l,B,t,this.state.context,this,s)),await((f=(c=this.options).onSuccess)==null?void 0:f.call(c,B,t,this.state.context,s)),await((p=(h=O(this,We).config).onSettled)==null?void 0:p.call(h,B,null,this.state.variables,this.state.context,this,s)),await((g=(x=this.options).onSettled)==null?void 0:g.call(x,B,null,t,this.state.context,s)),$e(this,Ft,cn).call(this,{type:"success",data:B}),B}catch(B){try{await((E=(w=O(this,We).config).onError)==null?void 0:E.call(w,B,t,this.state.context,this,s))}catch(S){Promise.reject(S)}try{await((y=(R=this.options).onError)==null?void 0:y.call(R,B,t,this.state.context,s))}catch(S){Promise.reject(S)}try{await((D=(v=O(this,We).config).onSettled)==null?void 0:D.call(v,void 0,B,this.state.variables,this.state.context,this,s))}catch(S){Promise.reject(S)}try{await((j=(K=this.options).onSettled)==null?void 0:j.call(K,void 0,B,t,this.state.context,s))}catch(S){Promise.reject(S)}throw $e(this,Ft,cn).call(this,{type:"error",error:B}),B}finally{O(this,We).runNext(this)}}},Js=new WeakMap,Lt=new WeakMap,We=new WeakMap,kn=new WeakMap,Ft=new WeakSet,cn=function(t){const n=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),ot.batch(()=>{O(this,Lt).forEach(s=>{s.onMutationUpdate(t)}),O(this,We).notify({mutation:this,type:"updated",action:t})})},El);function Xh(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Wt,St,Ys,Sl,ru=(Sl=class extends Jr{constructor(n={}){super();pe(this,Wt);pe(this,St);pe(this,Ys);this.config=n,ne(this,Wt,new Set),ne(this,St,new Map),ne(this,Ys,0)}build(n,s,r){const o=new Yh({client:n,mutationCache:this,mutationId:++lr(this,Ys)._,options:n.defaultMutationOptions(s),state:r});return this.add(o),o}add(n){O(this,Wt).add(n);const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s);r?r.push(n):O(this,St).set(s,[n])}this.notify({type:"added",mutation:n})}remove(n){if(O(this,Wt).delete(n)){const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s);if(r)if(r.length>1){const o=r.indexOf(n);o!==-1&&r.splice(o,1)}else r[0]===n&&O(this,St).delete(s)}}this.notify({type:"removed",mutation:n})}canRun(n){const s=hr(n);if(typeof s=="string"){const r=O(this,St).get(s),o=r==null?void 0:r.find(i=>i.state.status==="pending");return!o||o===n}else return!0}runNext(n){var r;const s=hr(n);if(typeof s=="string"){const o=(r=O(this,St).get(s))==null?void 0:r.find(i=>i!==n&&i.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){ot.batch(()=>{O(this,Wt).forEach(n=>{this.notify({type:"removed",mutation:n})}),O(this,Wt).clear(),O(this,St).clear()})}getAll(){return Array.from(O(this,Wt))}find(n){const s={exact:!0,...n};return this.getAll().find(r=>Ia(s,r))}findAll(n={}){return this.getAll().filter(s=>Ia(n,s))}notify(n){ot.batch(()=>{this.listeners.forEach(s=>{s(n)})})}resumePausedMutations(){const n=this.getAll().filter(s=>s.state.isPaused);return ot.batch(()=>Promise.all(n.map(s=>s.continue().catch(Et))))}},Wt=new WeakMap,St=new WeakMap,Ys=new WeakMap,Sl);function hr(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Mt,Cl,ou=(Cl=class extends Jr{constructor(n={}){super();pe(this,Mt);this.config=n,ne(this,Mt,new Map)}build(n,s,r){const o=s.queryKey,i=s.queryHash??Ai(o,s);let a=this.get(i);return a||(a=new Gh({client:n,queryKey:o,queryHash:i,options:n.defaultQueryOptions(s),state:r,defaultOptions:n.getQueryDefaults(o)}),this.add(a)),a}add(n){O(this,Mt).has(n.queryHash)||(O(this,Mt).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const s=O(this,Mt).get(n.queryHash);s&&(n.destroy(),s===n&&O(this,Mt).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){ot.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return O(this,Mt).get(n)}getAll(){return[...O(this,Mt).values()]}find(n){const s={exact:!0,...n};return this.getAll().find(r=>Na(s,r))}findAll(n={}){const s=this.getAll();return Object.keys(n).length>0?s.filter(r=>Na(n,r)):s}notify(n){ot.batch(()=>{this.listeners.forEach(s=>{s(n)})})}onFocus(){ot.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){ot.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},Mt=new WeakMap,Cl),Ie,gn,yn,as,ls,vn,cs,us,Rl,Zh=(Rl=class{constructor(t={}){pe(this,Ie);pe(this,gn);pe(this,yn);pe(this,as);pe(this,ls);pe(this,vn);pe(this,cs);pe(this,us);ne(this,Ie,t.queryCache||new ou),ne(this,gn,t.mutationCache||new ru),ne(this,yn,t.defaultOptions||{}),ne(this,as,new Map),ne(this,ls,new Map),ne(this,vn,0)}mount(){lr(this,vn)._++,O(this,vn)===1&&(ne(this,cs,Gc.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ie).onFocus())})),ne(this,us,Nr.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ie).onOnline())})))}unmount(){var t,n;lr(this,vn)._--,O(this,vn)===0&&((t=O(this,cs))==null||t.call(this),ne(this,cs,void 0),(n=O(this,us))==null||n.call(this),ne(this,us,void 0))}isFetching(t){return O(this,Ie).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return O(this,gn).findAll({...t,status:"pending"}).length}getQueryData(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=O(this,Ie).get(n.queryHash))==null?void 0:s.state.data}ensureQueryData(t){const n=this.defaultQueryOptions(t),s=O(this,Ie).build(this,n),r=s.state.data;return r===void 0?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime(Qo(n.staleTime,s))&&this.prefetchQuery(n),Promise.resolve(r))}getQueriesData(t){return O(this,Ie).findAll(t).map(({queryKey:n,state:s})=>{const r=s.data;return[n,r]})}setQueryData(t,n,s){const r=this.defaultQueryOptions({queryKey:t}),o=O(this,Ie).get(r.queryHash),i=o==null?void 0:o.state.data,a=Nh(n,i);if(a!==void 0)return O(this,Ie).build(this,r).setData(a,{...s,manual:!0})}setQueriesData(t,n,s){return ot.batch(()=>O(this,Ie).findAll(t).map(({queryKey:r})=>[r,this.setQueryData(r,n,s)]))}getQueryState(t){var s;const n=this.defaultQueryOptions({queryKey:t});return(s=O(this,Ie).get(n.queryHash))==null?void 0:s.state}removeQueries(t){const n=O(this,Ie);ot.batch(()=>{n.findAll(t).forEach(s=>{n.remove(s)})})}resetQueries(t,n){const s=O(this,Ie);return ot.batch(()=>(s.findAll(t).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...t},n)))}cancelQueries(t,n={}){const s={revert:!0,...n},r=ot.batch(()=>O(this,Ie).findAll(t).map(o=>o.cancel(s)));return Promise.all(r).then(Et).catch(Et)}invalidateQueries(t,n={}){return ot.batch(()=>(O(this,Ie).findAll(t).forEach(s=>{s.invalidate()}),(t==null?void 0:t.refetchType)==="none"?Promise.resolve():this.refetchQueries({...t,type:(t==null?void 0:t.refetchType)??(t==null?void 0:t.type)??"active"},n)))}refetchQueries(t,n={}){const s={...n,cancelRefetch:n.cancelRefetch??!0},r=ot.batch(()=>O(this,Ie).findAll(t).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let i=o.fetch(void 0,s);return s.throwOnError||(i=i.catch(Et)),o.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(r).then(Et)}fetchQuery(t){const n=this.defaultQueryOptions(t);n.retry===void 0&&(n.retry=!1);const s=O(this,Ie).build(this,n);return s.isStaleByTime(Qo(n.staleTime,s))?s.fetch(n):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(Et).catch(Et)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(Et).catch(Et)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return Nr.isOnline()?O(this,gn).resumePausedMutations():Promise.resolve()}getQueryCache(){return O(this,Ie)}getMutationCache(){return O(this,gn)}getDefaultOptions(){return O(this,yn)}setDefaultOptions(t){ne(this,yn,t)}setQueryDefaults(t,n){O(this,as).set(Qs(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...O(this,as).values()],s={};return n.forEach(r=>{zs(t,r.queryKey)&&Object.assign(s,r.defaultOptions)}),s}setMutationDefaults(t,n){O(this,ls).set(Qs(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...O(this,ls).values()],s={};return n.forEach(r=>{zs(t,r.mutationKey)&&Object.assign(s,r.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;const n={...O(this,yn).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||(n.queryHash=Ai(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.queryFn===Oi&&(n.enabled=!1),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...O(this,yn).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){O(this,Ie).clear(),O(this,gn).clear()}},Ie=new WeakMap,gn=new WeakMap,yn=new WeakMap,as=new WeakMap,ls=new WeakMap,vn=new WeakMap,cs=new WeakMap,us=new WeakMap,Rl),ep="VUE_QUERY_CLIENT";function tp(e){const t=e?`:${e}`:"";return`${ep}${t}`}function Go(e,t,n="",s=0){if(t){const r=t(e,n,s);if(r===void 0&&Pe(e)||r!==void 0)return r}if(Array.isArray(e))return e.map((r,o)=>Go(r,t,String(o),s+1));if(typeof e=="object"&&sp(e)){const r=Object.entries(e).map(([o,i])=>[o,Go(i,t,o,s+1)]);return Object.fromEntries(r)}return e}function np(e,t){return Go(e,t)}function he(e,t=!1){return np(e,(n,s,r)=>{if(r===1&&s==="queryKey")return he(n,!0);if(t&&rp(n))return he(n(),t);if(Pe(n))return he(Ke(n),t)})}function sp(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function rp(e){return typeof e=="function"}var op=class extends ou{find(e){return super.find(he(e))}findAll(e={}){return super.findAll(he(e))}},ip=class extends ru{find(e){return super.find(he(e))}findAll(e={}){return super.findAll(he(e))}},ap=class extends Zh{constructor(e={}){const t={defaultOptions:e.defaultOptions,queryCache:e.queryCache||new op,mutationCache:e.mutationCache||new ip};super(t),this.isRestoring=fe(!1)}isFetching(e={}){return super.isFetching(he(e))}isMutating(e={}){return super.isMutating(he(e))}getQueryData(e){return super.getQueryData(he(e))}ensureQueryData(e){return super.ensureQueryData(he(e))}getQueriesData(e){return super.getQueriesData(he(e))}setQueryData(e,t,n={}){return super.setQueryData(he(e),t,he(n))}setQueriesData(e,t,n={}){return super.setQueriesData(he(e),t,he(n))}getQueryState(e){return super.getQueryState(he(e))}removeQueries(e={}){return super.removeQueries(he(e))}resetQueries(e={},t={}){return super.resetQueries(he(e),he(t))}cancelQueries(e={},t={}){return super.cancelQueries(he(e),he(t))}invalidateQueries(e={},t={}){const n=he(e),s=he(t);if(super.invalidateQueries({...n,refetchType:"none"},s),n.refetchType==="none")return Promise.resolve();const r={...n,type:n.refetchType??n.type??"active"};return Hn().then(()=>super.refetchQueries(r,s))}refetchQueries(e={},t={}){return super.refetchQueries(he(e),he(t))}fetchQuery(e){return super.fetchQuery(he(e))}prefetchQuery(e){return super.prefetchQuery(he(e))}fetchInfiniteQuery(e){return super.fetchInfiniteQuery(he(e))}prefetchInfiniteQuery(e){return super.prefetchInfiniteQuery(he(e))}setDefaultOptions(e){super.setDefaultOptions(he(e))}setQueryDefaults(e,t){super.setQueryDefaults(he(e),he(t))}getQueryDefaults(e){return super.getQueryDefaults(he(e))}setMutationDefaults(e,t){super.setMutationDefaults(he(e),he(t))}getMutationDefaults(e){return super.getMutationDefaults(he(e))}},lp={install:(e,t={})=>{const n=tp(t.queryClientKey);let s;if("queryClient"in t&&t.queryClient)s=t.queryClient;else{const i="queryClientConfig"in t?t.queryClientConfig:void 0;s=new ap(i)}Jc||s.mount();let r=()=>{};if(t.clientPersister){s.isRestoring&&(s.isRestoring.value=!0);const[i,a]=t.clientPersister(s);r=i,a.then(()=>{var l;s.isRestoring&&(s.isRestoring.value=!1),(l=t.clientPersisterOnSuccess)==null||l.call(t,s)})}const o=()=>{s.unmount(),r()};if(e.onUnmount)e.onUnmount(o);else{const i=e.unmount;e.unmount=function(){o(),i()}}e.provide(n,s)}},cp=Object.defineProperty,up=(e,t,n)=>t in e?cp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ze=(e,t,n)=>up(e,typeof t!="symbol"?t+"":t,n);function fp(e){if(typeof document>"u")return;function t(){let n=document.head||document.getElementsByTagName("head")[0];if(!n)return;let s=document.createElement("style");s.type="text/css",n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}fp(":where([data-sonner-toaster][dir=ltr]),:where(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%)}:where([data-sonner-toaster][dir=rtl]),:where(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%)}:where([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}:where([data-sonner-toaster][data-lifted=true]){transform:translateY(-10px)}@media (hover:none) and (pointer:coarse){:where([data-sonner-toaster][data-lifted=true]){transform:none}}:where([data-sonner-toaster][data-x-position=right]){right:max(var(--offset),env(safe-area-inset-right))}:where([data-sonner-toaster][data-x-position=left]){left:max(var(--offset),env(safe-area-inset-left))}:where([data-sonner-toaster][data-x-position=center]){left:50%;transform:translateX(-50%)}:where([data-sonner-toaster][data-y-position=top]){top:max(var(--offset),env(safe-area-inset-top))}:where([data-sonner-toaster][data-y-position=bottom]){bottom:max(var(--offset),env(safe-area-inset-bottom))}:where([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);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}:where([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}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}:where([data-sonner-toast][data-y-position=top]){top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=bottom]){bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([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)}:where([data-sonner-toast][data-promise=true]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([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;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=dark]) :where([data-cancel]){background:rgba(255,255,255,.3)}[data-sonner-toast] [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);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-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}:where([data-sonner-toast]) :where([data-disabled=true]){cursor:not-allowed}[data-sonner-toast]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=true])::before{content:'';position:absolute;left:0;right:0;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=top][data-swiping=true])::before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=bottom][data-swiping=true])::before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=false][data-removed=true])::before{content:'';position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast])::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=true]){--y:translateY(0);opacity:1}:where([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)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=false][data-front=false][data-styled=true])>*{opacity:0}:where([data-sonner-toast][data-visible=false]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=true][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]){--y:translateY(calc(var(--lift) * -100%));opacity:0}:where([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}:where([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}:where([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,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:swipe-out .2s ease-out forwards}@keyframes swipe-out{from{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;--mobile-offset:16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 91%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 91%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 91%);--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-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-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--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, 100%, 12%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 12%);--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-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%)}");let Jo=0;class dp{constructor(){Ze(this,"subscribers"),Ze(this,"toasts"),Ze(this,"subscribe",t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)})),Ze(this,"publish",t=>{this.subscribers.forEach(n=>n(t))}),Ze(this,"addToast",t=>{this.publish(t),this.toasts=[...this.toasts,t]}),Ze(this,"create",t=>{var n;const{message:s,...r}=t,o=typeof t.id=="number"||t.id&&((n=t.id)==null?void 0:n.length)>0?t.id:Jo++,i=this.toasts.find(l=>l.id===o),a=t.dismissible===void 0?!0:t.dismissible;return i?this.toasts=this.toasts.map(l=>l.id===o?(this.publish({...l,...t,id:o,title:s}),{...l,...t,id:o,dismissible:a,title:s}):l):this.addToast({title:s,...r,dismissible:a,id:o}),o}),Ze(this,"dismiss",t=>(t||this.toasts.forEach(n=>{this.subscribers.forEach(s=>s({id:n.id,dismiss:!0}))}),this.subscribers.forEach(n=>n({id:t,dismiss:!0})),t)),Ze(this,"message",(t,n)=>this.create({...n,message:t,type:"default"})),Ze(this,"error",(t,n)=>this.create({...n,type:"error",message:t})),Ze(this,"success",(t,n)=>this.create({...n,type:"success",message:t})),Ze(this,"info",(t,n)=>this.create({...n,type:"info",message:t})),Ze(this,"warning",(t,n)=>this.create({...n,type:"warning",message:t})),Ze(this,"loading",(t,n)=>this.create({...n,type:"loading",message:t})),Ze(this,"promise",(t,n)=>{if(!n)return;let s;n.loading!==void 0&&(s=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const r=t instanceof Promise?t:t();let o=s!==void 0,i;const a=r.then(async u=>{if(i=["resolve",u],pp(u)&&!u.ok){o=!1;const c=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;this.create({id:s,type:"error",message:c,description:f})}else if(n.success!==void 0){o=!1;const c=typeof n.success=="function"?await n.success(u):n.success,f=typeof n.description=="function"?await n.description(u):n.description;this.create({id:s,type:"success",message:c,description:f})}}).catch(async u=>{if(i=["reject",u],n.error!==void 0){o=!1;const c=typeof n.error=="function"?await n.error(u):n.error,f=typeof n.description=="function"?await n.description(u):n.description;this.create({id:s,type:"error",message:c,description:f})}}).finally(()=>{var u;o&&(this.dismiss(s),s=void 0),(u=n.finally)==null||u.call(n)}),l=()=>new Promise((u,c)=>a.then(()=>i[0]==="reject"?c(i[1]):u(i[1])).catch(c));return typeof s!="string"&&typeof s!="number"?{unwrap:l}:Object.assign(s,{unwrap:l})}),Ze(this,"custom",(t,n)=>{const s=(n==null?void 0:n.id)||Jo++;return this.publish({component:t,id:s,...n}),s}),this.subscribers=[],this.toasts=[]}}const ft=new dp;function hp(e,t){const n=(t==null?void 0:t.id)||Jo++;return ft.create({message:e,id:n,type:"default",...t}),n}const pp=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",mp=hp,gp=()=>ft.toasts,N0=Object.assign(mp,{success:ft.success,info:ft.info,warning:ft.warning,error:ft.error,custom:ft.custom,message:ft.message,promise:ft.promise,dismiss:ft.dismiss,loading:ft.loading},{getHistory:gp});function pr(e){return e.label!==void 0}function yp(){const e=fe(!1);return Jn(()=>{const t=()=>{e.value=document.hidden};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)}),{isDocumentHidden:e}}const vp=["aria-live","data-rich-colors","data-styled","data-mounted","data-promise","data-removed","data-visible","data-y-position","data-x-position","data-index","data-front","data-swiping","data-dismissible","data-type","data-invert","data-swipe-out","data-expanded"],bp=["aria-label","data-disabled"],wp=4e3,_p=20,xp=200,Ep=Vn({__name:"Toast",props:{toast:{},toasts:{},index:{},expanded:{type:Boolean},invert:{type:Boolean},heights:{},gap:{},position:{},visibleToasts:{},expandByDefault:{type:Boolean},closeButton:{type:Boolean},interacting:{type:Boolean},style:{},cancelButtonStyle:{},actionButtonStyle:{},duration:{},class:{},unstyled:{type:Boolean},descriptionClass:{},loadingIcon:{},classes:{},icons:{},closeButtonAriaLabel:{},pauseWhenPageIsHidden:{type:Boolean},cn:{type:Function},defaultRichColors:{type:Boolean}},emits:["update:heights","removeToast"],setup(e,{emit:t}){const n=e,s=t,r=fe(!1),o=fe(!1),i=fe(!1),a=fe(!1),l=fe(!1),u=fe(0),c=fe(0),f=fe(n.toast.duration||n.duration||wp),h=fe(null),p=fe(null),x=ge(()=>n.index===0),g=ge(()=>n.index+1<=n.visibleToasts),w=ge(()=>n.toast.type),E=ge(()=>n.toast.dismissible!==!1),R=ge(()=>n.toast.class||""),y=ge(()=>n.descriptionClass||""),v=n.toast.style||{},D=ge(()=>n.heights.findIndex(A=>A.toastId===n.toast.id)||0),K=ge(()=>n.toast.closeButton??n.closeButton),j=fe(0),B=fe(0),S=fe(null),I=ge(()=>n.position.split("-")),q=ge(()=>I.value[0]),F=ge(()=>I.value[1]),W=ge(()=>typeof n.toast.title!="string"),se=ge(()=>typeof n.toast.description!="string"),de=ge(()=>n.heights.reduce((A,ae,C)=>C>=D.value?A:A+ae.height,0)),le=yp(),X=ge(()=>n.toast.invert||n.invert),ie=ge(()=>w.value==="loading"),ve=ge(()=>D.value*n.gap+de.value||0);Us(()=>{if(!r.value)return;const A=p.value,ae=A==null?void 0:A.style.height;A.style.height="auto";const C=A.getBoundingClientRect().height;A.style.height=ae,c.value=C;let L;n.heights.find(k=>k.toastId===n.toast.id)?L=n.heights.map(k=>k.toastId===n.toast.id?{...k,height:C}:k):L=[{toastId:n.toast.id,height:C,position:n.toast.position},...n.heights],s("update:heights",L)});function ue(){o.value=!0,u.value=ve.value;const A=n.heights.filter(ae=>ae.toastId!==n.toast.id);s("update:heights",A),setTimeout(()=>{s("removeToast",n.toast)},xp)}function De(){var A,ae;if(ie.value||!E.value)return{};ue(),(ae=(A=n.toast).onDismiss)==null||ae.call(A,n.toast)}function ke(A){ie.value||!E.value||(h.value=new Date,u.value=ve.value,A.target.setPointerCapture(A.pointerId),A.target.tagName!=="BUTTON"&&(i.value=!0,S.value={x:A.clientX,y:A.clientY}))}function Oe(){var A,ae,C,L,k;if(a.value||!E)return;S.value=null;const Q=Number(((A=p.value)==null?void 0:A.style.getPropertyValue("--swipe-amount").replace("px",""))||0),re=new Date().getTime()-((ae=h.value)==null?void 0:ae.getTime()),d=Math.abs(Q)/re;if(Math.abs(Q)>=_p||d>.11){u.value=ve.value,(L=(C=n.toast).onDismiss)==null||L.call(C,n.toast),ue(),a.value=!0,l.value=!1;return}(k=p.value)==null||k.style.setProperty("--swipe-amount","0px"),i.value=!1}function Ve(A){var ae,C;if(!S.value||!E.value)return;const L=A.clientY-S.value.y,k=((ae=window.getSelection())==null?void 0:ae.toString().length)>0,Q=q.value==="top"?Math.min(0,L):Math.max(0,L);Math.abs(Q)>0&&(l.value=!0),!k&&((C=p.value)==null||C.style.setProperty("--swipe-amount",`${Q}px`))}return Jn(A=>{if(n.toast.promise&&w.value==="loading"||n.toast.duration===1/0||n.toast.type==="loading")return;let ae;const C=()=>{if(B.value{f.value!==1/0&&(j.value=new Date().getTime(),ae=setTimeout(()=>{var k,Q;(Q=(k=n.toast).onAutoClose)==null||Q.call(k,n.toast),ue()},f.value))};n.expanded||n.interacting||n.pauseWhenPageIsHidden&&le?C():L(),A(()=>{clearTimeout(ae)})}),wn(()=>n.toast.delete,()=>{n.toast.delete&&ue()},{deep:!0}),Us(()=>{if(r.value=!0,p.value){const A=p.value.getBoundingClientRect().height;c.value=A;const ae=[{toastId:n.toast.id,height:A,position:n.toast.position},...n.heights];s("update:heights",ae)}}),wi(()=>{if(p.value){const A=n.heights.filter(ae=>ae.toastId!==n.toast.id);s("update:heights",A)}}),(A,ae)=>{var C,L,k,Q,re,d,m,b,T,N,P,V,H,U,M,Y,$,G,te,me,be,Ee,Ne,Me,ct,ut,nn;return ee(),ce("li",{ref_key:"toastRef",ref:p,"aria-live":A.toast.important?"assertive":"polite","aria-atomic":"true",role:"status",tabindex:"0","data-sonner-toast":"true",class:dt(A.cn(n.class,R.value,(C=A.classes)==null?void 0:C.toast,(L=A.toast.classes)==null?void 0:L.toast,(k=A.classes)==null?void 0:k[w.value],(re=(Q=A.toast)==null?void 0:Q.classes)==null?void 0:re[w.value])),"data-rich-colors":A.toast.richColors??A.defaultRichColors,"data-styled":!(A.toast.component||(d=A.toast)!=null&&d.unstyled||A.unstyled),"data-mounted":r.value,"data-promise":!!A.toast.promise,"data-removed":o.value,"data-visible":g.value,"data-y-position":q.value,"data-x-position":F.value,"data-index":A.index,"data-front":x.value,"data-swiping":i.value,"data-dismissible":E.value,"data-type":w.value,"data-invert":X.value,"data-swipe-out":a.value,"data-expanded":!!(A.expanded||A.expandByDefault&&r.value),style:bn({"--index":A.index,"--toasts-before":A.index,"--z-index":A.toasts.length-A.index,"--offset":`${o.value?u.value:ve.value}px`,"--initial-height":A.expandByDefault?"auto":`${c.value}px`,...A.style,...Ke(v)}),onPointerdown:ke,onPointerup:Oe,onPointermove:Ve},[K.value&&!A.toast.component?(ee(),ce("button",{key:0,"aria-label":A.closeButtonAriaLabel||"Close toast","data-disabled":ie.value,"data-close-button":"true",class:dt(A.cn((m=A.classes)==null?void 0:m.closeButton,(T=(b=A.toast)==null?void 0:b.classes)==null?void 0:T.closeButton)),onClick:De},[(N=A.icons)!=null&&N.close?(ee(),Ut(vs((P=A.icons)==null?void 0:P.close),{key:0})):_t(A.$slots,"close-icon",{key:1})],10,bp)):st("",!0),A.toast.component?(ee(),Ut(vs(A.toast.component),Ns({key:1},A.toast.componentProps,{onCloseToast:De}),null,16)):(ee(),ce(Re,{key:2},[w.value!=="default"||A.toast.icon||A.toast.promise?(ee(),ce("div",{key:0,"data-icon":"",class:dt(A.cn((V=A.classes)==null?void 0:V.icon,(U=(H=A.toast)==null?void 0:H.classes)==null?void 0:U.icon))},[A.toast.icon?(ee(),Ut(vs(A.toast.icon),{key:0})):(ee(),ce(Re,{key:1},[w.value==="loading"?_t(A.$slots,"loading-icon",{key:0}):w.value==="success"?_t(A.$slots,"success-icon",{key:1}):w.value==="error"?_t(A.$slots,"error-icon",{key:2}):w.value==="warning"?_t(A.$slots,"warning-icon",{key:3}):w.value==="info"?_t(A.$slots,"info-icon",{key:4}):st("",!0)],64))],2)):st("",!0),J("div",{"data-content":"",class:dt(A.cn((M=A.classes)==null?void 0:M.content,($=(Y=A.toast)==null?void 0:Y.classes)==null?void 0:$.content))},[J("div",{"data-title":"",class:dt(A.cn((G=A.classes)==null?void 0:G.title,(te=A.toast.classes)==null?void 0:te.title))},[W.value?(ee(),Ut(vs(A.toast.title),qi(Ns({key:0},A.toast.componentProps)),null,16)):(ee(),ce(Re,{key:1},[Vs(Ct(A.toast.title),1)],64))],2),A.toast.description?(ee(),ce("div",{key:0,"data-description":"",class:dt(A.cn(A.descriptionClass,y.value,(me=A.classes)==null?void 0:me.description,(be=A.toast.classes)==null?void 0:be.description))},[se.value?(ee(),Ut(vs(A.toast.description),qi(Ns({key:0},A.toast.componentProps)),null,16)):(ee(),ce(Re,{key:1},[Vs(Ct(A.toast.description),1)],64))],2)):st("",!0)],2),A.toast.cancel?(ee(),ce("button",{key:1,style:bn(A.toast.cancelButtonStyle||A.cancelButtonStyle),class:dt(A.cn((Ee=A.classes)==null?void 0:Ee.cancelButton,(Ne=A.toast.classes)==null?void 0:Ne.cancelButton)),"data-button":"","data-cancel":"",onClick:ae[0]||(ae[0]=sn=>{var Be,ze;Ke(pr)(A.toast.cancel)&&E.value&&((ze=(Be=A.toast.cancel).onClick)==null||ze.call(Be,sn),ue())})},Ct(Ke(pr)(A.toast.cancel)?(Me=A.toast.cancel)==null?void 0:Me.label:A.toast.cancel),7)):st("",!0),A.toast.action?(ee(),ce("button",{key:2,style:bn(A.toast.actionButtonStyle||A.actionButtonStyle),class:dt(A.cn((ct=A.classes)==null?void 0:ct.actionButton,(ut=A.toast.classes)==null?void 0:ut.actionButton)),"data-button":"","data-action":"",onClick:ae[1]||(ae[1]=sn=>{var Be,ze;Ke(pr)(A.toast.action)&&(sn.defaultPrevented||((ze=(Be=A.toast.action).onClick)==null||ze.call(Be,sn),!sn.defaultPrevented&&ue()))})},Ct(Ke(pr)(A.toast.action)?(nn=A.toast.action)==null?void 0:nn.label:A.toast.action),7)):st("",!0)],64))],46,vp)}}}),nr=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Sp={},Cp={xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stoke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"};function Rp(e,t){return ee(),ce("svg",Cp,t[0]||(t[0]=[J("line",{x1:"18",y1:"6",x2:"6",y2:"18"},null,-1),J("line",{x1:"6",y1:"6",x2:"18",y2:"18"},null,-1)]))}const Ap=nr(Sp,[["render",Rp]]),Op=["data-visible"],Tp={class:"sonner-spinner"},Pp=Vn({__name:"Loader",props:{visible:{type:Boolean}},setup(e){const t=Array(12).fill(0);return(n,s)=>(ee(),ce("div",{class:"sonner-loading-wrapper","data-visible":n.visible},[J("div",Tp,[(ee(!0),ce(Re,null,ts(Ke(t),r=>(ee(),ce("div",{key:`spinner-bar-${r}`,class:"sonner-loading-bar"}))),128))])],8,Op))}}),Dp={},Np={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function Ip(e,t){return ee(),ce("svg",Np,t[0]||(t[0]=[J("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Lp=nr(Dp,[["render",Ip]]),Fp={},Mp={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function kp(e,t){return ee(),ce("svg",Mp,t[0]||(t[0]=[J("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Bp=nr(Fp,[["render",kp]]),jp={},Up={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"};function Hp(e,t){return ee(),ce("svg",Up,t[0]||(t[0]=[J("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const qp=nr(jp,[["render",Hp]]),Vp={},$p={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function Kp(e,t){return ee(),ce("svg",$p,t[0]||(t[0]=[J("path",{"fill-rule":"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","clip-rule":"evenodd"},null,-1)]))}const Qp=nr(Vp,[["render",Kp]]),zp=["aria-label"],Wp=["dir","data-theme","data-rich-colors","data-y-position","data-x-position","data-lifted"],Gp=3,ja="32px",Jp=356,Yp=14,Xp=typeof window<"u"&&typeof document<"u";function Zp(...e){return e.filter(Boolean).join(" ")}const em=Vn({name:"Toaster",inheritAttrs:!1,__name:"Toaster",props:{invert:{type:Boolean,default:!1},theme:{default:"light"},position:{default:"bottom-right"},hotkey:{default:()=>["altKey","KeyT"]},richColors:{type:Boolean,default:!1},expand:{type:Boolean,default:!1},duration:{},gap:{default:Yp},visibleToasts:{default:Gp},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:""},style:{default:()=>({})},offset:{default:ja},dir:{default:"auto"},icons:{},containerAriaLabel:{default:"Notifications"},pauseWhenPageIsHidden:{type:Boolean,default:!1},cn:{type:Function,default:Zp}},setup(e){const t=e;function n(){if(typeof window>"u"||typeof document>"u")return"ltr";const y=document.documentElement.getAttribute("dir");return y==="auto"||!y?window.getComputedStyle(document.documentElement).direction:y}const s=ed(),r=fe([]),o=ge(()=>(y,v)=>r.value.filter(D=>!D.position&&v===0||D.position===y)),i=ge(()=>{const y=r.value.filter(v=>v.position).map(v=>v.position);return y.length>0?Array.from(new Set([t.position].concat(y))):[t.position]}),a=fe([]),l=fe(!1),u=fe(!1),c=fe(t.theme!=="system"?t.theme:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),f=fe(null),h=fe(null),p=fe(!1),x=t.hotkey.join("+").replace(/Key/g,"").replace(/Digit/g,"");function g(y){var v;(v=r.value.find(D=>D.id===y.id))!=null&&v.delete||ft.dismiss(y.id),r.value=r.value.filter(({id:D})=>D!==y.id)}function w(y){var v,D;p.value&&!((D=(v=y.currentTarget)==null?void 0:v.contains)!=null&&D.call(v,y.relatedTarget))&&(p.value=!1,h.value&&(h.value.focus({preventScroll:!0}),h.value=null))}function E(y){y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||p.value||(p.value=!0,h.value=y.relatedTarget)}function R(y){y.target&&y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||(u.value=!0)}return Jn(y=>{const v=ft.subscribe(D=>{if(D.dismiss){r.value=r.value.map(K=>K.id===D.id?{...K,delete:!0}:K);return}Hn(()=>{const K=r.value.findIndex(j=>j.id===D.id);K!==-1?r.value=[...r.value.slice(0,K),{...r.value[K],...D},...r.value.slice(K+1)]:r.value=[D,...r.value]})});y(v)}),wn(()=>t.theme,y=>{if(y!=="system"){c.value=y;return}if(y==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?c.value="dark":c.value="light"),typeof window>"u")return;const v=window.matchMedia("(prefers-color-scheme: dark)");try{v.addEventListener("change",({matches:D})=>{D?c.value="dark":c.value="light"})}catch{v.addListener(({matches:D})=>{try{D?c.value="dark":c.value="light"}catch(K){console.error(K)}})}}),Jn(()=>{f.value&&h.value&&(h.value.focus({preventScroll:!0}),h.value=null,p.value=!1)}),Jn(()=>{r.value.length<=1&&(l.value=!1)}),Jn(y=>{function v(D){const K=t.hotkey.every(S=>D[S]||D.code===S),j=Array.isArray(f.value)?f.value[0]:f.value;K&&(l.value=!0,j==null||j.focus());const B=document.activeElement===f.value||(j==null?void 0:j.contains(document.activeElement));D.code==="Escape"&&B&&(l.value=!1)}Xp&&(document.addEventListener("keydown",v),y(()=>{document.removeEventListener("keydown",v)}))}),(y,v)=>(ee(),ce("section",{"aria-label":`${y.containerAriaLabel} ${Ke(x)}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false"},[(ee(!0),ce(Re,null,ts(i.value,(D,K)=>{var j;return ee(),ce("ol",Ns({key:D,ref_for:!0,ref_key:"listRef",ref:f,"data-sonner-toaster":"",class:t.class,dir:y.dir==="auto"?n():y.dir,tabIndex:-1,"data-theme":y.theme,"data-rich-colors":y.richColors,"data-y-position":D.split("-")[0],"data-x-position":D.split("-")[1],"data-lifted":l.value&&r.value.length>1&&!y.expand,style:{"--front-toast-height":`${(j=a.value[0])==null?void 0:j.height}px`,"--offset":typeof y.offset=="number"?`${y.offset}px`:y.offset||ja,"--width":`${Jp}px`,"--gap":`${y.gap}px`,...y.style,...Ke(s).style}},y.$attrs,{onBlur:w,onFocus:E,onMouseenter:v[1]||(v[1]=()=>l.value=!0),onMousemove:v[2]||(v[2]=()=>l.value=!0),onMouseleave:v[3]||(v[3]=()=>{u.value||(l.value=!1)}),onPointerdown:R,onPointerup:v[4]||(v[4]=()=>u.value=!1)}),[(ee(!0),ce(Re,null,ts(o.value(D,K),(B,S)=>{var I,q,F,W,se,de,le,X,ie;return ee(),Ut(Ep,{key:B.id,heights:a.value.filter(ve=>ve.position===B.position),icons:y.icons,index:S,toast:B,defaultRichColors:y.richColors,duration:((I=y.toastOptions)==null?void 0:I.duration)??y.duration,class:dt(((q=y.toastOptions)==null?void 0:q.class)??""),descriptionClass:(F=y.toastOptions)==null?void 0:F.descriptionClass,invert:y.invert,visibleToasts:y.visibleToasts,closeButton:((W=y.toastOptions)==null?void 0:W.closeButton)??y.closeButton,interacting:u.value,position:D,style:bn((se=y.toastOptions)==null?void 0:se.style),unstyled:(de=y.toastOptions)==null?void 0:de.unstyled,classes:(le=y.toastOptions)==null?void 0:le.classes,cancelButtonStyle:(X=y.toastOptions)==null?void 0:X.cancelButtonStyle,actionButtonStyle:(ie=y.toastOptions)==null?void 0:ie.actionButtonStyle,toasts:r.value.filter(ve=>ve.position===B.position),expandByDefault:y.expand,gap:y.gap,expanded:l.value,pauseWhenPageIsHidden:y.pauseWhenPageIsHidden,cn:y.cn,"onUpdate:heights":v[0]||(v[0]=ve=>{a.value=ve}),onRemoveToast:g},{"close-icon":fn(()=>[_t(y.$slots,"close-icon",{},()=>[Te(Ap)])]),"loading-icon":fn(()=>[_t(y.$slots,"loading-icon",{},()=>[Te(Pp,{visible:B.type==="loading"},null,8,["visible"])])]),"success-icon":fn(()=>[_t(y.$slots,"success-icon",{},()=>[Te(Lp)])]),"error-icon":fn(()=>[_t(y.$slots,"error-icon",{},()=>[Te(Qp)])]),"warning-icon":fn(()=>[_t(y.$slots,"warning-icon",{},()=>[Te(qp)])]),"info-icon":fn(()=>[_t(y.$slots,"info-icon",{},()=>[Te(Bp)])]),_:2},1032,["heights","icons","index","toast","defaultRichColors","duration","class","descriptionClass","invert","visibleToasts","closeButton","interacting","position","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","toasts","expandByDefault","gap","expanded","pauseWhenPageIsHidden","cn"])}),128))],16,Wp)}),128))],8,zp))}});function iu(e,t){return function(){return e.apply(t,arguments)}}const{toString:tm}=Object.prototype,{getPrototypeOf:Yr}=Object,{iterator:Xr,toStringTag:au}=Symbol,Zr=(e=>t=>{const n=tm.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Pt=e=>(e=e.toLowerCase(),t=>Zr(t)===e),eo=e=>t=>typeof t===e,{isArray:ms}=Array,ds=eo("undefined");function sr(e){return e!==null&&!ds(e)&&e.constructor!==null&&!ds(e.constructor)&<(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const lu=Pt("ArrayBuffer");function nm(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&lu(e.buffer),t}const sm=eo("string"),lt=eo("function"),cu=eo("number"),rr=e=>e!==null&&typeof e=="object",rm=e=>e===!0||e===!1,wr=e=>{if(Zr(e)!=="object")return!1;const t=Yr(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(au in e)&&!(Xr in e)},om=e=>{if(!rr(e)||sr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},im=Pt("Date"),am=Pt("File"),lm=e=>!!(e&&typeof e.uri<"u"),cm=e=>e&&typeof e.getParts<"u",um=Pt("Blob"),fm=Pt("FileList"),dm=e=>rr(e)&<(e.pipe);function hm(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Ua=hm(),Ha=typeof Ua.FormData<"u"?Ua.FormData:void 0,pm=e=>{if(!e)return!1;if(Ha&&e instanceof Ha)return!0;const t=Yr(e);if(!t||t===Object.prototype||!lt(e.append))return!1;const n=Zr(e);return n==="formdata"||n==="object"&<(e.toString)&&e.toString()==="[object FormData]"},mm=Pt("URLSearchParams"),[gm,ym,vm,bm]=["ReadableStream","Request","Response","Headers"].map(Pt),wm=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function or(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let s,r;if(typeof e!="object"&&(e=[e]),ms(e))for(s=0,r=e.length;s0;)if(r=n[s],t===r.toLowerCase())return r;return null}const Pn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,fu=e=>!ds(e)&&e!==Pn;function Yo(...e){const{caseless:t,skipUndefined:n}=fu(this)&&this||{},s={},r=(o,i)=>{if(i==="__proto__"||i==="constructor"||i==="prototype")return;const a=t&&uu(s,i)||i,l=Xo(s,a)?s[a]:void 0;wr(l)&&wr(o)?s[a]=Yo(l,o):wr(o)?s[a]=Yo({},o):ms(o)?s[a]=o.slice():(!n||!ds(o))&&(s[a]=o)};for(let o=0,i=e.length;o(or(t,(r,o)=>{n&<(r)?Object.defineProperty(e,o,{__proto__:null,value:iu(r,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{__proto__:null,value:r,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),e),xm=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Em=(e,t,n,s)=>{e.prototype=Object.create(t.prototype,s),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Sm=(e,t,n,s)=>{let r,o,i;const a={};if(t=t||{},e==null)return t;do{for(r=Object.getOwnPropertyNames(e),o=r.length;o-- >0;)i=r[o],(!s||s(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Yr(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Cm=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const s=e.indexOf(t,n);return s!==-1&&s===n},Rm=e=>{if(!e)return null;if(ms(e))return e;let t=e.length;if(!cu(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Am=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Yr(Uint8Array)),Om=(e,t)=>{const s=(e&&e[Xr]).call(e);let r;for(;(r=s.next())&&!r.done;){const o=r.value;t.call(e,o[0],o[1])}},Tm=(e,t)=>{let n;const s=[];for(;(n=e.exec(t))!==null;)s.push(n);return s},Pm=Pt("HTMLFormElement"),Dm=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,r){return s.toUpperCase()+r}),Xo=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Nm=Pt("RegExp"),du=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),s={};or(n,(r,o)=>{let i;(i=t(r,o,e))!==!1&&(s[o]=i||r)}),Object.defineProperties(e,s)},Im=e=>{du(e,(t,n)=>{if(lt(e)&&["arguments","caller","callee"].includes(n))return!1;const s=e[n];if(lt(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lm=(e,t)=>{const n={},s=r=>{r.forEach(o=>{n[o]=!0})};return ms(e)?s(e):s(String(e).split(t)),n},Fm=()=>{},Mm=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function km(e){return!!(e&<(e.append)&&e[au]==="FormData"&&e[Xr])}const Bm=e=>{const t=new Array(10),n=(s,r)=>{if(rr(s)){if(t.indexOf(s)>=0)return;if(sr(s))return s;if(!("toJSON"in s)){t[r]=s;const o=ms(s)?[]:{};return or(s,(i,a)=>{const l=n(i,r+1);!ds(l)&&(o[a]=l)}),t[r]=void 0,o}}return s};return n(e,0)},jm=Pt("AsyncFunction"),Um=e=>e&&(rr(e)||lt(e))&<(e.then)&<(e.catch),hu=((e,t)=>e?setImmediate:t?((n,s)=>(Pn.addEventListener("message",({source:r,data:o})=>{r===Pn&&o===n&&s.length&&s.shift()()},!1),r=>{s.push(r),Pn.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",lt(Pn.postMessage)),Hm=typeof queueMicrotask<"u"?queueMicrotask.bind(Pn):typeof process<"u"&&process.nextTick||hu,qm=e=>e!=null&<(e[Xr]),_={isArray:ms,isArrayBuffer:lu,isBuffer:sr,isFormData:pm,isArrayBufferView:nm,isString:sm,isNumber:cu,isBoolean:rm,isObject:rr,isPlainObject:wr,isEmptyObject:om,isReadableStream:gm,isRequest:ym,isResponse:vm,isHeaders:bm,isUndefined:ds,isDate:im,isFile:am,isReactNativeBlob:lm,isReactNative:cm,isBlob:um,isRegExp:Nm,isFunction:lt,isStream:dm,isURLSearchParams:mm,isTypedArray:Am,isFileList:fm,forEach:or,merge:Yo,extend:_m,trim:wm,stripBOM:xm,inherits:Em,toFlatObject:Sm,kindOf:Zr,kindOfTest:Pt,endsWith:Cm,toArray:Rm,forEachEntry:Om,matchAll:Tm,isHTMLForm:Pm,hasOwnProperty:Xo,hasOwnProp:Xo,reduceDescriptors:du,freezeMethods:Im,toObjectSet:Lm,toCamelCase:Dm,noop:Fm,toFiniteNumber:Mm,findKey:uu,global:Pn,isContextDefined:fu,isSpecCompliantForm:km,toJSONObject:Bm,isAsyncFn:jm,isThenable:Um,setImmediate:hu,asap:Hm,isIterable:qm},Vm=_.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"]),$m=e=>{const t={};let n,s,r;return e&&e.split(` +`).forEach(function(i){r=i.indexOf(":"),n=i.substring(0,r).trim().toLowerCase(),s=i.substring(r+1).trim(),!(!n||t[n]&&Vm[n])&&(n==="set-cookie"?t[n]?t[n].push(s):t[n]=[s]:t[n]=t[n]?t[n]+", "+s:s)}),t},qa=Symbol("internals"),Km=/[^\x09\x20-\x7E\x80-\xFF]/g;function Qm(e){let t=0,n=e.length;for(;tt;){const s=e.charCodeAt(n-1);if(s!==9&&s!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}function _s(e){return e&&String(e).trim().toLowerCase()}function zm(e){return Qm(e.replace(Km,""))}function _r(e){return e===!1||e==null?e:_.isArray(e)?e.map(_r):zm(String(e))}function Wm(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(e);)t[s[1]]=s[2];return t}const Gm=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function xo(e,t,n,s,r){if(_.isFunction(s))return s.call(this,t,n);if(r&&(t=n),!!_.isString(t)){if(_.isString(s))return t.indexOf(s)!==-1;if(_.isRegExp(s))return s.test(t)}}function Jm(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,s)=>n.toUpperCase()+s)}function Ym(e,t){const n=_.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+n,{__proto__:null,value:function(r,o,i){return this[s].call(this,t,r,o,i)},configurable:!0})})}let at=class{constructor(t){t&&this.set(t)}set(t,n,s){const r=this;function o(a,l,u){const c=_s(l);if(!c)throw new Error("header name must be a non-empty string");const f=_.findKey(r,c);(!f||r[f]===void 0||u===!0||u===void 0&&r[f]!==!1)&&(r[f||l]=_r(a))}const i=(a,l)=>_.forEach(a,(u,c)=>o(u,c,l));if(_.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(_.isString(t)&&(t=t.trim())&&!Gm(t))i($m(t),n);else if(_.isObject(t)&&_.isIterable(t)){let a={},l,u;for(const c of t){if(!_.isArray(c))throw TypeError("Object iterator must return a key-value pair");a[u=c[0]]=(l=a[u])?_.isArray(l)?[...l,c[1]]:[l,c[1]]:c[1]}i(a,n)}else t!=null&&o(n,t,s);return this}get(t,n){if(t=_s(t),t){const s=_.findKey(this,t);if(s){const r=this[s];if(!n)return r;if(n===!0)return Wm(r);if(_.isFunction(n))return n.call(this,r,s);if(_.isRegExp(n))return n.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=_s(t),t){const s=_.findKey(this,t);return!!(s&&this[s]!==void 0&&(!n||xo(this,this[s],s,n)))}return!1}delete(t,n){const s=this;let r=!1;function o(i){if(i=_s(i),i){const a=_.findKey(s,i);a&&(!n||xo(s,s[a],a,n))&&(delete s[a],r=!0)}}return _.isArray(t)?t.forEach(o):o(t),r}clear(t){const n=Object.keys(this);let s=n.length,r=!1;for(;s--;){const o=n[s];(!t||xo(this,this[o],o,t,!0))&&(delete this[o],r=!0)}return r}normalize(t){const n=this,s={};return _.forEach(this,(r,o)=>{const i=_.findKey(s,o);if(i){n[i]=_r(r),delete n[o];return}const a=t?Jm(o):String(o).trim();a!==o&&delete n[o],n[a]=_r(r),s[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return _.forEach(this,(s,r)=>{s!=null&&s!==!1&&(n[r]=t&&_.isArray(s)?s.join(", "):s)}),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 s=new this(t);return n.forEach(r=>s.set(r)),s}static accessor(t){const s=(this[qa]=this[qa]={accessors:{}}).accessors,r=this.prototype;function o(i){const a=_s(i);s[a]||(Ym(r,i),s[a]=!0)}return _.isArray(t)?t.forEach(o):o(t),this}};at.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);_.reduceDescriptors(at.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[n]=s}}});_.freezeMethods(at);const Xm="[REDACTED ****]";function Zm(e){if(_.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(_.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function eg(e,t){const n=new Set(t.map(o=>String(o).toLowerCase())),s=[],r=o=>{if(o===null||typeof o!="object"||_.isBuffer(o))return o;if(s.indexOf(o)!==-1)return;o instanceof at&&(o=o.toJSON()),s.push(o);let i;if(_.isArray(o))i=[],o.forEach((a,l)=>{const u=r(a);_.isUndefined(u)||(i[l]=u)});else{if(!_.isPlainObject(o)&&Zm(o))return s.pop(),o;i=Object.create(null);for(const[a,l]of Object.entries(o)){const u=n.has(a.toLowerCase())?Xm:r(l);_.isUndefined(u)||(i[a]=u)}}return s.pop(),i};return r(e)}let z=class pu extends Error{static from(t,n,s,r,o,i){const a=new pu(t.message,n||t.code,s,r,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,s,r,o){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),s&&(this.config=s),r&&(this.request=r),o&&(this.response=o,this.status=o.status)}toJSON(){const t=this.config,n=t&&_.hasOwnProp(t,"redact")?t.redact:void 0,s=_.isArray(n)&&n.length>0?eg(t,n):_.toJSONObject(t);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:s,code:this.code,status:this.status}}};z.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";z.ERR_BAD_OPTION="ERR_BAD_OPTION";z.ECONNABORTED="ECONNABORTED";z.ETIMEDOUT="ETIMEDOUT";z.ECONNREFUSED="ECONNREFUSED";z.ERR_NETWORK="ERR_NETWORK";z.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";z.ERR_DEPRECATED="ERR_DEPRECATED";z.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";z.ERR_BAD_REQUEST="ERR_BAD_REQUEST";z.ERR_CANCELED="ERR_CANCELED";z.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";z.ERR_INVALID_URL="ERR_INVALID_URL";z.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const tg=null;function Zo(e){return _.isPlainObject(e)||_.isArray(e)}function mu(e){return _.endsWith(e,"[]")?e.slice(0,-2):e}function Eo(e,t,n){return e?e.concat(t).map(function(r,o){return r=mu(r),!n&&o?"["+r+"]":r}).join(n?".":""):t}function ng(e){return _.isArray(e)&&!e.some(Zo)}const sg=_.toFlatObject(_,{},null,function(t){return/^is[A-Z]/.test(t)});function to(e,t,n){if(!_.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=_.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,E){return!_.isUndefined(E[w])});const s=n.metaTokens,r=n.visitor||f,o=n.dots,i=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?100:n.maxDepth,u=a&&_.isSpecCompliantForm(t);if(!_.isFunction(r))throw new TypeError("visitor must be a function");function c(g){if(g===null)return"";if(_.isDate(g))return g.toISOString();if(_.isBoolean(g))return g.toString();if(!u&&_.isBlob(g))throw new z("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(g)||_.isTypedArray(g)?u&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function f(g,w,E){let R=g;if(_.isReactNative(t)&&_.isReactNativeBlob(g))return t.append(Eo(E,w,o),c(g)),!1;if(g&&!E&&typeof g=="object"){if(_.endsWith(w,"{}"))w=s?w:w.slice(0,-2),g=JSON.stringify(g);else if(_.isArray(g)&&ng(g)||(_.isFileList(g)||_.endsWith(w,"[]"))&&(R=_.toArray(g)))return w=mu(w),R.forEach(function(v,D){!(_.isUndefined(v)||v===null)&&t.append(i===!0?Eo([w],D,o):i===null?w:w+"[]",c(v))}),!1}return Zo(g)?!0:(t.append(Eo(E,w,o),c(g)),!1)}const h=[],p=Object.assign(sg,{defaultVisitor:f,convertValue:c,isVisitable:Zo});function x(g,w,E=0){if(!_.isUndefined(g)){if(E>l)throw new z("Object is too deeply nested ("+E+" levels). Max depth: "+l,z.ERR_FORM_DATA_DEPTH_EXCEEDED);if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+w.join("."));h.push(g),_.forEach(g,function(y,v){(!(_.isUndefined(y)||y===null)&&r.call(t,y,_.isString(v)?v.trim():v,w,p))===!0&&x(y,w?w.concat(v):[v],E+1)}),h.pop()}}if(!_.isObject(e))throw new TypeError("data must be an object");return x(e),t}function Va(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(s){return t[s]})}function Ti(e,t){this._pairs=[],e&&to(e,this,t)}const gu=Ti.prototype;gu.append=function(t,n){this._pairs.push([t,n])};gu.toString=function(t){const n=t?function(s){return t.call(this,s,Va)}:Va;return this._pairs.map(function(r){return n(r[0])+"="+n(r[1])},"").join("&")};function rg(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function yu(e,t,n){if(!t)return e;const s=n&&n.encode||rg,r=_.isFunction(n)?{serialize:n}:n,o=r&&r.serialize;let i;if(o?i=o(t,r):i=_.isURLSearchParams(t)?t.toString():new Ti(t,r).toString(s),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class $a{constructor(){this.handlers=[]}use(t,n,s){return this.handlers.push({fulfilled:t,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){_.forEach(this.handlers,function(s){s!==null&&t(s)})}}const Pi={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},og=typeof URLSearchParams<"u"?URLSearchParams:Ti,ig=typeof FormData<"u"?FormData:null,ag=typeof Blob<"u"?Blob:null,lg={isBrowser:!0,classes:{URLSearchParams:og,FormData:ig,Blob:ag},protocols:["http","https","file","blob","url","data"]},Di=typeof window<"u"&&typeof document<"u",ei=typeof navigator=="object"&&navigator||void 0,cg=Di&&(!ei||["ReactNative","NativeScript","NS"].indexOf(ei.product)<0),ug=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",fg=Di&&window.location.href||"http://localhost",dg=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Di,hasStandardBrowserEnv:cg,hasStandardBrowserWebWorkerEnv:ug,navigator:ei,origin:fg},Symbol.toStringTag,{value:"Module"})),Xe={...dg,...lg};function hg(e,t){return to(e,new Xe.classes.URLSearchParams,{visitor:function(n,s,r,o){return Xe.isNode&&_.isBuffer(n)?(this.append(s,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function pg(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function mg(e){const t={},n=Object.keys(e);let s;const r=n.length;let o;for(s=0;s=n.length;return i=!i&&_.isArray(r)?r.length:i,l?(_.hasOwnProp(r,i)?r[i]=_.isArray(r[i])?r[i].concat(s):[r[i],s]:r[i]=s,!a):((!r[i]||!_.isObject(r[i]))&&(r[i]=[]),t(n,s,r[i],o)&&_.isArray(r[i])&&(r[i]=mg(r[i])),!a)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(s,r)=>{t(pg(s),r,n,0)}),n}return null}const Qn=(e,t)=>e!=null&&_.hasOwnProp(e,t)?e[t]:void 0;function gg(e,t,n){if(_.isString(e))try{return(t||JSON.parse)(e),_.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(e)}const ir={transitional:Pi,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const s=n.getContentType()||"",r=s.indexOf("application/json")>-1,o=_.isObject(t);if(o&&_.isHTMLForm(t)&&(t=new FormData(t)),_.isFormData(t))return r?JSON.stringify(vu(t)):t;if(_.isArrayBuffer(t)||_.isBuffer(t)||_.isStream(t)||_.isFile(t)||_.isBlob(t)||_.isReadableStream(t))return t;if(_.isArrayBufferView(t))return t.buffer;if(_.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){const l=Qn(this,"formSerializer");if(s.indexOf("application/x-www-form-urlencoded")>-1)return hg(t,l).toString();if((a=_.isFileList(t))||s.indexOf("multipart/form-data")>-1){const u=Qn(this,"env"),c=u&&u.FormData;return to(a?{"files[]":t}:t,c&&new c,l)}}return o||r?(n.setContentType("application/json",!1),gg(t)):t}],transformResponse:[function(t){const n=Qn(this,"transitional")||ir.transitional,s=n&&n.forcedJSONParsing,r=Qn(this,"responseType"),o=r==="json";if(_.isResponse(t)||_.isReadableStream(t))return t;if(t&&_.isString(t)&&(s&&!r||o)){const a=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,Qn(this,"parseReviver"))}catch(l){if(a)throw l.name==="SyntaxError"?z.from(l,z.ERR_BAD_RESPONSE,this,null,Qn(this,"response")):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Xe.classes.FormData,Blob:Xe.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};_.forEach(["delete","get","head","post","put","patch","query"],e=>{ir.headers[e]={}});function So(e,t){const n=this||ir,s=t||n,r=at.from(s.headers);let o=s.data;return _.forEach(e,function(a){o=a.call(n,o,r.normalize(),t?t.status:void 0)}),r.normalize(),o}function bu(e){return!!(e&&e.__CANCEL__)}let ar=class extends z{constructor(t,n,s){super(t??"canceled",z.ERR_CANCELED,n,s),this.name="CanceledError",this.__CANCEL__=!0}};function wu(e,t,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?e(n):t(new z("Request failed with status code "+n.status,n.status>=400&&n.status<500?z.ERR_BAD_REQUEST:z.ERR_BAD_RESPONSE,n.config,n.request,n))}function yg(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function vg(e,t){e=e||10;const n=new Array(e),s=new Array(e);let r=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=s[o];i||(i=u),n[r]=l,s[r]=u;let f=o,h=0;for(;f!==r;)h+=n[f++],f=f%e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),u-i{n=c,r=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const c=Date.now(),f=c-n;f>=s?i(u,c):(r=u,o||(o=setTimeout(()=>{o=null,i(r)},s-f)))},()=>r&&i(r)]}const Ir=(e,t,n=3)=>{let s=0;const r=vg(50,250);return bg(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=a!=null?Math.min(i,a):i,u=Math.max(0,l-s),c=r(u);s=Math.max(s,l);const f={loaded:l,total:a,progress:a?l/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a?(a-l)/c:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},Ka=(e,t)=>{const n=e!=null;return[s=>t[0]({lengthComputable:n,total:e,loaded:s}),t[1]]},Qa=e=>(...t)=>_.asap(()=>e(...t)),wg=Xe.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Xe.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Xe.origin),Xe.navigator&&/(msie|trident)/i.test(Xe.navigator.userAgent)):()=>!0,_g=Xe.hasStandardBrowserEnv?{write(e,t,n,s,r,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];_.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),_.isString(s)&&a.push(`path=${s}`),_.isString(r)&&a.push(`domain=${r}`),o===!0&&a.push("secure"),_.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;ne instanceof at?{...e}:e;function qn(e,t){t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(u,c,f,h){return _.isPlainObject(u)&&_.isPlainObject(c)?_.merge.call({caseless:h},u,c):_.isPlainObject(c)?_.merge({},c):_.isArray(c)?c.slice():c}function r(u,c,f,h){if(_.isUndefined(c)){if(!_.isUndefined(u))return s(void 0,u,f,h)}else return s(u,c,f,h)}function o(u,c){if(!_.isUndefined(c))return s(void 0,c)}function i(u,c){if(_.isUndefined(c)){if(!_.isUndefined(u))return s(void 0,u)}else return s(void 0,c)}function a(u,c,f){if(_.hasOwnProp(t,f))return s(u,c);if(_.hasOwnProp(e,f))return s(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,allowedSocketPaths:i,responseEncoding:i,validateStatus:a,headers:(u,c,f)=>r(za(u),za(c),f,!0)};return _.forEach(Object.keys({...e,...t}),function(c){if(c==="__proto__"||c==="constructor"||c==="prototype")return;const f=_.hasOwnProp(l,c)?l[c]:r,h=_.hasOwnProp(e,c)?e[c]:void 0,p=_.hasOwnProp(t,c)?t[c]:void 0,x=f(h,p,c);_.isUndefined(x)&&f!==a||(n[c]=x)}),n}const Sg=["content-type","content-length"];function Cg(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t).forEach(([s,r])=>{Sg.includes(s.toLowerCase())&&e.set(s,r)})}const Rg=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),xu=e=>{const t=qn({},e),n=h=>_.hasOwnProp(t,h)?t[h]:void 0,s=n("data");let r=n("withXSRFToken");const o=n("xsrfHeaderName"),i=n("xsrfCookieName");let a=n("headers");const l=n("auth"),u=n("baseURL"),c=n("allowAbsoluteUrls"),f=n("url");if(t.headers=a=at.from(a),t.url=yu(_u(u,f,c),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?Rg(l.password):""))),_.isFormData(s)&&(Xe.hasStandardBrowserEnv||Xe.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):_.isFunction(s.getHeaders)&&Cg(a,s.getHeaders(),n("formDataHeaderPolicy"))),Xe.hasStandardBrowserEnv&&(_.isFunction(r)&&(r=r(t)),r===!0||r==null&&wg(t.url))){const p=o&&i&&_g.read(i);p&&a.set(o,p)}return t},Ag=typeof XMLHttpRequest<"u",Og=Ag&&function(e){return new Promise(function(n,s){const r=xu(e);let o=r.data;const i=at.from(r.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=r,c,f,h,p,x;function g(){p&&p(),x&&x(),r.cancelToken&&r.cancelToken.unsubscribe(c),r.signal&&r.signal.removeEventListener("abort",c)}let w=new XMLHttpRequest;w.open(r.method.toUpperCase(),r.url,!0),w.timeout=r.timeout;function E(){if(!w)return;const y=at.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),D={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:y,config:e,request:w};wu(function(j){n(j),g()},function(j){s(j),g()},D),w=null}"onloadend"in w?w.onloadend=E:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.startsWith("file:"))||setTimeout(E)},w.onabort=function(){w&&(s(new z("Request aborted",z.ECONNABORTED,e,w)),g(),w=null)},w.onerror=function(v){const D=v&&v.message?v.message:"Network Error",K=new z(D,z.ERR_NETWORK,e,w);K.event=v||null,s(K),g(),w=null},w.ontimeout=function(){let v=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const D=r.transitional||Pi;r.timeoutErrorMessage&&(v=r.timeoutErrorMessage),s(new z(v,D.clarifyTimeoutError?z.ETIMEDOUT:z.ECONNABORTED,e,w)),g(),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&_.forEach(i.toJSON(),function(v,D){w.setRequestHeader(D,v)}),_.isUndefined(r.withCredentials)||(w.withCredentials=!!r.withCredentials),a&&a!=="json"&&(w.responseType=r.responseType),u&&([h,x]=Ir(u,!0),w.addEventListener("progress",h)),l&&w.upload&&([f,p]=Ir(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",p)),(r.cancelToken||r.signal)&&(c=y=>{w&&(s(!y||y.type?new ar(null,e,w):y),w.abort(),g(),w=null)},r.cancelToken&&r.cancelToken.subscribe(c),r.signal&&(r.signal.aborted?c():r.signal.addEventListener("abort",c)));const R=yg(r.url);if(R&&!Xe.protocols.includes(R)){s(new z("Unsupported protocol "+R+":",z.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Tg=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let s=new AbortController,r;const o=function(u){if(!r){r=!0,a();const c=u instanceof Error?u:this.reason;s.abort(c instanceof z?c:new ar(c instanceof Error?c.message:c))}};let i=t&&setTimeout(()=>{i=null,o(new z(`timeout of ${t}ms exceeded`,z.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}=s;return l.unsubscribe=()=>_.asap(a),l}},Pg=function*(e,t){let n=e.byteLength;if(n{const r=Dg(e,t);let o=0,i,a=l=>{i||(i=!0,s&&s(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await r.next();if(u){a(),l.close();return}let f=c.byteLength;if(n){let h=o+=f;n(h)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),r.return()}},{highWaterMark:2})};function Ig(e){if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),s=e.slice(t+1);if(/;base64/i.test(n)){let i=s.length;const a=s.length;for(let p=0;p=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102)&&(g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102)&&(i-=2,p+=2)}let l=0,u=a-1;const c=p=>p>=2&&s.charCodeAt(p-2)===37&&s.charCodeAt(p-1)===51&&(s.charCodeAt(p)===68||s.charCodeAt(p)===100);u>=0&&(s.charCodeAt(u)===61?(l++,u--):c(u)&&(l++,u-=3)),l===1&&u>=0&&(s.charCodeAt(u)===61||c(u))&&l++;const h=Math.floor(i/4)*3-(l||0);return h>0?h:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(s,"utf8");let o=0;for(let i=0,a=s.length;i=55296&&l<=56319&&i+1=56320&&u<=57343?(o+=4,i++):o+=3}else o+=3}return o}const Ni="1.16.0",Ga=64*1024,{isFunction:mr}=_,Ja=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Lg=e=>{const t=_.global??globalThis,{ReadableStream:n,TextEncoder:s}=t;e=_.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:r,Request:o,Response:i}=e,a=r?mr(r):typeof fetch=="function",l=mr(o),u=mr(i);if(!a)return!1;const c=a&&mr(n),f=a&&(typeof s=="function"?(E=>R=>E.encode(R))(new s):async E=>new Uint8Array(await new o(E).arrayBuffer())),h=l&&c&&Ja(()=>{let E=!1;const R=new o(Xe.origin,{body:new n,method:"POST",get duplex(){return E=!0,"half"}}),y=R.headers.has("Content-Type");return R.body!=null&&R.body.cancel(),E&&!y}),p=u&&c&&Ja(()=>_.isReadableStream(new i("").body)),x={stream:p&&(E=>E.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(E=>{!x[E]&&(x[E]=(R,y)=>{let v=R&&R[E];if(v)return v.call(R);throw new z(`Response type '${E}' is not supported`,z.ERR_NOT_SUPPORT,y)})});const g=async E=>{if(E==null)return 0;if(_.isBlob(E))return E.size;if(_.isSpecCompliantForm(E))return(await new o(Xe.origin,{method:"POST",body:E}).arrayBuffer()).byteLength;if(_.isArrayBufferView(E)||_.isArrayBuffer(E))return E.byteLength;if(_.isURLSearchParams(E)&&(E=E+""),_.isString(E))return(await f(E)).byteLength},w=async(E,R)=>{const y=_.toFiniteNumber(E.getContentLength());return y??g(R)};return async E=>{let{url:R,method:y,data:v,signal:D,cancelToken:K,timeout:j,onDownloadProgress:B,onUploadProgress:S,responseType:I,headers:q,withCredentials:F="same-origin",fetchOptions:W,maxContentLength:se,maxBodyLength:de}=xu(E);const le=_.isNumber(se)&&se>-1,X=_.isNumber(de)&&de>-1;let ie=r||fetch;I=I?(I+"").toLowerCase():"text";let ve=Tg([D,K&&K.toAbortSignal()],j),ue=null;const De=ve&&ve.unsubscribe&&(()=>{ve.unsubscribe()});let ke;try{if(le&&typeof R=="string"&&R.startsWith("data:")&&Ig(R)>se)throw new z("maxContentLength size of "+se+" exceeded",z.ERR_BAD_RESPONSE,E,ue);if(X&&y!=="get"&&y!=="head"){const L=await w(q,v);if(typeof L=="number"&&isFinite(L)&&L>de)throw new z("Request body larger than maxBodyLength limit",z.ERR_BAD_REQUEST,E,ue)}if(S&&h&&y!=="get"&&y!=="head"&&(ke=await w(q,v))!==0){let L=new o(R,{method:"POST",body:v,duplex:"half"}),k;if(_.isFormData(v)&&(k=L.headers.get("content-type"))&&q.setContentType(k),L.body){const[Q,re]=Ka(ke,Ir(Qa(S)));v=Wa(L.body,Ga,Q,re)}}_.isString(F)||(F=F?"include":"omit");const Oe=l&&"credentials"in o.prototype;if(_.isFormData(v)){const L=q.getContentType();L&&/^multipart\/form-data/i.test(L)&&!/boundary=/i.test(L)&&q.delete("content-type")}q.set("User-Agent","axios/"+Ni,!1);const Ve={...W,signal:ve,method:y.toUpperCase(),headers:q.normalize().toJSON(),body:v,duplex:"half",credentials:Oe?F:void 0};ue=l&&new o(R,Ve);let A=await(l?ie(ue,W):ie(R,Ve));if(le){const L=_.toFiniteNumber(A.headers.get("content-length"));if(L!=null&&L>se)throw new z("maxContentLength size of "+se+" exceeded",z.ERR_BAD_RESPONSE,E,ue)}const ae=p&&(I==="stream"||I==="response");if(p&&A.body&&(B||le||ae&&De)){const L={};["status","statusText","headers"].forEach(b=>{L[b]=A[b]});const k=_.toFiniteNumber(A.headers.get("content-length")),[Q,re]=B&&Ka(k,Ir(Qa(B),!0))||[];let d=0;const m=b=>{if(le&&(d=b,d>se))throw new z("maxContentLength size of "+se+" exceeded",z.ERR_BAD_RESPONSE,E,ue);Q&&Q(b)};A=new i(Wa(A.body,Ga,m,()=>{re&&re(),De&&De()}),L)}I=I||"text";let C=await x[_.findKey(x,I)||"text"](A,E);if(le&&!p&&!ae){let L;if(C!=null&&(typeof C.byteLength=="number"?L=C.byteLength:typeof C.size=="number"?L=C.size:typeof C=="string"&&(L=typeof s=="function"?new s().encode(C).byteLength:C.length)),typeof L=="number"&&L>se)throw new z("maxContentLength size of "+se+" exceeded",z.ERR_BAD_RESPONSE,E,ue)}return!ae&&De&&De(),await new Promise((L,k)=>{wu(L,k,{data:C,headers:at.from(A.headers),status:A.status,statusText:A.statusText,config:E,request:ue})})}catch(Oe){if(De&&De(),ve&&ve.aborted&&ve.reason instanceof z){const Ve=ve.reason;throw Ve.config=E,ue&&(Ve.request=ue),Oe!==Ve&&(Ve.cause=Oe),Ve}throw Oe&&Oe.name==="TypeError"&&/Load failed|fetch/i.test(Oe.message)?Object.assign(new z("Network Error",z.ERR_NETWORK,E,ue,Oe&&Oe.response),{cause:Oe.cause||Oe}):z.from(Oe,Oe&&Oe.code,E,ue,Oe&&Oe.response)}}},Fg=new Map,Eu=e=>{let t=e&&e.env||{};const{fetch:n,Request:s,Response:r}=t,o=[s,r,n];let i=o.length,a=i,l,u,c=Fg;for(;a--;)l=o[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:Lg(t)),c=u;return u};Eu();const Ii={http:tg,xhr:Og,fetch:{get:Eu}};_.forEach(Ii,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Ya=e=>`- ${e}`,Mg=e=>_.isFunction(e)||e===null||e===!1;function kg(e,t){e=_.isArray(e)?e:[e];const{length:n}=e;let s,r;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(Ya).join(` +`):" "+Ya(i[0]):"as no adapter specified";throw new z("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r}const Su={getAdapter:kg,adapters:Ii};function Co(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ar(null,e)}function Xa(e){return Co(e),e.headers=at.from(e.headers),e.data=So.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Su.getAdapter(e.adapter||ir.adapter,e)(e).then(function(s){Co(e),e.response=s;try{s.data=So.call(e,e.transformResponse,s)}finally{delete e.response}return s.headers=at.from(s.headers),s},function(s){if(!bu(s)&&(Co(e),s&&s.response)){e.response=s.response;try{s.response.data=So.call(e,e.transformResponse,s.response)}finally{delete e.response}s.response.headers=at.from(s.response.headers)}return Promise.reject(s)})}const no={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{no[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const Za={};no.transitional=function(t,n,s){function r(o,i){return"[Axios v"+Ni+"] Transitional option '"+o+"'"+i+(s?". "+s:"")}return(o,i,a)=>{if(t===!1)throw new z(r(i," has been removed"+(n?" in "+n:"")),z.ERR_DEPRECATED);return n&&!Za[i]&&(Za[i]=!0,console.warn(r(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};no.spelling=function(t){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function Bg(e,t,n){if(typeof e!="object")throw new z("options must be an object",z.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let r=s.length;for(;r-- >0;){const o=s[r],i=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new z("option "+o+" must be "+l,z.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new z("Unknown option "+o,z.ERR_BAD_OPTION)}}const xr={assertOptions:Bg,validators:no},vt=xr.validators;let Un=class{constructor(t){this.defaults=t||{},this.interceptors={request:new $a,response:new $a}}async request(t,n){try{return await this._request(t,n)}catch(s){if(s instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;const o=(()=>{if(!r.stack)return"";const i=r.stack.indexOf(` +`);return i===-1?"":r.stack.slice(i+1)})();try{if(!s.stack)s.stack=o;else if(o){const i=o.indexOf(` +`),a=i===-1?-1:o.indexOf(` +`,i+1),l=a===-1?"":o.slice(a+1);String(s.stack).endsWith(l)||(s.stack+=` +`+o)}}catch{}}throw s}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=qn(this.defaults,n);const{transitional:s,paramsSerializer:r,headers:o}=n;s!==void 0&&xr.assertOptions(s,{silentJSONParsing:vt.transitional(vt.boolean),forcedJSONParsing:vt.transitional(vt.boolean),clarifyTimeoutError:vt.transitional(vt.boolean),legacyInterceptorReqResOrdering:vt.transitional(vt.boolean)},!1),r!=null&&(_.isFunction(r)?n.paramsSerializer={serialize:r}:xr.assertOptions(r,{encode:vt.function,serialize:vt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),xr.assertOptions(n,{baseUrl:vt.spelling("baseURL"),withXsrfToken:vt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&_.merge(o.common,o[n.method]);o&&_.forEach(["delete","get","head","post","put","patch","query","common"],x=>{delete o[x]}),n.headers=at.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(g){if(typeof g.runWhen=="function"&&g.runWhen(n)===!1)return;l=l&&g.synchronous;const w=n.transitional||Pi;w&&w.legacyInterceptorReqResOrdering?a.unshift(g.fulfilled,g.rejected):a.push(g.fulfilled,g.rejected)});const u=[];this.interceptors.response.forEach(function(g){u.push(g.fulfilled,g.rejected)});let c,f=0,h;if(!l){const x=[Xa.bind(this),void 0];for(x.unshift(...a),x.push(...u),h=x.length,c=Promise.resolve(n);f{if(!s._listeners)return;let o=s._listeners.length;for(;o-- >0;)s._listeners[o](r);s._listeners=null}),this.promise.then=r=>{let o;const i=new Promise(a=>{s.subscribe(a),o=a}).then(r);return i.cancel=function(){s.unsubscribe(o)},i},t(function(o,i,a){s.reason||(s.reason=new ar(o,i,a),n(s.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=s=>{t.abort(s)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Cu(function(r){t=r}),cancel:t}}};function Ug(e){return function(n){return e.apply(null,n)}}function Hg(e){return _.isObject(e)&&e.isAxiosError===!0}const ti={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(ti).forEach(([e,t])=>{ti[t]=e});function Ru(e){const t=new Un(e),n=iu(Un.prototype.request,t);return _.extend(n,Un.prototype,t,{allOwnKeys:!0}),_.extend(n,t,null,{allOwnKeys:!0}),n.create=function(r){return Ru(qn(e,r))},n}const Fe=Ru(ir);Fe.Axios=Un;Fe.CanceledError=ar;Fe.CancelToken=jg;Fe.isCancel=bu;Fe.VERSION=Ni;Fe.toFormData=to;Fe.AxiosError=z;Fe.Cancel=Fe.CanceledError;Fe.all=function(t){return Promise.all(t)};Fe.spread=Ug;Fe.isAxiosError=Hg;Fe.mergeConfig=qn;Fe.AxiosHeaders=at;Fe.formToJSON=e=>vu(_.isHTMLForm(e)?new FormData(e):e);Fe.getAdapter=Su.getAdapter;Fe.HttpStatusCode=ti;Fe.default=Fe;const{Axios:M0,AxiosError:k0,CanceledError:B0,isCancel:j0,CancelToken:U0,VERSION:H0,all:q0,Cancel:V0,isAxiosError:$0,spread:K0,toFormData:Q0,AxiosHeaders:z0,HttpStatusCode:W0,formToJSON:G0,getAdapter:J0,mergeConfig:Y0,create:X0}=Fe,Ls=Fe.create({baseURL:"/cc-dashboard",headers:{"Content-Type":"application/json"}});function qg(e,t){Ls.interceptors.request.use(n=>{const s=e();return s&&(n.headers.Authorization=`Bearer ${s}`),n}),Ls.interceptors.response.use(n=>n,n=>{var s;return((s=n.response)==null?void 0:s.status)===401&&t(),Promise.reject(n)})}const so=Ah("auth",()=>{const e=fe(null),t=fe(null),n=fe(!1),s=fe(null),r=ge(()=>e.value!==null),o=ge(()=>{var c;return((c=t.value)==null?void 0:c.role)==="admin"});async function i(c,f){var h,p;n.value=!0,s.value=null;try{const x=new URLSearchParams;x.append("username",c),x.append("password",f);const g=await Ls.post("/api/auth/login",x,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});e.value=g.data.access_token,await l()}catch(x){const g=x;throw s.value=((p=(h=g.response)==null?void 0:h.data)==null?void 0:p.detail)??"Login failed",x}finally{n.value=!1}}async function a(){try{await Ls.post("/api/auth/logout")}catch{}finally{e.value=null,t.value=null}}async function l(){const c=await Ls.get("/api/auth/me");t.value=c.data}function u(){return e.value}return{token:e,user:t,loading:n,error:s,isAuthenticated:r,isAdmin:o,login:i,logout:a,fetchMe:l,getToken:u}}),Vg={key:0,class:"absolute -top-1 -right-1 flex h-5 w-5 items-center justify-center rounded-full bg-red-500 text-white text-xs font-bold"},$g={key:0,class:"fixed bottom-6 right-6 z-50 flex flex-col w-[380px] max-h-[600px] rounded-2xl bg-gray-900 border border-gray-700 shadow-2xl overflow-hidden"},Kg={class:"flex items-center justify-between px-4 py-3 border-b border-gray-700 bg-gray-800 flex-shrink-0"},Qg={class:"flex items-center gap-1"},zg={key:0,class:"flex flex-col items-center justify-center h-full py-8 text-center"},Wg={class:"mt-4 flex flex-wrap justify-center gap-2"},Gg=["onClick"],Jg={key:0,class:"flex justify-end"},Yg={class:"max-w-[80%] rounded-2xl rounded-tr-sm bg-amber-400 px-3 py-2"},Xg={class:"text-sm text-gray-900"},Zg={key:1,class:"flex justify-start"},ey={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},ty=["innerHTML"],ny={key:1,class:"flex justify-start"},sy={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},ry={key:0,class:"mb-2 space-y-1"},oy=["innerHTML"],iy={key:2,class:"flex items-center gap-1"},ay={class:"flex-shrink-0 border-t border-gray-700 bg-gray-800 p-3"},ly={class:"flex items-end gap-2"},cy=["disabled","onKeydown"],uy=["disabled"],fy=Vn({__name:"AssistantWidget",setup(e){const t=so(),n=fe(!1),s=fe([]),r=fe(""),o=fe(!1),i=fe(""),a=fe([]),l=fe(0),u=fe(),c=fe(),f=["Check today for gaps","How many hours this week?","Any uncategorized sessions?","Summarize yesterday"];function h(S){return{get_daily_summary:"Loading daily summary…",get_sessions:"Fetching sessions…",get_project_stats:"Calculating project hours…",detect_anomalies:"Scanning for gaps…",create_manual_entry:"Creating manual entry…",set_session_category:"Updating category…",get_unresolved_flags:"Loading flags…"}[S]??`Running ${S}…`}function p(S){const q=S.replace(/&/g,"&").replace(//g,">").split(` +`),F=[];let W=!1;for(const se of q){const de=se.replace(/\*\*(.+?)\*\*/g,'$1').replace(/`(.+?)`/g,'$1');/^###? (.+)/.test(de)?(W&&(F.push(""),W=!1),F.push(`

    ${de.replace(/^###? /,"")}

    `)):/^# (.+)/.test(de)?(W&&(F.push(""),W=!1),F.push(`

    ${de.replace(/^# /,"")}

    `)):/^- (.+)/.test(de)?(W||(F.push('
      '),W=!0),F.push(`
    • ${de.replace(/^- /,"")}
    • `)):/^\d+\. (.+)/.test(de)?(W||(F.push('
        '),W=!0),F.push(`
      1. ${de.replace(/^\d+\. /,"")}
      2. `)):de.trim()===""?(W&&(F.push("
    "),W=!1),F.push('
    ')):(W&&(F.push(""),W=!1),F.push(`

    ${de}

    `))}return W&&F.push(""),F.join("")}async function x(){try{const S=await fetch("/cc-dashboard/api/assistant/history?limit=30",{headers:{Authorization:`Bearer ${t.token}`}});if(!S.ok)return;s.value=await S.json()}catch{}}async function g(){try{const S=await fetch("/cc-dashboard/api/assistant/flags?days_back=7&resolved=false",{headers:{Authorization:`Bearer ${t.token}`}});if(!S.ok)return;const I=await S.json();l.value=I.length}catch{}}async function w(){await fetch("/cc-dashboard/api/assistant/history",{method:"DELETE",headers:{Authorization:`Bearer ${t.token}`}}),s.value=[]}function E(){R("Show me all unresolved time-tracking issues from the last 7 days")}function R(S){r.value=S,y()}async function y(){const S=r.value.trim();if(!S||o.value)return;r.value="",K();const I={id:crypto.randomUUID(),role:"user",content:S,created_at:new Date().toISOString()};s.value.push(I),v(),o.value=!0,i.value="",a.value=[];try{const q=await fetch("/cc-dashboard/api/assistant/chat",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},body:JSON.stringify({message:S})});if(!q.ok||!q.body)throw new Error(`HTTP ${q.status}`);const F=q.body.getReader(),W=new TextDecoder;let se="";for(;;){const{done:de,value:le}=await F.read();if(de)break;se+=W.decode(le,{stream:!0});const X=se.split(` +`);se=X.pop()??"";for(const ie of X){if(!ie.startsWith("data: "))continue;const ve=ie.slice(6).trim();if(ve!=="[DONE]")try{const ue=JSON.parse(ve);ue.type==="text"?(i.value+=ue.text,v()):ue.type==="tool_start"?a.value.includes(ue.tool)||a.value.push(ue.tool):ue.type==="tool_result"?a.value=a.value.filter(De=>De!==ue.tool):ue.type==="error"&&(i.value=ue.text)}catch{}}}i.value&&s.value.push({id:crypto.randomUUID(),role:"assistant",content:i.value,created_at:new Date().toISOString()}),await g()}catch{s.value.push({id:crypto.randomUUID(),role:"assistant",content:"Failed to get response. Please try again.",created_at:new Date().toISOString()})}finally{o.value=!1,i.value="",a.value=[],v()}}function v(){Hn(()=>{u.value&&(u.value.scrollTop=u.value.scrollHeight)})}function D(S){const I=S.target;I.style.height="auto",I.style.height=`${Math.min(I.scrollHeight,96)}px`}function K(){c.value&&(c.value.style.height="auto")}async function j(){n.value=!0,await x(),Hn(()=>{var S;return(S=c.value)==null?void 0:S.focus()}),v()}let B;return Us(()=>{g(),B=setInterval(g,5*60*1e3)}),_i(()=>{B!==void 0&&clearInterval(B)}),wn(n,S=>{S&&g()}),(S,I)=>(ee(),ce(Re,null,[n.value?st("",!0):(ee(),ce("button",{key:0,class:"fixed bottom-6 right-6 z-50 flex h-14 w-14 items-center justify-center rounded-full bg-amber-400 text-gray-900 shadow-lg hover:bg-amber-300 transition-all duration-200 hover:scale-105 active:scale-95",title:"AI Assistant","aria-label":"Open AI Assistant",onClick:j},[I[2]||(I[2]=J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-7 w-7",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[J("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})],-1)),l.value>0?(ee(),ce("span",Vg,Ct(l.value>9?"9+":l.value),1)):st("",!0)])),Te($d,{name:"slide-up"},{default:fn(()=>[n.value?(ee(),ce("div",$g,[J("div",Kg,[I[6]||(I[6]=J("div",{class:"flex items-center gap-2"},[J("div",{class:"flex h-8 w-8 items-center justify-center rounded-full bg-amber-400"},[J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4 text-gray-900",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[J("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})])]),J("div",null,[J("p",{class:"text-sm font-semibold text-white"},"Time Analyst"),J("p",{class:"text-xs text-gray-400"},"AI assistant")])],-1)),J("div",Qg,[l.value>0?(ee(),ce("button",{key:0,class:"flex items-center gap-1 rounded-full bg-red-900/40 px-2 py-0.5 text-xs text-red-400 hover:bg-red-900/60 transition-colors",title:"View anomalies",onClick:E},[I[3]||(I[3]=J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-3 w-3",viewBox:"0 0 20 20",fill:"currentColor"},[J("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),Vs(" "+Ct(l.value)+" issue"+Ct(l.value>1?"s":""),1)])):st("",!0),J("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors",title:"Clear history","aria-label":"Clear chat history",onClick:w},[...I[4]||(I[4]=[J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[J("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])]),J("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors","aria-label":"Close assistant",onClick:I[0]||(I[0]=q=>n.value=!1)},[...I[5]||(I[5]=[J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[J("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),J("div",{ref_key:"messagesEl",ref:u,class:"flex-1 overflow-y-auto p-3 space-y-3 min-h-0"},[s.value.length===0&&!o.value?(ee(),ce("div",zg,[I[7]||(I[7]=J("div",{class:"h-12 w-12 rounded-full bg-amber-400/10 flex items-center justify-center mb-3"},[J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 text-amber-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[J("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09z"})])],-1)),I[8]||(I[8]=J("p",{class:"text-sm font-medium text-gray-300"},"Time Analyst",-1)),I[9]||(I[9]=J("p",{class:"text-xs text-gray-500 mt-1"},"Ask me about your hours, gaps, or missing time entries.",-1)),J("div",Wg,[(ee(),ce(Re,null,ts(f,q=>J("button",{key:q,class:"rounded-full border border-gray-600 px-3 py-1.5 text-xs text-gray-400 hover:border-amber-400 hover:text-amber-400 transition-colors",onClick:F=>R(q)},Ct(q),9,Gg)),64))])])):st("",!0),(ee(!0),ce(Re,null,ts(s.value,q=>(ee(),ce(Re,{key:q.id},[q.role==="user"?(ee(),ce("div",Jg,[J("div",Yg,[J("p",Xg,Ct(q.content),1)])])):(ee(),ce("div",Zg,[J("div",ey,[J("div",{class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:p(q.content)},null,8,ty)])]))],64))),128)),o.value||i.value?(ee(),ce("div",ny,[J("div",sy,[a.value.length>0?(ee(),ce("div",ry,[(ee(!0),ce(Re,null,ts(a.value,q=>(ee(),ce("div",{key:q,class:"flex items-center gap-1.5 text-xs text-amber-400"},[I[10]||(I[10]=J("svg",{class:"h-3 w-3 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[J("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),J("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),Vs(" "+Ct(h(q)),1)]))),128))])):st("",!0),i.value?(ee(),ce("div",{key:1,class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:p(i.value)},null,8,oy)):(ee(),ce("div",iy,[...I[11]||(I[11]=[J("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"0ms"}},null,-1),J("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"150ms"}},null,-1),J("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"300ms"}},null,-1)])]))])])):st("",!0)],512),J("div",ay,[J("div",ly,[Df(J("textarea",{ref_key:"inputEl",ref:c,"onUpdate:modelValue":I[1]||(I[1]=q=>r.value=q),rows:"1",placeholder:"Ask about your time...",class:"flex-1 resize-none rounded-xl bg-gray-700 border border-gray-600 px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:border-amber-400 transition-colors max-h-24 overflow-y-auto",disabled:o.value,onKeydown:[Oa(Aa(y,["exact","prevent"]),["enter"]),Oa(Aa(()=>{},["shift","exact"]),["enter"])],onInput:D},null,40,cy),[[dh,r.value]]),J("button",{disabled:!r.value.trim()||o.value,class:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-xl bg-amber-400 text-gray-900 transition-all hover:bg-amber-300 disabled:opacity-40 disabled:cursor-not-allowed",onClick:y},[...I[12]||(I[12]=[J("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor"},[J("path",{d:"M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z"})],-1)])],8,uy)]),I[13]||(I[13]=J("p",{class:"mt-1.5 text-center text-xs text-gray-600"},"Enter to send · Shift+Enter for newline",-1))])])):st("",!0)]),_:1})],64))}}),dy=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},hy=dy(fy,[["__scopeId","data-v-ccefe5eb"]]),py=Vn({__name:"App",setup(e){const t=so(),n=ge(()=>t.isAuthenticated);return(s,r)=>{const o=Xf("RouterView");return ee(),ce(Re,null,[Te(o),n.value?(ee(),Ut(hy,{key:0})):st("",!0),Te(Ke(em),{position:"top-right","toast-options":{style:{background:"hsl(var(--card))",color:"hsl(var(--card-foreground))",border:"1px solid hsl(var(--border))"}}})],64)}}}),my="modulepreload",gy=function(e){return"/cc-dashboard/static/"+e},el={},bt=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(l=>{if(l=gy(l),l in el)return;el[l]=!0;const u=l.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":my,u||(f.as="script"),f.crossOrigin="",f.href=l,a&&f.setAttribute("nonce",a),document.head.appendChild(f),u)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return r.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})};/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Gn=typeof document<"u";function Au(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function yy(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Au(e.default)}const we=Object.assign;function Ro(e,t){const n={};for(const s in t){const r=t[s];n[s]=Tt(r)?r.map(e):e(r)}return n}const Fs=()=>{},Tt=Array.isArray;function tl(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const Ou=/#/g,vy=/&/g,by=/\//g,wy=/=/g,_y=/\?/g,Tu=/\+/g,xy=/%5B/g,Ey=/%5D/g,Pu=/%5E/g,Sy=/%60/g,Du=/%7B/g,Cy=/%7C/g,Nu=/%7D/g,Ry=/%20/g;function Li(e){return e==null?"":encodeURI(""+e).replace(Cy,"|").replace(xy,"[").replace(Ey,"]")}function Ay(e){return Li(e).replace(Du,"{").replace(Nu,"}").replace(Pu,"^")}function ni(e){return Li(e).replace(Tu,"%2B").replace(Ry,"+").replace(Ou,"%23").replace(vy,"%26").replace(Sy,"`").replace(Du,"{").replace(Nu,"}").replace(Pu,"^")}function Oy(e){return ni(e).replace(wy,"%3D")}function Ty(e){return Li(e).replace(Ou,"%23").replace(_y,"%3F")}function Py(e){return Ty(e).replace(by,"%2F")}function Ws(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Dy=/\/$/,Ny=e=>e.replace(Dy,"");function Ao(e,t,n="/"){let s,r={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(s=t.slice(0,l),o=t.slice(l,a>0?a:t.length),r=e(o.slice(1))),a>=0&&(s=s||t.slice(0,a),i=t.slice(a,t.length)),s=My(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:Ws(i)}}function Iy(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function nl(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ly(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&hs(t.matched[s],n.matched[r])&&Iu(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function hs(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Iu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Fy(e[n],t[n]))return!1;return!0}function Fy(e,t){return Tt(e)?sl(e,t):Tt(t)?sl(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function sl(e,t){return Tt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function My(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const on={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let si=function(e){return e.pop="pop",e.push="push",e}({}),Oo=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function ky(e){if(!e)if(Gn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ny(e)}const By=/^[^#]+#/;function jy(e,t){return e.replace(By,"#")+t}function Uy(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const ro=()=>({left:window.scrollX,top:window.scrollY});function Hy(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Uy(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function rl(e,t){return(history.state?history.state.position-t:-1)+e}const ri=new Map;function qy(e,t){ri.set(e,t)}function Vy(e){const t=ri.get(e);return ri.delete(e),t}function $y(e){return typeof e=="string"||e&&typeof e=="object"}function Lu(e){return typeof e=="string"||typeof e=="symbol"}let Le=function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e}({});const Fu=Symbol("");Le.MATCHER_NOT_FOUND+"",Le.NAVIGATION_GUARD_REDIRECT+"",Le.NAVIGATION_ABORTED+"",Le.NAVIGATION_CANCELLED+"",Le.NAVIGATION_DUPLICATED+"";function ps(e,t){return we(new Error,{type:e,[Fu]:!0},t)}function $t(e,t){return e instanceof Error&&Fu in e&&(t==null||!!(e.type&t))}const Ky=["params","query","hash"];function Qy(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Ky)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function zy(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&ni(r)):[s&&ni(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Wy(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Tt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const Gy=Symbol(""),il=Symbol(""),oo=Symbol(""),Fi=Symbol(""),oi=Symbol("");function xs(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function dn(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((a,l)=>{const u=h=>{h===!1?l(ps(Le.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?l(h):$y(h)?l(ps(Le.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&s.enterCallbacks[r]===i&&typeof h=="function"&&i.push(h),a())},c=o(()=>e.call(s&&s.instances[r],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(h=>l(h))})}function To(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(Au(l)){const u=(l.__vccOpts||l)[t];u&&o.push(dn(u,n,s,i,a,r))}else{let u=l();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=yy(c)?c.default:c;i.mods[a]=c,i.components[a]=f;const h=(f.__vccOpts||f)[t];return h&&dn(h,n,s,i,a,r)()}))}}return o}function Jy(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;ihs(u,a))?s.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(u=>hs(u,l))||r.push(l))}return[n,s,r]}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let Yy=()=>location.protocol+"//"+location.host;function Mu(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,a=r.slice(i);return a[0]!=="/"&&(a="/"+a),nl(a,"")}return nl(n,e)+s+r}function Xy(e,t,n,s){let r=[],o=[],i=null;const a=({state:h})=>{const p=Mu(e,location),x=n.value,g=t.value;let w=0;if(h){if(n.value=p,t.value=h,i&&i===x){i=null;return}w=g?h.position-g.position:0}else s(p);r.forEach(E=>{E(n.value,x,{delta:w,type:si.pop,direction:w?w>0?Oo.forward:Oo.back:Oo.unknown})})};function l(){i=n.value}function u(h){r.push(h);const p=()=>{const x=r.indexOf(h);x>-1&&r.splice(x,1)};return o.push(p),p}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(we({},h.state,{scroll:ro()}),"")}}function f(){for(const h of o)h();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:u,destroy:f}}function al(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?ro():null}}function Zy(e){const{history:t,location:n}=window,s={value:Mu(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,u,c){const f=e.indexOf("#"),h=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Yy()+e+l;try{t[c?"replaceState":"pushState"](u,"",h),r.value=u}catch(p){console.error(p),n[c?"replace":"assign"](h)}}function i(l,u){o(l,we({},t.state,al(r.value.back,l,r.value.forward,!0),u,{position:r.value.position}),!0),s.value=l}function a(l,u){const c=we({},r.value,t.state,{forward:l,scroll:ro()});o(c.current,c,!0),o(l,we({},al(s.value,l,null),{position:c.position+1},u),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function e0(e){e=ky(e);const t=Zy(e),n=Xy(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=we({location:"",base:e,go:s,createHref:jy.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Dn=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var je=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e}(je||{});const t0={type:Dn.Static,value:""},n0=/[a-zA-Z0-9_]/;function s0(e){if(!e)return[[]];if(e==="/")return[[t0]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=je.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,u="",c="";function f(){u&&(n===je.Static?o.push({type:Dn.Static,value:u}):n===je.Param||n===je.ParamRegExp||n===je.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Dn.Param,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;at.length?t.length===1&&t[0]===nt.Static+nt.Segment?1:-1:0}function ku(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const l0={strict:!1,end:!0,sensitive:!1};function c0(e,t,n){const s=i0(s0(e.path),n),r=we(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function u0(e,t){const n=[],s=new Map;t=tl(l0,t);function r(f){return s.get(f)}function o(f,h,p){const x=!p,g=fl(f);g.aliasOf=p&&p.record;const w=tl(t,f),E=[g];if("alias"in f){const v=typeof f.alias=="string"?[f.alias]:f.alias;for(const D of v)E.push(fl(we({},g,{components:p?p.record.components:g.components,path:D,aliasOf:p?p.record:g})))}let R,y;for(const v of E){const{path:D}=v;if(h&&D[0]!=="/"){const K=h.record.path,j=K[K.length-1]==="/"?"":"/";v.path=h.record.path+(D&&j+D)}if(R=c0(v,h,w),p?p.alias.push(R):(y=y||R,y!==R&&y.alias.push(R),x&&f.name&&!dl(R)&&i(f.name)),Bu(R)&&l(R),g.children){const K=g.children;for(let j=0;j{i(y)}:Fs}function i(f){if(Lu(f)){const h=s.get(f);h&&(s.delete(f),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(f);h>-1&&(n.splice(h,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const h=h0(f,n);n.splice(h,0,f),f.record.name&&!dl(f)&&s.set(f.record.name,f)}function u(f,h){let p,x={},g,w;if("name"in f&&f.name){if(p=s.get(f.name),!p)throw ps(Le.MATCHER_NOT_FOUND,{location:f});w=p.record.name,x=we(ul(h.params,p.keys.filter(y=>!y.optional).concat(p.parent?p.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),f.params&&ul(f.params,p.keys.map(y=>y.name))),g=p.stringify(x)}else if(f.path!=null)g=f.path,p=n.find(y=>y.re.test(g)),p&&(x=p.parse(g),w=p.record.name);else{if(p=h.name?s.get(h.name):n.find(y=>y.re.test(h.path)),!p)throw ps(Le.MATCHER_NOT_FOUND,{location:f,currentLocation:h});w=p.record.name,x=we({},h.params,f.params),g=p.stringify(x)}const E=[];let R=p;for(;R;)E.unshift(R.record),R=R.parent;return{name:w,path:g,params:x,matched:E,meta:d0(E)}}e.forEach(f=>o(f));function c(){n.length=0,s.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:r}}function ul(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function fl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:f0(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function f0(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function dl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function d0(e){return e.reduce((t,n)=>we(t,n.meta),{})}function h0(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;ku(e,t[o])<0?s=o:n=o+1}const r=p0(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function p0(e){let t=e;for(;t=t.parent;)if(Bu(t)&&ku(e,t)===0)return t}function Bu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function hl(e){const t=xt(oo),n=xt(Fi),s=ge(()=>{const l=Ke(e.to);return t.resolve(l)}),r=ge(()=>{const{matched:l}=s.value,{length:u}=l,c=l[u-1],f=n.matched;if(!c||!f.length)return-1;const h=f.findIndex(hs.bind(null,c));if(h>-1)return h;const p=pl(l[u-2]);return u>1&&pl(c)===p&&f[f.length-1].path!==p?f.findIndex(hs.bind(null,l[u-2])):h}),o=ge(()=>r.value>-1&&b0(n.params,s.value.params)),i=ge(()=>r.value>-1&&r.value===n.matched.length-1&&Iu(n.params,s.value.params));function a(l={}){if(v0(l)){const u=t[Ke(e.replace)?"replace":"push"](Ke(e.to)).catch(Fs);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:ge(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function m0(e){return e.length===1?e[0]:e}const g0=Vn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:hl,setup(e,{slots:t}){const n=Zs(hl(e)),{options:s}=xt(oo),r=ge(()=>({[ml(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ml(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&m0(t.default(n));return e.custom?o:Ri("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),y0=g0;function v0(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function b0(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Tt(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function pl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ml=(e,t,n)=>e??t??n,w0=Vn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=xt(oi),r=ge(()=>e.route||s.value),o=xt(il,0),i=ge(()=>{let u=Ke(o);const{matched:c}=r.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=ge(()=>r.value.matched[i.value]);yr(il,ge(()=>i.value+1)),yr(Gy,a),yr(oi,r);const l=fe();return wn(()=>[l.value,a.value,e.name],([u,c,f],[h,p,x])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===h&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!hs(c,p)||!h)&&(c.enterCallbacks[f]||[]).forEach(g=>g(u))},{flush:"post"}),()=>{const u=r.value,c=e.name,f=a.value,h=f&&f.components[c];if(!h)return gl(n.default,{Component:h,route:u});const p=f.props[c],x=p?p===!0?u.params:typeof p=="function"?p(u):p:null,w=Ri(h,we({},x,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return gl(n.default,{Component:w,route:u})||w}}});function gl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const _0=w0;function x0(e){const t=u0(e.routes,e),n=e.parseQuery||zy,s=e.stringifyQuery||ol,r=e.history,o=xs(),i=xs(),a=xs(),l=vf(on);let u=on;Gn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Ro.bind(null,C=>""+C),f=Ro.bind(null,Py),h=Ro.bind(null,Ws);function p(C,L){let k,Q;return Lu(C)?(k=t.getRecordMatcher(C),Q=L):Q=C,t.addRoute(Q,k)}function x(C){const L=t.getRecordMatcher(C);L&&t.removeRoute(L)}function g(){return t.getRoutes().map(C=>C.record)}function w(C){return!!t.getRecordMatcher(C)}function E(C,L){if(L=we({},L||l.value),typeof C=="string"){const b=Ao(n,C,L.path),T=t.resolve({path:b.path},L),N=r.createHref(b.fullPath);return we(b,T,{params:h(T.params),hash:Ws(b.hash),redirectedFrom:void 0,href:N})}let k;if(C.path!=null)k=we({},C,{path:Ao(n,C.path,L.path).path});else{const b=we({},C.params);for(const T in b)b[T]==null&&delete b[T];k=we({},C,{params:f(b)}),L.params=f(L.params)}const Q=t.resolve(k,L),re=C.hash||"";Q.params=c(h(Q.params));const d=Iy(s,we({},C,{hash:Ay(re),path:Q.path})),m=r.createHref(d);return we({fullPath:d,hash:re,query:s===ol?Wy(C.query):C.query||{}},Q,{redirectedFrom:void 0,href:m})}function R(C){return typeof C=="string"?Ao(n,C,l.value.path):we({},C)}function y(C,L){if(u!==C)return ps(Le.NAVIGATION_CANCELLED,{from:L,to:C})}function v(C){return j(C)}function D(C){return v(we(R(C),{replace:!0}))}function K(C,L){const k=C.matched[C.matched.length-1];if(k&&k.redirect){const{redirect:Q}=k;let re=typeof Q=="function"?Q(C,L):Q;return typeof re=="string"&&(re=re.includes("?")||re.includes("#")?re=R(re):{path:re},re.params={}),we({query:C.query,hash:C.hash,params:re.path!=null?{}:C.params},re)}}function j(C,L){const k=u=E(C),Q=l.value,re=C.state,d=C.force,m=C.replace===!0,b=K(k,Q);if(b)return j(we(R(b),{state:typeof b=="object"?we({},re,b.state):re,force:d,replace:m}),L||k);const T=k;T.redirectedFrom=L;let N;return!d&&Ly(s,Q,k)&&(N=ps(Le.NAVIGATION_DUPLICATED,{to:T,from:Q}),De(Q,Q,!0,!1)),(N?Promise.resolve(N):I(T,Q)).catch(P=>$t(P)?$t(P,Le.NAVIGATION_GUARD_REDIRECT)?P:ue(P):ie(P,T,Q)).then(P=>{if(P){if($t(P,Le.NAVIGATION_GUARD_REDIRECT))return j(we({replace:m},R(P.to),{state:typeof P.to=="object"?we({},re,P.to.state):re,force:d}),L||T)}else P=F(T,Q,!0,m,re);return q(T,Q,P),P})}function B(C,L){const k=y(C,L);return k?Promise.reject(k):Promise.resolve()}function S(C){const L=Ve.values().next().value;return L&&typeof L.runWithContext=="function"?L.runWithContext(C):C()}function I(C,L){let k;const[Q,re,d]=Jy(C,L);k=To(Q.reverse(),"beforeRouteLeave",C,L);for(const b of Q)b.leaveGuards.forEach(T=>{k.push(dn(T,C,L))});const m=B.bind(null,C,L);return k.push(m),ae(k).then(()=>{k=[];for(const b of o.list())k.push(dn(b,C,L));return k.push(m),ae(k)}).then(()=>{k=To(re,"beforeRouteUpdate",C,L);for(const b of re)b.updateGuards.forEach(T=>{k.push(dn(T,C,L))});return k.push(m),ae(k)}).then(()=>{k=[];for(const b of d)if(b.beforeEnter)if(Tt(b.beforeEnter))for(const T of b.beforeEnter)k.push(dn(T,C,L));else k.push(dn(b.beforeEnter,C,L));return k.push(m),ae(k)}).then(()=>(C.matched.forEach(b=>b.enterCallbacks={}),k=To(d,"beforeRouteEnter",C,L,S),k.push(m),ae(k))).then(()=>{k=[];for(const b of i.list())k.push(dn(b,C,L));return k.push(m),ae(k)}).catch(b=>$t(b,Le.NAVIGATION_CANCELLED)?b:Promise.reject(b))}function q(C,L,k){a.list().forEach(Q=>S(()=>Q(C,L,k)))}function F(C,L,k,Q,re){const d=y(C,L);if(d)return d;const m=L===on,b=Gn?history.state:{};k&&(Q||m?r.replace(C.fullPath,we({scroll:m&&b&&b.scroll},re)):r.push(C.fullPath,re)),l.value=C,De(C,L,k,m),ue()}let W;function se(){W||(W=r.listen((C,L,k)=>{if(!A.listening)return;const Q=E(C),re=K(Q,A.currentRoute.value);if(re){j(we(re,{replace:!0,force:!0}),Q).catch(Fs);return}u=Q;const d=l.value;Gn&&qy(rl(d.fullPath,k.delta),ro()),I(Q,d).catch(m=>$t(m,Le.NAVIGATION_ABORTED|Le.NAVIGATION_CANCELLED)?m:$t(m,Le.NAVIGATION_GUARD_REDIRECT)?(j(we(R(m.to),{force:!0}),Q).then(b=>{$t(b,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&!k.delta&&k.type===si.pop&&r.go(-1,!1)}).catch(Fs),Promise.reject()):(k.delta&&r.go(-k.delta,!1),ie(m,Q,d))).then(m=>{m=m||F(Q,d,!1),m&&(k.delta&&!$t(m,Le.NAVIGATION_CANCELLED)?r.go(-k.delta,!1):k.type===si.pop&&$t(m,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),q(Q,d,m)}).catch(Fs)}))}let de=xs(),le=xs(),X;function ie(C,L,k){ue(C);const Q=le.list();return Q.length?Q.forEach(re=>re(C,L,k)):console.error(C),Promise.reject(C)}function ve(){return X&&l.value!==on?Promise.resolve():new Promise((C,L)=>{de.add([C,L])})}function ue(C){return X||(X=!C,se(),de.list().forEach(([L,k])=>C?k(C):L()),de.reset()),C}function De(C,L,k,Q){const{scrollBehavior:re}=e;if(!Gn||!re)return Promise.resolve();const d=!k&&Vy(rl(C.fullPath,0))||(Q||!k)&&history.state&&history.state.scroll||null;return Hn().then(()=>re(C,L,d)).then(m=>m&&Hy(m)).catch(m=>ie(m,C,L))}const ke=C=>r.go(C);let Oe;const Ve=new Set,A={currentRoute:l,listening:!0,addRoute:p,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:g,resolve:E,options:e,push:v,replace:D,go:ke,back:()=>ke(-1),forward:()=>ke(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:le.add,isReady:ve,install(C){C.component("RouterLink",y0),C.component("RouterView",_0),C.config.globalProperties.$router=A,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>Ke(l)}),Gn&&!Oe&&l.value===on&&(Oe=!0,v(r.location).catch(Q=>{}));const L={};for(const Q in on)Object.defineProperty(L,Q,{get:()=>l.value[Q],enumerable:!0});C.provide(oo,A),C.provide(Fi,Zl(L)),C.provide(oi,l);const k=C.unmount;Ve.add(C),C.unmount=function(){Ve.delete(C),Ve.size<1&&(u=on,W&&W(),W=null,l.value=on,Oe=!1,X=!1),k()}}};function ae(C){return C.reduce((L,k)=>L.then(()=>S(k)),Promise.resolve())}return A}function Z0(){return xt(oo)}function ev(e){return xt(Fi)}const E0=[{path:"/login",name:"login",component:()=>bt(()=>import("./LoginView-D-vh1CtU.js"),__vite__mapDeps([0,1,2,3,4])),meta:{public:!0}},{path:"/",component:()=>bt(()=>import("./AppLayout-BuZkSaIr.js"),[]),children:[{path:"",name:"dashboard",component:()=>bt(()=>import("./DashboardView-DcIc21XJ.js"),__vite__mapDeps([5,6,4,2,7,8,1]))},{path:"calendar",name:"calendar",component:()=>bt(()=>import("./CalendarView-57qKDHXv.js"),__vite__mapDeps([9,6,2,1,10,11,3,12,13,14]))},{path:"planner",name:"planner",component:()=>bt(()=>import("./PlannerView-B53ml6Jv.js"),__vite__mapDeps([15,10,11,1,2,3,12,13]))},{path:"projects",name:"projects",component:()=>bt(()=>import("./ProjectsView-FlluaTSw.js"),__vite__mapDeps([16,6,4,2,8]))},{path:"projects/:id",name:"project-detail",component:()=>bt(()=>import("./ProjectDetailView-HHN-7tDi.js"),__vite__mapDeps([17,6,4,2,7]))},{path:"live",name:"live",component:()=>bt(()=>import("./LiveView-BTg6aFjJ.js"),__vite__mapDeps([18,4,2,1]))},{path:"reports",name:"reports",component:()=>bt(()=>import("./ReportsView-CY6XM5MA.js"),__vite__mapDeps([19,4,2,13,1,20]))},{path:"keys",name:"keys",component:()=>bt(()=>import("./KeysView-B2aWyAvt.js"),__vite__mapDeps([21,22,4,2,1,11,3]))},{path:"settings",name:"settings",component:()=>bt(()=>import("./SettingsView-CusXhUxP.js"),__vite__mapDeps([23,12,4,2,7,3,1]))},{path:"admin",name:"admin",component:()=>bt(()=>import("./AdminView-CpcQgA1O.js"),__vite__mapDeps([24,22,4,2,13])),meta:{adminOnly:!0}}]},{path:"/:pathMatch(.*)*",redirect:"/"}],Mi=x0({history:e0("/cc-dashboard/"),routes:E0});Mi.beforeEach((e,t,n)=>{const s=so();if(e.meta.public){n();return}if(!s.isAuthenticated){n({name:"login",query:{redirect:e.fullPath}});return}if(e.meta.adminOnly&&!s.isAdmin){n({name:"dashboard"});return}n()});const io=vh(py),S0=_h();io.use(S0);io.use(Mi);io.use(lp);const yl=so();qg(()=>yl.getToken(),()=>{yl.logout(),Mi.push({name:"login"})});io.mount("#app");export{bn as A,Ah as B,O0 as C,Ls as D,_i as E,Re as F,R0 as G,N0 as K,$d as T,dy as _,J as a,A0 as b,ce as c,Vn as d,Te as e,Z0 as f,ev as g,Aa as h,Ke as i,st as j,Vs as k,ts as l,ge as m,Ut as n,ee as o,dt as p,Xf as q,fe as r,_t as s,Ct as t,so as u,wn as v,fn as w,Us as x,Df as y,dh as z}; diff --git a/src/static/assets/index-vw6q8aQU.css b/src/static/assets/index-vw6q8aQU.css new file mode 100644 index 0000000..71abdb1 --- /dev/null +++ b/src/static/assets/index-vw6q8aQU.css @@ -0,0 +1 @@ +.slide-up-enter-active[data-v-ccefe5eb],.slide-up-leave-active[data-v-ccefe5eb]{transition:all .25s cubic-bezier(.34,1.56,.64,1)}.slide-up-enter-from[data-v-ccefe5eb],.slide-up-leave-to[data-v-ccefe5eb]{opacity:0;transform:translateY(20px) scale(.95)}.prose[data-v-ccefe5eb] li{margin:.125rem 0}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 224 71.4% 4.1%;--card: 0 0% 100%;--card-foreground: 224 71.4% 4.1%;--popover: 0 0% 100%;--popover-foreground: 224 71.4% 4.1%;--primary: 262.1 83.3% 57.8%;--primary-foreground: 210 20% 98%;--secondary: 220 14.3% 95.9%;--secondary-foreground: 220.9 39.3% 11%;--muted: 220 14.3% 95.9%;--muted-foreground: 220 8.9% 46.1%;--accent: 220 14.3% 95.9%;--accent-foreground: 220.9 39.3% 11%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 20% 98%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 262.1 83.3% 57.8%;--radius: .5rem}.dark{--background: 224 71.4% 4.1%;--foreground: 210 20% 98%;--card: 224 71.4% 4.1%;--card-foreground: 210 20% 98%;--popover: 215 27.9% 10%;--popover-foreground: 210 20% 98%;--primary: 263.4 70% 50.4%;--primary-foreground: 210 20% 98%;--secondary: 215 27.9% 16.9%;--secondary-foreground: 210 20% 98%;--muted: 215 27.9% 16.9%;--muted-foreground: 217.9 10.6% 64.9%;--accent: 215 27.9% 16.9%;--accent-foreground: 210 20% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 20% 98%;--border: 215 27.9% 16.9%;--input: 215 27.9% 16.9%;--ring: 263.4 70% 50.4%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;background-color:hsl(var(--border))}::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-right-6{right:-1.5rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.-top-6{top:-1.5rem}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-\[600px\]{max-height:600px}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.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-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[380px\]{width:380px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[80\%\]{max-width:80%}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-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))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@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-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-s-resize{cursor:s-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.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-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-px{gap:1px}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/30{border-color:#f59e0b4d}.border-border{border-color:hsl(var(--border))}.border-border\/20{border-color:hsl(var(--border) / .2)}.border-border\/30{border-color:hsl(var(--border) / .3)}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-emerald-500\/30{border-color:#10b9814d}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/20{background-color:#f59e0b33}.bg-background{background-color:hsl(var(--background))}.bg-black\/60{background-color:#0009}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/95{background-color:hsl(var(--card) / .95)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/90{background-color:hsl(var(--destructive) / .9)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/30{background-color:hsl(var(--primary) / .3)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-primary\/70{background-color:hsl(var(--primary) / .7)}.bg-primary\/90{background-color:hsl(var(--primary) / .9)}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/40{background-color:#7f1d1d66}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/80{background-color:hsl(var(--secondary) / .8)}.bg-white\/60{background-color:#fff9}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.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-amber-400{--tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500\/20{--tw-gradient-from: rgb(245 158 11 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-slate-900{--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0f172a var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-amber-600{--tw-gradient-to: #d97706 var(--tw-gradient-to-position)}.to-amber-600\/10{--tw-gradient-to: rgb(217 119 6 / .1) var(--tw-gradient-to-position)}.to-slate-950{--tw-gradient-to: #020617 var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-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-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.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-\[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-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / 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-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-2xl{--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)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-amber-900\/30{--tw-shadow-color: rgb(120 53 15 / .3);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.ring-1{--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)}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.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-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-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-width:0px}.hover\:-translate-y-px:hover{--tw-translate-y: -1px;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\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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-amber-400:hover{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-300:hover{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-500\/20:hover{background-color:#10b98133}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-500\/20:hover{background-color:#ef444433}.hover\:bg-red-900\/60:hover{background-color:#7f1d1d99}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-slate-800\/50:hover{background-color:#1e293b80}.hover\:bg-slate-800\/60:hover{background-color:#1e293b99}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-400:hover{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-slate-100:hover{--tw-text-opacity: 1;color:rgb(241 245 249 / 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-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-amber-400:focus{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;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))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}@media (min-width: 640px){.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:relative{position:relative}.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-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}} diff --git a/src/static/assets/utils-CFgQVuqB.js b/src/static/assets/utils-DWBfPysr.js similarity index 99% rename from src/static/assets/utils-CFgQVuqB.js rename to src/static/assets/utils-DWBfPysr.js index 9e36cf2..1bcee89 100644 --- a/src/static/assets/utils-CFgQVuqB.js +++ b/src/static/assets/utils-DWBfPysr.js @@ -1 +1 @@ -import{d as se,o as ie,c as le,p as ae,a as Z}from"./index-DRwzmrLE.js";const Fe=se({__name:"Spinner",props:{size:{},class:{}},setup(e){return(r,t)=>(ie(),le("svg",{class:ae(["animate-spin text-current",e.size==="sm"?"h-3 w-3":e.size==="lg"?"h-6 w-6":"h-4 w-4",r.$props.class]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...t[0]||(t[0]=[Z("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),Z("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])],2))}});function Q(e){var r,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(r=0;r{const r=ue(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:a=>{const s=a.split(O);return s[0]===""&&s.length!==1&&s.shift(),ee(s,r)||pe(a)},getConflictingClassGroupIds:(a,s)=>{const u=t[a]||[];return s&&o[a]?[...u,...o[a]]:u}}},ee=(e,r)=>{var a;if(e.length===0)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),i=o?ee(e.slice(1),o):void 0;if(i)return i;if(r.validators.length===0)return;const n=e.join(O);return(a=r.validators.find(({validator:s})=>s(n)))==null?void 0:a.classGroupId},D=/^\[(.+)\]$/,pe=e=>{if(D.test(e)){const r=D.exec(e)[1],t=r==null?void 0:r.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},ue=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return ge(Object.entries(e.classGroups),t).forEach(([n,a])=>{_(a,o,n,r)}),o},_=(e,r,t,o)=>{e.forEach(i=>{if(typeof i=="string"){const n=i===""?r:K(r,i);n.classGroupId=t;return}if(typeof i=="function"){if(be(i)){_(i(o),r,t,o);return}r.validators.push({validator:i,classGroupId:t});return}Object.entries(i).forEach(([n,a])=>{_(a,K(r,n),t,o)})})},K=(e,r)=>{let t=e;return r.split(O).forEach(o=>{t.nextPart.has(o)||t.nextPart.set(o,{nextPart:new Map,validators:[]}),t=t.nextPart.get(o)}),t},be=e=>e.isThemeGetter,ge=(e,r)=>r?e.map(([t,o])=>{const i=o.map(n=>typeof n=="string"?r+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([a,s])=>[r+a,s])):n);return[t,i]}):e,fe=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const i=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(n){let a=t.get(n);if(a!==void 0)return a;if((a=o.get(n))!==void 0)return i(n,a),a},set(n,a){t.has(n)?t.set(n,a):i(n,a)}}},re="!",me=e=>{const{separator:r,experimentalParseClassName:t}=e,o=r.length===1,i=r[0],n=r.length,a=s=>{const u=[];let g=0,m=0,y;for(let p=0;pm?y-m:void 0;return{modifiers:u,hasImportantModifier:v,baseClassName:w,maybePostfixModifierPosition:b}};return t?s=>t({className:s,parseClassName:a}):a},he=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach(o=>{o[0]==="["?(r.push(...t.sort(),o),t=[]):t.push(o)}),r.push(...t.sort()),r},ye=e=>({cache:fe(e.cacheSize),parseClassName:me(e),...de(e)}),xe=/\s+/,we=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:i}=r,n=[],a=e.trim().split(xe);let s="";for(let u=a.length-1;u>=0;u-=1){const g=a[u],{modifiers:m,hasImportantModifier:y,baseClassName:x,maybePostfixModifierPosition:v}=t(g);let w=!!v,b=o(w?x.substring(0,v):x);if(!b){if(!w){s=g+(s.length>0?" "+s:s);continue}if(b=o(x),!b){s=g+(s.length>0?" "+s:s);continue}w=!1}const p=he(m).join(":"),f=y?p+re:p,h=f+b;if(n.includes(h))continue;n.push(h);const R=i(b,w);for(let A=0;A0?" "+s:s)}return s};function ve(){let e=0,r,t,o="";for(;e{if(typeof e=="string")return e;let r,t="";for(let o=0;oy(m),e());return t=ye(g),o=t.cache.get,i=t.cache.set,n=s,s(u)}function s(u){const g=o(u);if(g)return g;const m=we(u,t);return i(u,m),m}return function(){return n(ve.apply(null,arguments))}}const c=e=>{const r=t=>t[e]||[];return r.isThemeGetter=!0,r},oe=/^\[(?:([a-z-]+):)?(.+)\]$/i,Ce=/^\d+\/\d+$/,ze=new Set(["px","full","screen"]),Se=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ae=/\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$/,Me=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ge=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Re=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,C=e=>M(e)||ze.has(e)||Ce.test(e),z=e=>G(e,"length",Le),M=e=>!!e&&!Number.isNaN(Number(e)),B=e=>G(e,"number",M),P=e=>!!e&&Number.isInteger(Number(e)),Ie=e=>e.endsWith("%")&&M(e.slice(0,-1)),l=e=>oe.test(e),S=e=>Se.test(e),Pe=new Set(["length","size","percentage"]),je=e=>G(e,Pe,ne),Ee=e=>G(e,"position",ne),Ne=new Set(["image","url"]),Te=e=>G(e,Ne,We),$e=e=>G(e,"",Ve),j=()=>!0,G=(e,r,t)=>{const o=oe.exec(e);return o?o[1]?typeof r=="string"?o[1]===r:r.has(o[1]):t(o[2]):!1},Le=e=>Ae.test(e)&&!Me.test(e),ne=()=>!1,Ve=e=>Ge.test(e),We=e=>Re.test(e),Be=()=>{const e=c("colors"),r=c("spacing"),t=c("blur"),o=c("brightness"),i=c("borderColor"),n=c("borderRadius"),a=c("borderSpacing"),s=c("borderWidth"),u=c("contrast"),g=c("grayscale"),m=c("hueRotate"),y=c("invert"),x=c("gap"),v=c("gradientColorStops"),w=c("gradientColorStopPositions"),b=c("inset"),p=c("margin"),f=c("opacity"),h=c("padding"),R=c("saturate"),A=c("scale"),E=c("sepia"),F=c("skew"),U=c("space"),q=c("translate"),$=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],V=()=>["auto",l,r],d=()=>[l,r],H=()=>["",C,z],N=()=>["auto",M,l],J=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],T=()=>["solid","dashed","dotted","double","none"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",l],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[M,l];return{cacheSize:500,separator:":",theme:{colors:[j],spacing:[C,z],blur:["none","",S,l],brightness:k(),borderColor:[e],borderRadius:["none","","full",S,l],borderSpacing:d(),borderWidth:H(),contrast:k(),grayscale:I(),hueRotate:k(),invert:I(),gap:d(),gradientColorStops:[e],gradientColorStopPositions:[Ie,z],inset:V(),margin:V(),opacity:k(),padding:d(),saturate:k(),scale:k(),sepia:I(),skew:k(),space:d(),translate:d()},classGroups:{aspect:[{aspect:["auto","square","video",l]}],container:["container"],columns:[{columns:[S]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...J(),l]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:$()}],"overscroll-x":[{"overscroll-x":$()}],"overscroll-y":[{"overscroll-y":$()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",P,l]}],basis:[{basis:V()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",l]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",P,l]}],"grid-cols":[{"grid-cols":[j]}],"col-start-end":[{col:["auto",{span:["full",P,l]},l]}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":[j]}],"row-start-end":[{row:["auto",{span:[P,l]},l]}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",l]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",l]}],gap:[{gap:[x]}],"gap-x":[{"gap-x":[x]}],"gap-y":[{"gap-y":[x]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[p]}],mx:[{mx:[p]}],my:[{my:[p]}],ms:[{ms:[p]}],me:[{me:[p]}],mt:[{mt:[p]}],mr:[{mr:[p]}],mb:[{mb:[p]}],ml:[{ml:[p]}],"space-x":[{"space-x":[U]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[U]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",l,r]}],"min-w":[{"min-w":[l,r,"min","max","fit"]}],"max-w":[{"max-w":[l,r,"none","full","min","max","fit","prose",{screen:[S]},S]}],h:[{h:[l,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[l,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[l,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[l,r,"auto","min","max","fit"]}],"font-size":[{text:["base",S,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",B]}],"font-family":[{font:[j]}],"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:["tighter","tight","normal","wide","wider","widest",l]}],"line-clamp":[{"line-clamp":["none",M,B]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",C,l]}],"list-image":[{"list-image":["none",l]}],"list-style-type":[{list:["none","disc","decimal",l]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[f]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...T(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",C,z]}],"underline-offset":[{"underline-offset":["auto",C,l]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:d()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[f]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...J(),Ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",je]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[w]}],"gradient-via-pos":[{via:[w]}],"gradient-to-pos":[{to:[w]}],"gradient-from":[{from:[v]}],"gradient-via":[{via:[v]}],"gradient-to":[{to:[v]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[f]}],"border-style":[{border:[...T(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[f]}],"divide-style":[{divide:T()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...T()]}],"outline-offset":[{"outline-offset":[C,l]}],"outline-w":[{outline:[C,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:H()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[f]}],"ring-offset-w":[{"ring-offset":[C,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",S,$e]}],"shadow-color":[{shadow:[j]}],opacity:[{opacity:[f]}],"mix-blend":[{"mix-blend":[...X(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":X()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",S,l]}],grayscale:[{grayscale:[g]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[y]}],saturate:[{saturate:[R]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[g]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[f]}],"backdrop-saturate":[{"backdrop-saturate":[R]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",l]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",l]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",l]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[A]}],"scale-x":[{"scale-x":[A]}],"scale-y":[{"scale-y":[A]}],rotate:[{rotate:[P,l]}],"translate-x":[{"translate-x":[q]}],"translate-y":[{"translate-y":[q]}],"skew-x":[{"skew-x":[F]}],"skew-y":[{"skew-y":[F]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",l]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",l]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":d()}],"scroll-mx":[{"scroll-mx":d()}],"scroll-my":[{"scroll-my":d()}],"scroll-ms":[{"scroll-ms":d()}],"scroll-me":[{"scroll-me":d()}],"scroll-mt":[{"scroll-mt":d()}],"scroll-mr":[{"scroll-mr":d()}],"scroll-mb":[{"scroll-mb":d()}],"scroll-ml":[{"scroll-ml":d()}],"scroll-p":[{"scroll-p":d()}],"scroll-px":[{"scroll-px":d()}],"scroll-py":[{"scroll-py":d()}],"scroll-ps":[{"scroll-ps":d()}],"scroll-pe":[{"scroll-pe":d()}],"scroll-pt":[{"scroll-pt":d()}],"scroll-pr":[{"scroll-pr":d()}],"scroll-pb":[{"scroll-pb":d()}],"scroll-pl":[{"scroll-pl":d()}],"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",l]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[C,z,B]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},_e=ke(Be);function Ue(...e){return _e(ce(e))}function qe(e){const r=Math.floor(e),t=Math.round((e-r)*60);return r===0?`${t}m`:t===0?`${r}h`:`${r}h ${t}m`}function He(e){return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Je(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Xe(e){const r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${o}`}export{Fe as _,He as a,Je as b,Ue as c,qe as f,Xe as i}; +import{d as se,o as ie,c as le,p as ae,a as Z}from"./index-ZkX-rg-0.js";const Fe=se({__name:"Spinner",props:{size:{},class:{}},setup(e){return(r,t)=>(ie(),le("svg",{class:ae(["animate-spin text-current",e.size==="sm"?"h-3 w-3":e.size==="lg"?"h-6 w-6":"h-4 w-4",r.$props.class]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...t[0]||(t[0]=[Z("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),Z("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])],2))}});function Q(e){var r,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(r=0;r{const r=ue(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:a=>{const s=a.split(O);return s[0]===""&&s.length!==1&&s.shift(),ee(s,r)||pe(a)},getConflictingClassGroupIds:(a,s)=>{const u=t[a]||[];return s&&o[a]?[...u,...o[a]]:u}}},ee=(e,r)=>{var a;if(e.length===0)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),i=o?ee(e.slice(1),o):void 0;if(i)return i;if(r.validators.length===0)return;const n=e.join(O);return(a=r.validators.find(({validator:s})=>s(n)))==null?void 0:a.classGroupId},D=/^\[(.+)\]$/,pe=e=>{if(D.test(e)){const r=D.exec(e)[1],t=r==null?void 0:r.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},ue=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return ge(Object.entries(e.classGroups),t).forEach(([n,a])=>{_(a,o,n,r)}),o},_=(e,r,t,o)=>{e.forEach(i=>{if(typeof i=="string"){const n=i===""?r:K(r,i);n.classGroupId=t;return}if(typeof i=="function"){if(be(i)){_(i(o),r,t,o);return}r.validators.push({validator:i,classGroupId:t});return}Object.entries(i).forEach(([n,a])=>{_(a,K(r,n),t,o)})})},K=(e,r)=>{let t=e;return r.split(O).forEach(o=>{t.nextPart.has(o)||t.nextPart.set(o,{nextPart:new Map,validators:[]}),t=t.nextPart.get(o)}),t},be=e=>e.isThemeGetter,ge=(e,r)=>r?e.map(([t,o])=>{const i=o.map(n=>typeof n=="string"?r+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([a,s])=>[r+a,s])):n);return[t,i]}):e,fe=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const i=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(n){let a=t.get(n);if(a!==void 0)return a;if((a=o.get(n))!==void 0)return i(n,a),a},set(n,a){t.has(n)?t.set(n,a):i(n,a)}}},re="!",me=e=>{const{separator:r,experimentalParseClassName:t}=e,o=r.length===1,i=r[0],n=r.length,a=s=>{const u=[];let g=0,m=0,y;for(let p=0;pm?y-m:void 0;return{modifiers:u,hasImportantModifier:v,baseClassName:w,maybePostfixModifierPosition:b}};return t?s=>t({className:s,parseClassName:a}):a},he=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach(o=>{o[0]==="["?(r.push(...t.sort(),o),t=[]):t.push(o)}),r.push(...t.sort()),r},ye=e=>({cache:fe(e.cacheSize),parseClassName:me(e),...de(e)}),xe=/\s+/,we=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:i}=r,n=[],a=e.trim().split(xe);let s="";for(let u=a.length-1;u>=0;u-=1){const g=a[u],{modifiers:m,hasImportantModifier:y,baseClassName:x,maybePostfixModifierPosition:v}=t(g);let w=!!v,b=o(w?x.substring(0,v):x);if(!b){if(!w){s=g+(s.length>0?" "+s:s);continue}if(b=o(x),!b){s=g+(s.length>0?" "+s:s);continue}w=!1}const p=he(m).join(":"),f=y?p+re:p,h=f+b;if(n.includes(h))continue;n.push(h);const R=i(b,w);for(let A=0;A0?" "+s:s)}return s};function ve(){let e=0,r,t,o="";for(;e{if(typeof e=="string")return e;let r,t="";for(let o=0;oy(m),e());return t=ye(g),o=t.cache.get,i=t.cache.set,n=s,s(u)}function s(u){const g=o(u);if(g)return g;const m=we(u,t);return i(u,m),m}return function(){return n(ve.apply(null,arguments))}}const c=e=>{const r=t=>t[e]||[];return r.isThemeGetter=!0,r},oe=/^\[(?:([a-z-]+):)?(.+)\]$/i,Ce=/^\d+\/\d+$/,ze=new Set(["px","full","screen"]),Se=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ae=/\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$/,Me=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ge=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Re=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,C=e=>M(e)||ze.has(e)||Ce.test(e),z=e=>G(e,"length",Le),M=e=>!!e&&!Number.isNaN(Number(e)),B=e=>G(e,"number",M),P=e=>!!e&&Number.isInteger(Number(e)),Ie=e=>e.endsWith("%")&&M(e.slice(0,-1)),l=e=>oe.test(e),S=e=>Se.test(e),Pe=new Set(["length","size","percentage"]),je=e=>G(e,Pe,ne),Ee=e=>G(e,"position",ne),Ne=new Set(["image","url"]),Te=e=>G(e,Ne,We),$e=e=>G(e,"",Ve),j=()=>!0,G=(e,r,t)=>{const o=oe.exec(e);return o?o[1]?typeof r=="string"?o[1]===r:r.has(o[1]):t(o[2]):!1},Le=e=>Ae.test(e)&&!Me.test(e),ne=()=>!1,Ve=e=>Ge.test(e),We=e=>Re.test(e),Be=()=>{const e=c("colors"),r=c("spacing"),t=c("blur"),o=c("brightness"),i=c("borderColor"),n=c("borderRadius"),a=c("borderSpacing"),s=c("borderWidth"),u=c("contrast"),g=c("grayscale"),m=c("hueRotate"),y=c("invert"),x=c("gap"),v=c("gradientColorStops"),w=c("gradientColorStopPositions"),b=c("inset"),p=c("margin"),f=c("opacity"),h=c("padding"),R=c("saturate"),A=c("scale"),E=c("sepia"),F=c("skew"),U=c("space"),q=c("translate"),$=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],V=()=>["auto",l,r],d=()=>[l,r],H=()=>["",C,z],N=()=>["auto",M,l],J=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],T=()=>["solid","dashed","dotted","double","none"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",l],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[M,l];return{cacheSize:500,separator:":",theme:{colors:[j],spacing:[C,z],blur:["none","",S,l],brightness:k(),borderColor:[e],borderRadius:["none","","full",S,l],borderSpacing:d(),borderWidth:H(),contrast:k(),grayscale:I(),hueRotate:k(),invert:I(),gap:d(),gradientColorStops:[e],gradientColorStopPositions:[Ie,z],inset:V(),margin:V(),opacity:k(),padding:d(),saturate:k(),scale:k(),sepia:I(),skew:k(),space:d(),translate:d()},classGroups:{aspect:[{aspect:["auto","square","video",l]}],container:["container"],columns:[{columns:[S]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...J(),l]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:$()}],"overscroll-x":[{"overscroll-x":$()}],"overscroll-y":[{"overscroll-y":$()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",P,l]}],basis:[{basis:V()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",l]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",P,l]}],"grid-cols":[{"grid-cols":[j]}],"col-start-end":[{col:["auto",{span:["full",P,l]},l]}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":[j]}],"row-start-end":[{row:["auto",{span:[P,l]},l]}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",l]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",l]}],gap:[{gap:[x]}],"gap-x":[{"gap-x":[x]}],"gap-y":[{"gap-y":[x]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[p]}],mx:[{mx:[p]}],my:[{my:[p]}],ms:[{ms:[p]}],me:[{me:[p]}],mt:[{mt:[p]}],mr:[{mr:[p]}],mb:[{mb:[p]}],ml:[{ml:[p]}],"space-x":[{"space-x":[U]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[U]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",l,r]}],"min-w":[{"min-w":[l,r,"min","max","fit"]}],"max-w":[{"max-w":[l,r,"none","full","min","max","fit","prose",{screen:[S]},S]}],h:[{h:[l,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[l,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[l,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[l,r,"auto","min","max","fit"]}],"font-size":[{text:["base",S,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",B]}],"font-family":[{font:[j]}],"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:["tighter","tight","normal","wide","wider","widest",l]}],"line-clamp":[{"line-clamp":["none",M,B]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",C,l]}],"list-image":[{"list-image":["none",l]}],"list-style-type":[{list:["none","disc","decimal",l]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[f]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...T(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",C,z]}],"underline-offset":[{"underline-offset":["auto",C,l]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:d()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[f]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...J(),Ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",je]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[w]}],"gradient-via-pos":[{via:[w]}],"gradient-to-pos":[{to:[w]}],"gradient-from":[{from:[v]}],"gradient-via":[{via:[v]}],"gradient-to":[{to:[v]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[f]}],"border-style":[{border:[...T(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[f]}],"divide-style":[{divide:T()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...T()]}],"outline-offset":[{"outline-offset":[C,l]}],"outline-w":[{outline:[C,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:H()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[f]}],"ring-offset-w":[{"ring-offset":[C,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",S,$e]}],"shadow-color":[{shadow:[j]}],opacity:[{opacity:[f]}],"mix-blend":[{"mix-blend":[...X(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":X()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",S,l]}],grayscale:[{grayscale:[g]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[y]}],saturate:[{saturate:[R]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[g]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[y]}],"backdrop-opacity":[{"backdrop-opacity":[f]}],"backdrop-saturate":[{"backdrop-saturate":[R]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",l]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",l]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",l]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[A]}],"scale-x":[{"scale-x":[A]}],"scale-y":[{"scale-y":[A]}],rotate:[{rotate:[P,l]}],"translate-x":[{"translate-x":[q]}],"translate-y":[{"translate-y":[q]}],"skew-x":[{"skew-x":[F]}],"skew-y":[{"skew-y":[F]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",l]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",l]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":d()}],"scroll-mx":[{"scroll-mx":d()}],"scroll-my":[{"scroll-my":d()}],"scroll-ms":[{"scroll-ms":d()}],"scroll-me":[{"scroll-me":d()}],"scroll-mt":[{"scroll-mt":d()}],"scroll-mr":[{"scroll-mr":d()}],"scroll-mb":[{"scroll-mb":d()}],"scroll-ml":[{"scroll-ml":d()}],"scroll-p":[{"scroll-p":d()}],"scroll-px":[{"scroll-px":d()}],"scroll-py":[{"scroll-py":d()}],"scroll-ps":[{"scroll-ps":d()}],"scroll-pe":[{"scroll-pe":d()}],"scroll-pt":[{"scroll-pt":d()}],"scroll-pr":[{"scroll-pr":d()}],"scroll-pb":[{"scroll-pb":d()}],"scroll-pl":[{"scroll-pl":d()}],"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",l]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[C,z,B]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},_e=ke(Be);function Ue(...e){return _e(ce(e))}function qe(e){const r=Math.floor(e),t=Math.round((e-r)*60);return r===0?`${t}m`:t===0?`${r}h`:`${r}h ${t}m`}function He(e){return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Je(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Xe(e){const r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${o}`}export{Fe as _,He as a,Je as b,Ue as c,qe as f,Xe as i}; diff --git a/src/static/index.html b/src/static/index.html index 30bb672..51f620d 100644 --- a/src/static/index.html +++ b/src/static/index.html @@ -5,8 +5,8 @@ CC Dashboard - - + +
    diff --git a/web/src/components/assistant/AssistantWidget.vue b/web/src/components/assistant/AssistantWidget.vue index 24ccbc4..523d757 100644 --- a/web/src/components/assistant/AssistantWidget.vue +++ b/web/src/components/assistant/AssistantWidget.vue @@ -4,6 +4,7 @@ v-if="!isOpen" class="fixed bottom-6 right-6 z-50 flex h-14 w-14 items-center justify-center rounded-full bg-amber-400 text-gray-900 shadow-lg hover:bg-amber-300 transition-all duration-200 hover:scale-105 active:scale-95" title="AI Assistant" + aria-label="Open AI Assistant" @click="open" > @@ -48,12 +49,12 @@ {{ flagCount }} issue{{ flagCount > 1 ? 's' : '' }} - -