diff --git a/.env.example b/.env.example index be50282..29709ad 100644 --- a/.env.example +++ b/.env.example @@ -10,6 +10,16 @@ BASE_PATH=/cc-dashboard APP_TITLE=CC Dashboard LOG_FORMAT=json +# Azure AD SSO (Oliver tenant — shared) +AZURE_TENANT_ID=e519c2e6-bc6d-4fdf-8d9c-923c2f002385 +AZURE_CLIENT_ID=9079054c-9620-4757-a256-23413042f1ef +ALLOWED_EMAIL_DOMAIN=oliver.agency +# Comma-separated emails that auto-receive admin role on first SSO login +ADMIN_EMAILS=vadymsamoilenko@oliver.agency +# Local dev only — set to true to skip SSO and auto-login as DEV_USER_EMAIL +DEV_AUTH_BYPASS=false +DEV_USER_EMAIL=vadymsamoilenko@oliver.agency + # Azure DevOps ADO_ORGANIZATION=your-org ADO_PROJECT=your-project diff --git a/alembic/versions/0007_sso_user_columns.py b/alembic/versions/0007_sso_user_columns.py new file mode 100644 index 0000000..d61f8c6 --- /dev/null +++ b/alembic/versions/0007_sso_user_columns.py @@ -0,0 +1,29 @@ +"""Add azure_oid to users and make password_hash nullable + +Revision ID: 0007 +Revises: 0006 +Create Date: 2026-05-07 +""" +import sqlalchemy as sa +from alembic import op + +revision = "0007" +down_revision = "0006" +branch_labels = None +depends_on = None + + +def upgrade(): + op.add_column("users", sa.Column("azure_oid", sa.String(36), nullable=True)) + op.create_unique_constraint("uq_users_azure_oid", "users", ["azure_oid"]) + op.create_index("ix_users_azure_oid", "users", ["azure_oid"]) + op.alter_column("users", "password_hash", existing_type=sa.String(255), nullable=True) + # Normalize existing emails to lowercase + op.execute("UPDATE users SET email = LOWER(email)") + + +def downgrade(): + op.drop_index("ix_users_azure_oid", table_name="users") + op.drop_constraint("uq_users_azure_oid", "users", type_="unique") + op.drop_column("users", "azure_oid") + op.alter_column("users", "password_hash", existing_type=sa.String(255), nullable=False) diff --git a/scripts/grant_admin.py b/scripts/grant_admin.py new file mode 100644 index 0000000..ea36687 --- /dev/null +++ b/scripts/grant_admin.py @@ -0,0 +1,32 @@ +"""Grant admin role to a user by email (SSO users). + +Usage: + docker compose exec app python scripts/grant_admin.py user@oliver.agency +""" +import asyncio +import sys + +from sqlalchemy import func, select + +from src.database import async_session_factory +from src.models import User + + +async def grant_admin(email: str) -> None: + email = email.strip().lower() + async with async_session_factory() as db: + result = await db.execute(select(User).where(func.lower(User.email) == email)) + user = result.scalar_one_or_none() + if user is None: + print(f"User {email!r} not found. They must log in via SSO first.") + sys.exit(1) + user.role = "admin" + await db.commit() + print(f"Granted admin to {user.email} (id={user.id})") + + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("Usage: python scripts/grant_admin.py user@oliver.agency") + sys.exit(1) + asyncio.run(grant_admin(sys.argv[1])) diff --git a/src/auth.py b/src/auth.py index fc356f7..136e7fc 100644 --- a/src/auth.py +++ b/src/auth.py @@ -90,8 +90,19 @@ async def get_current_user( credentials: Annotated[HTTPAuthorizationCredentials | None, Security(bearer_scheme)], db: AsyncSession = Depends(get_db), ) -> User: + from src.config import settings + from sqlalchemy import select as sa_select, func + if not credentials: + if settings.DEV_AUTH_BYPASS: + result = await db.execute( + sa_select(User).where(func.lower(User.email) == settings.DEV_USER_EMAIL.lower()) + ) + user = result.scalar_one_or_none() + if user and user.is_active: + return user raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") + payload = decode_token(credentials.credentials) if payload.get("type") != "access": raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token type") diff --git a/src/config.py b/src/config.py index 407a26e..fc8b5fe 100644 --- a/src/config.py +++ b/src/config.py @@ -36,6 +36,14 @@ class Settings(BaseSettings): WEEKLY_REPORT_DAY: int = 6 # 0=Mon ... 6=Sun WEEKLY_REPORT_HOUR: int = 21 + # Azure AD SSO + AZURE_TENANT_ID: str = "" + AZURE_CLIENT_ID: str = "" + ALLOWED_EMAIL_DOMAIN: str = "oliver.agency" + ADMIN_EMAILS: str = "" # comma-separated lowercase + DEV_AUTH_BYPASS: bool = False + DEV_USER_EMAIL: str = "vadymsamoilenko@oliver.agency" + # Logging LOG_FORMAT: str = "console" # "json" or "console" diff --git a/src/models.py b/src/models.py index d725d44..6f9e9d3 100644 --- a/src/models.py +++ b/src/models.py @@ -33,7 +33,8 @@ class User(Base): id: Mapped[str] = mapped_column(UUID(as_uuid=False), primary_key=True, default=new_uuid) email: Mapped[str] = mapped_column(String(255), unique=True, nullable=False, index=True) username: Mapped[str] = mapped_column(String(100), unique=True, nullable=False) - password_hash: Mapped[str] = mapped_column(String(255), nullable=False) + password_hash: Mapped[str | None] = mapped_column(String(255), nullable=True) + azure_oid: Mapped[str | None] = mapped_column(String(36), nullable=True, unique=True, index=True) role: Mapped[str] = mapped_column(Enum("admin", "user", name="user_role"), default="user", nullable=False) is_active: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False) daily_overhead_hours: Mapped[float] = mapped_column(Float, default=0.0, nullable=False) diff --git a/src/routers/admin.py b/src/routers/admin.py index 0305ba5..e652bfe 100644 --- a/src/routers/admin.py +++ b/src/routers/admin.py @@ -22,9 +22,9 @@ async def create_user(body: UserCreate, admin: AdminUser, db: AsyncSession = Dep if exists.scalar_one_or_none(): raise HTTPException(status_code=400, detail="Email already registered") user = User( - email=body.email, + email=body.email.lower(), username=body.username, - password_hash=hash_password(body.password), + password_hash=hash_password(body.password) if body.password else None, role=body.role, ) db.add(user) diff --git a/src/routers/auth.py b/src/routers/auth.py index 73495cc..2b6acad 100644 --- a/src/routers/auth.py +++ b/src/routers/auth.py @@ -1,27 +1,73 @@ from fastapi import APIRouter, Depends, HTTPException, status -from sqlalchemy import select +from sqlalchemy import func, select from sqlalchemy.ext.asyncio import AsyncSession from src.auth import ( CurrentUser, create_access_token, create_refresh_token, - decode_token, hash_password, verify_password, + decode_token, hash_password, ) +from src.config import settings from src.database import get_db from src.models import User -from src.schemas import ( - ChangePasswordRequest, LoginRequest, RefreshRequest, - TokenResponse, UserOut, -) +from src.schemas import MicrosoftLoginRequest, RefreshRequest, TokenResponse, UserOut +from src.sso import validate_microsoft_id_token router = APIRouter(prefix="/api/auth", tags=["auth"]) -@router.post("/login", response_model=TokenResponse) -async def login(body: LoginRequest, db: AsyncSession = Depends(get_db)): - result = await db.execute(select(User).where(User.email == body.email)) - user = result.scalar_one_or_none() - if not user or not user.is_active or not verify_password(body.password, user.password_hash): - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid credentials") +def _admin_set() -> set[str]: + return {e.strip().lower() for e in settings.ADMIN_EMAILS.split(",") if e.strip()} + + +@router.post("/microsoft", response_model=TokenResponse) +async def microsoft_sso(body: MicrosoftLoginRequest, db: AsyncSession = Depends(get_db)): + claims = validate_microsoft_id_token(body.id_token) + + raw_email = claims.get("preferred_username") or claims.get("email") or "" + email = raw_email.lower() + oid: str = claims.get("oid", "") + name: str = claims.get("name", "") + + if not email or not email.endswith(f"@{settings.ALLOWED_EMAIL_DOMAIN}"): + raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Domain not allowed") + + # Find by azure_oid first (most stable), fall back to email match + user: User | None = None + if oid: + result = await db.execute(select(User).where(User.azure_oid == oid)) + user = result.scalar_one_or_none() + + if user is None: + result = await db.execute( + select(User).where(func.lower(User.email) == email) + ) + user = result.scalar_one_or_none() + + if user is None: + # First-time SSO login — auto-provision + username = email.split("@")[0] + user = User( + email=email, + username=username, + password_hash=None, + azure_oid=oid or None, + role="admin" if email in _admin_set() else "user", + ) + db.add(user) + else: + # Link existing account to Azure OID on first SSO login + if oid and user.azure_oid is None: + user.azure_oid = oid + # Promote to admin if listed + if email in _admin_set() and user.role != "admin": + user.role = "admin" + # Normalize email to lowercase (case-insensitive matching) + if user.email != email: + user.email = email + + await db.commit() + await db.refresh(user) + return TokenResponse( access_token=create_access_token(user.id, user.role), refresh_token=create_refresh_token(user.id), @@ -42,19 +88,6 @@ async def refresh(body: RefreshRequest, db: AsyncSession = Depends(get_db)): ) -@router.post("/change-password") -async def change_password( - body: ChangePasswordRequest, - user: CurrentUser, - db: AsyncSession = Depends(get_db), -): - if not verify_password(body.current_password, user.password_hash): - raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Wrong current password") - user.password_hash = hash_password(body.new_password) - await db.commit() - return {"detail": "Password changed"} - - @router.get("/me", response_model=UserOut) async def me(user: CurrentUser): return user diff --git a/src/schemas.py b/src/schemas.py index b1dc7f0..b358498 100644 --- a/src/schemas.py +++ b/src/schemas.py @@ -6,9 +6,8 @@ from pydantic import BaseModel, EmailStr, Field # ── Auth ────────────────────────────────────────────────────────────────────── -class LoginRequest(BaseModel): - email: EmailStr - password: str +class MicrosoftLoginRequest(BaseModel): + id_token: str class TokenResponse(BaseModel): @@ -21,11 +20,6 @@ class RefreshRequest(BaseModel): refresh_token: str -class ChangePasswordRequest(BaseModel): - current_password: str - new_password: str = Field(min_length=8) - - # ── Users ───────────────────────────────────────────────────────────────────── class UserOut(BaseModel): @@ -43,7 +37,7 @@ class UserOut(BaseModel): class UserCreate(BaseModel): email: EmailStr username: str = Field(min_length=2, max_length=100) - password: str = Field(min_length=8) + password: str | None = Field(default=None, min_length=8) role: str = Field(default="user", pattern="^(admin|user)$") diff --git a/src/sso.py b/src/sso.py new file mode 100644 index 0000000..f8ea618 --- /dev/null +++ b/src/sso.py @@ -0,0 +1,55 @@ +"""Azure AD SSO — validates Microsoft ID tokens via JWKS.""" +import time +from typing import Any + +import httpx +from fastapi import HTTPException, status +from jose import JWTError, jwt + +from src.config import settings + +_jwks_cache: dict[str, Any] = {} +_jwks_fetched_at: float = 0.0 +_JWKS_TTL = 3600 # seconds + + +def _get_jwks() -> dict: + global _jwks_cache, _jwks_fetched_at + if time.time() - _jwks_fetched_at < _JWKS_TTL and _jwks_cache: + return _jwks_cache + url = f"https://login.microsoftonline.com/{settings.AZURE_TENANT_ID}/discovery/v2.0/keys" + resp = httpx.get(url, timeout=10) + resp.raise_for_status() + _jwks_cache = resp.json() + _jwks_fetched_at = time.time() + return _jwks_cache + + +def validate_microsoft_id_token(id_token: str) -> dict: + """Validate Azure AD ID token and return claims. Raises 401 on any failure.""" + if not settings.AZURE_TENANT_ID or not settings.AZURE_CLIENT_ID: + raise HTTPException( + status_code=status.HTTP_503_SERVICE_UNAVAILABLE, + detail="SSO not configured", + ) + try: + jwks = _get_jwks() + claims = jwt.decode( + id_token, + jwks, + algorithms=["RS256"], + audience=settings.AZURE_CLIENT_ID, + issuer=f"https://login.microsoftonline.com/{settings.AZURE_TENANT_ID}/v2.0", + options={"verify_at_hash": False}, + ) + return claims + except JWTError as exc: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=f"Invalid Microsoft token: {exc}", + ) + except httpx.HTTPError as exc: + raise HTTPException( + status_code=status.HTTP_503_SERVICE_UNAVAILABLE, + detail=f"Failed to fetch Azure AD keys: {exc}", + ) diff --git a/src/static/assets/AdminView-9bHvBNlr.js b/src/static/assets/AdminView-9bHvBNlr.js deleted file mode 100644 index 5266d1c..0000000 --- a/src/static/assets/AdminView-9bHvBNlr.js +++ /dev/null @@ -1 +0,0 @@ -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-yrXqsixb.js";import{a as w}from"./admin-BRKJZipt.js";import{_ as B,a as S}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as x}from"./Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js";import{_ as V,a as $}from"./utils-D_0J15Md.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/AdminView-DUmZvUGQ.js b/src/static/assets/AdminView-DUmZvUGQ.js new file mode 100644 index 0000000..f186a3e --- /dev/null +++ b/src/static/assets/AdminView-DUmZvUGQ.js @@ -0,0 +1 @@ +import{d as _,u as y,v as h,c as r,a as t,e as n,k as v,w as d,f as b,q as m,o as s,F as g,r as k,t as a,p as u,h as A}from"./index-DzSm5_bv.js";import{a as w}from"./admin-DOjSzxjn.js";import{_ as B,a as S}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as f}from"./Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js";import{_ as V}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{a as $}from"./utils-7WVCegLb.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"},q={class:"px-4 py-3 text-xs text-muted-foreground"},H=_({__name:"AdminView",setup(I){const x=y(),p=b(),i=m([]),l=m(!1);return h(async()=>{if(!x.isAdmin){p.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(()=>[u(a(e.role),1)]),_:2},1032,["variant"])]),t("td",j,[n(f,{variant:e.is_active?"success":"outline",class:"text-xs"},{default:d(()=>[u(a(e.is_active?"Active":"Inactive"),1)]),_:2},1032,["variant"])]),t("td",q,a(A($)(e.created_at)),1)]))),128))])])]),_:1})]),_:1}))]))}});export{H as default}; diff --git a/src/static/assets/AppLayout-J7i4Eomh.js b/src/static/assets/AppLayout-J7i4Eomh.js deleted file mode 100644 index be79b36..0000000 --- a/src/static/assets/AppLayout-J7i4Eomh.js +++ /dev/null @@ -1 +0,0 @@ -import{d as M,u as j,c as s,b as V,a as e,F as $,l as A,t as m,i as h,m as b,o as n,n as H,w as _,j as C,p as d,q as B,g as z,s as S,k as D,K as T,f as L,e as x,T as R,r as O}from"./index-yrXqsixb.js";const I={class:"flex flex-col h-full bg-[hsl(220_44%_8%)] border-r border-border"},P={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-4 bg-primary rounded-r-full"},F={class:"text-sm"},K={class:"p-3 border-t border-border shrink-0"},q={class:"flex items-center gap-3 px-2 py-2 rounded-lg"},E={class:"h-7 w-7 rounded-full bg-primary/15 ring-1 ring-primary/20 flex items-center justify-center text-[10px] font-bold text-primary shrink-0"},U={class:"flex-1 min-w-0"},W={class:"text-xs font-medium text-foreground truncate"},G=M({__name:"Sidebar",emits:["close"],setup(y,{emit:g}){const a=z(),l=j(),v=g,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:"DevOps",path:"/devops",icon:"devops"},{name:"Settings",path:"/settings",icon:"settings"},{name:"Admin",path:"/admin",icon:"shield",adminOnly:!0}],f=b(()=>u.filter(c=>!c.adminOnly||l.isAdmin));function r(c){return c==="/"?a.path==="/":a.path.startsWith(c)}const i=b(()=>{var t,p;return(((t=l.user)==null?void 0:t.username)??((p=l.user)==null?void 0:p.email)??"?").slice(0,2).toUpperCase()});return(c,t)=>{var k,w;const p=B("RouterLink");return n(),s("aside",I,[t[12]||(t[12]=V('

CC Dashboard

Oliver Agency

',1)),e("nav",P,[(n(!0),s($,null,A(f.value,o=>(n(),H(p,{key:o.path,to:o.path,class:d(["relative flex items-center gap-3 px-3 h-10 rounded-lg text-sm font-medium transition-all duration-150 group",r(o.path)?"bg-primary/10 text-primary":"text-muted-foreground hover:bg-muted/50 hover:text-foreground"]),onClick:t[0]||(t[0]=se=>v("close"))},{default:_(()=>[r(o.path)?(n(),s("span",N)):C("",!0),o.icon==="grid"?(n(),s("svg",{key:1,class:d(["h-4 w-4 shrink-0 transition-colors",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:2,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:3,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:4,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:5,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:6,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:7,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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==="devops"?(n(),s("svg",{key:8,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"},null,-1)])],2)):o.icon==="settings"?(n(),s("svg",{key:9,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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:"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"?(n(),s("svg",{key:10,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[10]||(t[10]=[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",F,m(o.name),1)]),_:2},1032,["to","class"]))),128))]),e("div",K,[e("div",q,[e("div",E,m(i.value),1),e("div",U,[e("p",W,m(((k=h(l).user)==null?void 0:k.username)??((w=h(l).user)==null?void 0:w.email)),1),t[11]||(t[11]=e("div",{class:"flex items-center gap-1 mt-0.5"},[e("div",{class:"h-1.5 w-1.5 rounded-full bg-[hsl(var(--success))]"}),e("span",{class:"text-[10px] text-muted-foreground"},"Online")],-1))])])])])}}}),J={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"},Q={class:"flex-1"},X={class:"text-sm font-semibold text-foreground"},Y={class:"flex items-center gap-2.5"},Z={class:"h-7 w-7 rounded-full bg-primary/15 ring-1 ring-primary/25 flex items-center justify-center text-[10px] font-bold text-primary shrink-0"},ee={class:"hidden sm:block text-xs font-medium text-foreground max-w-[120px] truncate"},te=M({__name:"TopBar",props:{title:{},sidebarOpen:{type:Boolean}},emits:["toggleSidebar","toggleDark"],setup(y,{emit:g}){const a=g,l=j(),v=L();async function u(){await l.logout(),T.success("Logged out"),v.push({name:"login"})}function f(){const r=document.documentElement.classList.toggle("dark");localStorage.setItem("theme",r?"dark":"light"),a("toggleDark")}return(r,i)=>{var c,t,p,k;return n(),s("header",J,[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",Q,[e("h1",X,m(y.title??"CC Dashboard"),1)]),S(r.$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:f},[...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",Y,[e("div",Z,m((((c=h(l).user)==null?void 0:c.username)??((t=h(l).user)==null?void 0:t.email)??"?").slice(0,2).toUpperCase()),1),e("span",ee,m(((p=h(l).user)==null?void 0:p.username)??((k=h(l).user)==null?void 0:k.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),D(" Sign out ",-1)])])])])}}}),oe={class:"h-screen flex overflow-hidden bg-background"},re={class:"flex-1 flex flex-col overflow-hidden min-w-0"},ne={class:"flex-1 overflow-y-auto"},le=M({__name:"AppLayout",setup(y){const g=z(),a=O(!1),l=b(()=>({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"})[g.name]??"CC Dashboard");return(v,u)=>{const f=B("RouterView");return n(),s("div",oe,[x(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?(n(),s("div",{key:0,class:"fixed inset-0 z-20 bg-black/60 lg:hidden",onClick:u[0]||(u[0]=r=>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"])},[x(G,{onClose:u[1]||(u[1]=r=>a.value=!1)})],2),e("div",re,[x(te,{title:l.value,"sidebar-open":a.value,onToggleSidebar:u[2]||(u[2]=r=>a.value=!a.value)},null,8,["title","sidebar-open"]),e("main",ne,[x(f)])])])}}});export{le as default}; diff --git a/src/static/assets/AppLayout-LtMoYzU8.js b/src/static/assets/AppLayout-LtMoYzU8.js new file mode 100644 index 0000000..f7a4edb --- /dev/null +++ b/src/static/assets/AppLayout-LtMoYzU8.js @@ -0,0 +1 @@ +import{d as M,u as j,c as s,b as V,a as e,F as $,r as A,t as m,h,j as b,o as n,k as H,w as _,i as C,n as d,l as B,g as z,m as S,p as D,K as T,f as L,e as x,T as R,q as O}from"./index-DzSm5_bv.js";const I={class:"flex flex-col h-full bg-[hsl(220_44%_8%)] border-r border-border"},P={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-4 bg-primary rounded-r-full"},F={class:"text-sm"},K={class:"p-3 border-t border-border shrink-0"},q={class:"flex items-center gap-3 px-2 py-2 rounded-lg"},E={class:"h-7 w-7 rounded-full bg-primary/15 ring-1 ring-primary/20 flex items-center justify-center text-[10px] font-bold text-primary shrink-0"},U={class:"flex-1 min-w-0"},W={class:"text-xs font-medium text-foreground truncate"},G=M({__name:"Sidebar",emits:["close"],setup(y,{emit:g}){const a=z(),l=j(),v=g,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:"DevOps",path:"/devops",icon:"devops"},{name:"Settings",path:"/settings",icon:"settings"},{name:"Admin",path:"/admin",icon:"shield",adminOnly:!0}],f=b(()=>u.filter(c=>!c.adminOnly||l.isAdmin));function r(c){return c==="/"?a.path==="/":a.path.startsWith(c)}const i=b(()=>{var t,p;return(((t=l.user)==null?void 0:t.username)??((p=l.user)==null?void 0:p.email)??"?").slice(0,2).toUpperCase()});return(c,t)=>{var k,w;const p=B("RouterLink");return n(),s("aside",I,[t[12]||(t[12]=V('

CC Dashboard

Oliver Agency

',1)),e("nav",P,[(n(!0),s($,null,A(f.value,o=>(n(),H(p,{key:o.path,to:o.path,class:d(["relative flex items-center gap-3 px-3 h-10 rounded-lg text-sm font-medium transition-all duration-150 group",r(o.path)?"bg-primary/10 text-primary":"text-muted-foreground hover:bg-muted/50 hover:text-foreground"]),onClick:t[0]||(t[0]=se=>v("close"))},{default:_(()=>[r(o.path)?(n(),s("span",N)):C("",!0),o.icon==="grid"?(n(),s("svg",{key:1,class:d(["h-4 w-4 shrink-0 transition-colors",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:2,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:3,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:4,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:5,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:6,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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"?(n(),s("svg",{key:7,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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==="devops"?(n(),s("svg",{key:8,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"},null,-1)])],2)):o.icon==="settings"?(n(),s("svg",{key:9,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),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:"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"?(n(),s("svg",{key:10,class:d(["h-4 w-4 shrink-0",r(o.path)?"text-primary":"text-muted-foreground/60 group-hover:text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[10]||(t[10]=[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",F,m(o.name),1)]),_:2},1032,["to","class"]))),128))]),e("div",K,[e("div",q,[e("div",E,m(i.value),1),e("div",U,[e("p",W,m(((k=h(l).user)==null?void 0:k.username)??((w=h(l).user)==null?void 0:w.email)),1),t[11]||(t[11]=e("div",{class:"flex items-center gap-1 mt-0.5"},[e("div",{class:"h-1.5 w-1.5 rounded-full bg-[hsl(var(--success))]"}),e("span",{class:"text-[10px] text-muted-foreground"},"Online")],-1))])])])])}}}),J={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"},Q={class:"flex-1"},X={class:"text-sm font-semibold text-foreground"},Y={class:"flex items-center gap-2.5"},Z={class:"h-7 w-7 rounded-full bg-primary/15 ring-1 ring-primary/25 flex items-center justify-center text-[10px] font-bold text-primary shrink-0"},ee={class:"hidden sm:block text-xs font-medium text-foreground max-w-[120px] truncate"},te=M({__name:"TopBar",props:{title:{},sidebarOpen:{type:Boolean}},emits:["toggleSidebar","toggleDark"],setup(y,{emit:g}){const a=g,l=j(),v=L();async function u(){await l.logout(),T.success("Logged out"),v.push({name:"login"})}function f(){const r=document.documentElement.classList.toggle("dark");localStorage.setItem("theme",r?"dark":"light"),a("toggleDark")}return(r,i)=>{var c,t,p,k;return n(),s("header",J,[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",Q,[e("h1",X,m(y.title??"CC Dashboard"),1)]),S(r.$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:f},[...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",Y,[e("div",Z,m((((c=h(l).user)==null?void 0:c.username)??((t=h(l).user)==null?void 0:t.email)??"?").slice(0,2).toUpperCase()),1),e("span",ee,m(((p=h(l).user)==null?void 0:p.username)??((k=h(l).user)==null?void 0:k.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),D(" Sign out ",-1)])])])])}}}),oe={class:"h-screen flex overflow-hidden bg-background"},re={class:"flex-1 flex flex-col overflow-hidden min-w-0"},ne={class:"flex-1 overflow-y-auto"},le=M({__name:"AppLayout",setup(y){const g=z(),a=O(!1),l=b(()=>({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"})[g.name]??"CC Dashboard");return(v,u)=>{const f=B("RouterView");return n(),s("div",oe,[x(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?(n(),s("div",{key:0,class:"fixed inset-0 z-20 bg-black/60 lg:hidden",onClick:u[0]||(u[0]=r=>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"])},[x(G,{onClose:u[1]||(u[1]=r=>a.value=!1)})],2),e("div",re,[x(te,{title:l.value,"sidebar-open":a.value,onToggleSidebar:u[2]||(u[2]=r=>a.value=!a.value)},null,8,["title","sidebar-open"]),e("main",ne,[x(f)])])])}}});export{le as default}; diff --git a/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js b/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js similarity index 74% rename from src/static/assets/Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js rename to src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js index 43299cf..bfd1004 100644 --- a/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js +++ b/src/static/assets/Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js @@ -1 +1 @@ -import{c as a}from"./utils-D_0J15Md.js";import{d as n,o as s,c as o,p as d,i,s as c}from"./index-yrXqsixb.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 _}; +import{c as a}from"./utils-7WVCegLb.js";import{d as n,o,c as s,n as d,h as i,m as c}from"./index-DzSm5_bv.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/Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js new file mode 100644 index 0000000..c45fcdd --- /dev/null +++ b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js @@ -0,0 +1 @@ +import{_ as c}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{c as l}from"./utils-7WVCegLb.js";import{d as u,c as m,n as f,k as b,i as v,m as g,j as p,o as n}from"./index-DzSm5_bv.js";const y=["type","disabled"],z=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(()=>l("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,o)=>(n(),m("button",{class:f(r.value),type:t.type,disabled:t.disabled||t.loading,onClick:o[0]||(o[0]=d=>a("click",d))},[t.loading?(n(),b(c,{key:0,size:"sm",class:"mr-2"})):v("",!0),g(i.$slots,"default")],10,y))}});export{z as _}; diff --git a/src/static/assets/Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js b/src/static/assets/Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js deleted file mode 100644 index 2513a9a..0000000 --- a/src/static/assets/Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js +++ /dev/null @@ -1 +0,0 @@ -import{c,_ as l}from"./utils-D_0J15Md.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-yrXqsixb.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/CalendarView-CVfEc5OT.js b/src/static/assets/CalendarView-CVfEc5OT.js new file mode 100644 index 0000000..7322231 --- /dev/null +++ b/src/static/assets/CalendarView-CVfEc5OT.js @@ -0,0 +1 @@ +import{A as Ne,q as P,j as $,d as J,o as k,c as x,a as f,e as E,w as X,p as Te,t as _,h as b,i as O,n as Y,z as H,B as Pe,_ as He,F as L,r as j,k as qe,v as Oe,K as ye,f as ze}from"./index-DzSm5_bv.js";import{d as Re}from"./dashboard-uOtmhTNc.js";import{i as T,f as Z}from"./utils-7WVCegLb.js";import{_ as ee}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{u as de,_ as Ve}from"./TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js";import{_ as Ae}from"./Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js";import"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import"./Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js";import"./Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js";import"./devops-S5lsRUq3.js";const te=40/30;function Ie(e){if(e.length===0)return[];const t=[...e].sort((o,i)=>new Date(o.start_at).getTime()-new Date(i.start_at).getTime()),n=[],r=[];for(const o of t){const i=new Date(o.start_at).getTime(),l=new Date(o.end_at).getTime();let c=-1;for(let d=0;d{const l=new Date(o.start_at).getTime(),c=new Date(o.end_at).getTime();let d=i;for(const s of r){const m=new Date(s.block.start_at).getTime(),w=new Date(s.block.end_at).getTime();ml&&s.lane>d&&(d=s.lane)}return{block:o,lane:i,totalLanes:d+1}})}function Qe(e,t=7){return((e.getHours()-t)*60+e.getMinutes())*te}function Xe(e,t){const n=(t.getTime()-e.getTime())/6e4;return Math.max(n*te,20)}function be(e,t=7){const n=e.getDay(),r=new Date(e);return r.setDate(e.getDate()-(n+6)%7),r.setHours(0,0,0,0),Array.from({length:t},(a,o)=>{const i=new Date(r);return i.setDate(r.getDate()+o),i})}function ke(e,t=15){return Math.round(e/t)*t}const U=Ne("calendar",()=>{const e=P([]),t=P(new Date),n=P("week"),r=P(7),a=P(!1),o=P(null),i=$(()=>be(t.value,r.value));async function l(u,g,D){a.value=!0,o.value=null;try{const C=await Re.calendar({from:u,to:g,view:D});e.value=C.data}catch(C){const K=C;o.value=K.message??"Failed to fetch calendar"}finally{a.value=!1}}function c(u){r.value=u}async function d(){if(n.value==="week"){const u=be(t.value,r.value),g=T(u[0]),D=T(u[r.value-1]);await l(g,D,"week")}else{const u=T(t.value);await l(u,u,"day")}}function s(){const u=new Date(t.value);n.value==="week"?u.setDate(u.getDate()-7):u.setDate(u.getDate()-1),t.value=u}function m(){const u=new Date(t.value);n.value==="week"?u.setDate(u.getDate()+7):u.setDate(u.getDate()+1),t.value=u}function w(){t.value=new Date}function y(u){n.value=u}function M(u){e.value.push(u)}function v(u){const g=e.value.findIndex(D=>D.id===u.id);g!==-1&&(e.value[g]=u)}function h(u){e.value=e.value.filter(g=>g.id!==u)}function S(u){const g=T(u);return e.value.filter(D=>T(new Date(D.start_at))===g)}return{blocks:e,currentDate:t,view:n,weekLength:r,loading:a,error:o,weekDays:i,fetch:l,fetchCurrentView:d,navigatePrev:s,navigateNext:m,goToToday:w,setView:y,setWeekLength:c,addBlock:M,updateBlock:v,removeBlock:h,getBlocksForDay:S}});function W(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function z(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const Ce=6048e5,Ge=864e5;let Je={};function re(){return Je}function G(e,t){var l,c,d,s;const n=re(),r=(t==null?void 0:t.weekStartsOn)??((c=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((s=(d=n.locale)==null?void 0:d.options)==null?void 0:s.weekStartsOn)??0,a=W(e),o=a.getDay(),i=(o=a.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function xe(e){const t=W(e);return t.setHours(0,0,0,0),t}function pe(e){const t=W(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ue(e,t){const n=xe(e),r=xe(t),a=+n-pe(n),o=+r-pe(r);return Math.round((a-o)/Ge)}function Ke(e){const t=We(e),n=z(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),ne(n)}function Ze(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function et(e){if(!Ze(e)&&typeof e!="number")return!1;const t=W(e);return!isNaN(Number(t))}function tt(e){const t=W(e),n=z(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const nt={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"}},rt=(e,t,n)=>{let r;const a=nt[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function ue(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const at={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ot={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},st={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},it={date:ue({formats:at,defaultWidth:"full"}),time:ue({formats:ot,defaultWidth:"full"}),dateTime:ue({formats:st,defaultWidth:"full"})},ut={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ct=(e,t,n,r)=>ut[e];function I(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,l=n!=null&&n.width?String(n.width):i;a=e.formattingValues[l]||e.formattingValues[i]}else{const i=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;a=e.values[l]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return a[o]}}const dt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},lt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ft={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"]},mt={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"]},ht={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"}},gt={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"}},wt=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},vt={ordinalNumber:wt,era:I({values:dt,defaultWidth:"wide"}),quarter:I({values:lt,defaultWidth:"wide",argumentCallback:e=>e-1}),month:I({values:ft,defaultWidth:"wide"}),day:I({values:mt,defaultWidth:"wide"}),dayPeriod:I({values:ht,defaultWidth:"wide",formattingValues:gt,defaultFormattingWidth:"wide"})};function Q(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;const i=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?bt(l,m=>m.test(i)):yt(l,m=>m.test(i));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const s=t.slice(i.length);return{value:d,rest:s}}}function yt(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function bt(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const l=t.slice(a.length);return{value:i,rest:l}}}const xt=/^(\d+)(th|st|nd|rd)?/i,pt=/\d+/i,Dt={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},_t={any:[/^b/i,/^(a|c)/i]},Mt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},St={any:[/1/i,/2/i,/3/i,/4/i]},Tt={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},Pt={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]},Ot={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},Ct={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]},Wt={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}},Et={ordinalNumber:kt({matchPattern:xt,parsePattern:pt,valueCallback:e=>parseInt(e,10)}),era:Q({matchPatterns:Dt,defaultMatchWidth:"wide",parsePatterns:_t,defaultParseWidth:"any"}),quarter:Q({matchPatterns:Mt,defaultMatchWidth:"wide",parsePatterns:St,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Q({matchPatterns:Tt,defaultMatchWidth:"wide",parsePatterns:Pt,defaultParseWidth:"any"}),day:Q({matchPatterns:Ot,defaultMatchWidth:"wide",parsePatterns:Ct,defaultParseWidth:"any"}),dayPeriod:Q({matchPatterns:Wt,defaultMatchWidth:"any",parsePatterns:$t,defaultParseWidth:"any"})},Yt={code:"en-US",formatDistance:rt,formatLong:it,formatRelative:ct,localize:vt,match:Et,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ft(e){const t=W(e);return Ue(t,tt(t))+1}function Bt(e){const t=W(e),n=+ne(t)-+Ke(t);return Math.round(n/Ce)+1}function $e(e,t){var s,m,w,y;const n=W(e),r=n.getFullYear(),a=re(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(s=t==null?void 0:t.locale)==null?void 0:s.options)==null?void 0:m.firstWeekContainsDate)??a.firstWeekContainsDate??((y=(w=a.locale)==null?void 0:w.options)==null?void 0:y.firstWeekContainsDate)??1,i=z(e,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const l=G(i,t),c=z(e,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=G(c,t);return n.getTime()>=l.getTime()?r+1:n.getTime()>=d.getTime()?r:r-1}function Lt(e,t){var l,c,d,s;const n=re(),r=(t==null?void 0:t.firstWeekContainsDate)??((c=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((s=(d=n.locale)==null?void 0:d.options)==null?void 0:s.firstWeekContainsDate)??1,a=$e(e,t),o=z(e,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),G(o,t)}function jt(e,t){const n=W(e),r=+G(n,t)-+Lt(n,t);return Math.round(r/Ce)+1}function p(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const F={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return p(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):p(n+1,2)},d(e,t){return p(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return p(e.getHours()%12||12,t.length)},H(e,t){return p(e.getHours(),t.length)},m(e,t){return p(e.getMinutes(),t.length)},s(e,t){return p(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return p(a,t.length)}},V={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},De={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return F.y(e,t)},Y:function(e,t,n,r){const a=$e(e,r),o=a>0?a:1-a;if(t==="YY"){const i=o%100;return p(i,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):p(o,t.length)},R:function(e,t){const n=We(e);return p(n,t.length)},u:function(e,t){const n=e.getFullYear();return p(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return p(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return p(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return F.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return p(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=jt(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):p(a,t.length)},I:function(e,t,n){const r=Bt(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):p(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):F.d(e,t)},D:function(e,t,n){const r=Ft(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):p(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return p(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return p(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return p(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=V.noon:r===0?a=V.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=V.evening:r>=12?a=V.afternoon:r>=4?a=V.morning:a=V.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return F.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):F.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):p(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):p(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):F.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):F.s(e,t)},S:function(e,t){return F.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Me(r);case"XXXX":case"XX":return N(r);case"XXXXX":case"XXX":default:return N(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Me(r);case"xxxx":case"xx":return N(r);case"xxxxx":case"xxx":default:return N(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+_e(r,":");case"OOOO":default:return"GMT"+N(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+_e(r,":");case"zzzz":default:return"GMT"+N(r,":")}},t:function(e,t,n){const r=Math.trunc(e.getTime()/1e3);return p(r,t.length)},T:function(e,t,n){const r=e.getTime();return p(r,t.length)}};function _e(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),o=r%60;return o===0?n+String(a):n+String(a)+t+p(o,2)}function Me(e,t){return e%60===0?(e>0?"-":"+")+p(Math.abs(e)/60,2):N(e,t)}function N(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=p(Math.trunc(r/60),2),o=p(r%60,2);return n+a+t+o}const Se=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Ee=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},Nt=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return Se(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Se(r,t)).replace("{{time}}",Ee(a,t))},Ht={p:Ee,P:Nt},qt=/^D+$/,zt=/^Y+$/,Rt=["D","DD","YY","YYYY"];function Vt(e){return qt.test(e)}function At(e){return zt.test(e)}function It(e,t,n){const r=Qt(e,t,n);if(console.warn(r),Rt.includes(e))throw new RangeError(r)}function Qt(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Xt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Gt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Jt=/^'([^]*?)'?$/,Ut=/''/g,Kt=/[a-zA-Z]/;function q(e,t,n){var s,m,w,y,M,v,h,S;const r=re(),a=(n==null?void 0:n.locale)??r.locale??Yt,o=(n==null?void 0:n.firstWeekContainsDate)??((m=(s=n==null?void 0:n.locale)==null?void 0:s.options)==null?void 0:m.firstWeekContainsDate)??r.firstWeekContainsDate??((y=(w=r.locale)==null?void 0:w.options)==null?void 0:y.firstWeekContainsDate)??1,i=(n==null?void 0:n.weekStartsOn)??((v=(M=n==null?void 0:n.locale)==null?void 0:M.options)==null?void 0:v.weekStartsOn)??r.weekStartsOn??((S=(h=r.locale)==null?void 0:h.options)==null?void 0:S.weekStartsOn)??0,l=W(e);if(!et(l))throw new RangeError("Invalid time value");let c=t.match(Gt).map(u=>{const g=u[0];if(g==="p"||g==="P"){const D=Ht[g];return D(u,a.formatLong)}return u}).join("").match(Xt).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const g=u[0];if(g==="'")return{isToken:!1,value:Zt(u)};if(De[g])return{isToken:!0,value:u};if(g.match(Kt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+g+"`");return{isToken:!1,value:u}});a.localize.preprocessor&&(c=a.localize.preprocessor(l,c));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return c.map(u=>{if(!u.isToken)return u.value;const g=u.value;(!(n!=null&&n.useAdditionalWeekYearTokens)&&At(g)||!(n!=null&&n.useAdditionalDayOfYearTokens)&&Vt(g))&&It(g,t,String(e));const D=De[g[0]];return D(l,g,a.localize,d)}).join("")}function Zt(e){const t=e.match(Jt);return t?t[1].replace(Ut,"'"):e}const en={class:"flex items-center gap-2 flex-wrap"},tn={class:"flex items-center gap-1"},nn={class:"text-sm font-medium text-foreground flex-1 min-w-0 truncate"},rn={key:0,class:"text-xs text-muted-foreground"},an={class:"flex items-center rounded-md border border-border overflow-hidden"},on={key:1,class:"flex items-center rounded-md border border-border overflow-hidden"},sn=J({__name:"CalendarToolbar",setup(e){const t=U(),n=$(()=>{if(t.view==="week"){const l=t.weekDays;if(!l.length)return"";const c=l[0],d=l[l.length-1];return c.getMonth()===d.getMonth()?`${q(c,"MMM d")} – ${q(d,"d, yyyy")}`:`${q(c,"MMM d")} – ${q(d,"MMM d, yyyy")}`}else return q(t.currentDate,"EEEE, MMMM d, yyyy")});async function r(l){l==="prev"?t.navigatePrev():t.navigateNext(),await t.fetchCurrentView()}async function a(){t.goToToday(),await t.fetchCurrentView()}async function o(l){t.setView(l),await t.fetchCurrentView()}async function i(l){t.setWeekLength(l),await t.fetchCurrentView()}return(l,c)=>(k(),x("div",en,[f("div",tn,[E(ee,{variant:"outline",size:"sm",onClick:c[0]||(c[0]=d=>r("prev"))},{default:X(()=>[...c[6]||(c[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:"M15 19l-7-7 7-7"})],-1)])]),_:1}),E(ee,{variant:"outline",size:"sm",onClick:a},{default:X(()=>[...c[7]||(c[7]=[Te("Today",-1)])]),_:1}),E(ee,{variant:"outline",size:"sm",onClick:c[1]||(c[1]=d=>r("next"))},{default:X(()=>[...c[8]||(c[8]=[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",nn,_(n.value),1),b(t).loading?(k(),x("div",rn,"Loading...")):O("",!0),f("div",an,[f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).view==="day"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[2]||(c[2]=d=>o("day"))}," Day ",2),f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).view==="week"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[3]||(c[3]=d=>o("week"))}," Week ",2)]),b(t).view==="week"?(k(),x("div",on,[f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).weekLength===5?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[4]||(c[4]=d=>i(5))}," 5d ",2),f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).weekLength===7?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[5]||(c[5]=d=>i(7))}," 7d ",2)])):O("",!0)]))}}),un=7;function Ye(){const e=de(),t=U(),n=P(null),r=P(null),a=P(null),o=P(null);function i(v,h){var S,u;n.value=v.id,(S=h.dataTransfer)==null||S.setData("task_id",v.id),(u=h.dataTransfer)==null||u.setData("estimate_hours",String(v.estimate_hours??1))}function l(v,h){var u,g,D,C;const S=new Date(v.end_at).getTime()-new Date(v.start_at).getTime();(u=h.dataTransfer)==null||u.setData("block_id",v.id),(g=h.dataTransfer)==null||g.setData("block_duration_ms",String(S)),(D=h.dataTransfer)==null||D.setData("task_id",v.task_id??""),(C=h.dataTransfer)==null||C.setData("estimate_hours",String(S/36e5))}function c(v,h){h.preventDefault(),r.value=T(v)}function d(){r.value=null}async function s(v,h){var me,he,ge,we;h.preventDefault(),r.value=null,n.value=null;const S=(me=h.dataTransfer)==null?void 0:me.getData("block_id"),u=(he=h.dataTransfer)==null?void 0:he.getData("task_id"),g=parseFloat(((ge=h.dataTransfer)==null?void 0:ge.getData("estimate_hours"))??"1")||1,D=parseFloat(((we=h.dataTransfer)==null?void 0:we.getData("block_duration_ms"))??"0"),K=h.currentTarget.getBoundingClientRect(),ae=h.clientY-K.top,oe=ke(ae/te,15),Fe=Math.max(0,Math.min(oe,12*60)),R=new Date(v);R.setHours(un,0,0,0),R.setMinutes(R.getMinutes()+Fe);const se=R.toISOString();if(S&&D>0){const Le=new Date(R.getTime()+D).toISOString();try{await e.updateBlock(S,{start_at:se,end_at:Le}),await t.fetchCurrentView()}catch(je){console.error("Failed to move block:",je)}return}if(!u)return;const ie=new Date(R);ie.setMinutes(ie.getMinutes()+Math.round(g*60));const le=ie.toISOString(),fe=`temp_${Date.now()}`,Be={kind:"planned",id:fe,project_id:null,job_number:"",display_name:"Loading...",start_at:se,end_at:le,title:"",color_hue:260,tags:[],task_id:u,session_id:null,manual_entry_id:null};t.addBlock(Be);try{await e.createBlock(u,{start_at:se,end_at:le}),await t.fetchCurrentView()}catch(ve){t.removeBlock(fe),console.error("Failed to create task block:",ve)}}let m=0,w="",y=null;function M(v,h){h.preventDefault(),h.stopPropagation(),a.value=v,y=v,m=h.clientY,w=v.end_at,o.value=v.end_at;const S=g=>{if(!y)return;const D=g.clientY-m,C=ke(D/te,15),ae=new Date(w).getTime()+C*6e4,oe=new Date(y.start_at).getTime()+15*6e4;o.value=new Date(Math.max(ae,oe)).toISOString()},u=async()=>{if(document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",u),!y||!o.value){a.value=null;return}const g=y.id,D=o.value;if(D===w){a.value=null,o.value=null;return}try{y.task_id&&await e.updateBlock(g,{start_at:y.start_at,end_at:D}),t.updateBlock({...y,end_at:D})}catch(C){console.error("Failed to resize block:",C),t.updateBlock({...y,end_at:w})}a.value=null,o.value=null,y=null};document.addEventListener("mousemove",S),document.addEventListener("mouseup",u)}return{draggingTaskId:n,dragOverDay:r,resizingBlock:a,resizePreviewEnd:o,onDragStart:i,onBlockDragStart:l,onDragOver:c,onDragLeave:d,onDrop:s,onResizeStart:M}}function cn(e){return`hsla(${e}, 65%, 45%, 0.85)`}function dn(e){return`hsla(${e}, 65%, 55%, 1)`}const ln=["draggable"],fn={class:"px-1.5 py-1 h-full flex flex-col text-white overflow-hidden"},mn={class:"text-xs font-semibold leading-tight truncate"},hn={key:0,class:"text-xs opacity-75 truncate"},gn={key:1,class:"text-xs opacity-75 mt-auto"},wn=J({__name:"CalendarBlock",props:{block:{},lane:{},totalLanes:{},top:{},height:{},resizeEnd:{}},emits:["resizeStart","click","blockDragStart"],setup(e,{emit:t}){const n=e,r=t,a=$(()=>n.resizeEnd?new Date(n.resizeEnd):new Date(n.block.end_at)),o=$(()=>{if(!n.resizeEnd)return n.height;const s=(a.value.getTime()-new Date(n.block.start_at).getTime())/6e4;return Math.max(s*(40/30),20)}),i=$(()=>{const d=a.value.getTime()-new Date(n.block.start_at).getTime();return Z(d/36e5)}),l=$(()=>{const d=`calc(${100/n.totalLanes}% - 2px)`,s=`calc(${n.lane/n.totalLanes*100}% + 1px)`;return{top:`${n.top}px`,height:`${o.value}px`,width:d,left:s,backgroundColor:cn(n.block.color_hue),borderColor:dn(n.block.color_hue)}}),c=$(()=>o.value<40);return(d,s)=>(k(),x("div",{class:Y(["absolute rounded overflow-hidden cursor-pointer select-none group",{"border-2":e.block.kind==="session","border-2 border-dashed opacity-80":e.block.kind==="planned","border-2 calendar-block--manual":e.block.kind==="manual"}]),draggable:e.block.kind==="planned"&&!!e.block.task_id,style:H(l.value),onClick:s[1]||(s[1]=m=>r("click",e.block)),onDragstart:s[2]||(s[2]=m=>e.block.kind==="planned"&&e.block.task_id?r("blockDragStart",e.block,m):void 0)},[f("div",fn,[f("p",mn,_(e.block.display_name),1),!c.value&&e.block.job_number?(k(),x("p",hn,_(e.block.job_number),1)):O("",!0),c.value?O("",!0):(k(),x("p",gn,_(i.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:s[0]||(s[0]=Pe(m=>r("resizeStart",m),["stop"]))},[...s[3]||(s[3]=[f("div",{class:"w-8 h-0.5 bg-white/60 rounded"},null,-1)])],32)],46,ln))}}),vn=He(wn,[["__scopeId","data-v-978cfc69"]]),yn={class:"flex overflow-auto h-full"},bn={class:"flex flex-1 gap-px min-w-0"},kn=["onDragover","onDrop"],xn={key:1,class:"absolute inset-0 bg-primary/10 pointer-events-none z-0"},B=7,ce=19,A=40,pn=J({__name:"CalendarGrid",emits:["blockClick"],setup(e,{emit:t}){const n=Array.from({length:ce-B+1},(y,M)=>B+M),r=U(),a=Ye(),o=t,i=$(()=>r.view==="week"?r.weekDays:[r.currentDate]),l=T(new Date);function c(y){const M=r.getBlocksForDay(y);return Ie(M)}function d(y){return Qe(new Date(y.start_at),B)}function s(y){return Xe(new Date(y.start_at),new Date(y.end_at))}function m(y){var M;return((M=a.resizingBlock.value)==null?void 0:M.id)===y.id}function w(y){return y===12?"12 PM":y>12?`${y-12} PM`:`${y} AM`}return(y,M)=>(k(),x("div",yn,[f("div",{class:"w-12 shrink-0 relative",style:H({height:`${(ce-B+1)*A*2}px`})},[(k(!0),x(L,null,j(b(n),v=>(k(),x("div",{key:v,class:"absolute right-2 text-xs text-muted-foreground",style:H({top:`${(v-B)*A*2-6}px`})},_(w(v)),5))),128))],4),f("div",bn,[(k(!0),x(L,null,j(i.value,v=>(k(),x("div",{key:b(T)(v),class:Y(["flex-1 relative border-l border-border",{"bg-primary/5":b(T)(v)===b(l)}]),style:H({height:`${(ce-B)*A*2}px`}),onDragover:h=>b(a).onDragOver(v,h),onDragleave:M[1]||(M[1]=h=>b(a).onDragLeave()),onDrop:h=>b(a).onDrop(v,h)},[b(r).view==="week"?(k(),x("div",{key:0,class:Y(["sticky top-0 z-10 text-center py-1 text-xs font-medium border-b border-border bg-background",b(T)(v)===b(l)?"text-primary":"text-muted-foreground"])},[f("div",null,_(b(q)(v,"EEE")),1),f("div",{class:Y(["inline-flex h-6 w-6 mx-auto items-center justify-center rounded-full text-sm",b(T)(v)===b(l)?"bg-primary text-primary-foreground":""])},_(b(q)(v,"d")),3)],2)):O("",!0),(k(!0),x(L,null,j(b(n),h=>(k(),x("div",{key:h,class:"absolute left-0 right-0 border-t border-border/40",style:H({top:`${(h-B)*A*2}px`})},null,4))),128)),(k(!0),x(L,null,j(b(n).slice(0,-1),h=>(k(),x("div",{key:`half-${h}`,class:"absolute left-0 right-0 border-t border-border/20",style:H({top:`${(h-B)*A*2+A}px`})},null,4))),128)),b(a).dragOverDay.value===b(T)(v)?(k(),x("div",xn)):O("",!0),(k(!0),x(L,null,j(c(v),({block:h,lane:S,totalLanes:u})=>(k(),qe(vn,{key:h.id,block:h,lane:S,"total-lanes":u,top:d(h),height:s(h),"resize-end":m(h)?b(a).resizePreviewEnd.value:null,onClick:g=>o("blockClick",h),onResizeStart:g=>b(a).onResizeStart(h,g),onBlockDragStart:M[0]||(M[0]=(g,D)=>b(a).onBlockDragStart(g,D))},null,8,["block","lane","total-lanes","top","height","resize-end","onClick","onResizeStart"]))),128))],46,kn))),128))])]))}}),Dn={class:"flex flex-col h-full bg-card border-l border-border"},_n={class:"p-3 border-b border-border flex items-center justify-between shrink-0"},Mn={class:"flex-1 overflow-y-auto p-2 space-y-1.5"},Sn={key:0,class:"text-xs text-muted-foreground p-2"},Tn={key:1,class:"text-xs text-muted-foreground p-2 text-center"},Pn=["onDragstart"],On={class:"flex items-start gap-2"},Cn={class:"flex-1 min-w-0"},Wn={class:"text-xs font-medium text-foreground leading-tight truncate"},$n={class:"flex items-center gap-1.5 mt-1 flex-wrap"},En={key:0,class:"text-xs text-muted-foreground"},Yn={key:0,class:"p-3 border-t border-border shrink-0"},Fn={class:"space-y-1"},Bn={class:"text-muted-foreground truncate max-w-[100px]"},Ln={class:"text-foreground"},jn=J({__name:"PlannerSidebar",emits:["createTask"],setup(e,{emit:t}){const n=de(),r=U(),a=Ye(),o=t,i=$(()=>T(r.currentDate));Oe(()=>{n.fetchForDate(i.value)});const l=s=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[s],c=s=>s>=4?"bg-red-500":s===3?"bg-amber-500":"bg-emerald-500",d=$(()=>{const s={};for(const m of n.tasks){const w=m.project_id??"_none";s[w]||(s[w]={name:m.project_id?w:"No Project",planned:0,actual:0}),s[w].planned+=m.estimate_hours??0,s[w].actual+=m.actual_hours??0}return Object.values(s)});return(s,m)=>(k(),x("div",Dn,[f("div",_n,[m[2]||(m[2]=f("h3",{class:"text-sm font-semibold text-foreground"},"Planner",-1)),E(ee,{size:"sm",variant:"ghost",onClick:m[0]||(m[0]=w=>o("createTask"))},{default:X(()=>[...m[1]||(m[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",Mn,[b(n).loading?(k(),x("div",Sn,"Loading...")):b(n).tasks.length===0?(k(),x("div",Tn," No tasks for today ")):O("",!0),(k(!0),x(L,null,j(b(n).tasks,w=>(k(),x("div",{key:w.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:y=>b(a).onDragStart(w,y)},[f("div",On,[f("div",{class:Y(["h-2 w-2 rounded-full mt-1.5 shrink-0",c(w.priority)])},null,2),f("div",Cn,[f("p",Wn,_(w.title),1),f("div",$n,[E(Ae,{variant:l(w.status),class:"text-xs py-0"},{default:X(()=>[Te(_(w.status),1)]),_:2},1032,["variant"]),w.estimate_hours?(k(),x("span",En,_(b(Z)(w.estimate_hours)),1)):O("",!0)])])])],40,Pn))),128))]),d.value.length?(k(),x("div",Yn,[m[3]||(m[3]=f("p",{class:"text-xs font-medium text-muted-foreground mb-2"},"Plan vs Actual",-1)),f("div",Fn,[(k(!0),x(L,null,j(d.value,w=>(k(),x("div",{key:w.name,class:"flex items-center justify-between text-xs"},[f("span",Bn,_(w.name),1),f("span",Ln,_(b(Z)(w.planned))+" / "+_(b(Z)(w.actual)),1)]))),128))])])):O("",!0)]))}}),Nn={class:"h-full flex flex-col"},Hn={class:"p-4 border-b border-border flex items-center gap-3 flex-wrap"},qn={class:"flex items-center gap-2 ml-auto"},zn={class:"flex-1 flex overflow-hidden"},Rn={class:"flex-1 overflow-auto"},Vn={key:0,class:"w-56 shrink-0 overflow-hidden"},An={class:"bg-card border border-border rounded-lg shadow-xl p-4 w-72"},In={class:"flex items-start justify-between gap-2 mb-3"},Qn={class:"font-semibold text-sm text-foreground"},Xn={key:0,class:"text-xs text-muted-foreground"},Gn={class:"space-y-1 text-xs text-muted-foreground"},Jn={key:0,class:"mt-2 flex flex-wrap gap-1"},ir=J({__name:"CalendarView",setup(e){const t=U(),n=de(),r=ze(),a=P(!0),o=P(!1),i=P(null);Oe(()=>{t.fetchCurrentView()});function l(d){if(d.project_id&&d.kind==="session"){const s=d.start_at.substring(0,10);r.push({name:"project-detail",params:{id:d.project_id,date:s}})}else i.value=d}async function c(d){try{await n.create(d),ye.success("Task created"),o.value=!1,n.fetchForDate(T(t.currentDate))}catch{ye.error("Failed to create task")}}return(d,s)=>(k(),x("div",Nn,[f("div",Hn,[E(sn),f("div",qn,[f("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:s[0]||(s[0]=m=>a.value=!a.value)},_(a.value?"Hide Planner":"Show Planner"),1)])]),f("div",zn,[f("div",Rn,[E(pn,{onBlockClick:l})]),a.value?(k(),x("div",Vn,[E(jn,{onCreateTask:s[1]||(s[1]=m=>o.value=!0)})])):O("",!0)]),i.value?(k(),x("div",{key:0,class:"fixed inset-0 z-40 flex items-center justify-center p-4",onClick:s[3]||(s[3]=Pe(m=>i.value=null,["self"]))},[f("div",An,[f("div",In,[f("div",null,[f("p",Qn,_(i.value.display_name),1),i.value.job_number?(k(),x("p",Xn,_(i.value.job_number),1)):O("",!0)]),f("button",{class:"text-muted-foreground hover:text-foreground",onClick:s[2]||(s[2]=m=>i.value=null)},[...s[5]||(s[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",Gn,[f("p",null,"Start: "+_(new Date(i.value.start_at).toLocaleString()),1),f("p",null,"End: "+_(new Date(i.value.end_at).toLocaleString()),1),f("p",null,"Type: "+_(i.value.kind),1)]),i.value.tags.length?(k(),x("div",Jn,[(k(!0),x(L,null,j(i.value.tags,m=>(k(),x("span",{key:m.id,class:"px-1.5 py-0.5 rounded text-xs",style:H({background:`${m.color_hex}22`,color:m.color_hex})},_(m.name),5))),128))])):O("",!0)])])):O("",!0),E(Ve,{open:o.value,"default-date":b(T)(b(t).currentDate),onClose:s[4]||(s[4]=m=>o.value=!1),onSave:c},null,8,["open","default-date"])]))}});export{ir as default}; diff --git a/src/static/assets/CalendarView-DC2Ojs9-.js b/src/static/assets/CalendarView-DC2Ojs9-.js deleted file mode 100644 index c95b565..0000000 --- a/src/static/assets/CalendarView-DC2Ojs9-.js +++ /dev/null @@ -1 +0,0 @@ -import{B as Ne,r as P,m as $,d as J,o as k,c as x,a as f,e as E,w as X,k as Te,t as _,i as b,j as O,p as Y,A as H,h as Pe,_ as He,F as L,l as j,n as qe,x as Oe,K as ye,f as ze}from"./index-yrXqsixb.js";import{d as Re}from"./dashboard-Bay5szWb.js";import{i as T,f as Z}from"./utils-D_0J15Md.js";import{_ as ee}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{u as de,_ as Ve}from"./TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js";import{_ as Ae}from"./Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js";import"./Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js";import"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import"./devops-C_7zqRan.js";const te=40/30;function Ie(e){if(e.length===0)return[];const t=[...e].sort((o,i)=>new Date(o.start_at).getTime()-new Date(i.start_at).getTime()),n=[],r=[];for(const o of t){const i=new Date(o.start_at).getTime(),l=new Date(o.end_at).getTime();let c=-1;for(let d=0;d{const l=new Date(o.start_at).getTime(),c=new Date(o.end_at).getTime();let d=i;for(const s of r){const m=new Date(s.block.start_at).getTime(),w=new Date(s.block.end_at).getTime();ml&&s.lane>d&&(d=s.lane)}return{block:o,lane:i,totalLanes:d+1}})}function Qe(e,t=7){return((e.getHours()-t)*60+e.getMinutes())*te}function Xe(e,t){const n=(t.getTime()-e.getTime())/6e4;return Math.max(n*te,20)}function be(e,t=7){const n=e.getDay(),r=new Date(e);return r.setDate(e.getDate()-(n+6)%7),r.setHours(0,0,0,0),Array.from({length:t},(a,o)=>{const i=new Date(r);return i.setDate(r.getDate()+o),i})}function ke(e,t=15){return Math.round(e/t)*t}const U=Ne("calendar",()=>{const e=P([]),t=P(new Date),n=P("week"),r=P(7),a=P(!1),o=P(null),i=$(()=>be(t.value,r.value));async function l(u,g,D){a.value=!0,o.value=null;try{const C=await Re.calendar({from:u,to:g,view:D});e.value=C.data}catch(C){const K=C;o.value=K.message??"Failed to fetch calendar"}finally{a.value=!1}}function c(u){r.value=u}async function d(){if(n.value==="week"){const u=be(t.value,r.value),g=T(u[0]),D=T(u[r.value-1]);await l(g,D,"week")}else{const u=T(t.value);await l(u,u,"day")}}function s(){const u=new Date(t.value);n.value==="week"?u.setDate(u.getDate()-7):u.setDate(u.getDate()-1),t.value=u}function m(){const u=new Date(t.value);n.value==="week"?u.setDate(u.getDate()+7):u.setDate(u.getDate()+1),t.value=u}function w(){t.value=new Date}function y(u){n.value=u}function M(u){e.value.push(u)}function v(u){const g=e.value.findIndex(D=>D.id===u.id);g!==-1&&(e.value[g]=u)}function h(u){e.value=e.value.filter(g=>g.id!==u)}function S(u){const g=T(u);return e.value.filter(D=>T(new Date(D.start_at))===g)}return{blocks:e,currentDate:t,view:n,weekLength:r,loading:a,error:o,weekDays:i,fetch:l,fetchCurrentView:d,navigatePrev:s,navigateNext:m,goToToday:w,setView:y,setWeekLength:c,addBlock:M,updateBlock:v,removeBlock:h,getBlocksForDay:S}});function W(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function z(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const Ce=6048e5,Ge=864e5;let Je={};function re(){return Je}function G(e,t){var l,c,d,s;const n=re(),r=(t==null?void 0:t.weekStartsOn)??((c=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((s=(d=n.locale)==null?void 0:d.options)==null?void 0:s.weekStartsOn)??0,a=W(e),o=a.getDay(),i=(o=a.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function xe(e){const t=W(e);return t.setHours(0,0,0,0),t}function pe(e){const t=W(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ue(e,t){const n=xe(e),r=xe(t),a=+n-pe(n),o=+r-pe(r);return Math.round((a-o)/Ge)}function Ke(e){const t=We(e),n=z(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),ne(n)}function Ze(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function et(e){if(!Ze(e)&&typeof e!="number")return!1;const t=W(e);return!isNaN(Number(t))}function tt(e){const t=W(e),n=z(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const nt={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"}},rt=(e,t,n)=>{let r;const a=nt[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function ue(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const at={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ot={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},st={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},it={date:ue({formats:at,defaultWidth:"full"}),time:ue({formats:ot,defaultWidth:"full"}),dateTime:ue({formats:st,defaultWidth:"full"})},ut={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ct=(e,t,n,r)=>ut[e];function I(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,l=n!=null&&n.width?String(n.width):i;a=e.formattingValues[l]||e.formattingValues[i]}else{const i=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;a=e.values[l]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return a[o]}}const dt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},lt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ft={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"]},mt={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"]},ht={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"}},gt={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"}},wt=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},vt={ordinalNumber:wt,era:I({values:dt,defaultWidth:"wide"}),quarter:I({values:lt,defaultWidth:"wide",argumentCallback:e=>e-1}),month:I({values:ft,defaultWidth:"wide"}),day:I({values:mt,defaultWidth:"wide"}),dayPeriod:I({values:ht,defaultWidth:"wide",formattingValues:gt,defaultFormattingWidth:"wide"})};function Q(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;const i=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?bt(l,m=>m.test(i)):yt(l,m=>m.test(i));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const s=t.slice(i.length);return{value:d,rest:s}}}function yt(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function bt(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const l=t.slice(a.length);return{value:i,rest:l}}}const xt=/^(\d+)(th|st|nd|rd)?/i,pt=/\d+/i,Dt={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},_t={any:[/^b/i,/^(a|c)/i]},Mt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},St={any:[/1/i,/2/i,/3/i,/4/i]},Tt={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},Pt={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]},Ot={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},Ct={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]},Wt={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}},Et={ordinalNumber:kt({matchPattern:xt,parsePattern:pt,valueCallback:e=>parseInt(e,10)}),era:Q({matchPatterns:Dt,defaultMatchWidth:"wide",parsePatterns:_t,defaultParseWidth:"any"}),quarter:Q({matchPatterns:Mt,defaultMatchWidth:"wide",parsePatterns:St,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Q({matchPatterns:Tt,defaultMatchWidth:"wide",parsePatterns:Pt,defaultParseWidth:"any"}),day:Q({matchPatterns:Ot,defaultMatchWidth:"wide",parsePatterns:Ct,defaultParseWidth:"any"}),dayPeriod:Q({matchPatterns:Wt,defaultMatchWidth:"any",parsePatterns:$t,defaultParseWidth:"any"})},Yt={code:"en-US",formatDistance:rt,formatLong:it,formatRelative:ct,localize:vt,match:Et,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ft(e){const t=W(e);return Ue(t,tt(t))+1}function Bt(e){const t=W(e),n=+ne(t)-+Ke(t);return Math.round(n/Ce)+1}function $e(e,t){var s,m,w,y;const n=W(e),r=n.getFullYear(),a=re(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(s=t==null?void 0:t.locale)==null?void 0:s.options)==null?void 0:m.firstWeekContainsDate)??a.firstWeekContainsDate??((y=(w=a.locale)==null?void 0:w.options)==null?void 0:y.firstWeekContainsDate)??1,i=z(e,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const l=G(i,t),c=z(e,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=G(c,t);return n.getTime()>=l.getTime()?r+1:n.getTime()>=d.getTime()?r:r-1}function Lt(e,t){var l,c,d,s;const n=re(),r=(t==null?void 0:t.firstWeekContainsDate)??((c=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((s=(d=n.locale)==null?void 0:d.options)==null?void 0:s.firstWeekContainsDate)??1,a=$e(e,t),o=z(e,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),G(o,t)}function jt(e,t){const n=W(e),r=+G(n,t)-+Lt(n,t);return Math.round(r/Ce)+1}function p(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const F={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return p(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):p(n+1,2)},d(e,t){return p(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return p(e.getHours()%12||12,t.length)},H(e,t){return p(e.getHours(),t.length)},m(e,t){return p(e.getMinutes(),t.length)},s(e,t){return p(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return p(a,t.length)}},V={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},De={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return F.y(e,t)},Y:function(e,t,n,r){const a=$e(e,r),o=a>0?a:1-a;if(t==="YY"){const i=o%100;return p(i,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):p(o,t.length)},R:function(e,t){const n=We(e);return p(n,t.length)},u:function(e,t){const n=e.getFullYear();return p(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return p(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return p(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return F.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return p(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=jt(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):p(a,t.length)},I:function(e,t,n){const r=Bt(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):p(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):F.d(e,t)},D:function(e,t,n){const r=Ft(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):p(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return p(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return p(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return p(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=V.noon:r===0?a=V.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=V.evening:r>=12?a=V.afternoon:r>=4?a=V.morning:a=V.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return F.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):F.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):p(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):p(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):F.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):F.s(e,t)},S:function(e,t){return F.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Me(r);case"XXXX":case"XX":return N(r);case"XXXXX":case"XXX":default:return N(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Me(r);case"xxxx":case"xx":return N(r);case"xxxxx":case"xxx":default:return N(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+_e(r,":");case"OOOO":default:return"GMT"+N(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+_e(r,":");case"zzzz":default:return"GMT"+N(r,":")}},t:function(e,t,n){const r=Math.trunc(e.getTime()/1e3);return p(r,t.length)},T:function(e,t,n){const r=e.getTime();return p(r,t.length)}};function _e(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),o=r%60;return o===0?n+String(a):n+String(a)+t+p(o,2)}function Me(e,t){return e%60===0?(e>0?"-":"+")+p(Math.abs(e)/60,2):N(e,t)}function N(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=p(Math.trunc(r/60),2),o=p(r%60,2);return n+a+t+o}const Se=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Ee=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},Nt=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return Se(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Se(r,t)).replace("{{time}}",Ee(a,t))},Ht={p:Ee,P:Nt},qt=/^D+$/,zt=/^Y+$/,Rt=["D","DD","YY","YYYY"];function Vt(e){return qt.test(e)}function At(e){return zt.test(e)}function It(e,t,n){const r=Qt(e,t,n);if(console.warn(r),Rt.includes(e))throw new RangeError(r)}function Qt(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Xt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Gt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Jt=/^'([^]*?)'?$/,Ut=/''/g,Kt=/[a-zA-Z]/;function q(e,t,n){var s,m,w,y,M,v,h,S;const r=re(),a=(n==null?void 0:n.locale)??r.locale??Yt,o=(n==null?void 0:n.firstWeekContainsDate)??((m=(s=n==null?void 0:n.locale)==null?void 0:s.options)==null?void 0:m.firstWeekContainsDate)??r.firstWeekContainsDate??((y=(w=r.locale)==null?void 0:w.options)==null?void 0:y.firstWeekContainsDate)??1,i=(n==null?void 0:n.weekStartsOn)??((v=(M=n==null?void 0:n.locale)==null?void 0:M.options)==null?void 0:v.weekStartsOn)??r.weekStartsOn??((S=(h=r.locale)==null?void 0:h.options)==null?void 0:S.weekStartsOn)??0,l=W(e);if(!et(l))throw new RangeError("Invalid time value");let c=t.match(Gt).map(u=>{const g=u[0];if(g==="p"||g==="P"){const D=Ht[g];return D(u,a.formatLong)}return u}).join("").match(Xt).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const g=u[0];if(g==="'")return{isToken:!1,value:Zt(u)};if(De[g])return{isToken:!0,value:u};if(g.match(Kt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+g+"`");return{isToken:!1,value:u}});a.localize.preprocessor&&(c=a.localize.preprocessor(l,c));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return c.map(u=>{if(!u.isToken)return u.value;const g=u.value;(!(n!=null&&n.useAdditionalWeekYearTokens)&&At(g)||!(n!=null&&n.useAdditionalDayOfYearTokens)&&Vt(g))&&It(g,t,String(e));const D=De[g[0]];return D(l,g,a.localize,d)}).join("")}function Zt(e){const t=e.match(Jt);return t?t[1].replace(Ut,"'"):e}const en={class:"flex items-center gap-2 flex-wrap"},tn={class:"flex items-center gap-1"},nn={class:"text-sm font-medium text-foreground flex-1 min-w-0 truncate"},rn={key:0,class:"text-xs text-muted-foreground"},an={class:"flex items-center rounded-md border border-border overflow-hidden"},on={key:1,class:"flex items-center rounded-md border border-border overflow-hidden"},sn=J({__name:"CalendarToolbar",setup(e){const t=U(),n=$(()=>{if(t.view==="week"){const l=t.weekDays;if(!l.length)return"";const c=l[0],d=l[l.length-1];return c.getMonth()===d.getMonth()?`${q(c,"MMM d")} – ${q(d,"d, yyyy")}`:`${q(c,"MMM d")} – ${q(d,"MMM d, yyyy")}`}else return q(t.currentDate,"EEEE, MMMM d, yyyy")});async function r(l){l==="prev"?t.navigatePrev():t.navigateNext(),await t.fetchCurrentView()}async function a(){t.goToToday(),await t.fetchCurrentView()}async function o(l){t.setView(l),await t.fetchCurrentView()}async function i(l){t.setWeekLength(l),await t.fetchCurrentView()}return(l,c)=>(k(),x("div",en,[f("div",tn,[E(ee,{variant:"outline",size:"sm",onClick:c[0]||(c[0]=d=>r("prev"))},{default:X(()=>[...c[6]||(c[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:"M15 19l-7-7 7-7"})],-1)])]),_:1}),E(ee,{variant:"outline",size:"sm",onClick:a},{default:X(()=>[...c[7]||(c[7]=[Te("Today",-1)])]),_:1}),E(ee,{variant:"outline",size:"sm",onClick:c[1]||(c[1]=d=>r("next"))},{default:X(()=>[...c[8]||(c[8]=[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",nn,_(n.value),1),b(t).loading?(k(),x("div",rn,"Loading...")):O("",!0),f("div",an,[f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).view==="day"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[2]||(c[2]=d=>o("day"))}," Day ",2),f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).view==="week"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[3]||(c[3]=d=>o("week"))}," Week ",2)]),b(t).view==="week"?(k(),x("div",on,[f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).weekLength===5?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[4]||(c[4]=d=>i(5))}," 5d ",2),f("button",{class:Y(["px-3 py-1.5 text-xs font-medium transition-colors",b(t).weekLength===7?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:c[5]||(c[5]=d=>i(7))}," 7d ",2)])):O("",!0)]))}}),un=7;function Ye(){const e=de(),t=U(),n=P(null),r=P(null),a=P(null),o=P(null);function i(v,h){var S,u;n.value=v.id,(S=h.dataTransfer)==null||S.setData("task_id",v.id),(u=h.dataTransfer)==null||u.setData("estimate_hours",String(v.estimate_hours??1))}function l(v,h){var u,g,D,C;const S=new Date(v.end_at).getTime()-new Date(v.start_at).getTime();(u=h.dataTransfer)==null||u.setData("block_id",v.id),(g=h.dataTransfer)==null||g.setData("block_duration_ms",String(S)),(D=h.dataTransfer)==null||D.setData("task_id",v.task_id??""),(C=h.dataTransfer)==null||C.setData("estimate_hours",String(S/36e5))}function c(v,h){h.preventDefault(),r.value=T(v)}function d(){r.value=null}async function s(v,h){var me,he,ge,we;h.preventDefault(),r.value=null,n.value=null;const S=(me=h.dataTransfer)==null?void 0:me.getData("block_id"),u=(he=h.dataTransfer)==null?void 0:he.getData("task_id"),g=parseFloat(((ge=h.dataTransfer)==null?void 0:ge.getData("estimate_hours"))??"1")||1,D=parseFloat(((we=h.dataTransfer)==null?void 0:we.getData("block_duration_ms"))??"0"),K=h.currentTarget.getBoundingClientRect(),ae=h.clientY-K.top,oe=ke(ae/te,15),Fe=Math.max(0,Math.min(oe,12*60)),R=new Date(v);R.setHours(un,0,0,0),R.setMinutes(R.getMinutes()+Fe);const se=R.toISOString();if(S&&D>0){const Le=new Date(R.getTime()+D).toISOString();try{await e.updateBlock(S,{start_at:se,end_at:Le}),await t.fetchCurrentView()}catch(je){console.error("Failed to move block:",je)}return}if(!u)return;const ie=new Date(R);ie.setMinutes(ie.getMinutes()+Math.round(g*60));const le=ie.toISOString(),fe=`temp_${Date.now()}`,Be={kind:"planned",id:fe,project_id:null,job_number:"",display_name:"Loading...",start_at:se,end_at:le,title:"",color_hue:260,tags:[],task_id:u,session_id:null,manual_entry_id:null};t.addBlock(Be);try{await e.createBlock(u,{start_at:se,end_at:le}),await t.fetchCurrentView()}catch(ve){t.removeBlock(fe),console.error("Failed to create task block:",ve)}}let m=0,w="",y=null;function M(v,h){h.preventDefault(),h.stopPropagation(),a.value=v,y=v,m=h.clientY,w=v.end_at,o.value=v.end_at;const S=g=>{if(!y)return;const D=g.clientY-m,C=ke(D/te,15),ae=new Date(w).getTime()+C*6e4,oe=new Date(y.start_at).getTime()+15*6e4;o.value=new Date(Math.max(ae,oe)).toISOString()},u=async()=>{if(document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",u),!y||!o.value){a.value=null;return}const g=y.id,D=o.value;if(D===w){a.value=null,o.value=null;return}try{y.task_id&&await e.updateBlock(g,{start_at:y.start_at,end_at:D}),t.updateBlock({...y,end_at:D})}catch(C){console.error("Failed to resize block:",C),t.updateBlock({...y,end_at:w})}a.value=null,o.value=null,y=null};document.addEventListener("mousemove",S),document.addEventListener("mouseup",u)}return{draggingTaskId:n,dragOverDay:r,resizingBlock:a,resizePreviewEnd:o,onDragStart:i,onBlockDragStart:l,onDragOver:c,onDragLeave:d,onDrop:s,onResizeStart:M}}function cn(e){return`hsla(${e}, 65%, 45%, 0.85)`}function dn(e){return`hsla(${e}, 65%, 55%, 1)`}const ln=["draggable"],fn={class:"px-1.5 py-1 h-full flex flex-col text-white overflow-hidden"},mn={class:"text-xs font-semibold leading-tight truncate"},hn={key:0,class:"text-xs opacity-75 truncate"},gn={key:1,class:"text-xs opacity-75 mt-auto"},wn=J({__name:"CalendarBlock",props:{block:{},lane:{},totalLanes:{},top:{},height:{},resizeEnd:{}},emits:["resizeStart","click","blockDragStart"],setup(e,{emit:t}){const n=e,r=t,a=$(()=>n.resizeEnd?new Date(n.resizeEnd):new Date(n.block.end_at)),o=$(()=>{if(!n.resizeEnd)return n.height;const s=(a.value.getTime()-new Date(n.block.start_at).getTime())/6e4;return Math.max(s*(40/30),20)}),i=$(()=>{const d=a.value.getTime()-new Date(n.block.start_at).getTime();return Z(d/36e5)}),l=$(()=>{const d=`calc(${100/n.totalLanes}% - 2px)`,s=`calc(${n.lane/n.totalLanes*100}% + 1px)`;return{top:`${n.top}px`,height:`${o.value}px`,width:d,left:s,backgroundColor:cn(n.block.color_hue),borderColor:dn(n.block.color_hue)}}),c=$(()=>o.value<40);return(d,s)=>(k(),x("div",{class:Y(["absolute rounded overflow-hidden cursor-pointer select-none group",{"border-2":e.block.kind==="session","border-2 border-dashed opacity-80":e.block.kind==="planned","border-2 calendar-block--manual":e.block.kind==="manual"}]),draggable:e.block.kind==="planned"&&!!e.block.task_id,style:H(l.value),onClick:s[1]||(s[1]=m=>r("click",e.block)),onDragstart:s[2]||(s[2]=m=>e.block.kind==="planned"&&e.block.task_id?r("blockDragStart",e.block,m):void 0)},[f("div",fn,[f("p",mn,_(e.block.display_name),1),!c.value&&e.block.job_number?(k(),x("p",hn,_(e.block.job_number),1)):O("",!0),c.value?O("",!0):(k(),x("p",gn,_(i.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:s[0]||(s[0]=Pe(m=>r("resizeStart",m),["stop"]))},[...s[3]||(s[3]=[f("div",{class:"w-8 h-0.5 bg-white/60 rounded"},null,-1)])],32)],46,ln))}}),vn=He(wn,[["__scopeId","data-v-978cfc69"]]),yn={class:"flex overflow-auto h-full"},bn={class:"flex flex-1 gap-px min-w-0"},kn=["onDragover","onDrop"],xn={key:1,class:"absolute inset-0 bg-primary/10 pointer-events-none z-0"},B=7,ce=19,A=40,pn=J({__name:"CalendarGrid",emits:["blockClick"],setup(e,{emit:t}){const n=Array.from({length:ce-B+1},(y,M)=>B+M),r=U(),a=Ye(),o=t,i=$(()=>r.view==="week"?r.weekDays:[r.currentDate]),l=T(new Date);function c(y){const M=r.getBlocksForDay(y);return Ie(M)}function d(y){return Qe(new Date(y.start_at),B)}function s(y){return Xe(new Date(y.start_at),new Date(y.end_at))}function m(y){var M;return((M=a.resizingBlock.value)==null?void 0:M.id)===y.id}function w(y){return y===12?"12 PM":y>12?`${y-12} PM`:`${y} AM`}return(y,M)=>(k(),x("div",yn,[f("div",{class:"w-12 shrink-0 relative",style:H({height:`${(ce-B+1)*A*2}px`})},[(k(!0),x(L,null,j(b(n),v=>(k(),x("div",{key:v,class:"absolute right-2 text-xs text-muted-foreground",style:H({top:`${(v-B)*A*2-6}px`})},_(w(v)),5))),128))],4),f("div",bn,[(k(!0),x(L,null,j(i.value,v=>(k(),x("div",{key:b(T)(v),class:Y(["flex-1 relative border-l border-border",{"bg-primary/5":b(T)(v)===b(l)}]),style:H({height:`${(ce-B)*A*2}px`}),onDragover:h=>b(a).onDragOver(v,h),onDragleave:M[1]||(M[1]=h=>b(a).onDragLeave()),onDrop:h=>b(a).onDrop(v,h)},[b(r).view==="week"?(k(),x("div",{key:0,class:Y(["sticky top-0 z-10 text-center py-1 text-xs font-medium border-b border-border bg-background",b(T)(v)===b(l)?"text-primary":"text-muted-foreground"])},[f("div",null,_(b(q)(v,"EEE")),1),f("div",{class:Y(["inline-flex h-6 w-6 mx-auto items-center justify-center rounded-full text-sm",b(T)(v)===b(l)?"bg-primary text-primary-foreground":""])},_(b(q)(v,"d")),3)],2)):O("",!0),(k(!0),x(L,null,j(b(n),h=>(k(),x("div",{key:h,class:"absolute left-0 right-0 border-t border-border/40",style:H({top:`${(h-B)*A*2}px`})},null,4))),128)),(k(!0),x(L,null,j(b(n).slice(0,-1),h=>(k(),x("div",{key:`half-${h}`,class:"absolute left-0 right-0 border-t border-border/20",style:H({top:`${(h-B)*A*2+A}px`})},null,4))),128)),b(a).dragOverDay.value===b(T)(v)?(k(),x("div",xn)):O("",!0),(k(!0),x(L,null,j(c(v),({block:h,lane:S,totalLanes:u})=>(k(),qe(vn,{key:h.id,block:h,lane:S,"total-lanes":u,top:d(h),height:s(h),"resize-end":m(h)?b(a).resizePreviewEnd.value:null,onClick:g=>o("blockClick",h),onResizeStart:g=>b(a).onResizeStart(h,g),onBlockDragStart:M[0]||(M[0]=(g,D)=>b(a).onBlockDragStart(g,D))},null,8,["block","lane","total-lanes","top","height","resize-end","onClick","onResizeStart"]))),128))],46,kn))),128))])]))}}),Dn={class:"flex flex-col h-full bg-card border-l border-border"},_n={class:"p-3 border-b border-border flex items-center justify-between shrink-0"},Mn={class:"flex-1 overflow-y-auto p-2 space-y-1.5"},Sn={key:0,class:"text-xs text-muted-foreground p-2"},Tn={key:1,class:"text-xs text-muted-foreground p-2 text-center"},Pn=["onDragstart"],On={class:"flex items-start gap-2"},Cn={class:"flex-1 min-w-0"},Wn={class:"text-xs font-medium text-foreground leading-tight truncate"},$n={class:"flex items-center gap-1.5 mt-1 flex-wrap"},En={key:0,class:"text-xs text-muted-foreground"},Yn={key:0,class:"p-3 border-t border-border shrink-0"},Fn={class:"space-y-1"},Bn={class:"text-muted-foreground truncate max-w-[100px]"},Ln={class:"text-foreground"},jn=J({__name:"PlannerSidebar",emits:["createTask"],setup(e,{emit:t}){const n=de(),r=U(),a=Ye(),o=t,i=$(()=>T(r.currentDate));Oe(()=>{n.fetchForDate(i.value)});const l=s=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[s],c=s=>s>=4?"bg-red-500":s===3?"bg-amber-500":"bg-emerald-500",d=$(()=>{const s={};for(const m of n.tasks){const w=m.project_id??"_none";s[w]||(s[w]={name:m.project_id?w:"No Project",planned:0,actual:0}),s[w].planned+=m.estimate_hours??0,s[w].actual+=m.actual_hours??0}return Object.values(s)});return(s,m)=>(k(),x("div",Dn,[f("div",_n,[m[2]||(m[2]=f("h3",{class:"text-sm font-semibold text-foreground"},"Planner",-1)),E(ee,{size:"sm",variant:"ghost",onClick:m[0]||(m[0]=w=>o("createTask"))},{default:X(()=>[...m[1]||(m[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",Mn,[b(n).loading?(k(),x("div",Sn,"Loading...")):b(n).tasks.length===0?(k(),x("div",Tn," No tasks for today ")):O("",!0),(k(!0),x(L,null,j(b(n).tasks,w=>(k(),x("div",{key:w.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:y=>b(a).onDragStart(w,y)},[f("div",On,[f("div",{class:Y(["h-2 w-2 rounded-full mt-1.5 shrink-0",c(w.priority)])},null,2),f("div",Cn,[f("p",Wn,_(w.title),1),f("div",$n,[E(Ae,{variant:l(w.status),class:"text-xs py-0"},{default:X(()=>[Te(_(w.status),1)]),_:2},1032,["variant"]),w.estimate_hours?(k(),x("span",En,_(b(Z)(w.estimate_hours)),1)):O("",!0)])])])],40,Pn))),128))]),d.value.length?(k(),x("div",Yn,[m[3]||(m[3]=f("p",{class:"text-xs font-medium text-muted-foreground mb-2"},"Plan vs Actual",-1)),f("div",Fn,[(k(!0),x(L,null,j(d.value,w=>(k(),x("div",{key:w.name,class:"flex items-center justify-between text-xs"},[f("span",Bn,_(w.name),1),f("span",Ln,_(b(Z)(w.planned))+" / "+_(b(Z)(w.actual)),1)]))),128))])])):O("",!0)]))}}),Nn={class:"h-full flex flex-col"},Hn={class:"p-4 border-b border-border flex items-center gap-3 flex-wrap"},qn={class:"flex items-center gap-2 ml-auto"},zn={class:"flex-1 flex overflow-hidden"},Rn={class:"flex-1 overflow-auto"},Vn={key:0,class:"w-56 shrink-0 overflow-hidden"},An={class:"bg-card border border-border rounded-lg shadow-xl p-4 w-72"},In={class:"flex items-start justify-between gap-2 mb-3"},Qn={class:"font-semibold text-sm text-foreground"},Xn={key:0,class:"text-xs text-muted-foreground"},Gn={class:"space-y-1 text-xs text-muted-foreground"},Jn={key:0,class:"mt-2 flex flex-wrap gap-1"},sr=J({__name:"CalendarView",setup(e){const t=U(),n=de(),r=ze(),a=P(!0),o=P(!1),i=P(null);Oe(()=>{t.fetchCurrentView()});function l(d){if(d.project_id&&d.kind==="session"){const s=d.start_at.substring(0,10);r.push({name:"project-detail",params:{id:d.project_id,date:s}})}else i.value=d}async function c(d){try{await n.create(d),ye.success("Task created"),o.value=!1,n.fetchForDate(T(t.currentDate))}catch{ye.error("Failed to create task")}}return(d,s)=>(k(),x("div",Nn,[f("div",Hn,[E(sn),f("div",qn,[f("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:s[0]||(s[0]=m=>a.value=!a.value)},_(a.value?"Hide Planner":"Show Planner"),1)])]),f("div",zn,[f("div",Rn,[E(pn,{onBlockClick:l})]),a.value?(k(),x("div",Vn,[E(jn,{onCreateTask:s[1]||(s[1]=m=>o.value=!0)})])):O("",!0)]),i.value?(k(),x("div",{key:0,class:"fixed inset-0 z-40 flex items-center justify-center p-4",onClick:s[3]||(s[3]=Pe(m=>i.value=null,["self"]))},[f("div",An,[f("div",In,[f("div",null,[f("p",Qn,_(i.value.display_name),1),i.value.job_number?(k(),x("p",Xn,_(i.value.job_number),1)):O("",!0)]),f("button",{class:"text-muted-foreground hover:text-foreground",onClick:s[2]||(s[2]=m=>i.value=null)},[...s[5]||(s[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",Gn,[f("p",null,"Start: "+_(new Date(i.value.start_at).toLocaleString()),1),f("p",null,"End: "+_(new Date(i.value.end_at).toLocaleString()),1),f("p",null,"Type: "+_(i.value.kind),1)]),i.value.tags.length?(k(),x("div",Jn,[(k(!0),x(L,null,j(i.value.tags,m=>(k(),x("span",{key:m.id,class:"px-1.5 py-0.5 rounded text-xs",style:H({background:`${m.color_hex}22`,color:m.color_hex})},_(m.name),5))),128))])):O("",!0)])])):O("",!0),E(Ve,{open:o.value,"default-date":b(T)(b(t).currentDate),onClose:s[4]||(s[4]=m=>o.value=!1),onSave:c},null,8,["open","default-date"])]))}});export{sr as default}; diff --git a/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js b/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js new file mode 100644 index 0000000..229ea9c --- /dev/null +++ b/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js @@ -0,0 +1 @@ +import{c as e}from"./utils-7WVCegLb.js";import{d as o,c as n,n as t,h as c,m as l,o as p}from"./index-DzSm5_bv.js";const _=o({__name:"Card",props:{class:{}},setup(s){const a=s;return(r,d)=>(p(),n("div",{class:t(c(e)("rounded-lg border bg-card text-card-foreground shadow-sm",a.class))},[l(r.$slots,"default")],2))}}),f=o({__name:"CardContent",props:{class:{}},setup(s){const a=s;return(r,d)=>(p(),n("div",{class:t(c(e)("p-6 pt-0",a.class))},[l(r.$slots,"default")],2))}});export{_,f as a}; diff --git a/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js b/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js deleted file mode 100644 index 3215a3d..0000000 --- a/src/static/assets/CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js +++ /dev/null @@ -1 +0,0 @@ -import{c as e}from"./utils-D_0J15Md.js";import{d as o,c as t,p as n,i as c,s as p,o as l}from"./index-yrXqsixb.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-Bs99oJeq.js b/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js deleted file mode 100644 index bc66c70..0000000 --- a/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js +++ /dev/null @@ -1 +0,0 @@ -import{c as t}from"./utils-D_0J15Md.js";import{d as o,o as n,c as r,p as c,i as l,s as p}from"./index-yrXqsixb.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/CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js b/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js new file mode 100644 index 0000000..935dc7a --- /dev/null +++ b/src/static/assets/CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js @@ -0,0 +1 @@ +import{c as t}from"./utils-7WVCegLb.js";import{d as n,o,c as r,n as c,h as l,m as p}from"./index-DzSm5_bv.js";const f=n({__name:"CardHeader",props:{class:{}},setup(s){const e=s;return(a,m)=>(o(),r("div",{class:c(l(t)("flex flex-col space-y-1.5 p-6",e.class))},[p(a.$slots,"default")],2))}}),_=n({__name:"CardTitle",props:{class:{}},setup(s){const e=s;return(a,m)=>(o(),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-Cp_ma0oa.js b/src/static/assets/DashboardView-Cp_ma0oa.js deleted file mode 100644 index 105b3a5..0000000 --- a/src/static/assets/DashboardView-Cp_ma0oa.js +++ /dev/null @@ -1 +0,0 @@ -import{d as L,n as O,w as i,p as u,m as M,o,a as e,e as d,t as g,c as s,j as D,k as w,v as Q,x as X,F as v,l as x,y as E,z as K,i as _,r as h,A as p}from"./index-yrXqsixb.js";import{d as $}from"./dashboard-Bay5szWb.js";import{_ as C,a as B}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as F,a as P}from"./CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js";import{_ as Y}from"./Progress.vue_vue_type_script_setup_true_lang-CI2N8P-o.js";import{_ as Z}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{f as j,i as W}from"./utils-D_0J15Md.js";const ee={class:"flex items-start justify-between gap-2"},te={class:"flex-1 min-w-0"},le={class:"mt-2"},oe={key:0,class:"h-7 w-20 bg-muted animate-pulse rounded"},se={key:0,class:"text-xs text-muted-foreground mt-1.5 truncate"},re={key:0,class:"mt-3 flex items-center gap-1.5 text-xs"},ae={class:"h-3 w-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 10l7-7m0 0l7 7m-7-7v18"},de={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M19 14l-7 7m0 0l-7-7m7 7V3"},ie={key:2,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 12h14"},k=L({__name:"KpiCard",props:{label:{},value:{},icon:{},trend:{},description:{},loading:{type:Boolean},hero:{type:Boolean}},setup(r){const m=r,y=M(()=>m.hero?"relative overflow-hidden transition-all duration-200 border-primary/20 bg-primary/5 ring-1 ring-primary/15 panel-glow-hover":"relative overflow-hidden transition-all duration-200 border-border/60 panel-glow-hover");return(b,a)=>(o(),O(C,{class:u(y.value)},{default:i(()=>[e("span",{class:u(["pointer-events-none absolute -right-4 -top-4 h-14 w-14 rounded-full",r.hero?"bg-primary/10":"bg-primary/5"])},null,2),e("span",{class:u(["pointer-events-none absolute -right-1 -top-1 h-6 w-6 rounded-full",r.hero?"bg-primary/15":"bg-primary/8"])},null,2),d(B,{class:"p-5"},{default:i(()=>[e("div",ee,[e("div",te,[e("p",{class:u(["text-[10px] font-semibold uppercase tracking-[0.1em] truncate",r.hero?"text-primary/80":"text-muted-foreground"])},g(r.label),3),e("div",le,[r.loading?(o(),s("div",oe)):(o(),s("p",{key:1,class:u(["kpi-value font-bold tracking-tight leading-none",r.hero?"text-3xl text-primary":"text-2xl text-foreground"])},g(r.value),3))]),r.description?(o(),s("p",se,g(r.description),1)):D("",!0)]),r.icon?(o(),s("div",{key:0,class:u(["rounded-xl flex items-center justify-center shrink-0",[r.hero?"h-11 w-11 bg-primary/15 ring-1 ring-primary/25":"h-9 w-9 bg-muted ring-1 ring-border"]])},[r.icon==="clock"?(o(),s("svg",{key:0,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[0]||(a[0]=[e("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)])],2)):r.icon==="calendar"?(o(),s("svg",{key:1,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[1]||(a[1]=[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)):r.icon==="folder"?(o(),s("svg",{key:2,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[2]||(a[2]=[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)):r.icon==="trending-up"?(o(),s("svg",{key:3,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[3]||(a[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},null,-1)])],2)):r.icon==="git"?(o(),s("svg",{key:4,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[4]||(a[4]=[e("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"2"},null,-1),e("path",{"stroke-linecap":"round","stroke-width":"2",d:"M2 12h6M16 12h6"},null,-1)])],2)):(o(),s("svg",{key:5,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[5]||(a[5]=[e("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)])],2))],2)):D("",!0)]),r.trend!==void 0?(o(),s("div",re,[e("div",{class:u(["flex items-center gap-1 font-semibold tabular-nums",r.trend>0?"text-[hsl(var(--success))]":r.trend<0?"text-destructive":"text-muted-foreground"])},[(o(),s("svg",ae,[r.trend>0?(o(),s("path",ne)):r.trend<0?(o(),s("path",de)):(o(),s("path",ie))])),w(" "+g(r.trend>0?"+":"")+g(Math.abs(r.trend))+"% ",1)],2),a[6]||(a[6]=e("span",{class:"text-muted-foreground"},"vs last period",-1))])):D("",!0),e("div",{class:u(["mt-3 h-px rounded-full",r.hero?"w-full bg-primary/20":"w-10 bg-primary/20"])},null,2)]),_:1})]),_:1},8,["class"]))}}),ue={class:"p-6 space-y-6"},ce={class:"flex flex-wrap items-center gap-3"},me={class:"flex items-center rounded-lg border border-border overflow-hidden bg-muted/30"},ge=["onClick"],fe={class:"grid grid-cols-2 md:grid-cols-3 xl:grid-cols-6 gap-4"},ve={class:"grid grid-cols-1 lg:grid-cols-2 gap-4"},xe={key:0,class:"h-40 flex items-end gap-px"},he={key:1,class:"h-40 flex flex-col items-center justify-center gap-2"},pe={key:2,class:"h-40 flex items-end gap-px overflow-hidden"},ye=["title"],ke={key:0,class:"h-40 flex items-end gap-2"},we={key:1,class:"h-40 flex flex-col items-center justify-center gap-2"},be={key:2,class:"flex items-end gap-2",style:{height:"160px"}},_e=["title"],$e={class:"text-[10px] text-muted-foreground font-medium"},je={class:"grid grid-cols-1 lg:grid-cols-2 gap-4"},Me={key:0,class:"space-y-3"},Ce={key:1,class:"flex flex-col items-center justify-center py-8 gap-2"},Be={key:2,class:"space-y-2.5"},De={class:"text-xs text-foreground w-24 truncate shrink-0 tabular-nums"},Ve={class:"flex-1 h-1.5 bg-muted rounded-full overflow-hidden"},ze={class:"text-xs text-muted-foreground w-9 text-right shrink-0 tabular-nums"},He={key:0,class:"space-y-3"},Ne={class:"flex justify-between"},Te={key:1,class:"flex flex-col items-center justify-center py-8 gap-2"},Ae={key:2,class:"space-y-2.5"},Fe={class:"flex items-center justify-between text-xs mb-1"},Pe={class:"text-foreground truncate max-w-[160px] font-medium"},Se={class:"text-muted-foreground shrink-0 tabular-nums ml-2"},Ge=L({__name:"DashboardView",setup(r){const m=h("today"),y=h(""),b=h(""),a=h(null),S=h([]),V=h([]),z=h([]),H=h([]),c=h(!1),R=M(()=>{const n=new Date,t=W(n);if(m.value==="today")return{from:t,to:t};if(m.value==="7d"){const f=new Date(n);return f.setDate(n.getDate()-7),{from:W(f),to:t}}else if(m.value==="30d"){const f=new Date(n);return f.setDate(n.getDate()-30),{from:W(f),to:t}}else return{from:y.value||t,to:b.value||t}});async function U(){if(!(m.value==="custom"&&(!y.value||!b.value))){c.value=!0;try{const n=R.value,[t,f,N,T,A]=await Promise.all([$.summary(n),$.projects(n),$.timeline(n),$.dow(n),$.tools(n)]);a.value=t.data,S.value=f.data,V.value=N.data,z.value=T.data,H.value=A.data}catch(n){console.error("Failed to load dashboard data",n)}finally{c.value=!1}}}Q(m,()=>{m.value!=="custom"&&U()}),X(()=>U());const q=M(()=>Math.max(...V.value.map(n=>n.hours),1)),G=M(()=>Math.max(...z.value.map(n=>n.hours),1)),I=M(()=>Math.max(...H.value.map(n=>n.pct),1)),J=n=>n?n>90?"danger":n>70?"warning":"success":"default";return(n,t)=>{var f,N,T,A;return o(),s("div",ue,[e("div",ce,[t[4]||(t[4]=e("h2",{class:"text-base font-semibold text-foreground flex-1 tracking-tight"},"Overview",-1)),e("div",me,[(o(),s(v,null,x(["today","7d","30d","custom"],l=>e("button",{key:l,class:u(["px-3 py-1.5 text-xs font-medium transition-colors",m.value===l?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted/50"]),onClick:Ue=>m.value=l},g(l==="today"?"Today":l==="7d"?"7 days":l==="30d"?"30 days":"Custom"),11,ge)),64))]),m.value==="custom"?(o(),s(v,{key:0},[E(e("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>y.value=l),type:"date",class:"h-8 rounded-lg border border-input bg-muted/30 px-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring"},null,512),[[K,y.value]]),t[3]||(t[3]=e("span",{class:"text-xs text-muted-foreground"},"to",-1)),E(e("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>b.value=l),type:"date",class:"h-8 rounded-lg border border-input bg-muted/30 px-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring"},null,512),[[K,b.value]]),d(Z,{size:"sm",loading:c.value,onClick:U},{default:i(()=>[...t[2]||(t[2]=[w("Apply",-1)])]),_:1},8,["loading"])],64)):D("",!0)]),e("div",fe,[d(k,{label:"Total Hours",value:a.value?_(j)(a.value.total_hours):"—",icon:"clock",loading:c.value,hero:!0},null,8,["value","loading"]),d(k,{label:"Working Days",value:((f=a.value)==null?void 0:f.working_days)??"—",icon:"calendar",loading:c.value},null,8,["value","loading"]),d(k,{label:"Projects",value:((N=a.value)==null?void 0:N.total_projects)??"—",icon:"folder",loading:c.value},null,8,["value","loading"]),d(k,{label:"Avg / Day",value:a.value?_(j)(a.value.avg_hours_per_day):"—",icon:"trending-up",loading:c.value},null,8,["value","loading"]),d(k,{label:"Top Project",value:((T=a.value)==null?void 0:T.top_project)??"—",icon:"star",loading:c.value},null,8,["value","loading"]),d(k,{label:"Commits",value:((A=a.value)==null?void 0:A.total_commits)??"—",icon:"git",loading:c.value},null,8,["value","loading"])]),e("div",ve,[d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[5]||(t[5]=[w("Hours by Day",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",xe,[(o(),s(v,null,x(30,l=>e("div",{key:l,class:"flex-1 bg-muted animate-pulse rounded-t",style:p({height:`${20+Math.random()*60}%`})},null,4)),64))])):V.value.length===0?(o(),s("div",he,[...t[6]||(t[6]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No sessions in this period",-1)])])):(o(),s("div",pe,[(o(!0),s(v,null,x(V.value,l=>(o(),s("div",{key:l.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors duration-150 cursor-default",style:p({height:`${Math.max(l.hours/q.value*160,2)}px`}),title:`${l.date}: ${_(j)(l.hours)}`},null,12,ye))),128))]))]),_:1})]),_:1}),d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[7]||(t[7]=[w("By Day of Week",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",ke,[(o(),s(v,null,x(7,l=>e("div",{key:l,class:"flex-1 flex flex-col items-center gap-1"},[e("div",{class:"w-full bg-muted animate-pulse rounded-t",style:p({height:`${30+l*8}%`})},null,4),t[8]||(t[8]=e("div",{class:"h-3 w-4 bg-muted animate-pulse rounded"},null,-1))])),64))])):z.value.length===0?(o(),s("div",we,[...t[9]||(t[9]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No sessions in this period",-1)])])):(o(),s("div",be,[(o(!0),s(v,null,x(z.value,l=>(o(),s("div",{key:l.dow,class:"flex-1 flex flex-col items-center gap-1 cursor-default",style:{height:"160px","justify-content":"flex-end"}},[e("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors duration-150",style:p({height:`${Math.max(l.hours/G.value*128,2)}px`}),title:`${l.label}: ${_(j)(l.hours)}`},null,12,_e),e("span",$e,g(l.label.slice(0,2)),1)]))),128))]))]),_:1})]),_:1})]),e("div",je,[d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[10]||(t[10]=[w("Tool Usage",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",Me,[(o(),s(v,null,x(5,l=>e("div",{key:l,class:"flex items-center gap-2"},[e("div",{class:"h-3 rounded bg-muted animate-pulse",style:p({width:`${40+l*10}px`})},null,4),t[11]||(t[11]=e("div",{class:"flex-1 h-2 bg-muted animate-pulse rounded-full"},null,-1)),t[12]||(t[12]=e("div",{class:"h-3 w-8 bg-muted animate-pulse rounded"},null,-1))])),64))])):H.value.length===0?(o(),s("div",Ce,[...t[13]||(t[13]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No tool data yet",-1)])])):(o(),s("div",Be,[(o(!0),s(v,null,x(H.value.slice(0,8),l=>(o(),s("div",{key:l.tool,class:"flex items-center gap-2.5"},[e("span",De,g(l.tool),1),e("div",Ve,[e("div",{class:"h-full bg-primary/70 rounded-full transition-all duration-300",style:p({width:`${l.pct/I.value*100}%`})},null,4)]),e("span",ze,g((l.pct??0).toFixed(0))+"% ",1)]))),128))]))]),_:1})]),_:1}),d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[14]||(t[14]=[w("Projects",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",He,[(o(),s(v,null,x(5,l=>e("div",{key:l,class:"space-y-1.5"},[e("div",Ne,[e("div",{class:"h-3 rounded bg-muted animate-pulse",style:p({width:`${80+l*15}px`})},null,4),t[15]||(t[15]=e("div",{class:"h-3 w-12 bg-muted animate-pulse rounded"},null,-1))]),t[16]||(t[16]=e("div",{class:"h-1.5 bg-muted animate-pulse rounded-full"},null,-1))])),64))])):S.value.length===0?(o(),s("div",Te,[...t[17]||(t[17]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No project data yet",-1)])])):(o(),s("div",Ae,[(o(!0),s(v,null,x(S.value.slice(0,8),l=>(o(),s("div",{key:l.project_id},[e("div",Fe,[e("span",Pe,g(l.display_name),1),e("span",Se,g(_(j)(l.total_hours)),1)]),l.progress_pct!==null?(o(),O(Y,{key:0,value:l.progress_pct,color:J(l.progress_pct)},null,8,["value","color"])):D("",!0)]))),128))]))]),_:1})]),_:1})])])}}});export{Ge as default}; diff --git a/src/static/assets/DashboardView-Cvjfxfcs.js b/src/static/assets/DashboardView-Cvjfxfcs.js new file mode 100644 index 0000000..693a61d --- /dev/null +++ b/src/static/assets/DashboardView-Cvjfxfcs.js @@ -0,0 +1 @@ +import{d as K,k as L,w as i,n as u,j as M,o,a as e,e as d,t as g,c as s,i as D,p as w,s as Q,v as X,F as v,r as x,x as q,y as E,h as _,q as h,z as p}from"./index-DzSm5_bv.js";import{d as $}from"./dashboard-uOtmhTNc.js";import{_ as C,a as B}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as F,a as P}from"./CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js";import{_ as Y}from"./Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js";import{_ as Z}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{f as j,i as W}from"./utils-7WVCegLb.js";import"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";const ee={class:"flex items-start justify-between gap-2"},te={class:"flex-1 min-w-0"},le={class:"mt-2"},oe={key:0,class:"h-7 w-20 bg-muted animate-pulse rounded"},se={key:0,class:"text-xs text-muted-foreground mt-1.5 truncate"},re={key:0,class:"mt-3 flex items-center gap-1.5 text-xs"},ae={class:"h-3 w-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ne={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 10l7-7m0 0l7 7m-7-7v18"},de={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M19 14l-7 7m0 0l-7-7m7 7V3"},ie={key:2,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.5",d:"M5 12h14"},k=K({__name:"KpiCard",props:{label:{},value:{},icon:{},trend:{},description:{},loading:{type:Boolean},hero:{type:Boolean}},setup(r){const m=r,y=M(()=>m.hero?"relative overflow-hidden transition-all duration-200 border-primary/20 bg-primary/5 ring-1 ring-primary/15 panel-glow-hover":"relative overflow-hidden transition-all duration-200 border-border/60 panel-glow-hover");return(b,a)=>(o(),L(C,{class:u(y.value)},{default:i(()=>[e("span",{class:u(["pointer-events-none absolute -right-4 -top-4 h-14 w-14 rounded-full",r.hero?"bg-primary/10":"bg-primary/5"])},null,2),e("span",{class:u(["pointer-events-none absolute -right-1 -top-1 h-6 w-6 rounded-full",r.hero?"bg-primary/15":"bg-primary/8"])},null,2),d(B,{class:"p-5"},{default:i(()=>[e("div",ee,[e("div",te,[e("p",{class:u(["text-[10px] font-semibold uppercase tracking-[0.1em] truncate",r.hero?"text-primary/80":"text-muted-foreground"])},g(r.label),3),e("div",le,[r.loading?(o(),s("div",oe)):(o(),s("p",{key:1,class:u(["kpi-value font-bold tracking-tight leading-none",r.hero?"text-3xl text-primary":"text-2xl text-foreground"])},g(r.value),3))]),r.description?(o(),s("p",se,g(r.description),1)):D("",!0)]),r.icon?(o(),s("div",{key:0,class:u(["rounded-xl flex items-center justify-center shrink-0",[r.hero?"h-11 w-11 bg-primary/15 ring-1 ring-primary/25":"h-9 w-9 bg-muted ring-1 ring-border"]])},[r.icon==="clock"?(o(),s("svg",{key:0,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[0]||(a[0]=[e("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)])],2)):r.icon==="calendar"?(o(),s("svg",{key:1,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[1]||(a[1]=[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)):r.icon==="folder"?(o(),s("svg",{key:2,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[2]||(a[2]=[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)):r.icon==="trending-up"?(o(),s("svg",{key:3,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[3]||(a[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"},null,-1)])],2)):r.icon==="git"?(o(),s("svg",{key:4,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[4]||(a[4]=[e("circle",{cx:"12",cy:"12",r:"4",stroke:"currentColor","stroke-width":"2"},null,-1),e("path",{"stroke-linecap":"round","stroke-width":"2",d:"M2 12h6M16 12h6"},null,-1)])],2)):(o(),s("svg",{key:5,class:u(["shrink-0",r.hero?"h-5 w-5 text-primary":"h-4 w-4 text-muted-foreground"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[5]||(a[5]=[e("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)])],2))],2)):D("",!0)]),r.trend!==void 0?(o(),s("div",re,[e("div",{class:u(["flex items-center gap-1 font-semibold tabular-nums",r.trend>0?"text-[hsl(var(--success))]":r.trend<0?"text-destructive":"text-muted-foreground"])},[(o(),s("svg",ae,[r.trend>0?(o(),s("path",ne)):r.trend<0?(o(),s("path",de)):(o(),s("path",ie))])),w(" "+g(r.trend>0?"+":"")+g(Math.abs(r.trend))+"% ",1)],2),a[6]||(a[6]=e("span",{class:"text-muted-foreground"},"vs last period",-1))])):D("",!0),e("div",{class:u(["mt-3 h-px rounded-full",r.hero?"w-full bg-primary/20":"w-10 bg-primary/20"])},null,2)]),_:1})]),_:1},8,["class"]))}}),ue={class:"p-6 space-y-6"},ce={class:"flex flex-wrap items-center gap-3"},me={class:"flex items-center rounded-lg border border-border overflow-hidden bg-muted/30"},ge=["onClick"],fe={class:"grid grid-cols-2 md:grid-cols-3 xl:grid-cols-6 gap-4"},ve={class:"grid grid-cols-1 lg:grid-cols-2 gap-4"},xe={key:0,class:"h-40 flex items-end gap-px"},he={key:1,class:"h-40 flex flex-col items-center justify-center gap-2"},pe={key:2,class:"h-40 flex items-end gap-px overflow-hidden"},ye=["title"],ke={key:0,class:"h-40 flex items-end gap-2"},we={key:1,class:"h-40 flex flex-col items-center justify-center gap-2"},be={key:2,class:"flex items-end gap-2",style:{height:"160px"}},_e=["title"],$e={class:"text-[10px] text-muted-foreground font-medium"},je={class:"grid grid-cols-1 lg:grid-cols-2 gap-4"},Me={key:0,class:"space-y-3"},Ce={key:1,class:"flex flex-col items-center justify-center py-8 gap-2"},Be={key:2,class:"space-y-2.5"},De={class:"text-xs text-foreground w-24 truncate shrink-0 tabular-nums"},Ve={class:"flex-1 h-1.5 bg-muted rounded-full overflow-hidden"},ze={class:"text-xs text-muted-foreground w-9 text-right shrink-0 tabular-nums"},He={key:0,class:"space-y-3"},Ne={class:"flex justify-between"},Te={key:1,class:"flex flex-col items-center justify-center py-8 gap-2"},Ae={key:2,class:"space-y-2.5"},Fe={class:"flex items-center justify-between text-xs mb-1"},Pe={class:"text-foreground truncate max-w-[160px] font-medium"},Se={class:"text-muted-foreground shrink-0 tabular-nums ml-2"},Ie=K({__name:"DashboardView",setup(r){const m=h("today"),y=h(""),b=h(""),a=h(null),S=h([]),V=h([]),z=h([]),H=h([]),c=h(!1),O=M(()=>{const n=new Date,t=W(n);if(m.value==="today")return{from:t,to:t};if(m.value==="7d"){const f=new Date(n);return f.setDate(n.getDate()-7),{from:W(f),to:t}}else if(m.value==="30d"){const f=new Date(n);return f.setDate(n.getDate()-30),{from:W(f),to:t}}else return{from:y.value||t,to:b.value||t}});async function U(){if(!(m.value==="custom"&&(!y.value||!b.value))){c.value=!0;try{const n=O.value,[t,f,N,T,A]=await Promise.all([$.summary(n),$.projects(n),$.timeline(n),$.dow(n),$.tools(n)]);a.value=t.data,S.value=f.data,V.value=N.data,z.value=T.data,H.value=A.data}catch(n){console.error("Failed to load dashboard data",n)}finally{c.value=!1}}}Q(m,()=>{m.value!=="custom"&&U()}),X(()=>U());const R=M(()=>Math.max(...V.value.map(n=>n.hours),1)),G=M(()=>Math.max(...z.value.map(n=>n.hours),1)),I=M(()=>Math.max(...H.value.map(n=>n.pct),1)),J=n=>n?n>90?"danger":n>70?"warning":"success":"default";return(n,t)=>{var f,N,T,A;return o(),s("div",ue,[e("div",ce,[t[4]||(t[4]=e("h2",{class:"text-base font-semibold text-foreground flex-1 tracking-tight"},"Overview",-1)),e("div",me,[(o(),s(v,null,x(["today","7d","30d","custom"],l=>e("button",{key:l,class:u(["px-3 py-1.5 text-xs font-medium transition-colors",m.value===l?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted/50"]),onClick:Ue=>m.value=l},g(l==="today"?"Today":l==="7d"?"7 days":l==="30d"?"30 days":"Custom"),11,ge)),64))]),m.value==="custom"?(o(),s(v,{key:0},[q(e("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>y.value=l),type:"date",class:"h-8 rounded-lg border border-input bg-muted/30 px-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring"},null,512),[[E,y.value]]),t[3]||(t[3]=e("span",{class:"text-xs text-muted-foreground"},"to",-1)),q(e("input",{"onUpdate:modelValue":t[1]||(t[1]=l=>b.value=l),type:"date",class:"h-8 rounded-lg border border-input bg-muted/30 px-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring"},null,512),[[E,b.value]]),d(Z,{size:"sm",loading:c.value,onClick:U},{default:i(()=>[...t[2]||(t[2]=[w("Apply",-1)])]),_:1},8,["loading"])],64)):D("",!0)]),e("div",fe,[d(k,{label:"Total Hours",value:a.value?_(j)(a.value.total_hours):"—",icon:"clock",loading:c.value,hero:!0},null,8,["value","loading"]),d(k,{label:"Working Days",value:((f=a.value)==null?void 0:f.working_days)??"—",icon:"calendar",loading:c.value},null,8,["value","loading"]),d(k,{label:"Projects",value:((N=a.value)==null?void 0:N.total_projects)??"—",icon:"folder",loading:c.value},null,8,["value","loading"]),d(k,{label:"Avg / Day",value:a.value?_(j)(a.value.avg_hours_per_day):"—",icon:"trending-up",loading:c.value},null,8,["value","loading"]),d(k,{label:"Top Project",value:((T=a.value)==null?void 0:T.top_project)??"—",icon:"star",loading:c.value},null,8,["value","loading"]),d(k,{label:"Commits",value:((A=a.value)==null?void 0:A.total_commits)??"—",icon:"git",loading:c.value},null,8,["value","loading"])]),e("div",ve,[d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[5]||(t[5]=[w("Hours by Day",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",xe,[(o(),s(v,null,x(30,l=>e("div",{key:l,class:"flex-1 bg-muted animate-pulse rounded-t",style:p({height:`${20+Math.random()*60}%`})},null,4)),64))])):V.value.length===0?(o(),s("div",he,[...t[6]||(t[6]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No sessions in this period",-1)])])):(o(),s("div",pe,[(o(!0),s(v,null,x(V.value,l=>(o(),s("div",{key:l.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors duration-150 cursor-default",style:p({height:`${Math.max(l.hours/R.value*160,2)}px`}),title:`${l.date}: ${_(j)(l.hours)}`},null,12,ye))),128))]))]),_:1})]),_:1}),d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[7]||(t[7]=[w("By Day of Week",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",ke,[(o(),s(v,null,x(7,l=>e("div",{key:l,class:"flex-1 flex flex-col items-center gap-1"},[e("div",{class:"w-full bg-muted animate-pulse rounded-t",style:p({height:`${30+l*8}%`})},null,4),t[8]||(t[8]=e("div",{class:"h-3 w-4 bg-muted animate-pulse rounded"},null,-1))])),64))])):z.value.length===0?(o(),s("div",we,[...t[9]||(t[9]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No sessions in this period",-1)])])):(o(),s("div",be,[(o(!0),s(v,null,x(z.value,l=>(o(),s("div",{key:l.dow,class:"flex-1 flex flex-col items-center gap-1 cursor-default",style:{height:"160px","justify-content":"flex-end"}},[e("div",{class:"w-full bg-primary/70 hover:bg-primary rounded-t transition-colors duration-150",style:p({height:`${Math.max(l.hours/G.value*128,2)}px`}),title:`${l.label}: ${_(j)(l.hours)}`},null,12,_e),e("span",$e,g(l.label.slice(0,2)),1)]))),128))]))]),_:1})]),_:1})]),e("div",je,[d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[10]||(t[10]=[w("Tool Usage",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",Me,[(o(),s(v,null,x(5,l=>e("div",{key:l,class:"flex items-center gap-2"},[e("div",{class:"h-3 rounded bg-muted animate-pulse",style:p({width:`${40+l*10}px`})},null,4),t[11]||(t[11]=e("div",{class:"flex-1 h-2 bg-muted animate-pulse rounded-full"},null,-1)),t[12]||(t[12]=e("div",{class:"h-3 w-8 bg-muted animate-pulse rounded"},null,-1))])),64))])):H.value.length===0?(o(),s("div",Ce,[...t[13]||(t[13]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No tool data yet",-1)])])):(o(),s("div",Be,[(o(!0),s(v,null,x(H.value.slice(0,8),l=>(o(),s("div",{key:l.tool,class:"flex items-center gap-2.5"},[e("span",De,g(l.tool),1),e("div",Ve,[e("div",{class:"h-full bg-primary/70 rounded-full transition-all duration-300",style:p({width:`${l.pct/I.value*100}%`})},null,4)]),e("span",ze,g((l.pct??0).toFixed(0))+"% ",1)]))),128))]))]),_:1})]),_:1}),d(C,{class:"border-border/60 bg-card panel-glow"},{default:i(()=>[d(F,{class:"pb-2"},{default:i(()=>[d(P,{class:"text-xs font-semibold text-muted-foreground uppercase tracking-widest"},{default:i(()=>[...t[14]||(t[14]=[w("Projects",-1)])]),_:1})]),_:1}),d(B,null,{default:i(()=>[c.value?(o(),s("div",He,[(o(),s(v,null,x(5,l=>e("div",{key:l,class:"space-y-1.5"},[e("div",Ne,[e("div",{class:"h-3 rounded bg-muted animate-pulse",style:p({width:`${80+l*15}px`})},null,4),t[15]||(t[15]=e("div",{class:"h-3 w-12 bg-muted animate-pulse rounded"},null,-1))]),t[16]||(t[16]=e("div",{class:"h-1.5 bg-muted animate-pulse rounded-full"},null,-1))])),64))])):S.value.length===0?(o(),s("div",Te,[...t[17]||(t[17]=[e("svg",{class:"h-8 w-8 text-muted-foreground/30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",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"})],-1),e("p",{class:"text-xs text-muted-foreground"},"No project data yet",-1)])])):(o(),s("div",Ae,[(o(!0),s(v,null,x(S.value.slice(0,8),l=>(o(),s("div",{key:l.project_id},[e("div",Fe,[e("span",Pe,g(l.display_name),1),e("span",Se,g(_(j)(l.total_hours)),1)]),l.progress_pct!==null?(o(),L(Y,{key:0,value:l.progress_pct,color:J(l.progress_pct)},null,8,["value","color"])):D("",!0)]))),128))]))]),_:1})]),_:1})])])}}});export{Ie as default}; diff --git a/src/static/assets/DevopsView-CXcxdKJq.js b/src/static/assets/DevopsView-CXcxdKJq.js deleted file mode 100644 index 3f888d7..0000000 --- a/src/static/assets/DevopsView-CXcxdKJq.js +++ /dev/null @@ -1 +0,0 @@ -import{d as S,x as $,c as a,a as s,i as r,n as x,w as l,j as u,e as d,o as n,k as m,t as i,F as _,l as p,p as y,f as I,r as z,m as A,K as v}from"./index-yrXqsixb.js";import{u as j}from"./devops-C_7zqRan.js";import{_ as k,a as h}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{a as D,_ as V}from"./CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js";import{_ as B}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{_ as b}from"./utils-D_0J15Md.js";const L={class:"p-6 space-y-6"},W={class:"flex items-center justify-between gap-4 flex-wrap"},F={class:"flex items-center gap-2"},R={key:0,class:"flex items-center gap-2 text-sm text-muted-foreground"},E={key:1,class:"flex items-center gap-3"},K={class:"text-sm text-foreground"},O={key:0,class:"text-xs text-muted-foreground ml-2"},G={key:2,class:"flex items-center gap-3"},M={key:3,class:"text-xs text-destructive mt-2"},T={class:"flex items-center justify-between gap-3 flex-wrap"},q={class:"flex items-center rounded-lg border border-border overflow-hidden bg-muted/30"},H=["onClick"],J={key:0,class:"flex items-center justify-center py-8"},P={key:1,class:"text-center py-8 text-sm text-muted-foreground"},Q={key:2,class:"space-y-1"},U={class:"text-xs font-mono text-muted-foreground w-10 shrink-0"},X={class:"flex-1 min-w-0"},Y={class:"text-sm text-foreground truncate"},Z={class:"text-xs text-muted-foreground"},tt=["href"],lt=S({__name:"DevopsView",setup(et){const w=I(),t=j(),c=z("All");$(async()=>{await t.fetchIntegration(),t.integration&&await t.fetchWorkItems()});const f=A(()=>c.value==="All"?t.workItems:t.workItems.filter(g=>g.state===c.value));async function C(){try{await t.sync(),v.success("Sync complete"),await t.fetchWorkItems()}catch{v.error(t.error??"Sync failed")}}return(g,e)=>(n(),a("div",L,[s("div",W,[e[2]||(e[2]=s("h2",{class:"text-lg font-semibold text-foreground"},"Azure DevOps",-1)),s("div",F,[r(t).integration?(n(),x(B,{key:0,variant:"outline",size:"sm",loading:r(t).syncing,onClick:C},{default:l(()=>[...e[1]||(e[1]=[m(" Sync Now ",-1)])]),_:1},8,["loading"])):u("",!0)])]),d(k,null,{default:l(()=>[d(h,{class:"pt-4"},{default:l(()=>{var o;return[r(t).loading&&!r(t).integration?(n(),a("div",R,[d(b,{size:"sm"}),e[3]||(e[3]=s("span",null,"Loading...",-1))])):r(t).integration?(n(),a("div",E,[e[6]||(e[6]=s("div",{class:"h-2 w-2 rounded-full bg-[hsl(var(--success))]"},null,-1)),s("span",K,[e[4]||(e[4]=m(" Connected to ",-1)),s("strong",null,i(r(t).integration.organization),1),e[5]||(e[5]=m(" / ",-1)),s("strong",null,i(r(t).integration.project),1)]),r(t).integration.last_synced_at?(n(),a("span",O," Last synced: "+i(new Date(r(t).integration.last_synced_at).toLocaleString()),1)):u("",!0)])):(n(),a("div",G,[e[7]||(e[7]=s("div",{class:"h-2 w-2 rounded-full bg-muted-foreground"},null,-1)),e[8]||(e[8]=s("span",{class:"text-sm text-muted-foreground"},"Not connected.",-1)),s("button",{class:"text-sm text-primary hover:underline",onClick:e[0]||(e[0]=N=>r(w).push("/settings"))}," Go to Settings to connect ")])),(o=r(t).integration)!=null&&o.last_sync_error?(n(),a("p",M," Error: "+i(r(t).integration.last_sync_error),1)):u("",!0)]}),_:1})]),_:1}),r(t).integration?(n(),x(k,{key:0},{default:l(()=>[d(V,{class:"pb-2"},{default:l(()=>[s("div",T,[d(D,{class:"text-sm"},{default:l(()=>[...e[9]||(e[9]=[m("Work Items",-1)])]),_:1}),s("div",q,[(n(),a(_,null,p(["All","Active","Resolved","Closed"],o=>s("button",{key:o,class:y(["px-3 py-1 text-xs font-medium transition-colors",c.value===o?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted/50"]),onClick:N=>c.value=o},i(o),11,H)),64))])])]),_:1}),d(h,null,{default:l(()=>[r(t).loading?(n(),a("div",J,[d(b,{size:"md",class:"text-primary"})])):f.value.length===0?(n(),a("div",P," No work items found ")):(n(),a("div",Q,[(n(!0),a(_,null,p(f.value,o=>(n(),a("div",{key:o.id,class:"flex items-center gap-3 px-3 py-2.5 rounded-lg hover:bg-muted/30 transition-colors"},[s("span",U,"#"+i(o.ado_id),1),s("div",X,[s("p",Y,i(o.title),1),s("p",Z,i(o.type),1)]),s("span",{class:y(["text-xs px-2 py-0.5 rounded-full shrink-0",o.state==="Active"?"bg-blue-500/10 text-blue-400":o.state==="Resolved"?"bg-green-500/10 text-green-400":(o.state==="Closed","bg-muted text-muted-foreground")])},i(o.state),3),o.url?(n(),a("a",{key:0,href:o.url,target:"_blank",class:"text-xs text-primary hover:underline shrink-0"}," Open → ",8,tt)):u("",!0)]))),128))]))]),_:1})]),_:1})):u("",!0)]))}});export{lt as default}; diff --git a/src/static/assets/DevopsView-L2Z-AJUn.js b/src/static/assets/DevopsView-L2Z-AJUn.js new file mode 100644 index 0000000..97311ff --- /dev/null +++ b/src/static/assets/DevopsView-L2Z-AJUn.js @@ -0,0 +1 @@ +import{d as S,v as $,c as a,a as s,h as r,k as x,w as l,i as u,e as d,o as n,p as m,t as i,F as p,r as _,n as y,f as I,q as z,j as A,K as v}from"./index-DzSm5_bv.js";import{u as j}from"./devops-S5lsRUq3.js";import{_ as k,a as h}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{a as D,_ as V}from"./CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js";import{_ as B}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{_ as b}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import"./utils-7WVCegLb.js";const L={class:"p-6 space-y-6"},W={class:"flex items-center justify-between gap-4 flex-wrap"},F={class:"flex items-center gap-2"},R={key:0,class:"flex items-center gap-2 text-sm text-muted-foreground"},E={key:1,class:"flex items-center gap-3"},K={class:"text-sm text-foreground"},O={key:0,class:"text-xs text-muted-foreground ml-2"},q={key:2,class:"flex items-center gap-3"},G={key:3,class:"text-xs text-destructive mt-2"},M={class:"flex items-center justify-between gap-3 flex-wrap"},T={class:"flex items-center rounded-lg border border-border overflow-hidden bg-muted/30"},H=["onClick"],J={key:0,class:"flex items-center justify-center py-8"},P={key:1,class:"text-center py-8 text-sm text-muted-foreground"},Q={key:2,class:"space-y-1"},U={class:"text-xs font-mono text-muted-foreground w-10 shrink-0"},X={class:"flex-1 min-w-0"},Y={class:"text-sm text-foreground truncate"},Z={class:"text-xs text-muted-foreground"},tt=["href"],dt=S({__name:"DevopsView",setup(et){const w=I(),t=j(),c=z("All");$(async()=>{await t.fetchIntegration(),t.integration&&await t.fetchWorkItems()});const f=A(()=>c.value==="All"?t.workItems:t.workItems.filter(g=>g.state===c.value));async function C(){try{await t.sync(),v.success("Sync complete"),await t.fetchWorkItems()}catch{v.error(t.error??"Sync failed")}}return(g,e)=>(n(),a("div",L,[s("div",W,[e[2]||(e[2]=s("h2",{class:"text-lg font-semibold text-foreground"},"Azure DevOps",-1)),s("div",F,[r(t).integration?(n(),x(B,{key:0,variant:"outline",size:"sm",loading:r(t).syncing,onClick:C},{default:l(()=>[...e[1]||(e[1]=[m(" Sync Now ",-1)])]),_:1},8,["loading"])):u("",!0)])]),d(k,null,{default:l(()=>[d(h,{class:"pt-4"},{default:l(()=>{var o;return[r(t).loading&&!r(t).integration?(n(),a("div",R,[d(b,{size:"sm"}),e[3]||(e[3]=s("span",null,"Loading...",-1))])):r(t).integration?(n(),a("div",E,[e[6]||(e[6]=s("div",{class:"h-2 w-2 rounded-full bg-[hsl(var(--success))]"},null,-1)),s("span",K,[e[4]||(e[4]=m(" Connected to ",-1)),s("strong",null,i(r(t).integration.organization),1),e[5]||(e[5]=m(" / ",-1)),s("strong",null,i(r(t).integration.project),1)]),r(t).integration.last_synced_at?(n(),a("span",O," Last synced: "+i(new Date(r(t).integration.last_synced_at).toLocaleString()),1)):u("",!0)])):(n(),a("div",q,[e[7]||(e[7]=s("div",{class:"h-2 w-2 rounded-full bg-muted-foreground"},null,-1)),e[8]||(e[8]=s("span",{class:"text-sm text-muted-foreground"},"Not connected.",-1)),s("button",{class:"text-sm text-primary hover:underline",onClick:e[0]||(e[0]=N=>r(w).push("/settings"))}," Go to Settings to connect ")])),(o=r(t).integration)!=null&&o.last_sync_error?(n(),a("p",G," Error: "+i(r(t).integration.last_sync_error),1)):u("",!0)]}),_:1})]),_:1}),r(t).integration?(n(),x(k,{key:0},{default:l(()=>[d(V,{class:"pb-2"},{default:l(()=>[s("div",M,[d(D,{class:"text-sm"},{default:l(()=>[...e[9]||(e[9]=[m("Work Items",-1)])]),_:1}),s("div",T,[(n(),a(p,null,_(["All","Active","Resolved","Closed"],o=>s("button",{key:o,class:y(["px-3 py-1 text-xs font-medium transition-colors",c.value===o?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted/50"]),onClick:N=>c.value=o},i(o),11,H)),64))])])]),_:1}),d(h,null,{default:l(()=>[r(t).loading?(n(),a("div",J,[d(b,{size:"md",class:"text-primary"})])):f.value.length===0?(n(),a("div",P," No work items found ")):(n(),a("div",Q,[(n(!0),a(p,null,_(f.value,o=>(n(),a("div",{key:o.id,class:"flex items-center gap-3 px-3 py-2.5 rounded-lg hover:bg-muted/30 transition-colors"},[s("span",U,"#"+i(o.ado_id),1),s("div",X,[s("p",Y,i(o.title),1),s("p",Z,i(o.type),1)]),s("span",{class:y(["text-xs px-2 py-0.5 rounded-full shrink-0",o.state==="Active"?"bg-blue-500/10 text-blue-400":o.state==="Resolved"?"bg-green-500/10 text-green-400":(o.state==="Closed","bg-muted text-muted-foreground")])},i(o.state),3),o.url?(n(),a("a",{key:0,href:o.url,target:"_blank",class:"text-xs text-primary hover:underline shrink-0"}," Open → ",8,tt)):u("",!0)]))),128))]))]),_:1})]),_:1})):u("",!0)]))}});export{dt as default}; diff --git a/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js b/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js deleted file mode 100644 index 1720569..0000000 --- a/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js +++ /dev/null @@ -1 +0,0 @@ -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-yrXqsixb.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.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/Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js b/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js new file mode 100644 index 0000000..0cf956f --- /dev/null +++ b/src/static/assets/Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js @@ -0,0 +1 @@ +import{d as k,v as y,E as b,k as h,G as g,e as c,T as x,w as m,o as a,c as n,a as o,m as r,t as u,i,n as w}from"./index-DzSm5_bv.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";const C={key:0,class:"fixed inset-0 z-50 flex items-center justify-center p-4"},B=["aria-label"],E={key:0,class:"flex items-center justify-between p-6 pb-4"},j={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=k({__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 y(()=>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:m(()=>[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",E,[o("div",null,[r(t.$slots,"header",{},()=>[o("h2",j,u(e.title),1),e.description?(a(),n("p",z,u(e.description),1)):i("",!0)])]),c($,{variant:"ghost",size:"icon",class:"shrink-0",onClick:s[1]||(s[1]=v=>l("close"))},{default:m(()=>[...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-Bo0JoDsF.js b/src/static/assets/Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js similarity index 79% rename from src/static/assets/Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js rename to src/static/assets/Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js index a150a79..00de2a8 100644 --- a/src/static/assets/Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js +++ b/src/static/assets/Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js @@ -1 +1 @@ -import{c as i}from"./utils-D_0J15Md.js";import{d,c as s,p as u,i as m,o as r}from"./index-yrXqsixb.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-7WVCegLb.js";import{d,c as s,n as u,h as m,o as r}from"./index-DzSm5_bv.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:n}){const a=e,o=n;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",a.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-Buk66uDj.js b/src/static/assets/KeysView-Buk66uDj.js new file mode 100644 index 0000000..4fe25c9 --- /dev/null +++ b/src/static/assets/KeysView-Buk66uDj.js @@ -0,0 +1 @@ +import{a as b}from"./admin-DOjSzxjn.js";import{_ as K,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as v}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{_ as V}from"./Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js";import{_ as N}from"./Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js";import{_ as A}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{d as B,v as L,c as l,a as t,e as r,w as n,q as i,o as a,p,F as P,r as F,t as u,h as k,k as I,i as j,K as y}from"./index-DzSm5_bv.js";import{a as h}from"./utils-7WVCegLb.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"},q={class:"px-4 py-3 text-sm font-mono text-muted-foreground"},E={class:"px-4 py-3 text-xs text-muted-foreground"},H={class:"px-4 py-3 text-xs text-muted-foreground"},S={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"},re=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,F(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",q,u(s.prefix)+"...",1),t("td",E,u(k(h)(s.created_at)),1),t("td",H,u(s.last_used?k(h)(s.last_used):"Never"),1),t("td",S,[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?j("",!0):(a(),I(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{re as default}; diff --git a/src/static/assets/KeysView-gO6qeRwx.js b/src/static/assets/KeysView-gO6qeRwx.js deleted file mode 100644 index de345b3..0000000 --- a/src/static/assets/KeysView-gO6qeRwx.js +++ /dev/null @@ -1 +0,0 @@ -import{a as b}from"./admin-BRKJZipt.js";import{_ as K,a as $}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as v}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{_ as V}from"./Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js";import{_ as N}from"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import{_ as A,a as k}from"./utils-D_0J15Md.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-yrXqsixb.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-DXX4fst3.js b/src/static/assets/LiveView-DXX4fst3.js deleted file mode 100644 index fd8ed47..0000000 --- a/src/static/assets/LiveView-DXX4fst3.js +++ /dev/null @@ -1 +0,0 @@ -import{E as T,r as y,d as J,u as O,x as V,c as f,a as o,p as b,i,t as v,n as $,w as x,j as k,e as C,o as c,k as w,F as B,l as F,m as z}from"./index-yrXqsixb.js";import{_ as A,a as D}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as N}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import"./utils-D_0J15Md.js";function U(E){const e=y([]),l=y(!1),m=y(null);let s=null,r=null,u=!1;function p(){if(!u)try{s=new EventSource(E),s.onopen=()=>{l.value=!0,m.value=null},s.onmessage=n=>{try{const g=JSON.parse(n.data);e.value.push({type:"message",data:g}),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=()=>{l.value=!1,m.value="Connection lost, reconnecting...",s==null||s.close(),s=null,u||(r=setTimeout(()=>p(),5e3))}}catch{m.value="Failed to connect to event stream",u||(r=setTimeout(()=>p(),5e3))}}function _(){u=!0,r&&clearTimeout(r),s==null||s.close(),s=null,l.value=!1}function h(){e.value=[]}return T(()=>{_()}),{events:e,connected:l,error:m,connect:p,disconnect:_,clearEvents:h}}const I={class:"p-6 h-full flex flex-col"},R={class:"flex items-center gap-3 mb-4"},M={class:"flex items-center gap-2"},P={class:"text-xs text-muted-foreground"},W={key:0,class:"mb-4 text-xs text-amber-400 bg-amber-500/10 border border-amber-500/30 rounded px-3 py-2"},q={key:0,class:"flex items-center justify-center h-full text-sm text-muted-foreground"},G={key:1,class:"overflow-y-auto h-full font-mono text-xs"},H={class:"flex-1 min-w-0"},K={class:"flex items-center gap-2 flex-wrap"},Q={key:0,class:"text-muted-foreground"},X={class:"text-muted-foreground truncate mt-0.5"},se=J({__name:"LiveView",setup(E){const e=O(),l=e.getToken(),m=`/cc-dashboard/api/events${l?`?token=${encodeURIComponent(l)}`:""}`,{events:s,connected:r,error:u,connect:p,clearEvents:_}=U(m);V(()=>{e.isAuthenticated&&l&&p()});const h=z(()=>[...s.value].reverse().slice(0,100));function n(t){return t==="session_start"?"text-emerald-400":t==="session_end"?"text-amber-400":t==="activity"?"text-blue-400":"text-muted-foreground"}function g(t){return t==="session_start"?"▶":t==="session_end"?"■":t==="activity"?"●":"○"}function j(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 S(t){if(t&&typeof t=="object"){const a=t;return a.display_name||a.project_id||""}return""}return(t,a)=>(c(),f("div",I,[o("div",R,[a[2]||(a[2]=o("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Live Feed",-1)),o("div",M,[o("div",{class:b(["h-2 w-2 rounded-full",i(r)?"bg-emerald-500 animate-pulse":"bg-red-500"])},null,2),o("span",P,v(i(r)?"Connected":"Disconnected"),1)]),i(r)?k("",!0):(c(),$(N,{key:0,variant:"outline",size:"sm",onClick:i(p)},{default:x(()=>[...a[0]||(a[0]=[w(" Reconnect ",-1)])]),_:1},8,["onClick"])),C(N,{variant:"ghost",size:"sm",onClick:i(_)},{default:x(()=>[...a[1]||(a[1]=[w(" Clear ",-1)])]),_:1},8,["onClick"])]),i(u)&&!i(r)?(c(),f("div",W,v(i(u)),1)):k("",!0),C(A,{class:"flex-1 overflow-hidden"},{default:x(()=>[C(D,{class:"p-0 h-full"},{default:x(()=>[h.value.length===0?(c(),f("div",q,[...a[3]||(a[3]=[o("div",{class:"text-center"},[o("div",{class:"text-2xl mb-2"},"📡"),o("p",null,"Waiting for events..."),o("p",{class:"text-xs mt-1"},"Activity will appear here in real-time")],-1)])])):(c(),f("div",G,[(c(!0),f(B,null,F(h.value,(d,L)=>(c(),f("div",{key:L,class:"flex items-start gap-2 px-4 py-1.5 hover:bg-muted/50 border-b border-border/30"},[o("span",{class:b([n(d.type),"shrink-0 mt-0.5"])},v(g(d.type)),3),o("div",H,[o("div",K,[o("span",{class:b([n(d.type),"font-medium"])},v(d.type),3),S(d.data)?(c(),f("span",Q,v(S(d.data)),1)):k("",!0)]),o("p",X,v(j(d.data)),1)])]))),128))]))]),_:1})]),_:1})]))}});export{se as default}; diff --git a/src/static/assets/LiveView-Df9pKcnA.js b/src/static/assets/LiveView-Df9pKcnA.js new file mode 100644 index 0000000..7082d9e --- /dev/null +++ b/src/static/assets/LiveView-Df9pKcnA.js @@ -0,0 +1 @@ +import{E as T,q as y,d as J,u as O,v as V,c as f,a as o,n as b,h as l,t as v,k as $,w as x,i as k,e as C,o as c,p as w,F as B,r as F,j as z}from"./index-DzSm5_bv.js";import{_ as A,a as D}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as N}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import"./utils-7WVCegLb.js";import"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";function U(E){const e=y([]),i=y(!1),m=y(null);let s=null,r=null,u=!1;function p(){if(!u)try{s=new EventSource(E),s.onopen=()=>{i.value=!0,m.value=null},s.onmessage=n=>{try{const g=JSON.parse(n.data);e.value.push({type:"message",data:g}),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=()=>{i.value=!1,m.value="Connection lost, reconnecting...",s==null||s.close(),s=null,u||(r=setTimeout(()=>p(),5e3))}}catch{m.value="Failed to connect to event stream",u||(r=setTimeout(()=>p(),5e3))}}function _(){u=!0,r&&clearTimeout(r),s==null||s.close(),s=null,i.value=!1}function h(){e.value=[]}return T(()=>{_()}),{events:e,connected:i,error:m,connect:p,disconnect:_,clearEvents:h}}const I={class:"p-6 h-full flex flex-col"},R={class:"flex items-center gap-3 mb-4"},q={class:"flex items-center gap-2"},M={class:"text-xs text-muted-foreground"},P={key:0,class:"mb-4 text-xs text-amber-400 bg-amber-500/10 border border-amber-500/30 rounded px-3 py-2"},W={key:0,class:"flex items-center justify-center h-full text-sm text-muted-foreground"},G={key:1,class:"overflow-y-auto h-full font-mono text-xs"},H={class:"flex-1 min-w-0"},K={class:"flex items-center gap-2 flex-wrap"},Q={key:0,class:"text-muted-foreground"},X={class:"text-muted-foreground truncate mt-0.5"},ne=J({__name:"LiveView",setup(E){const e=O(),i=e.getToken(),m=`/cc-dashboard/api/events${i?`?token=${encodeURIComponent(i)}`:""}`,{events:s,connected:r,error:u,connect:p,clearEvents:_}=U(m);V(()=>{e.isAuthenticated&&i&&p()});const h=z(()=>[...s.value].reverse().slice(0,100));function n(t){return t==="session_start"?"text-emerald-400":t==="session_end"?"text-amber-400":t==="activity"?"text-blue-400":"text-muted-foreground"}function g(t){return t==="session_start"?"▶":t==="session_end"?"■":t==="activity"?"●":"○"}function j(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 S(t){if(t&&typeof t=="object"){const a=t;return a.display_name||a.project_id||""}return""}return(t,a)=>(c(),f("div",I,[o("div",R,[a[2]||(a[2]=o("h2",{class:"text-lg font-semibold text-foreground flex-1"},"Live Feed",-1)),o("div",q,[o("div",{class:b(["h-2 w-2 rounded-full",l(r)?"bg-emerald-500 animate-pulse":"bg-red-500"])},null,2),o("span",M,v(l(r)?"Connected":"Disconnected"),1)]),l(r)?k("",!0):(c(),$(N,{key:0,variant:"outline",size:"sm",onClick:l(p)},{default:x(()=>[...a[0]||(a[0]=[w(" Reconnect ",-1)])]),_:1},8,["onClick"])),C(N,{variant:"ghost",size:"sm",onClick:l(_)},{default:x(()=>[...a[1]||(a[1]=[w(" Clear ",-1)])]),_:1},8,["onClick"])]),l(u)&&!l(r)?(c(),f("div",P,v(l(u)),1)):k("",!0),C(A,{class:"flex-1 overflow-hidden"},{default:x(()=>[C(D,{class:"p-0 h-full"},{default:x(()=>[h.value.length===0?(c(),f("div",W,[...a[3]||(a[3]=[o("div",{class:"text-center"},[o("div",{class:"text-2xl mb-2"},"📡"),o("p",null,"Waiting for events..."),o("p",{class:"text-xs mt-1"},"Activity will appear here in real-time")],-1)])])):(c(),f("div",G,[(c(!0),f(B,null,F(h.value,(d,L)=>(c(),f("div",{key:L,class:"flex items-start gap-2 px-4 py-1.5 hover:bg-muted/50 border-b border-border/30"},[o("span",{class:b([n(d.type),"shrink-0 mt-0.5"])},v(g(d.type)),3),o("div",H,[o("div",K,[o("span",{class:b([n(d.type),"font-medium"])},v(d.type),3),S(d.data)?(c(),f("span",Q,v(S(d.data)),1)):k("",!0)]),o("p",X,v(j(d.data)),1)])]))),128))]))]),_:1})]),_:1})]))}});export{ne as default}; diff --git a/src/static/assets/LoginView-Behmy84N.js b/src/static/assets/LoginView-Behmy84N.js deleted file mode 100644 index 3e7c795..0000000 --- a/src/static/assets/LoginView-Behmy84N.js +++ /dev/null @@ -1 +0,0 @@ -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-yrXqsixb.js";import{_ as S}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{_ as p}from"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import{_ as N,a as j}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import"./utils-D_0J15Md.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/LoginView-DzMVaLbC.js b/src/static/assets/LoginView-DzMVaLbC.js new file mode 100644 index 0000000..8d829a3 --- /dev/null +++ b/src/static/assets/LoginView-DzMVaLbC.js @@ -0,0 +1 @@ +import{d as h,u as f,c as o,a as t,b as m,e as a,w as d,o as r,f as g,g as p,h as i,t as x,i as w}from"./index-DzSm5_bv.js";import{_ as y,a as b}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import"./utils-7WVCegLb.js";const v={class:"min-h-screen flex items-center justify-center bg-background p-4"},_={class:"w-full max-w-sm"},k={class:"space-y-4"},C={key:0,class:"rounded-md bg-destructive/10 border border-destructive/30 px-3 py-2 text-sm text-destructive"},B=["disabled"],V={key:0},S={key:1},M=h({__name:"LoginView",setup(F){const c=g(),l=p(),s=f();async function u(){try{await s.loginWithMicrosoft();const n=l.query.redirect;c.push(n??"/")}catch{}}return(n,e)=>(r(),o("div",v,[t("div",_,[e[2]||(e[2]=m('

CC Dashboard

Corporate Planning Hub

',1)),a(y,null,{default:d(()=>[a(b,{class:"pt-6"},{default:d(()=>[t("div",k,[i(s).error?(r(),o("div",C,x(i(s).error),1)):w("",!0),t("button",{type:"button",disabled:i(s).loading,class:"w-full flex items-center justify-center gap-3 rounded-md border border-border bg-white px-4 py-2.5 text-sm font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",onClick:u},[e[0]||(e[0]=t("svg",{class:"h-5 w-5 shrink-0",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[t("rect",{x:"1",y:"1",width:"9",height:"9",fill:"#F25022"}),t("rect",{x:"11",y:"1",width:"9",height:"9",fill:"#7FBA00"}),t("rect",{x:"1",y:"11",width:"9",height:"9",fill:"#00A4EF"}),t("rect",{x:"11",y:"11",width:"9",height:"9",fill:"#FFB900"})],-1)),i(s).loading?(r(),o("span",V,"Signing in…")):(r(),o("span",S,"Sign in with Microsoft"))],8,B),e[1]||(e[1]=t("p",{class:"text-center text-xs text-muted-foreground"}," Use your @oliver.agency account ",-1))])]),_:1})]),_:1})])]))}});export{M as default}; diff --git a/src/static/assets/PlannerView-DJPGnDPz.js b/src/static/assets/PlannerView-DJPGnDPz.js new file mode 100644 index 0000000..b77a58e --- /dev/null +++ b/src/static/assets/PlannerView-DJPGnDPz.js @@ -0,0 +1 @@ +import{u as N,_ as E}from"./TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js";import{d as T,o as a,c as r,a as t,n as P,t as p,F as _,r as V,z as A,i as h,e as v,w,p as L,h as D,B as M,j as F,x as H,C as U,k as K,q as b,v as q,s as I,K as g}from"./index-DzSm5_bv.js";import{_ as O}from"./Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js";import{f as S,i as B}from"./utils-7WVCegLb.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{_ as j}from"./Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js";import"./Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js";import"./devops-S5lsRUq3.js";import"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.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=T({__name:"TaskCard",props:{task:{},draggable:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:i}){const n=i,m=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],k=u=>["","Low","Medium","High","Critical","Blocker"][u]??"Unknown",f=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",f(s.task.priority)]),title:k(s.task.priority)},null,10,Q),t("div",R,[t("p",W,p(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})},p(l.name),5))),128))])):h("",!0),t("div",Y,[v(O,{variant:m(s.task.status),class:"text-xs py-0"},{default:w(()=>[L(p(s.task.status),1)]),_:1},8,["variant"]),s.task.estimate_hours?(a(),r("span",Z," ~"+p(D(S)(s.task.estimate_hours)),1)):h("",!0),s.task.actual_hours?(a(),r("span",ee,p(D(S)(s.task.actual_hours))+" actual ",1)):h("",!0),s.task.azure_work_item_id?(a(),r("span",te," #"+p(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=T({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:i}){const n=s,m=i,k=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}),f={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(k.value,(l,y)=>H((a(),r("div",{key:y},[t("div",le,[t("h3",re,p(f[y]),1),t("span",ie,p(l.length),1)]),t("div",de,[(a(!0),r(_,null,V(l,x=>(a(),K(oe,{key:x.id,task:x,draggable:"",onEdit:C=>m("edit",x),onComplete:C=>m("complete",x),onDelete:C=>m("delete",x)},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"},$e=T({__name:"PlannerView",setup(s){const i=N(),n=b(B(new Date)),m=b(!1),k=b(null),f=b("");q(()=>{i.fetchAll()}),I(n,()=>{i.fetchForDate(n.value)});const u=F(()=>f.value?i.tasks.filter(d=>{var e;return((e=d.project_id)==null?void 0:e.toLowerCase().includes(f.value.toLowerCase()))||d.title.toLowerCase().includes(f.value.toLowerCase())}):i.tasks);function o(){k.value=null,m.value=!0}function l(d){k.value=d,m.value=!0}async function y(d,e){try{if(k.value)await i.update(k.value.id,d),g.success("Task updated");else{const c=await i.create(d);e&&(c!=null&&c.id)&&await i.createBlock(c.id,e),g.success("Task created")}m.value=!1,i.fetchForDate(n.value)}catch{g.error("Failed to save task")}}async function x(d){try{await i.complete(d.id),g.success("Task completed")}catch{g.error("Failed to complete task")}}async function C(d){if(confirm(`Delete "${d.title}"?`))try{await i.remove(d.id),g.success("Task deleted")}catch{g.error("Failed to delete task")}}function z(d){const e=new Date(n.value);e.setDate(e.getDate()+d),n.value=B(e)}return(d,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,[v($,{variant:"outline",size:"sm",onClick:e[0]||(e[0]=c=>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}),v(j,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),type:"date",class:"h-8 w-36 text-xs"},null,8,["modelValue"]),v($,{variant:"outline",size:"sm",onClick:e[2]||(e[2]=c=>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}),v($,{variant:"outline",size:"sm",onClick:e[3]||(e[3]=c=>n.value=D(B)(new Date))},{default:w(()=>[...e[8]||(e[8]=[L("Today",-1)])]),_:1})]),v(j,{modelValue:f.value,"onUpdate:modelValue":e[4]||(e[4]=c=>f.value=c),placeholder:"Search tasks...",class:"h-8 w-40 text-xs"},null,8,["modelValue"]),v($,{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),L(" New Task ",-1)])]),_:1})]),v(ce,{tasks:u.value,loading:D(i).loading,onEdit:l,onComplete:x,onDelete:C},null,8,["tasks","loading"]),v(E,{open:m.value,task:k.value,"default-date":n.value,onClose:e[5]||(e[5]=c=>m.value=!1),onSave:y},null,8,["open","task","default-date"])]))}});export{$e as default}; diff --git a/src/static/assets/PlannerView-v43b0qQj.js b/src/static/assets/PlannerView-v43b0qQj.js deleted file mode 100644 index bd22fba..0000000 --- a/src/static/assets/PlannerView-v43b0qQj.js +++ /dev/null @@ -1 +0,0 @@ -import{u as N,_ as E}from"./TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js";import{d as T,o as a,c as r,a as t,p as A,t as p,F as _,l as V,A as P,j as h,e as v,w,k as L,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-yrXqsixb.js";import{_ as q}from"./Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js";import{f as S,i as B}from"./utils-D_0J15Md.js";import{_ as $}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{_ as j}from"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import"./Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js";import"./devops-C_7zqRan.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=T({__name:"TaskCard",props:{task:{},draggable:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:i}){const n=i,m=u=>({todo:"outline",doing:"default",done:"success",cancelled:"secondary"})[u],k=u=>["","Low","Medium","High","Critical","Blocker"][u]??"Unknown",f=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",f(s.task.priority)]),title:k(s.task.priority)},null,10,Q),t("div",R,[t("p",W,p(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})},p(l.name),5))),128))])):h("",!0),t("div",Y,[v(q,{variant:m(s.task.status),class:"text-xs py-0"},{default:w(()=>[L(p(s.task.status),1)]),_:1},8,["variant"]),s.task.estimate_hours?(a(),r("span",Z," ~"+p(D(S)(s.task.estimate_hours)),1)):h("",!0),s.task.actual_hours?(a(),r("span",ee,p(D(S)(s.task.actual_hours))+" actual ",1)):h("",!0),s.task.azure_work_item_id?(a(),r("span",te," #"+p(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=T({__name:"TaskList",props:{tasks:{},loading:{type:Boolean}},emits:["edit","complete","delete"],setup(s,{emit:i}){const n=s,m=i,k=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}),f={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(k.value,(l,y)=>H((a(),r("div",{key:y},[t("div",le,[t("h3",re,p(f[y]),1),t("span",ie,p(l.length),1)]),t("div",de,[(a(!0),r(_,null,V(l,x=>(a(),K(oe,{key:x.id,task:x,draggable:"",onEdit:C=>m("edit",x),onComplete:C=>m("complete",x),onDelete:C=>m("delete",x)},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=T({__name:"PlannerView",setup(s){const i=N(),n=b(B(new Date)),m=b(!1),k=b(null),f=b("");I(()=>{i.fetchAll()}),O(n,()=>{i.fetchForDate(n.value)});const u=F(()=>f.value?i.tasks.filter(d=>{var e;return((e=d.project_id)==null?void 0:e.toLowerCase().includes(f.value.toLowerCase()))||d.title.toLowerCase().includes(f.value.toLowerCase())}):i.tasks);function o(){k.value=null,m.value=!0}function l(d){k.value=d,m.value=!0}async function y(d,e){try{if(k.value)await i.update(k.value.id,d),g.success("Task updated");else{const c=await i.create(d);e&&(c!=null&&c.id)&&await i.createBlock(c.id,e),g.success("Task created")}m.value=!1,i.fetchForDate(n.value)}catch{g.error("Failed to save task")}}async function x(d){try{await i.complete(d.id),g.success("Task completed")}catch{g.error("Failed to complete task")}}async function C(d){if(confirm(`Delete "${d.title}"?`))try{await i.remove(d.id),g.success("Task deleted")}catch{g.error("Failed to delete task")}}function M(d){const e=new Date(n.value);e.setDate(e.getDate()+d),n.value=B(e)}return(d,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,[v($,{variant:"outline",size:"sm",onClick:e[0]||(e[0]=c=>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}),v(j,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=c=>n.value=c),type:"date",class:"h-8 w-36 text-xs"},null,8,["modelValue"]),v($,{variant:"outline",size:"sm",onClick:e[2]||(e[2]=c=>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}),v($,{variant:"outline",size:"sm",onClick:e[3]||(e[3]=c=>n.value=D(B)(new Date))},{default:w(()=>[...e[8]||(e[8]=[L("Today",-1)])]),_:1})]),v(j,{modelValue:f.value,"onUpdate:modelValue":e[4]||(e[4]=c=>f.value=c),placeholder:"Search tasks...",class:"h-8 w-40 text-xs"},null,8,["modelValue"]),v($,{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),L(" New Task ",-1)])]),_:1})]),v(ce,{tasks:u.value,loading:D(i).loading,onEdit:l,onComplete:x,onDelete:C},null,8,["tasks","loading"]),v(E,{open:m.value,task:k.value,"default-date":n.value,onClose:e[5]||(e[5]=c=>m.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-CI2N8P-o.js b/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js similarity index 81% rename from src/static/assets/Progress.vue_vue_type_script_setup_true_lang-CI2N8P-o.js rename to src/static/assets/Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js index e4adf4d..08293ae 100644 --- a/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-CI2N8P-o.js +++ b/src/static/assets/Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js @@ -1 +1 @@ -import{c as r}from"./utils-D_0J15Md.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-yrXqsixb.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-7WVCegLb.js";import{d as s,o as n,c as t,n as l,h as c,a as d,z as u}from"./index-DzSm5_bv.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-2QTgygyj.js b/src/static/assets/ProjectDetailView-2QTgygyj.js new file mode 100644 index 0000000..ab2572f --- /dev/null +++ b/src/static/assets/ProjectDetailView-2QTgygyj.js @@ -0,0 +1 @@ +import{d as L,u as T,v as F,c as s,e as r,F as x,a as e,t as i,h as d,i as _,w as n,g as M,f as P,q as w,o,p,r as h,z as S,n as R,j as q}from"./index-DzSm5_bv.js";import{d as E}from"./dashboard-uOtmhTNc.js";import{_ as v,a as y}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as g,a as k}from"./CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js";import{_ as G}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{f as j,b as N}from"./utils-7WVCegLb.js";const H={class:"p-6"},I={key:0,class:"flex items-center justify-center h-40"},O={class:"mb-6"},U={class:"flex items-start justify-between gap-4 flex-wrap"},J={class:"flex items-center gap-3 mb-1"},K={class:"text-xl font-bold text-foreground"},Q={key:0,class:"text-sm text-primary font-medium"},W={key:0,class:"mb-2"},X={class:"flex items-center gap-3 mt-1 flex-wrap"},Y={key:0,class:"text-sm text-muted-foreground"},Z={key:1,class:"text-xs bg-muted text-muted-foreground px-2 py-1 rounded"},tt=["href"],et={class:"text-right"},st={class:"text-2xl font-bold text-foreground"},ot={class:"h-32 flex items-end gap-px"},at=["title"],lt={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},rt={key:0,class:"text-sm text-muted-foreground"},nt={key:1,class:"space-y-1.5"},it=["title"],dt={class:"text-foreground shrink-0 ml-2"},ut={key:0,class:"text-sm text-muted-foreground"},ct={key:1,class:"space-y-2"},mt={class:"text-xs text-foreground w-24 truncate shrink-0"},_t={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},ft={class:"text-xs text-muted-foreground w-8 text-right shrink-0"},xt={key:0,class:"text-sm text-muted-foreground"},pt={key:1,class:"space-y-2"},ht={class:"flex-1 min-w-0"},vt={class:"text-xs font-medium text-foreground"},yt={class:"text-xs text-muted-foreground mt-0.5"},gt={key:0,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},kt={key:1,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},bt={class:"flex items-start gap-2 shrink-0"},wt={class:"text-right"},jt={class:"text-xs font-medium text-foreground"},$t={class:"text-xs text-muted-foreground"},Ct=["onClick"],zt={key:0,class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},St={key:1,class:"h-3.5 w-3.5 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},Nt={key:2,class:"text-center text-muted-foreground py-12"},Mt=L({__name:"ProjectDetailView",setup(At){const $=M(),A=P(),C=$.params.id,m=$.params.date,B=T(),l=w(null),b=w(!1),f=w(null);F(async()=>{b.value=!0;try{const u=m?{from:m,to:m}:void 0,a=await E.project(C,u);l.value=a.data}finally{b.value=!1}});const D=q(()=>{var u;return Math.max(...((u=l.value)==null?void 0:u.daily.map(a=>a.hours))??[1],1)});async function V(u){if(!f.value){f.value=u;try{const a=await fetch(`/cc-dashboard/api/dashboard/sessions/${u}/summarize`,{method:"POST",headers:{Authorization:`Bearer ${B.token}`}});if(a.ok){const t=await a.json();if(l.value){const c=l.value.sessions.findIndex(z=>z.id===u);c!==-1&&(l.value.sessions[c]={...l.value.sessions[c],ai_title:t.title,ai_result:t.result})}}}catch{}finally{f.value=null}}}return(u,a)=>(o(),s("div",H,[b.value?(o(),s("div",I,[r(G,{size:"lg",class:"text-primary"})])):l.value?(o(),s(x,{key:1},[e("div",O,[e("div",U,[e("div",null,[e("div",J,[e("h2",K,i(l.value.project.display_name),1),d(m)?(o(),s("span",Q,i(d(m)),1)):_("",!0)]),d(m)?(o(),s("div",W,[e("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:a[0]||(a[0]=t=>d(A).push({name:"project-detail",params:{id:d(C)}}))}," ← All time ")])):_("",!0),e("div",X,[l.value.project.client?(o(),s("span",Y,i(l.value.project.client),1)):_("",!0),l.value.project.job_number?(o(),s("span",Z,i(l.value.project.job_number),1)):_("",!0),l.value.project.repo_url?(o(),s("a",{key:2,href:l.value.project.repo_url,target:"_blank",class:"text-xs text-primary hover:underline"}," Repository → ",8,tt)):_("",!0)])]),e("div",et,[e("p",st,i(d(j)(l.value.daily.reduce((t,c)=>t+c.hours,0))),1),a[1]||(a[1]=e("p",{class:"text-xs text-muted-foreground"},"total hours",-1))])])]),r(v,{class:"mb-6"},{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[2]||(a[2]=[p("Daily Activity",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[e("div",ot,[(o(!0),s(x,null,h(l.value.daily,t=>(o(),s("div",{key:t.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${t.hours/D.value*100}%`}),title:`${t.date}: ${d(j)(t.hours)}`},null,12,at))),128))])]),_:1})]),_:1}),e("div",lt,[r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[3]||(a[3]=[p("Top Files",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.top_files.length?(o(),s("div",nt,[(o(!0),s(x,null,h(l.value.top_files.slice(0,10),t=>(o(),s("div",{key:t.file,class:"flex items-center justify-between text-xs"},[e("span",{class:"text-muted-foreground truncate max-w-[200px]",title:t.file},i(t.file.split("/").pop()),9,it),e("span",dt,i(t.count)+"×",1)]))),128))])):(o(),s("div",rt,"No data"))]),_:1})]),_:1}),r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[4]||(a[4]=[p("Tool Usage",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.top_tools.length?(o(),s("div",ct,[(o(!0),s(x,null,h(l.value.top_tools.slice(0,8),t=>(o(),s("div",{key:t.tool,class:"flex items-center gap-2"},[e("span",mt,i(t.tool),1),e("div",_t,[e("div",{class:"h-full bg-primary rounded-full",style:S({width:`${t.pct}%`})},null,4)]),e("span",ft,i((t.pct??0).toFixed(0))+"% ",1)]))),128))])):(o(),s("div",ut,"No data"))]),_:1})]),_:1})]),r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[5]||(a[5]=[p("Recent Sessions",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.sessions.length?(o(),s("div",pt,[(o(!0),s(x,null,h(l.value.sessions.slice(0,50),t=>{var c;return o(),s("div",{key:t.id,class:"flex items-start gap-3 py-2 border-b border-border last:border-0"},[e("div",ht,[e("p",vt,i(t.ai_title||((c=t.work_summary)==null?void 0:c.substring(0,80))||d(N)(t.start_at)),1),e("p",yt,i(d(N)(t.start_at)),1),t.ai_result?(o(),s("p",gt,i(t.ai_result),1)):t.work_summary&&t.ai_title?(o(),s("p",kt,i(t.work_summary),1)):_("",!0)]),e("div",bt,[e("div",wt,[e("p",jt,i(d(j)(t.active_hours)),1),e("p",$t,i(t.commits.length)+" commits",1)]),e("button",{class:R(["flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-primary transition-colors",{"opacity-50 cursor-not-allowed":f.value===t.id}]),title:"Generate AI summary",onClick:z=>V(t.id)},[f.value!==t.id?(o(),s("svg",zt,[...a[6]||(a[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)])])):(o(),s("svg",St,[...a[7]||(a[7]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])]))],10,Ct)])])}),128))])):(o(),s("div",xt,"No sessions"))]),_:1})]),_:1})],64)):(o(),s("div",Nt," Project not found "))]))}});export{Mt as default}; diff --git a/src/static/assets/ProjectDetailView-BejhakPZ.js b/src/static/assets/ProjectDetailView-BejhakPZ.js deleted file mode 100644 index 797efb5..0000000 --- a/src/static/assets/ProjectDetailView-BejhakPZ.js +++ /dev/null @@ -1 +0,0 @@ -import{d as L,u as T,x as F,c as s,e as r,F as x,a as e,t as i,i as d,j as _,w as n,g as M,f as P,r as w,o,k as p,l as h,A as S,p as R,m as E}from"./index-yrXqsixb.js";import{d as G}from"./dashboard-Bay5szWb.js";import{_ as v,a as y}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as g,a as k}from"./CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js";import{f as j,_ as H,b as A}from"./utils-D_0J15Md.js";const I={class:"p-6"},O={key:0,class:"flex items-center justify-center h-40"},U={class:"mb-6"},q={class:"flex items-start justify-between gap-4 flex-wrap"},J={class:"flex items-center gap-3 mb-1"},K={class:"text-xl font-bold text-foreground"},Q={key:0,class:"text-sm text-primary font-medium"},W={key:0,class:"mb-2"},X={class:"flex items-center gap-3 mt-1 flex-wrap"},Y={key:0,class:"text-sm text-muted-foreground"},Z={key:1,class:"text-xs bg-muted text-muted-foreground px-2 py-1 rounded"},tt=["href"],et={class:"text-right"},st={class:"text-2xl font-bold text-foreground"},ot={class:"h-32 flex items-end gap-px"},at=["title"],lt={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},rt={key:0,class:"text-sm text-muted-foreground"},nt={key:1,class:"space-y-1.5"},it=["title"],dt={class:"text-foreground shrink-0 ml-2"},ut={key:0,class:"text-sm text-muted-foreground"},ct={key:1,class:"space-y-2"},mt={class:"text-xs text-foreground w-24 truncate shrink-0"},_t={class:"flex-1 h-2 bg-secondary rounded-full overflow-hidden"},ft={class:"text-xs text-muted-foreground w-8 text-right shrink-0"},xt={key:0,class:"text-sm text-muted-foreground"},pt={key:1,class:"space-y-2"},ht={class:"flex-1 min-w-0"},vt={class:"text-xs font-medium text-foreground"},yt={class:"text-xs text-muted-foreground mt-0.5"},gt={key:0,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},kt={key:1,class:"text-xs text-muted-foreground mt-0.5 line-clamp-2"},bt={class:"flex items-start gap-2 shrink-0"},wt={class:"text-right"},jt={class:"text-xs font-medium text-foreground"},$t={class:"text-xs text-muted-foreground"},Ct=["onClick"],zt={key:0,class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},St={key:1,class:"h-3.5 w-3.5 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},At={key:2,class:"text-center text-muted-foreground py-12"},Ft=L({__name:"ProjectDetailView",setup(Nt){const $=M(),N=P(),C=$.params.id,m=$.params.date,B=T(),l=w(null),b=w(!1),f=w(null);F(async()=>{b.value=!0;try{const u=m?{from:m,to:m}:void 0,a=await G.project(C,u);l.value=a.data}finally{b.value=!1}});const D=E(()=>{var u;return Math.max(...((u=l.value)==null?void 0:u.daily.map(a=>a.hours))??[1],1)});async function V(u){if(!f.value){f.value=u;try{const a=await fetch(`/cc-dashboard/api/dashboard/sessions/${u}/summarize`,{method:"POST",headers:{Authorization:`Bearer ${B.token}`}});if(a.ok){const t=await a.json();if(l.value){const c=l.value.sessions.findIndex(z=>z.id===u);c!==-1&&(l.value.sessions[c]={...l.value.sessions[c],ai_title:t.title,ai_result:t.result})}}}catch{}finally{f.value=null}}}return(u,a)=>(o(),s("div",I,[b.value?(o(),s("div",O,[r(H,{size:"lg",class:"text-primary"})])):l.value?(o(),s(x,{key:1},[e("div",U,[e("div",q,[e("div",null,[e("div",J,[e("h2",K,i(l.value.project.display_name),1),d(m)?(o(),s("span",Q,i(d(m)),1)):_("",!0)]),d(m)?(o(),s("div",W,[e("button",{class:"text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:a[0]||(a[0]=t=>d(N).push({name:"project-detail",params:{id:d(C)}}))}," ← All time ")])):_("",!0),e("div",X,[l.value.project.client?(o(),s("span",Y,i(l.value.project.client),1)):_("",!0),l.value.project.job_number?(o(),s("span",Z,i(l.value.project.job_number),1)):_("",!0),l.value.project.repo_url?(o(),s("a",{key:2,href:l.value.project.repo_url,target:"_blank",class:"text-xs text-primary hover:underline"}," Repository → ",8,tt)):_("",!0)])]),e("div",et,[e("p",st,i(d(j)(l.value.daily.reduce((t,c)=>t+c.hours,0))),1),a[1]||(a[1]=e("p",{class:"text-xs text-muted-foreground"},"total hours",-1))])])]),r(v,{class:"mb-6"},{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[2]||(a[2]=[p("Daily Activity",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[e("div",ot,[(o(!0),s(x,null,h(l.value.daily,t=>(o(),s("div",{key:t.date,class:"flex-1 bg-primary/70 hover:bg-primary rounded-t transition-colors",style:S({height:`${t.hours/D.value*100}%`}),title:`${t.date}: ${d(j)(t.hours)}`},null,12,at))),128))])]),_:1})]),_:1}),e("div",lt,[r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[3]||(a[3]=[p("Top Files",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.top_files.length?(o(),s("div",nt,[(o(!0),s(x,null,h(l.value.top_files.slice(0,10),t=>(o(),s("div",{key:t.file,class:"flex items-center justify-between text-xs"},[e("span",{class:"text-muted-foreground truncate max-w-[200px]",title:t.file},i(t.file.split("/").pop()),9,it),e("span",dt,i(t.count)+"×",1)]))),128))])):(o(),s("div",rt,"No data"))]),_:1})]),_:1}),r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[4]||(a[4]=[p("Tool Usage",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.top_tools.length?(o(),s("div",ct,[(o(!0),s(x,null,h(l.value.top_tools.slice(0,8),t=>(o(),s("div",{key:t.tool,class:"flex items-center gap-2"},[e("span",mt,i(t.tool),1),e("div",_t,[e("div",{class:"h-full bg-primary rounded-full",style:S({width:`${t.pct}%`})},null,4)]),e("span",ft,i((t.pct??0).toFixed(0))+"% ",1)]))),128))])):(o(),s("div",ut,"No data"))]),_:1})]),_:1})]),r(v,null,{default:n(()=>[r(g,{class:"pb-2"},{default:n(()=>[r(k,{class:"text-sm"},{default:n(()=>[...a[5]||(a[5]=[p("Recent Sessions",-1)])]),_:1})]),_:1}),r(y,null,{default:n(()=>[l.value.sessions.length?(o(),s("div",pt,[(o(!0),s(x,null,h(l.value.sessions.slice(0,50),t=>{var c;return o(),s("div",{key:t.id,class:"flex items-start gap-3 py-2 border-b border-border last:border-0"},[e("div",ht,[e("p",vt,i(t.ai_title||((c=t.work_summary)==null?void 0:c.substring(0,80))||d(A)(t.start_at)),1),e("p",yt,i(d(A)(t.start_at)),1),t.ai_result?(o(),s("p",gt,i(t.ai_result),1)):t.work_summary&&t.ai_title?(o(),s("p",kt,i(t.work_summary),1)):_("",!0)]),e("div",bt,[e("div",wt,[e("p",jt,i(d(j)(t.active_hours)),1),e("p",$t,i(t.commits.length)+" commits",1)]),e("button",{class:R(["flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-primary transition-colors",{"opacity-50 cursor-not-allowed":f.value===t.id}]),title:"Generate AI summary",onClick:z=>V(t.id)},[f.value!==t.id?(o(),s("svg",zt,[...a[6]||(a[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",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"},null,-1)])])):(o(),s("svg",St,[...a[7]||(a[7]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])]))],10,Ct)])])}),128))])):(o(),s("div",xt,"No sessions"))]),_:1})]),_:1})],64)):(o(),s("div",At," Project not found "))]))}});export{Ft as default}; diff --git a/src/static/assets/ProjectsView-BncIuojQ.js b/src/static/assets/ProjectsView-BncIuojQ.js deleted file mode 100644 index 8780f4d..0000000 --- a/src/static/assets/ProjectsView-BncIuojQ.js +++ /dev/null @@ -1 +0,0 @@ -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-yrXqsixb.js";import{d as w}from"./dashboard-Bay5szWb.js";import{a as C,_ as $}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as B}from"./Progress.vue_vue_type_script_setup_true_lang-CI2N8P-o.js";import{_ as N,f as V,a as D}from"./utils-D_0J15Md.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??0).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/ProjectsView-VxSshwHq.js b/src/static/assets/ProjectsView-VxSshwHq.js new file mode 100644 index 0000000..9d28a6c --- /dev/null +++ b/src/static/assets/ProjectsView-VxSshwHq.js @@ -0,0 +1 @@ +import{d as p,v as g,c as r,a as s,e as d,F as v,r as y,q as _,o,k as h,w as f,t as a,i,h as u,n as b,f as k}from"./index-DzSm5_bv.js";import{d as w}from"./dashboard-uOtmhTNc.js";import{a as C,_ as $}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as B}from"./Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js";import{_ as N}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{f as V,a as D}from"./utils-7WVCegLb.js";const F={class:"p-6"},z={key:0,class:"flex items-center justify-center h-40"},L={key:1,class:"text-center text-muted-foreground py-12"},P={key:2,class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4"},S={class:"flex items-start justify-between gap-2 mb-3"},j={class:"min-w-0"},q={class:"font-semibold text-sm text-foreground truncate"},A={key:0,class:"text-xs text-muted-foreground truncate"},E={key:0,class:"text-xs bg-muted text-muted-foreground px-1.5 py-0.5 rounded shrink-0"},M={class:"space-y-1.5"},R={class:"flex items-center justify-between text-xs"},T={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"},et=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",z,[d(N,{size:"lg",class:"text-primary"})])):l.value.length===0?(o(),r("div",L," No projects found ")):(o(),r("div",P,[(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",S,[s("div",j,[s("p",q,a(t.display_name),1),t.client?(o(),r("p",A,a(t.client),1)):i("",!0)]),t.job_number?(o(),r("span",E,a(t.job_number),1)):i("",!0)]),s("div",M,[s("div",R,[e[0]||(e[0]=s("span",{class:"text-muted-foreground"},"Total hours",-1)),s("span",T,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??0).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{et as default}; diff --git a/src/static/assets/ReportsView-B3ORTUxG.js b/src/static/assets/ReportsView-Dgj4QJox.js similarity index 90% rename from src/static/assets/ReportsView-B3ORTUxG.js rename to src/static/assets/ReportsView-Dgj4QJox.js index 10f426d..4f144ce 100644 --- a/src/static/assets/ReportsView-B3ORTUxG.js +++ b/src/static/assets/ReportsView-Dgj4QJox.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,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-yrXqsixb.js";import{a as Qe,_ as je}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as fe}from"./Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js";import{_ as Ne}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{_ as Oe,a as He,i as Fe}from"./utils-D_0J15Md.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,v as qe,c as z,a as x,n as U,e as P,w as I,F as Ze,r as Pe,q as A,o as $,p as G,k as pe,t as W,h as De,i as he,K as ue,_ as Me}from"./index-DzSm5_bv.js";import{a as Qe,_ as Ne}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as fe}from"./Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js";import{_ as je}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{_ as Oe}from"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";import{a as He,i as Fe}from"./utils-7WVCegLb.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,` @@ -13,7 +13,7 @@ var Ce=Object.defineProperty;var ae=a=>{throw TypeError(a)};var Ee=(a,t,e)=>t in `,t=t.substring(F.length+1),h=p.slice(f)}}r.loose||(u?r.loose=!0:/\n *\n *$/.test(l)&&(u=!0));let b=null,T;this.options.gfm&&(b=/^\[[ xX]\] /.exec(o),b&&(T=b[0]!=="[ ] ",o=o.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:l,task:!!b,checked:T,loose:!1,text:o,tokens:[]}),r.raw+=l}r.items[r.items.length-1].raw=l.trimEnd(),r.items[r.items.length-1].text=o.trimEnd(),r.raw=r.raw.trimEnd();for(let c=0;cf.type==="space"),p=h.length>0&&h.some(f=>/\n.*\n/.test(f.raw));r.loose=p}if(r.loose)for(let c=0;c$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:i,title:r}}}table(t){const e=this.rules.block.table.exec(t);if(!e||!/[:|]/.test(e[2]))return;const n=xe(e[1]),i=e[2].replace(/^\||\| *$/g,"").split("|"),r=e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split(` `):[],s={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===i.length){for(const l of i)/^ *-+: *$/.test(l)?s.align.push("right"):/^ *:-+: *$/.test(l)?s.align.push("center"):/^ *:-+ *$/.test(l)?s.align.push("left"):s.align.push(null);for(const l of n)s.header.push({text:l,tokens:this.lexer.inline(l)});for(const l of r)s.rows.push(xe(l,s.header.length).map(o=>({text:o,tokens:this.lexer.inline(o)})));return s}}lheading(t){const e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){const e=this.rules.block.paragraph.exec(t);if(e){const n=e[1].charAt(e[1].length-1)===` `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){const e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){const e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:m(e[1])}}tag(t){const e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const n=e[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;const s=D(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{const s=Je(e[2],"()");if(s>-1){const o=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,o).trim(),e[3]=""}}let i=e[2],r="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],r=s[3])}else r=e[3]?e[3].slice(1,-1):"";return i=i.trim(),/^$/.test(n)?i=i.slice(1):i=i.slice(1,-1)),me(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){const i=(n[2]||n[1]).replace(/\s+/g," "),r=e[i.toLowerCase()];if(!r){const s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return me(n,r,n[0],this.lexer)}}emStrong(t,e,n=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const s=[...i[0]].length-1;let l,o,u=s,c=0;const h=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,e=e.slice(-1*t.length+s);(i=h.exec(e))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(o=[...l].length,i[3]||i[4]){u+=o;continue}else if((i[5]||i[6])&&s%3&&!((s+o)%3)){c+=o;continue}if(u-=o,u>0)continue;o=Math.min(o,o+u+c);const p=[...i[0]][0].length,f=t.slice(0,s+i.index+p+o);if(Math.min(s,o)%2){const b=f.slice(1,-1);return{type:"em",raw:f,text:b,tokens:this.lexer.inlineTokens(b)}}const _=f.slice(2,-2);return{type:"strong",raw:f,text:_,tokens:this.lexer.inlineTokens(_)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(/\n/g," ");const i=/[^ ]/.test(n),r=/^ /.test(n)&&/ $/.test(n);return i&&r&&(n=n.substring(1,n.length-1)),n=m(n,!0),{type:"codespan",raw:e[0],text:n}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){const e=this.rules.inline.autolink.exec(t);if(e){let n,i;return e[2]==="@"?(n=m(e[1]),i="mailto:"+n):(n=m(e[1]),i=n),{type:"link",raw:e[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(t){var n;let e;if(e=this.rules.inline.url.exec(t)){let i,r;if(e[2]==="@")i=m(e[0]),r="mailto:"+i;else{let s;do s=e[0],e[0]=((n=this.rules.inline._backpedal.exec(e[0]))==null?void 0:n[0])??"";while(s!==e[0]);i=m(e[0]),e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){const e=this.rules.inline.text.exec(t);if(e){let n;return this.lexer.state.inRawBlock?n=e[0]:n=m(e[0]),{type:"text",raw:e[0],text:n}}}}const et=/^(?: *(?:\n|$))+/,tt=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,nt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,B=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,st=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,_e=/(?:[*+-]|\d{1,9}[.)])/,Te=d(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,_e).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),Y=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,it=/^[^\n]+/,ee=/(?!\s*\])(?:\\.|[^\[\]\\])+/,rt=d(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",ee).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),lt=d(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,_e).getRegex(),O="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",te=/|$))/,ot=d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",te).replace("tag",O).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ze=d(Y).replace("hr",B).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O).getRegex(),at=d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ze).getRegex(),ne={blockquote:at,code:tt,def:rt,fences:nt,heading:st,hr:B,html:ot,lheading:Te,list:lt,newline:et,paragraph:ze,table:E,text:it},be=d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",B).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O).getRegex(),ct={...ne,table:be,paragraph:d(Y).replace("hr",B).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",be).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",O).getRegex()},pt={...ne,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",te).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(Y).replace("hr",B).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",Te).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Re=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ht=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ve=/^( {2,}|\\)\n(?!\s*$)/,ut=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,dt=d(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,q).getRegex(),kt=d("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,q).getRegex(),xt=d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,q).getRegex(),mt=d(/\\([punct])/,"gu").replace(/punct/g,q).getRegex(),bt=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),wt=d(te).replace("(?:-->|$)","-->").getRegex(),yt=d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",wt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),j=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,$t=d(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",j).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Se=d(/^!?\[(label)\]\[(ref)\]/).replace("label",j).replace("ref",ee).getRegex(),Ie=d(/^!?\[(ref)\](?:\[\])?/).replace("ref",ee).getRegex(),_t=d("reflink|nolink(?!\\()","g").replace("reflink",Se).replace("nolink",Ie).getRegex(),se={_backpedal:E,anyPunctuation:mt,autolink:bt,blockSkip:gt,br:ve,code:ht,del:E,emStrongLDelim:dt,emStrongRDelimAst:kt,emStrongRDelimUnd:xt,escape:Re,link:$t,nolink:Ie,punctuation:ft,reflink:Se,reflinkSearch:_t,tag:yt,text:ut,url:E},Tt={...se,link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",j).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",j).getRegex()},X={...se,escape:d(Re).replace("])","~|])").getRegex(),url:d(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Re=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ht=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ve=/^( {2,}|\\)\n(?!\s*$)/,ut=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,dt=d(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,q).getRegex(),kt=d("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,q).getRegex(),xt=d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,q).getRegex(),mt=d(/\\([punct])/,"gu").replace(/punct/g,q).getRegex(),bt=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),wt=d(te).replace("(?:-->|$)","-->").getRegex(),yt=d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",wt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),N=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,$t=d(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",N).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Se=d(/^!?\[(label)\]\[(ref)\]/).replace("label",N).replace("ref",ee).getRegex(),Ie=d(/^!?\[(ref)\](?:\[\])?/).replace("ref",ee).getRegex(),_t=d("reflink|nolink(?!\\()","g").replace("reflink",Se).replace("nolink",Ie).getRegex(),se={_backpedal:E,anyPunctuation:mt,autolink:bt,blockSkip:gt,br:ve,code:ht,del:E,emStrongLDelim:dt,emStrongRDelimAst:kt,emStrongRDelimUnd:xt,escape:Re,link:$t,nolink:Ie,punctuation:ft,reflink:Se,reflinkSearch:_t,tag:yt,text:ut,url:E},Tt={...se,link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",N).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",N).getRegex()},X={...se,escape:d(Re).replace("])","~|])").getRegex(),url:d(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\o+" ".repeat(u.length));let n,i,r,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(n=l.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))){if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length),n.raw.length===1&&e.length>0?e[e.length-1].raw+=` `:e.push(n);continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length),i=e[e.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` `+n.raw,i.text+=` @@ -23,7 +23,7 @@ var Ce=Object.defineProperty;var ae=a=>{throw TypeError(a)};var Ee=(a,t,e)=>t in `+n.raw,i.text+=` `+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(n),s=r.length!==t.length,t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length),i=e[e.length-1],i&&i.type==="text"?(i.raw+=` `+n.raw,i.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(n);continue}if(t){const l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,i,r,s=t,l,o,u;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(o||(u=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(n=c.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),i=e[e.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),i=e[e.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(n=this.tokenizer.emStrong(t,s,u)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),e.push(n);continue}if(r=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const h=t.slice(1);let p;this.options.extensions.startInline.forEach(f=>{p=f.call({lexer:this},h),typeof p=="number"&&p>=0&&(c=Math.min(c,p))}),c<1/0&&c>=0&&(r=t.substring(0,c+1))}if(n=this.tokenizer.inlineText(r)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(u=n.raw.slice(-1)),o=!0,i=e[e.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}}class N{constructor(t){k(this,"options");this.options=t||S}code(t,e,n){var r;const i=(r=(e||"").match(/^\S*/))==null?void 0:r[0];return t=t.replace(/\n$/,"")+` +`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):e.push(n);continue}if(t){const l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,i,r,s=t,l,o,u;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(o||(u=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(n=c.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),i=e[e.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),i=e[e.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(n=this.tokenizer.emStrong(t,s,u)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),e.push(n);continue}if(r=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const h=t.slice(1);let p;this.options.extensions.startInline.forEach(f=>{p=f.call({lexer:this},h),typeof p=="number"&&p>=0&&(c=Math.min(c,p))}),c<1/0&&c>=0&&(r=t.substring(0,c+1))}if(n=this.tokenizer.inlineText(r)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(u=n.raw.slice(-1)),o=!0,i=e[e.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):e.push(n);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}}class j{constructor(t){k(this,"options");this.options=t||S}code(t,e,n){var r;const i=(r=(e||"").match(/^\S*/))==null?void 0:r[0];return t=t.replace(/\n$/,"")+` `,i?'
'+(n?t:m(t,!0))+`
`:"
"+(n?t:m(t,!0))+`
`}blockquote(t){return`
@@ -41,6 +41,6 @@ ${t}
`}tablerow(t){return` ${t} `}tablecell(t,e){const n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` -`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return"
"}del(t){return`${t}`}link(t,e,n){const i=ke(t);if(i===null)return n;t=i;let r='
",r}image(t,e,n){const i=ke(t);if(i===null)return n;t=i;let r=`${n}0&&p.tokens[0].type==="paragraph"?(p.tokens[0].text=T+" "+p.tokens[0].text,p.tokens[0].tokens&&p.tokens[0].tokens.length>0&&p.tokens[0].tokens[0].type==="text"&&(p.tokens[0].tokens[0].text=T+" "+p.tokens[0].tokens[0].text)):p.tokens.unshift({type:"text",text:T+" "}):b+=T+" "}b+=this.parse(p.tokens,u),c+=this.renderer.listitem(b,_,!!f)}n+=this.renderer.list(c,l,o);continue}case"html":{const s=r;n+=this.renderer.html(s.text,s.block);continue}case"paragraph":{const s=r;n+=this.renderer.paragraph(this.parseInline(s.tokens));continue}case"text":{let s=r,l=s.tokens?this.parseInline(s.tokens):s.text;for(;i+1{const u=l[o].flat(1/0);n=n.concat(this.walkTokens(u,e))}):l.tokens&&(n=n.concat(this.walkTokens(l.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{const i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){const s=e.renderers[r.name];s?e.renderers[r.name]=function(...l){let o=r.renderer.apply(this,l);return o===!1&&(o=s.apply(this,l)),o}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const s=e[r.level];s?s.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),n.renderer){const r=this.defaults.renderer||new N(this.defaults);for(const s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(s==="options")continue;const l=s,o=n.renderer[l],u=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h||""}}i.renderer=r}if(n.tokenizer){const r=this.defaults.tokenizer||new Q(this.defaults);for(const s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;const l=s,o=n.tokenizer[l],u=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h}}i.tokenizer=r}if(n.hooks){const r=this.defaults.hooks||new L;for(const s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;const l=s,o=n.hooks[l],u=r[l];L.passThroughHooks.has(s)?r[l]=c=>{if(this.defaults.async)return Promise.resolve(o.call(r,c)).then(p=>u.call(r,p));const h=o.call(r,c);return u.call(r,h)}:r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h}}i.hooks=r}if(n.walkTokens){const r=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let o=[];return o.push(s.call(this,l)),r&&(o=o.concat(r.call(this,l))),o}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return w.lex(t,e??this.defaults)}parser(t,e){return y.parse(t,e??this.defaults)}}v=new WeakSet,K=function(t,e){return(n,i)=>{const r={...i},s={...this.defaults,...r};this.defaults.async===!0&&r.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);const l=Z(this,v,Ae).call(this,!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(o=>t(o,s)).then(o=>s.hooks?s.hooks.processAllTokens(o):o).then(o=>s.walkTokens?Promise.all(this.walkTokens(o,s.walkTokens)).then(()=>o):o).then(o=>e(o,s)).then(o=>s.hooks?s.hooks.postprocess(o):o).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let o=t(n,s);s.hooks&&(o=s.hooks.processAllTokens(o)),s.walkTokens&&this.walkTokens(o,s.walkTokens);let u=e(o,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(o){return l(o)}}},Ae=function(t,e){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,t){const i="

An error occurred:

"+m(n.message+"",!0)+"
";return e?Promise.resolve(i):i}if(e)return Promise.reject(n);throw n}};const R=new Rt;function g(a,t){return R.parse(a,t)}g.options=g.setOptions=function(a){return R.setOptions(a),g.defaults=R.defaults,we(g.defaults),g};g.getDefaults=J;g.defaults=S;g.use=function(...a){return R.use(...a),g.defaults=R.defaults,we(g.defaults),g};g.walkTokens=function(a,t){return R.walkTokens(a,t)};g.parseInline=R.parseInline;g.Parser=y;g.parser=y.parse;g.Renderer=N;g.TextRenderer=ie;g.Lexer=w;g.lexer=w.lex;g.Tokenizer=Q;g.Hooks=L;g.parse=g;g.options;g.setOptions;g.use;g.walkTokens;g.parseInline;y.parse;w.lex;const vt={class:"p-6"},St={class:"flex items-center gap-3 mb-6 flex-wrap"},It={class:"flex items-center gap-2"},At={class:"flex items-center rounded-md border border-border overflow-hidden"},Ct={key:0,class:"flex items-center justify-center h-20"},Et={key:1,class:"text-center text-muted-foreground py-12 text-sm"},Lt={key:2,class:"space-y-3"},Bt=["onClick"],qt={class:"flex items-center gap-2 flex-wrap"},Zt={class:"text-sm font-medium text-foreground"},Pt={class:"flex items-center gap-2 shrink-0"},Dt={class:"text-xs text-muted-foreground"},Mt={key:0,class:"mt-4 pt-4 border-t border-border"},Qt=["innerHTML"],jt=Be({__name:"ReportsView",setup(a){const t=A([]),e=A(!1),n=A(!1),i=A(null),r=A("daily");qe(()=>s());async function s(){e.value=!0;try{const c=await ge.list();t.value=c.data}finally{e.value=!1}}async function l(){n.value=!0;try{await ge.generate({type:r.value,period_date:Fe(new Date)}),ue.success("Report generated"),await s()}catch{ue.error("Failed to generate report")}finally{n.value=!1}}function o(c){i.value=i.value===c?null:c}function u(c){return g(c)}return(c,h)=>($(),z("div",vt,[x("div",St,[h[3]||(h[3]=x("h2",{class:"text-lg font-semibold text-foreground flex-1"},"AI Reports",-1)),x("div",It,[x("div",At,[x("button",{class:U(["px-3 py-1.5 text-xs font-medium transition-colors",r.value==="daily"?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"]),onClick:h[0]||(h[0]=p=>r.value="daily")},"Daily",2),x("button",{class:U(["px-3 py-1.5 text-xs font-medium transition-colors",r.value==="weekly"?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"]),onClick:h[1]||(h[1]=p=>r.value="weekly")},"Weekly",2)]),P(Ne,{size:"sm",loading:n.value,onClick:l},{default:I(()=>[...h[2]||(h[2]=[G(" Generate Now ",-1)])]),_:1},8,["loading"])])]),e.value?($(),z("div",Ct,[P(Oe,{class:"text-primary"})])):t.value.length===0?($(),z("div",Et," No reports generated yet ")):($(),z("div",Lt,[($(!0),z(Ze,null,Pe(t.value,p=>($(),pe(je,{key:p.id},{default:I(()=>[P(Qe,{class:"p-4"},{default:I(()=>[x("div",{class:"flex items-start justify-between gap-3 cursor-pointer",onClick:f=>o(p.id)},[x("div",qt,[P(fe,{variant:p.type==="daily"?"default":"secondary",class:"text-xs"},{default:I(()=>[G(W(p.type),1)]),_:2},1032,["variant"]),x("span",Zt,W(De(He)(p.period_date)),1),p.email_sent?($(),pe(fe,{key:0,variant:"success",class:"text-xs"},{default:I(()=>[...h[4]||(h[4]=[G(" Email sent ",-1)])]),_:1})):he("",!0)]),x("div",Pt,[x("span",Dt,W(new Date(p.generated_at).toLocaleString()),1),($(),z("svg",{class:U(["h-4 w-4 text-muted-foreground transition-transform",i.value===p.id?"rotate-180":""]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...h[5]||(h[5]=[x("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))])],8,Bt),i.value===p.id?($(),z("div",Mt,[x("div",{class:"prose prose-sm prose-invert max-w-none text-sm text-foreground",innerHTML:u(p.content_markdown)},null,8,Qt)])):he("",!0)]),_:2},1024)]),_:2},1024))),128))]))]))}}),Gt=Me(jt,[["__scopeId","data-v-f60763ad"]]);export{Gt as default}; +`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return"
"}del(t){return`${t}`}link(t,e,n){const i=ke(t);if(i===null)return n;t=i;let r='
",r}image(t,e,n){const i=ke(t);if(i===null)return n;t=i;let r=`${n}0&&p.tokens[0].type==="paragraph"?(p.tokens[0].text=T+" "+p.tokens[0].text,p.tokens[0].tokens&&p.tokens[0].tokens.length>0&&p.tokens[0].tokens[0].type==="text"&&(p.tokens[0].tokens[0].text=T+" "+p.tokens[0].tokens[0].text)):p.tokens.unshift({type:"text",text:T+" "}):b+=T+" "}b+=this.parse(p.tokens,u),c+=this.renderer.listitem(b,_,!!f)}n+=this.renderer.list(c,l,o);continue}case"html":{const s=r;n+=this.renderer.html(s.text,s.block);continue}case"paragraph":{const s=r;n+=this.renderer.paragraph(this.parseInline(s.tokens));continue}case"text":{let s=r,l=s.tokens?this.parseInline(s.tokens):s.text;for(;i+1{const u=l[o].flat(1/0);n=n.concat(this.walkTokens(u,e))}):l.tokens&&(n=n.concat(this.walkTokens(l.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{const i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){const s=e.renderers[r.name];s?e.renderers[r.name]=function(...l){let o=r.renderer.apply(this,l);return o===!1&&(o=s.apply(this,l)),o}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const s=e[r.level];s?s.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),n.renderer){const r=this.defaults.renderer||new j(this.defaults);for(const s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(s==="options")continue;const l=s,o=n.renderer[l],u=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h||""}}i.renderer=r}if(n.tokenizer){const r=this.defaults.tokenizer||new Q(this.defaults);for(const s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;const l=s,o=n.tokenizer[l],u=r[l];r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h}}i.tokenizer=r}if(n.hooks){const r=this.defaults.hooks||new L;for(const s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;const l=s,o=n.hooks[l],u=r[l];L.passThroughHooks.has(s)?r[l]=c=>{if(this.defaults.async)return Promise.resolve(o.call(r,c)).then(p=>u.call(r,p));const h=o.call(r,c);return u.call(r,h)}:r[l]=(...c)=>{let h=o.apply(r,c);return h===!1&&(h=u.apply(r,c)),h}}i.hooks=r}if(n.walkTokens){const r=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let o=[];return o.push(s.call(this,l)),r&&(o=o.concat(r.call(this,l))),o}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return w.lex(t,e??this.defaults)}parser(t,e){return y.parse(t,e??this.defaults)}}v=new WeakSet,K=function(t,e){return(n,i)=>{const r={...i},s={...this.defaults,...r};this.defaults.async===!0&&r.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);const l=Z(this,v,Ae).call(this,!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(o=>t(o,s)).then(o=>s.hooks?s.hooks.processAllTokens(o):o).then(o=>s.walkTokens?Promise.all(this.walkTokens(o,s.walkTokens)).then(()=>o):o).then(o=>e(o,s)).then(o=>s.hooks?s.hooks.postprocess(o):o).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let o=t(n,s);s.hooks&&(o=s.hooks.processAllTokens(o)),s.walkTokens&&this.walkTokens(o,s.walkTokens);let u=e(o,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(o){return l(o)}}},Ae=function(t,e){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t){const i="

An error occurred:

"+m(n.message+"",!0)+"
";return e?Promise.resolve(i):i}if(e)return Promise.reject(n);throw n}};const R=new Rt;function g(a,t){return R.parse(a,t)}g.options=g.setOptions=function(a){return R.setOptions(a),g.defaults=R.defaults,we(g.defaults),g};g.getDefaults=J;g.defaults=S;g.use=function(...a){return R.use(...a),g.defaults=R.defaults,we(g.defaults),g};g.walkTokens=function(a,t){return R.walkTokens(a,t)};g.parseInline=R.parseInline;g.Parser=y;g.parser=y.parse;g.Renderer=j;g.TextRenderer=ie;g.Lexer=w;g.lexer=w.lex;g.Tokenizer=Q;g.Hooks=L;g.parse=g;g.options;g.setOptions;g.use;g.walkTokens;g.parseInline;y.parse;w.lex;const vt={class:"p-6"},St={class:"flex items-center gap-3 mb-6 flex-wrap"},It={class:"flex items-center gap-2"},At={class:"flex items-center rounded-md border border-border overflow-hidden"},Ct={key:0,class:"flex items-center justify-center h-20"},Et={key:1,class:"text-center text-muted-foreground py-12 text-sm"},Lt={key:2,class:"space-y-3"},Bt=["onClick"],qt={class:"flex items-center gap-2 flex-wrap"},Zt={class:"text-sm font-medium text-foreground"},Pt={class:"flex items-center gap-2 shrink-0"},Dt={class:"text-xs text-muted-foreground"},Mt={key:0,class:"mt-4 pt-4 border-t border-border"},Qt=["innerHTML"],Nt=Be({__name:"ReportsView",setup(a){const t=A([]),e=A(!1),n=A(!1),i=A(null),r=A("daily");qe(()=>s());async function s(){e.value=!0;try{const c=await ge.list();t.value=c.data}finally{e.value=!1}}async function l(){n.value=!0;try{await ge.generate({type:r.value,period_date:Fe(new Date)}),ue.success("Report generated"),await s()}catch{ue.error("Failed to generate report")}finally{n.value=!1}}function o(c){i.value=i.value===c?null:c}function u(c){return g(c)}return(c,h)=>($(),z("div",vt,[x("div",St,[h[3]||(h[3]=x("h2",{class:"text-lg font-semibold text-foreground flex-1"},"AI Reports",-1)),x("div",It,[x("div",At,[x("button",{class:U(["px-3 py-1.5 text-xs font-medium transition-colors",r.value==="daily"?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"]),onClick:h[0]||(h[0]=p=>r.value="daily")},"Daily",2),x("button",{class:U(["px-3 py-1.5 text-xs font-medium transition-colors",r.value==="weekly"?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted"]),onClick:h[1]||(h[1]=p=>r.value="weekly")},"Weekly",2)]),P(je,{size:"sm",loading:n.value,onClick:l},{default:I(()=>[...h[2]||(h[2]=[G(" Generate Now ",-1)])]),_:1},8,["loading"])])]),e.value?($(),z("div",Ct,[P(Oe,{class:"text-primary"})])):t.value.length===0?($(),z("div",Et," No reports generated yet ")):($(),z("div",Lt,[($(!0),z(Ze,null,Pe(t.value,p=>($(),pe(Ne,{key:p.id},{default:I(()=>[P(Qe,{class:"p-4"},{default:I(()=>[x("div",{class:"flex items-start justify-between gap-3 cursor-pointer",onClick:f=>o(p.id)},[x("div",qt,[P(fe,{variant:p.type==="daily"?"default":"secondary",class:"text-xs"},{default:I(()=>[G(W(p.type),1)]),_:2},1032,["variant"]),x("span",Zt,W(De(He)(p.period_date)),1),p.email_sent?($(),pe(fe,{key:0,variant:"success",class:"text-xs"},{default:I(()=>[...h[4]||(h[4]=[G(" Email sent ",-1)])]),_:1})):he("",!0)]),x("div",Pt,[x("span",Dt,W(new Date(p.generated_at).toLocaleString()),1),($(),z("svg",{class:U(["h-4 w-4 text-muted-foreground transition-transform",i.value===p.id?"rotate-180":""]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...h[5]||(h[5]=[x("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))])],8,Bt),i.value===p.id?($(),z("div",Mt,[x("div",{class:"prose prose-sm prose-invert max-w-none text-sm text-foreground",innerHTML:u(p.content_markdown)},null,8,Qt)])):he("",!0)]),_:2},1024)]),_:2},1024))),128))]))]))}}),Wt=Me(Nt,[["__scopeId","data-v-f60763ad"]]);export{Wt as default}; diff --git a/src/static/assets/SettingsView-BXkPmh00.js b/src/static/assets/SettingsView-BXkPmh00.js deleted file mode 100644 index f352b6b..0000000 --- a/src/static/assets/SettingsView-BXkPmh00.js +++ /dev/null @@ -1 +0,0 @@ -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 I,D as K,K as m}from"./index-yrXqsixb.js";import{u as L}from"./devops-C_7zqRan.js";import{_ as A,a as P}from"./CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js";import{_ as U,a as z}from"./CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js";import{_ as f}from"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import{_}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{i as j}from"./utils-D_0J15Md.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.organization,p.value=t.integration.project)});const $=new Date;w.value=j($);const e=new Date($);e.setDate($.getDate()-30),V.value=j(e)});async function O(){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 N(){if(!c.value||!p.value||!g.value){m.error("All ADO fields are required");return}b.value=!0;try{await t.saveIntegration({organization: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(z,{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:O},{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(z,{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.organization),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:N},{default:s(()=>[i(y(n(t).integration?"Update":"Connect"),1)]),_:1},8,["loading"]),n(t).integration?(x(),I(_,{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(),I(_,{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(z,{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/SettingsView-DsEb6gx-.js b/src/static/assets/SettingsView-DsEb6gx-.js new file mode 100644 index 0000000..bcefab8 --- /dev/null +++ b/src/static/assets/SettingsView-DsEb6gx-.js @@ -0,0 +1 @@ +import{d as B,u as T,v as q,c as C,a,e as o,w as s,q as u,o as x,p as i,h as n,t as y,i as k,k as I,D as H,K as m}from"./index-DzSm5_bv.js";import{u as K}from"./devops-S5lsRUq3.js";import{_ as A,a as P}from"./CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js";import{_ as U,a as z}from"./CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js";import{_ as f}from"./Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js";import{_}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{i as O}from"./utils-7WVCegLb.js";import"./Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js";function L(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 M(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 h={class:"p-6 space-y-6 max-w-2xl"},G={class:"space-y-1.5"},J={class:"space-y-1.5"},Q={key:0,class:"text-xs text-muted-foreground space-y-1"},R={class:"text-foreground"},W={class:"text-foreground"},X={key:0},Y={key:1,class:"text-red-400"},Z={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"},xe=B({__name:"SettingsView",setup(v){const d=T(),t=K(),r=u(""),D=u(0),S=u(!1),c=u(""),p=u(""),g=u(""),b=u(!1),V=u(""),w=u("");q(()=>{d.user&&(r.value=d.user.username,D.value=d.user.daily_overhead_hours??0),t.fetchIntegration().then(()=>{t.integration&&(c.value=t.integration.organization,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 j(){S.value=!0;try{await H.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 N(){if(!c.value||!p.value||!g.value){m.error("All ADO fields are required");return}b.value=!0;try{await t.saveIntegration({organization: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",h,[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(z,{class:"text-sm"},{default:s(()=>[...e[9]||(e[9]=[i("Profile",-1)])]),_:1})]),_:1}),o(P,{class:"space-y-4"},{default:s(()=>[a("div",G,[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",J,[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:j},{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(z,{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",Q,[a("p",null,[e[15]||(e[15]=i(" Connected to ",-1)),a("strong",R,y(n(t).integration.organization),1),e[16]||(e[16]=i(" / ",-1)),a("strong",W,y(n(t).integration.project),1)]),n(t).integration.last_synced_at?(x(),C("p",X," Last synced: "+y(new Date(n(t).integration.last_synced_at).toLocaleString()),1)):k("",!0),n(t).integration.last_sync_error?(x(),C("p",Y," Error: "+y(n(t).integration.last_sync_error),1)):k("",!0)])):k("",!0),a("div",Z,[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:N},{default:s(()=>[i(y(n(t).integration?"Update":"Connect"),1)]),_:1},8,["loading"]),n(t).integration?(x(),I(_,{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(),I(_,{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(z,{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(L)(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(M)(V.value,w.value))},{default:s(()=>[...e[25]||(e[25]=[i(" Download ICS ",-1)])]),_:1})])]),_:1})]),_:1})]))}});export{xe as default}; diff --git a/src/static/assets/Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js b/src/static/assets/Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js new file mode 100644 index 0000000..11b25d1 --- /dev/null +++ b/src/static/assets/Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js @@ -0,0 +1 @@ +import{d as l,o as n,c as o,n as t,a as r}from"./index-DzSm5_bv.js";const i=l({__name:"Spinner",props:{size:{},class:{}},setup(s){return(a,e)=>(n(),o("svg",{class:t(["animate-spin text-current",s.size==="sm"?"h-3 w-3":s.size==="lg"?"h-6 w-6":"h-4 w-4",a.$props.class]),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[...e[0]||(e[0]=[r("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),r("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))}});export{i as _}; diff --git a/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js b/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js similarity index 85% rename from src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js rename to src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js index 29b4202..2e62943 100644 --- a/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js +++ b/src/static/assets/TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js @@ -1 +1 @@ -import{D as v,B as I,r as _,d as D,o as k,c as g,p as N,i as w,t as V,j as C,s as A,x as E,v as L,n as M,w as y,a as s,e as r,k as h,F as z,l as T,h as O}from"./index-yrXqsixb.js";import{_ as W}from"./Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js";import{_ as $}from"./Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js";import{c as F}from"./utils-D_0J15Md.js";import{_ as U}from"./Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js";import{u as H}from"./devops-C_7zqRan.js";const b={list:t=>v.get("/api/tasks",{params:t}),get:t=>v.get(`/api/tasks/${t}`),create:t=>v.post("/api/tasks",t),update:(t,d)=>v.patch(`/api/tasks/${t}`,d),remove:t=>v.delete(`/api/tasks/${t}`),complete:t=>v.post(`/api/tasks/${t}/complete`),blocks:t=>v.get(`/api/tasks/${t}/blocks`),createBlock:(t,d)=>v.post(`/api/tasks/${t}/blocks`,d),updateBlock:(t,d)=>v.patch(`/api/tasks/blocks/${t}`,d),deleteBlock:t=>v.delete(`/api/tasks/blocks/${t}`)},ge=I("tasks",()=>{const t=_([]),d=_(!1),o=_(null);async function m(i){d.value=!0,o.value=null;try{const n=await b.list({date:i});t.value=n.data}catch(n){const c=n;o.value=c.message??"Failed to fetch tasks"}finally{d.value=!1}}async function f(i){d.value=!0,o.value=null;try{const n=await b.list(i?{project_id:i}:void 0);t.value=n.data}catch(n){const c=n;o.value=c.message??"Failed to fetch tasks"}finally{d.value=!1}}async function p(i){const n=await b.create(i);return t.value.push(n.data),n.data}async function a(i,n){const c=await b.update(i,n),S=t.value.findIndex(P=>P.id===i);return S!==-1&&(t.value[S]=c.data),c.data}async function u(i){await b.remove(i),t.value=t.value.filter(n=>n.id!==i)}async function j(i){const n=await b.complete(i),c=t.value.findIndex(S=>S.id===i);return c!==-1&&(t.value[c]=n.data),n.data}async function x(i,n){return(await b.createBlock(i,n)).data}async function e(i,n){return(await b.updateBlock(i,n)).data}async function l(i){await b.deleteBlock(i)}return{tasks:t,loading:d,error:o,fetchForDate:m,fetchAll:f,create:p,update:a,remove:u,complete:j,createBlock:x,updateBlock:e,deleteBlock:l}}),q=["id","value","placeholder","disabled","rows"],G=D({__name:"Textarea",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},rows:{},class:{},id:{}},emits:["update:modelValue"],setup(t,{emit:d}){const o=t,m=d;return(f,p)=>(k(),g("textarea",{id:t.id,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,rows:t.rows??3,class:N(w(F)("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:p[0]||(p[0]=a=>m("update:modelValue",a.target.value))},null,42,q))}}),J=["id","value","disabled"],K=["selected"],B=D({__name:"Select",props:{modelValue:{},disabled:{type:Boolean},class:{},id:{},placeholder:{}},emits:["update:modelValue","change"],setup(t,{emit:d}){const o=t,m=d;return(f,p)=>(k(),g("select",{id:t.id,value:t.modelValue,disabled:t.disabled,class:N(w(F)("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:p[0]||(p[0]=a=>m("update:modelValue",a.target.value))},[t.placeholder?(k(),g("option",{key:0,value:"",disabled:"",selected:!t.modelValue},V(t.placeholder),9,K)):C("",!0),A(f.$slots,"default")],42,J))}}),Q={list:()=>v.get("/api/projects")},R=I("projects",()=>{const t=_([]),d=_(!1);async function o(){if(!(t.value.length>0)){d.value=!0;try{const m=await Q.list();t.value=m.data}catch{t.value=[]}finally{d.value=!1}}}return{projects:t,loading:d,fetchProjects:o}}),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={class:"grid grid-cols-2 gap-3"},le={class:"space-y-1.5"},se={class:"space-y-1.5"},oe={class:"grid grid-cols-2 gap-3"},de={class:"space-y-1.5"},ie={class:"space-y-1.5"},ne={key:0,class:"space-y-1.5"},ue=["value"],re={key:1,class:"space-y-1.5"},me=["value"],ye=D({__name:"TaskForm",props:{open:{type:Boolean},task:{default:null},defaultDate:{}},emits:["close","save"],setup(t,{emit:d}){const o=t,m=d,f=H(),p=R();E(()=>{p.fetchProjects()});const a=_({title:"",notes:"",planned_date:"",start_time:"",end_time:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0});L(()=>o.open,x=>{x&&(o.task?a.value={title:o.task.title,notes:o.task.notes??"",planned_date:o.task.planned_date??"",start_time:"",end_time:"",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??"",start_time:"",end_time:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0},f.integration&&!f.workItems.length&&f.fetchWorkItems("open"))},{immediate:!0});const u=_(!1);async function j(){if(a.value.title.trim()){u.value=!0;try{const x={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};let e;a.value.planned_date&&a.value.start_time&&a.value.end_time&&(e={start_at:new Date(`${a.value.planned_date}T${a.value.start_time}:00`).toISOString(),end_at:new Date(`${a.value.planned_date}T${a.value.end_time}:00`).toISOString()}),m("save",x,e)}finally{u.value=!1}}}return(x,e)=>(k(),M(W,{open:t.open,title:t.task?"Edit Task":"New Task","max-width":"max-w-md",onClose:e[11]||(e[11]=l=>m("close"))},{footer:y(()=>[r(U,{variant:"outline",disabled:u.value,onClick:e[10]||(e[10]=l=>m("close"))},{default:y(()=>[...e[25]||(e[25]=[h("Cancel",-1)])]),_:1},8,["disabled"]),r(U,{loading:u.value,onClick:j},{default:y(()=>[h(V(t.task?"Update":"Create"),1)]),_:1},8,["loading"])]),default:y(()=>[s("form",{class:"space-y-4",onSubmit:O(j,["prevent"])},[s("div",X,[e[12]||(e[12]=s("label",{class:"text-sm font-medium text-foreground"},"Title *",-1)),r($,{modelValue:a.value.title,"onUpdate:modelValue":e[0]||(e[0]=l=>a.value.title=l),placeholder:"Task title...",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",Y,[e[13]||(e[13]=s("label",{class:"text-sm font-medium text-foreground"},"Notes",-1)),r(G,{modelValue:a.value.notes,"onUpdate:modelValue":e[1]||(e[1]=l=>a.value.notes=l),placeholder:"Additional notes...",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",Z,[s("div",ee,[e[14]||(e[14]=s("label",{class:"text-sm font-medium text-foreground"},"Planned Date",-1)),r($,{modelValue:a.value.planned_date,"onUpdate:modelValue":e[2]||(e[2]=l=>a.value.planned_date=l),type:"date",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",te,[e[15]||(e[15]=s("label",{class:"text-sm font-medium text-foreground"},"Estimate (h)",-1)),r($,{modelValue:a.value.estimate_hours,"onUpdate:modelValue":e[3]||(e[3]=l=>a.value.estimate_hours=l),type:"number",min:"0.25",max:"24",step:"0.25",disabled:u.value},null,8,["modelValue","disabled"])])]),s("div",ae,[s("div",le,[e[16]||(e[16]=s("label",{class:"text-sm font-medium text-foreground"},[h("Start time "),s("span",{class:"text-muted-foreground font-normal"},"(optional)")],-1)),r($,{modelValue:a.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=l=>a.value.start_time=l),type:"time",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",se,[e[17]||(e[17]=s("label",{class:"text-sm font-medium text-foreground"},"End time",-1)),r($,{modelValue:a.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=l=>a.value.end_time=l),type:"time",disabled:u.value},null,8,["modelValue","disabled"])])]),s("div",oe,[s("div",de,[e[19]||(e[19]=s("label",{class:"text-sm font-medium text-foreground"},"Status",-1)),r(B,{modelValue:a.value.status,"onUpdate:modelValue":e[6]||(e[6]=l=>a.value.status=l),disabled:u.value},{default:y(()=>[...e[18]||(e[18]=[s("option",{value:"todo"},"Todo",-1),s("option",{value:"doing"},"Doing",-1),s("option",{value:"done"},"Done",-1),s("option",{value:"cancelled"},"Cancelled",-1)])]),_:1},8,["modelValue","disabled"])]),s("div",ie,[e[21]||(e[21]=s("label",{class:"text-sm font-medium text-foreground"},"Priority",-1)),r(B,{modelValue:a.value.priority,"onUpdate:modelValue":e[7]||(e[7]=l=>a.value.priority=l),disabled:u.value},{default:y(()=>[...e[20]||(e[20]=[s("option",{value:"1"},"1 - Low",-1),s("option",{value:"2"},"2 - Normal",-1),s("option",{value:"3"},"3 - Medium",-1),s("option",{value:"4"},"4 - High",-1),s("option",{value:"5"},"5 - Critical",-1)])]),_:1},8,["modelValue","disabled"])])]),w(p).projects.length?(k(),g("div",ne,[e[23]||(e[23]=s("label",{class:"text-sm font-medium text-foreground"},"Project",-1)),r(B,{modelValue:a.value.project_id,"onUpdate:modelValue":e[8]||(e[8]=l=>a.value.project_id=l),disabled:u.value,placeholder:"Select project..."},{default:y(()=>[e[22]||(e[22]=s("option",{value:""},"None",-1)),(k(!0),g(z,null,T(w(p).projects,l=>(k(),g("option",{key:l.id,value:l.id},V(l.display_name)+V(l.job_number?` (${l.job_number})`:""),9,ue))),128))]),_:1},8,["modelValue","disabled"])])):C("",!0),w(f).workItems.length?(k(),g("div",re,[e[24]||(e[24]=s("label",{class:"text-sm font-medium text-foreground"},"Azure DevOps Work Item",-1)),r(B,{modelValue:a.value.azure_work_item_id,"onUpdate:modelValue":e[9]||(e[9]=l=>a.value.azure_work_item_id=l),disabled:u.value,placeholder:"Link work item..."},{default:y(()=>[(k(!0),g(z,null,T(w(f).workItems,l=>(k(),g("option",{key:l.id,value:l.id}," #"+V(l.ado_id)+" – "+V(l.title),9,me))),128))]),_:1},8,["modelValue","disabled"])])):C("",!0)],32)]),_:1},8,["open","title"]))}});export{ye as _,ge as u}; +import{D as v,A as I,q as _,d as D,o as k,c as g,n as N,h as w,t as x,i as C,m as P,v as E,s as L,k as M,w as y,a as s,e as r,p as h,F as z,r as T,B as O}from"./index-DzSm5_bv.js";import{_ as W}from"./Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js";import{_ as $}from"./Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js";import{c as A}from"./utils-7WVCegLb.js";import{_ as U}from"./Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js";import{u as q}from"./devops-S5lsRUq3.js";const b={list:t=>v.get("/api/tasks",{params:t}),get:t=>v.get(`/api/tasks/${t}`),create:t=>v.post("/api/tasks",t),update:(t,d)=>v.patch(`/api/tasks/${t}`,d),remove:t=>v.delete(`/api/tasks/${t}`),complete:t=>v.post(`/api/tasks/${t}/complete`),blocks:t=>v.get(`/api/tasks/${t}/blocks`),createBlock:(t,d)=>v.post(`/api/tasks/${t}/blocks`,d),updateBlock:(t,d)=>v.patch(`/api/tasks/blocks/${t}`,d),deleteBlock:t=>v.delete(`/api/tasks/blocks/${t}`)},ge=I("tasks",()=>{const t=_([]),d=_(!1),o=_(null);async function m(i){d.value=!0,o.value=null;try{const n=await b.list({date:i});t.value=n.data}catch(n){const c=n;o.value=c.message??"Failed to fetch tasks"}finally{d.value=!1}}async function f(i){d.value=!0,o.value=null;try{const n=await b.list(i?{project_id:i}:void 0);t.value=n.data}catch(n){const c=n;o.value=c.message??"Failed to fetch tasks"}finally{d.value=!1}}async function p(i){const n=await b.create(i);return t.value.push(n.data),n.data}async function a(i,n){const c=await b.update(i,n),S=t.value.findIndex(F=>F.id===i);return S!==-1&&(t.value[S]=c.data),c.data}async function u(i){await b.remove(i),t.value=t.value.filter(n=>n.id!==i)}async function j(i){const n=await b.complete(i),c=t.value.findIndex(S=>S.id===i);return c!==-1&&(t.value[c]=n.data),n.data}async function V(i,n){return(await b.createBlock(i,n)).data}async function e(i,n){return(await b.updateBlock(i,n)).data}async function l(i){await b.deleteBlock(i)}return{tasks:t,loading:d,error:o,fetchForDate:m,fetchAll:f,create:p,update:a,remove:u,complete:j,createBlock:V,updateBlock:e,deleteBlock:l}}),H=["id","value","placeholder","disabled","rows"],G=D({__name:"Textarea",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},rows:{},class:{},id:{}},emits:["update:modelValue"],setup(t,{emit:d}){const o=t,m=d;return(f,p)=>(k(),g("textarea",{id:t.id,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,rows:t.rows??3,class:N(w(A)("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:p[0]||(p[0]=a=>m("update:modelValue",a.target.value))},null,42,H))}}),J=["id","value","disabled"],K=["selected"],B=D({__name:"Select",props:{modelValue:{},disabled:{type:Boolean},class:{},id:{},placeholder:{}},emits:["update:modelValue","change"],setup(t,{emit:d}){const o=t,m=d;return(f,p)=>(k(),g("select",{id:t.id,value:t.modelValue,disabled:t.disabled,class:N(w(A)("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:p[0]||(p[0]=a=>m("update:modelValue",a.target.value))},[t.placeholder?(k(),g("option",{key:0,value:"",disabled:"",selected:!t.modelValue},x(t.placeholder),9,K)):C("",!0),P(f.$slots,"default")],42,J))}}),Q={list:()=>v.get("/api/projects")},R=I("projects",()=>{const t=_([]),d=_(!1);async function o(){if(!(t.value.length>0)){d.value=!0;try{const m=await Q.list();t.value=m.data}catch{t.value=[]}finally{d.value=!1}}}return{projects:t,loading:d,fetchProjects:o}}),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={class:"grid grid-cols-2 gap-3"},le={class:"space-y-1.5"},se={class:"space-y-1.5"},oe={class:"grid grid-cols-2 gap-3"},de={class:"space-y-1.5"},ie={class:"space-y-1.5"},ne={key:0,class:"space-y-1.5"},ue=["value"],re={key:1,class:"space-y-1.5"},me=["value"],ye=D({__name:"TaskForm",props:{open:{type:Boolean},task:{default:null},defaultDate:{}},emits:["close","save"],setup(t,{emit:d}){const o=t,m=d,f=q(),p=R();E(()=>{p.fetchProjects()});const a=_({title:"",notes:"",planned_date:"",start_time:"",end_time:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0});L(()=>o.open,V=>{V&&(o.task?a.value={title:o.task.title,notes:o.task.notes??"",planned_date:o.task.planned_date??"",start_time:"",end_time:"",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??"",start_time:"",end_time:"",estimate_hours:1,status:"todo",priority:3,project_id:void 0,azure_work_item_id:void 0},f.integration&&!f.workItems.length&&f.fetchWorkItems("open"))},{immediate:!0});const u=_(!1);async function j(){if(a.value.title.trim()){u.value=!0;try{const V={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};let e;a.value.planned_date&&a.value.start_time&&a.value.end_time&&(e={start_at:new Date(`${a.value.planned_date}T${a.value.start_time}:00`).toISOString(),end_at:new Date(`${a.value.planned_date}T${a.value.end_time}:00`).toISOString()}),m("save",V,e)}finally{u.value=!1}}}return(V,e)=>(k(),M(W,{open:t.open,title:t.task?"Edit Task":"New Task","max-width":"max-w-md",onClose:e[11]||(e[11]=l=>m("close"))},{footer:y(()=>[r(U,{variant:"outline",disabled:u.value,onClick:e[10]||(e[10]=l=>m("close"))},{default:y(()=>[...e[25]||(e[25]=[h("Cancel",-1)])]),_:1},8,["disabled"]),r(U,{loading:u.value,onClick:j},{default:y(()=>[h(x(t.task?"Update":"Create"),1)]),_:1},8,["loading"])]),default:y(()=>[s("form",{class:"space-y-4",onSubmit:O(j,["prevent"])},[s("div",X,[e[12]||(e[12]=s("label",{class:"text-sm font-medium text-foreground"},"Title *",-1)),r($,{modelValue:a.value.title,"onUpdate:modelValue":e[0]||(e[0]=l=>a.value.title=l),placeholder:"Task title...",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",Y,[e[13]||(e[13]=s("label",{class:"text-sm font-medium text-foreground"},"Notes",-1)),r(G,{modelValue:a.value.notes,"onUpdate:modelValue":e[1]||(e[1]=l=>a.value.notes=l),placeholder:"Additional notes...",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",Z,[s("div",ee,[e[14]||(e[14]=s("label",{class:"text-sm font-medium text-foreground"},"Planned Date",-1)),r($,{modelValue:a.value.planned_date,"onUpdate:modelValue":e[2]||(e[2]=l=>a.value.planned_date=l),type:"date",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",te,[e[15]||(e[15]=s("label",{class:"text-sm font-medium text-foreground"},"Estimate (h)",-1)),r($,{modelValue:a.value.estimate_hours,"onUpdate:modelValue":e[3]||(e[3]=l=>a.value.estimate_hours=l),type:"number",min:"0.25",max:"24",step:"0.25",disabled:u.value},null,8,["modelValue","disabled"])])]),s("div",ae,[s("div",le,[e[16]||(e[16]=s("label",{class:"text-sm font-medium text-foreground"},[h("Start time "),s("span",{class:"text-muted-foreground font-normal"},"(optional)")],-1)),r($,{modelValue:a.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=l=>a.value.start_time=l),type:"time",disabled:u.value},null,8,["modelValue","disabled"])]),s("div",se,[e[17]||(e[17]=s("label",{class:"text-sm font-medium text-foreground"},"End time",-1)),r($,{modelValue:a.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=l=>a.value.end_time=l),type:"time",disabled:u.value},null,8,["modelValue","disabled"])])]),s("div",oe,[s("div",de,[e[19]||(e[19]=s("label",{class:"text-sm font-medium text-foreground"},"Status",-1)),r(B,{modelValue:a.value.status,"onUpdate:modelValue":e[6]||(e[6]=l=>a.value.status=l),disabled:u.value},{default:y(()=>[...e[18]||(e[18]=[s("option",{value:"todo"},"Todo",-1),s("option",{value:"doing"},"Doing",-1),s("option",{value:"done"},"Done",-1),s("option",{value:"cancelled"},"Cancelled",-1)])]),_:1},8,["modelValue","disabled"])]),s("div",ie,[e[21]||(e[21]=s("label",{class:"text-sm font-medium text-foreground"},"Priority",-1)),r(B,{modelValue:a.value.priority,"onUpdate:modelValue":e[7]||(e[7]=l=>a.value.priority=l),disabled:u.value},{default:y(()=>[...e[20]||(e[20]=[s("option",{value:"1"},"1 - Low",-1),s("option",{value:"2"},"2 - Normal",-1),s("option",{value:"3"},"3 - Medium",-1),s("option",{value:"4"},"4 - High",-1),s("option",{value:"5"},"5 - Critical",-1)])]),_:1},8,["modelValue","disabled"])])]),w(p).projects.length?(k(),g("div",ne,[e[23]||(e[23]=s("label",{class:"text-sm font-medium text-foreground"},"Project",-1)),r(B,{modelValue:a.value.project_id,"onUpdate:modelValue":e[8]||(e[8]=l=>a.value.project_id=l),disabled:u.value,placeholder:"Select project..."},{default:y(()=>[e[22]||(e[22]=s("option",{value:""},"None",-1)),(k(!0),g(z,null,T(w(p).projects,l=>(k(),g("option",{key:l.id,value:l.id},x(l.display_name)+x(l.job_number?` (${l.job_number})`:""),9,ue))),128))]),_:1},8,["modelValue","disabled"])])):C("",!0),w(f).workItems.length?(k(),g("div",re,[e[24]||(e[24]=s("label",{class:"text-sm font-medium text-foreground"},"Azure DevOps Work Item",-1)),r(B,{modelValue:a.value.azure_work_item_id,"onUpdate:modelValue":e[9]||(e[9]=l=>a.value.azure_work_item_id=l),disabled:u.value,placeholder:"Link work item..."},{default:y(()=>[(k(!0),g(z,null,T(w(f).workItems,l=>(k(),g("option",{key:l.id,value:l.id}," #"+x(l.ado_id)+" – "+x(l.title),9,me))),128))]),_:1},8,["modelValue","disabled"])])):C("",!0)],32)]),_:1},8,["open","title"]))}});export{ye as _,ge as u}; diff --git a/src/static/assets/admin-BRKJZipt.js b/src/static/assets/admin-DOjSzxjn.js similarity index 68% rename from src/static/assets/admin-BRKJZipt.js rename to src/static/assets/admin-DOjSzxjn.js index 1875ff3..beecdb2 100644 --- a/src/static/assets/admin-BRKJZipt.js +++ b/src/static/assets/admin-DOjSzxjn.js @@ -1 +1 @@ -import{D as e}from"./index-yrXqsixb.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-DzSm5_bv.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-Bay5szWb.js b/src/static/assets/dashboard-uOtmhTNc.js similarity index 88% rename from src/static/assets/dashboard-Bay5szWb.js rename to src/static/assets/dashboard-uOtmhTNc.js index 088e8df..d022b81 100644 --- a/src/static/assets/dashboard-Bay5szWb.js +++ b/src/static/assets/dashboard-uOtmhTNc.js @@ -1 +1 @@ -import{D as t}from"./index-yrXqsixb.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-DzSm5_bv.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-C_7zqRan.js b/src/static/assets/devops-S5lsRUq3.js similarity index 61% rename from src/static/assets/devops-C_7zqRan.js rename to src/static/assets/devops-S5lsRUq3.js index 5578bd8..78ded90 100644 --- a/src/static/assets/devops-C_7zqRan.js +++ b/src/static/assets/devops-S5lsRUq3.js @@ -1 +1 @@ -import{D as s,B as I,r as o}from"./index-yrXqsixb.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,A as I,q as o}from"./index-DzSm5_bv.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),l=o([]),r=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;r.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{r.value=!1}}async function y(t){n.value=!0;try{const a=await i.workItems(t);l.value=a.data}catch{l.value=[]}finally{n.value=!1}}return{integration:e,workItems:l,syncing:r,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-BXlrCgg3.css b/src/static/assets/index-C-CL-7fz.css similarity index 57% rename from src/static/assets/index-BXlrCgg3.css rename to src/static/assets/index-C-CL-7fz.css index 84eab04..c3d1f61 100644 --- a/src/static/assets/index-BXlrCgg3.css +++ b/src/static/assets/index-C-CL-7fz.css @@ -1 +1 @@ -@import"https://api.fontshare.com/v2/css?f[]=satoshi@700,500,400&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";.slide-up-enter-active[data-v-5b6580b3],.slide-up-leave-active[data-v-5b6580b3]{transition:all .25s cubic-bezier(.34,1.56,.64,1)}.slide-up-enter-from[data-v-5b6580b3],.slide-up-leave-to[data-v-5b6580b3]{opacity:0;transform:translateY(20px) scale(.95)}.prose[data-v-5b6580b3] 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% 98%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 191 91% 37%;--primary-foreground: 0 0% 100%;--secondary: 210 40% 94%;--secondary-foreground: 222 47% 11%;--muted: 210 40% 94%;--muted-foreground: 215 16% 47%;--accent: 191 91% 92%;--accent-foreground: 191 91% 25%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 214 32% 88%;--input: 214 32% 88%;--ring: 191 91% 37%;--radius: .5rem;--sidebar-background: 210 40% 96%;--sidebar-foreground: 222 47% 11%;--sidebar-primary: 191 91% 37%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 191 91% 92%;--sidebar-accent-foreground: 191 91% 25%;--sidebar-border: 214 32% 88%;--sidebar-ring: 191 91% 37%;--success: 158 64% 40%;--warning: 38 92% 50%}.dark{--background: 226 49% 8%;--foreground: 220 40% 92%;--card: 220 44% 10%;--card-foreground: 220 40% 92%;--popover: 220 44% 12%;--popover-foreground: 220 40% 92%;--primary: 200 100% 67%;--primary-foreground: 226 49% 8%;--secondary: 220 30% 14%;--secondary-foreground: 220 20% 75%;--muted: 220 30% 12%;--muted-foreground: 220 12% 52%;--accent: 220 30% 14%;--accent-foreground: 220 40% 92%;--destructive: 0 72% 51%;--destructive-foreground: 220 40% 98%;--border: 220 28% 17%;--input: 220 28% 17%;--ring: 200 100% 67%;--success: 158 64% 52%;--warning: 38 92% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Satoshi,Inter,system-ui,-apple-system,sans-serif;font-feature-settings:"rlig" 1,"calt" 1;-webkit-font-smoothing:antialiased}.tabular-nums,[data-value],.kpi-value{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#252e41;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#374562}.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-4{right:-1rem}.-top-1{top:-.25rem}.-top-4{top:-1rem}.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!important}.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-px{height:1px}.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-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-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-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.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-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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * 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\/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-border\/60{border-color:hsl(var(--border) / .6)}.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-primary\/20{border-color:hsl(var(--primary) / .2)}.bg-\[hsl\(220_44\%_8\%\)\]{--tw-bg-opacity: 1;background-color:hsl(220 44% 8% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(var\(--success\)\)\]{background-color:hsl(var(--success))}.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-blue-500\/10{background-color:#3b82f61a}.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-green-500\/10{background-color:#22c55e1a}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/15{background-color:hsl(var(--primary) / .15)}.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-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-2\.5{padding-top:.625rem;padding-bottom:.625rem}.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-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-\[hsl\(var\(--success\)\)\]{color:hsl(var(--success))}.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-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/80{color:hsl(var(--primary) / .8)}.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-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-50{opacity:.5}.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-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-border{--tw-ring-color: hsl(var(--border))}.ring-primary\/15{--tw-ring-color: hsl(var(--primary) / .15)}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-primary\/25{--tw-ring-color: hsl(var(--primary) / .25)}.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-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.panel-glow{box-shadow:0 0 0 1px hsl(var(--border)),0 4px 24px -4px #05080f99}.panel-glow-hover:hover{box-shadow:0 0 0 1px #57c7ff2e,0 8px 32px -4px #57c7ff14}.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\: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-primary:hover{color:hsl(var(--primary))}.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-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-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-muted-foreground{color:hsl(var(--muted-foreground))}.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))}} +@import"https://api.fontshare.com/v2/css?f[]=satoshi@700,500,400&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";.slide-up-enter-active[data-v-5b6580b3],.slide-up-leave-active[data-v-5b6580b3]{transition:all .25s cubic-bezier(.34,1.56,.64,1)}.slide-up-enter-from[data-v-5b6580b3],.slide-up-leave-to[data-v-5b6580b3]{opacity:0;transform:translateY(20px) scale(.95)}.prose[data-v-5b6580b3] 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% 98%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 191 91% 37%;--primary-foreground: 0 0% 100%;--secondary: 210 40% 94%;--secondary-foreground: 222 47% 11%;--muted: 210 40% 94%;--muted-foreground: 215 16% 47%;--accent: 191 91% 92%;--accent-foreground: 191 91% 25%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 214 32% 88%;--input: 214 32% 88%;--ring: 191 91% 37%;--radius: .5rem;--sidebar-background: 210 40% 96%;--sidebar-foreground: 222 47% 11%;--sidebar-primary: 191 91% 37%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 191 91% 92%;--sidebar-accent-foreground: 191 91% 25%;--sidebar-border: 214 32% 88%;--sidebar-ring: 191 91% 37%;--success: 158 64% 40%;--warning: 38 92% 50%}.dark{--background: 226 49% 8%;--foreground: 220 40% 92%;--card: 220 44% 10%;--card-foreground: 220 40% 92%;--popover: 220 44% 12%;--popover-foreground: 220 40% 92%;--primary: 200 100% 67%;--primary-foreground: 226 49% 8%;--secondary: 220 30% 14%;--secondary-foreground: 220 20% 75%;--muted: 220 30% 12%;--muted-foreground: 220 12% 52%;--accent: 220 30% 14%;--accent-foreground: 220 40% 92%;--destructive: 0 72% 51%;--destructive-foreground: 220 40% 98%;--border: 220 28% 17%;--input: 220 28% 17%;--ring: 200 100% 67%;--success: 158 64% 52%;--warning: 38 92% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Satoshi,Inter,system-ui,-apple-system,sans-serif;font-feature-settings:"rlig" 1,"calt" 1;-webkit-font-smoothing:antialiased}.tabular-nums,[data-value],.kpi-value{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#252e41;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#374562}.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-4{right:-1rem}.-top-1{top:-.25rem}.-top-4{top:-1rem}.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!important}.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-px{height:1px}.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-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-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-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.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-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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * 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\/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-border\/60{border-color:hsl(var(--border) / .6)}.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-primary\/20{border-color:hsl(var(--primary) / .2)}.bg-\[hsl\(220_44\%_8\%\)\]{--tw-bg-opacity: 1;background-color:hsl(220 44% 8% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(var\(--success\)\)\]{background-color:hsl(var(--success))}.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-blue-500\/10{background-color:#3b82f61a}.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-green-500\/10{background-color:#22c55e1a}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/15{background-color:hsl(var(--primary) / .15)}.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-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / 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-2\.5{padding-top:.625rem;padding-bottom:.625rem}.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-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-\[hsl\(var\(--success\)\)\]{color:hsl(var(--success))}.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-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/80{color:hsl(var(--primary) / .8)}.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-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-50{opacity:.5}.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-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-border{--tw-ring-color: hsl(var(--border))}.ring-primary\/15{--tw-ring-color: hsl(var(--primary) / .15)}.ring-primary\/20{--tw-ring-color: hsl(var(--primary) / .2)}.ring-primary\/25{--tw-ring-color: hsl(var(--primary) / .25)}.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-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.panel-glow{box-shadow:0 0 0 1px hsl(var(--border)),0 4px 24px -4px #05080f99}.panel-glow-hover:hover{box-shadow:0 0 0 1px #57c7ff2e,0 8px 32px -4px #57c7ff14}.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-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/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\: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-primary:hover{color:hsl(var(--primary))}.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-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color: hsl(var(--primary))}.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-muted-foreground{color:hsl(var(--muted-foreground))}.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/index-DzSm5_bv.js b/src/static/assets/index-DzSm5_bv.js new file mode 100644 index 0000000..2d4b9e4 --- /dev/null +++ b/src/static/assets/index-DzSm5_bv.js @@ -0,0 +1,46 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-DzMVaLbC.js","assets/CardContent.vue_vue_type_script_setup_true_lang-B899D1fp.js","assets/utils-7WVCegLb.js","assets/DashboardView-Cvjfxfcs.js","assets/dashboard-uOtmhTNc.js","assets/CardTitle.vue_vue_type_script_setup_true_lang-ByUGRP-t.js","assets/Progress.vue_vue_type_script_setup_true_lang-DK67Z5Fm.js","assets/Button.vue_vue_type_script_setup_true_lang-D97aKlXO.js","assets/Spinner.vue_vue_type_script_setup_true_lang-DxuuceC3.js","assets/CalendarView-CVfEc5OT.js","assets/TaskForm.vue_vue_type_script_setup_true_lang-Dq5zJejp.js","assets/Dialog.vue_vue_type_script_setup_true_lang-Bpehdtti.js","assets/Input.vue_vue_type_script_setup_true_lang-DX_izdWK.js","assets/devops-S5lsRUq3.js","assets/Badge.vue_vue_type_script_setup_true_lang-CaB6FyQ0.js","assets/CalendarView-DRWiX2N8.css","assets/PlannerView-DJPGnDPz.js","assets/ProjectsView-VxSshwHq.js","assets/ProjectDetailView-2QTgygyj.js","assets/LiveView-Df9pKcnA.js","assets/ReportsView-Dgj4QJox.js","assets/ReportsView-BczQ2gJa.css","assets/KeysView-Buk66uDj.js","assets/admin-DOjSzxjn.js","assets/DevopsView-L2Z-AJUn.js","assets/SettingsView-DsEb6gx-.js","assets/AdminView-DUmZvUGQ.js"])))=>i.map(i=>d[i]); +var Jl=n=>{throw TypeError(n)};var da=(n,e,t)=>e.has(n)||Jl("Cannot "+t);var O=(n,e,t)=>(da(n,e,"read from private field"),t?t.call(n):e.get(n)),Ee=(n,e,t)=>e.has(n)?Jl("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),le=(n,e,t,r)=>(da(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),ut=(n,e,t)=>(da(n,e,"access private method"),t);var Li=(n,e,t,r)=>({set _(o){le(n,e,o,t)},get _(){return O(n,e,r)}});(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function t(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=t(o);fetch(o.href,i)}})();/** +* @vue/shared v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Nc(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const De={},ao=[],Sn=()=>{},mh=()=>!1,Is=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),Rs=n=>n.startsWith("onUpdate:"),it=Object.assign,Mc=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},pm=Object.prototype.hasOwnProperty,Pe=(n,e)=>pm.call(n,e),ie=Array.isArray,co=n=>Ai(n)==="[object Map]",yh=n=>Ai(n)==="[object Set]",Xl=n=>Ai(n)==="[object Date]",fe=n=>typeof n=="function",Be=n=>typeof n=="string",Vt=n=>typeof n=="symbol",Ne=n=>n!==null&&typeof n=="object",Ch=n=>(Ne(n)||fe(n))&&fe(n.then)&&fe(n.catch),vh=Object.prototype.toString,Ai=n=>vh.call(n),mm=n=>Ai(n).slice(8,-1),Th=n=>Ai(n)==="[object Object]",ks=n=>Be(n)&&n!=="NaN"&&n[0]!=="-"&&""+parseInt(n,10)===n,zo=Nc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Os=n=>{const e=Object.create(null);return t=>e[t]||(e[t]=n(t))},ym=/-\w/g,Ot=Os(n=>n.replace(ym,e=>e.slice(1).toUpperCase())),Cm=/\B([A-Z])/g,Cr=Os(n=>n.replace(Cm,"-$1").toLowerCase()),Ps=Os(n=>n.charAt(0).toUpperCase()+n.slice(1)),ha=Os(n=>n?`on${Ps(n)}`:""),wn=(n,e)=>!Object.is(n,e),Ji=(n,...e)=>{for(let t=0;t{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:r,value:t})},xc=n=>{const e=parseFloat(n);return isNaN(e)?n:e},vm=n=>{const e=Be(n)?Number(n):NaN;return isNaN(e)?n:e};let Zl;const Ns=()=>Zl||(Zl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function hr(n){if(ie(n)){const e={};for(let t=0;t{if(t){const r=t.split(wm);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e}function Bt(n){let e="";if(Be(n))e=n;else if(ie(n))for(let t=0;t!!(n&&n.__v_isRef===!0),nn=n=>Be(n)?n:n==null?"":ie(n)||Ne(n)&&(n.toString===vh||!fe(n.toString))?Eh(n)?nn(n.value):JSON.stringify(n,bh,2):String(n),bh=(n,e)=>Eh(e)?bh(n,e.value):co(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[r,o],i)=>(t[fa(r,i)+" =>"]=o,t),{})}:yh(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>fa(t))}:Vt(e)?fa(e):Ne(e)&&!ie(e)&&!Th(e)?String(e):e,fa=(n,e="")=>{var t;return Vt(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/** +* @vue/reactivity v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let rt;class _h{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&rt&&(rt.active?(this.parent=rt,this.index=(rt.scopes||(rt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0&&--this._on===0){if(rt===this)rt=this.prevScope;else{let e=rt;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,r;for(t=0,r=this.effects.length;t0)return;if(Wo){let e=Wo;for(Wo=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let n;for(;Qo;){let e=Qo;for(Qo=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(r){n||(n=r)}e=t}}if(n)throw n}function Ph(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Nh(n){let e,t=n.depsTail,r=t;for(;r;){const o=r.prevDep;r.version===-1?(r===t&&(t=o),Hc(r),Rm(r)):e=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}n.deps=e,n.depsTail=t}function Ha(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Mh(e.dep.computed)||e.dep.version!==e.version))return!0;return!!n._dirty}function Mh(n){if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===ii)||(n.globalVersion=ii,!n.isSSR&&n.flags&128&&(!n.deps&&!n._dirty||!Ha(n))))return;n.flags|=2;const e=n.dep,t=He,r=rn;He=n,rn=!0;try{Ph(n);const o=n.fn(n._value);(e.version===0||wn(o,n._value))&&(n.flags|=128,n._value=o,e.version++)}catch(o){throw e.version++,o}finally{He=t,rn=r,Nh(n),n.flags&=-3}}function Hc(n,e=!1){const{dep:t,prevSub:r,nextSub:o}=n;if(r&&(r.nextSub=o,n.prevSub=void 0),o&&(o.prevSub=r,n.nextSub=void 0),t.subs===n&&(t.subs=r,!r&&t.computed)){t.computed.flags&=-5;for(let i=t.computed.deps;i;i=i.nextDep)Hc(i,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function Rm(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let rn=!0;const xh=[];function Gn(){xh.push(rn),rn=!1}function Vn(){const n=xh.pop();rn=n===void 0?!0:n}function tu(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=He;He=void 0;try{e()}finally{He=t}}}let ii=0;class km{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Fc{constructor(e){this.computed=e,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(e){if(!He||!rn||He===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==He)t=this.activeLink=new km(He,this),He.deps?(t.prevDep=He.depsTail,He.depsTail.nextDep=t,He.depsTail=t):He.deps=He.depsTail=t,Lh(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const r=t.nextDep;r.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=r),t.prevDep=He.depsTail,t.nextDep=void 0,He.depsTail.nextDep=t,He.depsTail=t,He.deps===t&&(He.deps=r)}return t}trigger(e){this.version++,ii++,this.notify(e)}notify(e){Dc();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Uc()}}}function Lh(n){if(n.dep.sc++,n.sub.flags&4){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let r=e.deps;r;r=r.nextDep)Lh(r)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}}const os=new WeakMap,Lr=Symbol(""),Fa=Symbol(""),si=Symbol("");function yt(n,e,t){if(rn&&He){let r=os.get(n);r||os.set(n,r=new Map);let o=r.get(t);o||(r.set(t,o=new Fc),o.map=r,o.key=t),o.track()}}function Fn(n,e,t,r,o,i){const s=os.get(n);if(!s){ii++;return}const a=c=>{c&&c.trigger()};if(Dc(),e==="clear")s.forEach(a);else{const c=ie(n),l=c&&ks(t);if(c&&t==="length"){const u=Number(r);s.forEach((d,h)=>{(h==="length"||h===si||!Vt(h)&&h>=u)&&a(d)})}else switch((t!==void 0||s.has(void 0))&&a(s.get(t)),l&&a(s.get(si)),e){case"add":c?l&&a(s.get("length")):(a(s.get(Lr)),co(n)&&a(s.get(Fa)));break;case"delete":c||(a(s.get(Lr)),co(n)&&a(s.get(Fa)));break;case"set":co(n)&&a(s.get(Lr));break}}Uc()}function Om(n,e){const t=os.get(n);return t&&t.get(e)}function zr(n){const e=Ie(n);return e===n?e:(yt(e,"iterate",si),Gt(n)?e:e.map(an))}function Ms(n){return yt(n=Ie(n),"iterate",si),n}function vn(n,e){return zn(n)?bo(jn(n)?an(e):e):an(e)}const Pm={__proto__:null,[Symbol.iterator](){return pa(this,Symbol.iterator,n=>vn(this,n))},concat(...n){return zr(this).concat(...n.map(e=>ie(e)?zr(e):e))},entries(){return pa(this,"entries",n=>(n[1]=vn(this,n[1]),n))},every(n,e){return On(this,"every",n,e,void 0,arguments)},filter(n,e){return On(this,"filter",n,e,t=>t.map(r=>vn(this,r)),arguments)},find(n,e){return On(this,"find",n,e,t=>vn(this,t),arguments)},findIndex(n,e){return On(this,"findIndex",n,e,void 0,arguments)},findLast(n,e){return On(this,"findLast",n,e,t=>vn(this,t),arguments)},findLastIndex(n,e){return On(this,"findLastIndex",n,e,void 0,arguments)},forEach(n,e){return On(this,"forEach",n,e,void 0,arguments)},includes(...n){return ma(this,"includes",n)},indexOf(...n){return ma(this,"indexOf",n)},join(n){return zr(this).join(n)},lastIndexOf(...n){return ma(this,"lastIndexOf",n)},map(n,e){return On(this,"map",n,e,void 0,arguments)},pop(){return Do(this,"pop")},push(...n){return Do(this,"push",n)},reduce(n,...e){return nu(this,"reduce",n,e)},reduceRight(n,...e){return nu(this,"reduceRight",n,e)},shift(){return Do(this,"shift")},some(n,e){return On(this,"some",n,e,void 0,arguments)},splice(...n){return Do(this,"splice",n)},toReversed(){return zr(this).toReversed()},toSorted(n){return zr(this).toSorted(n)},toSpliced(...n){return zr(this).toSpliced(...n)},unshift(...n){return Do(this,"unshift",n)},values(){return pa(this,"values",n=>vn(this,n))}};function pa(n,e,t){const r=Ms(n),o=r[e]();return r!==n&&!Gt(n)&&(o._next=o.next,o.next=()=>{const i=o._next();return i.done||(i.value=t(i.value)),i}),o}const Nm=Array.prototype;function On(n,e,t,r,o,i){const s=Ms(n),a=s!==n&&!Gt(n),c=s[e];if(c!==Nm[e]){const d=c.apply(n,i);return a?an(d):d}let l=t;s!==n&&(a?l=function(d,h){return t.call(this,vn(n,d),h,n)}:t.length>2&&(l=function(d,h){return t.call(this,d,h,n)}));const u=c.call(s,l,r);return a&&o?o(u):u}function nu(n,e,t,r){const o=Ms(n),i=o!==n&&!Gt(n);let s=t,a=!1;o!==n&&(i?(a=r.length===0,s=function(l,u,d){return a&&(a=!1,l=vn(n,l)),t.call(this,l,vn(n,u),d,n)}):t.length>3&&(s=function(l,u,d){return t.call(this,l,u,d,n)}));const c=o[e](s,...r);return a?vn(n,c):c}function ma(n,e,t){const r=Ie(n);yt(r,"iterate",si);const o=r[e](...t);return(o===-1||o===!1)&&xs(t[0])?(t[0]=Ie(t[0]),r[e](...t)):o}function Do(n,e,t=[]){Gn(),Dc();const r=Ie(n)[e].apply(n,t);return Uc(),Vn(),r}const Mm=Nc("__proto__,__v_isRef,__isVue"),Dh=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!=="arguments"&&n!=="caller").map(n=>Symbol[n]).filter(Vt));function xm(n){Vt(n)||(n=String(n));const e=Ie(this);return yt(e,"has",n),e.hasOwnProperty(n)}class Uh{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,r){if(t==="__v_skip")return e.__v_skip;const o=this._isReadonly,i=this._isShallow;if(t==="__v_isReactive")return!o;if(t==="__v_isReadonly")return o;if(t==="__v_isShallow")return i;if(t==="__v_raw")return r===(o?i?$m:Kh:i?Bh:Fh).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(r)?e:void 0;const s=ie(e);if(!o){let c;if(s&&(c=Pm[t]))return c;if(t==="hasOwnProperty")return xm}const a=Reflect.get(e,t,Ve(e)?e:r);if((Vt(t)?Dh.has(t):Mm(t))||(o||yt(e,"get",t),i))return a;if(Ve(a)){const c=s&&ks(t)?a:a.value;return o&&Ne(c)?Ka(c):c}return Ne(a)?o?Ka(a):Ei(a):a}}class Hh extends Uh{constructor(e=!1){super(!1,e)}set(e,t,r,o){let i=e[t];const s=ie(e)&&ks(t);if(!this._isShallow){const l=zn(i);if(!Gt(r)&&!zn(r)&&(i=Ie(i),r=Ie(r)),!s&&Ve(i)&&!Ve(r))return l||(i.value=r),!0}const a=s?Number(t)n,Di=n=>Reflect.getPrototypeOf(n);function Fm(n,e,t){return function(...r){const o=this.__v_raw,i=Ie(o),s=co(i),a=n==="entries"||n===Symbol.iterator&&s,c=n==="keys"&&s,l=o[n](...r),u=t?Ba:e?bo:an;return!e&&yt(i,"iterate",c?Fa:Lr),it(Object.create(l),{next(){const{value:d,done:h}=l.next();return h?{value:d,done:h}:{value:a?[u(d[0]),u(d[1])]:u(d),done:h}}})}}function Ui(n){return function(...e){return n==="delete"?!1:n==="clear"?void 0:this}}function Bm(n,e){const t={get(o){const i=this.__v_raw,s=Ie(i),a=Ie(o);n||(wn(o,a)&&yt(s,"get",o),yt(s,"get",a));const{has:c}=Di(s),l=e?Ba:n?bo:an;if(c.call(s,o))return l(i.get(o));if(c.call(s,a))return l(i.get(a));i!==s&&i.get(o)},get size(){const o=this.__v_raw;return!n&&yt(Ie(o),"iterate",Lr),o.size},has(o){const i=this.__v_raw,s=Ie(i),a=Ie(o);return n||(wn(o,a)&&yt(s,"has",o),yt(s,"has",a)),o===a?i.has(o):i.has(o)||i.has(a)},forEach(o,i){const s=this,a=s.__v_raw,c=Ie(a),l=e?Ba:n?bo:an;return!n&&yt(c,"iterate",Lr),a.forEach((u,d)=>o.call(i,l(u),l(d),s))}};return it(t,n?{add:Ui("add"),set:Ui("set"),delete:Ui("delete"),clear:Ui("clear")}:{add(o){const i=Ie(this),s=Di(i),a=Ie(o),c=!e&&!Gt(o)&&!zn(o)?a:o;return s.has.call(i,c)||wn(o,c)&&s.has.call(i,o)||wn(a,c)&&s.has.call(i,a)||(i.add(c),Fn(i,"add",c,c)),this},set(o,i){!e&&!Gt(i)&&!zn(i)&&(i=Ie(i));const s=Ie(this),{has:a,get:c}=Di(s);let l=a.call(s,o);l||(o=Ie(o),l=a.call(s,o));const u=c.call(s,o);return s.set(o,i),l?wn(i,u)&&Fn(s,"set",o,i):Fn(s,"add",o,i),this},delete(o){const i=Ie(this),{has:s,get:a}=Di(i);let c=s.call(i,o);c||(o=Ie(o),c=s.call(i,o)),a&&a.call(i,o);const l=i.delete(o);return c&&Fn(i,"delete",o,void 0),l},clear(){const o=Ie(this),i=o.size!==0,s=o.clear();return i&&Fn(o,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(o=>{t[o]=Fm(o,n,e)}),t}function Bc(n,e){const t=Bm(n,e);return(r,o,i)=>o==="__v_isReactive"?!n:o==="__v_isReadonly"?n:o==="__v_raw"?r:Reflect.get(Pe(t,o)&&o in r?t:r,o,i)}const Km={get:Bc(!1,!1)},qm={get:Bc(!1,!0)},jm={get:Bc(!0,!1)};const Fh=new WeakMap,Bh=new WeakMap,Kh=new WeakMap,$m=new WeakMap;function Gm(n){switch(n){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Vm(n){return n.__v_skip||!Object.isExtensible(n)?0:Gm(mm(n))}function Ei(n){return zn(n)?n:Kc(n,!1,Dm,Km,Fh)}function qh(n){return Kc(n,!1,Hm,qm,Bh)}function Ka(n){return Kc(n,!0,Um,jm,Kh)}function Kc(n,e,t,r,o){if(!Ne(n)||n.__v_raw&&!(e&&n.__v_isReactive))return n;const i=Vm(n);if(i===0)return n;const s=o.get(n);if(s)return s;const a=new Proxy(n,i===2?r:t);return o.set(n,a),a}function jn(n){return zn(n)?jn(n.__v_raw):!!(n&&n.__v_isReactive)}function zn(n){return!!(n&&n.__v_isReadonly)}function Gt(n){return!!(n&&n.__v_isShallow)}function xs(n){return n?!!n.__v_raw:!1}function Ie(n){const e=n&&n.__v_raw;return e?Ie(e):n}function qc(n){return!Pe(n,"__v_skip")&&Object.isExtensible(n)&&wh(n,"__v_skip",!0),n}const an=n=>Ne(n)?Ei(n):n,bo=n=>Ne(n)?Ka(n):n;function Ve(n){return n?n.__v_isRef===!0:!1}function Te(n){return jh(n,!1)}function zm(n){return jh(n,!0)}function jh(n,e){return Ve(n)?n:new Qm(n,e)}class Qm{constructor(e,t){this.dep=new Fc,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:Ie(e),this._value=t?e:an(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,r=this.__v_isShallow||Gt(e)||zn(e);e=r?e:Ie(e),wn(e,t)&&(this._rawValue=e,this._value=r?e:an(e),this.dep.trigger())}}function ht(n){return Ve(n)?n.value:n}const Wm={get:(n,e,t)=>e==="__v_raw"?n:ht(Reflect.get(n,e,t)),set:(n,e,t,r)=>{const o=n[e];return Ve(o)&&!Ve(t)?(o.value=t,!0):Reflect.set(n,e,t,r)}};function $h(n){return jn(n)?n:new Proxy(n,Wm)}function Ym(n){const e=ie(n)?new Array(n.length):{};for(const t in n)e[t]=Xm(n,t);return e}class Jm{constructor(e,t,r){this._object=e,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=Vt(t)?t:String(t),this._raw=Ie(e);let o=!0,i=e;if(!ie(e)||Vt(this._key)||!ks(this._key))do o=!xs(i)||Gt(i);while(o&&(i=i.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=ht(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&Ve(this._raw[this._key])){const t=this._object[this._key];if(Ve(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return Om(this._raw,this._key)}}function Xm(n,e,t){return new Jm(n,e,t)}class Zm{constructor(e,t,r){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Fc(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ii-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&He!==this)return Oh(this,!0),!0}get value(){const e=this.dep.track();return Mh(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function ey(n,e,t=!1){let r,o;return fe(n)?r=n:(r=n.get,o=n.set),new Zm(r,o,t)}const Hi={},is=new WeakMap;let Er;function ty(n,e=!1,t=Er){if(t){let r=is.get(t);r||is.set(t,r=[]),r.push(n)}}function ny(n,e,t=De){const{immediate:r,deep:o,once:i,scheduler:s,augmentJob:a,call:c}=t,l=T=>o?T:Gt(T)||o===!1||o===0?Bn(T,1):Bn(T);let u,d,h,f,C=!1,p=!1;if(Ve(n)?(d=()=>n.value,C=Gt(n)):jn(n)?(d=()=>l(n),C=!0):ie(n)?(p=!0,C=n.some(T=>jn(T)||Gt(T)),d=()=>n.map(T=>{if(Ve(T))return T.value;if(jn(T))return l(T);if(fe(T))return c?c(T,2):T()})):fe(n)?e?d=c?()=>c(n,2):n:d=()=>{if(h){Gn();try{h()}finally{Vn()}}const T=Er;Er=u;try{return c?c(n,3,[f]):n(f)}finally{Er=T}}:d=Sn,e&&o){const T=d,P=o===!0?1/0:o;d=()=>Bn(T(),P)}const v=Ih(),A=()=>{u.stop(),v&&v.active&&Mc(v.effects,u)};if(i&&e){const T=e;e=(...P)=>{T(...P),A()}}let _=p?new Array(n.length).fill(Hi):Hi;const y=T=>{if(!(!(u.flags&1)||!u.dirty&&!T))if(e){const P=u.run();if(o||C||(p?P.some((Q,q)=>wn(Q,_[q])):wn(P,_))){h&&h();const Q=Er;Er=u;try{const q=[P,_===Hi?void 0:p&&_[0]===Hi?[]:_,f];_=P,c?c(e,3,q):e(...q)}finally{Er=Q}}}else u.run()};return a&&a(y),u=new Rh(d),u.scheduler=s?()=>s(y,!1):y,f=T=>ty(T,!1,u),h=u.onStop=()=>{const T=is.get(u);if(T){if(c)c(T,4);else for(const P of T)P();is.delete(u)}},e?r?y(!0):_=u.run():s?s(y.bind(null,!0),!0):u.run(),A.pause=u.pause.bind(u),A.resume=u.resume.bind(u),A.stop=A,A}function Bn(n,e=1/0,t){if(e<=0||!Ne(n)||n.__v_skip||(t=t||new Map,(t.get(n)||0)>=e))return n;if(t.set(n,e),e--,Ve(n))Bn(n.value,e,t);else if(ie(n))for(let r=0;r{Bn(r,e,t)});else if(Th(n)){for(const r in n)Bn(n[r],e,t);for(const r of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,r)&&Bn(n[r],e,t)}return n}/** +* @vue/runtime-core v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function bi(n,e,t,r){try{return r?n(...r):n()}catch(o){Ls(o,e,t)}}function cn(n,e,t,r){if(fe(n)){const o=bi(n,e,t,r);return o&&Ch(o)&&o.catch(i=>{Ls(i,e,t)}),o}if(ie(n)){const o=[];for(let i=0;i>>1,o=Rt[r],i=ai(o);i=ai(t)?Rt.push(n):Rt.splice(oy(e),0,n),n.flags|=1,Vh()}}function Vh(){ss||(ss=Gh.then(Qh))}function iy(n){ie(n)?lo.push(...n):rr&&n.id===-1?rr.splice(Jr+1,0,n):n.flags&1||(lo.push(n),n.flags|=1),Vh()}function ru(n,e,t=gn+1){for(;tai(t)-ai(r));if(lo.length=0,rr){rr.push(...e);return}for(rr=e,Jr=0;Jrn.id==null?n.flags&2?-1:1/0:n.id;function Qh(n){try{for(gn=0;gn{r._d&&us(-1);const i=as(e);let s;try{s=n(...o)}finally{as(i),r._d&&us(1)}return s};return r._n=!0,r._c=!0,r._d=!0,r}function sy(n,e){if(ft===null)return n;const t=Ks(ft),r=n.dirs||(n.dirs=[]);for(let o=0;o1)return t&&fe(e)?e.call(r&&r.proxy):e}}function ay(){return!!(Bs()||Dr)}const cy=Symbol.for("v-scx"),ly=()=>Xt(cy);function ro(n,e){return $c(n,null,e)}function fr(n,e,t){return $c(n,e,t)}function $c(n,e,t=De){const{immediate:r,deep:o,flush:i,once:s}=t,a=it({},t),c=e&&r||!e&&i!=="post";let l;if(fi){if(i==="sync"){const f=ly();l=f.__watcherHandles||(f.__watcherHandles=[])}else if(!c){const f=()=>{};return f.stop=Sn,f.resume=Sn,f.pause=Sn,f}}const u=Tt;a.call=(f,C,p)=>cn(f,u,C,p);let d=!1;i==="post"?a.scheduler=f=>{bt(f,u&&u.suspense)}:i!=="sync"&&(d=!0,a.scheduler=(f,C)=>{C?f():jc(f)}),a.augmentJob=f=>{e&&(f.flags|=4),d&&(f.flags|=2,u&&(f.id=u.uid,f.i=u))};const h=ny(n,e,a);return fi&&(l?l.push(h):c&&h()),h}function uy(n,e,t){const r=this.proxy,o=Be(n)?n.includes(".")?Yh(r,n):()=>r[n]:n.bind(r,r);let i;fe(e)?i=e:(i=e.handler,t=e);const s=_i(this),a=$c(o,i.bind(r),t);return s(),a}function Yh(n,e){const t=e.split(".");return()=>{let r=n;for(let o=0;on.__isTeleport,br=n=>n&&(n.disabled||n.disabled===""),dy=n=>n&&(n.defer||n.defer===""),ou=n=>typeof SVGElement<"u"&&n instanceof SVGElement,iu=n=>typeof MathMLElement=="function"&&n instanceof MathMLElement,qa=(n,e)=>{const t=n&&n.to;return Be(t)?e?e(t):null:t},hy={name:"Teleport",__isTeleport:!0,process(n,e,t,r,o,i,s,a,c,l){const{mc:u,pc:d,pbc:h,o:{insert:f,querySelector:C,createText:p,createComment:v,parentNode:A}}=l,_=br(e.props);let{dynamicChildren:y}=e;const T=(q,K,S)=>{q.shapeFlag&16&&u(q.children,K,S,o,i,s,a,c)},P=(q=e)=>{const K=br(q.props),S=q.target=qa(q.props,C),x=ja(S,q,p,f);S&&(s!=="svg"&&ou(S)?s="svg":s!=="mathml"&&iu(S)&&(s="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(S),K||(T(q,S,x),jo(q,!1)))},Q=q=>{const K=()=>{if(Zn.get(q)===K){if(Zn.delete(q),br(q.props)){const S=A(q.el)||t;T(q,S,q.anchor),jo(q,!0)}P(q)}};Zn.set(q,K),bt(K,i)};if(n==null){const q=e.el=p(""),K=e.anchor=p("");if(f(q,t,r),f(K,t,r),dy(e.props)||i&&i.pendingBranch){Q(e);return}_&&(T(e,t,K),jo(e,!0)),P()}else{e.el=n.el;const q=e.anchor=n.anchor,K=Zn.get(n);if(K){K.flags|=8,Zn.delete(n),Q(e);return}e.targetStart=n.targetStart;const S=e.target=n.target,x=e.targetAnchor=n.targetAnchor,V=br(n.props),U=V?t:S,Z=V?q:x;if(s==="svg"||ou(S)?s="svg":(s==="mathml"||iu(S))&&(s="mathml"),y?(h(n.dynamicChildren,y,U,o,i,s,a),Wc(n,e,!0)):c||d(n,e,U,Z,o,i,s,a,!1),_)V?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):Fi(e,t,q,l,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const ue=e.target=qa(e.props,C);ue&&Fi(e,ue,null,l,0)}else V&&Fi(e,S,x,l,1);jo(e,_)}},remove(n,e,t,{um:r,o:{remove:o}},i){const{shapeFlag:s,children:a,anchor:c,targetStart:l,targetAnchor:u,target:d,props:h}=n;let f=i||!br(h);const C=Zn.get(n);if(C&&(C.flags|=8,Zn.delete(n),f=!1),d&&(o(l),o(u)),i&&o(c),s&16)for(let p=0;p{n.isMounted=!0}),Gc(()=>{n.isUnmounting=!0}),n}const zt=[Function,Array],Zh={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:zt,onEnter:zt,onAfterEnter:zt,onEnterCancelled:zt,onBeforeLeave:zt,onLeave:zt,onAfterLeave:zt,onLeaveCancelled:zt,onBeforeAppear:zt,onAppear:zt,onAfterAppear:zt,onAppearCancelled:zt},ef=n=>{const e=n.subTree;return e.component?ef(e.component):e},py={name:"BaseTransition",props:Zh,setup(n,{slots:e}){const t=Bs(),r=gy();return()=>{const o=e.default&&rf(e.default(),!0),i=o&&o.length?tf(o):t.subTree?It():void 0;if(!i)return;const s=Ie(n),{mode:a}=s;if(r.isLeaving)return ya(i);const c=su(i);if(!c)return ya(i);let l=$a(c,s,r,t,d=>l=d);c.type!==vt&&ci(c,l);let u=t.subTree&&su(t.subTree);if(u&&u.type!==vt&&!_r(u,c)&&ef(t).type!==vt){let d=$a(u,s,r,t);if(ci(u,d),a==="out-in"&&c.type!==vt)return r.isLeaving=!0,d.afterLeave=()=>{r.isLeaving=!1,t.job.flags&8||t.update(),delete d.afterLeave,u=void 0},ya(i);a==="in-out"&&c.type!==vt?d.delayLeave=(h,f,C)=>{const p=nf(r,u);p[String(u.key)]=u,h[pn]=()=>{f(),h[pn]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{C(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return i}}};function tf(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==vt){e=t;break}}return e}const my=py;function nf(n,e){const{leavingVNodes:t}=n;let r=t.get(e.type);return r||(r=Object.create(null),t.set(e.type,r)),r}function $a(n,e,t,r,o){const{appear:i,mode:s,persisted:a=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:f,onAfterLeave:C,onLeaveCancelled:p,onBeforeAppear:v,onAppear:A,onAfterAppear:_,onAppearCancelled:y}=e,T=String(n.key),P=nf(t,n),Q=(S,x)=>{S&&cn(S,r,9,x)},q=(S,x)=>{const V=x[1];Q(S,x),ie(S)?S.every(U=>U.length<=1)&&V():S.length<=1&&V()},K={mode:s,persisted:a,beforeEnter(S){let x=c;if(!t.isMounted)if(i)x=v||c;else return;S[pn]&&S[pn](!0);const V=P[T];V&&_r(n,V)&&V.el[pn]&&V.el[pn](),Q(x,[S])},enter(S){if(P[T]===n)return;let x=l,V=u,U=d;if(!t.isMounted)if(i)x=A||l,V=_||u,U=y||d;else return;let Z=!1;S[Uo]=we=>{Z||(Z=!0,we?Q(U,[S]):Q(V,[S]),K.delayedLeave&&K.delayedLeave(),S[Uo]=void 0)};const ue=S[Uo].bind(null,!1);x?q(x,[S,ue]):ue()},leave(S,x){const V=String(n.key);if(S[Uo]&&S[Uo](!0),t.isUnmounting)return x();Q(h,[S]);let U=!1;S[pn]=ue=>{U||(U=!0,x(),ue?Q(p,[S]):Q(C,[S]),S[pn]=void 0,P[V]===n&&delete P[V])};const Z=S[pn].bind(null,!1);P[V]=n,f?q(f,[S,Z]):Z()},clone(S){const x=$a(S,e,t,r,o);return o&&o(x),x}};return K}function ya(n){if(Ds(n))return n=pr(n),n.children=null,n}function su(n){if(!Ds(n))return Xh(n.type)&&n.children?tf(n.children):n;if(n.component)return n.component.subTree;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&fe(t.default))return t.default()}}function ci(n,e){n.shapeFlag&6&&n.component?(n.transition=e,ci(n.component.subTree,e)):n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function rf(n,e=!1,t){let r=[],o=0;for(let i=0;i1)for(let i=0;iYo(p,e&&(ie(e)?e[v]:e),t,r,o));return}if(uo(r)&&!o){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Yo(n,e,t,r.component.subTree);return}const i=r.shapeFlag&4?Ks(r.component):r.el,s=o?null:i,{i:a,r:c}=n,l=e&&e.r,u=a.refs===De?a.refs={}:a.refs,d=a.setupState,h=Ie(d),f=d===De?mh:p=>au(u,p)?!1:Pe(h,p),C=(p,v)=>!(v&&au(u,v));if(l!=null&&l!==c){if(cu(e),Be(l))u[l]=null,f(l)&&(d[l]=null);else if(Ve(l)){const p=e;C(l,p.k)&&(l.value=null),p.k&&(u[p.k]=null)}}if(fe(c))bi(c,a,12,[s,u]);else{const p=Be(c),v=Ve(c);if(p||v){const A=()=>{if(n.f){const _=p?f(c)?d[c]:u[c]:C()||!n.k?c.value:u[n.k];if(o)ie(_)&&Mc(_,i);else if(ie(_))_.includes(i)||_.push(i);else if(p)u[c]=[i],f(c)&&(d[c]=u[c]);else{const y=[i];C(c,n.k)&&(c.value=y),n.k&&(u[n.k]=y)}}else p?(u[c]=s,f(c)&&(d[c]=s)):v&&(C(c,n.k)&&(c.value=s),n.k&&(u[n.k]=s))};if(s){const _=()=>{A(),cs.delete(n)};_.id=-1,cs.set(n,_),bt(_,t)}else cu(n),A()}}}function cu(n){const e=cs.get(n);e&&(e.flags|=8,cs.delete(n))}Ns().requestIdleCallback;Ns().cancelIdleCallback;const uo=n=>!!n.type.__asyncLoader,Ds=n=>n.type.__isKeepAlive;function yy(n,e){sf(n,"a",e)}function Cy(n,e){sf(n,"da",e)}function sf(n,e,t=Tt){const r=n.__wdc||(n.__wdc=()=>{let o=t;for(;o;){if(o.isDeactivated)return;o=o.parent}return n()});if(Us(e,r,t),t){let o=t.parent;for(;o&&o.parent;)Ds(o.parent.vnode)&&vy(r,e,t,o),o=o.parent}}function vy(n,e,t,r){const o=Us(e,n,r,!0);Vc(()=>{Mc(r[e],o)},t)}function Us(n,e,t=Tt,r=!1){if(t){const o=t[n]||(t[n]=[]),i=e.__weh||(e.__weh=(...s)=>{Gn();const a=_i(t),c=cn(e,t,n,s);return a(),Vn(),c});return r?o.unshift(i):o.push(i),i}}const Qn=n=>(e,t=Tt)=>{(!fi||n==="sp")&&Us(n,(...r)=>e(...r),t)},Ty=Qn("bm"),li=Qn("m"),wy=Qn("bu"),Ay=Qn("u"),Gc=Qn("bum"),Vc=Qn("um"),Ey=Qn("sp"),by=Qn("rtg"),_y=Qn("rtc");function Sy(n,e=Tt){Us("ec",n,e)}const af="components";function Iy(n,e){return lf(af,n,!0,e)||n}const cf=Symbol.for("v-ndc");function Ho(n){return Be(n)?lf(af,n,!1)||n:n||cf}function lf(n,e,t=!0,r=!1){const o=ft||Tt;if(o){const i=o.type;{const a=dC(i,!1);if(a&&(a===e||a===Ot(e)||a===Ps(Ot(e))))return i}const s=lu(o[n]||i[n],e)||lu(o.appContext[n],e);return!s&&r?i:s}}function lu(n,e){return n&&(n[e]||n[Ot(e)]||n[Ps(Ot(e))])}function ho(n,e,t,r){let o;const i=t,s=ie(n);if(s||Be(n)){const a=s&&jn(n);let c=!1,l=!1;a&&(c=!Gt(n),l=zn(n),n=Ms(n)),o=new Array(n.length);for(let u=0,d=n.length;ue(a,c,void 0,i));else{const a=Object.keys(n);o=new Array(a.length);for(let c=0,l=a.length;c0;return e!=="default"&&(t.name=e),se(),An(Fe,null,[Ge("slot",t,r&&r())],l?-2:64)}let i=n[e];i&&i._c&&(i._d=!1),se();const s=i&&uf(i(t)),a=t.key||s&&s.key,c=An(Fe,{key:(a&&!Vt(a)?a:`_${e}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&n._===1?64:-2);return c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),i&&i._c&&(i._d=!0),c}function uf(n){return n.some(e=>di(e)?!(e.type===vt||e.type===Fe&&!uf(e.children)):!0)?n:null}const Ga=n=>n?kf(n)?Ks(n):Ga(n.parent):null,Jo=it(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>Ga(n.parent),$root:n=>Ga(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>hf(n),$forceUpdate:n=>n.f||(n.f=()=>{jc(n.update)}),$nextTick:n=>n.n||(n.n=Hr.bind(n.proxy)),$watch:n=>uy.bind(n)}),Ca=(n,e)=>n!==De&&!n.__isScriptSetup&&Pe(n,e),Ry={get({_:n},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:r,data:o,props:i,accessCache:s,type:a,appContext:c}=n;if(e[0]!=="$"){const h=s[e];if(h!==void 0)switch(h){case 1:return r[e];case 2:return o[e];case 4:return t[e];case 3:return i[e]}else{if(Ca(r,e))return s[e]=1,r[e];if(o!==De&&Pe(o,e))return s[e]=2,o[e];if(Pe(i,e))return s[e]=3,i[e];if(t!==De&&Pe(t,e))return s[e]=4,t[e];Va&&(s[e]=0)}}const l=Jo[e];let u,d;if(l)return e==="$attrs"&&yt(n.attrs,"get",""),l(n);if((u=a.__cssModules)&&(u=u[e]))return u;if(t!==De&&Pe(t,e))return s[e]=4,t[e];if(d=c.config.globalProperties,Pe(d,e))return d[e]},set({_:n},e,t){const{data:r,setupState:o,ctx:i}=n;return Ca(o,e)?(o[e]=t,!0):r!==De&&Pe(r,e)?(r[e]=t,!0):Pe(n.props,e)||e[0]==="$"&&e.slice(1)in n?!1:(i[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:r,appContext:o,props:i,type:s}},a){let c;return!!(t[a]||n!==De&&a[0]!=="$"&&Pe(n,a)||Ca(e,a)||Pe(i,a)||Pe(r,a)||Pe(Jo,a)||Pe(o.config.globalProperties,a)||(c=s.__cssModules)&&c[a])},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:Pe(t,"value")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function ky(){return Oy().attrs}function Oy(n){const e=Bs();return e.setupContext||(e.setupContext=Pf(e))}function uu(n){return ie(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}let Va=!0;function Py(n){const e=hf(n),t=n.proxy,r=n.ctx;Va=!1,e.beforeCreate&&du(e.beforeCreate,n,"bc");const{data:o,computed:i,methods:s,watch:a,provide:c,inject:l,created:u,beforeMount:d,mounted:h,beforeUpdate:f,updated:C,activated:p,deactivated:v,beforeDestroy:A,beforeUnmount:_,destroyed:y,unmounted:T,render:P,renderTracked:Q,renderTriggered:q,errorCaptured:K,serverPrefetch:S,expose:x,inheritAttrs:V,components:U,directives:Z,filters:ue}=e;if(l&&Ny(l,r,null),s)for(const oe in s){const ge=s[oe];fe(ge)&&(r[oe]=ge.bind(t))}if(o){const oe=o.call(t,t);Ne(oe)&&(n.data=Ei(oe))}if(Va=!0,i)for(const oe in i){const ge=i[oe],Re=fe(ge)?ge.bind(t,t):fe(ge.get)?ge.get.bind(t,t):Sn,ve=!fe(ge)&&fe(ge.set)?ge.set.bind(t):Sn,ze=_e({get:Re,set:ve});Object.defineProperty(r,oe,{enumerable:!0,configurable:!0,get:()=>ze.value,set:et=>ze.value=et})}if(a)for(const oe in a)df(a[oe],r,t,oe);if(c){const oe=fe(c)?c.call(t):c;Reflect.ownKeys(oe).forEach(ge=>{Xi(ge,oe[ge])})}u&&du(u,n,"c");function me(oe,ge){ie(ge)?ge.forEach(Re=>oe(Re.bind(t))):ge&&oe(ge.bind(t))}if(me(Ty,d),me(li,h),me(wy,f),me(Ay,C),me(yy,p),me(Cy,v),me(Sy,K),me(_y,Q),me(by,q),me(Gc,_),me(Vc,T),me(Ey,S),ie(x))if(x.length){const oe=n.exposed||(n.exposed={});x.forEach(ge=>{Object.defineProperty(oe,ge,{get:()=>t[ge],set:Re=>t[ge]=Re,enumerable:!0})})}else n.exposed||(n.exposed={});P&&n.render===Sn&&(n.render=P),V!=null&&(n.inheritAttrs=V),U&&(n.components=U),Z&&(n.directives=Z),S&&of(n)}function Ny(n,e,t=Sn){ie(n)&&(n=za(n));for(const r in n){const o=n[r];let i;Ne(o)?"default"in o?i=Xt(o.from||r,o.default,!0):i=Xt(o.from||r):i=Xt(o),Ve(i)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:s=>i.value=s}):e[r]=i}}function du(n,e,t){cn(ie(n)?n.map(r=>r.bind(e.proxy)):n.bind(e.proxy),e,t)}function df(n,e,t,r){let o=r.includes(".")?Yh(t,r):()=>t[r];if(Be(n)){const i=e[n];fe(i)&&fr(o,i)}else if(fe(n))fr(o,n.bind(t));else if(Ne(n))if(ie(n))n.forEach(i=>df(i,e,t,r));else{const i=fe(n.handler)?n.handler.bind(t):e[n.handler];fe(i)&&fr(o,i,n)}}function hf(n){const e=n.type,{mixins:t,extends:r}=e,{mixins:o,optionsCache:i,config:{optionMergeStrategies:s}}=n.appContext,a=i.get(e);let c;return a?c=a:!o.length&&!t&&!r?c=e:(c={},o.length&&o.forEach(l=>ls(c,l,s,!0)),ls(c,e,s)),Ne(e)&&i.set(e,c),c}function ls(n,e,t,r=!1){const{mixins:o,extends:i}=e;i&&ls(n,i,t,!0),o&&o.forEach(s=>ls(n,s,t,!0));for(const s in e)if(!(r&&s==="expose")){const a=My[s]||t&&t[s];n[s]=a?a(n[s],e[s]):e[s]}return n}const My={data:hu,props:fu,emits:fu,methods:$o,computed:$o,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:$o,directives:$o,watch:Ly,provide:hu,inject:xy};function hu(n,e){return e?n?function(){return it(fe(n)?n.call(this,this):n,fe(e)?e.call(this,this):e)}:e:n}function xy(n,e){return $o(za(n),za(e))}function za(n){if(ie(n)){const e={};for(let t=0;te==="modelValue"||e==="model-value"?n.modelModifiers:n[`${e}Modifiers`]||n[`${Ot(e)}Modifiers`]||n[`${Cr(e)}Modifiers`];function Fy(n,e,...t){if(n.isUnmounted)return;const r=n.vnode.props||De;let o=t;const i=e.startsWith("update:"),s=i&&Hy(r,e.slice(7));s&&(s.trim&&(o=t.map(u=>Be(u)?u.trim():u)),s.number&&(o=t.map(xc)));let a,c=r[a=ha(e)]||r[a=ha(Ot(e))];!c&&i&&(c=r[a=ha(Cr(e))]),c&&cn(c,n,6,o);const l=r[a+"Once"];if(l){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,cn(l,n,6,o)}}const By=new WeakMap;function gf(n,e,t=!1){const r=t?By:e.emitsCache,o=r.get(n);if(o!==void 0)return o;const i=n.emits;let s={},a=!1;if(!fe(n)){const c=l=>{const u=gf(l,e,!0);u&&(a=!0,it(s,u))};!t&&e.mixins.length&&e.mixins.forEach(c),n.extends&&c(n.extends),n.mixins&&n.mixins.forEach(c)}return!i&&!a?(Ne(n)&&r.set(n,null),null):(ie(i)?i.forEach(c=>s[c]=null):it(s,i),Ne(n)&&r.set(n,s),s)}function Hs(n,e){return!n||!Is(e)?!1:(e=e.slice(2).replace(/Once$/,""),Pe(n,e[0].toLowerCase()+e.slice(1))||Pe(n,Cr(e))||Pe(n,e))}function gu(n){const{type:e,vnode:t,proxy:r,withProxy:o,propsOptions:[i],slots:s,attrs:a,emit:c,render:l,renderCache:u,props:d,data:h,setupState:f,ctx:C,inheritAttrs:p}=n,v=as(n);let A,_;try{if(t.shapeFlag&4){const T=o||r,P=T;A=Tn(l.call(P,T,u,d,f,h,C)),_=a}else{const T=e;A=Tn(T.length>1?T(d,{attrs:a,slots:s,emit:c}):T(d,null)),_=e.props?a:Ky(a)}}catch(T){Xo.length=0,Ls(T,n,1),A=Ge(vt)}let y=A;if(_&&p!==!1){const T=Object.keys(_),{shapeFlag:P}=y;T.length&&P&7&&(i&&T.some(Rs)&&(_=qy(_,i)),y=pr(y,_,!1,!0))}return t.dirs&&(y=pr(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&ci(y,t.transition),A=y,as(v),A}const Ky=n=>{let e;for(const t in n)(t==="class"||t==="style"||Is(t))&&((e||(e={}))[t]=n[t]);return e},qy=(n,e)=>{const t={};for(const r in n)(!Rs(r)||!(r.slice(9)in e))&&(t[r]=n[r]);return t};function jy(n,e,t){const{props:r,children:o,component:i}=n,{props:s,children:a,patchFlag:c}=e,l=i.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&c>=0){if(c&1024)return!0;if(c&16)return r?pu(r,s,l):!!s;if(c&8){const u=e.dynamicProps;for(let d=0;dObject.create(mf),Cf=n=>Object.getPrototypeOf(n)===mf;function Gy(n,e,t,r=!1){const o={},i=yf();n.propsDefaults=Object.create(null),vf(n,e,o,i);for(const s in n.propsOptions[0])s in o||(o[s]=void 0);t?n.props=r?o:qh(o):n.type.props?n.props=o:n.props=i,n.attrs=i}function Vy(n,e,t,r){const{props:o,attrs:i,vnode:{patchFlag:s}}=n,a=Ie(o),[c]=n.propsOptions;let l=!1;if((r||s>0)&&!(s&16)){if(s&8){const u=n.vnode.dynamicProps;for(let d=0;d{c=!0;const[h,f]=Tf(d,e,!0);it(s,h),f&&a.push(...f)};!t&&e.mixins.length&&e.mixins.forEach(u),n.extends&&u(n.extends),n.mixins&&n.mixins.forEach(u)}if(!i&&!c)return Ne(n)&&r.set(n,ao),ao;if(ie(i))for(let u=0;un==="_"||n==="_ctx"||n==="$stable",Qc=n=>ie(n)?n.map(Tn):[Tn(n)],Qy=(n,e,t)=>{if(e._n)return e;const r=or((...o)=>Qc(e(...o)),t);return r._c=!1,r},wf=(n,e,t)=>{const r=n._ctx;for(const o in n){if(zc(o))continue;const i=n[o];if(fe(i))e[o]=Qy(o,i,r);else if(i!=null){const s=Qc(i);e[o]=()=>s}}},Af=(n,e)=>{const t=Qc(e);n.slots.default=()=>t},Ef=(n,e,t)=>{for(const r in e)(t||!zc(r))&&(n[r]=e[r])},Wy=(n,e,t)=>{const r=n.slots=yf();if(n.vnode.shapeFlag&32){const o=e._;o?(Ef(r,e,t),t&&wh(r,"_",o,!0)):wf(e,r)}else e&&Af(n,e)},Yy=(n,e,t)=>{const{vnode:r,slots:o}=n;let i=!0,s=De;if(r.shapeFlag&32){const a=e._;a?t&&a===1?i=!1:Ef(o,e,t):(i=!e.$stable,wf(e,o)),s=e}else e&&(Af(n,e),s={default:1});if(i)for(const a in o)!zc(a)&&s[a]==null&&delete o[a]},bt=tC;function Jy(n){return Xy(n)}function Xy(n,e){const t=Ns();t.__VUE__=!0;const{insert:r,remove:o,patchProp:i,createElement:s,createText:a,createComment:c,setText:l,setElementText:u,parentNode:d,nextSibling:h,setScopeId:f=Sn,insertStaticContent:C}=n,p=(g,m,w,N=null,L=null,M=null,z=void 0,G=null,j=!!m.dynamicChildren)=>{if(g===m)return;g&&!_r(g,m)&&(N=I(g),et(g,L,M,!0),g=null),m.patchFlag===-2&&(j=!1,m.dynamicChildren=null);const{type:H,ref:re,shapeFlag:W}=m;switch(H){case Fs:v(g,m,w,N);break;case vt:A(g,m,w,N);break;case Zi:g==null&&_(m,w,N,z);break;case Fe:U(g,m,w,N,L,M,z,G,j);break;default:W&1?P(g,m,w,N,L,M,z,G,j):W&6?Z(g,m,w,N,L,M,z,G,j):(W&64||W&128)&&H.process(g,m,w,N,L,M,z,G,j,Y)}re!=null&&L?Yo(re,g&&g.ref,M,m||g,!m):re==null&&g&&g.ref!=null&&Yo(g.ref,null,M,g,!0)},v=(g,m,w,N)=>{if(g==null)r(m.el=a(m.children),w,N);else{const L=m.el=g.el;m.children!==g.children&&l(L,m.children)}},A=(g,m,w,N)=>{g==null?r(m.el=c(m.children||""),w,N):m.el=g.el},_=(g,m,w,N)=>{[g.el,g.anchor]=C(g.children,m,w,N,g.el,g.anchor)},y=({el:g,anchor:m},w,N)=>{let L;for(;g&&g!==m;)L=h(g),r(g,w,N),g=L;r(m,w,N)},T=({el:g,anchor:m})=>{let w;for(;g&&g!==m;)w=h(g),o(g),g=w;o(m)},P=(g,m,w,N,L,M,z,G,j)=>{if(m.type==="svg"?z="svg":m.type==="math"&&(z="mathml"),g==null)Q(m,w,N,L,M,z,G,j);else{const H=g.el&&g.el._isVueCE?g.el:null;try{H&&H._beginPatch(),S(g,m,L,M,z,G,j)}finally{H&&H._endPatch()}}},Q=(g,m,w,N,L,M,z,G)=>{let j,H;const{props:re,shapeFlag:W,transition:ee,dirs:ae}=g;if(j=g.el=s(g.type,M,re&&re.is,re),W&8?u(j,g.children):W&16&&K(g.children,j,null,N,L,va(g,M),z,G),ae&&vr(g,null,N,"created"),q(j,g,g.scopeId,z,N),re){for(const ke in re)ke!=="value"&&!zo(ke)&&i(j,ke,null,re[ke],M,N);"value"in re&&i(j,"value",null,re.value,M),(H=re.onVnodeBeforeMount)&&hn(H,N,g)}ae&&vr(g,null,N,"beforeMount");const be=Zy(L,ee);be&&ee.beforeEnter(j),r(j,m,w),((H=re&&re.onVnodeMounted)||be||ae)&&bt(()=>{try{H&&hn(H,N,g),be&&ee.enter(j),ae&&vr(g,null,N,"mounted")}finally{}},L)},q=(g,m,w,N,L)=>{if(w&&f(g,w),N)for(let M=0;M{for(let H=j;H{const G=m.el=g.el;let{patchFlag:j,dynamicChildren:H,dirs:re}=m;j|=g.patchFlag&16;const W=g.props||De,ee=m.props||De;let ae;if(w&&Tr(w,!1),(ae=ee.onVnodeBeforeUpdate)&&hn(ae,w,m,g),re&&vr(m,g,w,"beforeUpdate"),w&&Tr(w,!0),(W.innerHTML&&ee.innerHTML==null||W.textContent&&ee.textContent==null)&&u(G,""),H?x(g.dynamicChildren,H,G,w,N,va(m,L),M):z||ge(g,m,G,null,w,N,va(m,L),M,!1),j>0){if(j&16)V(G,W,ee,w,L);else if(j&2&&W.class!==ee.class&&i(G,"class",null,ee.class,L),j&4&&i(G,"style",W.style,ee.style,L),j&8){const be=m.dynamicProps;for(let ke=0;ke{ae&&hn(ae,w,m,g),re&&vr(m,g,w,"updated")},N)},x=(g,m,w,N,L,M,z)=>{for(let G=0;G{if(m!==w){if(m!==De)for(const M in m)!zo(M)&&!(M in w)&&i(g,M,m[M],null,L,N);for(const M in w){if(zo(M))continue;const z=w[M],G=m[M];z!==G&&M!=="value"&&i(g,M,G,z,L,N)}"value"in w&&i(g,"value",m.value,w.value,L)}},U=(g,m,w,N,L,M,z,G,j)=>{const H=m.el=g?g.el:a(""),re=m.anchor=g?g.anchor:a("");let{patchFlag:W,dynamicChildren:ee,slotScopeIds:ae}=m;ae&&(G=G?G.concat(ae):ae),g==null?(r(H,w,N),r(re,w,N),K(m.children||[],w,re,L,M,z,G,j)):W>0&&W&64&&ee&&g.dynamicChildren&&g.dynamicChildren.length===ee.length?(x(g.dynamicChildren,ee,w,L,M,z,G),(m.key!=null||L&&m===L.subTree)&&Wc(g,m,!0)):ge(g,m,w,re,L,M,z,G,j)},Z=(g,m,w,N,L,M,z,G,j)=>{m.slotScopeIds=G,g==null?m.shapeFlag&512?L.ctx.activate(m,w,N,z,j):ue(m,w,N,L,M,z,j):we(g,m,j)},ue=(g,m,w,N,L,M,z)=>{const G=g.component=aC(g,N,L);if(Ds(g)&&(G.ctx.renderer=Y),cC(G,!1,z),G.asyncDep){if(L&&L.registerDep(G,me,z),!g.el){const j=G.subTree=Ge(vt);A(null,j,m,w),g.placeholder=j.el}}else me(G,g,m,w,L,M,z)},we=(g,m,w)=>{const N=m.component=g.component;if(jy(g,m,w))if(N.asyncDep&&!N.asyncResolved){oe(N,m,w);return}else N.next=m,N.update();else m.el=g.el,N.vnode=m},me=(g,m,w,N,L,M,z)=>{const G=()=>{if(g.isMounted){let{next:W,bu:ee,u:ae,parent:be,vnode:ke}=g;{const Lt=bf(g);if(Lt){W&&(W.el=ke.el,oe(g,W,z)),Lt.asyncDep.then(()=>{bt(()=>{g.isUnmounted||H()},L)});return}}let Me=W,Qe;Tr(g,!1),W?(W.el=ke.el,oe(g,W,z)):W=ke,ee&&Ji(ee),(Qe=W.props&&W.props.onVnodeBeforeUpdate)&&hn(Qe,be,W,ke),Tr(g,!0);const Ze=gu(g),xt=g.subTree;g.subTree=Ze,p(xt,Ze,d(xt.el),I(xt),g,L,M),W.el=Ze.el,Me===null&&$y(g,Ze.el),ae&&bt(ae,L),(Qe=W.props&&W.props.onVnodeUpdated)&&bt(()=>hn(Qe,be,W,ke),L)}else{let W;const{el:ee,props:ae}=m,{bm:be,m:ke,parent:Me,root:Qe,type:Ze}=g,xt=uo(m);Tr(g,!1),be&&Ji(be),!xt&&(W=ae&&ae.onVnodeBeforeMount)&&hn(W,Me,m),Tr(g,!0);{Qe.ce&&Qe.ce._hasShadowRoot()&&Qe.ce._injectChildStyle(Ze,g.parent?g.parent.type:void 0);const Lt=g.subTree=gu(g);p(null,Lt,w,N,g,L,M),m.el=Lt.el}if(ke&&bt(ke,L),!xt&&(W=ae&&ae.onVnodeMounted)){const Lt=m;bt(()=>hn(W,Me,Lt),L)}(m.shapeFlag&256||Me&&uo(Me.vnode)&&Me.vnode.shapeFlag&256)&&g.a&&bt(g.a,L),g.isMounted=!0,m=w=N=null}};g.scope.on();const j=g.effect=new Rh(G);g.scope.off();const H=g.update=j.run.bind(j),re=g.job=j.runIfDirty.bind(j);re.i=g,re.id=g.uid,j.scheduler=()=>jc(re),Tr(g,!0),H()},oe=(g,m,w)=>{m.component=g;const N=g.vnode.props;g.vnode=m,g.next=null,Vy(g,m.props,N,w),Yy(g,m.children,w),Gn(),ru(g),Vn()},ge=(g,m,w,N,L,M,z,G,j=!1)=>{const H=g&&g.children,re=g?g.shapeFlag:0,W=m.children,{patchFlag:ee,shapeFlag:ae}=m;if(ee>0){if(ee&128){ve(H,W,w,N,L,M,z,G,j);return}else if(ee&256){Re(H,W,w,N,L,M,z,G,j);return}}ae&8?(re&16&&pe(H,L,M),W!==H&&u(w,W)):re&16?ae&16?ve(H,W,w,N,L,M,z,G,j):pe(H,L,M,!0):(re&8&&u(w,""),ae&16&&K(W,w,N,L,M,z,G,j))},Re=(g,m,w,N,L,M,z,G,j)=>{g=g||ao,m=m||ao;const H=g.length,re=m.length,W=Math.min(H,re);let ee;for(ee=0;eere?pe(g,L,M,!0,!1,W):K(m,w,N,L,M,z,G,j,W)},ve=(g,m,w,N,L,M,z,G,j)=>{let H=0;const re=m.length;let W=g.length-1,ee=re-1;for(;H<=W&&H<=ee;){const ae=g[H],be=m[H]=j?Un(m[H]):Tn(m[H]);if(_r(ae,be))p(ae,be,w,null,L,M,z,G,j);else break;H++}for(;H<=W&&H<=ee;){const ae=g[W],be=m[ee]=j?Un(m[ee]):Tn(m[ee]);if(_r(ae,be))p(ae,be,w,null,L,M,z,G,j);else break;W--,ee--}if(H>W){if(H<=ee){const ae=ee+1,be=aeee)for(;H<=W;)et(g[H],L,M,!0),H++;else{const ae=H,be=H,ke=new Map;for(H=be;H<=ee;H++){const tt=m[H]=j?Un(m[H]):Tn(m[H]);tt.key!=null&&ke.set(tt.key,H)}let Me,Qe=0;const Ze=ee-be+1;let xt=!1,Lt=0;const Wn=new Array(Ze);for(H=0;H=Ze){et(tt,L,M,!0);continue}let gt;if(tt.key!=null)gt=ke.get(tt.key);else for(Me=be;Me<=ee;Me++)if(Wn[Me-be]===0&&_r(tt,m[Me])){gt=Me;break}gt===void 0?et(tt,L,M,!0):(Wn[gt-be]=H+1,gt>=Lt?Lt=gt:xt=!0,p(tt,m[gt],w,null,L,M,z,G,j),Qe++)}const Yn=xt?eC(Wn):ao;for(Me=Yn.length-1,H=Ze-1;H>=0;H--){const tt=be+H,gt=m[tt],Wl=m[tt+1],Yl=tt+1{const{el:M,type:z,transition:G,children:j,shapeFlag:H}=g;if(H&6){ze(g.component.subTree,m,w,N);return}if(H&128){g.suspense.move(m,w,N);return}if(H&64){z.move(g,m,w,Y);return}if(z===Fe){r(M,m,w);for(let W=0;WG.enter(M),L);else{const{leave:W,delayLeave:ee,afterLeave:ae}=G,be=()=>{g.ctx.isUnmounted?o(M):r(M,m,w)},ke=()=>{M._isLeaving&&M[pn](!0),W(M,()=>{be(),ae&&ae()})};ee?ee(M,be,ke):ke()}else r(M,m,w)},et=(g,m,w,N=!1,L=!1)=>{const{type:M,props:z,ref:G,children:j,dynamicChildren:H,shapeFlag:re,patchFlag:W,dirs:ee,cacheIndex:ae,memo:be}=g;if(W===-2&&(L=!1),G!=null&&(Gn(),Yo(G,null,w,g,!0),Vn()),ae!=null&&(m.renderCache[ae]=void 0),re&256){m.ctx.deactivate(g);return}const ke=re&1&&ee,Me=!uo(g);let Qe;if(Me&&(Qe=z&&z.onVnodeBeforeUnmount)&&hn(Qe,m,g),re&6)R(g.component,w,N);else{if(re&128){g.suspense.unmount(w,N);return}ke&&vr(g,null,m,"beforeUnmount"),re&64?g.type.remove(g,m,w,Y,N):H&&!H.hasOnce&&(M!==Fe||W>0&&W&64)?pe(H,m,w,!1,!0):(M===Fe&&W&384||!L&&re&16)&&pe(j,m,w),N&&Ke(g)}const Ze=be!=null&&ae==null;(Me&&(Qe=z&&z.onVnodeUnmounted)||ke||Ze)&&bt(()=>{Qe&&hn(Qe,m,g),ke&&vr(g,null,m,"unmounted"),Ze&&(g.el=null)},w)},Ke=g=>{const{type:m,el:w,anchor:N,transition:L}=g;if(m===Fe){lt(w,N);return}if(m===Zi){T(g);return}const M=()=>{o(w),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(g.shapeFlag&1&&L&&!L.persisted){const{leave:z,delayLeave:G}=L,j=()=>z(w,M);G?G(g.el,M,j):j()}else M()},lt=(g,m)=>{let w;for(;g!==m;)w=h(g),o(g),g=w;o(m)},R=(g,m,w)=>{const{bum:N,scope:L,job:M,subTree:z,um:G,m:j,a:H}=g;yu(j),yu(H),N&&Ji(N),L.stop(),M&&(M.flags|=8,et(z,g,m,w)),G&&bt(G,m),bt(()=>{g.isUnmounted=!0},m)},pe=(g,m,w,N=!1,L=!1,M=0)=>{for(let z=M;z{if(g.shapeFlag&6)return I(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const m=h(g.anchor||g.el),w=m&&m[Jh];return w?h(w):m};let D=!1;const F=(g,m,w)=>{let N;g==null?m._vnode&&(et(m._vnode,null,null,!0),N=m._vnode.component):p(m._vnode||null,g,m,null,null,null,w),m._vnode=g,D||(D=!0,ru(N),zh(),D=!1)},Y={p,um:et,m:ze,r:Ke,mt:ue,mc:K,pc:ge,pbc:x,n:I,o:n};return{render:F,hydrate:void 0,createApp:Uy(F)}}function va({type:n,props:e},t){return t==="svg"&&n==="foreignObject"||t==="mathml"&&n==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function Tr({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function Zy(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function Wc(n,e,t=!1){const r=n.children,o=e.children;if(ie(r)&&ie(o))for(let i=0;i>1,n[t[a]]0&&(e[r]=t[i-1]),t[i]=r)}}for(i=t.length,s=t[i-1];i-- >0;)t[i]=s,s=e[s];return t}function bf(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:bf(e)}function yu(n){if(n)for(let e=0;en.__isSuspense;function tC(n,e){e&&e.pendingBranch?ie(n)?e.effects.push(...n):e.effects.push(n):iy(n)}const Fe=Symbol.for("v-fgt"),Fs=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Zi=Symbol.for("v-stc"),Xo=[];let jt=null;function se(n=!1){Xo.push(jt=n?null:[])}function nC(){Xo.pop(),jt=Xo[Xo.length-1]||null}let ui=1;function us(n,e=!1){ui+=n,n<0&&jt&&e&&(jt.hasOnce=!0)}function If(n){return n.dynamicChildren=ui>0?jt||ao:null,nC(),ui>0&&jt&&jt.push(n),n}function ye(n,e,t,r,o,i){return If(te(n,e,t,r,o,i,!0))}function An(n,e,t,r,o){return If(Ge(n,e,t,r,o,!0))}function di(n){return n?n.__v_isVNode===!0:!1}function _r(n,e){return n.type===e.type&&n.key===e.key}const Rf=({key:n})=>n??null,es=({ref:n,ref_key:e,ref_for:t})=>(typeof n=="number"&&(n=""+n),n!=null?Be(n)||Ve(n)||fe(n)?{i:ft,r:n,k:e,f:!!t}:n:null);function te(n,e=null,t=null,r=0,o=null,i=n===Fe?0:1,s=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&Rf(e),ref:e&&es(e),scopeId:Wh,slotScopeIds:null,children:t,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:i,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ft};return a?(Yc(c,t),i&128&&n.normalize(c)):t&&(c.shapeFlag|=Be(t)?8:16),ui>0&&!s&&jt&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&jt.push(c),c}const Ge=rC;function rC(n,e=null,t=null,r=0,o=null,i=!1){if((!n||n===cf)&&(n=vt),di(n)){const a=pr(n,e,!0);return t&&Yc(a,t),ui>0&&!i&&jt&&(a.shapeFlag&6?jt[jt.indexOf(n)]=a:jt.push(a)),a.patchFlag=-2,a}if(hC(n)&&(n=n.__vccOpts),e){e=oC(e);let{class:a,style:c}=e;a&&!Be(a)&&(e.class=Bt(a)),Ne(c)&&(xs(c)&&!ie(c)&&(c=it({},c)),e.style=hr(c))}const s=Be(n)?1:Sf(n)?128:Xh(n)?64:Ne(n)?4:fe(n)?2:0;return te(n,e,t,r,o,s,i,!0)}function oC(n){return n?xs(n)||Cf(n)?it({},n):n:null}function pr(n,e,t=!1,r=!1){const{props:o,ref:i,patchFlag:s,children:a,transition:c}=n,l=e?Zo(o||{},e):o,u={__v_isVNode:!0,__v_skip:!0,type:n.type,props:l,key:l&&Rf(l),ref:e&&e.ref?t&&i?ie(i)?i.concat(es(e)):[i,es(e)]:es(e):i,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==Fe?s===-1?16:s|16:s,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:c,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&pr(n.ssContent),ssFallback:n.ssFallback&&pr(n.ssFallback),placeholder:n.placeholder,el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return c&&r&&ci(u,c.clone(u)),u}function hi(n=" ",e=0){return Ge(Fs,null,n,e)}function RI(n,e){const t=Ge(Zi,null,n);return t.staticCount=e,t}function It(n="",e=!1){return e?(se(),An(vt,null,n)):Ge(vt,null,n)}function Tn(n){return n==null||typeof n=="boolean"?Ge(vt):ie(n)?Ge(Fe,null,n.slice()):di(n)?Un(n):Ge(Fs,null,String(n))}function Un(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:pr(n)}function Yc(n,e){let t=0;const{shapeFlag:r}=n;if(e==null)e=null;else if(ie(e))t=16;else if(typeof e=="object")if(r&65){const o=e.default;o&&(o._c&&(o._d=!1),Yc(n,o()),o._c&&(o._d=!0));return}else{t=32;const o=e._;!o&&!Cf(e)?e._ctx=ft:o===3&&ft&&(ft.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else fe(e)?(e={default:e,_ctx:ft},t=32):(e=String(e),r&64?(t=16,e=[hi(e)]):t=8);n.children=e,n.shapeFlag|=t}function Zo(...n){const e={};for(let t=0;tTt||ft;let ds,Wa;{const n=Ns(),e=(t,r)=>{let o;return(o=n[t])||(o=n[t]=[]),o.push(r),i=>{o.length>1?o.forEach(s=>s(i)):o[0](i)}};ds=e("__VUE_INSTANCE_SETTERS__",t=>Tt=t),Wa=e("__VUE_SSR_SETTERS__",t=>fi=t)}const _i=n=>{const e=Tt;return ds(n),n.scope.on(),()=>{n.scope.off(),ds(e)}},Cu=()=>{Tt&&Tt.scope.off(),ds(null)};function kf(n){return n.vnode.shapeFlag&4}let fi=!1;function cC(n,e=!1,t=!1){e&&Wa(e);const{props:r,children:o}=n.vnode,i=kf(n);Gy(n,r,i,e),Wy(n,o,t||e);const s=i?lC(n,e):void 0;return e&&Wa(!1),s}function lC(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,Ry);const{setup:r}=t;if(r){Gn();const o=n.setupContext=r.length>1?Pf(n):null,i=_i(n),s=bi(r,n,0,[n.props,o]),a=Ch(s);if(Vn(),i(),(a||n.sp)&&!uo(n)&&of(n),a){if(s.then(Cu,Cu),e)return s.then(c=>{vu(n,c)}).catch(c=>{Ls(c,n,0)});n.asyncDep=s}else vu(n,s)}else Of(n)}function vu(n,e,t){fe(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:Ne(e)&&(n.setupState=$h(e)),Of(n)}function Of(n,e,t){const r=n.type;n.render||(n.render=r.render||Sn);{const o=_i(n);Gn();try{Py(n)}finally{Vn(),o()}}}const uC={get(n,e){return yt(n,"get",""),n[e]}};function Pf(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,uC),slots:n.slots,emit:n.emit,expose:e}}function Ks(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy($h(qc(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in Jo)return Jo[t](n)},has(e,t){return t in e||t in Jo}})):n.proxy}function dC(n,e=!0){return fe(n)?n.displayName||n.name:n.name||e&&n.__name}function hC(n){return fe(n)&&"__vccOpts"in n}const _e=(n,e)=>ey(n,e,fi);function Jc(n,e,t){try{us(-1);const r=arguments.length;return r===2?Ne(e)&&!ie(e)?di(e)?Ge(n,null,[e]):Ge(n,e):Ge(n,null,e):(r>3?t=Array.prototype.slice.call(arguments,2):r===3&&di(t)&&(t=[t]),Ge(n,e,t))}finally{us(1)}}const fC="3.5.34";/** +* @vue/runtime-dom v3.5.34 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ya;const Tu=typeof window<"u"&&window.trustedTypes;if(Tu)try{Ya=Tu.createPolicy("vue",{createHTML:n=>n})}catch{}const Nf=Ya?n=>Ya.createHTML(n):n=>n,gC="http://www.w3.org/2000/svg",pC="http://www.w3.org/1998/Math/MathML",Ln=typeof document<"u"?document:null,wu=Ln&&Ln.createElement("template"),mC={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,r)=>{const o=e==="svg"?Ln.createElementNS(gC,n):e==="mathml"?Ln.createElementNS(pC,n):t?Ln.createElement(n,{is:t}):Ln.createElement(n);return n==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:n=>Ln.createTextNode(n),createComment:n=>Ln.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>Ln.querySelector(n),setScopeId(n,e){n.setAttribute(e,"")},insertStaticContent(n,e,t,r,o,i){const s=t?t.previousSibling:e.lastChild;if(o&&(o===i||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),t),!(o===i||!(o=o.nextSibling)););else{wu.innerHTML=Nf(r==="svg"?`${n}`:r==="mathml"?`${n}`:n);const a=wu.content;if(r==="svg"||r==="mathml"){const c=a.firstChild;for(;c.firstChild;)a.appendChild(c.firstChild);a.removeChild(c)}e.insertBefore(a,t)}return[s?s.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},Jn="transition",Fo="animation",gi=Symbol("_vtc"),Mf={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},yC=it({},Zh,Mf),CC=n=>(n.displayName="Transition",n.props=yC,n),vC=CC((n,{slots:e})=>Jc(my,TC(n),e)),wr=(n,e=[])=>{ie(n)?n.forEach(t=>t(...e)):n&&n(...e)},Au=n=>n?ie(n)?n.some(e=>e.length>1):n.length>1:!1;function TC(n){const e={};for(const U in n)U in Mf||(e[U]=n[U]);if(n.css===!1)return e;const{name:t="v",type:r,duration:o,enterFromClass:i=`${t}-enter-from`,enterActiveClass:s=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:c=i,appearActiveClass:l=s,appearToClass:u=a,leaveFromClass:d=`${t}-leave-from`,leaveActiveClass:h=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=n,C=wC(o),p=C&&C[0],v=C&&C[1],{onBeforeEnter:A,onEnter:_,onEnterCancelled:y,onLeave:T,onLeaveCancelled:P,onBeforeAppear:Q=A,onAppear:q=_,onAppearCancelled:K=y}=e,S=(U,Z,ue,we)=>{U._enterCancelled=we,Ar(U,Z?u:a),Ar(U,Z?l:s),ue&&ue()},x=(U,Z)=>{U._isLeaving=!1,Ar(U,d),Ar(U,f),Ar(U,h),Z&&Z()},V=U=>(Z,ue)=>{const we=U?q:_,me=()=>S(Z,U,ue);wr(we,[Z,me]),Eu(()=>{Ar(Z,U?c:i),Pn(Z,U?u:a),Au(we)||bu(Z,r,p,me)})};return it(e,{onBeforeEnter(U){wr(A,[U]),Pn(U,i),Pn(U,s)},onBeforeAppear(U){wr(Q,[U]),Pn(U,c),Pn(U,l)},onEnter:V(!1),onAppear:V(!0),onLeave(U,Z){U._isLeaving=!0;const ue=()=>x(U,Z);Pn(U,d),U._enterCancelled?(Pn(U,h),Iu(U)):(Iu(U),Pn(U,h)),Eu(()=>{U._isLeaving&&(Ar(U,d),Pn(U,f),Au(T)||bu(U,r,v,ue))}),wr(T,[U,ue])},onEnterCancelled(U){S(U,!1,void 0,!0),wr(y,[U])},onAppearCancelled(U){S(U,!0,void 0,!0),wr(K,[U])},onLeaveCancelled(U){x(U),wr(P,[U])}})}function wC(n){if(n==null)return null;if(Ne(n))return[Ta(n.enter),Ta(n.leave)];{const e=Ta(n);return[e,e]}}function Ta(n){return vm(n)}function Pn(n,e){e.split(/\s+/).forEach(t=>t&&n.classList.add(t)),(n[gi]||(n[gi]=new Set)).add(e)}function Ar(n,e){e.split(/\s+/).forEach(r=>r&&n.classList.remove(r));const t=n[gi];t&&(t.delete(e),t.size||(n[gi]=void 0))}function Eu(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let AC=0;function bu(n,e,t,r){const o=n._endId=++AC,i=()=>{o===n._endId&&r()};if(t!=null)return setTimeout(i,t);const{type:s,timeout:a,propCount:c}=EC(n,e);if(!s)return r();const l=s+"end";let u=0;const d=()=>{n.removeEventListener(l,h),i()},h=f=>{f.target===n&&++u>=c&&d()};setTimeout(()=>{u(t[C]||"").split(", "),o=r(`${Jn}Delay`),i=r(`${Jn}Duration`),s=_u(o,i),a=r(`${Fo}Delay`),c=r(`${Fo}Duration`),l=_u(a,c);let u=null,d=0,h=0;e===Jn?s>0&&(u=Jn,d=s,h=i.length):e===Fo?l>0&&(u=Fo,d=l,h=c.length):(d=Math.max(s,l),u=d>0?s>l?Jn:Fo:null,h=u?u===Jn?i.length:c.length:0);const f=u===Jn&&/\b(?:transform|all)(?:,|$)/.test(r(`${Jn}Property`).toString());return{type:u,timeout:d,propCount:h,hasTransform:f}}function _u(n,e){for(;n.lengthSu(t)+Su(n[r])))}function Su(n){return n==="auto"?0:Number(n.slice(0,-1).replace(",","."))*1e3}function Iu(n){return(n?n.ownerDocument:document).body.offsetHeight}function bC(n,e,t){const r=n[gi];r&&(e=(e?[e,...r]:[...r]).join(" ")),e==null?n.removeAttribute("class"):t?n.setAttribute("class",e):n.className=e}const hs=Symbol("_vod"),xf=Symbol("_vsh"),kI={name:"show",beforeMount(n,{value:e},{transition:t}){n[hs]=n.style.display==="none"?"":n.style.display,t&&e?t.beforeEnter(n):Bo(n,e)},mounted(n,{value:e},{transition:t}){t&&e&&t.enter(n)},updated(n,{value:e,oldValue:t},{transition:r}){!e!=!t&&(r?e?(r.beforeEnter(n),Bo(n,!0),r.enter(n)):r.leave(n,()=>{Bo(n,!1)}):Bo(n,e))},beforeUnmount(n,{value:e}){Bo(n,e)}};function Bo(n,e){n.style.display=e?n[hs]:"none",n[xf]=!e}const _C=Symbol(""),SC=/(?:^|;)\s*display\s*:/;function IC(n,e,t){const r=n.style,o=Be(t);let i=!1;if(t&&!o){if(e)if(Be(e))for(const s of e.split(";")){const a=s.slice(0,s.indexOf(":")).trim();t[a]==null&&Go(r,a,"")}else for(const s in e)t[s]==null&&Go(r,s,"");for(const s in t){s==="display"&&(i=!0);const a=t[s];a!=null?kC(n,s,!Be(e)&&e?e[s]:void 0,a)||Go(r,s,a):Go(r,s,"")}}else if(o){if(e!==t){const s=r[_C];s&&(t+=";"+s),r.cssText=t,i=SC.test(t)}}else e&&n.removeAttribute("style");hs in n&&(n[hs]=i?r.display:"",n[xf]&&(r.display="none"))}const Ru=/\s*!important$/;function Go(n,e,t){if(ie(t))t.forEach(r=>Go(n,e,r));else if(t==null&&(t=""),e.startsWith("--"))n.setProperty(e,t);else{const r=RC(n,e);Ru.test(t)?n.setProperty(Cr(r),t.replace(Ru,""),"important"):n[r]=t}}const ku=["Webkit","Moz","ms"],wa={};function RC(n,e){const t=wa[e];if(t)return t;let r=Ot(e);if(r!=="filter"&&r in n)return wa[e]=r;r=Ps(r);for(let o=0;oAa||(MC.then(()=>Aa=0),Aa=Date.now());function LC(n,e){const t=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=t.attached)return;cn(DC(r,t.value),e,5,[r])};return t.value=n,t.attached=xC(),t}function DC(n,e){if(ie(e)){const t=n.stopImmediatePropagation;return n.stopImmediatePropagation=()=>{t.call(n),n._stopped=!0},e.map(r=>o=>!o._stopped&&r&&r(o))}else return e}const Lu=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,UC=(n,e,t,r,o,i)=>{const s=o==="svg";e==="class"?bC(n,r,s):e==="style"?IC(n,t,r):Is(e)?Rs(e)||PC(n,e,t,r,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):HC(n,e,r,s))?(Nu(n,e,r),!n.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Pu(n,e,r,s,i,e!=="value")):n._isVueCE&&(FC(n,e)||n._def.__asyncLoader&&(/[A-Z]/.test(e)||!Be(r)))?Nu(n,Ot(e),r,i,e):(e==="true-value"?n._trueValue=r:e==="false-value"&&(n._falseValue=r),Pu(n,e,r,s))};function HC(n,e,t,r){if(r)return!!(e==="innerHTML"||e==="textContent"||e in n&&Lu(e)&&fe(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&n.tagName==="IFRAME"||e==="form"||e==="list"&&n.tagName==="INPUT"||e==="type"&&n.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=n.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Lu(e)&&Be(t)?!1:e in n}function FC(n,e){const t=n._def.props;if(!t)return!1;const r=Ot(e);return Array.isArray(t)?t.some(o=>Ot(o)===r):Object.keys(t).some(o=>Ot(o)===r)}const Du=n=>{const e=n.props["onUpdate:modelValue"]||!1;return ie(e)?t=>Ji(e,t):e};function BC(n){n.target.composing=!0}function Uu(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const Ea=Symbol("_assign");function Hu(n,e,t){return e&&(n=n.trim()),t&&(n=xc(n)),n}const KC={created(n,{modifiers:{lazy:e,trim:t,number:r}},o){n[Ea]=Du(o);const i=r||o.props&&o.props.type==="number";Xr(n,e?"change":"input",s=>{s.target.composing||n[Ea](Hu(n.value,t,i))}),(t||i)&&Xr(n,"change",()=>{n.value=Hu(n.value,t,i)}),e||(Xr(n,"compositionstart",BC),Xr(n,"compositionend",Uu),Xr(n,"change",Uu))},mounted(n,{value:e}){n.value=e??""},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:r,trim:o,number:i}},s){if(n[Ea]=Du(s),n.composing)return;const a=(i||n.type==="number")&&!/^0\d/.test(n.value)?xc(n.value):n.value,c=e??"";if(a===c)return;const l=n.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===n&&n.type!=="range"&&(r&&e===t||o&&n.value.trim()===c)||(n.value=c)}},qC=["ctrl","shift","alt","meta"],jC={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>"button"in n&&n.button!==0,middle:n=>"button"in n&&n.button!==1,right:n=>"button"in n&&n.button!==2,exact:(n,e)=>qC.some(t=>n[`${t}Key`]&&!e.includes(t))},Fu=(n,e)=>{if(!n)return n;const t=n._withMods||(n._withMods={}),r=e.join(".");return t[r]||(t[r]=(o,...i)=>{for(let s=0;s{const t=n._withKeys||(n._withKeys={}),r=e.join(".");return t[r]||(t[r]=o=>{if(!("key"in o))return;const i=Cr(o.key);if(e.some(s=>s===i||$C[s]===i))return n(o)})},GC=it({patchProp:UC},mC);let Ku;function VC(){return Ku||(Ku=Jy(GC))}const zC=(...n)=>{const e=VC().createApp(...n),{mount:t}=e;return e.mount=r=>{const o=WC(r);if(!o)return;const i=e._component;!fe(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const s=t(o,!1,QC(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},e};function QC(n){if(n instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&n instanceof MathMLElement)return"mathml"}function WC(n){return Be(n)?document.querySelector(n):n}/*! + * pinia v2.3.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let Lf;const qs=n=>Lf=n,Df=Symbol();function Ja(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)==="[object Object]"&&typeof n.toJSON!="function"}var ei;(function(n){n.direct="direct",n.patchObject="patch object",n.patchFunction="patch function"})(ei||(ei={}));function YC(){const n=Sh(!0),e=n.run(()=>Te({}));let t=[],r=[];const o=qc({install(i){qs(o),o._a=i,i.provide(Df,o),i.config.globalProperties.$pinia=o,r.forEach(s=>t.push(s)),r=[]},use(i){return this._a?t.push(i):r.push(i),this},_p:t,_a:null,_e:n,_s:new Map,state:e});return o}const Uf=()=>{};function qu(n,e,t,r=Uf){n.push(e);const o=()=>{const i=n.indexOf(e);i>-1&&(n.splice(i,1),r())};return!t&&Ih()&&Im(o),o}function Qr(n,...e){n.slice().forEach(t=>{t(...e)})}const JC=n=>n(),ju=Symbol(),ba=Symbol();function Xa(n,e){n instanceof Map&&e instanceof Map?e.forEach((t,r)=>n.set(r,t)):n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const t in e){if(!e.hasOwnProperty(t))continue;const r=e[t],o=n[t];Ja(o)&&Ja(r)&&n.hasOwnProperty(t)&&!Ve(r)&&!jn(r)?n[t]=Xa(o,r):n[t]=r}return n}const XC=Symbol();function ZC(n){return!Ja(n)||!n.hasOwnProperty(XC)}const{assign:er}=Object;function ev(n){return!!(Ve(n)&&n.effect)}function tv(n,e,t,r){const{state:o,actions:i,getters:s}=e,a=t.state.value[n];let c;function l(){a||(t.state.value[n]=o?o():{});const u=Ym(t.state.value[n]);return er(u,i,Object.keys(s||{}).reduce((d,h)=>(d[h]=qc(_e(()=>{qs(t);const f=t._s.get(n);return s[h].call(f,f)})),d),{}))}return c=Hf(n,l,e,t,r,!0),c}function Hf(n,e,t={},r,o,i){let s;const a=er({actions:{}},t),c={deep:!0};let l,u,d=[],h=[],f;const C=r.state.value[n];!i&&!C&&(r.state.value[n]={});let p;function v(K){let S;l=u=!1,typeof K=="function"?(K(r.state.value[n]),S={type:ei.patchFunction,storeId:n,events:f}):(Xa(r.state.value[n],K),S={type:ei.patchObject,payload:K,storeId:n,events:f});const x=p=Symbol();Hr().then(()=>{p===x&&(l=!0)}),u=!0,Qr(d,S,r.state.value[n])}const A=i?function(){const{state:S}=t,x=S?S():{};this.$patch(V=>{er(V,x)})}:Uf;function _(){s.stop(),d=[],h=[],r._s.delete(n)}const y=(K,S="")=>{if(ju in K)return K[ba]=S,K;const x=function(){qs(r);const V=Array.from(arguments),U=[],Z=[];function ue(oe){U.push(oe)}function we(oe){Z.push(oe)}Qr(h,{args:V,name:x[ba],store:P,after:ue,onError:we});let me;try{me=K.apply(this&&this.$id===n?this:P,V)}catch(oe){throw Qr(Z,oe),oe}return me instanceof Promise?me.then(oe=>(Qr(U,oe),oe)).catch(oe=>(Qr(Z,oe),Promise.reject(oe))):(Qr(U,me),me)};return x[ju]=!0,x[ba]=S,x},T={_p:r,$id:n,$onAction:qu.bind(null,h),$patch:v,$reset:A,$subscribe(K,S={}){const x=qu(d,K,S.detached,()=>V()),V=s.run(()=>fr(()=>r.state.value[n],U=>{(S.flush==="sync"?u:l)&&K({storeId:n,type:ei.direct,events:f},U)},er({},c,S)));return x},$dispose:_},P=Ei(T);r._s.set(n,P);const q=(r._a&&r._a.runWithContext||JC)(()=>r._e.run(()=>(s=Sh()).run(()=>e({action:y}))));for(const K in q){const S=q[K];if(Ve(S)&&!ev(S)||jn(S))i||(C&&ZC(S)&&(Ve(S)?S.value=C[K]:Xa(S,C[K])),r.state.value[n][K]=S);else if(typeof S=="function"){const x=y(S,K);q[K]=x,a.actions[K]=S}}return er(P,q),er(Ie(P),q),Object.defineProperty(P,"$state",{get:()=>r.state.value[n],set:K=>{v(S=>{er(S,K)})}}),r._p.forEach(K=>{er(P,s.run(()=>K({store:P,app:r._a,pinia:r,options:a})))}),C&&i&&t.hydrate&&t.hydrate(P.$state,C),l=!0,u=!0,P}/*! #__NO_SIDE_EFFECTS__ */function nv(n,e,t){let r,o;const i=typeof e=="function";typeof n=="string"?(r=n,o=i?t:e):(o=n,r=n.id);function s(a,c){const l=ay();return a=a||(l?Xt(Df,null):null),a&&qs(a),a=Lf,a._s.has(r)||(i?Hf(r,e,o,a):tv(r,o,a)),a._s.get(r)}return s.$id=r,s}var js=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(n){return this.listeners.add(n),this.onSubscribe(),()=>{this.listeners.delete(n),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},kr,sr,po,ah,rv=(ah=class extends js{constructor(){super();Ee(this,kr);Ee(this,sr);Ee(this,po);le(this,po,e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}})}onSubscribe(){O(this,sr)||this.setEventListener(O(this,po))}onUnsubscribe(){var e;this.hasListeners()||((e=O(this,sr))==null||e.call(this),le(this,sr,void 0))}setEventListener(e){var t;le(this,po,e),(t=O(this,sr))==null||t.call(this),le(this,sr,e(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(e){O(this,kr)!==e&&(le(this,kr,e),this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){var e;return typeof O(this,kr)=="boolean"?O(this,kr):((e=globalThis.document)==null?void 0:e.visibilityState)!=="hidden"}},kr=new WeakMap,sr=new WeakMap,po=new WeakMap,ah),Ff=new rv,ov={setTimeout:(n,e)=>setTimeout(n,e),clearTimeout:n=>clearTimeout(n),setInterval:(n,e)=>setInterval(n,e),clearInterval:n=>clearInterval(n)},ar,Pc,ch,iv=(ch=class{constructor(){Ee(this,ar,ov);Ee(this,Pc,!1)}setTimeoutProvider(n){le(this,ar,n)}setTimeout(n,e){return O(this,ar).setTimeout(n,e)}clearTimeout(n){O(this,ar).clearTimeout(n)}setInterval(n,e){return O(this,ar).setInterval(n,e)}clearInterval(n){O(this,ar).clearInterval(n)}},ar=new WeakMap,Pc=new WeakMap,ch),Za=new iv;function sv(n){setTimeout(n,0)}var Bf=typeof window>"u"||"Deno"in globalThis;function Zt(){}function av(n,e){return typeof n=="function"?n(e):n}function cv(n){return typeof n=="number"&&n>=0&&n!==1/0}function lv(n,e){return Math.max(n+(e||0)-Date.now(),0)}function ec(n,e){return typeof n=="function"?n(e):n}function uv(n,e){return typeof n=="function"?n(e):n}function $u(n,e){const{type:t="all",exact:r,fetchStatus:o,predicate:i,queryKey:s,stale:a}=n;if(s){if(r){if(e.queryHash!==Xc(s,e.options))return!1}else if(!mi(e.queryKey,s))return!1}if(t!=="all"){const c=e.isActive();if(t==="active"&&!c||t==="inactive"&&c)return!1}return!(typeof a=="boolean"&&e.isStale()!==a||o&&o!==e.state.fetchStatus||i&&!i(e))}function Gu(n,e){const{exact:t,status:r,predicate:o,mutationKey:i}=n;if(i){if(!e.options.mutationKey)return!1;if(t){if(pi(e.options.mutationKey)!==pi(i))return!1}else if(!mi(e.options.mutationKey,i))return!1}return!(r&&e.state.status!==r||o&&!o(e))}function Xc(n,e){return((e==null?void 0:e.queryKeyHashFn)||pi)(n)}function pi(n){return JSON.stringify(n,(e,t)=>tc(t)?Object.keys(t).sort().reduce((r,o)=>(r[o]=t[o],r),{}):t)}function mi(n,e){return n===e?!0:typeof n!=typeof e?!1:n&&e&&typeof n=="object"&&typeof e=="object"?Object.keys(e).every(t=>mi(n[t],e[t])):!1}var dv=Object.prototype.hasOwnProperty;function Kf(n,e,t=0){if(n===e)return n;if(t>500)return e;const r=Vu(n)&&Vu(e);if(!r&&!(tc(n)&&tc(e)))return e;const i=(r?n:Object.keys(n)).length,s=r?e:Object.keys(e),a=s.length,c=r?new Array(a):{};let l=0;for(let u=0;u{Za.setTimeout(e,n)})}function fv(n,e,t){return typeof t.structuralSharing=="function"?t.structuralSharing(n,e):t.structuralSharing!==!1?Kf(n,e):e}function gv(n,e,t=0){const r=[...n,e];return t&&r.length>t?r.slice(1):r}function pv(n,e,t=0){const r=[e,...n];return t&&r.length>t?r.slice(0,-1):r}var Zc=Symbol();function qf(n,e){return!n.queryFn&&(e!=null&&e.initialPromise)?()=>e.initialPromise:!n.queryFn||n.queryFn===Zc?()=>Promise.reject(new Error(`Missing queryFn: '${n.queryHash}'`)):n.queryFn}function mv(n,e,t){let r=!1,o;return Object.defineProperty(n,"signal",{enumerable:!0,get:()=>(o??(o=e()),r||(r=!0,o.aborted?t():o.addEventListener("abort",t,{once:!0})),o)}),n}var jf=(()=>{let n=()=>Bf;return{isServer(){return n()},setIsServer(e){n=e}}})();function yv(){let n,e;const t=new Promise((o,i)=>{n=o,e=i});t.status="pending",t.catch(()=>{});function r(o){Object.assign(t,o),delete t.resolve,delete t.reject}return t.resolve=o=>{r({status:"fulfilled",value:o}),n(o)},t.reject=o=>{r({status:"rejected",reason:o}),e(o)},t}var Cv=sv;function vv(){let n=[],e=0,t=a=>{a()},r=a=>{a()},o=Cv;const i=a=>{e?n.push(a):o(()=>{t(a)})},s=()=>{const a=n;n=[],a.length&&o(()=>{r(()=>{a.forEach(c=>{t(c)})})})};return{batch:a=>{let c;e++;try{c=a()}finally{e--,e||s()}return c},batchCalls:a=>(...c)=>{i(()=>{a(...c)})},schedule:i,setNotifyFunction:a=>{t=a},setBatchNotifyFunction:a=>{r=a},setScheduler:a=>{o=a}}}var kt=vv(),mo,cr,yo,lh,Tv=(lh=class extends js{constructor(){super();Ee(this,mo,!0);Ee(this,cr);Ee(this,yo);le(this,yo,e=>{if(typeof window<"u"&&window.addEventListener){const t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}})}onSubscribe(){O(this,cr)||this.setEventListener(O(this,yo))}onUnsubscribe(){var e;this.hasListeners()||((e=O(this,cr))==null||e.call(this),le(this,cr,void 0))}setEventListener(e){var t;le(this,yo,e),(t=O(this,cr))==null||t.call(this),le(this,cr,e(this.setOnline.bind(this)))}setOnline(e){O(this,mo)!==e&&(le(this,mo,e),this.listeners.forEach(r=>{r(e)}))}isOnline(){return O(this,mo)}},mo=new WeakMap,cr=new WeakMap,yo=new WeakMap,lh),fs=new Tv;function wv(n){return Math.min(1e3*2**n,3e4)}function $f(n){return(n??"online")==="online"?fs.isOnline():!0}var nc=class extends Error{constructor(n){super("CancelledError"),this.revert=n==null?void 0:n.revert,this.silent=n==null?void 0:n.silent}};function Gf(n){let e=!1,t=0,r;const o=yv(),i=()=>o.status!=="pending",s=p=>{var v;if(!i()){const A=new nc(p);h(A),(v=n.onCancel)==null||v.call(n,A)}},a=()=>{e=!0},c=()=>{e=!1},l=()=>Ff.isFocused()&&(n.networkMode==="always"||fs.isOnline())&&n.canRun(),u=()=>$f(n.networkMode)&&n.canRun(),d=p=>{i()||(r==null||r(),o.resolve(p))},h=p=>{i()||(r==null||r(),o.reject(p))},f=()=>new Promise(p=>{var v;r=A=>{(i()||l())&&p(A)},(v=n.onPause)==null||v.call(n)}).then(()=>{var p;r=void 0,i()||(p=n.onContinue)==null||p.call(n)}),C=()=>{if(i())return;let p;const v=t===0?n.initialPromise:void 0;try{p=v??n.fn()}catch(A){p=Promise.reject(A)}Promise.resolve(p).then(d).catch(A=>{var Q;if(i())return;const _=n.retry??(jf.isServer()?0:3),y=n.retryDelay??wv,T=typeof y=="function"?y(t,A):y,P=_===!0||typeof _=="number"&&t<_||typeof _=="function"&&_(t,A);if(e||!P){h(A);return}t++,(Q=n.onFail)==null||Q.call(n,t,A),hv(T).then(()=>l()?void 0:f()).then(()=>{e?h(A):C()})})};return{promise:o,status:()=>o.status,cancel:s,continue:()=>(r==null||r(),o),cancelRetry:a,continueRetry:c,canStart:u,start:()=>(u()?C():f().then(C),o)}}var Or,uh,Vf=(uh=class{constructor(){Ee(this,Or)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),cv(this.gcTime)&&le(this,Or,Za.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(n){this.gcTime=Math.max(this.gcTime||0,n??(jf.isServer()?1/0:5*60*1e3))}clearGcTimeout(){O(this,Or)!==void 0&&(Za.clearTimeout(O(this,Or)),le(this,Or,void 0))}},Or=new WeakMap,uh);function Av(n){return{onFetch:(e,t)=>{var u,d,h,f,C;const r=e.options,o=(h=(d=(u=e.fetchOptions)==null?void 0:u.meta)==null?void 0:d.fetchMore)==null?void 0:h.direction,i=((f=e.state.data)==null?void 0:f.pages)||[],s=((C=e.state.data)==null?void 0:C.pageParams)||[];let a={pages:[],pageParams:[]},c=0;const l=async()=>{let p=!1;const v=y=>{mv(y,()=>e.signal,()=>p=!0)},A=qf(e.options,e.fetchOptions),_=async(y,T,P)=>{if(p)return Promise.reject(e.signal.reason);if(T==null&&y.pages.length)return Promise.resolve(y);const q=(()=>{const V={client:e.client,queryKey:e.queryKey,pageParam:T,direction:P?"backward":"forward",meta:e.options.meta};return v(V),V})(),K=await A(q),{maxPages:S}=e.options,x=P?pv:gv;return{pages:x(y.pages,K,S),pageParams:x(y.pageParams,T,S)}};if(o&&i.length){const y=o==="backward",T=y?Ev:Qu,P={pages:i,pageParams:s},Q=T(r,P);a=await _(P,Q,y)}else{const y=n??i.length;do{const T=c===0?s[0]??r.initialPageParam:Qu(r,a);if(c>0&&T==null)break;a=await _(a,T),c++}while(c{var p,v;return(v=(p=e.options).persister)==null?void 0:v.call(p,l,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},t)}:e.fetchFn=l}}}function Qu(n,{pages:e,pageParams:t}){const r=e.length-1;return e.length>0?n.getNextPageParam(e[r],e,t[r],t):void 0}function Ev(n,{pages:e,pageParams:t}){var r;return e.length>0?(r=n.getPreviousPageParam)==null?void 0:r.call(n,e[0],e,t[0],t):void 0}var Co,Pr,vo,Yt,Nr,at,vi,Mr,Kt,zf,xn,dh,bv=(dh=class extends Vf{constructor(e){super();Ee(this,Kt);Ee(this,Co);Ee(this,Pr);Ee(this,vo);Ee(this,Yt);Ee(this,Nr);Ee(this,at);Ee(this,vi);Ee(this,Mr);le(this,Mr,!1),le(this,vi,e.defaultOptions),this.setOptions(e.options),this.observers=[],le(this,Nr,e.client),le(this,Yt,O(this,Nr).getQueryCache()),this.queryKey=e.queryKey,this.queryHash=e.queryHash,le(this,Pr,Yu(this.options)),this.state=e.state??O(this,Pr),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return O(this,Co)}get promise(){var e;return(e=O(this,at))==null?void 0:e.promise}setOptions(e){if(this.options={...O(this,vi),...e},e!=null&&e._type&&le(this,Co,e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=Yu(this.options);t.data!==void 0&&(this.setState(Wu(t.data,t.dataUpdatedAt)),le(this,Pr,t))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&O(this,Yt).remove(this)}setData(e,t){const r=fv(this.state.data,e,this.options);return ut(this,Kt,xn).call(this,{data:r,type:"success",dataUpdatedAt:t==null?void 0:t.updatedAt,manual:t==null?void 0:t.manual}),r}setState(e){ut(this,Kt,xn).call(this,{type:"setState",state:e})}cancel(e){var r,o;const t=(r=O(this,at))==null?void 0:r.promise;return(o=O(this,at))==null||o.cancel(e),t?t.then(Zt).catch(Zt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return O(this,Pr)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>uv(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Zc||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>ec(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!lv(this.state.dataUpdatedAt,e)}onFocus(){var t;const e=this.observers.find(r=>r.shouldFetchOnWindowFocus());e==null||e.refetch({cancelRefetch:!1}),(t=O(this,at))==null||t.continue()}onOnline(){var t;const e=this.observers.find(r=>r.shouldFetchOnReconnect());e==null||e.refetch({cancelRefetch:!1}),(t=O(this,at))==null||t.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),O(this,Yt).notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(O(this,at)&&(O(this,Mr)||ut(this,Kt,zf).call(this)?O(this,at).cancel({revert:!0}):O(this,at).cancelRetry()),this.scheduleGc()),O(this,Yt).notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ut(this,Kt,xn).call(this,{type:"invalidate"})}async fetch(e,t){var l,u,d,h,f,C,p,v,A,_,y;if(this.state.fetchStatus!=="idle"&&((l=O(this,at))==null?void 0:l.status())!=="rejected"){if(this.state.data!==void 0&&(t!=null&&t.cancelRefetch))this.cancel({silent:!0});else if(O(this,at))return O(this,at).continueRetry(),O(this,at).promise}if(e&&this.setOptions(e),!this.options.queryFn){const T=this.observers.find(P=>P.options.queryFn);T&&this.setOptions(T.options)}const r=new AbortController,o=T=>{Object.defineProperty(T,"signal",{enumerable:!0,get:()=>(le(this,Mr,!0),r.signal)})},i=()=>{const T=qf(this.options,t),Q=(()=>{const q={client:O(this,Nr),queryKey:this.queryKey,meta:this.meta};return o(q),q})();return le(this,Mr,!1),this.options.persister?this.options.persister(T,Q,this):T(Q)},a=(()=>{const T={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:O(this,Nr),state:this.state,fetchFn:i};return o(T),T})(),c=O(this,Co)==="infinite"?Av(this.options.pages):this.options.behavior;c==null||c.onFetch(a,this),le(this,vo,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=a.fetchOptions)==null?void 0:u.meta))&&ut(this,Kt,xn).call(this,{type:"fetch",meta:(d=a.fetchOptions)==null?void 0:d.meta}),le(this,at,Gf({initialPromise:t==null?void 0:t.initialPromise,fn:a.fetchFn,onCancel:T=>{T instanceof nc&&T.revert&&this.setState({...O(this,vo),fetchStatus:"idle"}),r.abort()},onFail:(T,P)=>{ut(this,Kt,xn).call(this,{type:"failed",failureCount:T,error:P})},onPause:()=>{ut(this,Kt,xn).call(this,{type:"pause"})},onContinue:()=>{ut(this,Kt,xn).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0}));try{const T=await O(this,at).start();if(T===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(T),(f=(h=O(this,Yt).config).onSuccess)==null||f.call(h,T,this),(p=(C=O(this,Yt).config).onSettled)==null||p.call(C,T,this.state.error,this),T}catch(T){if(T instanceof nc){if(T.silent)return O(this,at).promise;if(T.revert){if(this.state.data===void 0)throw T;return this.state.data}}throw ut(this,Kt,xn).call(this,{type:"error",error:T}),(A=(v=O(this,Yt).config).onError)==null||A.call(v,T,this),(y=(_=O(this,Yt).config).onSettled)==null||y.call(_,this.state.data,T,this),T}finally{this.scheduleGc()}}},Co=new WeakMap,Pr=new WeakMap,vo=new WeakMap,Yt=new WeakMap,Nr=new WeakMap,at=new WeakMap,vi=new WeakMap,Mr=new WeakMap,Kt=new WeakSet,zf=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},xn=function(e){const t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,..._v(r.data,this.options),fetchMeta:e.meta??null};case"success":const o={...r,...Wu(e.data,e.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return le(this,vo,e.manual?o:void 0),o;case"error":const i=e.error;return{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),kt.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),O(this,Yt).notify({query:this,type:"updated",action:e})})},dh);function _v(n,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:$f(e.networkMode)?"fetching":"paused",...n===void 0&&{error:null,status:"pending"}}}function Wu(n,e){return{data:n,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Yu(n){const e=typeof n.initialData=="function"?n.initialData():n.initialData,t=e!==void 0,r=t?typeof n.initialDataUpdatedAt=="function"?n.initialDataUpdatedAt():n.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:t?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:t?"success":"pending",fetchStatus:"idle"}}var Ti,mn,pt,xr,yn,tr,hh,Sv=(hh=class extends Vf{constructor(e){super();Ee(this,yn);Ee(this,Ti);Ee(this,mn);Ee(this,pt);Ee(this,xr);le(this,Ti,e.client),this.mutationId=e.mutationId,le(this,pt,e.mutationCache),le(this,mn,[]),this.state=e.state||Iv(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){O(this,mn).includes(e)||(O(this,mn).push(e),this.clearGcTimeout(),O(this,pt).notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){le(this,mn,O(this,mn).filter(t=>t!==e)),this.scheduleGc(),O(this,pt).notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){O(this,mn).length||(this.state.status==="pending"?this.scheduleGc():O(this,pt).remove(this))}continue(){var e;return((e=O(this,xr))==null?void 0:e.continue())??this.execute(this.state.variables)}async execute(e){var s,a,c,l,u,d,h,f,C,p,v,A,_,y,T,P,Q,q;const t=()=>{ut(this,yn,tr).call(this,{type:"continue"})},r={client:O(this,Ti),meta:this.options.meta,mutationKey:this.options.mutationKey};le(this,xr,Gf({fn:()=>this.options.mutationFn?this.options.mutationFn(e,r):Promise.reject(new Error("No mutationFn found")),onFail:(K,S)=>{ut(this,yn,tr).call(this,{type:"failed",failureCount:K,error:S})},onPause:()=>{ut(this,yn,tr).call(this,{type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>O(this,pt).canRun(this)}));const o=this.state.status==="pending",i=!O(this,xr).canStart();try{if(o)t();else{ut(this,yn,tr).call(this,{type:"pending",variables:e,isPaused:i}),O(this,pt).config.onMutate&&await O(this,pt).config.onMutate(e,this,r);const S=await((a=(s=this.options).onMutate)==null?void 0:a.call(s,e,r));S!==this.state.context&&ut(this,yn,tr).call(this,{type:"pending",context:S,variables:e,isPaused:i})}const K=await O(this,xr).start();return await((l=(c=O(this,pt).config).onSuccess)==null?void 0:l.call(c,K,e,this.state.context,this,r)),await((d=(u=this.options).onSuccess)==null?void 0:d.call(u,K,e,this.state.context,r)),await((f=(h=O(this,pt).config).onSettled)==null?void 0:f.call(h,K,null,this.state.variables,this.state.context,this,r)),await((p=(C=this.options).onSettled)==null?void 0:p.call(C,K,null,e,this.state.context,r)),ut(this,yn,tr).call(this,{type:"success",data:K}),K}catch(K){try{await((A=(v=O(this,pt).config).onError)==null?void 0:A.call(v,K,e,this.state.context,this,r))}catch(S){Promise.reject(S)}try{await((y=(_=this.options).onError)==null?void 0:y.call(_,K,e,this.state.context,r))}catch(S){Promise.reject(S)}try{await((P=(T=O(this,pt).config).onSettled)==null?void 0:P.call(T,void 0,K,this.state.variables,this.state.context,this,r))}catch(S){Promise.reject(S)}try{await((q=(Q=this.options).onSettled)==null?void 0:q.call(Q,void 0,K,e,this.state.context,r))}catch(S){Promise.reject(S)}throw ut(this,yn,tr).call(this,{type:"error",error:K}),K}finally{O(this,pt).runNext(this)}}},Ti=new WeakMap,mn=new WeakMap,pt=new WeakMap,xr=new WeakMap,yn=new WeakSet,tr=function(e){const t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),kt.batch(()=>{O(this,mn).forEach(r=>{r.onMutationUpdate(e)}),O(this,pt).notify({mutation:this,type:"updated",action:e})})},hh);function Iv(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Hn,en,wi,fh,Qf=(fh=class extends js{constructor(t={}){super();Ee(this,Hn);Ee(this,en);Ee(this,wi);this.config=t,le(this,Hn,new Set),le(this,en,new Map),le(this,wi,0)}build(t,r,o){const i=new Sv({client:t,mutationCache:this,mutationId:++Li(this,wi)._,options:t.defaultMutationOptions(r),state:o});return this.add(i),i}add(t){O(this,Hn).add(t);const r=Bi(t);if(typeof r=="string"){const o=O(this,en).get(r);o?o.push(t):O(this,en).set(r,[t])}this.notify({type:"added",mutation:t})}remove(t){if(O(this,Hn).delete(t)){const r=Bi(t);if(typeof r=="string"){const o=O(this,en).get(r);if(o)if(o.length>1){const i=o.indexOf(t);i!==-1&&o.splice(i,1)}else o[0]===t&&O(this,en).delete(r)}}this.notify({type:"removed",mutation:t})}canRun(t){const r=Bi(t);if(typeof r=="string"){const o=O(this,en).get(r),i=o==null?void 0:o.find(s=>s.state.status==="pending");return!i||i===t}else return!0}runNext(t){var o;const r=Bi(t);if(typeof r=="string"){const i=(o=O(this,en).get(r))==null?void 0:o.find(s=>s!==t&&s.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){kt.batch(()=>{O(this,Hn).forEach(t=>{this.notify({type:"removed",mutation:t})}),O(this,Hn).clear(),O(this,en).clear()})}getAll(){return Array.from(O(this,Hn))}find(t){const r={exact:!0,...t};return this.getAll().find(o=>Gu(r,o))}findAll(t={}){return this.getAll().filter(r=>Gu(t,r))}notify(t){kt.batch(()=>{this.listeners.forEach(r=>{r(t)})})}resumePausedMutations(){const t=this.getAll().filter(r=>r.state.isPaused);return kt.batch(()=>Promise.all(t.map(r=>r.continue().catch(Zt))))}},Hn=new WeakMap,en=new WeakMap,wi=new WeakMap,fh);function Bi(n){var e;return(e=n.options.scope)==null?void 0:e.id}var Cn,gh,Wf=(gh=class extends js{constructor(t={}){super();Ee(this,Cn);this.config=t,le(this,Cn,new Map)}build(t,r,o){const i=r.queryKey,s=r.queryHash??Xc(i,r);let a=this.get(s);return a||(a=new bv({client:t,queryKey:i,queryHash:s,options:t.defaultQueryOptions(r),state:o,defaultOptions:t.getQueryDefaults(i)}),this.add(a)),a}add(t){O(this,Cn).has(t.queryHash)||(O(this,Cn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const r=O(this,Cn).get(t.queryHash);r&&(t.destroy(),r===t&&O(this,Cn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){kt.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return O(this,Cn).get(t)}getAll(){return[...O(this,Cn).values()]}find(t){const r={exact:!0,...t};return this.getAll().find(o=>$u(r,o))}findAll(t={}){const r=this.getAll();return Object.keys(t).length>0?r.filter(o=>$u(t,o)):r}notify(t){kt.batch(()=>{this.listeners.forEach(r=>{r(t)})})}onFocus(){kt.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){kt.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Cn=new WeakMap,gh),We,lr,ur,To,wo,dr,Ao,Eo,ph,Rv=(ph=class{constructor(e={}){Ee(this,We);Ee(this,lr);Ee(this,ur);Ee(this,To);Ee(this,wo);Ee(this,dr);Ee(this,Ao);Ee(this,Eo);le(this,We,e.queryCache||new Wf),le(this,lr,e.mutationCache||new Qf),le(this,ur,e.defaultOptions||{}),le(this,To,new Map),le(this,wo,new Map),le(this,dr,0)}mount(){Li(this,dr)._++,O(this,dr)===1&&(le(this,Ao,Ff.subscribe(async e=>{e&&(await this.resumePausedMutations(),O(this,We).onFocus())})),le(this,Eo,fs.subscribe(async e=>{e&&(await this.resumePausedMutations(),O(this,We).onOnline())})))}unmount(){var e,t;Li(this,dr)._--,O(this,dr)===0&&((e=O(this,Ao))==null||e.call(this),le(this,Ao,void 0),(t=O(this,Eo))==null||t.call(this),le(this,Eo,void 0))}isFetching(e){return O(this,We).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return O(this,lr).findAll({...e,status:"pending"}).length}getQueryData(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=O(this,We).get(t.queryHash))==null?void 0:r.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),r=O(this,We).build(this,t),o=r.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(ec(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return O(this,We).findAll(e).map(({queryKey:t,state:r})=>{const o=r.data;return[t,o]})}setQueryData(e,t,r){const o=this.defaultQueryOptions({queryKey:e}),i=O(this,We).get(o.queryHash),s=i==null?void 0:i.state.data,a=av(t,s);if(a!==void 0)return O(this,We).build(this,o).setData(a,{...r,manual:!0})}setQueriesData(e,t,r){return kt.batch(()=>O(this,We).findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,r)]))}getQueryState(e){var r;const t=this.defaultQueryOptions({queryKey:e});return(r=O(this,We).get(t.queryHash))==null?void 0:r.state}removeQueries(e){const t=O(this,We);kt.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){const r=O(this,We);return kt.batch(()=>(r.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const r={revert:!0,...t},o=kt.batch(()=>O(this,We).findAll(e).map(i=>i.cancel(r)));return Promise.all(o).then(Zt).catch(Zt)}invalidateQueries(e,t={}){return kt.batch(()=>(O(this,We).findAll(e).forEach(r=>{r.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const r={...t,cancelRefetch:t.cancelRefetch??!0},o=kt.batch(()=>O(this,We).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let s=i.fetch(void 0,r);return r.throwOnError||(s=s.catch(Zt)),i.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(o).then(Zt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const r=O(this,We).build(this,t);return r.isStaleByTime(ec(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Zt).catch(Zt)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Zt).catch(Zt)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return fs.isOnline()?O(this,lr).resumePausedMutations():Promise.resolve()}getQueryCache(){return O(this,We)}getMutationCache(){return O(this,lr)}getDefaultOptions(){return O(this,ur)}setDefaultOptions(e){le(this,ur,e)}setQueryDefaults(e,t){O(this,To).set(pi(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...O(this,To).values()],r={};return t.forEach(o=>{mi(e,o.queryKey)&&Object.assign(r,o.defaultOptions)}),r}setMutationDefaults(e,t){O(this,wo).set(pi(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...O(this,wo).values()],r={};return t.forEach(o=>{mi(e,o.mutationKey)&&Object.assign(r,o.defaultOptions)}),r}defaultQueryOptions(e){if(e._defaulted)return e;const t={...O(this,ur).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Xc(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Zc&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...O(this,ur).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){O(this,We).clear(),O(this,lr).clear()}},We=new WeakMap,lr=new WeakMap,ur=new WeakMap,To=new WeakMap,wo=new WeakMap,dr=new WeakMap,Ao=new WeakMap,Eo=new WeakMap,ph),kv="VUE_QUERY_CLIENT";function Ov(n){const e=n?`:${n}`:"";return`${kv}${e}`}function rc(n,e,t="",r=0){if(e){const o=e(n,t,r);if(o===void 0&&Ve(n)||o!==void 0)return o}if(Array.isArray(n))return n.map((o,i)=>rc(o,e,String(i),r+1));if(typeof n=="object"&&Nv(n)){const o=Object.entries(n).map(([i,s])=>[i,rc(s,e,i,r+1)]);return Object.fromEntries(o)}return n}function Pv(n,e){return rc(n,e)}function Ae(n,e=!1){return Pv(n,(t,r,o)=>{if(o===1&&r==="queryKey")return Ae(t,!0);if(e&&Mv(t))return Ae(t(),e);if(Ve(t))return Ae(ht(t),e)})}function Nv(n){if(Object.prototype.toString.call(n)!=="[object Object]")return!1;const e=Object.getPrototypeOf(n);return e===null||e===Object.prototype}function Mv(n){return typeof n=="function"}var xv=class extends Wf{find(n){return super.find(Ae(n))}findAll(n={}){return super.findAll(Ae(n))}},Lv=class extends Qf{find(n){return super.find(Ae(n))}findAll(n={}){return super.findAll(Ae(n))}},Dv=class extends Rv{constructor(n={}){const e={defaultOptions:n.defaultOptions,queryCache:n.queryCache||new xv,mutationCache:n.mutationCache||new Lv};super(e),this.isRestoring=Te(!1)}isFetching(n={}){return super.isFetching(Ae(n))}isMutating(n={}){return super.isMutating(Ae(n))}getQueryData(n){return super.getQueryData(Ae(n))}ensureQueryData(n){return super.ensureQueryData(Ae(n))}getQueriesData(n){return super.getQueriesData(Ae(n))}setQueryData(n,e,t={}){return super.setQueryData(Ae(n),e,Ae(t))}setQueriesData(n,e,t={}){return super.setQueriesData(Ae(n),e,Ae(t))}getQueryState(n){return super.getQueryState(Ae(n))}removeQueries(n={}){return super.removeQueries(Ae(n))}resetQueries(n={},e={}){return super.resetQueries(Ae(n),Ae(e))}cancelQueries(n={},e={}){return super.cancelQueries(Ae(n),Ae(e))}invalidateQueries(n={},e={}){const t=Ae(n),r=Ae(e);if(super.invalidateQueries({...t,refetchType:"none"},r),t.refetchType==="none")return Promise.resolve();const o={...t,type:t.refetchType??t.type??"active"};return Hr().then(()=>super.refetchQueries(o,r))}refetchQueries(n={},e={}){return super.refetchQueries(Ae(n),Ae(e))}fetchQuery(n){return super.fetchQuery(Ae(n))}prefetchQuery(n){return super.prefetchQuery(Ae(n))}fetchInfiniteQuery(n){return super.fetchInfiniteQuery(Ae(n))}prefetchInfiniteQuery(n){return super.prefetchInfiniteQuery(Ae(n))}setDefaultOptions(n){super.setDefaultOptions(Ae(n))}setQueryDefaults(n,e){super.setQueryDefaults(Ae(n),Ae(e))}getQueryDefaults(n){return super.getQueryDefaults(Ae(n))}setMutationDefaults(n,e){super.setMutationDefaults(Ae(n),Ae(e))}getMutationDefaults(n){return super.getMutationDefaults(Ae(n))}},Uv={install:(n,e={})=>{const t=Ov(e.queryClientKey);let r;if("queryClient"in e&&e.queryClient)r=e.queryClient;else{const s="queryClientConfig"in e?e.queryClientConfig:void 0;r=new Dv(s)}Bf||r.mount();let o=()=>{};if(e.clientPersister){r.isRestoring&&(r.isRestoring.value=!0);const[s,a]=e.clientPersister(r);o=s,a.then(()=>{var c;r.isRestoring&&(r.isRestoring.value=!1),(c=e.clientPersisterOnSuccess)==null||c.call(e,r)})}const i=()=>{r.unmount(),o()};if(n.onUnmount)n.onUnmount(i);else{const s=n.unmount;n.unmount=function(){i(),s()}}n.provide(t,r)}},Hv=Object.defineProperty,Fv=(n,e,t)=>e in n?Hv(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,At=(n,e,t)=>Fv(n,typeof e!="symbol"?e+"":e,t);function Bv(n){if(typeof document>"u")return;function e(){let t=document.head||document.getElementsByTagName("head")[0];if(!t)return;let r=document.createElement("style");r.type="text/css",t.appendChild(r),r.styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}Bv(":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 oc=0;class Kv{constructor(){At(this,"subscribers"),At(this,"toasts"),At(this,"subscribe",e=>(this.subscribers.push(e),()=>{const t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)})),At(this,"publish",e=>{this.subscribers.forEach(t=>t(e))}),At(this,"addToast",e=>{this.publish(e),this.toasts=[...this.toasts,e]}),At(this,"create",e=>{var t;const{message:r,...o}=e,i=typeof e.id=="number"||e.id&&((t=e.id)==null?void 0:t.length)>0?e.id:oc++,s=this.toasts.find(c=>c.id===i),a=e.dismissible===void 0?!0:e.dismissible;return s?this.toasts=this.toasts.map(c=>c.id===i?(this.publish({...c,...e,id:i,title:r}),{...c,...e,id:i,dismissible:a,title:r}):c):this.addToast({title:r,...o,dismissible:a,id:i}),i}),At(this,"dismiss",e=>(e||this.toasts.forEach(t=>{this.subscribers.forEach(r=>r({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e)),At(this,"message",(e,t)=>this.create({...t,message:e,type:"default"})),At(this,"error",(e,t)=>this.create({...t,type:"error",message:e})),At(this,"success",(e,t)=>this.create({...t,type:"success",message:e})),At(this,"info",(e,t)=>this.create({...t,type:"info",message:e})),At(this,"warning",(e,t)=>this.create({...t,type:"warning",message:e})),At(this,"loading",(e,t)=>this.create({...t,type:"loading",message:e})),At(this,"promise",(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));const o=e instanceof Promise?e:e();let i=r!==void 0,s;const a=o.then(async l=>{if(s=["resolve",l],jv(l)&&!l.ok){i=!1;const u=typeof t.error=="function"?await t.error(`HTTP error! status: ${l.status}`):t.error,d=typeof t.description=="function"?await t.description(`HTTP error! status: ${l.status}`):t.description;this.create({id:r,type:"error",message:u,description:d})}else if(t.success!==void 0){i=!1;const u=typeof t.success=="function"?await t.success(l):t.success,d=typeof t.description=="function"?await t.description(l):t.description;this.create({id:r,type:"success",message:u,description:d})}}).catch(async l=>{if(s=["reject",l],t.error!==void 0){i=!1;const u=typeof t.error=="function"?await t.error(l):t.error,d=typeof t.description=="function"?await t.description(l):t.description;this.create({id:r,type:"error",message:u,description:d})}}).finally(()=>{var l;i&&(this.dismiss(r),r=void 0),(l=t.finally)==null||l.call(t)}),c=()=>new Promise((l,u)=>a.then(()=>s[0]==="reject"?u(s[1]):l(s[1])).catch(u));return typeof r!="string"&&typeof r!="number"?{unwrap:c}:Object.assign(r,{unwrap:c})}),At(this,"custom",(e,t)=>{const r=(t==null?void 0:t.id)||oc++;return this.publish({component:e,id:r,...t}),r}),this.subscribers=[],this.toasts=[]}}const Ft=new Kv;function qv(n,e){const t=(e==null?void 0:e.id)||oc++;return Ft.create({message:n,id:t,type:"default",...e}),t}const jv=n=>n&&typeof n=="object"&&"ok"in n&&typeof n.ok=="boolean"&&"status"in n&&typeof n.status=="number",$v=qv,Gv=()=>Ft.toasts,MI=Object.assign($v,{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:Gv});function Ki(n){return n.label!==void 0}function Vv(){const n=Te(!1);return ro(()=>{const e=()=>{n.value=document.hidden};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)}),{isDocumentHidden:n}}const zv=["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"],Qv=["aria-label","data-disabled"],Wv=4e3,Yv=20,Jv=200,Xv=$r({__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(n,{emit:e}){const t=n,r=e,o=Te(!1),i=Te(!1),s=Te(!1),a=Te(!1),c=Te(!1),l=Te(0),u=Te(0),d=Te(t.toast.duration||t.duration||Wv),h=Te(null),f=Te(null),C=_e(()=>t.index===0),p=_e(()=>t.index+1<=t.visibleToasts),v=_e(()=>t.toast.type),A=_e(()=>t.toast.dismissible!==!1),_=_e(()=>t.toast.class||""),y=_e(()=>t.descriptionClass||""),T=t.toast.style||{},P=_e(()=>t.heights.findIndex(R=>R.toastId===t.toast.id)||0),Q=_e(()=>t.toast.closeButton??t.closeButton),q=Te(0),K=Te(0),S=Te(null),x=_e(()=>t.position.split("-")),V=_e(()=>x.value[0]),U=_e(()=>x.value[1]),Z=_e(()=>typeof t.toast.title!="string"),ue=_e(()=>typeof t.toast.description!="string"),we=_e(()=>t.heights.reduce((R,pe,I)=>I>=P.value?R:R+pe.height,0)),me=Vv(),oe=_e(()=>t.toast.invert||t.invert),ge=_e(()=>v.value==="loading"),Re=_e(()=>P.value*t.gap+we.value||0);li(()=>{if(!o.value)return;const R=f.value,pe=R==null?void 0:R.style.height;R.style.height="auto";const I=R.getBoundingClientRect().height;R.style.height=pe,u.value=I;let D;t.heights.find(F=>F.toastId===t.toast.id)?D=t.heights.map(F=>F.toastId===t.toast.id?{...F,height:I}:F):D=[{toastId:t.toast.id,height:I,position:t.toast.position},...t.heights],r("update:heights",D)});function ve(){i.value=!0,l.value=Re.value;const R=t.heights.filter(pe=>pe.toastId!==t.toast.id);r("update:heights",R),setTimeout(()=>{r("removeToast",t.toast)},Jv)}function ze(){var R,pe;if(ge.value||!A.value)return{};ve(),(pe=(R=t.toast).onDismiss)==null||pe.call(R,t.toast)}function et(R){ge.value||!A.value||(h.value=new Date,l.value=Re.value,R.target.setPointerCapture(R.pointerId),R.target.tagName!=="BUTTON"&&(s.value=!0,S.value={x:R.clientX,y:R.clientY}))}function Ke(){var R,pe,I,D,F;if(a.value||!A)return;S.value=null;const Y=Number(((R=f.value)==null?void 0:R.style.getPropertyValue("--swipe-amount").replace("px",""))||0),he=new Date().getTime()-((pe=h.value)==null?void 0:pe.getTime()),g=Math.abs(Y)/he;if(Math.abs(Y)>=Yv||g>.11){l.value=Re.value,(D=(I=t.toast).onDismiss)==null||D.call(I,t.toast),ve(),a.value=!0,c.value=!1;return}(F=f.value)==null||F.style.setProperty("--swipe-amount","0px"),s.value=!1}function lt(R){var pe,I;if(!S.value||!A.value)return;const D=R.clientY-S.value.y,F=((pe=window.getSelection())==null?void 0:pe.toString().length)>0,Y=V.value==="top"?Math.min(0,D):Math.max(0,D);Math.abs(Y)>0&&(c.value=!0),!F&&((I=f.value)==null||I.style.setProperty("--swipe-amount",`${Y}px`))}return ro(R=>{if(t.toast.promise&&v.value==="loading"||t.toast.duration===1/0||t.toast.type==="loading")return;let pe;const I=()=>{if(K.value{d.value!==1/0&&(q.value=new Date().getTime(),pe=setTimeout(()=>{var F,Y;(Y=(F=t.toast).onAutoClose)==null||Y.call(F,t.toast),ve()},d.value))};t.expanded||t.interacting||t.pauseWhenPageIsHidden&&me?I():D(),R(()=>{clearTimeout(pe)})}),fr(()=>t.toast.delete,()=>{t.toast.delete&&ve()},{deep:!0}),li(()=>{if(o.value=!0,f.value){const R=f.value.getBoundingClientRect().height;u.value=R;const pe=[{toastId:t.toast.id,height:R,position:t.toast.position},...t.heights];r("update:heights",pe)}}),Gc(()=>{if(f.value){const R=t.heights.filter(pe=>pe.toastId!==t.toast.id);r("update:heights",R)}}),(R,pe)=>{var I,D,F,Y,he,g,m,w,N,L,M,z,G,j,H,re,W,ee,ae,be,ke,Me,Qe,Ze,xt,Lt,Wn;return se(),ye("li",{ref_key:"toastRef",ref:f,"aria-live":R.toast.important?"assertive":"polite","aria-atomic":"true",role:"status",tabindex:"0","data-sonner-toast":"true",class:Bt(R.cn(t.class,_.value,(I=R.classes)==null?void 0:I.toast,(D=R.toast.classes)==null?void 0:D.toast,(F=R.classes)==null?void 0:F[v.value],(he=(Y=R.toast)==null?void 0:Y.classes)==null?void 0:he[v.value])),"data-rich-colors":R.toast.richColors??R.defaultRichColors,"data-styled":!(R.toast.component||(g=R.toast)!=null&&g.unstyled||R.unstyled),"data-mounted":o.value,"data-promise":!!R.toast.promise,"data-removed":i.value,"data-visible":p.value,"data-y-position":V.value,"data-x-position":U.value,"data-index":R.index,"data-front":C.value,"data-swiping":s.value,"data-dismissible":A.value,"data-type":v.value,"data-invert":oe.value,"data-swipe-out":a.value,"data-expanded":!!(R.expanded||R.expandByDefault&&o.value),style:hr({"--index":R.index,"--toasts-before":R.index,"--z-index":R.toasts.length-R.index,"--offset":`${i.value?l.value:Re.value}px`,"--initial-height":R.expandByDefault?"auto":`${u.value}px`,...R.style,...ht(T)}),onPointerdown:et,onPointerup:Ke,onPointermove:lt},[Q.value&&!R.toast.component?(se(),ye("button",{key:0,"aria-label":R.closeButtonAriaLabel||"Close toast","data-disabled":ge.value,"data-close-button":"true",class:Bt(R.cn((m=R.classes)==null?void 0:m.closeButton,(N=(w=R.toast)==null?void 0:w.classes)==null?void 0:N.closeButton)),onClick:ze},[(L=R.icons)!=null&&L.close?(se(),An(Ho((M=R.icons)==null?void 0:M.close),{key:0})):Jt(R.$slots,"close-icon",{key:1})],10,Qv)):It("",!0),R.toast.component?(se(),An(Ho(R.toast.component),Zo({key:1},R.toast.componentProps,{onCloseToast:ze}),null,16)):(se(),ye(Fe,{key:2},[v.value!=="default"||R.toast.icon||R.toast.promise?(se(),ye("div",{key:0,"data-icon":"",class:Bt(R.cn((z=R.classes)==null?void 0:z.icon,(j=(G=R.toast)==null?void 0:G.classes)==null?void 0:j.icon))},[R.toast.icon?(se(),An(Ho(R.toast.icon),{key:0})):(se(),ye(Fe,{key:1},[v.value==="loading"?Jt(R.$slots,"loading-icon",{key:0}):v.value==="success"?Jt(R.$slots,"success-icon",{key:1}):v.value==="error"?Jt(R.$slots,"error-icon",{key:2}):v.value==="warning"?Jt(R.$slots,"warning-icon",{key:3}):v.value==="info"?Jt(R.$slots,"info-icon",{key:4}):It("",!0)],64))],2)):It("",!0),te("div",{"data-content":"",class:Bt(R.cn((H=R.classes)==null?void 0:H.content,(W=(re=R.toast)==null?void 0:re.classes)==null?void 0:W.content))},[te("div",{"data-title":"",class:Bt(R.cn((ee=R.classes)==null?void 0:ee.title,(ae=R.toast.classes)==null?void 0:ae.title))},[Z.value?(se(),An(Ho(R.toast.title),eu(Zo({key:0},R.toast.componentProps)),null,16)):(se(),ye(Fe,{key:1},[hi(nn(R.toast.title),1)],64))],2),R.toast.description?(se(),ye("div",{key:0,"data-description":"",class:Bt(R.cn(R.descriptionClass,y.value,(be=R.classes)==null?void 0:be.description,(ke=R.toast.classes)==null?void 0:ke.description))},[ue.value?(se(),An(Ho(R.toast.description),eu(Zo({key:0},R.toast.componentProps)),null,16)):(se(),ye(Fe,{key:1},[hi(nn(R.toast.description),1)],64))],2)):It("",!0)],2),R.toast.cancel?(se(),ye("button",{key:1,style:hr(R.toast.cancelButtonStyle||R.cancelButtonStyle),class:Bt(R.cn((Me=R.classes)==null?void 0:Me.cancelButton,(Qe=R.toast.classes)==null?void 0:Qe.cancelButton)),"data-button":"","data-cancel":"",onClick:pe[0]||(pe[0]=Yn=>{var tt,gt;ht(Ki)(R.toast.cancel)&&A.value&&((gt=(tt=R.toast.cancel).onClick)==null||gt.call(tt,Yn),ve())})},nn(ht(Ki)(R.toast.cancel)?(Ze=R.toast.cancel)==null?void 0:Ze.label:R.toast.cancel),7)):It("",!0),R.toast.action?(se(),ye("button",{key:2,style:hr(R.toast.actionButtonStyle||R.actionButtonStyle),class:Bt(R.cn((xt=R.classes)==null?void 0:xt.actionButton,(Lt=R.toast.classes)==null?void 0:Lt.actionButton)),"data-button":"","data-action":"",onClick:pe[1]||(pe[1]=Yn=>{var tt,gt;ht(Ki)(R.toast.action)&&(Yn.defaultPrevented||((gt=(tt=R.toast.action).onClick)==null||gt.call(tt,Yn),!Yn.defaultPrevented&&ve()))})},nn(ht(Ki)(R.toast.action)?(Wn=R.toast.action)==null?void 0:Wn.label:R.toast.action),7)):It("",!0)],64))],46,zv)}}}),Si=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},Zv={},eT={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 tT(n,e){return se(),ye("svg",eT,e[0]||(e[0]=[te("line",{x1:"18",y1:"6",x2:"6",y2:"18"},null,-1),te("line",{x1:"6",y1:"6",x2:"18",y2:"18"},null,-1)]))}const nT=Si(Zv,[["render",tT]]),rT=["data-visible"],oT={class:"sonner-spinner"},iT=$r({__name:"Loader",props:{visible:{type:Boolean}},setup(n){const e=Array(12).fill(0);return(t,r)=>(se(),ye("div",{class:"sonner-loading-wrapper","data-visible":t.visible},[te("div",oT,[(se(!0),ye(Fe,null,ho(ht(e),o=>(se(),ye("div",{key:`spinner-bar-${o}`,class:"sonner-loading-bar"}))),128))])],8,rT))}}),sT={},aT={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function cT(n,e){return se(),ye("svg",aT,e[0]||(e[0]=[te("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 lT=Si(sT,[["render",cT]]),uT={},dT={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function hT(n,e){return se(),ye("svg",dT,e[0]||(e[0]=[te("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 fT=Si(uT,[["render",hT]]),gT={},pT={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"};function mT(n,e){return se(),ye("svg",pT,e[0]||(e[0]=[te("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 yT=Si(gT,[["render",mT]]),CT={},vT={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function TT(n,e){return se(),ye("svg",vT,e[0]||(e[0]=[te("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 wT=Si(CT,[["render",TT]]),AT=["aria-label"],ET=["dir","data-theme","data-rich-colors","data-y-position","data-x-position","data-lifted"],bT=3,Ju="32px",_T=356,ST=14,IT=typeof window<"u"&&typeof document<"u";function RT(...n){return n.filter(Boolean).join(" ")}const kT=$r({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:ST},visibleToasts:{default:bT},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:""},style:{default:()=>({})},offset:{default:Ju},dir:{default:"auto"},icons:{},containerAriaLabel:{default:"Notifications"},pauseWhenPageIsHidden:{type:Boolean,default:!1},cn:{type:Function,default:RT}},setup(n){const e=n;function t(){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 r=ky(),o=Te([]),i=_e(()=>(y,T)=>o.value.filter(P=>!P.position&&T===0||P.position===y)),s=_e(()=>{const y=o.value.filter(T=>T.position).map(T=>T.position);return y.length>0?Array.from(new Set([e.position].concat(y))):[e.position]}),a=Te([]),c=Te(!1),l=Te(!1),u=Te(e.theme!=="system"?e.theme:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),d=Te(null),h=Te(null),f=Te(!1),C=e.hotkey.join("+").replace(/Key/g,"").replace(/Digit/g,"");function p(y){var T;(T=o.value.find(P=>P.id===y.id))!=null&&T.delete||Ft.dismiss(y.id),o.value=o.value.filter(({id:P})=>P!==y.id)}function v(y){var T,P;f.value&&!((P=(T=y.currentTarget)==null?void 0:T.contains)!=null&&P.call(T,y.relatedTarget))&&(f.value=!1,h.value&&(h.value.focus({preventScroll:!0}),h.value=null))}function A(y){y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||f.value||(f.value=!0,h.value=y.relatedTarget)}function _(y){y.target&&y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||(l.value=!0)}return ro(y=>{const T=Ft.subscribe(P=>{if(P.dismiss){o.value=o.value.map(Q=>Q.id===P.id?{...Q,delete:!0}:Q);return}Hr(()=>{const Q=o.value.findIndex(q=>q.id===P.id);Q!==-1?o.value=[...o.value.slice(0,Q),{...o.value[Q],...P},...o.value.slice(Q+1)]:o.value=[P,...o.value]})});y(T)}),fr(()=>e.theme,y=>{if(y!=="system"){u.value=y;return}if(y==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?u.value="dark":u.value="light"),typeof window>"u")return;const T=window.matchMedia("(prefers-color-scheme: dark)");try{T.addEventListener("change",({matches:P})=>{P?u.value="dark":u.value="light"})}catch{T.addListener(({matches:P})=>{try{P?u.value="dark":u.value="light"}catch(Q){console.error(Q)}})}}),ro(()=>{d.value&&h.value&&(h.value.focus({preventScroll:!0}),h.value=null,f.value=!1)}),ro(()=>{o.value.length<=1&&(c.value=!1)}),ro(y=>{function T(P){const Q=e.hotkey.every(S=>P[S]||P.code===S),q=Array.isArray(d.value)?d.value[0]:d.value;Q&&(c.value=!0,q==null||q.focus());const K=document.activeElement===d.value||(q==null?void 0:q.contains(document.activeElement));P.code==="Escape"&&K&&(c.value=!1)}IT&&(document.addEventListener("keydown",T),y(()=>{document.removeEventListener("keydown",T)}))}),(y,T)=>(se(),ye("section",{"aria-label":`${y.containerAriaLabel} ${ht(C)}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false"},[(se(!0),ye(Fe,null,ho(s.value,(P,Q)=>{var q;return se(),ye("ol",Zo({key:P,ref_for:!0,ref_key:"listRef",ref:d,"data-sonner-toaster":"",class:e.class,dir:y.dir==="auto"?t():y.dir,tabIndex:-1,"data-theme":y.theme,"data-rich-colors":y.richColors,"data-y-position":P.split("-")[0],"data-x-position":P.split("-")[1],"data-lifted":c.value&&o.value.length>1&&!y.expand,style:{"--front-toast-height":`${(q=a.value[0])==null?void 0:q.height}px`,"--offset":typeof y.offset=="number"?`${y.offset}px`:y.offset||Ju,"--width":`${_T}px`,"--gap":`${y.gap}px`,...y.style,...ht(r).style}},y.$attrs,{onBlur:v,onFocus:A,onMouseenter:T[1]||(T[1]=()=>c.value=!0),onMousemove:T[2]||(T[2]=()=>c.value=!0),onMouseleave:T[3]||(T[3]=()=>{l.value||(c.value=!1)}),onPointerdown:_,onPointerup:T[4]||(T[4]=()=>l.value=!1)}),[(se(!0),ye(Fe,null,ho(i.value(P,Q),(K,S)=>{var x,V,U,Z,ue,we,me,oe,ge;return se(),An(Xv,{key:K.id,heights:a.value.filter(Re=>Re.position===K.position),icons:y.icons,index:S,toast:K,defaultRichColors:y.richColors,duration:((x=y.toastOptions)==null?void 0:x.duration)??y.duration,class:Bt(((V=y.toastOptions)==null?void 0:V.class)??""),descriptionClass:(U=y.toastOptions)==null?void 0:U.descriptionClass,invert:y.invert,visibleToasts:y.visibleToasts,closeButton:((Z=y.toastOptions)==null?void 0:Z.closeButton)??y.closeButton,interacting:l.value,position:P,style:hr((ue=y.toastOptions)==null?void 0:ue.style),unstyled:(we=y.toastOptions)==null?void 0:we.unstyled,classes:(me=y.toastOptions)==null?void 0:me.classes,cancelButtonStyle:(oe=y.toastOptions)==null?void 0:oe.cancelButtonStyle,actionButtonStyle:(ge=y.toastOptions)==null?void 0:ge.actionButtonStyle,toasts:o.value.filter(Re=>Re.position===K.position),expandByDefault:y.expand,gap:y.gap,expanded:c.value,pauseWhenPageIsHidden:y.pauseWhenPageIsHidden,cn:y.cn,"onUpdate:heights":T[0]||(T[0]=Re=>{a.value=Re}),onRemoveToast:p},{"close-icon":or(()=>[Jt(y.$slots,"close-icon",{},()=>[Ge(nT)])]),"loading-icon":or(()=>[Jt(y.$slots,"loading-icon",{},()=>[Ge(iT,{visible:K.type==="loading"},null,8,["visible"])])]),"success-icon":or(()=>[Jt(y.$slots,"success-icon",{},()=>[Ge(lT)])]),"error-icon":or(()=>[Jt(y.$slots,"error-icon",{},()=>[Ge(wT)])]),"warning-icon":or(()=>[Jt(y.$slots,"warning-icon",{},()=>[Ge(yT)])]),"info-icon":or(()=>[Jt(y.$slots,"info-icon",{},()=>[Ge(fT)])]),_: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,ET)}),128))],8,AT))}});function Yf(n,e){return function(){return n.apply(e,arguments)}}const{toString:OT}=Object.prototype,{getPrototypeOf:$s}=Object,{iterator:Gs,toStringTag:Jf}=Symbol,Vs=(n=>e=>{const t=OT.call(e);return n[t]||(n[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),dn=n=>(n=n.toLowerCase(),e=>Vs(e)===n),zs=n=>e=>typeof e===n,{isArray:Mo}=Array,_o=zs("undefined");function Ii(n){return n!==null&&!_o(n)&&n.constructor!==null&&!_o(n.constructor)&&Mt(n.constructor.isBuffer)&&n.constructor.isBuffer(n)}const Xf=dn("ArrayBuffer");function PT(n){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(n):e=n&&n.buffer&&Xf(n.buffer),e}const NT=zs("string"),Mt=zs("function"),Zf=zs("number"),Ri=n=>n!==null&&typeof n=="object",MT=n=>n===!0||n===!1,ts=n=>{if(Vs(n)!=="object")return!1;const e=$s(n);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Jf in n)&&!(Gs in n)},xT=n=>{if(!Ri(n)||Ii(n))return!1;try{return Object.keys(n).length===0&&Object.getPrototypeOf(n)===Object.prototype}catch{return!1}},LT=dn("Date"),DT=dn("File"),UT=n=>!!(n&&typeof n.uri<"u"),HT=n=>n&&typeof n.getParts<"u",FT=dn("Blob"),BT=dn("FileList"),KT=n=>Ri(n)&&Mt(n.pipe);function qT(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Xu=qT(),Zu=typeof Xu.FormData<"u"?Xu.FormData:void 0,jT=n=>{if(!n)return!1;if(Zu&&n instanceof Zu)return!0;const e=$s(n);if(!e||e===Object.prototype||!Mt(n.append))return!1;const t=Vs(n);return t==="formdata"||t==="object"&&Mt(n.toString)&&n.toString()==="[object FormData]"},$T=dn("URLSearchParams"),[GT,VT,zT,QT]=["ReadableStream","Request","Response","Headers"].map(dn),WT=n=>n.trim?n.trim():n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ki(n,e,{allOwnKeys:t=!1}={}){if(n===null||typeof n>"u")return;let r,o;if(typeof n!="object"&&(n=[n]),Mo(n))for(r=0,o=n.length;r0;)if(o=t[r],e===o.toLowerCase())return o;return null}const Sr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,tg=n=>!_o(n)&&n!==Sr;function ic(...n){const{caseless:e,skipUndefined:t}=tg(this)&&this||{},r={},o=(i,s)=>{if(s==="__proto__"||s==="constructor"||s==="prototype")return;const a=e&&eg(r,s)||s,c=sc(r,a)?r[a]:void 0;ts(c)&&ts(i)?r[a]=ic(c,i):ts(i)?r[a]=ic({},i):Mo(i)?r[a]=i.slice():(!t||!_o(i))&&(r[a]=i)};for(let i=0,s=n.length;i(ki(e,(o,i)=>{t&&Mt(o)?Object.defineProperty(n,i,{__proto__:null,value:Yf(o,t),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(n,i,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),n),JT=n=>(n.charCodeAt(0)===65279&&(n=n.slice(1)),n),XT=(n,e,t,r)=>{n.prototype=Object.create(e.prototype,r),Object.defineProperty(n.prototype,"constructor",{__proto__:null,value:n,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(n,"super",{__proto__:null,value:e.prototype}),t&&Object.assign(n.prototype,t)},ZT=(n,e,t,r)=>{let o,i,s;const a={};if(e=e||{},n==null)return e;do{for(o=Object.getOwnPropertyNames(n),i=o.length;i-- >0;)s=o[i],(!r||r(s,n,e))&&!a[s]&&(e[s]=n[s],a[s]=!0);n=t!==!1&&$s(n)}while(n&&(!t||t(n,e))&&n!==Object.prototype);return e},ew=(n,e,t)=>{n=String(n),(t===void 0||t>n.length)&&(t=n.length),t-=e.length;const r=n.indexOf(e,t);return r!==-1&&r===t},tw=n=>{if(!n)return null;if(Mo(n))return n;let e=n.length;if(!Zf(e))return null;const t=new Array(e);for(;e-- >0;)t[e]=n[e];return t},nw=(n=>e=>n&&e instanceof n)(typeof Uint8Array<"u"&&$s(Uint8Array)),rw=(n,e)=>{const r=(n&&n[Gs]).call(n);let o;for(;(o=r.next())&&!o.done;){const i=o.value;e.call(n,i[0],i[1])}},ow=(n,e)=>{let t;const r=[];for(;(t=n.exec(e))!==null;)r.push(t);return r},iw=dn("HTMLFormElement"),sw=n=>n.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,r,o){return r.toUpperCase()+o}),sc=(({hasOwnProperty:n})=>(e,t)=>n.call(e,t))(Object.prototype),aw=dn("RegExp"),ng=(n,e)=>{const t=Object.getOwnPropertyDescriptors(n),r={};ki(t,(o,i)=>{let s;(s=e(o,i,n))!==!1&&(r[i]=s||o)}),Object.defineProperties(n,r)},cw=n=>{ng(n,(e,t)=>{if(Mt(n)&&["arguments","caller","callee"].includes(t))return!1;const r=n[t];if(Mt(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},lw=(n,e)=>{const t={},r=o=>{o.forEach(i=>{t[i]=!0})};return Mo(n)?r(n):r(String(n).split(e)),t},uw=()=>{},dw=(n,e)=>n!=null&&Number.isFinite(n=+n)?n:e;function hw(n){return!!(n&&Mt(n.append)&&n[Jf]==="FormData"&&n[Gs])}const fw=n=>{const e=new Array(10),t=(r,o)=>{if(Ri(r)){if(e.indexOf(r)>=0)return;if(Ii(r))return r;if(!("toJSON"in r)){e[o]=r;const i=Mo(r)?[]:{};return ki(r,(s,a)=>{const c=t(s,o+1);!_o(c)&&(i[a]=c)}),e[o]=void 0,i}}return r};return t(n,0)},gw=dn("AsyncFunction"),pw=n=>n&&(Ri(n)||Mt(n))&&Mt(n.then)&&Mt(n.catch),rg=((n,e)=>n?setImmediate:e?((t,r)=>(Sr.addEventListener("message",({source:o,data:i})=>{o===Sr&&i===t&&r.length&&r.shift()()},!1),o=>{r.push(o),Sr.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))(typeof setImmediate=="function",Mt(Sr.postMessage)),mw=typeof queueMicrotask<"u"?queueMicrotask.bind(Sr):typeof process<"u"&&process.nextTick||rg,yw=n=>n!=null&&Mt(n[Gs]),E={isArray:Mo,isArrayBuffer:Xf,isBuffer:Ii,isFormData:jT,isArrayBufferView:PT,isString:NT,isNumber:Zf,isBoolean:MT,isObject:Ri,isPlainObject:ts,isEmptyObject:xT,isReadableStream:GT,isRequest:VT,isResponse:zT,isHeaders:QT,isUndefined:_o,isDate:LT,isFile:DT,isReactNativeBlob:UT,isReactNative:HT,isBlob:FT,isRegExp:aw,isFunction:Mt,isStream:KT,isURLSearchParams:$T,isTypedArray:nw,isFileList:BT,forEach:ki,merge:ic,extend:YT,trim:WT,stripBOM:JT,inherits:XT,toFlatObject:ZT,kindOf:Vs,kindOfTest:dn,endsWith:ew,toArray:tw,forEachEntry:rw,matchAll:ow,isHTMLForm:iw,hasOwnProperty:sc,hasOwnProp:sc,reduceDescriptors:ng,freezeMethods:cw,toObjectSet:lw,toCamelCase:sw,noop:uw,toFiniteNumber:dw,findKey:eg,global:Sr,isContextDefined:tg,isSpecCompliantForm:hw,toJSONObject:fw,isAsyncFn:gw,isThenable:pw,setImmediate:rg,asap:mw,isIterable:yw},Cw=E.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"]),vw=n=>{const e={};let t,r,o;return n&&n.split(` +`).forEach(function(s){o=s.indexOf(":"),t=s.substring(0,o).trim().toLowerCase(),r=s.substring(o+1).trim(),!(!t||e[t]&&Cw[t])&&(t==="set-cookie"?e[t]?e[t].push(r):e[t]=[r]:e[t]=e[t]?e[t]+", "+r:r)}),e},ed=Symbol("internals"),Tw=/[^\x09\x20-\x7E\x80-\xFF]/g;function ww(n){let e=0,t=n.length;for(;ee;){const r=n.charCodeAt(t-1);if(r!==9&&r!==32)break;t-=1}return e===0&&t===n.length?n:n.slice(e,t)}function Ko(n){return n&&String(n).trim().toLowerCase()}function Aw(n){return ww(n.replace(Tw,""))}function ns(n){return n===!1||n==null?n:E.isArray(n)?n.map(ns):Aw(String(n))}function Ew(n){const e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=t.exec(n);)e[r[1]]=r[2];return e}const bw=n=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());function _a(n,e,t,r,o){if(E.isFunction(r))return r.call(this,e,t);if(o&&(e=t),!!E.isString(e)){if(E.isString(r))return e.indexOf(r)!==-1;if(E.isRegExp(r))return r.test(e)}}function _w(n){return n.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r)}function Sw(n,e){const t=E.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(n,r+t,{__proto__:null,value:function(o,i,s){return this[r].call(this,e,o,i,s)},configurable:!0})})}let Pt=class{constructor(e){e&&this.set(e)}set(e,t,r){const o=this;function i(a,c,l){const u=Ko(c);if(!u)throw new Error("header name must be a non-empty string");const d=E.findKey(o,u);(!d||o[d]===void 0||l===!0||l===void 0&&o[d]!==!1)&&(o[d||c]=ns(a))}const s=(a,c)=>E.forEach(a,(l,u)=>i(l,u,c));if(E.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(E.isString(e)&&(e=e.trim())&&!bw(e))s(vw(e),t);else if(E.isObject(e)&&E.isIterable(e)){let a={},c,l;for(const u of e){if(!E.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[l=u[0]]=(c=a[l])?E.isArray(c)?[...c,u[1]]:[c,u[1]]:u[1]}s(a,t)}else e!=null&&i(t,e,r);return this}get(e,t){if(e=Ko(e),e){const r=E.findKey(this,e);if(r){const o=this[r];if(!t)return o;if(t===!0)return Ew(o);if(E.isFunction(t))return t.call(this,o,r);if(E.isRegExp(t))return t.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ko(e),e){const r=E.findKey(this,e);return!!(r&&this[r]!==void 0&&(!t||_a(this,this[r],r,t)))}return!1}delete(e,t){const r=this;let o=!1;function i(s){if(s=Ko(s),s){const a=E.findKey(r,s);a&&(!t||_a(r,r[a],a,t))&&(delete r[a],o=!0)}}return E.isArray(e)?e.forEach(i):i(e),o}clear(e){const t=Object.keys(this);let r=t.length,o=!1;for(;r--;){const i=t[r];(!e||_a(this,this[i],i,e,!0))&&(delete this[i],o=!0)}return o}normalize(e){const t=this,r={};return E.forEach(this,(o,i)=>{const s=E.findKey(r,i);if(s){t[s]=ns(o),delete t[i];return}const a=e?_w(i):String(i).trim();a!==i&&delete t[i],t[a]=ns(o),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return E.forEach(this,(r,o)=>{r!=null&&r!==!1&&(t[o]=e&&E.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach(o=>r.set(o)),r}static accessor(e){const r=(this[ed]=this[ed]={accessors:{}}).accessors,o=this.prototype;function i(s){const a=Ko(s);r[a]||(Sw(o,s),r[a]=!0)}return E.isArray(e)?e.forEach(i):i(e),this}};Pt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);E.reduceDescriptors(Pt.prototype,({value:n},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>n,set(r){this[t]=r}}});E.freezeMethods(Pt);const Iw="[REDACTED ****]";function Rw(n){if(E.hasOwnProp(n,"toJSON"))return!0;let e=Object.getPrototypeOf(n);for(;e&&e!==Object.prototype;){if(E.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function kw(n,e){const t=new Set(e.map(i=>String(i).toLowerCase())),r=[],o=i=>{if(i===null||typeof i!="object"||E.isBuffer(i))return i;if(r.indexOf(i)!==-1)return;i instanceof Pt&&(i=i.toJSON()),r.push(i);let s;if(E.isArray(i))s=[],i.forEach((a,c)=>{const l=o(a);E.isUndefined(l)||(s[c]=l)});else{if(!E.isPlainObject(i)&&Rw(i))return r.pop(),i;s=Object.create(null);for(const[a,c]of Object.entries(i)){const l=t.has(a.toLowerCase())?Iw:o(c);E.isUndefined(l)||(s[a]=l)}}return r.pop(),s};return o(n)}let X=class og extends Error{static from(e,t,r,o,i,s){const a=new og(e.message,t||e.code,r,o,i);return a.cause=e,a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),s&&Object.assign(a,s),a}constructor(e,t,r,o,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),r&&(this.config=r),o&&(this.request=o),i&&(this.response=i,this.status=i.status)}toJSON(){const e=this.config,t=e&&E.hasOwnProp(e,"redact")?e.redact:void 0,r=E.isArray(t)&&t.length>0?kw(e,t):E.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:r,code:this.code,status:this.status}}};X.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";X.ERR_BAD_OPTION="ERR_BAD_OPTION";X.ECONNABORTED="ECONNABORTED";X.ETIMEDOUT="ETIMEDOUT";X.ECONNREFUSED="ECONNREFUSED";X.ERR_NETWORK="ERR_NETWORK";X.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";X.ERR_DEPRECATED="ERR_DEPRECATED";X.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";X.ERR_BAD_REQUEST="ERR_BAD_REQUEST";X.ERR_CANCELED="ERR_CANCELED";X.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";X.ERR_INVALID_URL="ERR_INVALID_URL";X.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const Ow=null;function ac(n){return E.isPlainObject(n)||E.isArray(n)}function ig(n){return E.endsWith(n,"[]")?n.slice(0,-2):n}function Sa(n,e,t){return n?n.concat(e).map(function(o,i){return o=ig(o),!t&&i?"["+o+"]":o}).join(t?".":""):e}function Pw(n){return E.isArray(n)&&!n.some(ac)}const Nw=E.toFlatObject(E,{},null,function(e){return/^is[A-Z]/.test(e)});function Qs(n,e,t){if(!E.isObject(n))throw new TypeError("target must be an object");e=e||new FormData,t=E.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,A){return!E.isUndefined(A[v])});const r=t.metaTokens,o=t.visitor||d,i=t.dots,s=t.indexes,a=t.Blob||typeof Blob<"u"&&Blob,c=t.maxDepth===void 0?100:t.maxDepth,l=a&&E.isSpecCompliantForm(e);if(!E.isFunction(o))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(E.isDate(p))return p.toISOString();if(E.isBoolean(p))return p.toString();if(!l&&E.isBlob(p))throw new X("Blob is not supported. Use a Buffer instead.");return E.isArrayBuffer(p)||E.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function d(p,v,A){let _=p;if(E.isReactNative(e)&&E.isReactNativeBlob(p))return e.append(Sa(A,v,i),u(p)),!1;if(p&&!A&&typeof p=="object"){if(E.endsWith(v,"{}"))v=r?v:v.slice(0,-2),p=JSON.stringify(p);else if(E.isArray(p)&&Pw(p)||(E.isFileList(p)||E.endsWith(v,"[]"))&&(_=E.toArray(p)))return v=ig(v),_.forEach(function(T,P){!(E.isUndefined(T)||T===null)&&e.append(s===!0?Sa([v],P,i):s===null?v:v+"[]",u(T))}),!1}return ac(p)?!0:(e.append(Sa(A,v,i),u(p)),!1)}const h=[],f=Object.assign(Nw,{defaultVisitor:d,convertValue:u,isVisitable:ac});function C(p,v,A=0){if(!E.isUndefined(p)){if(A>c)throw new X("Object is too deeply nested ("+A+" levels). Max depth: "+c,X.ERR_FORM_DATA_DEPTH_EXCEEDED);if(h.indexOf(p)!==-1)throw Error("Circular reference detected in "+v.join("."));h.push(p),E.forEach(p,function(y,T){(!(E.isUndefined(y)||y===null)&&o.call(e,y,E.isString(T)?T.trim():T,v,f))===!0&&C(y,v?v.concat(T):[T],A+1)}),h.pop()}}if(!E.isObject(n))throw new TypeError("data must be an object");return C(n),e}function td(n){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(n).replace(/[!'()~]|%20/g,function(r){return e[r]})}function el(n,e){this._pairs=[],n&&Qs(n,this,e)}const sg=el.prototype;sg.append=function(e,t){this._pairs.push([e,t])};sg.toString=function(e){const t=e?function(r){return e.call(this,r,td)}:td;return this._pairs.map(function(o){return t(o[0])+"="+t(o[1])},"").join("&")};function Mw(n){return encodeURIComponent(n).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function ag(n,e,t){if(!e)return n;const r=t&&t.encode||Mw,o=E.isFunction(t)?{serialize:t}:t,i=o&&o.serialize;let s;if(i?s=i(e,o):s=E.isURLSearchParams(e)?e.toString():new el(e,o).toString(r),s){const a=n.indexOf("#");a!==-1&&(n=n.slice(0,a)),n+=(n.indexOf("?")===-1?"?":"&")+s}return n}class nd{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){E.forEach(this.handlers,function(r){r!==null&&e(r)})}}const tl={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},xw=typeof URLSearchParams<"u"?URLSearchParams:el,Lw=typeof FormData<"u"?FormData:null,Dw=typeof Blob<"u"?Blob:null,Uw={isBrowser:!0,classes:{URLSearchParams:xw,FormData:Lw,Blob:Dw},protocols:["http","https","file","blob","url","data"]},nl=typeof window<"u"&&typeof document<"u",cc=typeof navigator=="object"&&navigator||void 0,Hw=nl&&(!cc||["ReactNative","NativeScript","NS"].indexOf(cc.product)<0),Fw=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Bw=nl&&window.location.href||"http://localhost",Kw=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:nl,hasStandardBrowserEnv:Hw,hasStandardBrowserWebWorkerEnv:Fw,navigator:cc,origin:Bw},Symbol.toStringTag,{value:"Module"})),wt={...Kw,...Uw};function qw(n,e){return Qs(n,new wt.classes.URLSearchParams,{visitor:function(t,r,o,i){return wt.isNode&&E.isBuffer(t)?(this.append(r,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...e})}function jw(n){return E.matchAll(/\w+|\[(\w*)]/g,n).map(e=>e[0]==="[]"?"":e[1]||e[0])}function $w(n){const e={},t=Object.keys(n);let r;const o=t.length;let i;for(r=0;r=t.length;return s=!s&&E.isArray(o)?o.length:s,c?(E.hasOwnProp(o,s)?o[s]=E.isArray(o[s])?o[s].concat(r):[o[s],r]:o[s]=r,!a):((!o[s]||!E.isObject(o[s]))&&(o[s]=[]),e(t,r,o[s],i)&&E.isArray(o[s])&&(o[s]=$w(o[s])),!a)}if(E.isFormData(n)&&E.isFunction(n.entries)){const t={};return E.forEachEntry(n,(r,o)=>{e(jw(r),o,t,0)}),t}return null}const Wr=(n,e)=>n!=null&&E.hasOwnProp(n,e)?n[e]:void 0;function Gw(n,e,t){if(E.isString(n))try{return(e||JSON.parse)(n),E.trim(n)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(n)}const Oi={transitional:tl,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",o=r.indexOf("application/json")>-1,i=E.isObject(e);if(i&&E.isHTMLForm(e)&&(e=new FormData(e)),E.isFormData(e))return o?JSON.stringify(cg(e)):e;if(E.isArrayBuffer(e)||E.isBuffer(e)||E.isStream(e)||E.isFile(e)||E.isBlob(e)||E.isReadableStream(e))return e;if(E.isArrayBufferView(e))return e.buffer;if(E.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){const c=Wr(this,"formSerializer");if(r.indexOf("application/x-www-form-urlencoded")>-1)return qw(e,c).toString();if((a=E.isFileList(e))||r.indexOf("multipart/form-data")>-1){const l=Wr(this,"env"),u=l&&l.FormData;return Qs(a?{"files[]":e}:e,u&&new u,c)}}return i||o?(t.setContentType("application/json",!1),Gw(e)):e}],transformResponse:[function(e){const t=Wr(this,"transitional")||Oi.transitional,r=t&&t.forcedJSONParsing,o=Wr(this,"responseType"),i=o==="json";if(E.isResponse(e)||E.isReadableStream(e))return e;if(e&&E.isString(e)&&(r&&!o||i)){const a=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Wr(this,"parseReviver"))}catch(c){if(a)throw c.name==="SyntaxError"?X.from(c,X.ERR_BAD_RESPONSE,this,null,Wr(this,"response")):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:wt.classes.FormData,Blob:wt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};E.forEach(["delete","get","head","post","put","patch","query"],n=>{Oi.headers[n]={}});function Ia(n,e){const t=this||Oi,r=e||t,o=Pt.from(r.headers);let i=r.data;return E.forEach(n,function(a){i=a.call(t,i,o.normalize(),e?e.status:void 0)}),o.normalize(),i}function lg(n){return!!(n&&n.__CANCEL__)}let Pi=class extends X{constructor(e,t,r){super(e??"canceled",X.ERR_CANCELED,t,r),this.name="CanceledError",this.__CANCEL__=!0}};function ug(n,e,t){const r=t.config.validateStatus;!t.status||!r||r(t.status)?n(t):e(new X("Request failed with status code "+t.status,t.status>=400&&t.status<500?X.ERR_BAD_REQUEST:X.ERR_BAD_RESPONSE,t.config,t.request,t))}function Vw(n){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(n);return e&&e[1]||""}function zw(n,e){n=n||10;const t=new Array(n),r=new Array(n);let o=0,i=0,s;return e=e!==void 0?e:1e3,function(c){const l=Date.now(),u=r[i];s||(s=l),t[o]=c,r[o]=l;let d=i,h=0;for(;d!==o;)h+=t[d++],d=d%n;if(o=(o+1)%n,o===i&&(i=(i+1)%n),l-s{t=u,o=null,i&&(clearTimeout(i),i=null),n(...l)};return[(...l)=>{const u=Date.now(),d=u-t;d>=r?s(l,u):(o=l,i||(i=setTimeout(()=>{i=null,s(o)},r-d)))},()=>o&&s(o)]}const gs=(n,e,t=3)=>{let r=0;const o=zw(50,250);return Qw(i=>{const s=i.loaded,a=i.lengthComputable?i.total:void 0,c=a!=null?Math.min(s,a):s,l=Math.max(0,c-r),u=o(l);r=Math.max(r,c);const d={loaded:c,total:a,progress:a?c/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a?(a-c)/u:void 0,event:i,lengthComputable:a!=null,[e?"download":"upload"]:!0};n(d)},t)},rd=(n,e)=>{const t=n!=null;return[r=>e[0]({lengthComputable:t,total:n,loaded:r}),e[1]]},od=n=>(...e)=>E.asap(()=>n(...e)),Ww=wt.hasStandardBrowserEnv?((n,e)=>t=>(t=new URL(t,wt.origin),n.protocol===t.protocol&&n.host===t.host&&(e||n.port===t.port)))(new URL(wt.origin),wt.navigator&&/(msie|trident)/i.test(wt.navigator.userAgent)):()=>!0,Yw=wt.hasStandardBrowserEnv?{write(n,e,t,r,o,i,s){if(typeof document>"u")return;const a=[`${n}=${encodeURIComponent(e)}`];E.isNumber(t)&&a.push(`expires=${new Date(t).toUTCString()}`),E.isString(r)&&a.push(`path=${r}`),E.isString(o)&&a.push(`domain=${o}`),i===!0&&a.push("secure"),E.isString(s)&&a.push(`SameSite=${s}`),document.cookie=a.join("; ")},read(n){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let t=0;tn instanceof Pt?{...n}:n;function Fr(n,e){e=e||{};const t=Object.create(null);Object.defineProperty(t,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(l,u,d,h){return E.isPlainObject(l)&&E.isPlainObject(u)?E.merge.call({caseless:h},l,u):E.isPlainObject(u)?E.merge({},u):E.isArray(u)?u.slice():u}function o(l,u,d,h){if(E.isUndefined(u)){if(!E.isUndefined(l))return r(void 0,l,d,h)}else return r(l,u,d,h)}function i(l,u){if(!E.isUndefined(u))return r(void 0,u)}function s(l,u){if(E.isUndefined(u)){if(!E.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function a(l,u,d){if(E.hasOwnProp(e,d))return r(l,u);if(E.hasOwnProp(n,d))return r(void 0,l)}const c={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,allowedSocketPaths:s,responseEncoding:s,validateStatus:a,headers:(l,u,d)=>o(id(l),id(u),d,!0)};return E.forEach(Object.keys({...n,...e}),function(u){if(u==="__proto__"||u==="constructor"||u==="prototype")return;const d=E.hasOwnProp(c,u)?c[u]:o,h=E.hasOwnProp(n,u)?n[u]:void 0,f=E.hasOwnProp(e,u)?e[u]:void 0,C=d(h,f,u);E.isUndefined(C)&&d!==a||(t[u]=C)}),t}const Zw=["content-type","content-length"];function eA(n,e,t){if(t!=="content-only"){n.set(e);return}Object.entries(e).forEach(([r,o])=>{Zw.includes(r.toLowerCase())&&n.set(r,o)})}const tA=n=>encodeURIComponent(n).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),hg=n=>{const e=Fr({},n),t=h=>E.hasOwnProp(e,h)?e[h]:void 0,r=t("data");let o=t("withXSRFToken");const i=t("xsrfHeaderName"),s=t("xsrfCookieName");let a=t("headers");const c=t("auth"),l=t("baseURL"),u=t("allowAbsoluteUrls"),d=t("url");if(e.headers=a=Pt.from(a),e.url=ag(dg(l,d,u),n.params,n.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?tA(c.password):""))),E.isFormData(r)&&(wt.hasStandardBrowserEnv||wt.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):E.isFunction(r.getHeaders)&&eA(a,r.getHeaders(),t("formDataHeaderPolicy"))),wt.hasStandardBrowserEnv&&(E.isFunction(o)&&(o=o(e)),o===!0||o==null&&Ww(e.url))){const f=i&&s&&Yw.read(s);f&&a.set(i,f)}return e},nA=typeof XMLHttpRequest<"u",rA=nA&&function(n){return new Promise(function(t,r){const o=hg(n);let i=o.data;const s=Pt.from(o.headers).normalize();let{responseType:a,onUploadProgress:c,onDownloadProgress:l}=o,u,d,h,f,C;function p(){f&&f(),C&&C(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let v=new XMLHttpRequest;v.open(o.method.toUpperCase(),o.url,!0),v.timeout=o.timeout;function A(){if(!v)return;const y=Pt.from("getAllResponseHeaders"in v&&v.getAllResponseHeaders()),P={data:!a||a==="text"||a==="json"?v.responseText:v.response,status:v.status,statusText:v.statusText,headers:y,config:n,request:v};ug(function(q){t(q),p()},function(q){r(q),p()},P),v=null}"onloadend"in v?v.onloadend=A:v.onreadystatechange=function(){!v||v.readyState!==4||v.status===0&&!(v.responseURL&&v.responseURL.startsWith("file:"))||setTimeout(A)},v.onabort=function(){v&&(r(new X("Request aborted",X.ECONNABORTED,n,v)),p(),v=null)},v.onerror=function(T){const P=T&&T.message?T.message:"Network Error",Q=new X(P,X.ERR_NETWORK,n,v);Q.event=T||null,r(Q),p(),v=null},v.ontimeout=function(){let T=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const P=o.transitional||tl;o.timeoutErrorMessage&&(T=o.timeoutErrorMessage),r(new X(T,P.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,n,v)),p(),v=null},i===void 0&&s.setContentType(null),"setRequestHeader"in v&&E.forEach(s.toJSON(),function(T,P){v.setRequestHeader(P,T)}),E.isUndefined(o.withCredentials)||(v.withCredentials=!!o.withCredentials),a&&a!=="json"&&(v.responseType=o.responseType),l&&([h,C]=gs(l,!0),v.addEventListener("progress",h)),c&&v.upload&&([d,f]=gs(c),v.upload.addEventListener("progress",d),v.upload.addEventListener("loadend",f)),(o.cancelToken||o.signal)&&(u=y=>{v&&(r(!y||y.type?new Pi(null,n,v):y),v.abort(),p(),v=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const _=Vw(o.url);if(_&&!wt.protocols.includes(_)){r(new X("Unsupported protocol "+_+":",X.ERR_BAD_REQUEST,n));return}v.send(i||null)})},oA=(n,e)=>{const{length:t}=n=n?n.filter(Boolean):[];if(e||t){let r=new AbortController,o;const i=function(l){if(!o){o=!0,a();const u=l instanceof Error?l:this.reason;r.abort(u instanceof X?u:new Pi(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,i(new X(`timeout of ${e}ms exceeded`,X.ETIMEDOUT))},e);const a=()=>{n&&(s&&clearTimeout(s),s=null,n.forEach(l=>{l.unsubscribe?l.unsubscribe(i):l.removeEventListener("abort",i)}),n=null)};n.forEach(l=>l.addEventListener("abort",i));const{signal:c}=r;return c.unsubscribe=()=>E.asap(a),c}},iA=function*(n,e){let t=n.byteLength;if(t{const o=sA(n,e);let i=0,s,a=c=>{s||(s=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:l,value:u}=await o.next();if(l){a(),c.close();return}let d=u.byteLength;if(t){let h=i+=d;t(h)}c.enqueue(new Uint8Array(u))}catch(l){throw a(l),l}},cancel(c){return a(c),o.return()}},{highWaterMark:2})};function cA(n){if(!n||typeof n!="string"||!n.startsWith("data:"))return 0;const e=n.indexOf(",");if(e<0)return 0;const t=n.slice(5,e),r=n.slice(e+1);if(/;base64/i.test(t)){let s=r.length;const a=r.length;for(let f=0;f=48&&C<=57||C>=65&&C<=70||C>=97&&C<=102)&&(p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102)&&(s-=2,f+=2)}let c=0,l=a-1;const u=f=>f>=2&&r.charCodeAt(f-2)===37&&r.charCodeAt(f-1)===51&&(r.charCodeAt(f)===68||r.charCodeAt(f)===100);l>=0&&(r.charCodeAt(l)===61?(c++,l--):u(l)&&(c++,l-=3)),c===1&&l>=0&&(r.charCodeAt(l)===61||u(l))&&c++;const h=Math.floor(s/4)*3-(c||0);return h>0?h:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(r,"utf8");let i=0;for(let s=0,a=r.length;s=55296&&c<=56319&&s+1=56320&&l<=57343?(i+=4,s++):i+=3}else i+=3}return i}const rl="1.16.0",ad=64*1024,{isFunction:qi}=E,cd=(n,...e)=>{try{return!!n(...e)}catch{return!1}},lA=n=>{const e=E.global??globalThis,{ReadableStream:t,TextEncoder:r}=e;n=E.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},n);const{fetch:o,Request:i,Response:s}=n,a=o?qi(o):typeof fetch=="function",c=qi(i),l=qi(s);if(!a)return!1;const u=a&&qi(t),d=a&&(typeof r=="function"?(A=>_=>A.encode(_))(new r):async A=>new Uint8Array(await new i(A).arrayBuffer())),h=c&&u&&cd(()=>{let A=!1;const _=new i(wt.origin,{body:new t,method:"POST",get duplex(){return A=!0,"half"}}),y=_.headers.has("Content-Type");return _.body!=null&&_.body.cancel(),A&&!y}),f=l&&u&&cd(()=>E.isReadableStream(new s("").body)),C={stream:f&&(A=>A.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(A=>{!C[A]&&(C[A]=(_,y)=>{let T=_&&_[A];if(T)return T.call(_);throw new X(`Response type '${A}' is not supported`,X.ERR_NOT_SUPPORT,y)})});const p=async A=>{if(A==null)return 0;if(E.isBlob(A))return A.size;if(E.isSpecCompliantForm(A))return(await new i(wt.origin,{method:"POST",body:A}).arrayBuffer()).byteLength;if(E.isArrayBufferView(A)||E.isArrayBuffer(A))return A.byteLength;if(E.isURLSearchParams(A)&&(A=A+""),E.isString(A))return(await d(A)).byteLength},v=async(A,_)=>{const y=E.toFiniteNumber(A.getContentLength());return y??p(_)};return async A=>{let{url:_,method:y,data:T,signal:P,cancelToken:Q,timeout:q,onDownloadProgress:K,onUploadProgress:S,responseType:x,headers:V,withCredentials:U="same-origin",fetchOptions:Z,maxContentLength:ue,maxBodyLength:we}=hg(A);const me=E.isNumber(ue)&&ue>-1,oe=E.isNumber(we)&&we>-1;let ge=o||fetch;x=x?(x+"").toLowerCase():"text";let Re=oA([P,Q&&Q.toAbortSignal()],q),ve=null;const ze=Re&&Re.unsubscribe&&(()=>{Re.unsubscribe()});let et;try{if(me&&typeof _=="string"&&_.startsWith("data:")&&cA(_)>ue)throw new X("maxContentLength size of "+ue+" exceeded",X.ERR_BAD_RESPONSE,A,ve);if(oe&&y!=="get"&&y!=="head"){const D=await v(V,T);if(typeof D=="number"&&isFinite(D)&&D>we)throw new X("Request body larger than maxBodyLength limit",X.ERR_BAD_REQUEST,A,ve)}if(S&&h&&y!=="get"&&y!=="head"&&(et=await v(V,T))!==0){let D=new i(_,{method:"POST",body:T,duplex:"half"}),F;if(E.isFormData(T)&&(F=D.headers.get("content-type"))&&V.setContentType(F),D.body){const[Y,he]=rd(et,gs(od(S)));T=sd(D.body,ad,Y,he)}}E.isString(U)||(U=U?"include":"omit");const Ke=c&&"credentials"in i.prototype;if(E.isFormData(T)){const D=V.getContentType();D&&/^multipart\/form-data/i.test(D)&&!/boundary=/i.test(D)&&V.delete("content-type")}V.set("User-Agent","axios/"+rl,!1);const lt={...Z,signal:Re,method:y.toUpperCase(),headers:V.normalize().toJSON(),body:T,duplex:"half",credentials:Ke?U:void 0};ve=c&&new i(_,lt);let R=await(c?ge(ve,Z):ge(_,lt));if(me){const D=E.toFiniteNumber(R.headers.get("content-length"));if(D!=null&&D>ue)throw new X("maxContentLength size of "+ue+" exceeded",X.ERR_BAD_RESPONSE,A,ve)}const pe=f&&(x==="stream"||x==="response");if(f&&R.body&&(K||me||pe&&ze)){const D={};["status","statusText","headers"].forEach(w=>{D[w]=R[w]});const F=E.toFiniteNumber(R.headers.get("content-length")),[Y,he]=K&&rd(F,gs(od(K),!0))||[];let g=0;const m=w=>{if(me&&(g=w,g>ue))throw new X("maxContentLength size of "+ue+" exceeded",X.ERR_BAD_RESPONSE,A,ve);Y&&Y(w)};R=new s(sd(R.body,ad,m,()=>{he&&he(),ze&&ze()}),D)}x=x||"text";let I=await C[E.findKey(C,x)||"text"](R,A);if(me&&!f&&!pe){let D;if(I!=null&&(typeof I.byteLength=="number"?D=I.byteLength:typeof I.size=="number"?D=I.size:typeof I=="string"&&(D=typeof r=="function"?new r().encode(I).byteLength:I.length)),typeof D=="number"&&D>ue)throw new X("maxContentLength size of "+ue+" exceeded",X.ERR_BAD_RESPONSE,A,ve)}return!pe&&ze&&ze(),await new Promise((D,F)=>{ug(D,F,{data:I,headers:Pt.from(R.headers),status:R.status,statusText:R.statusText,config:A,request:ve})})}catch(Ke){if(ze&&ze(),Re&&Re.aborted&&Re.reason instanceof X){const lt=Re.reason;throw lt.config=A,ve&&(lt.request=ve),Ke!==lt&&(lt.cause=Ke),lt}throw Ke&&Ke.name==="TypeError"&&/Load failed|fetch/i.test(Ke.message)?Object.assign(new X("Network Error",X.ERR_NETWORK,A,ve,Ke&&Ke.response),{cause:Ke.cause||Ke}):X.from(Ke,Ke&&Ke.code,A,ve,Ke&&Ke.response)}}},uA=new Map,fg=n=>{let e=n&&n.env||{};const{fetch:t,Request:r,Response:o}=e,i=[r,o,t];let s=i.length,a=s,c,l,u=uA;for(;a--;)c=i[a],l=u.get(c),l===void 0&&u.set(c,l=a?new Map:lA(e)),u=l;return l};fg();const ol={http:Ow,xhr:rA,fetch:{get:fg}};E.forEach(ol,(n,e)=>{if(n){try{Object.defineProperty(n,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(n,"adapterName",{__proto__:null,value:e})}});const ld=n=>`- ${n}`,dA=n=>E.isFunction(n)||n===null||n===!1;function hA(n,e){n=E.isArray(n)?n:[n];const{length:t}=n;let r,o;const i={};for(let s=0;s`adapter ${c} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?s.length>1?`since : +`+s.map(ld).join(` +`):" "+ld(s[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o}const gg={getAdapter:hA,adapters:ol};function Ra(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new Pi(null,n)}function ud(n){return Ra(n),n.headers=Pt.from(n.headers),n.data=Ia.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),gg.getAdapter(n.adapter||Oi.adapter,n)(n).then(function(r){Ra(n),n.response=r;try{r.data=Ia.call(n,n.transformResponse,r)}finally{delete n.response}return r.headers=Pt.from(r.headers),r},function(r){if(!lg(r)&&(Ra(n),r&&r.response)){n.response=r.response;try{r.response.data=Ia.call(n,n.transformResponse,r.response)}finally{delete n.response}r.response.headers=Pt.from(r.response.headers)}return Promise.reject(r)})}const Ws={};["object","boolean","number","function","string","symbol"].forEach((n,e)=>{Ws[n]=function(r){return typeof r===n||"a"+(e<1?"n ":" ")+n}});const dd={};Ws.transitional=function(e,t,r){function o(i,s){return"[Axios v"+rl+"] Transitional option '"+i+"'"+s+(r?". "+r:"")}return(i,s,a)=>{if(e===!1)throw new X(o(s," has been removed"+(t?" in "+t:"")),X.ERR_DEPRECATED);return t&&!dd[s]&&(dd[s]=!0,console.warn(o(s," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(i,s,a):!0}};Ws.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function fA(n,e,t){if(typeof n!="object")throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const r=Object.keys(n);let o=r.length;for(;o-- >0;){const i=r[o],s=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0;if(s){const a=n[i],c=a===void 0||s(a,i,n);if(c!==!0)throw new X("option "+i+" must be "+c,X.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new X("Unknown option "+i,X.ERR_BAD_OPTION)}}const rs={assertOptions:fA,validators:Ws},Qt=rs.validators;let Ur=class{constructor(e){this.defaults=e||{},this.interceptors={request:new nd,response:new nd}}async request(e,t){try{return await this._request(e,t)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const i=(()=>{if(!o.stack)return"";const s=o.stack.indexOf(` +`);return s===-1?"":o.stack.slice(s+1)})();try{if(!r.stack)r.stack=i;else if(i){const s=i.indexOf(` +`),a=s===-1?-1:i.indexOf(` +`,s+1),c=a===-1?"":i.slice(a+1);String(r.stack).endsWith(c)||(r.stack+=` +`+i)}}catch{}}throw r}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=Fr(this.defaults,t);const{transitional:r,paramsSerializer:o,headers:i}=t;r!==void 0&&rs.assertOptions(r,{silentJSONParsing:Qt.transitional(Qt.boolean),forcedJSONParsing:Qt.transitional(Qt.boolean),clarifyTimeoutError:Qt.transitional(Qt.boolean),legacyInterceptorReqResOrdering:Qt.transitional(Qt.boolean)},!1),o!=null&&(E.isFunction(o)?t.paramsSerializer={serialize:o}:rs.assertOptions(o,{encode:Qt.function,serialize:Qt.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),rs.assertOptions(t,{baseUrl:Qt.spelling("baseURL"),withXsrfToken:Qt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=i&&E.merge(i.common,i[t.method]);i&&E.forEach(["delete","get","head","post","put","patch","query","common"],C=>{delete i[C]}),t.headers=Pt.concat(s,i);const a=[];let c=!0;this.interceptors.request.forEach(function(p){if(typeof p.runWhen=="function"&&p.runWhen(t)===!1)return;c=c&&p.synchronous;const v=t.transitional||tl;v&&v.legacyInterceptorReqResOrdering?a.unshift(p.fulfilled,p.rejected):a.push(p.fulfilled,p.rejected)});const l=[];this.interceptors.response.forEach(function(p){l.push(p.fulfilled,p.rejected)});let u,d=0,h;if(!c){const C=[ud.bind(this),void 0];for(C.unshift(...a),C.push(...l),h=C.length,u=Promise.resolve(t);d{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const s=new Promise(a=>{r.subscribe(a),i=a}).then(o);return s.cancel=function(){r.unsubscribe(i)},s},e(function(i,s,a){r.reason||(r.reason=new Pi(i,s,a),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=r=>{e.abort(r)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new pg(function(o){e=o}),cancel:e}}};function pA(n){return function(t){return n.apply(null,t)}}function mA(n){return E.isObject(n)&&n.isAxiosError===!0}const lc={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(lc).forEach(([n,e])=>{lc[e]=n});function mg(n){const e=new Ur(n),t=Yf(Ur.prototype.request,e);return E.extend(t,Ur.prototype,e,{allOwnKeys:!0}),E.extend(t,e,null,{allOwnKeys:!0}),t.create=function(o){return mg(Fr(n,o))},t}const Xe=mg(Oi);Xe.Axios=Ur;Xe.CanceledError=Pi;Xe.CancelToken=gA;Xe.isCancel=lg;Xe.VERSION=rl;Xe.toFormData=Qs;Xe.AxiosError=X;Xe.Cancel=Xe.CanceledError;Xe.all=function(e){return Promise.all(e)};Xe.spread=pA;Xe.isAxiosError=mA;Xe.mergeConfig=Fr;Xe.AxiosHeaders=Pt;Xe.formToJSON=n=>cg(E.isHTMLForm(n)?new FormData(n):n);Xe.getAdapter=gg.getAdapter;Xe.HttpStatusCode=lc;Xe.default=Xe;const{Axios:UI,AxiosError:HI,CanceledError:FI,isCancel:BI,CancelToken:KI,VERSION:qI,all:jI,Cancel:$I,isAxiosError:GI,spread:VI,toFormData:zI,AxiosHeaders:QI,HttpStatusCode:WI,formToJSON:YI,getAdapter:JI,mergeConfig:XI,create:ZI}=Xe,ps=Xe.create({baseURL:"/cc-dashboard",headers:{"Content-Type":"application/json"}});function yA(n,e){ps.interceptors.request.use(t=>{const r=n();return r&&(t.headers.Authorization=`Bearer ${r}`),t}),ps.interceptors.response.use(t=>t,t=>{var r;return((r=t.response)==null?void 0:r.status)===401&&e(),Promise.reject(t)})}/*! @azure/msal-common v14.16.1 2025-08-05 */const k={LIBRARY_NAME:"MSAL.JS",SKU:"msal.js.common",CACHE_PREFIX:"msal",DEFAULT_AUTHORITY:"https://login.microsoftonline.com/common/",DEFAULT_AUTHORITY_HOST:"login.microsoftonline.com",DEFAULT_COMMON_TENANT:"common",ADFS:"adfs",DSTS:"dstsv2",AAD_INSTANCE_DISCOVERY_ENDPT:"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=",CIAM_AUTH_URL:".ciamlogin.com",AAD_TENANT_DOMAIN_SUFFIX:".onmicrosoft.com",RESOURCE_DELIM:"|",NO_ACCOUNT:"NO_ACCOUNT",CLAIMS:"claims",CONSUMER_UTID:"9188040d-6c67-4c5b-b112-36a304b66dad",OPENID_SCOPE:"openid",PROFILE_SCOPE:"profile",OFFLINE_ACCESS_SCOPE:"offline_access",EMAIL_SCOPE:"email",CODE_RESPONSE_TYPE:"code",CODE_GRANT_TYPE:"authorization_code",RT_GRANT_TYPE:"refresh_token",FRAGMENT_RESPONSE_MODE:"fragment",S256_CODE_CHALLENGE_METHOD:"S256",URL_FORM_CONTENT_TYPE:"application/x-www-form-urlencoded;charset=utf-8",AUTHORIZATION_PENDING:"authorization_pending",NOT_DEFINED:"not_defined",EMPTY_STRING:"",NOT_APPLICABLE:"N/A",NOT_AVAILABLE:"Not Available",FORWARD_SLASH:"/",IMDS_ENDPOINT:"http://169.254.169.254/metadata/instance/compute/location",IMDS_VERSION:"2020-06-01",IMDS_TIMEOUT:2e3,AZURE_REGION_AUTO_DISCOVER_FLAG:"TryAutoDetect",REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX:"login.microsoft.com",KNOWN_PUBLIC_CLOUDS:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"],TOKEN_RESPONSE_TYPE:"token",ID_TOKEN_RESPONSE_TYPE:"id_token",SHR_NONCE_VALIDITY:240,INVALID_INSTANCE:"invalid_instance"},ji={CLIENT_ERROR_RANGE_START:400,CLIENT_ERROR_RANGE_END:499,SERVER_ERROR_RANGE_START:500,SERVER_ERROR_RANGE_END:599},xo=[k.OPENID_SCOPE,k.PROFILE_SCOPE,k.OFFLINE_ACCESS_SCOPE],hd=[...xo,k.EMAIL_SCOPE],St={CONTENT_TYPE:"Content-Type",CONTENT_LENGTH:"Content-Length",RETRY_AFTER:"Retry-After",CCS_HEADER:"X-AnchorMailbox",WWWAuthenticate:"WWW-Authenticate",AuthenticationInfo:"Authentication-Info",X_MS_REQUEST_ID:"x-ms-request-id",X_MS_HTTP_VERSION:"x-ms-httpver"},st={ID_TOKEN:"idtoken",CLIENT_INFO:"client.info",ADAL_ID_TOKEN:"adal.idtoken",ERROR:"error",ERROR_DESC:"error.description",ACTIVE_ACCOUNT:"active-account",ACTIVE_ACCOUNT_FILTERS:"active-account-filters"},gr={COMMON:"common",ORGANIZATIONS:"organizations",CONSUMERS:"consumers"},$i={ACCESS_TOKEN:"access_token",XMS_CC:"xms_cc"},ct={LOGIN:"login",SELECT_ACCOUNT:"select_account",CONSENT:"consent",NONE:"none",CREATE:"create",NO_SESSION:"no_session"},fd={PLAIN:"plain",S256:"S256"},Ni={QUERY:"query",FRAGMENT:"fragment"},CA={...Ni},yg={AUTHORIZATION_CODE_GRANT:"authorization_code",REFRESH_TOKEN_GRANT:"refresh_token"},Gi={MSSTS_ACCOUNT_TYPE:"MSSTS",ADFS_ACCOUNT_TYPE:"ADFS",GENERIC_ACCOUNT_TYPE:"Generic"},Ct={CACHE_KEY_SEPARATOR:"-",CLIENT_INFO_SEPARATOR:"."},de={ID_TOKEN:"IdToken",ACCESS_TOKEN:"AccessToken",ACCESS_TOKEN_WITH_AUTH_SCHEME:"AccessToken_With_AuthScheme",REFRESH_TOKEN:"RefreshToken"},il="appmetadata",vA="client_info",ti="1",ms={CACHE_KEY:"authority-metadata",REFRESH_TIME_SECONDS:3600*24},Ut={CONFIG:"config",CACHE:"cache",NETWORK:"network",HARDCODED_VALUES:"hardcoded_values"},dt={SCHEMA_VERSION:5,MAX_LAST_HEADER_BYTES:330,MAX_CACHED_ERRORS:50,CACHE_KEY:"server-telemetry",CATEGORY_SEPARATOR:"|",VALUE_SEPARATOR:",",OVERFLOW_TRUE:"1",OVERFLOW_FALSE:"0",UNKNOWN_ERROR:"unknown_error"},Le={BEARER:"Bearer",POP:"pop",SSH:"ssh-cert"},ni={DEFAULT_THROTTLE_TIME_SECONDS:60,DEFAULT_MAX_THROTTLE_TIME_SECONDS:3600,THROTTLING_PREFIX:"throttling",X_MS_LIB_CAPABILITY_VALUE:"retry-after, h429"},gd={INVALID_GRANT_ERROR:"invalid_grant",CLIENT_MISMATCH_ERROR:"client_mismatch"},pd={username:"username",password:"password"},Vi={httpSuccess:200,httpBadRequest:400},Yr={FAILED_AUTO_DETECTION:"1",INTERNAL_CACHE:"2",ENVIRONMENT_VARIABLE:"3",IMDS:"4"},ka={CONFIGURED_NO_AUTO_DETECTION:"2",AUTO_DETECTION_REQUESTED_SUCCESSFUL:"4",AUTO_DETECTION_REQUESTED_FAILED:"5"},nr={NOT_APPLICABLE:"0",FORCE_REFRESH_OR_CLAIMS:"1",NO_CACHED_ACCESS_TOKEN:"2",CACHED_ACCESS_TOKEN_EXPIRED:"3",PROACTIVELY_REFRESHED:"4"},TA={Pop:"pop"},wA=300;/*! @azure/msal-common v14.16.1 2025-08-05 */const sl="unexpected_error",AA="post_request_failed";/*! @azure/msal-common v14.16.1 2025-08-05 */const md={[sl]:"Unexpected error in authentication.",[AA]:"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details."};class je extends Error{constructor(e,t,r){const o=t?`${e}: ${t}`:e;super(o),Object.setPrototypeOf(this,je.prototype),this.errorCode=e||k.EMPTY_STRING,this.errorMessage=t||k.EMPTY_STRING,this.subError=r||k.EMPTY_STRING,this.name="AuthError"}setCorrelationId(e){this.correlationId=e}}function Cg(n,e){return new je(n,e?`${md[n]} ${e}`:md[n])}/*! @azure/msal-common v14.16.1 2025-08-05 */const al="client_info_decoding_error",vg="client_info_empty_error",cl="token_parsing_error",Tg="null_or_empty_token",Dn="endpoints_resolution_error",wg="network_error",Ag="openid_config_error",Eg="hash_not_deserialized",So="invalid_state",bg="state_mismatch",ys="state_not_found",_g="nonce_mismatch",ll="auth_time_not_found",Sg="max_age_transpired",EA="multiple_matching_tokens",bA="multiple_matching_accounts",Ig="multiple_matching_appMetadata",Rg="request_cannot_be_made",kg="cannot_remove_empty_scope",Og="cannot_append_scopeset",uc="empty_input_scopeset",_A="device_code_polling_cancelled",SA="device_code_expired",IA="device_code_unknown_error",ul="no_account_in_silent_request",Pg="invalid_cache_record",dl="invalid_cache_environment",dc="no_account_found",hc="no_crypto_object",fc="unexpected_credential_type",RA="invalid_assertion",kA="invalid_client_credential",Kn="token_refresh_required",OA="user_timeout_reached",Ng="token_claims_cnf_required_for_signedjwt",Mg="authorization_code_missing_from_server_response",PA="binding_key_not_removed",xg="end_session_endpoint_not_supported",hl="key_id_missing",NA="no_network_connectivity",MA="user_canceled",xA="missing_tenant_id_error",Ce="method_not_implemented",LA="nested_app_auth_bridge_disabled";/*! @azure/msal-common v14.16.1 2025-08-05 */const yd={[al]:"The client info could not be parsed/decoded correctly",[vg]:"The client info was empty",[cl]:"Token cannot be parsed",[Tg]:"The token is null or empty",[Dn]:"Endpoints cannot be resolved",[wg]:"Network request failed",[Ag]:"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.",[Eg]:"The hash parameters could not be deserialized",[So]:"State was not the expected format",[bg]:"State mismatch error",[ys]:"State not found",[_g]:"Nonce mismatch error",[ll]:"Max Age was requested and the ID token is missing the auth_time variable. auth_time is an optional claim and is not enabled by default - it must be enabled. See https://aka.ms/msaljs/optional-claims for more information.",[Sg]:"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.",[EA]:"The cache contains multiple tokens satisfying the requirements. Call AcquireToken again providing more requirements such as authority or account.",[bA]:"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account",[Ig]:"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata",[Rg]:"Token request cannot be made without authorization code or refresh token.",[kg]:"Cannot remove null or empty scope from ScopeSet",[Og]:"Cannot append ScopeSet",[uc]:"Empty input ScopeSet cannot be processed",[_A]:"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.",[SA]:"Device code is expired.",[IA]:"Device code stopped polling for unknown reasons.",[ul]:"Please pass an account object, silent flow is not supported without account information",[Pg]:"Cache record object was null or undefined.",[dl]:"Invalid environment when attempting to create cache entry",[dc]:"No account found in cache for given key.",[hc]:"No crypto object detected.",[fc]:"Unexpected credential type.",[RA]:"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515",[kA]:"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential",[Kn]:"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.",[OA]:"User defined timeout for device code polling reached",[Ng]:"Cannot generate a POP jwt if the token_claims are not populated",[Mg]:"Server response does not contain an authorization code to proceed",[PA]:"Could not remove the credential's binding key from storage.",[xg]:"The provided authority does not support logout",[hl]:"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.",[NA]:"No network connectivity. Check your internet connection.",[MA]:"User cancelled the flow.",[xA]:"A tenant id - not common, organizations, or consumers - must be specified when using the client_credentials flow.",[Ce]:"This method has not been implemented",[LA]:"The nested app auth bridge is disabled"};class Ys extends je{constructor(e,t){super(e,t?`${yd[e]}: ${t}`:yd[e]),this.name="ClientAuthError",Object.setPrototypeOf(this,Ys.prototype)}}function B(n,e){return new Ys(n,e)}/*! @azure/msal-common v14.16.1 2025-08-05 */const Cs={createNewGuid:()=>{throw B(Ce)},base64Decode:()=>{throw B(Ce)},base64Encode:()=>{throw B(Ce)},base64UrlEncode:()=>{throw B(Ce)},encodeKid:()=>{throw B(Ce)},async getPublicKeyThumbprint(){throw B(Ce)},async removeTokenBindingKey(){throw B(Ce)},async clearKeystore(){throw B(Ce)},async signJwt(){throw B(Ce)},async hashString(){throw B(Ce)}};/*! @azure/msal-common v14.16.1 2025-08-05 */var $e;(function(n){n[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Info=2]="Info",n[n.Verbose=3]="Verbose",n[n.Trace=4]="Trace"})($e||($e={}));class mr{constructor(e,t,r){this.level=$e.Info;const o=()=>{},i=e||mr.createDefaultLoggerOptions();this.localCallback=i.loggerCallback||o,this.piiLoggingEnabled=i.piiLoggingEnabled||!1,this.level=typeof i.logLevel=="number"?i.logLevel:$e.Info,this.correlationId=i.correlationId||k.EMPTY_STRING,this.packageName=t||k.EMPTY_STRING,this.packageVersion=r||k.EMPTY_STRING}static createDefaultLoggerOptions(){return{loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:$e.Info}}clone(e,t,r){return new mr({loggerCallback:this.localCallback,piiLoggingEnabled:this.piiLoggingEnabled,logLevel:this.level,correlationId:r||this.correlationId},e,t)}logMessage(e,t){if(t.logLevel>this.level||!this.piiLoggingEnabled&&t.containsPii)return;const i=`${`[${new Date().toUTCString()}] : [${t.correlationId||this.correlationId||""}]`} : ${this.packageName}@${this.packageVersion} : ${$e[t.logLevel]} - ${e}`;this.executeCallback(t.logLevel,i,t.containsPii||!1)}executeCallback(e,t,r){this.localCallback&&this.localCallback(e,t,r)}error(e,t){this.logMessage(e,{logLevel:$e.Error,containsPii:!1,correlationId:t||k.EMPTY_STRING})}errorPii(e,t){this.logMessage(e,{logLevel:$e.Error,containsPii:!0,correlationId:t||k.EMPTY_STRING})}warning(e,t){this.logMessage(e,{logLevel:$e.Warning,containsPii:!1,correlationId:t||k.EMPTY_STRING})}warningPii(e,t){this.logMessage(e,{logLevel:$e.Warning,containsPii:!0,correlationId:t||k.EMPTY_STRING})}info(e,t){this.logMessage(e,{logLevel:$e.Info,containsPii:!1,correlationId:t||k.EMPTY_STRING})}infoPii(e,t){this.logMessage(e,{logLevel:$e.Info,containsPii:!0,correlationId:t||k.EMPTY_STRING})}verbose(e,t){this.logMessage(e,{logLevel:$e.Verbose,containsPii:!1,correlationId:t||k.EMPTY_STRING})}verbosePii(e,t){this.logMessage(e,{logLevel:$e.Verbose,containsPii:!0,correlationId:t||k.EMPTY_STRING})}trace(e,t){this.logMessage(e,{logLevel:$e.Trace,containsPii:!1,correlationId:t||k.EMPTY_STRING})}tracePii(e,t){this.logMessage(e,{logLevel:$e.Trace,containsPii:!0,correlationId:t||k.EMPTY_STRING})}isPiiLoggingEnabled(){return this.piiLoggingEnabled||!1}}/*! @azure/msal-common v14.16.1 2025-08-05 */const Lg="@azure/msal-common",fl="14.16.1";/*! @azure/msal-common v14.16.1 2025-08-05 */const gl={None:"none"};/*! @azure/msal-common v14.16.1 2025-08-05 */function Gr(n,e){const t=DA(n);try{const r=e(t);return JSON.parse(r)}catch{throw B(cl)}}function DA(n){if(!n)throw B(Tg);const t=/^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/.exec(n);if(!t||t.length<4)throw B(cl);return t[2]}function Dg(n,e){if(e===0||Date.now()-3e5>n+e)throw B(Sg)}/*! @azure/msal-common v14.16.1 2025-08-05 */function Rn(){return Math.round(new Date().getTime()/1e3)}function gc(n,e){const t=Number(n)||0;return Rn()+e>t}function UA(n){return Number(n)>Rn()}/*! @azure/msal-common v14.16.1 2025-08-05 */function oo(n){return[HA(n),FA(n),BA(n),KA(n),qA(n)].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}function Js(n,e,t,r,o){return{credentialType:de.ID_TOKEN,homeAccountId:n,environment:e,clientId:r,secret:t,realm:o}}function Xs(n,e,t,r,o,i,s,a,c,l,u,d,h,f,C){var v,A;const p={homeAccountId:n,credentialType:de.ACCESS_TOKEN,secret:t,cachedAt:Rn().toString(),expiresOn:s.toString(),extendedExpiresOn:a.toString(),environment:e,clientId:r,realm:o,target:i,tokenType:u||Le.BEARER};if(d&&(p.userAssertionHash=d),l&&(p.refreshOn=l.toString()),f&&(p.requestedClaims=f,p.requestedClaimsHash=C),((v=p.tokenType)==null?void 0:v.toLowerCase())!==Le.BEARER.toLowerCase())switch(p.credentialType=de.ACCESS_TOKEN_WITH_AUTH_SCHEME,p.tokenType){case Le.POP:const _=Gr(t,c);if(!((A=_==null?void 0:_.cnf)!=null&&A.kid))throw B(Ng);p.keyId=_.cnf.kid;break;case Le.SSH:p.keyId=h}return p}function Ug(n,e,t,r,o,i,s){const a={credentialType:de.REFRESH_TOKEN,homeAccountId:n,environment:e,clientId:r,secret:t};return i&&(a.userAssertionHash=i),o&&(a.familyId=o),s&&(a.expiresOn=s.toString()),a}function pl(n){return n.hasOwnProperty("homeAccountId")&&n.hasOwnProperty("environment")&&n.hasOwnProperty("credentialType")&&n.hasOwnProperty("clientId")&&n.hasOwnProperty("secret")}function Cd(n){return n?pl(n)&&n.hasOwnProperty("realm")&&n.hasOwnProperty("target")&&(n.credentialType===de.ACCESS_TOKEN||n.credentialType===de.ACCESS_TOKEN_WITH_AUTH_SCHEME):!1}function vd(n){return n?pl(n)&&n.hasOwnProperty("realm")&&n.credentialType===de.ID_TOKEN:!1}function Td(n){return n?pl(n)&&n.credentialType===de.REFRESH_TOKEN:!1}function HA(n){return[n.homeAccountId,n.environment].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}function FA(n){const e=n.credentialType===de.REFRESH_TOKEN&&n.familyId||n.clientId;return[n.credentialType,e,n.realm||""].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}function BA(n){return(n.target||"").toLowerCase()}function KA(n){return(n.requestedClaimsHash||"").toLowerCase()}function qA(n){return n.tokenType&&n.tokenType.toLowerCase()!==Le.BEARER.toLowerCase()?n.tokenType.toLowerCase():""}function jA(n,e){const t=n.indexOf(dt.CACHE_KEY)===0;let r=!0;return e&&(r=e.hasOwnProperty("failedRequests")&&e.hasOwnProperty("errors")&&e.hasOwnProperty("cacheHits")),t&&r}function $A(n,e){let t=!1;n&&(t=n.indexOf(ni.THROTTLING_PREFIX)===0);let r=!0;return e&&(r=e.hasOwnProperty("throttleTime")),t&&r}function GA({environment:n,clientId:e}){return[il,n,e].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}function VA(n,e){return e?n.indexOf(il)===0&&e.hasOwnProperty("clientId")&&e.hasOwnProperty("environment"):!1}function zA(n,e){return e?n.indexOf(ms.CACHE_KEY)===0&&e.hasOwnProperty("aliases")&&e.hasOwnProperty("preferred_cache")&&e.hasOwnProperty("preferred_network")&&e.hasOwnProperty("canonical_authority")&&e.hasOwnProperty("authorization_endpoint")&&e.hasOwnProperty("token_endpoint")&&e.hasOwnProperty("issuer")&&e.hasOwnProperty("aliasesFromNetwork")&&e.hasOwnProperty("endpointsFromNetwork")&&e.hasOwnProperty("expiresAt")&&e.hasOwnProperty("jwks_uri"):!1}function wd(){return Rn()+ms.REFRESH_TIME_SECONDS}function zi(n,e,t){n.authorization_endpoint=e.authorization_endpoint,n.token_endpoint=e.token_endpoint,n.end_session_endpoint=e.end_session_endpoint,n.issuer=e.issuer,n.endpointsFromNetwork=t,n.jwks_uri=e.jwks_uri}function Oa(n,e,t){n.aliases=e.aliases,n.preferred_cache=e.preferred_cache,n.preferred_network=e.preferred_network,n.aliasesFromNetwork=t}function Ad(n){return n.expiresAt<=Rn()}/*! @azure/msal-common v14.16.1 2025-08-05 */const Hg="redirect_uri_empty",QA="claims_request_parsing_error",Fg="authority_uri_insecure",Vo="url_parse_error",Bg="empty_url_error",Kg="empty_input_scopes_error",qg="invalid_prompt_value",ml="invalid_claims",jg="token_request_empty",$g="logout_request_empty",Gg="invalid_code_challenge_method",yl="pkce_params_missing",Cl="invalid_cloud_discovery_metadata",Vg="invalid_authority_metadata",zg="untrusted_authority",Zs="missing_ssh_jwk",Qg="missing_ssh_kid",WA="missing_nonce_authentication_header",YA="invalid_authentication_header",Wg="cannot_set_OIDCOptions",Yg="cannot_allow_native_broker",Jg="authority_mismatch";/*! @azure/msal-common v14.16.1 2025-08-05 */const JA={[Hg]:"A redirect URI is required for all calls, and none has been set.",[QA]:"Could not parse the given claims request object.",[Fg]:"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options",[Vo]:"URL could not be parsed into appropriate segments.",[Bg]:"URL was empty or null.",[Kg]:"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.",[qg]:"Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest",[ml]:"Given claims parameter must be a stringified JSON object.",[jg]:"Token request was empty and not found in cache.",[$g]:"The logout request was null or undefined.",[Gg]:'code_challenge_method passed is invalid. Valid values are "plain" and "S256".',[yl]:"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request",[Cl]:"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields",[Vg]:"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.",[zg]:"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.",[Zs]:"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.",[Qg]:"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.",[WA]:"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.",[YA]:"Invalid authentication header provided",[Wg]:"Cannot set OIDCOptions parameter. Please change the protocol mode to OIDC or use a non-Microsoft authority.",[Yg]:"Cannot set allowNativeBroker parameter to true when not in AAD protocol mode.",[Jg]:"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority."};class vl extends je{constructor(e){super(e,JA[e]),this.name="ClientConfigurationError",Object.setPrototypeOf(this,vl.prototype)}}function Ue(n){return new vl(n)}/*! @azure/msal-common v14.16.1 2025-08-05 */class on{static isEmptyObj(e){if(e)try{const t=JSON.parse(e);return Object.keys(t).length===0}catch{}return!0}static startsWith(e,t){return e.indexOf(t)===0}static endsWith(e,t){return e.length>=t.length&&e.lastIndexOf(t)===e.length-t.length}static queryStringToObject(e){const t={},r=e.split("&"),o=i=>decodeURIComponent(i.replace(/\+/g," "));return r.forEach(i=>{if(i.trim()){const[s,a]=i.split(/=(.+)/g,2);s&&a&&(t[o(s)]=o(a))}}),t}static trimArrayEntries(e){return e.map(t=>t.trim())}static removeEmptyStringsFromArray(e){return e.filter(t=>!!t)}static jsonParseHelper(e){try{return JSON.parse(e)}catch{return null}}static matchPattern(e,t){return new RegExp(e.replace(/\\/g,"\\\\").replace(/\*/g,"[^ ]*").replace(/\?/g,"\\?")).test(t)}}/*! @azure/msal-common v14.16.1 2025-08-05 */class Je{constructor(e){const t=e?on.trimArrayEntries([...e]):[],r=t?on.removeEmptyStringsFromArray(t):[];this.validateInputScopes(r),this.scopes=new Set,r.forEach(o=>this.scopes.add(o))}static fromString(e){const r=(e||k.EMPTY_STRING).split(" ");return new Je(r)}static createSearchScopes(e){const t=new Je(e);return t.containsOnlyOIDCScopes()?t.removeScope(k.OFFLINE_ACCESS_SCOPE):t.removeOIDCScopes(),t}validateInputScopes(e){if(!e||e.length<1)throw Ue(Kg)}containsScope(e){const t=this.printScopesLowerCase().split(" "),r=new Je(t);return e?r.scopes.has(e.toLowerCase()):!1}containsScopeSet(e){return!e||e.scopes.size<=0?!1:this.scopes.size>=e.scopes.size&&e.asArray().every(t=>this.containsScope(t))}containsOnlyOIDCScopes(){let e=0;return hd.forEach(t=>{this.containsScope(t)&&(e+=1)}),this.scopes.size===e}appendScope(e){e&&this.scopes.add(e.trim())}appendScopes(e){try{e.forEach(t=>this.appendScope(t))}catch{throw B(Og)}}removeScope(e){if(!e)throw B(kg);this.scopes.delete(e.trim())}removeOIDCScopes(){hd.forEach(e=>{this.scopes.delete(e)})}unionScopeSets(e){if(!e)throw B(uc);const t=new Set;return e.scopes.forEach(r=>t.add(r.toLowerCase())),this.scopes.forEach(r=>t.add(r.toLowerCase())),t}intersectingScopeSets(e){if(!e)throw B(uc);e.containsOnlyOIDCScopes()||e.removeOIDCScopes();const t=this.unionScopeSets(e),r=e.getScopeCount(),o=this.getScopeCount();return t.sizee.push(t)),e}printScopes(){return this.scopes?this.asArray().join(" "):k.EMPTY_STRING}printScopesLowerCase(){return this.printScopes().toLowerCase()}}/*! @azure/msal-common v14.16.1 2025-08-05 */function vs(n,e){if(!n)throw B(vg);try{const t=e(n);return JSON.parse(t)}catch{throw B(al)}}function io(n){if(!n)throw B(al);const e=n.split(Ct.CLIENT_INFO_SEPARATOR,2);return{uid:e[0],utid:e.length<2?k.EMPTY_STRING:e[1]}}/*! @azure/msal-common v14.16.1 2025-08-05 */function Ts(n,e){return!!n&&!!e&&n===e.split(".")[1]}function Tl(n,e,t,r){if(r){const{oid:o,sub:i,tid:s,name:a,tfp:c,acr:l}=r,u=s||c||l||"";return{tenantId:u,localAccountId:o||i||"",name:a,isHomeTenant:Ts(u,n)}}else return{tenantId:t,localAccountId:e,isHomeTenant:Ts(t,n)}}function wl(n,e,t,r){let o=n;if(e){const{isHomeTenant:i,...s}=e;o={...n,...s}}if(t){const{isHomeTenant:i,...s}=Tl(n.homeAccountId,n.localAccountId,n.tenantId,t);return o={...o,...s,idTokenClaims:t,idToken:r},o}return o}/*! @azure/msal-common v14.16.1 2025-08-05 */const tn={Default:0,Adfs:1,Dsts:2,Ciam:3};/*! @azure/msal-common v14.16.1 2025-08-05 */function Xg(n){return n&&(n.tid||n.tfp||n.acr)||null}/*! @azure/msal-common v14.16.1 2025-08-05 */const $n={AAD:"AAD",OIDC:"OIDC"};/*! @azure/msal-common v14.16.1 2025-08-05 */class ot{generateAccountId(){return[this.homeAccountId,this.environment].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}generateAccountKey(){return ot.generateAccountCacheKey({homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId})}getAccountInfo(){return{homeAccountId:this.homeAccountId,environment:this.environment,tenantId:this.realm,username:this.username,localAccountId:this.localAccountId,name:this.name,nativeAccountId:this.nativeAccountId,authorityType:this.authorityType,tenantProfiles:new Map((this.tenantProfiles||[]).map(e=>[e.tenantId,e]))}}isSingleTenant(){return!this.tenantProfiles}static generateAccountCacheKey(e){const t=e.homeAccountId.split(".")[1];return[e.homeAccountId,e.environment||"",t||e.tenantId||""].join(Ct.CACHE_KEY_SEPARATOR).toLowerCase()}static createAccount(e,t,r){var l,u,d,h,f,C;const o=new ot;t.authorityType===tn.Adfs?o.authorityType=Gi.ADFS_ACCOUNT_TYPE:t.protocolMode===$n.AAD?o.authorityType=Gi.MSSTS_ACCOUNT_TYPE:o.authorityType=Gi.GENERIC_ACCOUNT_TYPE;let i;e.clientInfo&&r&&(i=vs(e.clientInfo,r)),o.clientInfo=e.clientInfo,o.homeAccountId=e.homeAccountId,o.nativeAccountId=e.nativeAccountId;const s=e.environment||t&&t.getPreferredCache();if(!s)throw B(dl);o.environment=s,o.realm=(i==null?void 0:i.utid)||Xg(e.idTokenClaims)||"",o.localAccountId=(i==null?void 0:i.uid)||((l=e.idTokenClaims)==null?void 0:l.oid)||((u=e.idTokenClaims)==null?void 0:u.sub)||"";const a=((d=e.idTokenClaims)==null?void 0:d.preferred_username)||((h=e.idTokenClaims)==null?void 0:h.upn),c=(f=e.idTokenClaims)!=null&&f.emails?e.idTokenClaims.emails[0]:null;if(o.username=a||c||"",o.name=((C=e.idTokenClaims)==null?void 0:C.name)||"",o.cloudGraphHostName=e.cloudGraphHostName,o.msGraphHost=e.msGraphHost,e.tenantProfiles)o.tenantProfiles=e.tenantProfiles;else{const p=Tl(e.homeAccountId,o.localAccountId,o.realm,e.idTokenClaims);o.tenantProfiles=[p]}return o}static createFromAccountInfo(e,t,r){var i;const o=new ot;return o.authorityType=e.authorityType||Gi.GENERIC_ACCOUNT_TYPE,o.homeAccountId=e.homeAccountId,o.localAccountId=e.localAccountId,o.nativeAccountId=e.nativeAccountId,o.realm=e.tenantId,o.environment=e.environment,o.username=e.username,o.name=e.name,o.cloudGraphHostName=t,o.msGraphHost=r,o.tenantProfiles=Array.from(((i=e.tenantProfiles)==null?void 0:i.values())||[]),o}static generateHomeAccountId(e,t,r,o,i){if(!(t===tn.Adfs||t===tn.Dsts)){if(e)try{const s=vs(e,o.base64Decode);if(s.uid&&s.utid)return`${s.uid}.${s.utid}`}catch{}r.warning("No client info in response")}return(i==null?void 0:i.sub)||""}static isAccountEntity(e){return e?e.hasOwnProperty("homeAccountId")&&e.hasOwnProperty("environment")&&e.hasOwnProperty("realm")&&e.hasOwnProperty("localAccountId")&&e.hasOwnProperty("username")&&e.hasOwnProperty("authorityType"):!1}static accountInfoIsEqual(e,t,r){if(!e||!t)return!1;let o=!0;if(r){const i=e.idTokenClaims||{},s=t.idTokenClaims||{};o=i.iat===s.iat&&i.nonce===s.nonce}return e.homeAccountId===t.homeAccountId&&e.localAccountId===t.localAccountId&&e.username===t.username&&e.tenantId===t.tenantId&&e.environment===t.environment&&e.nativeAccountId===t.nativeAccountId&&o}}/*! @azure/msal-common v14.16.1 2025-08-05 */function Zg(n){return n.startsWith("#/")?n.substring(2):n.startsWith("#")||n.startsWith("?")?n.substring(1):n}function ws(n){if(!n||n.indexOf("=")<0)return null;try{const e=Zg(n),t=Object.fromEntries(new URLSearchParams(e));if(t.code||t.error||t.error_description||t.state)return t}catch{throw B(Eg)}return null}/*! @azure/msal-common v14.16.1 2025-08-05 */class Se{get urlString(){return this._urlString}constructor(e){if(this._urlString=e,!this._urlString)throw Ue(Bg);e.includes("#")||(this._urlString=Se.canonicalizeUri(e))}static canonicalizeUri(e){if(e){let t=e.toLowerCase();return on.endsWith(t,"?")?t=t.slice(0,-1):on.endsWith(t,"?/")&&(t=t.slice(0,-2)),on.endsWith(t,"/")||(t+="/"),t}return e}validateAsUri(){let e;try{e=this.getUrlComponents()}catch{throw Ue(Vo)}if(!e.HostNameAndPort||!e.PathSegments)throw Ue(Vo);if(!e.Protocol||e.Protocol.toLowerCase()!=="https:")throw Ue(Fg)}static appendQueryString(e,t){return t?e.indexOf("?")<0?`${e}?${t}`:`${e}&${t}`:e}static removeHashFromUrl(e){return Se.canonicalizeUri(e.split("#")[0])}replaceTenantPath(e){const t=this.getUrlComponents(),r=t.PathSegments;return e&&r.length!==0&&(r[0]===gr.COMMON||r[0]===gr.ORGANIZATIONS)&&(r[0]=e),Se.constructAuthorityUriFromObject(t)}getUrlComponents(){const e=RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"),t=this.urlString.match(e);if(!t)throw Ue(Vo);const r={Protocol:t[1],HostNameAndPort:t[4],AbsolutePath:t[5],QueryString:t[7]};let o=r.AbsolutePath.split("/");return o=o.filter(i=>i&&i.length>0),r.PathSegments=o,r.QueryString&&r.QueryString.endsWith("/")&&(r.QueryString=r.QueryString.substring(0,r.QueryString.length-1)),r}static getDomainFromUrl(e){const t=RegExp("^([^:/?#]+://)?([^/?#]*)"),r=e.match(t);if(!r)throw Ue(Vo);return r[2]}static getAbsoluteUrl(e,t){if(e[0]===k.FORWARD_SLASH){const o=new Se(t).getUrlComponents();return o.Protocol+"//"+o.HostNameAndPort+e}return e}static constructAuthorityUriFromObject(e){return new Se(e.Protocol+"//"+e.HostNameAndPort+"/"+e.PathSegments.join("/"))}static hashContainsKnownProperties(e){return!!ws(e)}}/*! @azure/msal-common v14.16.1 2025-08-05 */const ep={endpointMetadata:{"login.microsoftonline.com":{token_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.com/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.com/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/logout"},"login.chinacloudapi.cn":{token_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.chinacloudapi.cn/{tenantid}/discovery/v2.0/keys",issuer:"https://login.partner.microsoftonline.cn/{tenantid}/v2.0",authorization_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.chinacloudapi.cn/{tenantid}/oauth2/v2.0/logout"},"login.microsoftonline.us":{token_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/token",jwks_uri:"https://login.microsoftonline.us/{tenantid}/discovery/v2.0/keys",issuer:"https://login.microsoftonline.us/{tenantid}/v2.0",authorization_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/authorize",end_session_endpoint:"https://login.microsoftonline.us/{tenantid}/oauth2/v2.0/logout"}},instanceDiscoveryMetadata:{metadata:[{preferred_network:"login.microsoftonline.com",preferred_cache:"login.windows.net",aliases:["login.microsoftonline.com","login.windows.net","login.microsoft.com","sts.windows.net"]},{preferred_network:"login.partner.microsoftonline.cn",preferred_cache:"login.partner.microsoftonline.cn",aliases:["login.partner.microsoftonline.cn","login.chinacloudapi.cn"]},{preferred_network:"login.microsoftonline.de",preferred_cache:"login.microsoftonline.de",aliases:["login.microsoftonline.de"]},{preferred_network:"login.microsoftonline.us",preferred_cache:"login.microsoftonline.us",aliases:["login.microsoftonline.us","login.usgovcloudapi.net"]},{preferred_network:"login-us.microsoftonline.com",preferred_cache:"login-us.microsoftonline.com",aliases:["login-us.microsoftonline.com"]}]}},Ed=ep.endpointMetadata,Al=ep.instanceDiscoveryMetadata,tp=new Set;Al.metadata.forEach(n=>{n.aliases.forEach(e=>{tp.add(e)})});function XA(n,e){var o;let t;const r=n.canonicalAuthority;if(r){const i=new Se(r).getUrlComponents().HostNameAndPort;t=bd(i,(o=n.cloudDiscoveryMetadata)==null?void 0:o.metadata,Ut.CONFIG,e)||bd(i,Al.metadata,Ut.HARDCODED_VALUES,e)||n.knownAuthorities}return t||[]}function bd(n,e,t,r){if(r==null||r.trace(`getAliasesFromMetadata called with source: ${t}`),n&&e){const o=As(e,n);if(o)return r==null||r.trace(`getAliasesFromMetadata: found cloud discovery metadata in ${t}, returning aliases`),o.aliases;r==null||r.trace(`getAliasesFromMetadata: did not find cloud discovery metadata in ${t}`)}return null}function ZA(n){return As(Al.metadata,n)}function As(n,e){for(let t=0;t1?r.sort(i=>i.idTokenClaims?-1:1)[0]:r.length===1?r[0]:null}getBaseAccountInfo(e,t){const r=this.getAccountsFilteredBy(e,t);return r.length>0?r[0].getAccountInfo():null}buildTenantProfiles(e,t,r){return e.flatMap(o=>this.getTenantProfilesFromAccountEntity(o,t,r==null?void 0:r.tenantId,r))}getTenantedAccountInfoByFilter(e,t,r,o,i){let s=null,a;if(i&&!this.tenantProfileMatchesFilter(r,i))return null;const c=this.getIdToken(e,o,t,r.tenantId);return c&&(a=Gr(c.secret,this.cryptoImpl.base64Decode),!this.idTokenClaimsMatchTenantProfileFilter(a,i))?null:(s=wl(e,r,a,c==null?void 0:c.secret),s)}getTenantProfilesFromAccountEntity(e,t,r,o){const i=e.getAccountInfo();let s=i.tenantProfiles||new Map;const a=this.getTokenKeys();if(r){const l=s.get(r);if(l)s=new Map([[r,l]]);else return[]}const c=[];return s.forEach(l=>{const u=this.getTenantedAccountInfoByFilter(i,a,l,t,o);u&&c.push(u)}),c}tenantProfileMatchesFilter(e,t){return!(t.localAccountId&&!this.matchLocalAccountIdFromTenantProfile(e,t.localAccountId)||t.name&&e.name!==t.name||t.isHomeTenant!==void 0&&e.isHomeTenant!==t.isHomeTenant)}idTokenClaimsMatchTenantProfileFilter(e,t){return!(t&&(t.localAccountId&&!this.matchLocalAccountIdFromTokenClaims(e,t.localAccountId)||t.loginHint&&!this.matchLoginHintFromTokenClaims(e,t.loginHint)||t.username&&!this.matchUsername(e.preferred_username,t.username)||t.name&&!this.matchName(e,t.name)||t.sid&&!this.matchSid(e,t.sid)))}async saveCacheRecord(e,t,r){var o;if(!e)throw B(Pg);try{e.account&&this.setAccount(e.account,t),e.idToken&&(r==null?void 0:r.idToken)!==!1&&this.setIdTokenCredential(e.idToken,t),e.accessToken&&(r==null?void 0:r.accessToken)!==!1&&await this.saveAccessToken(e.accessToken,t),e.refreshToken&&(r==null?void 0:r.refreshToken)!==!1&&this.setRefreshTokenCredential(e.refreshToken,t),e.appMetadata&&this.setAppMetadata(e.appMetadata,t)}catch(i){throw(o=this.commonLogger)==null||o.error("CacheManager.saveCacheRecord: failed"),i instanceof je?i:np(i)}}async saveAccessToken(e,t){const r={clientId:e.clientId,credentialType:e.credentialType,environment:e.environment,homeAccountId:e.homeAccountId,realm:e.realm,tokenType:e.tokenType,requestedClaimsHash:e.requestedClaimsHash},o=this.getTokenKeys(),i=Je.fromString(e.target);o.accessToken.forEach(s=>{if(!this.accessTokenKeyMatchesFilter(s,r,!1))return;const a=this.getAccessTokenCredential(s,t);a&&this.credentialMatchesFilter(a,r)&&Je.fromString(a.target).intersectingScopeSets(i)&&this.removeAccessToken(s,t)}),this.setAccessTokenCredential(e,t)}getAccountsFilteredBy(e,t){const r=this.getAccountKeys(),o=[];return r.forEach(i=>{var l;if(!this.isAccountKey(i,e.homeAccountId))return;const s=this.getAccount(i,t,this.commonLogger);if(!s||e.homeAccountId&&!this.matchHomeAccountId(s,e.homeAccountId)||e.username&&!this.matchUsername(s.username,e.username)||e.environment&&!this.matchEnvironment(s,e.environment)||e.realm&&!this.matchRealm(s,e.realm)||e.nativeAccountId&&!this.matchNativeAccountId(s,e.nativeAccountId)||e.authorityType&&!this.matchAuthorityType(s,e.authorityType))return;const a={localAccountId:e==null?void 0:e.localAccountId,name:e==null?void 0:e.name},c=(l=s.tenantProfiles)==null?void 0:l.filter(u=>this.tenantProfileMatchesFilter(u,a));c&&c.length===0||o.push(s)}),o}isAccountKey(e,t,r){return!(e.split(Ct.CACHE_KEY_SEPARATOR).length<3||t&&!e.toLowerCase().includes(t.toLowerCase())||r&&!e.toLowerCase().includes(r.toLowerCase()))}isCredentialKey(e){if(e.split(Ct.CACHE_KEY_SEPARATOR).length<6)return!1;const t=e.toLowerCase();if(t.indexOf(de.ID_TOKEN.toLowerCase())===-1&&t.indexOf(de.ACCESS_TOKEN.toLowerCase())===-1&&t.indexOf(de.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())===-1&&t.indexOf(de.REFRESH_TOKEN.toLowerCase())===-1)return!1;if(t.indexOf(de.REFRESH_TOKEN.toLowerCase())>-1){const r=`${de.REFRESH_TOKEN}${Ct.CACHE_KEY_SEPARATOR}${this.clientId}${Ct.CACHE_KEY_SEPARATOR}`,o=`${de.REFRESH_TOKEN}${Ct.CACHE_KEY_SEPARATOR}${ti}${Ct.CACHE_KEY_SEPARATOR}`;if(t.indexOf(r.toLowerCase())===-1&&t.indexOf(o.toLowerCase())===-1)return!1}else if(t.indexOf(this.clientId.toLowerCase())===-1)return!1;return!0}credentialMatchesFilter(e,t){return!(t.clientId&&!this.matchClientId(e,t.clientId)||t.userAssertionHash&&!this.matchUserAssertionHash(e,t.userAssertionHash)||typeof t.homeAccountId=="string"&&!this.matchHomeAccountId(e,t.homeAccountId)||t.environment&&!this.matchEnvironment(e,t.environment)||t.realm&&!this.matchRealm(e,t.realm)||t.credentialType&&!this.matchCredentialType(e,t.credentialType)||t.familyId&&!this.matchFamilyId(e,t.familyId)||t.target&&!this.matchTarget(e,t.target)||(t.requestedClaimsHash||e.requestedClaimsHash)&&e.requestedClaimsHash!==t.requestedClaimsHash||e.credentialType===de.ACCESS_TOKEN_WITH_AUTH_SCHEME&&(t.tokenType&&!this.matchTokenType(e,t.tokenType)||t.tokenType===Le.SSH&&t.keyId&&!this.matchKeyId(e,t.keyId)))}getAppMetadataFilteredBy(e){const t=this.getKeys(),r={};return t.forEach(o=>{if(!this.isAppMetadata(o))return;const i=this.getAppMetadata(o);i&&(e.environment&&!this.matchEnvironment(i,e.environment)||e.clientId&&!this.matchClientId(i,e.clientId)||(r[o]=i))}),r}getAuthorityMetadataByAlias(e){const t=this.getAuthorityMetadataKeys();let r=null;return t.forEach(o=>{if(!this.isAuthorityMetadata(o)||o.indexOf(this.clientId)===-1)return;const i=this.getAuthorityMetadata(o);i&&i.aliases.indexOf(e)!==-1&&(r=i)}),r}async removeAllAccounts(e){const t=this.getAccountKeys(),r=[];t.forEach(o=>{r.push(this.removeAccount(o,e))}),await Promise.all(r)}async removeAccount(e,t){const r=this.getAccount(e,t,this.commonLogger);r&&(await this.removeAccountContext(r,t),this.removeItem(e,t))}async removeAccountContext(e,t){const r=this.getTokenKeys(),o=e.generateAccountId();r.idToken.forEach(i=>{i.indexOf(o)===0&&this.removeIdToken(i,t)}),r.accessToken.forEach(i=>{i.indexOf(o)===0&&this.removeAccessToken(i,t)}),r.refreshToken.forEach(i=>{i.indexOf(o)===0&&this.removeRefreshToken(i,t)}),this.getKeys().forEach(i=>{i.includes(o)&&this.removeItem(i,t)})}updateOutdatedCachedAccount(e,t,r,o){var i;if(t&&t.isSingleTenant()){(i=this.commonLogger)==null||i.verbose("updateOutdatedCachedAccount: Found a single-tenant (outdated) account entity in the cache, migrating to multi-tenant account entity");const s=this.getAccountKeys().filter(d=>d.startsWith(t.homeAccountId)),a=[];s.forEach(d=>{const h=this.getCachedAccountEntity(d,r);h&&a.push(h)});const c=a.find(d=>Ts(d.realm,d.homeAccountId))||a[0];c.tenantProfiles=a.map(d=>({tenantId:d.realm,localAccountId:d.localAccountId,name:d.name,isHomeTenant:Ts(d.realm,d.homeAccountId)}));const l=Io.toObject(new ot,{...c}),u=l.generateAccountKey();return s.forEach(d=>{d!==u&&this.removeOutdatedAccount(e,r)}),this.setAccount(l,r),o==null||o.verbose("Updated an outdated account entity in the cache"),l}return t}removeAccessToken(e,t){const r=this.getAccessTokenCredential(e,t);if(this.removeItem(e,t),!r||r.credentialType.toLowerCase()!==de.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()||r.tokenType!==Le.POP)return;const o=r.keyId;o&&this.cryptoImpl.removeTokenBindingKey(o).catch(()=>{this.commonLogger.error("Binding key could not be removed")})}removeAppMetadata(e){return this.getKeys().forEach(r=>{this.isAppMetadata(r)&&this.removeItem(r,e)}),!0}readAccountFromCache(e,t){const r=ot.generateAccountCacheKey(e);return this.getAccount(r,t,this.commonLogger)}getIdToken(e,t,r,o,i){this.commonLogger.trace("CacheManager - getIdToken called");const s={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:de.ID_TOKEN,clientId:this.clientId,realm:o},a=this.getIdTokensByFilter(s,t,r),c=a.size;if(c<1)return this.commonLogger.info("CacheManager:getIdToken - No token found"),null;if(c>1){let l=a;if(!o){const u=new Map;a.forEach((h,f)=>{h.realm===e.tenantId&&u.set(f,h)});const d=u.size;if(d<1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result"),a.values().next().value;if(d===1)return this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile"),u.values().next().value;l=u}return this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them"),l.forEach((u,d)=>{this.removeIdToken(d,t)}),i&&t&&i.addFields({multiMatchedID:a.size},t),null}return this.commonLogger.info("CacheManager:getIdToken - Returning ID token"),a.values().next().value}getIdTokensByFilter(e,t,r){const o=r&&r.idToken||this.getTokenKeys().idToken,i=new Map;return o.forEach(s=>{if(!this.idTokenKeyMatchesFilter(s,{clientId:this.clientId,...e}))return;const a=this.getIdTokenCredential(s,t);a&&this.credentialMatchesFilter(a,e)&&i.set(s,a)}),i}idTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return!(t.clientId&&r.indexOf(t.clientId.toLowerCase())===-1||t.homeAccountId&&r.indexOf(t.homeAccountId.toLowerCase())===-1)}removeIdToken(e,t){this.removeItem(e,t)}removeRefreshToken(e,t){this.removeItem(e,t)}getAccessToken(e,t,r,o,i){this.commonLogger.trace("CacheManager - getAccessToken called");const s=Je.createSearchScopes(t.scopes),a=t.authenticationScheme||Le.BEARER,c=a.toLowerCase()!==Le.BEARER.toLowerCase()?de.ACCESS_TOKEN_WITH_AUTH_SCHEME:de.ACCESS_TOKEN,l={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:c,clientId:this.clientId,realm:o||e.tenantId,target:s,tokenType:a,keyId:t.sshKid,requestedClaimsHash:t.requestedClaimsHash},u=r&&r.accessToken||this.getTokenKeys().accessToken,d=[];u.forEach(f=>{if(this.accessTokenKeyMatchesFilter(f,l,!0)){const C=this.getAccessTokenCredential(f,t.correlationId);C&&this.credentialMatchesFilter(C,l)&&d.push(C)}});const h=d.length;return h<1?(this.commonLogger.info("CacheManager:getAccessToken - No token found"),null):h>1?(this.commonLogger.info("CacheManager:getAccessToken - Multiple access tokens found, clearing them"),d.forEach(f=>{this.removeAccessToken(oo(f),t.correlationId)}),i&&t.correlationId&&i.addFields({multiMatchedAT:d.length},t.correlationId),null):(this.commonLogger.info("CacheManager:getAccessToken - Returning access token"),d[0])}accessTokenKeyMatchesFilter(e,t,r){const o=e.toLowerCase();if(t.clientId&&o.indexOf(t.clientId.toLowerCase())===-1||t.homeAccountId&&o.indexOf(t.homeAccountId.toLowerCase())===-1||t.realm&&o.indexOf(t.realm.toLowerCase())===-1||t.requestedClaimsHash&&o.indexOf(t.requestedClaimsHash.toLowerCase())===-1)return!1;if(t.target){const i=t.target.asArray();for(let s=0;s{if(!this.accessTokenKeyMatchesFilter(i,e,!0))return;const s=this.getAccessTokenCredential(i,t);s&&this.credentialMatchesFilter(s,e)&&o.push(s)}),o}getRefreshToken(e,t,r,o,i){this.commonLogger.trace("CacheManager - getRefreshToken called");const s=t?ti:void 0,a={homeAccountId:e.homeAccountId,environment:e.environment,credentialType:de.REFRESH_TOKEN,clientId:this.clientId,familyId:s},c=o&&o.refreshToken||this.getTokenKeys().refreshToken,l=[];c.forEach(d=>{if(this.refreshTokenKeyMatchesFilter(d,a)){const h=this.getRefreshTokenCredential(d,r);h&&this.credentialMatchesFilter(h,a)&&l.push(h)}});const u=l.length;return u<1?(this.commonLogger.info("CacheManager:getRefreshToken - No refresh token found."),null):(u>1&&i&&r&&i.addFields({multiMatchedRT:u},r),this.commonLogger.info("CacheManager:getRefreshToken - returning refresh token"),l[0])}refreshTokenKeyMatchesFilter(e,t){const r=e.toLowerCase();return!(t.familyId&&r.indexOf(t.familyId.toLowerCase())===-1||!t.familyId&&t.clientId&&r.indexOf(t.clientId.toLowerCase())===-1||t.homeAccountId&&r.indexOf(t.homeAccountId.toLowerCase())===-1)}readAppMetadataFromCache(e){const t={environment:e,clientId:this.clientId},r=this.getAppMetadataFilteredBy(t),o=Object.keys(r).map(s=>r[s]),i=o.length;if(i<1)return null;if(i>1)throw B(Ig);return o[0]}isAppMetadataFOCI(e){const t=this.readAppMetadataFromCache(e);return!!(t&&t.familyId===ti)}matchHomeAccountId(e,t){return typeof e.homeAccountId=="string"&&t===e.homeAccountId}matchLocalAccountIdFromTokenClaims(e,t){const r=e.oid||e.sub;return t===r}matchLocalAccountIdFromTenantProfile(e,t){return e.localAccountId===t}matchName(e,t){var r;return t.toLowerCase()===((r=e.name)==null?void 0:r.toLowerCase())}matchUsername(e,t){return!!(e&&typeof e=="string"&&(t==null?void 0:t.toLowerCase())===e.toLowerCase())}matchUserAssertionHash(e,t){return!!(e.userAssertionHash&&t===e.userAssertionHash)}matchEnvironment(e,t){if(this.staticAuthorityOptions){const o=XA(this.staticAuthorityOptions,this.commonLogger);if(o.includes(t)&&o.includes(e.environment))return!0}const r=this.getAuthorityMetadataByAlias(t);return!!(r&&r.aliases.indexOf(e.environment)>-1)}matchCredentialType(e,t){return e.credentialType&&t.toLowerCase()===e.credentialType.toLowerCase()}matchClientId(e,t){return!!(e.clientId&&t===e.clientId)}matchFamilyId(e,t){return!!(e.familyId&&t===e.familyId)}matchRealm(e,t){var r;return((r=e.realm)==null?void 0:r.toLowerCase())===t.toLowerCase()}matchNativeAccountId(e,t){return!!(e.nativeAccountId&&t===e.nativeAccountId)}matchLoginHintFromTokenClaims(e,t){return e.login_hint===t||e.preferred_username===t||e.upn===t}matchSid(e,t){return e.sid===t}matchAuthorityType(e,t){return!!(e.authorityType&&t.toLowerCase()===e.authorityType.toLowerCase())}matchTarget(e,t){return e.credentialType!==de.ACCESS_TOKEN&&e.credentialType!==de.ACCESS_TOKEN_WITH_AUTH_SCHEME||!e.target?!1:Je.fromString(e.target).containsScopeSet(t)}matchTokenType(e,t){return!!(e.tokenType&&e.tokenType===t)}matchKeyId(e,t){return!!(e.keyId&&e.keyId===t)}isAppMetadata(e){return e.indexOf(il)!==-1}isAuthorityMetadata(e){return e.indexOf(ms.CACHE_KEY)!==-1}generateAuthorityMetadataCacheKey(e){return`${ms.CACHE_KEY}-${this.clientId}-${e}`}static toObject(e,t){for(const r in t)e[r]=t[r];return e}}class eE extends Io{setAccount(){throw B(Ce)}getAccount(){throw B(Ce)}getCachedAccountEntity(){throw B(Ce)}setIdTokenCredential(){throw B(Ce)}getIdTokenCredential(){throw B(Ce)}setAccessTokenCredential(){throw B(Ce)}getAccessTokenCredential(){throw B(Ce)}setRefreshTokenCredential(){throw B(Ce)}getRefreshTokenCredential(){throw B(Ce)}setAppMetadata(){throw B(Ce)}getAppMetadata(){throw B(Ce)}setServerTelemetry(){throw B(Ce)}getServerTelemetry(){throw B(Ce)}setAuthorityMetadata(){throw B(Ce)}getAuthorityMetadata(){throw B(Ce)}getAuthorityMetadataKeys(){throw B(Ce)}setThrottlingCache(){throw B(Ce)}getThrottlingCache(){throw B(Ce)}removeItem(){throw B(Ce)}getKeys(){throw B(Ce)}getAccountKeys(){throw B(Ce)}getTokenKeys(){throw B(Ce)}updateCredentialCacheKey(){throw B(Ce)}removeOutdatedAccount(){throw B(Ce)}}/*! @azure/msal-common v14.16.1 2025-08-05 */const rp={tokenRenewalOffsetSeconds:wA,preventCorsPreflight:!1},tE={loggerCallback:()=>{},piiLoggingEnabled:!1,logLevel:$e.Info,correlationId:k.EMPTY_STRING},nE={claimsBasedCachingEnabled:!1},rE={async sendGetRequestAsync(){throw B(Ce)},async sendPostRequestAsync(){throw B(Ce)}},oE={sku:k.SKU,version:fl,cpu:k.EMPTY_STRING,os:k.EMPTY_STRING},iE={clientSecret:k.EMPTY_STRING,clientAssertion:void 0},sE={azureCloudInstance:gl.None,tenant:`${k.DEFAULT_COMMON_TENANT}`},aE={application:{appName:"",appVersion:""}};function cE({authOptions:n,systemOptions:e,loggerOptions:t,cacheOptions:r,storageInterface:o,networkInterface:i,cryptoInterface:s,clientCredentials:a,libraryInfo:c,telemetry:l,serverTelemetryManager:u,persistencePlugin:d,serializableCache:h}){const f={...tE,...t};return{authOptions:lE(n),systemOptions:{...rp,...e},loggerOptions:f,cacheOptions:{...nE,...r},storageInterface:o||new eE(n.clientId,Cs,new mr(f)),networkInterface:i||rE,cryptoInterface:s||Cs,clientCredentials:a||iE,libraryInfo:{...oE,...c},telemetry:{...aE,...l},serverTelemetryManager:u||null,persistencePlugin:d||null,serializableCache:h||null}}function lE(n){return{clientCapabilities:[],azureCloudOptions:sE,skipAuthorityMetadataCache:!1,instanceAware:!1,...n}}function pc(n){return n.authOptions.authority.options.protocolMode===$n.OIDC}/*! @azure/msal-common v14.16.1 2025-08-05 */const $t={HOME_ACCOUNT_ID:"home_account_id",UPN:"UPN"};/*! @azure/msal-common v14.16.1 2025-08-05 */const Br="client_id",op="redirect_uri",_d="response_type",uE="response_mode",dE="grant_type",hE="claims",fE="scope",gE="refresh_token",pE="state",mE="nonce",yE="prompt",CE="code",vE="code_challenge",TE="code_challenge_method",wE="code_verifier",AE="client-request-id",EE="x-client-SKU",bE="x-client-VER",_E="x-client-OS",SE="x-client-CPU",IE="x-client-current-telemetry",RE="x-client-last-telemetry",kE="x-ms-lib-capability",OE="x-app-name",PE="x-app-ver",NE="post_logout_redirect_uri",ME="id_token_hint",xE="device_code",LE="client_secret",DE="client_assertion",UE="client_assertion_type",Sd="token_type",Id="req_cnf",HE="assertion",FE="requested_token_use",Rd="return_spa_code",BE="nativebroker",KE="logout_hint",qE="sid",jE="login_hint",$E="domain_hint",GE="x-client-xtra-sku",_l="brk_client_id",mc="brk_redirect_uri";/*! @azure/msal-common v14.16.1 2025-08-05 */class Zr{static validateRedirectUri(e){if(!e)throw Ue(Hg)}static validatePrompt(e){const t=[];for(const r in ct)t.push(ct[r]);if(t.indexOf(e)<0)throw Ue(qg)}static validateClaims(e){try{JSON.parse(e)}catch{throw Ue(ml)}}static validateCodeChallengeParams(e,t){if(!e||!t)throw Ue(yl);this.validateCodeChallengeMethod(t)}static validateCodeChallengeMethod(e){if([fd.PLAIN,fd.S256].indexOf(e)<0)throw Ue(Gg)}}/*! @azure/msal-common v14.16.1 2025-08-05 */function VE(n,e,t){if(!e)return;const r=n.get(Br);r&&n.has(_l)&&(t==null||t.addFields({embeddedClientId:r,embeddedRedirectUri:n.get(op)},e))}class ri{constructor(e,t){this.parameters=new Map,this.performanceClient=t,this.correlationId=e}addResponseTypeCode(){this.parameters.set(_d,encodeURIComponent(k.CODE_RESPONSE_TYPE))}addResponseTypeForTokenAndIdToken(){this.parameters.set(_d,encodeURIComponent(`${k.TOKEN_RESPONSE_TYPE} ${k.ID_TOKEN_RESPONSE_TYPE}`))}addResponseMode(e){this.parameters.set(uE,encodeURIComponent(e||CA.QUERY))}addNativeBroker(){this.parameters.set(BE,encodeURIComponent("1"))}addScopes(e,t=!0,r=xo){t&&!r.includes("openid")&&!e.includes("openid")&&r.push("openid");const o=t?[...e||[],...r]:e||[],i=new Je(o);this.parameters.set(fE,encodeURIComponent(i.printScopes()))}addClientId(e){this.parameters.set(Br,encodeURIComponent(e))}addRedirectUri(e){Zr.validateRedirectUri(e),this.parameters.set(op,encodeURIComponent(e))}addPostLogoutRedirectUri(e){Zr.validateRedirectUri(e),this.parameters.set(NE,encodeURIComponent(e))}addIdTokenHint(e){this.parameters.set(ME,encodeURIComponent(e))}addDomainHint(e){this.parameters.set($E,encodeURIComponent(e))}addLoginHint(e){this.parameters.set(jE,encodeURIComponent(e))}addCcsUpn(e){this.parameters.set(St.CCS_HEADER,encodeURIComponent(`UPN:${e}`))}addCcsOid(e){this.parameters.set(St.CCS_HEADER,encodeURIComponent(`Oid:${e.uid}@${e.utid}`))}addSid(e){this.parameters.set(qE,encodeURIComponent(e))}addClaims(e,t){const r=this.addClientCapabilitiesToClaims(e,t);Zr.validateClaims(r),this.parameters.set(hE,encodeURIComponent(r))}addCorrelationId(e){this.parameters.set(AE,encodeURIComponent(e))}addLibraryInfo(e){this.parameters.set(EE,e.sku),this.parameters.set(bE,e.version),e.os&&this.parameters.set(_E,e.os),e.cpu&&this.parameters.set(SE,e.cpu)}addApplicationTelemetry(e){e!=null&&e.appName&&this.parameters.set(OE,e.appName),e!=null&&e.appVersion&&this.parameters.set(PE,e.appVersion)}addPrompt(e){Zr.validatePrompt(e),this.parameters.set(`${yE}`,encodeURIComponent(e))}addState(e){e&&this.parameters.set(pE,encodeURIComponent(e))}addNonce(e){this.parameters.set(mE,encodeURIComponent(e))}addCodeChallengeParams(e,t){if(Zr.validateCodeChallengeParams(e,t),e&&t)this.parameters.set(vE,encodeURIComponent(e)),this.parameters.set(TE,encodeURIComponent(t));else throw Ue(yl)}addAuthorizationCode(e){this.parameters.set(CE,encodeURIComponent(e))}addDeviceCode(e){this.parameters.set(xE,encodeURIComponent(e))}addRefreshToken(e){this.parameters.set(gE,encodeURIComponent(e))}addCodeVerifier(e){this.parameters.set(wE,encodeURIComponent(e))}addClientSecret(e){this.parameters.set(LE,encodeURIComponent(e))}addClientAssertion(e){e&&this.parameters.set(DE,encodeURIComponent(e))}addClientAssertionType(e){e&&this.parameters.set(UE,encodeURIComponent(e))}addOboAssertion(e){this.parameters.set(HE,encodeURIComponent(e))}addRequestTokenUse(e){this.parameters.set(FE,encodeURIComponent(e))}addGrantType(e){this.parameters.set(dE,encodeURIComponent(e))}addClientInfo(){this.parameters.set(vA,"1")}addExtraQueryParameters(e){Object.entries(e).forEach(([t,r])=>{!this.parameters.has(t)&&r&&this.parameters.set(t,r)})}addClientCapabilitiesToClaims(e,t){let r;if(!e)r={};else try{r=JSON.parse(e)}catch{throw Ue(ml)}return t&&t.length>0&&(r.hasOwnProperty($i.ACCESS_TOKEN)||(r[$i.ACCESS_TOKEN]={}),r[$i.ACCESS_TOKEN][$i.XMS_CC]={values:t}),JSON.stringify(r)}addUsername(e){this.parameters.set(pd.username,encodeURIComponent(e))}addPassword(e){this.parameters.set(pd.password,encodeURIComponent(e))}addPopToken(e){e&&(this.parameters.set(Sd,Le.POP),this.parameters.set(Id,encodeURIComponent(e)))}addSshJwk(e){e&&(this.parameters.set(Sd,Le.SSH),this.parameters.set(Id,encodeURIComponent(e)))}addServerTelemetry(e){this.parameters.set(IE,e.generateCurrentRequestHeaderValue()),this.parameters.set(RE,e.generateLastRequestHeaderValue())}addThrottling(){this.parameters.set(kE,ni.X_MS_LIB_CAPABILITY_VALUE)}addLogoutHint(e){this.parameters.set(KE,encodeURIComponent(e))}addBrokerParameters(e){const t={};t[_l]=e.brokerClientId,t[mc]=e.brokerRedirectUri,this.addExtraQueryParameters(t)}createQueryString(){const e=new Array;return this.parameters.forEach((t,r)=>{e.push(`${r}=${t}`)}),VE(this.parameters,this.correlationId,this.performanceClient),e.join("&")}}/*! @azure/msal-common v14.16.1 2025-08-05 */function zE(n){return n.hasOwnProperty("authorization_endpoint")&&n.hasOwnProperty("token_endpoint")&&n.hasOwnProperty("issuer")&&n.hasOwnProperty("jwks_uri")}/*! @azure/msal-common v14.16.1 2025-08-05 */function QE(n){return n.hasOwnProperty("tenant_discovery_endpoint")&&n.hasOwnProperty("metadata")}/*! @azure/msal-common v14.16.1 2025-08-05 */function WE(n){return n.hasOwnProperty("error")&&n.hasOwnProperty("error_description")}/*! @azure/msal-common v14.16.1 2025-08-05 */const b={AcquireTokenByCode:"acquireTokenByCode",AcquireTokenByRefreshToken:"acquireTokenByRefreshToken",AcquireTokenSilent:"acquireTokenSilent",AcquireTokenSilentAsync:"acquireTokenSilentAsync",AcquireTokenPopup:"acquireTokenPopup",AcquireTokenPreRedirect:"acquireTokenPreRedirect",AcquireTokenRedirect:"acquireTokenRedirect",CryptoOptsGetPublicKeyThumbprint:"cryptoOptsGetPublicKeyThumbprint",CryptoOptsSignJwt:"cryptoOptsSignJwt",SilentCacheClientAcquireToken:"silentCacheClientAcquireToken",SilentIframeClientAcquireToken:"silentIframeClientAcquireToken",AwaitConcurrentIframe:"awaitConcurrentIframe",SilentRefreshClientAcquireToken:"silentRefreshClientAcquireToken",SsoSilent:"ssoSilent",StandardInteractionClientGetDiscoveredAuthority:"standardInteractionClientGetDiscoveredAuthority",FetchAccountIdWithNativeBroker:"fetchAccountIdWithNativeBroker",NativeInteractionClientAcquireToken:"nativeInteractionClientAcquireToken",BaseClientCreateTokenRequestHeaders:"baseClientCreateTokenRequestHeaders",NetworkClientSendPostRequestAsync:"networkClientSendPostRequestAsync",RefreshTokenClientExecutePostToTokenEndpoint:"refreshTokenClientExecutePostToTokenEndpoint",AuthorizationCodeClientExecutePostToTokenEndpoint:"authorizationCodeClientExecutePostToTokenEndpoint",BrokerHandhshake:"brokerHandshake",AcquireTokenByRefreshTokenInBroker:"acquireTokenByRefreshTokenInBroker",AcquireTokenByBroker:"acquireTokenByBroker",RefreshTokenClientExecuteTokenRequest:"refreshTokenClientExecuteTokenRequest",RefreshTokenClientAcquireToken:"refreshTokenClientAcquireToken",RefreshTokenClientAcquireTokenWithCachedRefreshToken:"refreshTokenClientAcquireTokenWithCachedRefreshToken",RefreshTokenClientAcquireTokenByRefreshToken:"refreshTokenClientAcquireTokenByRefreshToken",RefreshTokenClientCreateTokenRequestBody:"refreshTokenClientCreateTokenRequestBody",AcquireTokenFromCache:"acquireTokenFromCache",SilentFlowClientAcquireCachedToken:"silentFlowClientAcquireCachedToken",SilentFlowClientGenerateResultFromCacheRecord:"silentFlowClientGenerateResultFromCacheRecord",AcquireTokenBySilentIframe:"acquireTokenBySilentIframe",InitializeBaseRequest:"initializeBaseRequest",InitializeSilentRequest:"initializeSilentRequest",InitializeClientApplication:"initializeClientApplication",SilentIframeClientTokenHelper:"silentIframeClientTokenHelper",SilentHandlerInitiateAuthRequest:"silentHandlerInitiateAuthRequest",SilentHandlerMonitorIframeForHash:"silentHandlerMonitorIframeForHash",SilentHandlerLoadFrame:"silentHandlerLoadFrame",SilentHandlerLoadFrameSync:"silentHandlerLoadFrameSync",StandardInteractionClientCreateAuthCodeClient:"standardInteractionClientCreateAuthCodeClient",StandardInteractionClientGetClientConfiguration:"standardInteractionClientGetClientConfiguration",StandardInteractionClientInitializeAuthorizationRequest:"standardInteractionClientInitializeAuthorizationRequest",StandardInteractionClientInitializeAuthorizationCodeRequest:"standardInteractionClientInitializeAuthorizationCodeRequest",GetAuthCodeUrl:"getAuthCodeUrl",HandleCodeResponseFromServer:"handleCodeResponseFromServer",HandleCodeResponse:"handleCodeResponse",UpdateTokenEndpointAuthority:"updateTokenEndpointAuthority",AuthClientAcquireToken:"authClientAcquireToken",AuthClientExecuteTokenRequest:"authClientExecuteTokenRequest",AuthClientCreateTokenRequestBody:"authClientCreateTokenRequestBody",AuthClientCreateQueryString:"authClientCreateQueryString",PopTokenGenerateCnf:"popTokenGenerateCnf",PopTokenGenerateKid:"popTokenGenerateKid",HandleServerTokenResponse:"handleServerTokenResponse",DeserializeResponse:"deserializeResponse",AuthorityFactoryCreateDiscoveredInstance:"authorityFactoryCreateDiscoveredInstance",AuthorityResolveEndpointsAsync:"authorityResolveEndpointsAsync",AuthorityResolveEndpointsFromLocalSources:"authorityResolveEndpointsFromLocalSources",AuthorityGetCloudDiscoveryMetadataFromNetwork:"authorityGetCloudDiscoveryMetadataFromNetwork",AuthorityUpdateCloudDiscoveryMetadata:"authorityUpdateCloudDiscoveryMetadata",AuthorityGetEndpointMetadataFromNetwork:"authorityGetEndpointMetadataFromNetwork",AuthorityUpdateEndpointMetadata:"authorityUpdateEndpointMetadata",AuthorityUpdateMetadataWithRegionalInformation:"authorityUpdateMetadataWithRegionalInformation",RegionDiscoveryDetectRegion:"regionDiscoveryDetectRegion",RegionDiscoveryGetRegionFromIMDS:"regionDiscoveryGetRegionFromIMDS",RegionDiscoveryGetCurrentVersion:"regionDiscoveryGetCurrentVersion",AcquireTokenByCodeAsync:"acquireTokenByCodeAsync",GetEndpointMetadataFromNetwork:"getEndpointMetadataFromNetwork",GetCloudDiscoveryMetadataFromNetworkMeasurement:"getCloudDiscoveryMetadataFromNetworkMeasurement",HandleRedirectPromiseMeasurement:"handleRedirectPromise",HandleNativeRedirectPromiseMeasurement:"handleNativeRedirectPromise",UpdateCloudDiscoveryMetadataMeasurement:"updateCloudDiscoveryMetadataMeasurement",UsernamePasswordClientAcquireToken:"usernamePasswordClientAcquireToken",NativeMessageHandlerHandshake:"nativeMessageHandlerHandshake",NativeGenerateAuthResult:"nativeGenerateAuthResult",RemoveHiddenIframe:"removeHiddenIframe",ClearTokensAndKeysWithClaims:"clearTokensAndKeysWithClaims",CacheManagerGetRefreshToken:"cacheManagerGetRefreshToken",GeneratePkceCodes:"generatePkceCodes",GenerateCodeVerifier:"generateCodeVerifier",GenerateCodeChallengeFromVerifier:"generateCodeChallengeFromVerifier",Sha256Digest:"sha256Digest",GetRandomValues:"getRandomValues"},YE={InProgress:1};/*! @azure/msal-common v14.16.1 2025-08-05 */const Vr=(n,e,t,r,o)=>(...i)=>{t.trace(`Executing function ${e}`);const s=r==null?void 0:r.startMeasurement(e,o);if(o){const a=e+"CallCount";r==null||r.incrementFields({[a]:1},o)}try{const a=n(...i);return s==null||s.end({success:!0}),t.trace(`Returning result from ${e}`),a}catch(a){t.trace(`Error occurred in ${e}`);try{t.trace(JSON.stringify(a))}catch{t.trace("Unable to print error message.")}throw s==null||s.end({success:!1},a),a}},$=(n,e,t,r,o)=>(...i)=>{t.trace(`Executing function ${e}`);const s=r==null?void 0:r.startMeasurement(e,o);if(o){const a=e+"CallCount";r==null||r.incrementFields({[a]:1},o)}return r==null||r.setPreQueueTime(e,o),n(...i).then(a=>(t.trace(`Returning result from ${e}`),s==null||s.end({success:!0}),a)).catch(a=>{t.trace(`Error occurred in ${e}`);try{t.trace(JSON.stringify(a))}catch{t.trace("Unable to print error message.")}throw s==null||s.end({success:!1},a),a})};/*! @azure/msal-common v14.16.1 2025-08-05 */class ea{constructor(e,t,r,o){this.networkInterface=e,this.logger=t,this.performanceClient=r,this.correlationId=o}async detectRegion(e,t){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(b.RegionDiscoveryDetectRegion,this.correlationId);let r=e;if(r)t.region_source=Yr.ENVIRONMENT_VARIABLE;else{const i=ea.IMDS_OPTIONS;try{const s=await $(this.getRegionFromIMDS.bind(this),b.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(k.IMDS_VERSION,i);if(s.status===Vi.httpSuccess&&(r=s.body,t.region_source=Yr.IMDS),s.status===Vi.httpBadRequest){const a=await $(this.getCurrentVersion.bind(this),b.RegionDiscoveryGetCurrentVersion,this.logger,this.performanceClient,this.correlationId)(i);if(!a)return t.region_source=Yr.FAILED_AUTO_DETECTION,null;const c=await $(this.getRegionFromIMDS.bind(this),b.RegionDiscoveryGetRegionFromIMDS,this.logger,this.performanceClient,this.correlationId)(a,i);c.status===Vi.httpSuccess&&(r=c.body,t.region_source=Yr.IMDS)}}catch{return t.region_source=Yr.FAILED_AUTO_DETECTION,null}}return r||(t.region_source=Yr.FAILED_AUTO_DETECTION),r||null}async getRegionFromIMDS(e,t){var r;return(r=this.performanceClient)==null||r.addQueueMeasurement(b.RegionDiscoveryGetRegionFromIMDS,this.correlationId),this.networkInterface.sendGetRequestAsync(`${k.IMDS_ENDPOINT}?api-version=${e}&format=text`,t,k.IMDS_TIMEOUT)}async getCurrentVersion(e){var t;(t=this.performanceClient)==null||t.addQueueMeasurement(b.RegionDiscoveryGetCurrentVersion,this.correlationId);try{const r=await this.networkInterface.sendGetRequestAsync(`${k.IMDS_ENDPOINT}?format=json`,e);return r.status===Vi.httpBadRequest&&r.body&&r.body["newest-versions"]&&r.body["newest-versions"].length>0?r.body["newest-versions"][0]:null}catch{return null}}}ea.IMDS_OPTIONS={headers:{Metadata:"true"}};/*! @azure/msal-common v14.16.1 2025-08-05 */class mt{constructor(e,t,r,o,i,s,a,c){this.canonicalAuthority=e,this._canonicalAuthority.validateAsUri(),this.networkInterface=t,this.cacheManager=r,this.authorityOptions=o,this.regionDiscoveryMetadata={region_used:void 0,region_source:void 0,region_outcome:void 0},this.logger=i,this.performanceClient=a,this.correlationId=s,this.managedIdentity=c||!1,this.regionDiscovery=new ea(t,this.logger,this.performanceClient,this.correlationId)}getAuthorityType(e){if(e.HostNameAndPort.endsWith(k.CIAM_AUTH_URL))return tn.Ciam;const t=e.PathSegments;if(t.length)switch(t[0].toLowerCase()){case k.ADFS:return tn.Adfs;case k.DSTS:return tn.Dsts}return tn.Default}get authorityType(){return this.getAuthorityType(this.canonicalAuthorityUrlComponents)}get protocolMode(){return this.authorityOptions.protocolMode}get options(){return this.authorityOptions}get canonicalAuthority(){return this._canonicalAuthority.urlString}set canonicalAuthority(e){this._canonicalAuthority=new Se(e),this._canonicalAuthority.validateAsUri(),this._canonicalAuthorityUrlComponents=null}get canonicalAuthorityUrlComponents(){return this._canonicalAuthorityUrlComponents||(this._canonicalAuthorityUrlComponents=this._canonicalAuthority.getUrlComponents()),this._canonicalAuthorityUrlComponents}get hostnameAndPort(){return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase()}get tenant(){return this.canonicalAuthorityUrlComponents.PathSegments[0]}get authorizationEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.authorization_endpoint);throw B(Dn)}get tokenEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint);throw B(Dn)}get deviceCodeEndpoint(){if(this.discoveryComplete())return this.replacePath(this.metadata.token_endpoint.replace("/token","/devicecode"));throw B(Dn)}get endSessionEndpoint(){if(this.discoveryComplete()){if(!this.metadata.end_session_endpoint)throw B(xg);return this.replacePath(this.metadata.end_session_endpoint)}else throw B(Dn)}get selfSignedJwtAudience(){if(this.discoveryComplete())return this.replacePath(this.metadata.issuer);throw B(Dn)}get jwksUri(){if(this.discoveryComplete())return this.replacePath(this.metadata.jwks_uri);throw B(Dn)}canReplaceTenant(e){return e.PathSegments.length===1&&!mt.reservedTenantDomains.has(e.PathSegments[0])&&this.getAuthorityType(e)===tn.Default&&this.protocolMode===$n.AAD}replaceTenant(e){return e.replace(/{tenant}|{tenantid}/g,this.tenant)}replacePath(e){let t=e;const o=new Se(this.metadata.canonical_authority).getUrlComponents(),i=o.PathSegments;return this.canonicalAuthorityUrlComponents.PathSegments.forEach((a,c)=>{let l=i[c];if(c===0&&this.canReplaceTenant(o)){const u=new Se(this.metadata.authorization_endpoint).getUrlComponents().PathSegments[0];l!==u&&(this.logger.verbose(`Replacing tenant domain name ${l} with id ${u}`),l=u)}a!==l&&(t=t.replace(`/${l}/`,`/${a}/`))}),this.replaceTenant(t)}get defaultOpenIdConfigurationEndpoint(){const e=this.hostnameAndPort;return this.canonicalAuthority.endsWith("v2.0/")||this.authorityType===tn.Adfs||this.protocolMode!==$n.AAD&&!this.isAliasOfKnownMicrosoftAuthority(e)?`${this.canonicalAuthority}.well-known/openid-configuration`:`${this.canonicalAuthority}v2.0/.well-known/openid-configuration`}discoveryComplete(){return!!this.metadata}async resolveEndpointsAsync(){var o,i;(o=this.performanceClient)==null||o.addQueueMeasurement(b.AuthorityResolveEndpointsAsync,this.correlationId);const e=this.getCurrentMetadataEntity(),t=await $(this.updateCloudDiscoveryMetadata.bind(this),b.AuthorityUpdateCloudDiscoveryMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.canonicalAuthority=this.canonicalAuthority.replace(this.hostnameAndPort,e.preferred_network);const r=await $(this.updateEndpointMetadata.bind(this),b.AuthorityUpdateEndpointMetadata,this.logger,this.performanceClient,this.correlationId)(e);this.updateCachedMetadata(e,t,{source:r}),(i=this.performanceClient)==null||i.addFields({cloudDiscoverySource:t,authorityEndpointSource:r},this.correlationId)}getCurrentMetadataEntity(){let e=this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);return e||(e={aliases:[],preferred_cache:this.hostnameAndPort,preferred_network:this.hostnameAndPort,canonical_authority:this.canonicalAuthority,authorization_endpoint:"",token_endpoint:"",end_session_endpoint:"",issuer:"",aliasesFromNetwork:!1,endpointsFromNetwork:!1,expiresAt:wd(),jwks_uri:""}),e}updateCachedMetadata(e,t,r){t!==Ut.CACHE&&(r==null?void 0:r.source)!==Ut.CACHE&&(e.expiresAt=wd(),e.canonical_authority=this.canonicalAuthority);const o=this.cacheManager.generateAuthorityMetadataCacheKey(e.preferred_cache);this.cacheManager.setAuthorityMetadata(o,e),this.metadata=e}async updateEndpointMetadata(e){var o,i,s;(o=this.performanceClient)==null||o.addQueueMeasurement(b.AuthorityUpdateEndpointMetadata,this.correlationId);const t=this.updateEndpointMetadataFromLocalSources(e);if(t){if(t.source===Ut.HARDCODED_VALUES&&(i=this.authorityOptions.azureRegionConfiguration)!=null&&i.azureRegion&&t.metadata){const a=await $(this.updateMetadataWithRegionalInformation.bind(this),b.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(t.metadata);zi(e,a,!1),e.canonical_authority=this.canonicalAuthority}return t.source}let r=await $(this.getEndpointMetadataFromNetwork.bind(this),b.AuthorityGetEndpointMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return(s=this.authorityOptions.azureRegionConfiguration)!=null&&s.azureRegion&&(r=await $(this.updateMetadataWithRegionalInformation.bind(this),b.AuthorityUpdateMetadataWithRegionalInformation,this.logger,this.performanceClient,this.correlationId)(r)),zi(e,r,!0),Ut.NETWORK;throw B(Ag,this.defaultOpenIdConfigurationEndpoint)}updateEndpointMetadataFromLocalSources(e){this.logger.verbose("Attempting to get endpoint metadata from authority configuration");const t=this.getEndpointMetadataFromConfig();if(t)return this.logger.verbose("Found endpoint metadata in authority configuration"),zi(e,t,!1),{source:Ut.CONFIG};if(this.logger.verbose("Did not find endpoint metadata in the config... Attempting to get endpoint metadata from the hardcoded values."),this.authorityOptions.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get endpoint metadata from the network metadata cache.");else{const o=this.getEndpointMetadataFromHardcodedValues();if(o)return zi(e,o,!1),{source:Ut.HARDCODED_VALUES,metadata:o};this.logger.verbose("Did not find endpoint metadata in hardcoded values... Attempting to get endpoint metadata from the network metadata cache.")}const r=Ad(e);return this.isAuthoritySameType(e)&&e.endpointsFromNetwork&&!r?(this.logger.verbose("Found endpoint metadata in the cache."),{source:Ut.CACHE}):(r&&this.logger.verbose("The metadata entity is expired."),null)}isAuthoritySameType(e){return new Se(e.canonical_authority).getUrlComponents().PathSegments.length===this.canonicalAuthorityUrlComponents.PathSegments.length}getEndpointMetadataFromConfig(){if(this.authorityOptions.authorityMetadata)try{return JSON.parse(this.authorityOptions.authorityMetadata)}catch{throw Ue(Vg)}return null}async getEndpointMetadataFromNetwork(){var r;(r=this.performanceClient)==null||r.addQueueMeasurement(b.AuthorityGetEndpointMetadataFromNetwork,this.correlationId);const e={},t=this.defaultOpenIdConfigurationEndpoint;this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: attempting to retrieve OAuth endpoints from ${t}`);try{const o=await this.networkInterface.sendGetRequestAsync(t,e);return zE(o.body)?o.body:(this.logger.verbose("Authority.getEndpointMetadataFromNetwork: could not parse response as OpenID configuration"),null)}catch(o){return this.logger.verbose(`Authority.getEndpointMetadataFromNetwork: ${o}`),null}}getEndpointMetadataFromHardcodedValues(){return this.hostnameAndPort in Ed?Ed[this.hostnameAndPort]:null}async updateMetadataWithRegionalInformation(e){var r,o,i;(r=this.performanceClient)==null||r.addQueueMeasurement(b.AuthorityUpdateMetadataWithRegionalInformation,this.correlationId);const t=(o=this.authorityOptions.azureRegionConfiguration)==null?void 0:o.azureRegion;if(t){if(t!==k.AZURE_REGION_AUTO_DISCOVER_FLAG)return this.regionDiscoveryMetadata.region_outcome=ka.CONFIGURED_NO_AUTO_DETECTION,this.regionDiscoveryMetadata.region_used=t,mt.replaceWithRegionalInformation(e,t);const s=await $(this.regionDiscovery.detectRegion.bind(this.regionDiscovery),b.RegionDiscoveryDetectRegion,this.logger,this.performanceClient,this.correlationId)((i=this.authorityOptions.azureRegionConfiguration)==null?void 0:i.environmentRegion,this.regionDiscoveryMetadata);if(s)return this.regionDiscoveryMetadata.region_outcome=ka.AUTO_DETECTION_REQUESTED_SUCCESSFUL,this.regionDiscoveryMetadata.region_used=s,mt.replaceWithRegionalInformation(e,s);this.regionDiscoveryMetadata.region_outcome=ka.AUTO_DETECTION_REQUESTED_FAILED}return e}async updateCloudDiscoveryMetadata(e){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(b.AuthorityUpdateCloudDiscoveryMetadata,this.correlationId);const t=this.updateCloudDiscoveryMetadataFromLocalSources(e);if(t)return t;const r=await $(this.getCloudDiscoveryMetadataFromNetwork.bind(this),b.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.logger,this.performanceClient,this.correlationId)();if(r)return Oa(e,r,!0),Ut.NETWORK;throw Ue(zg)}updateCloudDiscoveryMetadataFromLocalSources(e){this.logger.verbose("Attempting to get cloud discovery metadata from authority configuration"),this.logger.verbosePii(`Known Authorities: ${this.authorityOptions.knownAuthorities||k.NOT_APPLICABLE}`),this.logger.verbosePii(`Authority Metadata: ${this.authorityOptions.authorityMetadata||k.NOT_APPLICABLE}`),this.logger.verbosePii(`Canonical Authority: ${e.canonical_authority||k.NOT_APPLICABLE}`);const t=this.getCloudDiscoveryMetadataFromConfig();if(t)return this.logger.verbose("Found cloud discovery metadata in authority configuration"),Oa(e,t,!1),Ut.CONFIG;if(this.logger.verbose("Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the hardcoded values."),this.options.skipAuthorityMetadataCache)this.logger.verbose("Skipping hardcoded cloud discovery metadata cache since skipAuthorityMetadataCache is set to true. Attempting to get cloud discovery metadata from the network metadata cache.");else{const o=ZA(this.hostnameAndPort);if(o)return this.logger.verbose("Found cloud discovery metadata from hardcoded values."),Oa(e,o,!1),Ut.HARDCODED_VALUES;this.logger.verbose("Did not find cloud discovery metadata in hardcoded values... Attempting to get cloud discovery metadata from the network metadata cache.")}const r=Ad(e);return this.isAuthoritySameType(e)&&e.aliasesFromNetwork&&!r?(this.logger.verbose("Found cloud discovery metadata in the cache."),Ut.CACHE):(r&&this.logger.verbose("The metadata entity is expired."),null)}getCloudDiscoveryMetadataFromConfig(){if(this.authorityType===tn.Ciam)return this.logger.verbose("CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host."),mt.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);if(this.authorityOptions.cloudDiscoveryMetadata){this.logger.verbose("The cloud discovery metadata has been provided as a network response, in the config.");try{this.logger.verbose("Attempting to parse the cloud discovery metadata.");const e=JSON.parse(this.authorityOptions.cloudDiscoveryMetadata),t=As(e.metadata,this.hostnameAndPort);if(this.logger.verbose("Parsed the cloud discovery metadata."),t)return this.logger.verbose("There is returnable metadata attached to the parsed cloud discovery metadata."),t;this.logger.verbose("There is no metadata attached to the parsed cloud discovery metadata.")}catch{throw this.logger.verbose("Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error."),Ue(Cl)}}return this.isInKnownAuthorities()?(this.logger.verbose("The host is included in knownAuthorities. Creating new cloud discovery metadata from the host."),mt.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)):null}async getCloudDiscoveryMetadataFromNetwork(){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(b.AuthorityGetCloudDiscoveryMetadataFromNetwork,this.correlationId);const e=`${k.AAD_INSTANCE_DISCOVERY_ENDPT}${this.canonicalAuthority}oauth2/v2.0/authorize`,t={};let r=null;try{const i=await this.networkInterface.sendGetRequestAsync(e,t);let s,a;if(QE(i.body))s=i.body,a=s.metadata,this.logger.verbosePii(`tenant_discovery_endpoint is: ${s.tenant_discovery_endpoint}`);else if(WE(i.body)){if(this.logger.warning(`A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: ${i.status}`),s=i.body,s.error===k.INVALID_INSTANCE)return this.logger.error("The CloudInstanceDiscoveryErrorResponse error is invalid_instance."),null;this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error is ${s.error}`),this.logger.warning(`The CloudInstanceDiscoveryErrorResponse error description is ${s.error_description}`),this.logger.warning("Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []"),a=[]}else return this.logger.error("AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse"),null;this.logger.verbose("Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request."),r=As(a,this.hostnameAndPort)}catch(i){if(i instanceof je)this.logger.error(`There was a network error while attempting to get the cloud discovery instance metadata. +Error: ${i.errorCode} +Error Description: ${i.errorMessage}`);else{const s=i;this.logger.error(`A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata. +Error: ${s.name} +Error Description: ${s.message}`)}return null}return r||(this.logger.warning("The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request."),this.logger.verbose("Creating custom Authority for custom domain scenario."),r=mt.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort)),r}isInKnownAuthorities(){return this.authorityOptions.knownAuthorities.filter(t=>t&&Se.getDomainFromUrl(t).toLowerCase()===this.hostnameAndPort).length>0}static generateAuthority(e,t){let r;if(t&&t.azureCloudInstance!==gl.None){const o=t.tenant?t.tenant:k.DEFAULT_COMMON_TENANT;r=`${t.azureCloudInstance}/${o}/`}return r||e}static createCloudDiscoveryMetadataFromHost(e){return{preferred_network:e,preferred_cache:e,aliases:[e]}}getPreferredCache(){if(this.managedIdentity)return k.DEFAULT_AUTHORITY_HOST;if(this.discoveryComplete())return this.metadata.preferred_cache;throw B(Dn)}isAlias(e){return this.metadata.aliases.indexOf(e)>-1}isAliasOfKnownMicrosoftAuthority(e){return tp.has(e)}static isPublicCloudAuthority(e){return k.KNOWN_PUBLIC_CLOUDS.indexOf(e)>=0}static buildRegionalAuthorityString(e,t,r){const o=new Se(e);o.validateAsUri();const i=o.getUrlComponents();let s=`${t}.${i.HostNameAndPort}`;this.isPublicCloudAuthority(i.HostNameAndPort)&&(s=`${t}.${k.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX}`);const a=Se.constructAuthorityUriFromObject({...o.getUrlComponents(),HostNameAndPort:s}).urlString;return r?`${a}?${r}`:a}static replaceWithRegionalInformation(e,t){const r={...e};return r.authorization_endpoint=mt.buildRegionalAuthorityString(r.authorization_endpoint,t),r.token_endpoint=mt.buildRegionalAuthorityString(r.token_endpoint,t),r.end_session_endpoint&&(r.end_session_endpoint=mt.buildRegionalAuthorityString(r.end_session_endpoint,t)),r}static transformCIAMAuthority(e){let t=e;const o=new Se(e).getUrlComponents();if(o.PathSegments.length===0&&o.HostNameAndPort.endsWith(k.CIAM_AUTH_URL)){const i=o.HostNameAndPort.split(".")[0];t=`${t}${i}${k.AAD_TENANT_DOMAIN_SUFFIX}`}return t}}mt.reservedTenantDomains=new Set(["{tenant}","{tenantid}",gr.COMMON,gr.CONSUMERS,gr.ORGANIZATIONS]);function JE(n){var o;const r=(o=new Se(n).getUrlComponents().PathSegments.slice(-1)[0])==null?void 0:o.toLowerCase();switch(r){case gr.COMMON:case gr.ORGANIZATIONS:case gr.CONSUMERS:return;default:return r}}function ip(n){return n.endsWith(k.FORWARD_SLASH)?n:`${n}${k.FORWARD_SLASH}`}function XE(n){const e=n.cloudDiscoveryMetadata;let t;if(e)try{t=JSON.parse(e)}catch{throw Ue(Cl)}return{canonicalAuthority:n.authority?ip(n.authority):void 0,knownAuthorities:n.knownAuthorities,cloudDiscoveryMetadata:t}}/*! @azure/msal-common v14.16.1 2025-08-05 */async function sp(n,e,t,r,o,i,s){s==null||s.addQueueMeasurement(b.AuthorityFactoryCreateDiscoveredInstance,i);const a=mt.transformCIAMAuthority(ip(n)),c=new mt(a,e,t,r,o,i,s);try{return await $(c.resolveEndpointsAsync.bind(c),b.AuthorityResolveEndpointsAsync,o,s,i)(),c}catch{throw B(Dn)}}/*! @azure/msal-common v14.16.1 2025-08-05 */class yr extends je{constructor(e,t,r,o,i){super(e,t,r),this.name="ServerError",this.errorNo=o,this.status=i,Object.setPrototypeOf(this,yr.prototype)}}/*! @azure/msal-common v14.16.1 2025-08-05 */class En{static generateThrottlingStorageKey(e){return`${ni.THROTTLING_PREFIX}.${JSON.stringify(e)}`}static preProcess(e,t,r){var s;const o=En.generateThrottlingStorageKey(t),i=e.getThrottlingCache(o);if(i){if(i.throttleTime=500&&e.status<600}static checkResponseForRetryAfter(e){return e.headers?e.headers.hasOwnProperty(St.RETRY_AFTER)&&(e.status<200||e.status>=300):!1}static calculateThrottleTime(e){const t=e<=0?0:e,r=Date.now()/1e3;return Math.floor(Math.min(r+(t||ni.DEFAULT_THROTTLE_TIME_SECONDS),r+ni.DEFAULT_MAX_THROTTLE_TIME_SECONDS)*1e3)}static removeThrottle(e,t,r,o){const i={clientId:t,authority:r.authority,scopes:r.scopes,homeAccountIdentifier:o,claims:r.claims,authenticationScheme:r.authenticationScheme,resourceRequestMethod:r.resourceRequestMethod,resourceRequestUri:r.resourceRequestUri,shrClaims:r.shrClaims,sshKid:r.sshKid},s=this.generateThrottlingStorageKey(i);e.removeItem(s,r.correlationId)}}/*! @azure/msal-common v14.16.1 2025-08-05 */class ta extends je{constructor(e,t,r){super(e.errorCode,e.errorMessage,e.subError),Object.setPrototypeOf(this,ta.prototype),this.name="NetworkError",this.error=e,this.httpStatus=t,this.responseHeaders=r}}function kd(n,e,t){return new ta(n,e,t)}/*! @azure/msal-common v14.16.1 2025-08-05 */class Sl{constructor(e,t){this.config=cE(e),this.logger=new mr(this.config.loggerOptions,Lg,fl),this.cryptoUtils=this.config.cryptoInterface,this.cacheManager=this.config.storageInterface,this.networkClient=this.config.networkInterface,this.serverTelemetryManager=this.config.serverTelemetryManager,this.authority=this.config.authOptions.authority,this.performanceClient=t}createTokenRequestHeaders(e){const t={};if(t[St.CONTENT_TYPE]=k.URL_FORM_CONTENT_TYPE,!this.config.systemOptions.preventCorsPreflight&&e)switch(e.type){case $t.HOME_ACCOUNT_ID:try{const r=io(e.credential);t[St.CCS_HEADER]=`Oid:${r.uid}@${r.utid}`}catch(r){this.logger.verbose("Could not parse home account ID for CCS Header: "+r)}break;case $t.UPN:t[St.CCS_HEADER]=`UPN: ${e.credential}`;break}return t}async executePostToTokenEndpoint(e,t,r,o,i,s){var c;s&&((c=this.performanceClient)==null||c.addQueueMeasurement(s,i));const a=await this.sendPostRequest(o,e,{body:t,headers:r},i);return this.config.serverTelemetryManager&&a.status<500&&a.status!==429&&this.config.serverTelemetryManager.clearTelemetryCache(),a}async sendPostRequest(e,t,r,o){var s,a,c;En.preProcess(this.cacheManager,e,o);let i;try{i=await $(this.networkClient.sendPostRequestAsync.bind(this.networkClient),b.NetworkClientSendPostRequestAsync,this.logger,this.performanceClient,o)(t,r);const l=i.headers||{};(a=this.performanceClient)==null||a.addFields({refreshTokenSize:((s=i.body.refresh_token)==null?void 0:s.length)||0,httpVerToken:l[St.X_MS_HTTP_VERSION]||"",requestId:l[St.X_MS_REQUEST_ID]||""},o)}catch(l){if(l instanceof ta){const u=l.responseHeaders;throw u&&((c=this.performanceClient)==null||c.addFields({httpVerToken:u[St.X_MS_HTTP_VERSION]||"",requestId:u[St.X_MS_REQUEST_ID]||"",contentTypeHeader:u[St.CONTENT_TYPE]||void 0,contentLengthHeader:u[St.CONTENT_LENGTH]||void 0,httpStatus:l.httpStatus},o)),l.error}throw l instanceof je?l:B(wg)}return En.postProcess(this.cacheManager,e,i,o),i}async updateAuthority(e,t){var i;(i=this.performanceClient)==null||i.addQueueMeasurement(b.UpdateTokenEndpointAuthority,t);const r=`https://${e}/${this.authority.tenant}/`,o=await sp(r,this.networkClient,this.cacheManager,this.authority.options,this.logger,t,this.performanceClient);this.authority=o}createTokenQueryParameters(e){const t=new ri(e.correlationId,this.performanceClient);return e.embeddedClientId&&t.addBrokerParameters({brokerClientId:this.config.authOptions.clientId,brokerRedirectUri:this.config.authOptions.redirectUri}),e.tokenQueryParameters&&t.addExtraQueryParameters(e.tokenQueryParameters),t.addCorrelationId(e.correlationId),t.createQueryString()}}/*! @azure/msal-common v14.16.1 2025-08-05 */const Es="no_tokens_found",ap="native_account_unavailable",Il="refresh_token_expired",ZE="interaction_required",eb="consent_required",tb="login_required",na="bad_token";/*! @azure/msal-common v14.16.1 2025-08-05 */const Od=[ZE,eb,tb,na],nb=["message_only","additional_action","basic_action","user_password_expired","consent_required","bad_token"],rb={[Es]:"No refresh token found in the cache. Please sign-in.",[ap]:"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.",[Il]:"Refresh token has expired.",[na]:"Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve."};class ln extends je{constructor(e,t,r,o,i,s,a,c){super(e,t,r),Object.setPrototypeOf(this,ln.prototype),this.timestamp=o||k.EMPTY_STRING,this.traceId=i||k.EMPTY_STRING,this.correlationId=s||k.EMPTY_STRING,this.claims=a||k.EMPTY_STRING,this.name="InteractionRequiredAuthError",this.errorNo=c}}function Pd(n,e,t){const r=!!n&&Od.indexOf(n)>-1,o=!!t&&nb.indexOf(t)>-1,i=!!e&&Od.some(s=>e.indexOf(s)>-1);return r||i||o}function yc(n){return new ln(n,rb[n])}/*! @azure/msal-common v14.16.1 2025-08-05 */class sn{static setRequestState(e,t,r){const o=sn.generateLibraryState(e,r);return t?`${o}${k.RESOURCE_DELIM}${t}`:o}static generateLibraryState(e,t){if(!e)throw B(hc);const r={id:e.createNewGuid()};t&&(r.meta=t);const o=JSON.stringify(r);return e.base64Encode(o)}static parseRequestState(e,t){if(!e)throw B(hc);if(!t)throw B(So);try{const r=t.split(k.RESOURCE_DELIM),o=r[0],i=r.length>1?r.slice(1).join(k.RESOURCE_DELIM):k.EMPTY_STRING,s=e.base64Decode(o),a=JSON.parse(s);return{userRequestState:i||k.EMPTY_STRING,libraryState:a}}catch{throw B(So)}}}/*! @azure/msal-common v14.16.1 2025-08-05 */const ob={SW:"sw"};class Ro{constructor(e,t){this.cryptoUtils=e,this.performanceClient=t}async generateCnf(e,t){var i;(i=this.performanceClient)==null||i.addQueueMeasurement(b.PopTokenGenerateCnf,e.correlationId);const r=await $(this.generateKid.bind(this),b.PopTokenGenerateCnf,t,this.performanceClient,e.correlationId)(e),o=this.cryptoUtils.base64UrlEncode(JSON.stringify(r));return{kid:r.kid,reqCnfString:o}}async generateKid(e){var r;return(r=this.performanceClient)==null||r.addQueueMeasurement(b.PopTokenGenerateKid,e.correlationId),{kid:await this.cryptoUtils.getPublicKeyThumbprint(e),xms_ksl:ob.SW}}async signPopToken(e,t,r){return this.signPayload(e,t,r)}async signPayload(e,t,r,o){const{resourceRequestMethod:i,resourceRequestUri:s,shrClaims:a,shrNonce:c,shrOptions:l}=r,u=s?new Se(s):void 0,d=u==null?void 0:u.getUrlComponents();return this.cryptoUtils.signJwt({at:e,ts:Rn(),m:i==null?void 0:i.toUpperCase(),u:d==null?void 0:d.HostNameAndPort,nonce:c||this.cryptoUtils.createNewGuid(),p:d==null?void 0:d.AbsolutePath,q:d!=null&&d.QueryString?[[],d.QueryString]:void 0,client_claims:a||void 0,...o},t,l,r.correlationId)}}/*! @azure/msal-common v14.16.1 2025-08-05 */class ib{constructor(e,t){this.cache=e,this.hasChanged=t}get cacheHasChanged(){return this.hasChanged}get tokenCache(){return this.cache}}/*! @azure/msal-common v14.16.1 2025-08-05 */function sb(n){var r,o;const e="code=",t=(r=n.error_uri)==null?void 0:r.lastIndexOf(e);return t&&t>=0?(o=n.error_uri)==null?void 0:o.substring(t+e.length):void 0}class Kr{constructor(e,t,r,o,i,s,a){this.clientId=e,this.cacheStorage=t,this.cryptoObj=r,this.logger=o,this.serializableCache=i,this.persistencePlugin=s,this.performanceClient=a}validateServerAuthorizationCodeResponse(e,t){if(!e.state||!t)throw e.state?B(ys,"Cached State"):B(ys,"Server State");let r,o;try{r=decodeURIComponent(e.state)}catch{throw B(So,e.state)}try{o=decodeURIComponent(t)}catch{throw B(So,e.state)}if(r!==o)throw B(bg);if(e.error||e.error_description||e.suberror){const i=sb(e);throw Pd(e.error,e.error_description,e.suberror)?new ln(e.error||"",e.error_description,e.suberror,e.timestamp||"",e.trace_id||"",e.correlation_id||"",e.claims||"",i):new yr(e.error||"",e.error_description,e.suberror,i)}}validateTokenResponse(e,t){var r;if(e.error||e.error_description||e.suberror){const o=`Error(s): ${e.error_codes||k.NOT_AVAILABLE} - Timestamp: ${e.timestamp||k.NOT_AVAILABLE} - Description: ${e.error_description||k.NOT_AVAILABLE} - Correlation ID: ${e.correlation_id||k.NOT_AVAILABLE} - Trace ID: ${e.trace_id||k.NOT_AVAILABLE}`,i=(r=e.error_codes)!=null&&r.length?e.error_codes[0]:void 0,s=new yr(e.error,o,e.suberror,i,e.status);if(t&&e.status&&e.status>=ji.SERVER_ERROR_RANGE_START&&e.status<=ji.SERVER_ERROR_RANGE_END){this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently unavailable and the access token is unable to be refreshed. +${s}`);return}else if(t&&e.status&&e.status>=ji.CLIENT_ERROR_RANGE_START&&e.status<=ji.CLIENT_ERROR_RANGE_END){this.logger.warning(`executeTokenRequest:validateTokenResponse - AAD is currently available but is unable to refresh the access token. +${s}`);return}throw Pd(e.error,e.error_description,e.suberror)?new ln(e.error,e.error_description,e.suberror,e.timestamp||k.EMPTY_STRING,e.trace_id||k.EMPTY_STRING,e.correlation_id||k.EMPTY_STRING,e.claims||k.EMPTY_STRING,i):s}}async handleServerTokenResponse(e,t,r,o,i,s,a,c,l){var C;(C=this.performanceClient)==null||C.addQueueMeasurement(b.HandleServerTokenResponse,e.correlation_id);let u;if(e.id_token){if(u=Gr(e.id_token||k.EMPTY_STRING,this.cryptoObj.base64Decode),i&&i.nonce&&u.nonce!==i.nonce)throw B(_g);if(o.maxAge||o.maxAge===0){const p=u.auth_time;if(!p)throw B(ll);Dg(p,o.maxAge)}}this.homeAccountIdentifier=ot.generateHomeAccountId(e.client_info||k.EMPTY_STRING,t.authorityType,this.logger,this.cryptoObj,u);let d;i&&i.state&&(d=sn.parseRequestState(this.cryptoObj,i.state)),e.key_id=e.key_id||o.sshKid||void 0;const h=this.generateCacheRecord(e,t,r,o,u,s,i);let f;try{if(this.persistencePlugin&&this.serializableCache&&(this.logger.verbose("Persistence enabled, calling beforeCacheAccess"),f=new ib(this.serializableCache,!0),await this.persistencePlugin.beforeCacheAccess(f)),a&&!c&&h.account){const p=h.account.generateAccountKey();if(!this.cacheStorage.getAccount(p,o.correlationId,this.logger))return this.logger.warning("Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"),await Kr.generateAuthenticationResult(this.cryptoObj,t,h,!1,o,u,d,void 0,l)}await this.cacheStorage.saveCacheRecord(h,o.correlationId,o.storeInCache)}finally{this.persistencePlugin&&this.serializableCache&&f&&(this.logger.verbose("Persistence enabled, calling afterCacheAccess"),await this.persistencePlugin.afterCacheAccess(f))}return Kr.generateAuthenticationResult(this.cryptoObj,t,h,!1,o,u,d,e,l)}generateCacheRecord(e,t,r,o,i,s,a){const c=t.getPreferredCache();if(!c)throw B(dl);const l=Xg(i);let u,d;e.id_token&&i&&(u=Js(this.homeAccountIdentifier,c,e.id_token,this.clientId,l||""),d=Rl(this.cacheStorage,t,this.homeAccountIdentifier,this.cryptoObj.base64Decode,o.correlationId,i,e.client_info,c,l,a,void 0,this.logger));let h=null;if(e.access_token){const p=e.scope?Je.fromString(e.scope):new Je(o.scopes||[]),v=(typeof e.expires_in=="string"?parseInt(e.expires_in,10):e.expires_in)||0,A=(typeof e.ext_expires_in=="string"?parseInt(e.ext_expires_in,10):e.ext_expires_in)||0,_=(typeof e.refresh_in=="string"?parseInt(e.refresh_in,10):e.refresh_in)||void 0,y=r+v,T=y+A,P=_&&_>0?r+_:void 0;h=Xs(this.homeAccountIdentifier,c,e.access_token,this.clientId,l||t.tenant||"",p.printScopes(),y,T,this.cryptoObj.base64Decode,P,e.token_type,s,e.key_id,o.claims,o.requestedClaimsHash)}let f=null;if(e.refresh_token){let p;if(e.refresh_token_expires_in){const v=typeof e.refresh_token_expires_in=="string"?parseInt(e.refresh_token_expires_in,10):e.refresh_token_expires_in;p=r+v}f=Ug(this.homeAccountIdentifier,c,e.refresh_token,this.clientId,e.foci,s,p)}let C=null;return e.foci&&(C={clientId:this.clientId,environment:c,familyId:e.foci}),{account:d,idToken:u,accessToken:h,refreshToken:f,appMetadata:C}}static async generateAuthenticationResult(e,t,r,o,i,s,a,c,l){var y,T,P,Q,q;let u=k.EMPTY_STRING,d=[],h=null,f,C,p=k.EMPTY_STRING;if(r.accessToken){if(r.accessToken.tokenType===Le.POP&&!i.popKid){const K=new Ro(e),{secret:S,keyId:x}=r.accessToken;if(!x)throw B(hl);u=await K.signPopToken(S,x,i)}else u=r.accessToken.secret;d=Je.fromString(r.accessToken.target).asArray(),h=new Date(Number(r.accessToken.expiresOn)*1e3),f=new Date(Number(r.accessToken.extendedExpiresOn)*1e3),r.accessToken.refreshOn&&(C=new Date(Number(r.accessToken.refreshOn)*1e3))}r.appMetadata&&(p=r.appMetadata.familyId===ti?ti:"");const v=(s==null?void 0:s.oid)||(s==null?void 0:s.sub)||"",A=(s==null?void 0:s.tid)||"";c!=null&&c.spa_accountid&&r.account&&(r.account.nativeAccountId=c==null?void 0:c.spa_accountid);const _=r.account?wl(r.account.getAccountInfo(),void 0,s,(y=r.idToken)==null?void 0:y.secret):null;return{authority:t.canonicalAuthority,uniqueId:v,tenantId:A,scopes:d,account:_,idToken:((T=r==null?void 0:r.idToken)==null?void 0:T.secret)||"",idTokenClaims:s||{},accessToken:u,fromCache:o,expiresOn:h,extExpiresOn:f,refreshOn:C,correlationId:i.correlationId,requestId:l||k.EMPTY_STRING,familyId:p,tokenType:((P=r.accessToken)==null?void 0:P.tokenType)||k.EMPTY_STRING,state:a?a.userRequestState:k.EMPTY_STRING,cloudGraphHostName:((Q=r.account)==null?void 0:Q.cloudGraphHostName)||k.EMPTY_STRING,msGraphHost:((q=r.account)==null?void 0:q.msGraphHost)||k.EMPTY_STRING,code:c==null?void 0:c.spa_code,fromNativeBroker:!1}}}function Rl(n,e,t,r,o,i,s,a,c,l,u,d){d==null||d.verbose("setCachedAccount called");const f=n.getAccountKeys().find(_=>_.startsWith(t));let C=null;f&&(C=n.getAccount(f,o,d));const p=C||ot.createAccount({homeAccountId:t,idTokenClaims:i,clientInfo:s,environment:a,cloudGraphHostName:l==null?void 0:l.cloud_graph_host_name,msGraphHost:l==null?void 0:l.msgraph_host,nativeAccountId:u},e,r),v=p.tenantProfiles||[],A=c||p.realm;if(A&&!v.find(_=>_.tenantId===A)){const _=Tl(t,p.localAccountId,A,i);v.push(_)}return p.tenantProfiles=v,p}/*! @azure/msal-common v14.16.1 2025-08-05 */async function cp(n,e,t){return typeof n=="string"?n:n({clientId:e,tokenEndpoint:t})}/*! @azure/msal-common v14.16.1 2025-08-05 */class lp extends Sl{constructor(e,t){var r;super(e,t),this.includeRedirectUri=!0,this.oidcDefaultScopes=(r=this.config.authOptions.authority.options.OIDCOptions)==null?void 0:r.defaultScopes}async getAuthCodeUrl(e){var r;(r=this.performanceClient)==null||r.addQueueMeasurement(b.GetAuthCodeUrl,e.correlationId);const t=await $(this.createAuthCodeUrlQueryString.bind(this),b.AuthClientCreateQueryString,this.logger,this.performanceClient,e.correlationId)(e);return Se.appendQueryString(this.authority.authorizationEndpoint,t)}async acquireToken(e,t){var a,c;if((a=this.performanceClient)==null||a.addQueueMeasurement(b.AuthClientAcquireToken,e.correlationId),!e.code)throw B(Rg);const r=Rn(),o=await $(this.executeTokenRequest.bind(this),b.AuthClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(this.authority,e),i=(c=o.headers)==null?void 0:c[St.X_MS_REQUEST_ID],s=new Kr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin,this.performanceClient);return s.validateTokenResponse(o.body),$(s.handleServerTokenResponse.bind(s),b.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(o.body,this.authority,r,e,t,void 0,void 0,void 0,i)}handleFragmentResponse(e,t){if(new Kr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,null,null).validateServerAuthorizationCodeResponse(e,t),!e.code)throw B(Mg);return e}getLogoutUri(e){if(!e)throw Ue($g);const t=this.createLogoutUrlQueryString(e);return Se.appendQueryString(this.authority.endSessionEndpoint,t)}async executeTokenRequest(e,t){var l,u;(l=this.performanceClient)==null||l.addQueueMeasurement(b.AuthClientExecuteTokenRequest,t.correlationId);const r=this.createTokenQueryParameters(t),o=Se.appendQueryString(e.tokenEndpoint,r),i=await $(this.createTokenRequestBody.bind(this),b.AuthClientCreateTokenRequestBody,this.logger,this.performanceClient,t.correlationId)(t);let s;if(t.clientInfo)try{const d=vs(t.clientInfo,this.cryptoUtils.base64Decode);s={credential:`${d.uid}${Ct.CLIENT_INFO_SEPARATOR}${d.utid}`,type:$t.HOME_ACCOUNT_ID}}catch(d){this.logger.verbose("Could not parse client info for CCS Header: "+d)}const a=this.createTokenRequestHeaders(s||t.ccsCredential),c={clientId:((u=t.tokenBodyParameters)==null?void 0:u.clientId)||this.config.authOptions.clientId,authority:e.canonicalAuthority,scopes:t.scopes,claims:t.claims,authenticationScheme:t.authenticationScheme,resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,sshKid:t.sshKid};return $(this.executePostToTokenEndpoint.bind(this),b.AuthorizationCodeClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,t.correlationId)(o,i,a,c,t.correlationId,b.AuthorizationCodeClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){var o,i;(o=this.performanceClient)==null||o.addQueueMeasurement(b.AuthClientCreateTokenRequestBody,e.correlationId);const t=new ri(e.correlationId,this.performanceClient);if(t.addClientId(e.embeddedClientId||((i=e.tokenBodyParameters)==null?void 0:i[Br])||this.config.authOptions.clientId),this.includeRedirectUri?t.addRedirectUri(e.redirectUri):Zr.validateRedirectUri(e.redirectUri),t.addScopes(e.scopes,!0,this.oidcDefaultScopes),t.addAuthorizationCode(e.code),t.addLibraryInfo(this.config.libraryInfo),t.addApplicationTelemetry(this.config.telemetry.application),t.addThrottling(),this.serverTelemetryManager&&!pc(this.config)&&t.addServerTelemetry(this.serverTelemetryManager),e.codeVerifier&&t.addCodeVerifier(e.codeVerifier),this.config.clientCredentials.clientSecret&&t.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const s=this.config.clientCredentials.clientAssertion;t.addClientAssertion(await cp(s.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),t.addClientAssertionType(s.assertionType)}if(t.addGrantType(yg.AUTHORIZATION_CODE_GRANT),t.addClientInfo(),e.authenticationScheme===Le.POP){const s=new Ro(this.cryptoUtils,this.performanceClient);let a;e.popKid?a=this.cryptoUtils.encodeKid(e.popKid):a=(await $(s.generateCnf.bind(s),b.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString,t.addPopToken(a)}else if(e.authenticationScheme===Le.SSH)if(e.sshJwk)t.addSshJwk(e.sshJwk);else throw Ue(Zs);(!on.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&t.addClaims(e.claims,this.config.authOptions.clientCapabilities);let r;if(e.clientInfo)try{const s=vs(e.clientInfo,this.cryptoUtils.base64Decode);r={credential:`${s.uid}${Ct.CLIENT_INFO_SEPARATOR}${s.utid}`,type:$t.HOME_ACCOUNT_ID}}catch(s){this.logger.verbose("Could not parse client info for CCS Header: "+s)}else r=e.ccsCredential;if(this.config.systemOptions.preventCorsPreflight&&r)switch(r.type){case $t.HOME_ACCOUNT_ID:try{const s=io(r.credential);t.addCcsOid(s)}catch(s){this.logger.verbose("Could not parse home account ID for CCS Header: "+s)}break;case $t.UPN:t.addCcsUpn(r.credential);break}return e.embeddedClientId&&t.addBrokerParameters({brokerClientId:this.config.authOptions.clientId,brokerRedirectUri:this.config.authOptions.redirectUri}),e.tokenBodyParameters&&t.addExtraQueryParameters(e.tokenBodyParameters),e.enableSpaAuthorizationCode&&(!e.tokenBodyParameters||!e.tokenBodyParameters[Rd])&&t.addExtraQueryParameters({[Rd]:"1"}),t.createQueryString()}async createAuthCodeUrlQueryString(e){var i,s;const t=e.correlationId||this.config.cryptoInterface.createNewGuid();(i=this.performanceClient)==null||i.addQueueMeasurement(b.AuthClientCreateQueryString,t);const r=new ri(t,this.performanceClient);r.addClientId(e.embeddedClientId||((s=e.extraQueryParameters)==null?void 0:s[Br])||this.config.authOptions.clientId);const o=[...e.scopes||[],...e.extraScopesToConsent||[]];if(r.addScopes(o,!0,this.oidcDefaultScopes),r.addRedirectUri(e.redirectUri),r.addCorrelationId(t),r.addResponseMode(e.responseMode),r.addResponseTypeCode(),r.addLibraryInfo(this.config.libraryInfo),pc(this.config)||r.addApplicationTelemetry(this.config.telemetry.application),r.addClientInfo(),e.codeChallenge&&e.codeChallengeMethod&&r.addCodeChallengeParams(e.codeChallenge,e.codeChallengeMethod),e.prompt&&r.addPrompt(e.prompt),e.domainHint&&r.addDomainHint(e.domainHint),e.prompt!==ct.SELECT_ACCOUNT)if(e.sid&&e.prompt===ct.NONE)this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from request"),r.addSid(e.sid);else if(e.account){const a=this.extractAccountSid(e.account);let c=this.extractLoginHint(e.account);if(c&&e.domainHint&&(this.logger.warning('AuthorizationCodeClient.createAuthCodeUrlQueryString: "domainHint" param is set, skipping opaque "login_hint" claim. Please consider not passing domainHint'),c=null),c){this.logger.verbose("createAuthCodeUrlQueryString: login_hint claim present on account"),r.addLoginHint(c);try{const l=io(e.account.homeAccountId);r.addCcsOid(l)}catch{this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(a&&e.prompt===ct.NONE){this.logger.verbose("createAuthCodeUrlQueryString: Prompt is none, adding sid from account"),r.addSid(a);try{const l=io(e.account.homeAccountId);r.addCcsOid(l)}catch{this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}else if(e.loginHint)this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from request"),r.addLoginHint(e.loginHint),r.addCcsUpn(e.loginHint);else if(e.account.username){this.logger.verbose("createAuthCodeUrlQueryString: Adding login_hint from account"),r.addLoginHint(e.account.username);try{const l=io(e.account.homeAccountId);r.addCcsOid(l)}catch{this.logger.verbose("createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header")}}}else e.loginHint&&(this.logger.verbose("createAuthCodeUrlQueryString: No account, adding login_hint from request"),r.addLoginHint(e.loginHint),r.addCcsUpn(e.loginHint));else this.logger.verbose("createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints");if(e.nonce&&r.addNonce(e.nonce),e.state&&r.addState(e.state),(e.claims||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&r.addClaims(e.claims,this.config.authOptions.clientCapabilities),e.embeddedClientId&&r.addBrokerParameters({brokerClientId:this.config.authOptions.clientId,brokerRedirectUri:this.config.authOptions.redirectUri}),this.addExtraQueryParams(e,r),e.nativeBroker&&(r.addNativeBroker(),e.authenticationScheme===Le.POP)){const a=new Ro(this.cryptoUtils);let c;e.popKid?c=this.cryptoUtils.encodeKid(e.popKid):c=(await $(a.generateCnf.bind(a),b.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString,r.addPopToken(c)}return r.createQueryString()}createLogoutUrlQueryString(e){const t=new ri(e.correlationId,this.performanceClient);return e.postLogoutRedirectUri&&t.addPostLogoutRedirectUri(e.postLogoutRedirectUri),e.correlationId&&t.addCorrelationId(e.correlationId),e.idTokenHint&&t.addIdTokenHint(e.idTokenHint),e.state&&t.addState(e.state),e.logoutHint&&t.addLogoutHint(e.logoutHint),this.addExtraQueryParams(e,t),t.createQueryString()}addExtraQueryParams(e,t){!(e.extraQueryParameters&&e.extraQueryParameters.hasOwnProperty("instance_aware"))&&this.config.authOptions.instanceAware&&(e.extraQueryParameters=e.extraQueryParameters||{},e.extraQueryParameters.instance_aware="true"),e.extraQueryParameters&&t.addExtraQueryParameters(e.extraQueryParameters)}extractAccountSid(e){var t;return((t=e.idTokenClaims)==null?void 0:t.sid)||null}extractLoginHint(e){var t;return((t=e.idTokenClaims)==null?void 0:t.login_hint)||null}}/*! @azure/msal-common v14.16.1 2025-08-05 */const ab=300;class Cc extends Sl{constructor(e,t){super(e,t)}async acquireToken(e){var s,a;(s=this.performanceClient)==null||s.addQueueMeasurement(b.RefreshTokenClientAcquireToken,e.correlationId);const t=Rn(),r=await $(this.executeTokenRequest.bind(this),b.RefreshTokenClientExecuteTokenRequest,this.logger,this.performanceClient,e.correlationId)(e,this.authority),o=(a=r.headers)==null?void 0:a[St.X_MS_REQUEST_ID],i=new Kr(this.config.authOptions.clientId,this.cacheManager,this.cryptoUtils,this.logger,this.config.serializableCache,this.config.persistencePlugin);return i.validateTokenResponse(r.body),$(i.handleServerTokenResponse.bind(i),b.HandleServerTokenResponse,this.logger,this.performanceClient,e.correlationId)(r.body,this.authority,t,e,void 0,void 0,!0,e.forceCache,o)}async acquireTokenByRefreshToken(e){var r;if(!e)throw Ue(jg);if((r=this.performanceClient)==null||r.addQueueMeasurement(b.RefreshTokenClientAcquireTokenByRefreshToken,e.correlationId),!e.account)throw B(ul);if(this.cacheManager.isAppMetadataFOCI(e.account.environment))try{return await $(this.acquireTokenWithCachedRefreshToken.bind(this),b.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!0)}catch(o){const i=o instanceof ln&&o.errorCode===Es,s=o instanceof yr&&o.errorCode===gd.INVALID_GRANT_ERROR&&o.subError===gd.CLIENT_MISMATCH_ERROR;if(i||s)return $(this.acquireTokenWithCachedRefreshToken.bind(this),b.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1);throw o}return $(this.acquireTokenWithCachedRefreshToken.bind(this),b.RefreshTokenClientAcquireTokenWithCachedRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,!1)}async acquireTokenWithCachedRefreshToken(e,t){var i;(i=this.performanceClient)==null||i.addQueueMeasurement(b.RefreshTokenClientAcquireTokenWithCachedRefreshToken,e.correlationId);const r=Vr(this.cacheManager.getRefreshToken.bind(this.cacheManager),b.CacheManagerGetRefreshToken,this.logger,this.performanceClient,e.correlationId)(e.account,t,e.correlationId,void 0,this.performanceClient);if(!r)throw yc(Es);if(r.expiresOn&&gc(r.expiresOn,e.refreshTokenExpirationOffsetSeconds||ab))throw yc(Il);const o={...e,refreshToken:r.secret,authenticationScheme:e.authenticationScheme||Le.BEARER,ccsCredential:{credential:e.account.homeAccountId,type:$t.HOME_ACCOUNT_ID}};try{return await $(this.acquireToken.bind(this),b.RefreshTokenClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(o)}catch(s){if(s instanceof ln&&s.subError===na){this.logger.verbose("acquireTokenWithRefreshToken: bad refresh token, removing from cache");const a=oo(r);this.cacheManager.removeRefreshToken(a,e.correlationId)}throw s}}async executeTokenRequest(e,t){var c,l;(c=this.performanceClient)==null||c.addQueueMeasurement(b.RefreshTokenClientExecuteTokenRequest,e.correlationId);const r=this.createTokenQueryParameters(e),o=Se.appendQueryString(t.tokenEndpoint,r),i=await $(this.createTokenRequestBody.bind(this),b.RefreshTokenClientCreateTokenRequestBody,this.logger,this.performanceClient,e.correlationId)(e),s=this.createTokenRequestHeaders(e.ccsCredential),a={clientId:((l=e.tokenBodyParameters)==null?void 0:l.clientId)||this.config.authOptions.clientId,authority:t.canonicalAuthority,scopes:e.scopes,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid};return $(this.executePostToTokenEndpoint.bind(this),b.RefreshTokenClientExecutePostToTokenEndpoint,this.logger,this.performanceClient,e.correlationId)(o,i,s,a,e.correlationId,b.RefreshTokenClientExecutePostToTokenEndpoint)}async createTokenRequestBody(e){var o,i,s;(o=this.performanceClient)==null||o.addQueueMeasurement(b.RefreshTokenClientCreateTokenRequestBody,e.correlationId);const t=e.correlationId,r=new ri(t,this.performanceClient);if(r.addClientId(e.embeddedClientId||((i=e.tokenBodyParameters)==null?void 0:i[Br])||this.config.authOptions.clientId),e.redirectUri&&r.addRedirectUri(e.redirectUri),r.addScopes(e.scopes,!0,(s=this.config.authOptions.authority.options.OIDCOptions)==null?void 0:s.defaultScopes),r.addGrantType(yg.REFRESH_TOKEN_GRANT),r.addClientInfo(),r.addLibraryInfo(this.config.libraryInfo),r.addApplicationTelemetry(this.config.telemetry.application),r.addThrottling(),this.serverTelemetryManager&&!pc(this.config)&&r.addServerTelemetry(this.serverTelemetryManager),r.addRefreshToken(e.refreshToken),this.config.clientCredentials.clientSecret&&r.addClientSecret(this.config.clientCredentials.clientSecret),this.config.clientCredentials.clientAssertion){const a=this.config.clientCredentials.clientAssertion;r.addClientAssertion(await cp(a.assertion,this.config.authOptions.clientId,e.resourceRequestUri)),r.addClientAssertionType(a.assertionType)}if(e.authenticationScheme===Le.POP){const a=new Ro(this.cryptoUtils,this.performanceClient);let c;e.popKid?c=this.cryptoUtils.encodeKid(e.popKid):c=(await $(a.generateCnf.bind(a),b.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(e,this.logger)).reqCnfString,r.addPopToken(c)}else if(e.authenticationScheme===Le.SSH)if(e.sshJwk)r.addSshJwk(e.sshJwk);else throw Ue(Zs);if((!on.isEmptyObj(e.claims)||this.config.authOptions.clientCapabilities&&this.config.authOptions.clientCapabilities.length>0)&&r.addClaims(e.claims,this.config.authOptions.clientCapabilities),this.config.systemOptions.preventCorsPreflight&&e.ccsCredential)switch(e.ccsCredential.type){case $t.HOME_ACCOUNT_ID:try{const a=io(e.ccsCredential.credential);r.addCcsOid(a)}catch(a){this.logger.verbose("Could not parse home account ID for CCS Header: "+a)}break;case $t.UPN:r.addCcsUpn(e.ccsCredential.credential);break}return e.embeddedClientId&&r.addBrokerParameters({brokerClientId:this.config.authOptions.clientId,brokerRedirectUri:this.config.authOptions.redirectUri}),e.tokenBodyParameters&&r.addExtraQueryParameters(e.tokenBodyParameters),r.createQueryString()}}/*! @azure/msal-common v14.16.1 2025-08-05 */class cb extends Sl{constructor(e,t){super(e,t)}async acquireToken(e){var t;try{const[r,o]=await this.acquireCachedToken({...e,scopes:(t=e.scopes)!=null&&t.length?e.scopes:[...xo]});return o===nr.PROACTIVELY_REFRESHED&&(this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed."),new Cc(this.config,this.performanceClient).acquireTokenByRefreshToken(e).catch(()=>{})),r}catch(r){if(r instanceof Ys&&r.errorCode===Kn)return new Cc(this.config,this.performanceClient).acquireTokenByRefreshToken(e);throw r}}async acquireCachedToken(e){var c;(c=this.performanceClient)==null||c.addQueueMeasurement(b.SilentFlowClientAcquireCachedToken,e.correlationId);let t=nr.NOT_APPLICABLE;if(e.forceRefresh||!this.config.cacheOptions.claimsBasedCachingEnabled&&!on.isEmptyObj(e.claims))throw this.setCacheOutcome(nr.FORCE_REFRESH_OR_CLAIMS,e.correlationId),B(Kn);if(!e.account)throw B(ul);const r=e.account.tenantId||JE(e.authority),o=this.cacheManager.getTokenKeys(),i=this.cacheManager.getAccessToken(e.account,e,o,r,this.performanceClient);if(i){if(UA(i.cachedAt)||gc(i.expiresOn,this.config.systemOptions.tokenRenewalOffsetSeconds))throw this.setCacheOutcome(nr.CACHED_ACCESS_TOKEN_EXPIRED,e.correlationId),B(Kn);i.refreshOn&&gc(i.refreshOn,0)&&(t=nr.PROACTIVELY_REFRESHED)}else throw this.setCacheOutcome(nr.NO_CACHED_ACCESS_TOKEN,e.correlationId),B(Kn);const s=e.authority||this.authority.getPreferredCache(),a={account:this.cacheManager.readAccountFromCache(e.account,e.correlationId),accessToken:i,idToken:this.cacheManager.getIdToken(e.account,e.correlationId,o,r,this.performanceClient),refreshToken:null,appMetadata:this.cacheManager.readAppMetadataFromCache(s)};return this.setCacheOutcome(t,e.correlationId),this.config.serverTelemetryManager&&this.config.serverTelemetryManager.incrementCacheHits(),[await $(this.generateResultFromCacheRecord.bind(this),b.SilentFlowClientGenerateResultFromCacheRecord,this.logger,this.performanceClient,e.correlationId)(a,e),t]}setCacheOutcome(e,t){var r,o;(r=this.serverTelemetryManager)==null||r.setCacheOutcome(e),(o=this.performanceClient)==null||o.addFields({cacheOutcome:e},t),e!==nr.NOT_APPLICABLE&&this.logger.info(`Token refresh is required due to cache outcome: ${e}`)}async generateResultFromCacheRecord(e,t){var o;(o=this.performanceClient)==null||o.addQueueMeasurement(b.SilentFlowClientGenerateResultFromCacheRecord,t.correlationId);let r;if(e.idToken&&(r=Gr(e.idToken.secret,this.config.cryptoInterface.base64Decode)),t.maxAge||t.maxAge===0){const i=r==null?void 0:r.auth_time;if(!i)throw B(ll);Dg(i,t.maxAge)}return Kr.generateAuthenticationResult(this.cryptoUtils,this.authority,e,!0,t,r)}}/*! @azure/msal-common v14.16.1 2025-08-05 */const lb={sendGetRequestAsync:()=>Promise.reject(B(Ce)),sendPostRequestAsync:()=>Promise.reject(B(Ce))};/*! @azure/msal-common v14.16.1 2025-08-05 */const Nd=",",up="|";function ub(n){const{skus:e,libraryName:t,libraryVersion:r,extensionName:o,extensionVersion:i}=n,s=new Map([[0,[t,r]],[2,[o,i]]]);let a=[];if(e!=null&&e.length){if(a=e.split(Nd),a.length<4)return e}else a=Array.from({length:4},()=>up);return s.forEach((c,l)=>{var u,d;c.length===2&&((u=c[0])!=null&&u.length)&&((d=c[1])!=null&&d.length)&&db({skuArr:a,index:l,skuName:c[0],skuVersion:c[1]})}),a.join(Nd)}function db(n){const{skuArr:e,index:t,skuName:r,skuVersion:o}=n;t>=e.length||(e[t]=[r,o].join(up))}class yi{constructor(e,t){this.cacheOutcome=nr.NOT_APPLICABLE,this.cacheManager=t,this.apiId=e.apiId,this.correlationId=e.correlationId,this.wrapperSKU=e.wrapperSKU||k.EMPTY_STRING,this.wrapperVer=e.wrapperVer||k.EMPTY_STRING,this.telemetryCacheKey=dt.CACHE_KEY+Ct.CACHE_KEY_SEPARATOR+e.clientId}generateCurrentRequestHeaderValue(){const e=`${this.apiId}${dt.VALUE_SEPARATOR}${this.cacheOutcome}`,t=[this.wrapperSKU,this.wrapperVer],r=this.getNativeBrokerErrorCode();r!=null&&r.length&&t.push(`broker_error=${r}`);const o=t.join(dt.VALUE_SEPARATOR),i=this.getRegionDiscoveryFields(),s=[e,i].join(dt.VALUE_SEPARATOR);return[dt.SCHEMA_VERSION,s,o].join(dt.CATEGORY_SEPARATOR)}generateLastRequestHeaderValue(){const e=this.getLastRequests(),t=yi.maxErrorsToSend(e),r=e.failedRequests.slice(0,2*t).join(dt.VALUE_SEPARATOR),o=e.errors.slice(0,t).join(dt.VALUE_SEPARATOR),i=e.errors.length,s=t=dt.MAX_CACHED_ERRORS&&(t.failedRequests.shift(),t.failedRequests.shift(),t.errors.shift()),t.failedRequests.push(this.apiId,this.correlationId),e instanceof Error&&e&&e.toString()?e instanceof je?e.subError?t.errors.push(e.subError):e.errorCode?t.errors.push(e.errorCode):t.errors.push(e.toString()):t.errors.push(e.toString()):t.errors.push(dt.UNKNOWN_ERROR),this.cacheManager.setServerTelemetry(this.telemetryCacheKey,t,this.correlationId)}incrementCacheHits(){const e=this.getLastRequests();return e.cacheHits+=1,this.cacheManager.setServerTelemetry(this.telemetryCacheKey,e,this.correlationId),e.cacheHits}getLastRequests(){const e={failedRequests:[],errors:[],cacheHits:0};return this.cacheManager.getServerTelemetry(this.telemetryCacheKey)||e}clearTelemetryCache(){const e=this.getLastRequests(),t=yi.maxErrorsToSend(e),r=e.errors.length;if(t===r)this.cacheManager.removeItem(this.telemetryCacheKey,this.correlationId);else{const o={failedRequests:e.failedRequests.slice(t*2),errors:e.errors.slice(t),cacheHits:0};this.cacheManager.setServerTelemetry(this.telemetryCacheKey,o,this.correlationId)}}static maxErrorsToSend(e){let t,r=0,o=0;const i=e.errors.length;for(t=0;tnull,discard:()=>{},add:()=>{},increment:()=>{},event:{eventId:this.generateId(),status:YE.InProgress,authority:"",libraryName:"",libraryVersion:"",clientId:"",name:e,startTimeMs:Date.now(),correlationId:t||""},measurement:new xd}}startPerformanceMeasurement(){return new xd}calculateQueuedTime(){return 0}addQueueMeasurement(){}setPreQueueTime(){}endMeasurement(){return null}discardMeasurements(){}removePerformanceCallback(){return!0}addPerformanceCallback(){return""}emitEvents(){}addFields(){}incrementFields(){}cacheEventByCorrelationId(){}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const Pl="pkce_not_created",vc="crypto_nonexistent",ra="empty_navigate_uri",fp="hash_empty_error",Nl="no_state_in_hash",gp="hash_does_not_contain_known_properties",pp="unable_to_parse_state",mp="state_interaction_type_mismatch",yp="interaction_in_progress",Cp="popup_window_error",vp="empty_window_error",qr="user_cancelled",gb="monitor_popup_timeout",Tp="monitor_window_timeout",wp="redirect_in_iframe",Ap="block_iframe_reload",Ep="block_nested_popups",pb="iframe_closed_prematurely",oa="silent_logout_unsupported",bp="no_account_error",mb="silent_prompt_value_error",_p="no_token_request_cache_error",Sp="unable_to_parse_token_request_cache_error",Ml="no_cached_authority_error",yb="auth_request_not_set_error",Cb="invalid_cache_type",ia="non_browser_environment",eo="database_not_open",bs="no_network_connectivity",Ip="post_request_failed",Rp="get_request_failed",Tc="failed_to_parse_response",kp="unable_to_load_token",xl="crypto_key_not_found",Op="auth_code_required",Pp="auth_code_or_nativeAccountId_required",Np="spa_code_and_nativeAccountId_present",Ll="database_unavailable",Mp="unable_to_acquire_token_from_native_platform",xp="native_handshake_timeout",Lp="native_extension_not_installed",Mi="native_connection_not_established",Dp="uninitialized_public_client_application",Up="native_prompt_not_supported",Hp="invalid_base64_string",Fp="invalid_pop_token_request",Bp="failed_to_build_headers",Kp="failed_to_parse_headers";/*! @azure/msal-browser v3.30.0 2025-08-05 */const Nn="For more visit: aka.ms/msaljs/browser-errors",vb={[Pl]:"The PKCE code challenge and verifier could not be generated.",[vc]:"The crypto object or function is not available.",[ra]:"Navigation URI is empty. Please check stack trace for more info.",[fp]:`Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. ${Nn}`,[Nl]:"Hash does not contain state. Please verify that the request originated from msal.",[gp]:`Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. ${Nn}`,[pp]:"Unable to parse state. Please verify that the request originated from msal.",[mp]:"Hash contains state but the interaction type does not match the caller.",[yp]:`Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. ${Nn}`,[Cp]:"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.",[vp]:"window.open returned null or undefined window object.",[qr]:"User cancelled the flow.",[gb]:`Token acquisition in popup failed due to timeout. ${Nn}`,[Tp]:`Token acquisition in iframe failed due to timeout. ${Nn}`,[wp]:"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.",[Ap]:`Request was blocked inside an iframe because MSAL detected an authentication response. ${Nn}`,[Ep]:"Request was blocked inside a popup because MSAL detected it was running in a popup.",[pb]:"The iframe being monitored was closed prematurely.",[oa]:"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.",[bp]:"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.",[mb]:"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.",[_p]:"No token request found in cache.",[Sp]:"The cached token request could not be parsed.",[Ml]:"No cached authority found.",[yb]:"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler",[Cb]:"Invalid cache type",[ia]:"Login and token requests are not supported in non-browser environments.",[eo]:"Database is not open!",[bs]:"No network connectivity. Check your internet connection.",[Ip]:"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'",[Rp]:"Network request failed. Please check the network trace to determine root cause.",[Tc]:"Failed to parse network response. Check network trace.",[kp]:"Error loading token to cache.",[xl]:"Cryptographic Key or Keypair not found in browser storage.",[Op]:"An authorization code must be provided (as the `code` property on the request) to this flow.",[Pp]:"An authorization code or nativeAccountId must be provided to this flow.",[Np]:"Request cannot contain both spa code and native account id.",[Ll]:"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.",[Mp]:`Unable to acquire token from native platform. ${Nn}`,[xp]:"Timed out while attempting to establish connection to browser extension",[Lp]:"Native extension is not installed. If you think this is a mistake call the initialize function.",[Mi]:`Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). ${Nn}`,[Dp]:`You must call and await the initialize function before attempting to call any other MSAL API. ${Nn}`,[Up]:"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.",[Hp]:"Invalid base64 encoded string.",[Fp]:"Invalid PoP token request. The request should not have both a popKid value and signPopToken set to true.",[Bp]:"Failed to build request headers object.",[Kp]:"Failed to parse response headers"};class xi extends je{constructor(e,t){super(e,vb[e],t),Object.setPrototypeOf(this,xi.prototype),this.name="BrowserAuthError"}}function J(n,e){return new xi(n,e)}/*! @azure/msal-browser v3.30.0 2025-08-05 */const qt={INVALID_GRANT_ERROR:"invalid_grant",POPUP_WIDTH:483,POPUP_HEIGHT:600,POPUP_NAME_PREFIX:"msal",DEFAULT_POLL_INTERVAL_MS:30,MSAL_SKU:"msal.js.browser"},so={CHANNEL_ID:"53ee284d-920a-4b59-9d30-a60315b26836",PREFERRED_EXTENSION_ID:"ppnbnpeolgkicgegkbkbjmhlideopiji",MATS_TELEMETRY:"MATS"},Ir={HandshakeRequest:"Handshake",HandshakeResponse:"HandshakeResponse",GetToken:"GetToken",Response:"Response"},Nt={LocalStorage:"localStorage",SessionStorage:"sessionStorage",MemoryStorage:"memoryStorage"},Ld={GET:"GET",POST:"POST"},xe={AUTHORITY:"authority",ACQUIRE_TOKEN_ACCOUNT:"acquireToken.account",SESSION_STATE:"session.state",REQUEST_STATE:"request.state",NONCE_IDTOKEN:"nonce.id_token",ORIGIN_URI:"request.origin",RENEW_STATUS:"token.renew.status",URL_HASH:"urlHash",REQUEST_PARAMS:"request.params",SCOPES:"scopes",INTERACTION_STATUS_KEY:"interaction.status",CCS_CREDENTIAL:"ccs.credential",CORRELATION_ID:"request.correlationId",NATIVE_REQUEST:"request.native",REDIRECT_CONTEXT:"request.redirect.context"},Wt={ACCOUNT_KEYS:"msal.account.keys",TOKEN_KEYS:"msal.token.keys",VERSION:"msal.version"},Qi={WRAPPER_SKU:"wrapper.sku",WRAPPER_VER:"wrapper.version"},qe={acquireTokenRedirect:861,acquireTokenPopup:862,ssoSilent:863,acquireTokenSilent_authCode:864,handleRedirectPromise:865,acquireTokenByCode:866,acquireTokenSilent_silentFlow:61,logout:961,logoutPopup:962};var ne;(function(n){n.Redirect="redirect",n.Popup="popup",n.Silent="silent",n.None="none"})(ne||(ne={}));const Dd={scopes:xo},qp="jwk",wc="msal.db",Tb=1,wb=`${wc}.keys`,Ht={Default:0,AccessToken:1,AccessTokenAndRefreshToken:2,RefreshToken:3,RefreshTokenAndNetwork:4,Skip:5},Ab=[Ht.Default,Ht.Skip,Ht.RefreshTokenAndNetwork],Eb="msal.browser.log.level",bb="msal.browser.log.pii";/*! @azure/msal-browser v3.30.0 2025-08-05 */function Wi(n){return encodeURIComponent(Dl(n).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"))}function sa(n){return jp(n).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Dl(n){return jp(new TextEncoder().encode(n))}function jp(n){const e=Array.from(n,t=>String.fromCodePoint(t)).join("");return btoa(e)}/*! @azure/msal-browser v3.30.0 2025-08-05 */const _b="RSASSA-PKCS1-v1_5",$p="SHA-256",Sb=2048,Ib=new Uint8Array([1,0,1]),Ud="0123456789abcdef",Hd=new Uint32Array(1),Rb="crypto_subtle_undefined",Ul={name:_b,hash:$p,modulusLength:Sb,publicExponent:Ib};function kb(n){if(!window)throw J(ia);if(!window.crypto)throw J(vc);if(!n&&!window.crypto.subtle)throw J(vc,Rb)}async function Gp(n,e,t){e==null||e.addQueueMeasurement(b.Sha256Digest,t);const o=new TextEncoder().encode(n);return window.crypto.subtle.digest($p,o)}function Ob(n){return window.crypto.getRandomValues(n)}function Na(){return window.crypto.getRandomValues(Hd),Hd[0]}function kn(){const n=Date.now(),e=Na()*1024+(Na()&1023),t=new Uint8Array(16),r=Math.trunc(e/2**30),o=e&2**30-1,i=Na();t[0]=n/2**40,t[1]=n/2**32,t[2]=n/2**24,t[3]=n/2**16,t[4]=n/2**8,t[5]=n,t[6]=112|r>>>8,t[7]=r,t[8]=128|o>>>24,t[9]=o>>>16,t[10]=o>>>8,t[11]=o,t[12]=i>>>24,t[13]=i>>>16,t[14]=i>>>8,t[15]=i;let s="";for(let a=0;a>>4),s+=Ud.charAt(t[a]&15),(a===3||a===5||a===7||a===9)&&(s+="-");return s}async function Pb(n,e){return window.crypto.subtle.generateKey(Ul,n,e)}async function Ma(n){return window.crypto.subtle.exportKey(qp,n)}async function Nb(n,e,t){return window.crypto.subtle.importKey(qp,n,Ul,e,t)}async function Mb(n,e){return window.crypto.subtle.sign(Ul,n,e)}async function Vp(n){const e=await Gp(n),t=new Uint8Array(e);return sa(t)}/*! @azure/msal-browser v3.30.0 2025-08-05 */const Hl="storage_not_supported",xb="stubbed_public_client_application_called",zp="in_mem_redirect_unavailable";/*! @azure/msal-browser v3.30.0 2025-08-05 */const Lb={[Hl]:"Given storage configuration option was not supported.",[xb]:"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors",[zp]:"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true."};class Fl extends je{constructor(e,t){super(e,t),this.name="BrowserConfigurationAuthError",Object.setPrototypeOf(this,Fl.prototype)}}function Bl(n){return new Fl(n,Lb[n])}/*! @azure/msal-browser v3.30.0 2025-08-05 */function Db(n){n.location.hash="",typeof n.history.replaceState=="function"&&n.history.replaceState(null,"",`${n.location.origin}${n.location.pathname}${n.location.search}`)}function Ub(n){const e=n.split("#");e.shift(),window.location.hash=e.length>0?e.join("#"):""}function Kl(){return window.parent!==window}function Hb(){return typeof window<"u"&&!!window.opener&&window.opener!==window&&typeof window.name=="string"&&window.name.indexOf(`${qt.POPUP_NAME_PREFIX}.`)===0}function qn(){return typeof window<"u"&&window.location?window.location.href.split("?")[0].split("#")[0]:""}function Fb(){const e=new Se(window.location.href).getUrlComponents();return`${e.Protocol}//${e.HostNameAndPort}/`}function Bb(){if(Se.hashContainsKnownProperties(window.location.hash)&&Kl())throw J(Ap)}function Kb(n){if(Kl()&&!n)throw J(wp)}function qb(){if(Hb())throw J(Ep)}function Qp(){if(typeof window>"u")throw J(ia)}function Wp(n){if(!n)throw J(Dp)}function ql(n){Qp(),Bb(),qb(),Wp(n)}function Fd(n,e){if(ql(n),Kb(e.system.allowRedirectInIframe),e.cache.cacheLocation===Nt.MemoryStorage&&!e.cache.storeAuthStateInCookie)throw Bl(zp)}function Yp(n){const e=document.createElement("link");e.rel="preconnect",e.href=new URL(n).origin,e.crossOrigin="anonymous",document.head.appendChild(e),window.setTimeout(()=>{try{document.head.removeChild(e)}catch{}},1e4)}function jb(){return kn()}/*! @azure/msal-browser v3.30.0 2025-08-05 */class _s{navigateInternal(e,t){return _s.defaultNavigateWindow(e,t)}navigateExternal(e,t){return _s.defaultNavigateWindow(e,t)}static defaultNavigateWindow(e,t){return t.noHistory?window.location.replace(e):window.location.assign(e),new Promise(r=>{setTimeout(()=>{r(!0)},t.timeout)})}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class $b{async sendGetRequestAsync(e,t){let r,o={},i=0;const s=Bd(t);try{r=await fetch(e,{method:Ld.GET,headers:s})}catch{throw J(window.navigator.onLine?Rp:bs)}o=Kd(r.headers);try{return i=r.status,{headers:o,body:await r.json(),status:i}}catch{throw kd(J(Tc),i,o)}}async sendPostRequestAsync(e,t){const r=t&&t.body||"",o=Bd(t);let i,s=0,a={};try{i=await fetch(e,{method:Ld.POST,headers:o,body:r})}catch{throw J(window.navigator.onLine?Ip:bs)}a=Kd(i.headers);try{return s=i.status,{headers:a,body:await i.json(),status:s}}catch{throw kd(J(Tc),s,a)}}}function Bd(n){try{const e=new Headers;if(!(n&&n.headers))return e;const t=n.headers;return Object.entries(t).forEach(([r,o])=>{e.append(r,o)}),e}catch{throw J(Bp)}}function Kd(n){try{const e={};return n.forEach((t,r)=>{e[r]=t}),e}catch{throw J(Kp)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const Gb=6e4,Ac=1e4,Vb=3e4,zb=2e3;function Qb({auth:n,cache:e,system:t,telemetry:r},o){const i={clientId:k.EMPTY_STRING,authority:`${k.DEFAULT_AUTHORITY}`,knownAuthorities:[],cloudDiscoveryMetadata:k.EMPTY_STRING,authorityMetadata:k.EMPTY_STRING,redirectUri:typeof window<"u"?qn():"",postLogoutRedirectUri:k.EMPTY_STRING,navigateToLoginRequestUrl:!0,clientCapabilities:[],protocolMode:$n.AAD,OIDCOptions:{serverResponseType:Ni.FRAGMENT,defaultScopes:[k.OPENID_SCOPE,k.PROFILE_SCOPE,k.OFFLINE_ACCESS_SCOPE]},azureCloudOptions:{azureCloudInstance:gl.None,tenant:k.EMPTY_STRING},skipAuthorityMetadataCache:!1,supportsNestedAppAuth:!1,instanceAware:!1},s={cacheLocation:Nt.SessionStorage,temporaryCacheLocation:Nt.SessionStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!!(e&&e.cacheLocation===Nt.LocalStorage),claimsBasedCachingEnabled:!1},a={loggerCallback:()=>{},logLevel:$e.Info,piiLoggingEnabled:!1},l={...{...rp,loggerOptions:a,networkClient:o?new $b:lb,navigationClient:new _s,loadFrameTimeout:0,windowHashTimeout:(t==null?void 0:t.loadFrameTimeout)||Gb,iframeHashTimeout:(t==null?void 0:t.loadFrameTimeout)||Ac,navigateFrameWait:0,redirectNavigationTimeout:Vb,asyncPopups:!1,allowRedirectInIframe:!1,allowNativeBroker:!1,nativeBrokerHandshakeTimeout:(t==null?void 0:t.nativeBrokerHandshakeTimeout)||zb,pollIntervalMilliseconds:qt.DEFAULT_POLL_INTERVAL_MS},...t,loggerOptions:(t==null?void 0:t.loggerOptions)||a},u={application:{appName:k.EMPTY_STRING,appVersion:k.EMPTY_STRING},client:new fb};if((n==null?void 0:n.protocolMode)!==$n.OIDC&&(n!=null&&n.OIDCOptions)&&new mr(l.loggerOptions).warning(JSON.stringify(Ue(Wg))),n!=null&&n.protocolMode&&n.protocolMode!==$n.AAD&&(l!=null&&l.allowNativeBroker))throw Ue(Yg);return{auth:{...i,...n,OIDCOptions:{...i.OIDCOptions,...n==null?void 0:n.OIDCOptions}},cache:{...s,...e},system:l,telemetry:{...u,...r}}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const Wb="@azure/msal-browser",ko="3.30.0";/*! @azure/msal-browser v3.30.0 2025-08-05 */class jl{static loggerCallback(e,t){switch(e){case $e.Error:console.error(t);return;case $e.Info:console.info(t);return;case $e.Verbose:console.debug(t);return;case $e.Warning:console.warn(t);return;default:console.log(t);return}}constructor(e){var c;this.browserEnvironment=typeof window<"u",this.config=Qb(e,this.browserEnvironment);let t;try{t=window[Nt.SessionStorage]}catch{}const r=t==null?void 0:t.getItem(Eb),o=(c=t==null?void 0:t.getItem(bb))==null?void 0:c.toLowerCase(),i=o==="true"?!0:o==="false"?!1:void 0,s={...this.config.system.loggerOptions},a=r&&Object.keys($e).includes(r)?$e[r]:void 0;a&&(s.loggerCallback=jl.loggerCallback,s.logLevel=a),i!==void 0&&(s.piiLoggingEnabled=i),this.logger=new mr(s,Wb,ko),this.available=!1}getConfig(){return this.config}getLogger(){return this.logger}isAvailable(){return this.available}isBrowserEnvironment(){return this.browserEnvironment}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class jr extends jl{getModuleName(){return jr.MODULE_NAME}getId(){return jr.ID}async initialize(){return this.available=typeof window<"u",this.available}}jr.MODULE_NAME="";jr.ID="StandardOperatingContext";/*! @azure/msal-browser v3.30.0 2025-08-05 */function In(n){return new TextDecoder().decode(Yb(n))}function Yb(n){let e=n.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw J(Hp)}const t=atob(e);return Uint8Array.from(t,r=>r.codePointAt(0)||0)}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Jb{constructor(){this.dbName=wc,this.version=Tb,this.tableName=wb,this.dbOpen=!1}async open(){return new Promise((e,t)=>{const r=window.indexedDB.open(this.dbName,this.version);r.addEventListener("upgradeneeded",o=>{o.target.result.createObjectStore(this.tableName)}),r.addEventListener("success",o=>{const i=o;this.db=i.target.result,this.dbOpen=!0,e()}),r.addEventListener("error",()=>t(J(Ll)))})}closeConnection(){const e=this.db;e&&this.dbOpen&&(e.close(),this.dbOpen=!1)}async validateDbIsOpen(){if(!this.dbOpen)return this.open()}async getItem(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(J(eo));const s=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).get(e);s.addEventListener("success",a=>{const c=a;this.closeConnection(),t(c.target.result)}),s.addEventListener("error",a=>{this.closeConnection(),r(a)})})}async setItem(e,t){return await this.validateDbIsOpen(),new Promise((r,o)=>{if(!this.db)return o(J(eo));const a=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).put(t,e);a.addEventListener("success",()=>{this.closeConnection(),r()}),a.addEventListener("error",c=>{this.closeConnection(),o(c)})})}async removeItem(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(J(eo));const s=this.db.transaction([this.tableName],"readwrite").objectStore(this.tableName).delete(e);s.addEventListener("success",()=>{this.closeConnection(),t()}),s.addEventListener("error",a=>{this.closeConnection(),r(a)})})}async getKeys(){return await this.validateDbIsOpen(),new Promise((e,t)=>{if(!this.db)return t(J(eo));const i=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).getAllKeys();i.addEventListener("success",s=>{const a=s;this.closeConnection(),e(a.target.result)}),i.addEventListener("error",s=>{this.closeConnection(),t(s)})})}async containsKey(e){return await this.validateDbIsOpen(),new Promise((t,r)=>{if(!this.db)return r(J(eo));const s=this.db.transaction([this.tableName],"readonly").objectStore(this.tableName).count(e);s.addEventListener("success",a=>{const c=a;this.closeConnection(),t(c.target.result===1)}),s.addEventListener("error",a=>{this.closeConnection(),r(a)})})}async deleteDatabase(){return this.db&&this.dbOpen&&this.closeConnection(),new Promise((e,t)=>{const r=window.indexedDB.deleteDatabase(wc),o=setTimeout(()=>t(!1),200);r.addEventListener("success",()=>(clearTimeout(o),e(!0))),r.addEventListener("blocked",()=>(clearTimeout(o),e(!0))),r.addEventListener("error",()=>(clearTimeout(o),t(!1)))})}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Ec{constructor(){this.cache=new Map}getItem(e){return this.cache.get(e)||null}setItem(e,t){this.cache.set(e,t)}removeItem(e){this.cache.delete(e)}getKeys(){const e=[];return this.cache.forEach((t,r)=>{e.push(r)}),e}containsKey(e){return this.cache.has(e)}clear(){this.cache.clear()}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Xb{constructor(e){this.inMemoryCache=new Ec,this.indexedDBCache=new Jb,this.logger=e}handleDatabaseAccessError(e){if(e instanceof xi&&e.errorCode===Ll)this.logger.error("Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.");else throw e}async getItem(e){const t=this.inMemoryCache.getItem(e);if(!t)try{return this.logger.verbose("Queried item not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.getItem(e)}catch(r){this.handleDatabaseAccessError(r)}return t}async setItem(e,t){this.inMemoryCache.setItem(e,t);try{await this.indexedDBCache.setItem(e,t)}catch(r){this.handleDatabaseAccessError(r)}}async removeItem(e){this.inMemoryCache.removeItem(e);try{await this.indexedDBCache.removeItem(e)}catch(t){this.handleDatabaseAccessError(t)}}async getKeys(){const e=this.inMemoryCache.getKeys();if(e.length===0)try{return this.logger.verbose("In-memory cache is empty, now querying persistent storage."),await this.indexedDBCache.getKeys()}catch(t){this.handleDatabaseAccessError(t)}return e}async containsKey(e){const t=this.inMemoryCache.containsKey(e);if(!t)try{return this.logger.verbose("Key not found in in-memory cache, now querying persistent storage."),await this.indexedDBCache.containsKey(e)}catch(r){this.handleDatabaseAccessError(r)}return t}clearInMemory(){this.logger.verbose("Deleting in-memory keystore"),this.inMemoryCache.clear(),this.logger.verbose("In-memory keystore deleted")}async clearPersistent(){try{this.logger.verbose("Deleting persistent keystore");const e=await this.indexedDBCache.deleteDatabase();return e&&this.logger.verbose("Persistent keystore deleted"),e}catch(e){return this.handleDatabaseAccessError(e),!1}}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Oo{constructor(e,t,r){this.logger=e,kb(r??!1),this.cache=new Xb(this.logger),this.performanceClient=t}createNewGuid(){return kn()}base64Encode(e){return Dl(e)}base64Decode(e){return In(e)}base64UrlEncode(e){return Wi(e)}encodeKid(e){return this.base64UrlEncode(JSON.stringify({kid:e}))}async getPublicKeyThumbprint(e){var u;const t=(u=this.performanceClient)==null?void 0:u.startMeasurement(b.CryptoOptsGetPublicKeyThumbprint,e.correlationId),r=await Pb(Oo.EXTRACTABLE,Oo.POP_KEY_USAGES),o=await Ma(r.publicKey),i={e:o.e,kty:o.kty,n:o.n},s=qd(i),a=await this.hashString(s),c=await Ma(r.privateKey),l=await Nb(c,!1,["sign"]);return await this.cache.setItem(a,{privateKey:l,publicKey:r.publicKey,requestMethod:e.resourceRequestMethod,requestUri:e.resourceRequestUri}),t&&t.end({success:!0}),a}async removeTokenBindingKey(e){return await this.cache.removeItem(e),!await this.cache.containsKey(e)}async clearKeystore(){this.cache.clearInMemory();try{return await this.cache.clearPersistent(),!0}catch(e){return e instanceof Error?this.logger.error(`Clearing keystore failed with error: ${e.message}`):this.logger.error("Clearing keystore failed with unknown error"),!1}}async signJwt(e,t,r,o){var y;const i=(y=this.performanceClient)==null?void 0:y.startMeasurement(b.CryptoOptsSignJwt,o),s=await this.cache.getItem(t);if(!s)throw J(xl);const a=await Ma(s.publicKey),c=qd(a),l=Wi(JSON.stringify({kid:t})),u=Ol.getShrHeaderString({...r==null?void 0:r.header,alg:a.alg,kid:l}),d=Wi(u);e.cnf={jwk:JSON.parse(c)};const h=Wi(JSON.stringify(e)),f=`${d}.${h}`,p=new TextEncoder().encode(f),v=await Mb(s.privateKey,p),A=sa(new Uint8Array(v)),_=`${f}.${A}`;return i&&i.end({success:!0}),_}async hashString(e){return Vp(e)}}Oo.POP_KEY_USAGES=["sign","verify"];Oo.EXTRACTABLE=!0;function qd(n){return JSON.stringify(n,Object.keys(n).sort())}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Zb{constructor(){if(!window.localStorage)throw Bl(Hl)}getItem(e){return window.localStorage.getItem(e)}setItem(e,t){window.localStorage.setItem(e,t)}removeItem(e){window.localStorage.removeItem(e)}getKeys(){return Object.keys(window.localStorage)}containsKey(e){return window.localStorage.hasOwnProperty(e)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class e_{constructor(){if(!window.sessionStorage)throw Bl(Hl)}getItem(e){return window.sessionStorage.getItem(e)}setItem(e,t){window.sessionStorage.setItem(e,t)}removeItem(e){window.sessionStorage.removeItem(e)}getKeys(){return Object.keys(window.sessionStorage)}containsKey(e){return window.sessionStorage.hasOwnProperty(e)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */function Jp(n,e){if(!e)return null;try{return sn.parseRequestState(n,e).libraryState.meta}catch{throw B(So)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const t_=24*60*60*1e3;class n_{getItem(e){const t=`${encodeURIComponent(e)}`,r=document.cookie.split(";");for(let o=0;o{const o=decodeURIComponent(r).trim().split("=");t.push(o[0])}),t}containsKey(e){return this.getKeys().includes(e)}}function r_(n){const e=new Date;return new Date(e.getTime()+n*t_).toUTCString()}/*! @azure/msal-browser v3.30.0 2025-08-05 */class bc extends Io{constructor(e,t,r,o,i,s){super(e,r,o,i),this.cacheConfig=t,this.logger=o,this.internalStorage=new Ec,this.browserStorage=this.setupBrowserStorage(this.cacheConfig.cacheLocation),this.temporaryCacheStorage=this.setupBrowserStorage(this.cacheConfig.temporaryCacheLocation),this.cookieStorage=new n_,t.cacheMigrationEnabled&&(this.migrateCacheEntries(),this.createKeyMaps()),this.performanceClient=s}setupBrowserStorage(e){try{switch(e){case Nt.LocalStorage:return new Zb;case Nt.SessionStorage:return new e_;case Nt.MemoryStorage:default:break}}catch(t){this.logger.error(t)}return this.cacheConfig.cacheLocation=Nt.MemoryStorage,new Ec}migrateCacheEntries(){const e=this.browserStorage.getItem(Wt.VERSION);e&&this.logger.info(`MSAL.js was last initialized with version ${e}`),e!==ko&&this.browserStorage.setItem(Wt.VERSION,ko);const t=`${k.CACHE_PREFIX}.${st.ID_TOKEN}`,r=`${k.CACHE_PREFIX}.${st.CLIENT_INFO}`,o=`${k.CACHE_PREFIX}.${st.ERROR}`,i=`${k.CACHE_PREFIX}.${st.ERROR_DESC}`,s=this.browserStorage.getItem(t),a=this.browserStorage.getItem(r),c=this.browserStorage.getItem(o),l=this.browserStorage.getItem(i),u=[s,a,c,l];[st.ID_TOKEN,st.CLIENT_INFO,st.ERROR,st.ERROR_DESC].forEach((h,f)=>{const C=u[f];C&&this.setTemporaryCache(h,C,!0)})}createKeyMaps(){this.logger.trace("BrowserCacheManager - createKeyMaps called.");const e=this.cryptoImpl.createNewGuid(),t=this.getItem(Wt.ACCOUNT_KEYS),r=this.getItem(`${Wt.TOKEN_KEYS}.${this.clientId}`);if(t&&r){this.logger.verbose("BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.");return}this.browserStorage.getKeys().forEach(i=>{if(this.isCredentialKey(i)){const s=this.getItem(i);if(s){const a=this.validateAndParseJson(s);if(a&&a.hasOwnProperty("credentialType"))switch(a.credentialType){case de.ID_TOKEN:if(vd(a)){this.logger.trace("BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - idToken with key: ${i} found, saving key to token key map`);const c=a,l=this.updateCredentialCacheKey(i,c,e);this.addTokenKey(l,de.ID_TOKEN,e);return}else this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed idToken validation on key: ${i}`);break;case de.ACCESS_TOKEN:case de.ACCESS_TOKEN_WITH_AUTH_SCHEME:if(Cd(a)){this.logger.trace("BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - accessToken with key: ${i} found, saving key to token key map`);const c=a,l=this.updateCredentialCacheKey(i,c,e);this.addTokenKey(l,de.ACCESS_TOKEN,e);return}else this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed accessToken validation on key: ${i}`);break;case de.REFRESH_TOKEN:if(Td(a)){this.logger.trace("BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - refreshToken with key: ${i} found, saving key to token key map`);const c=a,l=this.updateCredentialCacheKey(i,c,e);this.addTokenKey(l,de.REFRESH_TOKEN,e);return}else this.logger.trace("BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping."),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: ${i}`);break}}}if(this.isAccountKey(i)){const s=this.getItem(i);if(s){const a=this.validateAndParseJson(s);a&&ot.isAccountEntity(a)&&(this.logger.trace("BrowserCacheManager:createKeyMaps - account found, saving key to account key map"),this.logger.tracePii(`BrowserCacheManager:createKeyMaps - account with key: ${i} found, saving key to account key map`),this.addAccountKeyToMap(i,e))}}})}validateAndParseJson(e){try{const t=JSON.parse(e);return t&&typeof t=="object"?t:null}catch{return null}}getItem(e){return this.browserStorage.getItem(e)}setItem(e,t,r){let o=[];for(let s=0;s<=20;s++)try{this.browserStorage.setItem(e,t),s>0&&this.removeAccessTokenKeys(o.slice(0,s),r);break}catch(a){const c=np(a);if(c.errorCode===El&&s<20){if(o.length||(e===`${Wt.TOKEN_KEYS}.${this.clientId}`?o=JSON.parse(t).accessToken:o=this.getTokenKeys().accessToken),o.length<=s)throw c;this.removeAccessToken(o[s],r,!1)}else throw c}}getAccount(e,t,r){this.logger.trace("BrowserCacheManager.getAccount called");const o=this.getCachedAccountEntity(e,t);return this.updateOutdatedCachedAccount(e,o,t,r)}getCachedAccountEntity(e,t){const r=this.getItem(e);if(!r)return this.removeAccountKeyFromMap(e,t),null;const o=this.validateAndParseJson(r);return!o||!ot.isAccountEntity(o)?null:Io.toObject(new ot,o)}setAccount(e,t){this.logger.trace("BrowserCacheManager.setAccount called");const r=e.generateAccountKey();e.lastUpdatedAt=Date.now().toString(),this.setItem(r,JSON.stringify(e),t),this.addAccountKeyToMap(r,t)}getAccountKeys(){this.logger.trace("BrowserCacheManager.getAccountKeys called");const e=this.getItem(Wt.ACCOUNT_KEYS);return e?JSON.parse(e):(this.logger.verbose("BrowserCacheManager.getAccountKeys - No account keys found"),[])}addAccountKeyToMap(e,t){this.logger.trace("BrowserCacheManager.addAccountKeyToMap called"),this.logger.tracePii(`BrowserCacheManager.addAccountKeyToMap called with key: ${e}`);const r=this.getAccountKeys();r.indexOf(e)===-1?(r.push(e),this.setItem(Wt.ACCOUNT_KEYS,JSON.stringify(r),t),this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key added")):this.logger.verbose("BrowserCacheManager.addAccountKeyToMap account key already exists in map")}removeAccountKeyFromMap(e,t){this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap called"),this.logger.tracePii(`BrowserCacheManager.removeAccountKeyFromMap called with key: ${e}`);const r=this.getAccountKeys(),o=r.indexOf(e);if(o>-1){if(r.splice(o,1),r.length===0){this.removeItem(Wt.ACCOUNT_KEYS);return}else this.setItem(Wt.ACCOUNT_KEYS,JSON.stringify(r),t);this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap account key removed")}else this.logger.trace("BrowserCacheManager.removeAccountKeyFromMap key not found in existing map")}async removeAccount(e,t){super.removeAccount(e,t),this.removeAccountKeyFromMap(e,t)}removeOutdatedAccount(e,t){this.removeItem(e),this.removeAccountKeyFromMap(e,t)}removeIdToken(e,t){super.removeIdToken(e,t),this.removeTokenKey(e,de.ID_TOKEN,t)}removeAccessToken(e,t,r=!0){var o;super.removeAccessToken(e,t),(o=this.performanceClient)==null||o.incrementFields({accessTokensRemoved:1},t),r&&this.removeTokenKey(e,de.ACCESS_TOKEN,t)}removeAccessTokenKeys(e,t){this.logger.trace("removeAccessTokenKey called");const r=this.getTokenKeys();let o=0;if(e.forEach(i=>{const s=r.accessToken.indexOf(i);s>-1&&(r.accessToken.splice(s,1),o++)}),o>0){this.logger.info(`removed ${o} accessToken keys from tokenKeys map`),this.setTokenKeys(r,t);return}}removeRefreshToken(e,t){super.removeRefreshToken(e,t),this.removeTokenKey(e,de.REFRESH_TOKEN,t)}getTokenKeys(){this.logger.trace("BrowserCacheManager.getTokenKeys called");const e=this.getItem(`${Wt.TOKEN_KEYS}.${this.clientId}`);if(e){const t=this.validateAndParseJson(e);if(t&&t.hasOwnProperty("idToken")&&t.hasOwnProperty("accessToken")&&t.hasOwnProperty("refreshToken"))return t;this.logger.error("BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.")}else this.logger.verbose("BrowserCacheManager.getTokenKeys - No token keys found");return{idToken:[],accessToken:[],refreshToken:[]}}setTokenKeys(e,t){if(e.idToken.length===0&&e.accessToken.length===0&&e.refreshToken.length===0){this.removeItem(`${Wt.TOKEN_KEYS}.${this.clientId}`);return}else this.setItem(`${Wt.TOKEN_KEYS}.${this.clientId}`,JSON.stringify(e),t)}addTokenKey(e,t,r){this.logger.trace("BrowserCacheManager addTokenKey called");const o=this.getTokenKeys();switch(t){case de.ID_TOKEN:o.idToken.indexOf(e)===-1&&(this.logger.info("BrowserCacheManager: addTokenKey - idToken added to map"),o.idToken.push(e));break;case de.ACCESS_TOKEN:const i=o.accessToken.indexOf(e);i!==-1&&o.accessToken.splice(i,1),this.logger.trace(`access token ${i===-1?"added to":"updated in"} map`),o.accessToken.push(e);break;case de.REFRESH_TOKEN:o.refreshToken.indexOf(e)===-1&&(this.logger.info("BrowserCacheManager: addTokenKey - refreshToken added to map"),o.refreshToken.push(e));break;default:throw this.logger.error(`BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: ${t}`),B(fc)}this.setTokenKeys(o,r)}removeTokenKey(e,t,r,o=this.getTokenKeys()){switch(this.logger.trace("BrowserCacheManager removeTokenKey called"),t){case de.ID_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: ${e} from map`);const i=o.idToken.indexOf(e);i>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - idToken removed from map"),o.idToken.splice(i,1)):this.logger.info("BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.");break;case de.ACCESS_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: ${e} from map`);const s=o.accessToken.indexOf(e);s>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - accessToken removed from map"),o.accessToken.splice(s,1)):this.logger.info("BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.");break;case de.REFRESH_TOKEN:this.logger.infoPii(`BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: ${e} from map`);const a=o.refreshToken.indexOf(e);a>-1?(this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken removed from map"),o.refreshToken.splice(a,1)):this.logger.info("BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.");break;default:throw this.logger.error(`BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: ${t}`),B(fc)}this.setTokenKeys(o,r)}getIdTokenCredential(e,t){const r=this.getItem(e);if(!r)return this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),this.removeIdToken(e,t),null;const o=this.validateAndParseJson(r);return!o||!vd(o)?(this.logger.trace("BrowserCacheManager.getIdTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getIdTokenCredential: cache hit"),o)}setIdTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setIdTokenCredential called");const r=oo(e);e.lastUpdatedAt=Date.now().toString(),this.setItem(r,JSON.stringify(e),t),this.addTokenKey(r,de.ID_TOKEN,t)}getAccessTokenCredential(e,t){const r=this.getItem(e);if(!r)return this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),this.removeTokenKey(e,de.ACCESS_TOKEN,t),null;const o=this.validateAndParseJson(r);return!o||!Cd(o)?(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getAccessTokenCredential: cache hit"),o)}setAccessTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setAccessTokenCredential called");const r=oo(e);e.lastUpdatedAt=Date.now().toString(),this.setItem(r,JSON.stringify(e),t),this.addTokenKey(r,de.ACCESS_TOKEN,t)}getRefreshTokenCredential(e,t){const r=this.getItem(e);if(!r)return this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),this.removeTokenKey(e,de.REFRESH_TOKEN,t),null;const o=this.validateAndParseJson(r);return!o||!Td(o)?(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getRefreshTokenCredential: cache hit"),o)}setRefreshTokenCredential(e,t){this.logger.trace("BrowserCacheManager.setRefreshTokenCredential called");const r=oo(e);e.lastUpdatedAt=Date.now().toString(),this.setItem(r,JSON.stringify(e),t),this.addTokenKey(r,de.REFRESH_TOKEN,t)}getAppMetadata(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return!r||!VA(e,r)?(this.logger.trace("BrowserCacheManager.getAppMetadata: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getAppMetadata: cache hit"),r)}setAppMetadata(e,t){this.logger.trace("BrowserCacheManager.setAppMetadata called");const r=GA(e);this.setItem(r,JSON.stringify(e),t)}getServerTelemetry(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null;const r=this.validateAndParseJson(t);return!r||!jA(e,r)?(this.logger.trace("BrowserCacheManager.getServerTelemetry: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getServerTelemetry: cache hit"),r)}setServerTelemetry(e,t,r){this.logger.trace("BrowserCacheManager.setServerTelemetry called"),this.setItem(e,JSON.stringify(t),r)}getAuthorityMetadata(e){const t=this.internalStorage.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getAuthorityMetadata: called, no cache hit"),null;const r=this.validateAndParseJson(t);return r&&zA(e,r)?(this.logger.trace("BrowserCacheManager.getAuthorityMetadata: cache hit"),r):null}getAuthorityMetadataKeys(){return this.internalStorage.getKeys().filter(t=>this.isAuthorityMetadata(t))}setWrapperMetadata(e,t){this.internalStorage.setItem(Qi.WRAPPER_SKU,e),this.internalStorage.setItem(Qi.WRAPPER_VER,t)}getWrapperMetadata(){const e=this.internalStorage.getItem(Qi.WRAPPER_SKU)||k.EMPTY_STRING,t=this.internalStorage.getItem(Qi.WRAPPER_VER)||k.EMPTY_STRING;return[e,t]}setAuthorityMetadata(e,t){this.logger.trace("BrowserCacheManager.setAuthorityMetadata called"),this.internalStorage.setItem(e,JSON.stringify(t))}getActiveAccount(e){const t=this.generateCacheKey(st.ACTIVE_ACCOUNT_FILTERS),r=this.getItem(t);if(!r){this.logger.trace("BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema");const i=this.generateCacheKey(st.ACTIVE_ACCOUNT),s=this.getItem(i);if(!s)return this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null;const a=this.getAccountInfoFilteredBy({localAccountId:s},e);return a?(this.logger.trace("BrowserCacheManager.getActiveAccount: Legacy active account cache schema found"),this.logger.trace("BrowserCacheManager.getActiveAccount: Adding active account filters cache schema"),this.setActiveAccount(a,e),a):null}const o=this.validateAndParseJson(r);return o?(this.logger.trace("BrowserCacheManager.getActiveAccount: Active account filters schema found"),this.getAccountInfoFilteredBy({homeAccountId:o.homeAccountId,localAccountId:o.localAccountId,tenantId:o.tenantId},e)):(this.logger.trace("BrowserCacheManager.getActiveAccount: No active account found"),null)}setActiveAccount(e,t){const r=this.generateCacheKey(st.ACTIVE_ACCOUNT_FILTERS),o=this.generateCacheKey(st.ACTIVE_ACCOUNT);if(e){this.logger.verbose("setActiveAccount: Active account set");const i={homeAccountId:e.homeAccountId,localAccountId:e.localAccountId,tenantId:e.tenantId,lastUpdatedAt:Date.now().toString()};this.setItem(r,JSON.stringify(i),t),this.setItem(o,e.localAccountId,t)}else this.logger.verbose("setActiveAccount: No account passed, active account not set"),this.browserStorage.removeItem(r),this.browserStorage.removeItem(o)}getThrottlingCache(e){const t=this.getItem(e);if(!t)return this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null;const r=this.validateAndParseJson(t);return!r||!$A(e,r)?(this.logger.trace("BrowserCacheManager.getThrottlingCache: called, no cache hit"),null):(this.logger.trace("BrowserCacheManager.getThrottlingCache: cache hit"),r)}setThrottlingCache(e,t,r){this.logger.trace("BrowserCacheManager.setThrottlingCache called"),this.setItem(e,JSON.stringify(t),r)}getTemporaryCache(e,t){const r=t?this.generateCacheKey(e):e;if(this.cacheConfig.storeAuthStateInCookie){const i=this.cookieStorage.getItem(r);if(i)return this.logger.trace("BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies"),i}const o=this.temporaryCacheStorage.getItem(r);if(!o){if(this.cacheConfig.cacheLocation===Nt.LocalStorage){const i=this.browserStorage.getItem(r);if(i)return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage"),i}return this.logger.trace("BrowserCacheManager.getTemporaryCache: No cache item found in local storage"),null}return this.logger.trace("BrowserCacheManager.getTemporaryCache: Temporary cache item returned"),o}setTemporaryCache(e,t,r){const o=r?this.generateCacheKey(e):e;this.temporaryCacheStorage.setItem(o,t),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie"),this.cookieStorage.setItem(o,t,void 0,this.cacheConfig.secureCookies))}removeItem(e){this.browserStorage.removeItem(e)}removeTemporaryItem(e){this.temporaryCacheStorage.removeItem(e),this.cacheConfig.storeAuthStateInCookie&&(this.logger.trace("BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie"),this.cookieStorage.removeItem(e))}getKeys(){return this.browserStorage.getKeys()}async clear(e){await this.removeAllAccounts(e),this.removeAppMetadata(e),this.temporaryCacheStorage.getKeys().forEach(t=>{(t.indexOf(k.CACHE_PREFIX)!==-1||t.indexOf(this.clientId)!==-1)&&this.removeTemporaryItem(t)}),this.browserStorage.getKeys().forEach(t=>{(t.indexOf(k.CACHE_PREFIX)!==-1||t.indexOf(this.clientId)!==-1)&&this.browserStorage.removeItem(t)}),this.internalStorage.clear()}async clearTokensAndKeysWithClaims(e,t){e.addQueueMeasurement(b.ClearTokensAndKeysWithClaims,t);const r=this.getTokenKeys();let o=0;r.accessToken.forEach(i=>{const s=this.getAccessTokenCredential(i,t);s!=null&&s.requestedClaimsHash&&i.includes(s.requestedClaimsHash.toLowerCase())&&(this.removeAccessToken(i,t),o++)}),o>0&&this.logger.warning(`${o} access tokens with claims in the cache keys have been removed from the cache.`)}generateCacheKey(e){return this.validateAndParseJson(e)?JSON.stringify(e):on.startsWith(e,k.CACHE_PREFIX)||on.startsWith(e,st.ADAL_ID_TOKEN)?e:`${k.CACHE_PREFIX}.${this.clientId}.${e}`}generateAuthorityKey(e){const{libraryState:{id:t}}=sn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${xe.AUTHORITY}.${t}`)}generateNonceKey(e){const{libraryState:{id:t}}=sn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${xe.NONCE_IDTOKEN}.${t}`)}generateStateKey(e){const{libraryState:{id:t}}=sn.parseRequestState(this.cryptoImpl,e);return this.generateCacheKey(`${xe.REQUEST_STATE}.${t}`)}getCachedAuthority(e){const t=this.generateStateKey(e),r=this.getTemporaryCache(t);if(!r)return null;const o=this.generateAuthorityKey(r);return this.getTemporaryCache(o)}updateCacheEntries(e,t,r,o,i){this.logger.trace("BrowserCacheManager.updateCacheEntries called");const s=this.generateStateKey(e);this.setTemporaryCache(s,e,!1);const a=this.generateNonceKey(e);this.setTemporaryCache(a,t,!1);const c=this.generateAuthorityKey(e);if(this.setTemporaryCache(c,r,!1),i){const l={credential:i.homeAccountId,type:$t.HOME_ACCOUNT_ID};this.setTemporaryCache(xe.CCS_CREDENTIAL,JSON.stringify(l),!0)}else if(o){const l={credential:o,type:$t.UPN};this.setTemporaryCache(xe.CCS_CREDENTIAL,JSON.stringify(l),!0)}}resetRequestCache(e){this.logger.trace("BrowserCacheManager.resetRequestCache called"),e&&(this.temporaryCacheStorage.getKeys().forEach(t=>{t.indexOf(e)!==-1&&this.removeTemporaryItem(t)}),this.removeTemporaryItem(this.generateStateKey(e)),this.removeTemporaryItem(this.generateNonceKey(e)),this.removeTemporaryItem(this.generateAuthorityKey(e))),this.removeTemporaryItem(this.generateCacheKey(xe.REQUEST_PARAMS)),this.removeTemporaryItem(this.generateCacheKey(xe.ORIGIN_URI)),this.removeTemporaryItem(this.generateCacheKey(xe.URL_HASH)),this.removeTemporaryItem(this.generateCacheKey(xe.CORRELATION_ID)),this.removeTemporaryItem(this.generateCacheKey(xe.CCS_CREDENTIAL)),this.removeTemporaryItem(this.generateCacheKey(xe.NATIVE_REQUEST)),this.setInteractionInProgress(!1)}cleanRequestByState(e){if(this.logger.trace("BrowserCacheManager.cleanRequestByState called"),e){const t=this.generateStateKey(e),r=this.temporaryCacheStorage.getItem(t);this.logger.infoPii(`BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r||k.EMPTY_STRING)}}cleanRequestByInteractionType(e){this.logger.trace("BrowserCacheManager.cleanRequestByInteractionType called"),this.temporaryCacheStorage.getKeys().forEach(t=>{if(t.indexOf(xe.REQUEST_STATE)===-1)return;const r=this.temporaryCacheStorage.getItem(t);if(!r)return;const o=Jp(this.cryptoImpl,r);o&&o.interactionType===e&&(this.logger.infoPii(`BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: ${r}`),this.resetRequestCache(r))}),this.setInteractionInProgress(!1)}cacheCodeRequest(e){this.logger.trace("BrowserCacheManager.cacheCodeRequest called");const t=Dl(JSON.stringify(e));this.setTemporaryCache(xe.REQUEST_PARAMS,t,!0)}getCachedRequest(e){this.logger.trace("BrowserCacheManager.getCachedRequest called");const t=this.getTemporaryCache(xe.REQUEST_PARAMS,!0);if(!t)throw J(_p);let r;try{r=JSON.parse(In(t))}catch(o){throw this.logger.errorPii(`Attempted to parse: ${t}`),this.logger.error(`Parsing cached token request threw with error: ${o}`),J(Sp)}if(this.removeTemporaryItem(this.generateCacheKey(xe.REQUEST_PARAMS)),!r.authority){const o=this.generateAuthorityKey(e),i=this.getTemporaryCache(o);if(!i)throw J(Ml);r.authority=i}return r}getCachedNativeRequest(){this.logger.trace("BrowserCacheManager.getCachedNativeRequest called");const e=this.getTemporaryCache(xe.NATIVE_REQUEST,!0);if(!e)return this.logger.trace("BrowserCacheManager.getCachedNativeRequest: No cached native request found"),null;const t=this.validateAndParseJson(e);return t||(this.logger.error("BrowserCacheManager.getCachedNativeRequest: Unable to parse native request"),null)}isInteractionInProgress(e){const t=this.getInteractionInProgress();return e?t===this.clientId:!!t}getInteractionInProgress(){const e=`${k.CACHE_PREFIX}.${xe.INTERACTION_STATUS_KEY}`;return this.getTemporaryCache(e,!1)}setInteractionInProgress(e){const t=`${k.CACHE_PREFIX}.${xe.INTERACTION_STATUS_KEY}`;if(e){if(this.getInteractionInProgress())throw J(yp);this.setTemporaryCache(t,this.clientId,!1)}else!e&&this.getInteractionInProgress()===this.clientId&&this.removeTemporaryItem(t)}getLegacyLoginHint(){const e=this.getTemporaryCache(st.ADAL_ID_TOKEN);e&&(this.browserStorage.removeItem(st.ADAL_ID_TOKEN),this.logger.verbose("Cached ADAL id token retrieved."));const t=this.getTemporaryCache(st.ID_TOKEN,!0);t&&(this.browserStorage.removeItem(this.generateCacheKey(st.ID_TOKEN)),this.logger.verbose("Cached MSAL.js v1 id token retrieved"));const r=t||e;if(r){const o=Gr(r,In);if(o.preferred_username)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint"),o.preferred_username;if(o.upn)return this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint"),o.upn;this.logger.verbose("No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.")}return null}updateCredentialCacheKey(e,t,r){const o=oo(t);if(e!==o){const i=this.getItem(e);if(i)return this.browserStorage.removeItem(e),this.setItem(o,i,r),this.logger.verbose(`Updated an outdated ${t.credentialType} cache key`),o;this.logger.error(`Attempted to update an outdated ${t.credentialType} cache key but no item matching the outdated key was found in storage`)}return e}async hydrateCache(e,t){var a,c,l;const r=Js((a=e.account)==null?void 0:a.homeAccountId,(c=e.account)==null?void 0:c.environment,e.idToken,this.clientId,e.tenantId);let o;t.claims&&(o=await this.cryptoImpl.hashString(t.claims));const i=Xs((l=e.account)==null?void 0:l.homeAccountId,e.account.environment,e.accessToken,this.clientId,e.tenantId,e.scopes.join(" "),e.expiresOn?e.expiresOn.getTime()/1e3:0,e.extExpiresOn?e.extExpiresOn.getTime()/1e3:0,In,void 0,e.tokenType,void 0,t.sshKid,t.claims,o),s={idToken:r,accessToken:i};return this.saveCacheRecord(s,e.correlationId)}async saveCacheRecord(e,t,r){try{await super.saveCacheRecord(e,t,r)}catch(o){if(o instanceof fo&&this.performanceClient&&t)try{const i=this.getTokenKeys();this.performanceClient.addFields({cacheRtCount:i.refreshToken.length,cacheIdCount:i.idToken.length,cacheAtCount:i.accessToken.length},t)}catch{}throw o}}}const o_=(n,e)=>{const t={cacheLocation:Nt.MemoryStorage,temporaryCacheLocation:Nt.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};return new bc(n,t,Cs,e)};/*! @azure/msal-browser v3.30.0 2025-08-05 */function i_(n,e,t,r,o){return n.verbose("getAllAccounts called"),t?e.getAllAccounts(r,o):[]}function s_(n,e,t,r){if(e.trace("getAccount called"),Object.keys(n).length===0)return e.warning("getAccount: No accountFilter provided"),null;const o=t.getAccountInfoFilteredBy(n,r);return o?(e.verbose("getAccount: Account matching provided filter found, returning"),o):(e.verbose("getAccount: No matching account found, returning null"),null)}function a_(n,e,t,r){if(e.trace("getAccountByUsername called"),!n)return e.warning("getAccountByUsername: No username provided"),null;const o=t.getAccountInfoFilteredBy({username:n},r);return o?(e.verbose("getAccountByUsername: Account matching username found, returning"),e.verbosePii(`getAccountByUsername: Returning signed-in accounts matching username: ${n}`),o):(e.verbose("getAccountByUsername: No matching account found, returning null"),null)}function c_(n,e,t,r){if(e.trace("getAccountByHomeId called"),!n)return e.warning("getAccountByHomeId: No homeAccountId provided"),null;const o=t.getAccountInfoFilteredBy({homeAccountId:n},r);return o?(e.verbose("getAccountByHomeId: Account matching homeAccountId found, returning"),e.verbosePii(`getAccountByHomeId: Returning signed-in accounts matching homeAccountId: ${n}`),o):(e.verbose("getAccountByHomeId: No matching account found, returning null"),null)}function l_(n,e,t,r){if(e.trace("getAccountByLocalId called"),!n)return e.warning("getAccountByLocalId: No localAccountId provided"),null;const o=t.getAccountInfoFilteredBy({localAccountId:n},r);return o?(e.verbose("getAccountByLocalId: Account matching localAccountId found, returning"),e.verbosePii(`getAccountByLocalId: Returning signed-in accounts matching localAccountId: ${n}`),o):(e.verbose("getAccountByLocalId: No matching account found, returning null"),null)}function u_(n,e,t){e.setActiveAccount(n,t)}function d_(n,e){return n.getActiveAccount(e)}/*! @azure/msal-browser v3.30.0 2025-08-05 */const ce={INITIALIZE_START:"msal:initializeStart",INITIALIZE_END:"msal:initializeEnd",ACCOUNT_ADDED:"msal:accountAdded",ACCOUNT_REMOVED:"msal:accountRemoved",ACTIVE_ACCOUNT_CHANGED:"msal:activeAccountChanged",LOGIN_START:"msal:loginStart",LOGIN_SUCCESS:"msal:loginSuccess",LOGIN_FAILURE:"msal:loginFailure",ACQUIRE_TOKEN_START:"msal:acquireTokenStart",ACQUIRE_TOKEN_SUCCESS:"msal:acquireTokenSuccess",ACQUIRE_TOKEN_FAILURE:"msal:acquireTokenFailure",ACQUIRE_TOKEN_NETWORK_START:"msal:acquireTokenFromNetworkStart",SSO_SILENT_START:"msal:ssoSilentStart",SSO_SILENT_SUCCESS:"msal:ssoSilentSuccess",SSO_SILENT_FAILURE:"msal:ssoSilentFailure",ACQUIRE_TOKEN_BY_CODE_START:"msal:acquireTokenByCodeStart",ACQUIRE_TOKEN_BY_CODE_SUCCESS:"msal:acquireTokenByCodeSuccess",ACQUIRE_TOKEN_BY_CODE_FAILURE:"msal:acquireTokenByCodeFailure",HANDLE_REDIRECT_START:"msal:handleRedirectStart",HANDLE_REDIRECT_END:"msal:handleRedirectEnd",POPUP_OPENED:"msal:popupOpened",LOGOUT_START:"msal:logoutStart",LOGOUT_SUCCESS:"msal:logoutSuccess",LOGOUT_FAILURE:"msal:logoutFailure",LOGOUT_END:"msal:logoutEnd",RESTORE_FROM_BFCACHE:"msal:restoreFromBFCache"};/*! @azure/msal-browser v3.30.0 2025-08-05 */class h_{constructor(e){this.eventCallbacks=new Map,this.logger=e||new mr({})}addEventCallback(e,t,r){if(typeof window<"u"){const o=r||jb();return this.eventCallbacks.has(o)?(this.logger.error(`Event callback with id: ${o} is already registered. Please provide a unique id or remove the existing callback and try again.`),null):(this.eventCallbacks.set(o,[e,t||[]]),this.logger.verbose(`Event callback registered with id: ${o}`),o)}return null}removeEventCallback(e){this.eventCallbacks.delete(e),this.logger.verbose(`Event callback ${e} removed.`)}emitEvent(e,t,r,o){if(typeof window<"u"){const i={eventType:e,interactionType:t||null,payload:r||null,error:o||null,timestamp:Date.now()};this.eventCallbacks.forEach(([s,a],c)=>{(a.length===0||a.includes(e))&&(this.logger.verbose(`Emitting event to callback ${c}: ${e}`),s.apply(null,[i]))})}}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Xp{constructor(e,t,r,o,i,s,a,c,l){this.config=e,this.browserStorage=t,this.browserCrypto=r,this.networkClient=this.config.system.networkClient,this.eventHandler=i,this.navigationClient=s,this.nativeMessageHandler=c,this.correlationId=l||kn(),this.logger=o.clone(qt.MSAL_SKU,ko,this.correlationId),this.performanceClient=a}async clearCacheOnLogout(e){if(e){ot.accountInfoIsEqual(e,this.browserStorage.getActiveAccount(this.correlationId),!1)&&(this.logger.verbose("Setting active account to null"),this.browserStorage.setActiveAccount(null,this.correlationId));try{await this.browserStorage.removeAccount(ot.generateAccountCacheKey(e),this.correlationId),this.logger.verbose("Cleared cache items belonging to the account provided in the logout request.")}catch{this.logger.error("Account provided in logout request was not found. Local cache unchanged.")}}else try{this.logger.verbose("No account provided in logout request, clearing all cache items.",this.correlationId),await this.browserStorage.clear(this.correlationId),await this.browserCrypto.clearKeystore()}catch{this.logger.error("Attempted to clear all MSAL cache items and failed. Local cache unchanged.")}}getRedirectUri(e){this.logger.verbose("getRedirectUri called");const t=e||this.config.auth.redirectUri;return Se.getAbsoluteUrl(t,qn())}initializeServerTelemetryManager(e,t){this.logger.verbose("initializeServerTelemetryManager called");const r={clientId:this.config.auth.clientId,correlationId:this.correlationId,apiId:e,forceRefresh:t||!1,wrapperSKU:this.browserStorage.getWrapperMetadata()[0],wrapperVer:this.browserStorage.getWrapperMetadata()[1]};return new yi(r,this.browserStorage)}async getDiscoveredAuthority(e){const{account:t}=e,r=e.requestExtraQueryParameters&&e.requestExtraQueryParameters.hasOwnProperty("instance_aware")?e.requestExtraQueryParameters.instance_aware:void 0;this.performanceClient.addQueueMeasurement(b.StandardInteractionClientGetDiscoveredAuthority,this.correlationId);const o={protocolMode:this.config.auth.protocolMode,OIDCOptions:this.config.auth.OIDCOptions,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},i=e.requestAuthority||this.config.auth.authority,s=r!=null&&r.length?r==="true":this.config.auth.instanceAware,a=t&&s?this.config.auth.authority.replace(Se.getDomainFromUrl(i),t.environment):i,c=mt.generateAuthority(a,e.requestAzureCloudOptions||this.config.auth.azureCloudOptions),l=await $(sp,b.AuthorityFactoryCreateDiscoveredInstance,this.logger,this.performanceClient,this.correlationId)(c,this.config.system.networkClient,this.browserStorage,o,this.logger,this.correlationId,this.performanceClient);if(t&&!l.isAlias(t.environment))throw Ue(Jg);return l}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const f_=32;async function g_(n,e,t){n.addQueueMeasurement(b.GeneratePkceCodes,t);const r=Vr(p_,b.GenerateCodeVerifier,e,n,t)(n,e,t),o=await $(m_,b.GenerateCodeChallengeFromVerifier,e,n,t)(r,n,e,t);return{verifier:r,challenge:o}}function p_(n,e,t){try{const r=new Uint8Array(f_);return Vr(Ob,b.GetRandomValues,e,n,t)(r),sa(r)}catch{throw J(Pl)}}async function m_(n,e,t,r){e.addQueueMeasurement(b.GenerateCodeChallengeFromVerifier,r);try{const o=await $(Gp,b.Sha256Digest,t,e,r)(n,e,r);return sa(new Uint8Array(o))}catch{throw J(Pl)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */async function $l(n,e,t,r){t.addQueueMeasurement(b.InitializeBaseRequest,n.correlationId);const o=n.authority||e.auth.authority,i=[...n&&n.scopes||[]],s={...n,correlationId:n.correlationId,authority:o,scopes:i};if(!s.authenticationScheme)s.authenticationScheme=Le.BEARER,r.verbose(`Authentication Scheme wasn't explicitly set in request, defaulting to "Bearer" request`);else{if(s.authenticationScheme===Le.SSH){if(!n.sshJwk)throw Ue(Zs);if(!n.sshKid)throw Ue(Qg)}r.verbose(`Authentication Scheme set to "${s.authenticationScheme}" as configured in Auth request`)}return e.cache.claimsBasedCachingEnabled&&n.claims&&!on.isEmptyObj(n.claims)&&(s.requestedClaimsHash=await Vp(n.claims)),s}async function y_(n,e,t,r,o){r.addQueueMeasurement(b.InitializeSilentRequest,n.correlationId);const i=await $($l,b.InitializeBaseRequest,o,r,n.correlationId)(n,t,r,o);return{...n,...i,account:e,forceRefresh:n.forceRefresh||!1}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Lo extends Xp{async initializeAuthorizationCodeRequest(e){this.performanceClient.addQueueMeasurement(b.StandardInteractionClientInitializeAuthorizationCodeRequest,this.correlationId);const t=await $(g_,b.GeneratePkceCodes,this.logger,this.performanceClient,this.correlationId)(this.performanceClient,this.logger,this.correlationId),r={...e,redirectUri:e.redirectUri,code:k.EMPTY_STRING,codeVerifier:t.verifier};return e.codeChallenge=t.challenge,e.codeChallengeMethod=k.S256_CODE_CHALLENGE_METHOD,r}initializeLogoutRequest(e){this.logger.verbose("initializeLogoutRequest called",e==null?void 0:e.correlationId);const t={correlationId:this.correlationId||kn(),...e};if(e)if(e.logoutHint)this.logger.verbose("logoutHint has already been set in logoutRequest");else if(e.account){const r=this.getLogoutHintFromIdTokenClaims(e.account);r&&(this.logger.verbose("Setting logoutHint to login_hint ID Token Claim value for the account provided"),t.logoutHint=r)}else this.logger.verbose("logoutHint was not set and account was not passed into logout request, logoutHint will not be set");else this.logger.verbose("logoutHint will not be set since no logout request was configured");return!e||e.postLogoutRedirectUri!==null?e&&e.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to uri set on logout request",t.correlationId),t.postLogoutRedirectUri=Se.getAbsoluteUrl(e.postLogoutRedirectUri,qn())):this.config.auth.postLogoutRedirectUri===null?this.logger.verbose("postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect",t.correlationId):this.config.auth.postLogoutRedirectUri?(this.logger.verbose("Setting postLogoutRedirectUri to configured uri",t.correlationId),t.postLogoutRedirectUri=Se.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri,qn())):(this.logger.verbose("Setting postLogoutRedirectUri to current page",t.correlationId),t.postLogoutRedirectUri=Se.getAbsoluteUrl(qn(),qn())):this.logger.verbose("postLogoutRedirectUri passed as null, not setting post logout redirect uri",t.correlationId),t}getLogoutHintFromIdTokenClaims(e){const t=e.idTokenClaims;if(t){if(t.login_hint)return t.login_hint;this.logger.verbose("The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request")}else this.logger.verbose("The provided account does not contain ID Token Claims, logoutHint will not be added to logout request");return null}async createAuthCodeClient(e){this.performanceClient.addQueueMeasurement(b.StandardInteractionClientCreateAuthCodeClient,this.correlationId);const t=await $(this.getClientConfiguration.bind(this),b.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)(e);return new lp(t,this.performanceClient)}async getClientConfiguration(e){const{serverTelemetryManager:t,requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:i,account:s}=e;this.performanceClient.addQueueMeasurement(b.StandardInteractionClientGetClientConfiguration,this.correlationId);const a=await $(this.getDiscoveredAuthority.bind(this),b.StandardInteractionClientGetDiscoveredAuthority,this.logger,this.performanceClient,this.correlationId)({requestAuthority:r,requestAzureCloudOptions:o,requestExtraQueryParameters:i,account:s}),c=this.config.system.loggerOptions;return{authOptions:{clientId:this.config.auth.clientId,authority:a,clientCapabilities:this.config.auth.clientCapabilities,redirectUri:this.config.auth.redirectUri},systemOptions:{tokenRenewalOffsetSeconds:this.config.system.tokenRenewalOffsetSeconds,preventCorsPreflight:!0},loggerOptions:{loggerCallback:c.loggerCallback,piiLoggingEnabled:c.piiLoggingEnabled,logLevel:c.logLevel,correlationId:this.correlationId},cacheOptions:{claimsBasedCachingEnabled:this.config.cache.claimsBasedCachingEnabled},cryptoInterface:this.browserCrypto,networkInterface:this.networkClient,storageInterface:this.browserStorage,serverTelemetryManager:t,libraryInfo:{sku:qt.MSAL_SKU,version:ko,cpu:k.EMPTY_STRING,os:k.EMPTY_STRING},telemetry:this.config.telemetry}}async initializeAuthorizationRequest(e,t){this.performanceClient.addQueueMeasurement(b.StandardInteractionClientInitializeAuthorizationRequest,this.correlationId);const r=this.getRedirectUri(e.redirectUri),o={interactionType:t},i=sn.setRequestState(this.browserCrypto,e&&e.state||k.EMPTY_STRING,o),a={...await $($l,b.InitializeBaseRequest,this.logger,this.performanceClient,this.correlationId)({...e,correlationId:this.correlationId},this.config,this.performanceClient,this.logger),redirectUri:r,state:i,nonce:e.nonce||kn(),responseMode:this.config.auth.OIDCOptions.serverResponseType};if(e.loginHint||e.sid)return a;const c=e.account||this.browserStorage.getActiveAccount(this.correlationId);if(c&&(this.logger.verbose("Setting validated request account",this.correlationId),this.logger.verbosePii(`Setting validated request account: ${c.homeAccountId}`,this.correlationId),a.account=c),!a.loginHint&&!c){const l=this.browserStorage.getLegacyLoginHint();l&&(a.loginHint=l)}return a}}/*! @azure/msal-browser v3.30.0 2025-08-05 */const C_="ContentError",Zp="user_switch";/*! @azure/msal-browser v3.30.0 2025-08-05 */const v_="USER_INTERACTION_REQUIRED",T_="USER_CANCEL",w_="NO_NETWORK",A_="PERSISTENT_ERROR",E_="DISABLED",b_="ACCOUNT_UNAVAILABLE";/*! @azure/msal-browser v3.30.0 2025-08-05 */const __=-2147186943,S_={[Zp]:"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again."};class bn extends je{constructor(e,t,r){super(e,t),Object.setPrototypeOf(this,bn.prototype),this.name="NativeAuthError",this.ext=r}}function to(n){if(n.ext&&n.ext.status&&(n.ext.status===A_||n.ext.status===E_)||n.ext&&n.ext.error&&n.ext.error===__)return!0;switch(n.errorCode){case C_:return!0;default:return!1}}function _c(n,e,t){if(t&&t.status)switch(t.status){case b_:return yc(ap);case v_:return new ln(n,e);case T_:return J(qr);case w_:return J(bs)}return new bn(n,S_[n]||e,t)}/*! @azure/msal-browser v3.30.0 2025-08-05 */class em extends Lo{async acquireToken(e){this.performanceClient.addQueueMeasurement(b.SilentCacheClientAcquireToken,e.correlationId);const t=this.initializeServerTelemetryManager(qe.acquireTokenSilent_silentFlow),r=await $(this.getClientConfiguration.bind(this),b.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:t,requestAuthority:e.authority,requestAzureCloudOptions:e.azureCloudOptions,account:e.account}),o=new cb(r,this.performanceClient);this.logger.verbose("Silent auth client created");try{const s=(await $(o.acquireCachedToken.bind(o),b.SilentFlowClientAcquireCachedToken,this.logger,this.performanceClient,e.correlationId)(e))[0];return this.performanceClient.addFields({fromCache:!0},e.correlationId),s}catch(i){throw i instanceof xi&&i.errorCode===xl&&this.logger.verbose("Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair."),i}}logout(e){this.logger.verbose("logoutRedirect called");const t=this.initializeLogoutRequest(e);return this.clearCacheOnLogout(t==null?void 0:t.account)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class go extends Xp{constructor(e,t,r,o,i,s,a,c,l,u,d,h){var C;super(e,t,r,o,i,s,c,l,h),this.apiId=a,this.accountId=u,this.nativeMessageHandler=l,this.nativeStorageManager=d,this.silentCacheClient=new em(e,this.nativeStorageManager,r,o,i,s,c,l,h),this.serverTelemetryManager=this.initializeServerTelemetryManager(this.apiId);const f=this.nativeMessageHandler.getExtensionId()===so.PREFERRED_EXTENSION_ID?"chrome":(C=this.nativeMessageHandler.getExtensionId())!=null&&C.length?"unknown":void 0;this.skus=yi.makeExtraSkuString({libraryName:qt.MSAL_SKU,libraryVersion:ko,extensionName:f,extensionVersion:this.nativeMessageHandler.getExtensionVersion()})}addRequestSKUs(e){e.extraParameters={...e.extraParameters,[GE]:this.skus}}async acquireToken(e){this.performanceClient.addQueueMeasurement(b.NativeInteractionClientAcquireToken,e.correlationId),this.logger.trace("NativeInteractionClient - acquireToken called.");const t=this.performanceClient.startMeasurement(b.NativeInteractionClientAcquireToken,e.correlationId),r=Rn();try{const o=await this.initializeNativeRequest(e);try{const l=await this.acquireTokensFromCache(this.accountId,o);return t.end({success:!0,isNativeBroker:!1,fromCache:!0}),l}catch{this.logger.info("MSAL internal Cache does not contain tokens, proceed to make a native call")}const{...i}=o,s={method:Ir.GetToken,request:i},a=await this.nativeMessageHandler.sendMessage(s),c=this.validateNativeResponse(a);return await this.handleNativeResponse(c,o,r).then(l=>(t.end({success:!0,isNativeBroker:!0,requestId:l.requestId}),this.serverTelemetryManager.clearNativeBrokerErrorCode(),l)).catch(l=>{throw t.end({success:!1,errorCode:l.errorCode,subErrorCode:l.subError,isNativeBroker:!0}),l})}catch(o){throw o instanceof bn&&this.serverTelemetryManager.setNativeBrokerErrorCode(o.errorCode),o}}createSilentCacheRequest(e,t){return{authority:e.authority,correlationId:this.correlationId,scopes:Je.fromString(e.scope).asArray(),account:t,forceRefresh:!1}}async acquireTokensFromCache(e,t){if(!e)throw this.logger.warning("NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided"),B(dc);const r=this.browserStorage.getBaseAccountInfo({nativeAccountId:e},t.correlationId);if(!r)throw B(dc);try{const o=this.createSilentCacheRequest(t,r),i=await this.silentCacheClient.acquireToken(o),s={...r,idTokenClaims:i==null?void 0:i.idTokenClaims,idToken:i==null?void 0:i.idToken};return{...i,account:s}}catch(o){throw o}}async acquireTokenRedirect(e,t){this.logger.trace("NativeInteractionClient - acquireTokenRedirect called.");const{...r}=e;delete r.onRedirectNavigate;const o=await this.initializeNativeRequest(r),i={method:Ir.GetToken,request:o};try{const c=await this.nativeMessageHandler.sendMessage(i);this.validateNativeResponse(c)}catch(c){if(c instanceof bn&&(this.serverTelemetryManager.setNativeBrokerErrorCode(c.errorCode),to(c)))throw c}this.browserStorage.setTemporaryCache(xe.NATIVE_REQUEST,JSON.stringify(o),!0);const s={apiId:qe.acquireTokenRedirect,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},a=this.config.auth.navigateToLoginRequestUrl?window.location.href:this.getRedirectUri(e.redirectUri);t.end({success:!0}),await this.navigationClient.navigateExternal(a,s)}async handleRedirectPromise(e,t){if(this.logger.trace("NativeInteractionClient - handleRedirectPromise called."),!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const r=this.browserStorage.getCachedNativeRequest();if(!r)return this.logger.verbose("NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null."),e&&t&&(e==null||e.addFields({errorCode:"no_cached_request"},t)),null;const{prompt:o,...i}=r;o&&this.logger.verbose("NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window."),this.browserStorage.removeItem(this.browserStorage.generateCacheKey(xe.NATIVE_REQUEST));const s={method:Ir.GetToken,request:i},a=Rn();try{this.logger.verbose("NativeInteractionClient - handleRedirectPromise sending message to native broker.");const c=await this.nativeMessageHandler.sendMessage(s);this.validateNativeResponse(c);const l=this.handleNativeResponse(c,i,a);this.browserStorage.setInteractionInProgress(!1);const u=await l;return this.serverTelemetryManager.clearNativeBrokerErrorCode(),u}catch(c){throw this.browserStorage.setInteractionInProgress(!1),c}}logout(){return this.logger.trace("NativeInteractionClient - logout called."),Promise.reject("Logout not implemented yet")}async handleNativeResponse(e,t,r){var u;this.logger.trace("NativeInteractionClient - handleNativeResponse called.");const o=Gr(e.id_token,In),i=this.createHomeAccountIdentifier(e,o),s=(u=this.browserStorage.getAccountInfoFilteredBy({nativeAccountId:t.accountId},this.correlationId))==null?void 0:u.homeAccountId;if(i!==s&&e.account.id!==t.accountId)throw _c(Zp);const a=await this.getDiscoveredAuthority({requestAuthority:t.authority}),c=Rl(this.browserStorage,a,i,In,this.correlationId,o,e.client_info,void 0,o.tid,void 0,e.account.id,this.logger),l=await this.generateAuthenticationResult(e,t,o,c,a.canonicalAuthority,r);return this.cacheAccount(c),this.cacheNativeTokens(e,t,i,o,e.access_token,l.tenantId,r),l}createHomeAccountIdentifier(e,t){return ot.generateHomeAccountId(e.client_info||k.EMPTY_STRING,tn.Default,this.logger,this.browserCrypto,t)}generateScopes(e,t){return e.scope?Je.fromString(e.scope):Je.fromString(t.scope)}async generatePopAccessToken(e,t){if(t.tokenType===Le.POP&&t.signPopToken){if(e.shr)return this.logger.trace("handleNativeServerResponse: SHR is enabled in native layer"),e.shr;const r=new Ro(this.browserCrypto),o={resourceRequestMethod:t.resourceRequestMethod,resourceRequestUri:t.resourceRequestUri,shrClaims:t.shrClaims,shrNonce:t.shrNonce};if(!t.keyId)throw B(hl);return r.signPopToken(e.access_token,t.keyId,o)}else return e.access_token}async generateAuthenticationResult(e,t,r,o,i,s){const a=this.addTelemetryFromNativeResponse(e),c=e.scope?Je.fromString(e.scope):Je.fromString(t.scope),l=e.account.properties||{},u=l.UID||r.oid||r.sub||k.EMPTY_STRING,d=l.TenantId||r.tid||k.EMPTY_STRING,h=wl(o.getAccountInfo(),void 0,r,e.id_token);h.nativeAccountId!==e.account.id&&(h.nativeAccountId=e.account.id);const f=await this.generatePopAccessToken(e,t),C=t.tokenType===Le.POP?Le.POP:Le.BEARER;return{authority:i,uniqueId:u,tenantId:d,scopes:c.asArray(),account:h,idToken:e.id_token,idTokenClaims:r,accessToken:f,fromCache:a?this.isResponseFromCache(a):!1,expiresOn:new Date(Number(s+e.expires_in)*1e3),tokenType:C,correlationId:this.correlationId,state:e.state,fromNativeBroker:!0}}cacheAccount(e){this.browserStorage.setAccount(e,this.correlationId),this.browserStorage.removeAccountContext(e,this.correlationId).catch(t=>{this.logger.error(`Error occurred while removing account context from browser storage. ${t}`)})}cacheNativeTokens(e,t,r,o,i,s,a){const c=Js(r,t.authority,e.id_token||"",t.clientId,o.tid||""),l=t.tokenType===Le.POP?k.SHR_NONCE_VALIDITY:(typeof e.expires_in=="string"?parseInt(e.expires_in,10):e.expires_in)||0,u=a+l,d=this.generateScopes(e,t),h=Xs(r,t.authority,i,t.clientId,o.tid||s,d.printScopes(),u,0,In,void 0,t.tokenType,void 0,t.keyId),f={idToken:c,accessToken:h};this.nativeStorageManager.saveCacheRecord(f,t.correlationId,t.storeInCache)}addTelemetryFromNativeResponse(e){const t=this.getMATSFromResponse(e);return t?(this.performanceClient.addFields({extensionId:this.nativeMessageHandler.getExtensionId(),extensionVersion:this.nativeMessageHandler.getExtensionVersion(),matsBrokerVersion:t.broker_version,matsAccountJoinOnStart:t.account_join_on_start,matsAccountJoinOnEnd:t.account_join_on_end,matsDeviceJoin:t.device_join,matsPromptBehavior:t.prompt_behavior,matsApiErrorCode:t.api_error_code,matsUiVisible:t.ui_visible,matsSilentCode:t.silent_code,matsSilentBiSubCode:t.silent_bi_sub_code,matsSilentMessage:t.silent_message,matsSilentStatus:t.silent_status,matsHttpStatus:t.http_status,matsHttpEventCount:t.http_event_count},this.correlationId),t):null}validateNativeResponse(e){if(e.hasOwnProperty("access_token")&&e.hasOwnProperty("id_token")&&e.hasOwnProperty("client_info")&&e.hasOwnProperty("account")&&e.hasOwnProperty("scope")&&e.hasOwnProperty("expires_in"))return e;throw Cg(sl,"Response missing expected properties.")}getMATSFromResponse(e){if(e.properties.MATS)try{return JSON.parse(e.properties.MATS)}catch{this.logger.error("NativeInteractionClient - Error parsing MATS telemetry, returning null instead")}return null}isResponseFromCache(e){return typeof e.is_cached>"u"?(this.logger.verbose("NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false."),!1):!!e.is_cached}async initializeNativeRequest(e){this.logger.trace("NativeInteractionClient - initializeNativeRequest called");const t=e.authority||this.config.auth.authority;e.account&&await this.getDiscoveredAuthority({requestAuthority:t,requestAzureCloudOptions:e.azureCloudOptions,account:e.account});const r=new Se(t);r.validateAsUri();const{scopes:o,...i}=e,s=new Je(o||[]);s.appendScopes(xo);const a=()=>{switch(this.apiId){case qe.ssoSilent:case qe.acquireTokenSilent_silentFlow:return this.logger.trace("initializeNativeRequest: silent request sets prompt to none"),ct.NONE}if(!e.prompt){this.logger.trace("initializeNativeRequest: prompt was not provided");return}switch(e.prompt){case ct.NONE:case ct.CONSENT:case ct.LOGIN:return this.logger.trace("initializeNativeRequest: prompt is compatible with native flow"),e.prompt;default:throw this.logger.trace(`initializeNativeRequest: prompt = ${e.prompt} is not compatible with native flow`),J(Up)}},c={...i,accountId:this.accountId,clientId:this.config.auth.clientId,authority:r.urlString,scope:s.printScopes(),redirectUri:this.getRedirectUri(e.redirectUri),prompt:a(),correlationId:this.correlationId,tokenType:e.authenticationScheme,windowTitleSubstring:document.title,extraParameters:{...e.extraQueryParameters,...e.tokenQueryParameters},extendedExpiryToken:!1,keyId:e.popKid};if(c.signPopToken&&e.popKid)throw J(Fp);if(this.handleExtraBrokerParams(c),c.extraParameters=c.extraParameters||{},c.extraParameters.telemetry=so.MATS_TELEMETRY,e.authenticationScheme===Le.POP){const l={resourceRequestUri:e.resourceRequestUri,resourceRequestMethod:e.resourceRequestMethod,shrClaims:e.shrClaims,shrNonce:e.shrNonce},u=new Ro(this.browserCrypto);let d;if(c.keyId)d=this.browserCrypto.base64UrlEncode(JSON.stringify({kid:c.keyId})),c.signPopToken=!1;else{const h=await $(u.generateCnf.bind(u),b.PopTokenGenerateCnf,this.logger,this.performanceClient,e.correlationId)(l,this.logger);d=h.reqCnfString,c.keyId=h.kid,c.signPopToken=!0}c.reqCnf=d}return this.addRequestSKUs(c),c}handleExtraBrokerParams(e){var i;const t=e.extraParameters&&e.extraParameters.hasOwnProperty(_l)&&e.extraParameters.hasOwnProperty(mc)&&e.extraParameters.hasOwnProperty(Br);if(!e.embeddedClientId&&!t)return;let r="";const o=e.redirectUri;e.embeddedClientId?(e.redirectUri=this.config.auth.redirectUri,r=e.embeddedClientId):e.extraParameters&&(e.redirectUri=e.extraParameters[mc],r=e.extraParameters[Br]),e.extraParameters={child_client_id:r,child_redirect_uri:o},(i=this.performanceClient)==null||i.addFields({embeddedClientId:r,embeddedRedirectUri:o},e.correlationId)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class _n{constructor(e,t,r,o){this.logger=e,this.handshakeTimeoutMs=t,this.extensionId=o,this.resolvers=new Map,this.handshakeResolvers=new Map,this.messageChannel=new MessageChannel,this.windowListener=this.onWindowMessage.bind(this),this.performanceClient=r,this.handshakeEvent=r.startMeasurement(b.NativeMessageHandlerHandshake)}async sendMessage(e){this.logger.trace("NativeMessageHandler - sendMessage called.");const t={channel:so.CHANNEL_ID,extensionId:this.extensionId,responseId:kn(),body:e};return this.logger.trace("NativeMessageHandler - Sending request to browser extension"),this.logger.tracePii(`NativeMessageHandler - Sending request to browser extension: ${JSON.stringify(t)}`),this.messageChannel.port1.postMessage(t),new Promise((r,o)=>{this.resolvers.set(t.responseId,{resolve:r,reject:o})})}static async createProvider(e,t,r){e.trace("NativeMessageHandler - createProvider called.");try{const o=new _n(e,t,r,so.PREFERRED_EXTENSION_ID);return await o.sendHandshakeRequest(),o}catch{const i=new _n(e,t,r);return await i.sendHandshakeRequest(),i}}async sendHandshakeRequest(){this.logger.trace("NativeMessageHandler - sendHandshakeRequest called."),window.addEventListener("message",this.windowListener,!1);const e={channel:so.CHANNEL_ID,extensionId:this.extensionId,responseId:kn(),body:{method:Ir.HandshakeRequest}};return this.handshakeEvent.add({extensionId:this.extensionId,extensionHandshakeTimeoutMs:this.handshakeTimeoutMs}),this.messageChannel.port1.onmessage=t=>{this.onChannelMessage(t)},window.postMessage(e,window.origin,[this.messageChannel.port2]),new Promise((t,r)=>{this.handshakeResolvers.set(e.responseId,{resolve:t,reject:r}),this.timeoutId=window.setTimeout(()=>{window.removeEventListener("message",this.windowListener,!1),this.messageChannel.port1.close(),this.messageChannel.port2.close(),this.handshakeEvent.end({extensionHandshakeTimedOut:!0,success:!1}),r(J(xp)),this.handshakeResolvers.delete(e.responseId)},this.handshakeTimeoutMs)})}onWindowMessage(e){if(this.logger.trace("NativeMessageHandler - onWindowMessage called"),e.source!==window)return;const t=e.data;if(!(!t.channel||t.channel!==so.CHANNEL_ID)&&!(t.extensionId&&t.extensionId!==this.extensionId)&&t.body.method===Ir.HandshakeRequest){const r=this.handshakeResolvers.get(t.responseId);if(!r){this.logger.trace(`NativeMessageHandler.onWindowMessage - resolver can't be found for request ${t.responseId}`);return}this.logger.verbose(t.extensionId?`Extension with id: ${t.extensionId} not installed`:"No extension installed"),clearTimeout(this.timeoutId),this.messageChannel.port1.close(),this.messageChannel.port2.close(),window.removeEventListener("message",this.windowListener,!1),this.handshakeEvent.end({success:!1,extensionInstalled:!1}),r.reject(J(Lp))}}onChannelMessage(e){this.logger.trace("NativeMessageHandler - onChannelMessage called.");const t=e.data,r=this.resolvers.get(t.responseId),o=this.handshakeResolvers.get(t.responseId);try{const i=t.body.method;if(i===Ir.Response){if(!r)return;const s=t.body.response;if(this.logger.trace("NativeMessageHandler - Received response from browser extension"),this.logger.tracePii(`NativeMessageHandler - Received response from browser extension: ${JSON.stringify(s)}`),s.status!=="Success")r.reject(_c(s.code,s.description,s.ext));else if(s.result)s.result.code&&s.result.description?r.reject(_c(s.result.code,s.result.description,s.result.ext)):r.resolve(s.result);else throw Cg(sl,"Event does not contain result.");this.resolvers.delete(t.responseId)}else if(i===Ir.HandshakeResponse){if(!o){this.logger.trace(`NativeMessageHandler.onChannelMessage - resolver can't be found for request ${t.responseId}`);return}clearTimeout(this.timeoutId),window.removeEventListener("message",this.windowListener,!1),this.extensionId=t.extensionId,this.extensionVersion=t.body.version,this.logger.verbose(`NativeMessageHandler - Received HandshakeResponse from extension: ${this.extensionId}`),this.handshakeEvent.end({extensionInstalled:!0,success:!0}),o.resolve(),this.handshakeResolvers.delete(t.responseId)}}catch(i){this.logger.error("Error parsing response from WAM Extension"),this.logger.errorPii(`Error parsing response from WAM Extension: ${i}`),this.logger.errorPii(`Unable to parse ${e}`),r?r.reject(i):o&&o.reject(i)}}getExtensionId(){return this.extensionId}getExtensionVersion(){return this.extensionVersion}static isNativeAvailable(e,t,r,o){if(t.trace("isNativeAvailable called"),!e.system.allowNativeBroker)return t.trace("isNativeAvailable: allowNativeBroker is not enabled, returning false"),!1;if(!r)return t.trace("isNativeAvailable: WAM extension provider is not initialized, returning false"),!1;if(o)switch(o){case Le.BEARER:case Le.POP:return t.trace("isNativeAvailable: authenticationScheme is supported, returning true"),!0;default:return t.trace("isNativeAvailable: authenticationScheme is not supported, returning false"),!1}return!0}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Gl{constructor(e,t,r,o,i){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=i}async handleCodeResponse(e,t){this.performanceClient.addQueueMeasurement(b.HandleCodeResponse,t.correlationId);let r;try{r=this.authModule.handleFragmentResponse(e,t.state)}catch(o){throw o instanceof yr&&o.subError===qr?J(qr):o}return $(this.handleCodeResponseFromServer.bind(this),b.HandleCodeResponseFromServer,this.logger,this.performanceClient,t.correlationId)(r,t)}async handleCodeResponseFromServer(e,t,r=!0){if(this.performanceClient.addQueueMeasurement(b.HandleCodeResponseFromServer,t.correlationId),this.logger.trace("InteractionHandler.handleCodeResponseFromServer called"),this.authCodeRequest.code=e.code,e.cloud_instance_host_name&&await $(this.authModule.updateAuthority.bind(this.authModule),b.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,t.correlationId)(e.cloud_instance_host_name,t.correlationId),r&&(e.nonce=t.nonce||void 0),e.state=t.state,e.client_info)this.authCodeRequest.clientInfo=e.client_info;else{const i=this.createCcsCredentials(t);i&&(this.authCodeRequest.ccsCredential=i)}return await $(this.authModule.acquireToken.bind(this.authModule),b.AuthClientAcquireToken,this.logger,this.performanceClient,t.correlationId)(this.authCodeRequest,e)}createCcsCredentials(e){return e.account?{credential:e.account.homeAccountId,type:$t.HOME_ACCOUNT_ID}:e.loginHint?{credential:e.loginHint,type:$t.UPN}:null}}/*! @azure/msal-browser v3.30.0 2025-08-05 */function tm(n,e,t){const r=ws(n);if(!r)throw Zg(n)?(t.error(`A ${e} is present in the iframe but it does not contain known properties. It's likely that the ${e} has been replaced by code running on the redirectUri page.`),t.errorPii(`The ${e} detected is: ${n}`),J(gp)):(t.error(`The request has returned to the redirectUri but a ${e} is not present. It's likely that the ${e} has been removed or the page has been redirected by code running on the redirectUri page.`),J(fp));return r}function I_(n,e,t){if(!n.state)throw J(Nl);const r=Jp(e,n.state);if(!r)throw J(pp);if(r.interactionType!==t)throw J(mp)}/*! @azure/msal-browser v3.30.0 2025-08-05 */class R_ extends Lo{constructor(e,t,r,o,i,s,a,c,l,u){super(e,t,r,o,i,s,a,l,u),this.unloadWindow=this.unloadWindow.bind(this),this.nativeStorage=c}acquireToken(e){try{const r={popupName:this.generatePopupName(e.scopes||xo,e.authority||this.config.auth.authority),popupWindowAttributes:e.popupWindowAttributes||{},popupWindowParent:e.popupWindowParent??window};return this.config.system.asyncPopups?(this.logger.verbose("asyncPopups set to true, acquiring token"),this.acquireTokenPopupAsync(e,r)):(this.logger.verbose("asyncPopup set to false, opening popup before acquiring token"),r.popup=this.openSizedPopup("about:blank",r),this.acquireTokenPopupAsync(e,r))}catch(t){return Promise.reject(t)}}logout(e){try{this.logger.verbose("logoutPopup called");const t=this.initializeLogoutRequest(e),r={popupName:this.generateLogoutPopupName(t),popupWindowAttributes:(e==null?void 0:e.popupWindowAttributes)||{},popupWindowParent:(e==null?void 0:e.popupWindowParent)??window},o=e&&e.authority,i=e&&e.mainWindowRedirectUri;return this.config.system.asyncPopups?(this.logger.verbose("asyncPopups set to true"),this.logoutPopupAsync(t,r,o,i)):(this.logger.verbose("asyncPopup set to false, opening popup"),r.popup=this.openSizedPopup("about:blank",r),this.logoutPopupAsync(t,r,o,i))}catch(t){return Promise.reject(t)}}async acquireTokenPopupAsync(e,t){var i;this.logger.verbose("acquireTokenPopupAsync called");const r=this.initializeServerTelemetryManager(qe.acquireTokenPopup),o=await $(this.initializeAuthorizationRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(e,ne.Popup);Yp(o.authority);try{const s=await $(this.initializeAuthorizationCodeRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(o),a=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:r,requestAuthority:o.authority,requestAzureCloudOptions:o.azureCloudOptions,requestExtraQueryParameters:o.extraQueryParameters,account:o.account}),c=_n.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,e.authenticationScheme);let l;c&&(l=this.performanceClient.startMeasurement(b.FetchAccountIdWithNativeBroker,e.correlationId));const u=await a.getAuthCodeUrl({...o,nativeBroker:c}),d=new Gl(a,this.browserStorage,s,this.logger,this.performanceClient),h=this.initiateAuthRequest(u,t);this.eventHandler.emitEvent(ce.POPUP_OPENED,ne.Popup,{popupWindow:h},null);const f=await this.monitorPopupForHash(h,t.popupWindowParent),C=Vr(tm,b.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(f,this.config.auth.OIDCOptions.serverResponseType,this.logger);if(En.removeThrottle(this.browserStorage,this.config.auth.clientId,s),C.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),l&&l.end({success:!0,isNativeBroker:!0}),!this.nativeMessageHandler)throw J(Mi);const v=new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,C.accountId,this.nativeStorage,o.correlationId),{userRequestState:A}=sn.parseRequestState(this.browserCrypto,o.state);return await v.acquireToken({...o,state:A,prompt:void 0})}return await d.handleCodeResponse(C,o)}catch(s){throw(i=t.popup)==null||i.close(),s instanceof je&&(s.setCorrelationId(this.correlationId),r.cacheFailedRequest(s)),s}}async logoutPopupAsync(e,t,r,o){var s,a,c,l;this.logger.verbose("logoutPopupAsync called"),this.eventHandler.emitEvent(ce.LOGOUT_START,ne.Popup,e);const i=this.initializeServerTelemetryManager(qe.logoutPopup);try{await this.clearCacheOnLogout(e.account);const u=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:i,requestAuthority:r,account:e.account||void 0});try{u.authority.endSessionEndpoint}catch{if((s=e.account)!=null&&s.homeAccountId&&e.postLogoutRedirectUri&&u.authority.protocolMode===$n.OIDC){if(this.browserStorage.removeAccount((a=e.account)==null?void 0:a.homeAccountId,this.correlationId),this.eventHandler.emitEvent(ce.LOGOUT_SUCCESS,ne.Popup,e),o){const f={apiId:qe.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},C=Se.getAbsoluteUrl(o,qn());await this.navigationClient.navigateInternal(C,f)}(c=t.popup)==null||c.close();return}}const d=u.getLogoutUri(e);this.eventHandler.emitEvent(ce.LOGOUT_SUCCESS,ne.Popup,e);const h=this.openPopup(d,t);if(this.eventHandler.emitEvent(ce.POPUP_OPENED,ne.Popup,{popupWindow:h},null),await this.monitorPopupForHash(h,t.popupWindowParent).catch(()=>{}),o){const f={apiId:qe.logoutPopup,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},C=Se.getAbsoluteUrl(o,qn());this.logger.verbose("Redirecting main window to url specified in the request"),this.logger.verbosePii(`Redirecting main window to: ${C}`),await this.navigationClient.navigateInternal(C,f)}else this.logger.verbose("No main window navigation requested")}catch(u){throw(l=t.popup)==null||l.close(),u instanceof je&&(u.setCorrelationId(this.correlationId),i.cacheFailedRequest(u)),this.browserStorage.setInteractionInProgress(!1),this.eventHandler.emitEvent(ce.LOGOUT_FAILURE,ne.Popup,null,u),this.eventHandler.emitEvent(ce.LOGOUT_END,ne.Popup),u}this.eventHandler.emitEvent(ce.LOGOUT_END,ne.Popup)}initiateAuthRequest(e,t){if(e)return this.logger.infoPii(`Navigate to: ${e}`),this.openPopup(e,t);throw this.logger.error("Navigate url is empty"),J(ra)}monitorPopupForHash(e,t){return new Promise((r,o)=>{this.logger.verbose("PopupHandler.monitorPopupForHash - polling started");const i=setInterval(()=>{if(e.closed){this.logger.error("PopupHandler.monitorPopupForHash - window closed"),clearInterval(i),o(J(qr));return}let s="";try{s=e.location.href}catch{}if(!s||s==="about:blank")return;clearInterval(i);let a="";const c=this.config.auth.OIDCOptions.serverResponseType;e&&(c===Ni.QUERY?a=e.location.search:a=e.location.hash),this.logger.verbose("PopupHandler.monitorPopupForHash - popup window is on same origin as caller"),r(a)},this.config.system.pollIntervalMilliseconds)}).finally(()=>{this.cleanPopup(e,t)})}openPopup(e,t){try{let r;if(t.popup?(r=t.popup,this.logger.verbosePii(`Navigating popup window to: ${e}`),r.location.assign(e)):typeof t.popup>"u"&&(this.logger.verbosePii(`Opening popup window to: ${e}`),r=this.openSizedPopup(e,t)),!r)throw J(vp);return r.focus&&r.focus(),this.currentWindow=r,t.popupWindowParent.addEventListener("beforeunload",this.unloadWindow),r}catch(r){throw this.logger.error("error opening popup "+r.message),this.browserStorage.setInteractionInProgress(!1),J(Cp)}}openSizedPopup(e,{popupName:t,popupWindowAttributes:r,popupWindowParent:o}){var f,C,p,v;const i=o.screenLeft?o.screenLeft:o.screenX,s=o.screenTop?o.screenTop:o.screenY,a=o.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,c=o.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;let l=(f=r.popupSize)==null?void 0:f.width,u=(C=r.popupSize)==null?void 0:C.height,d=(p=r.popupPosition)==null?void 0:p.top,h=(v=r.popupPosition)==null?void 0:v.left;return(!l||l<0||l>a)&&(this.logger.verbose("Default popup window width used. Window width not configured or invalid."),l=qt.POPUP_WIDTH),(!u||u<0||u>c)&&(this.logger.verbose("Default popup window height used. Window height not configured or invalid."),u=qt.POPUP_HEIGHT),(!d||d<0||d>c)&&(this.logger.verbose("Default popup window top position used. Window top not configured or invalid."),d=Math.max(0,c/2-qt.POPUP_HEIGHT/2+s)),(!h||h<0||h>a)&&(this.logger.verbose("Default popup window left position used. Window left not configured or invalid."),h=Math.max(0,a/2-qt.POPUP_WIDTH/2+i)),o.open(e,t,`width=${l}, height=${u}, top=${d}, left=${h}, scrollbars=yes`)}unloadWindow(e){this.browserStorage.cleanRequestByInteractionType(ne.Popup),this.currentWindow&&this.currentWindow.close(),e.preventDefault()}cleanPopup(e,t){e.close(),t.removeEventListener("beforeunload",this.unloadWindow),this.browserStorage.setInteractionInProgress(!1)}generatePopupName(e,t){return`${qt.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${e.join("-")}.${t}.${this.correlationId}`}generateLogoutPopupName(e){const t=e.account&&e.account.homeAccountId;return`${qt.POPUP_NAME_PREFIX}.${this.config.auth.clientId}.${t}.${this.correlationId}`}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class jd{constructor(e,t,r,o,i){this.authModule=e,this.browserStorage=t,this.authCodeRequest=r,this.logger=o,this.performanceClient=i}async initiateAuthRequest(e,t){if(this.logger.verbose("RedirectHandler.initiateAuthRequest called"),e){t.redirectStartPage&&(this.logger.verbose("RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page"),this.browserStorage.setTemporaryCache(xe.ORIGIN_URI,t.redirectStartPage,!0)),this.browserStorage.setTemporaryCache(xe.CORRELATION_ID,this.authCodeRequest.correlationId,!0),this.browserStorage.cacheCodeRequest(this.authCodeRequest),this.logger.infoPii(`RedirectHandler.initiateAuthRequest: Navigate to: ${e}`);const r={apiId:qe.acquireTokenRedirect,timeout:t.redirectTimeout,noHistory:!1};if(typeof t.onRedirectNavigate=="function")if(this.logger.verbose("RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback"),t.onRedirectNavigate(e)!==!1){this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating"),await t.navigationClient.navigateExternal(e,r);return}else{this.logger.verbose("RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation");return}else{this.logger.verbose("RedirectHandler.initiateAuthRequest: Navigating window to navigate url"),await t.navigationClient.navigateExternal(e,r);return}}else throw this.logger.info("RedirectHandler.initiateAuthRequest: Navigate url is empty"),J(ra)}async handleCodeResponse(e,t){this.logger.verbose("RedirectHandler.handleCodeResponse called"),this.browserStorage.setInteractionInProgress(!1);const r=this.browserStorage.generateStateKey(t),o=this.browserStorage.getTemporaryCache(r);if(!o)throw B(ys,"Cached State");let i;try{i=this.authModule.handleFragmentResponse(e,o)}catch(l){throw l instanceof yr&&l.subError===qr?J(qr):l}const s=this.browserStorage.generateNonceKey(o),a=this.browserStorage.getTemporaryCache(s);if(this.authCodeRequest.code=i.code,i.cloud_instance_host_name&&await $(this.authModule.updateAuthority.bind(this.authModule),b.UpdateTokenEndpointAuthority,this.logger,this.performanceClient,this.authCodeRequest.correlationId)(i.cloud_instance_host_name,this.authCodeRequest.correlationId),i.nonce=a||void 0,i.state=o,i.client_info)this.authCodeRequest.clientInfo=i.client_info;else{const l=this.checkCcsCredentials();l&&(this.authCodeRequest.ccsCredential=l)}const c=await this.authModule.acquireToken(this.authCodeRequest,i);return this.browserStorage.cleanRequestByState(t),c}checkCcsCredentials(){const e=this.browserStorage.getTemporaryCache(xe.CCS_CREDENTIAL,!0);if(e)try{return JSON.parse(e)}catch{this.authModule.logger.error("Cache credential could not be parsed"),this.authModule.logger.errorPii(`Cache credential could not be parsed: ${e}`)}return null}}/*! @azure/msal-browser v3.30.0 2025-08-05 */function k_(){if(typeof window>"u"||typeof window.performance>"u"||typeof window.performance.getEntriesByType!="function")return;const n=window.performance.getEntriesByType("navigation"),e=n.length?n[0]:void 0;return e==null?void 0:e.type}class O_ extends Lo{constructor(e,t,r,o,i,s,a,c,l,u){super(e,t,r,o,i,s,a,l,u),this.nativeStorage=c}async acquireToken(e){const t=await $(this.initializeAuthorizationRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,this.correlationId)(e,ne.Redirect);this.browserStorage.updateCacheEntries(t.state,t.nonce,t.authority,t.loginHint||"",t.account||null);const r=this.initializeServerTelemetryManager(qe.acquireTokenRedirect),o=i=>{i.persisted&&(this.logger.verbose("Page was restored from back/forward cache. Clearing temporary cache."),this.browserStorage.cleanRequestByState(t.state),this.eventHandler.emitEvent(ce.RESTORE_FROM_BFCACHE,ne.Redirect))};try{const i=await $(this.initializeAuthorizationCodeRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,this.correlationId)(t),s=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:r,requestAuthority:t.authority,requestAzureCloudOptions:t.azureCloudOptions,requestExtraQueryParameters:t.extraQueryParameters,account:t.account}),a=new jd(s,this.browserStorage,i,this.logger,this.performanceClient),c=await s.getAuthCodeUrl({...t,nativeBroker:_n.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,e.authenticationScheme)}),l=this.getRedirectStartPage(e.redirectStartPage);return this.logger.verbosePii(`Redirect start page: ${l}`),window.addEventListener("pageshow",o),await a.initiateAuthRequest(c,{navigationClient:this.navigationClient,redirectTimeout:this.config.system.redirectNavigationTimeout,redirectStartPage:l,onRedirectNavigate:e.onRedirectNavigate||this.config.auth.onRedirectNavigate})}catch(i){throw i instanceof je&&(i.setCorrelationId(this.correlationId),r.cacheFailedRequest(i)),window.removeEventListener("pageshow",o),this.browserStorage.cleanRequestByState(t.state),i}}async handleRedirectPromise(e="",t){const r=this.initializeServerTelemetryManager(qe.handleRedirectPromise);try{if(!this.browserStorage.isInteractionInProgress(!0))return this.logger.info("handleRedirectPromise called but there is no interaction in progress, returning null."),null;const[o,i]=this.getRedirectResponse(e||"");if(!o)return this.logger.info("handleRedirectPromise did not detect a response as a result of a redirect. Cleaning temporary cache."),this.browserStorage.cleanRequestByInteractionType(ne.Redirect),k_()!=="back_forward"?t.event.errorCode="no_server_response":this.logger.verbose("Back navigation event detected. Muting no_server_response error"),null;const s=this.browserStorage.getTemporaryCache(xe.ORIGIN_URI,!0)||k.EMPTY_STRING,a=Se.removeHashFromUrl(s),c=Se.removeHashFromUrl(window.location.href);if(a===c&&this.config.auth.navigateToLoginRequestUrl)return this.logger.verbose("Current page is loginRequestUrl, handling response"),s.indexOf("#")>-1&&Ub(s),await this.handleResponse(o,r);if(this.config.auth.navigateToLoginRequestUrl){if(!Kl()||this.config.system.allowRedirectInIframe){this.browserStorage.setTemporaryCache(xe.URL_HASH,i,!0);const l={apiId:qe.handleRedirectPromise,timeout:this.config.system.redirectNavigationTimeout,noHistory:!0};let u=!0;if(!s||s==="null"){const d=Fb();this.browserStorage.setTemporaryCache(xe.ORIGIN_URI,d,!0),this.logger.warning("Unable to get valid login request url from cache, redirecting to home page"),u=await this.navigationClient.navigateInternal(d,l)}else this.logger.verbose(`Navigating to loginRequestUrl: ${s}`),u=await this.navigationClient.navigateInternal(s,l);if(!u)return await this.handleResponse(o,r)}}else return this.logger.verbose("NavigateToLoginRequestUrl set to false, handling response"),await this.handleResponse(o,r);return null}catch(o){throw o instanceof je&&(o.setCorrelationId(this.correlationId),r.cacheFailedRequest(o)),this.browserStorage.cleanRequestByInteractionType(ne.Redirect),o}}getRedirectResponse(e){this.logger.verbose("getRedirectResponseHash called");let t=e;t||(this.config.auth.OIDCOptions.serverResponseType===Ni.QUERY?t=window.location.search:t=window.location.hash);let r=ws(t);if(r){try{I_(r,this.browserCrypto,ne.Redirect)}catch(i){return i instanceof je&&this.logger.error(`Interaction type validation failed due to ${i.errorCode}: ${i.errorMessage}`),[null,""]}return Db(window),this.logger.verbose("Hash contains known properties, returning response hash"),[r,t]}const o=this.browserStorage.getTemporaryCache(xe.URL_HASH,!0);return this.browserStorage.removeItem(this.browserStorage.generateCacheKey(xe.URL_HASH)),o&&(r=ws(o),r)?(this.logger.verbose("Hash does not contain known properties, returning cached hash"),[r,o]):[null,""]}async handleResponse(e,t){const r=e.state;if(!r)throw J(Nl);const o=this.browserStorage.getCachedRequest(r);if(this.logger.verbose("handleResponse called, retrieved cached request"),e.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw J(Mi);const c=new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.acquireTokenPopup,this.performanceClient,this.nativeMessageHandler,e.accountId,this.nativeStorage,o.correlationId),{userRequestState:l}=sn.parseRequestState(this.browserCrypto,r);return c.acquireToken({...o,state:l,prompt:void 0}).finally(()=>{this.browserStorage.cleanRequestByState(r)})}const i=this.browserStorage.getCachedAuthority(r);if(!i)throw J(Ml);const s=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:t,requestAuthority:i});return En.removeThrottle(this.browserStorage,this.config.auth.clientId,o),new jd(s,this.browserStorage,o,this.logger,this.performanceClient).handleCodeResponse(e,r)}async logout(e){var o,i;this.logger.verbose("logoutRedirect called");const t=this.initializeLogoutRequest(e),r=this.initializeServerTelemetryManager(qe.logout);try{this.eventHandler.emitEvent(ce.LOGOUT_START,ne.Redirect,e),await this.clearCacheOnLogout(t.account);const s={apiId:qe.logout,timeout:this.config.system.redirectNavigationTimeout,noHistory:!1},a=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:r,requestAuthority:e&&e.authority,requestExtraQueryParameters:e==null?void 0:e.extraQueryParameters,account:e&&e.account||void 0});if(a.authority.protocolMode===$n.OIDC)try{a.authority.endSessionEndpoint}catch{if((o=t.account)!=null&&o.homeAccountId){this.browserStorage.removeAccount((i=t.account)==null?void 0:i.homeAccountId,this.correlationId),this.eventHandler.emitEvent(ce.LOGOUT_SUCCESS,ne.Redirect,t);return}}const c=a.getLogoutUri(t);if(this.eventHandler.emitEvent(ce.LOGOUT_SUCCESS,ne.Redirect,t),e&&typeof e.onRedirectNavigate=="function")if(e.onRedirectNavigate(c)!==!1){this.logger.verbose("Logout onRedirectNavigate did not return false, navigating"),this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),await this.navigationClient.navigateExternal(c,s);return}else this.browserStorage.setInteractionInProgress(!1),this.logger.verbose("Logout onRedirectNavigate returned false, stopping navigation");else{this.browserStorage.getInteractionInProgress()||this.browserStorage.setInteractionInProgress(!0),await this.navigationClient.navigateExternal(c,s);return}}catch(s){throw s instanceof je&&(s.setCorrelationId(this.correlationId),r.cacheFailedRequest(s)),this.eventHandler.emitEvent(ce.LOGOUT_FAILURE,ne.Redirect,null,s),this.eventHandler.emitEvent(ce.LOGOUT_END,ne.Redirect),s}this.eventHandler.emitEvent(ce.LOGOUT_END,ne.Redirect)}getRedirectStartPage(e){const t=e||window.location.href;return Se.getAbsoluteUrl(t,qn())}}/*! @azure/msal-browser v3.30.0 2025-08-05 */async function P_(n,e,t,r,o){if(e.addQueueMeasurement(b.SilentHandlerInitiateAuthRequest,r),!n)throw t.info("Navigate url is empty"),J(ra);return o?$(M_,b.SilentHandlerLoadFrame,t,e,r)(n,o,e,r):Vr(x_,b.SilentHandlerLoadFrameSync,t,e,r)(n)}async function N_(n,e,t,r,o,i,s){return r.addQueueMeasurement(b.SilentHandlerMonitorIframeForHash,i),new Promise((a,c)=>{e{window.clearInterval(u),c(J(Tp))},e),u=window.setInterval(()=>{let d="";const h=n.contentWindow;try{d=h?h.location.href:""}catch{}if(!d||d==="about:blank")return;let f="";h&&(s===Ni.QUERY?f=h.location.search:f=h.location.hash),window.clearTimeout(l),window.clearInterval(u),a(f)},t)}).finally(()=>{Vr(L_,b.RemoveHiddenIframe,o,r,i)(n)})}function M_(n,e,t,r){return t.addQueueMeasurement(b.SilentHandlerLoadFrame,r),new Promise((o,i)=>{const s=nm();window.setTimeout(()=>{if(!s){i("Unable to load iframe");return}s.src=n,o(s)},e)})}function x_(n){const e=nm();return e.src=n,e}function nm(){const n=document.createElement("iframe");return n.className="msalSilentIframe",n.style.visibility="hidden",n.style.position="absolute",n.style.width=n.style.height="0",n.style.border="0",n.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),document.body.appendChild(n),n}function L_(n){document.body===n.parentNode&&document.body.removeChild(n)}/*! @azure/msal-browser v3.30.0 2025-08-05 */class D_ extends Lo{constructor(e,t,r,o,i,s,a,c,l,u,d){super(e,t,r,o,i,s,c,u,d),this.apiId=a,this.nativeStorage=l}async acquireToken(e){this.performanceClient.addQueueMeasurement(b.SilentIframeClientAcquireToken,e.correlationId),!e.loginHint&&!e.sid&&(!e.account||!e.account.username)&&this.logger.warning("No user hint provided. The authorization server may need more information to complete this request.");const t={...e};t.prompt?t.prompt!==ct.NONE&&t.prompt!==ct.NO_SESSION&&(this.logger.warning(`SilentIframeClient. Replacing invalid prompt ${t.prompt} with ${ct.NONE}`),t.prompt=ct.NONE):t.prompt=ct.NONE;const r=await $(this.initializeAuthorizationRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,e.correlationId)(t,ne.Silent);Yp(r.authority);const o=this.initializeServerTelemetryManager(this.apiId);let i;try{return i=await $(this.createAuthCodeClient.bind(this),b.StandardInteractionClientCreateAuthCodeClient,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:o,requestAuthority:r.authority,requestAzureCloudOptions:r.azureCloudOptions,requestExtraQueryParameters:r.extraQueryParameters,account:r.account}),await $(this.silentTokenHelper.bind(this),b.SilentIframeClientTokenHelper,this.logger,this.performanceClient,e.correlationId)(i,r)}catch(s){if(s instanceof je&&(s.setCorrelationId(this.correlationId),o.cacheFailedRequest(s)),!i||!(s instanceof je)||s.errorCode!==qt.INVALID_GRANT_ERROR)throw s;this.performanceClient.addFields({retryError:s.errorCode},this.correlationId);const a=await $(this.initializeAuthorizationRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,e.correlationId)(t,ne.Silent);return await $(this.silentTokenHelper.bind(this),b.SilentIframeClientTokenHelper,this.logger,this.performanceClient,this.correlationId)(i,a)}}logout(){return Promise.reject(J(oa))}async silentTokenHelper(e,t){const r=t.correlationId;this.performanceClient.addQueueMeasurement(b.SilentIframeClientTokenHelper,r);const o=await $(this.initializeAuthorizationCodeRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationCodeRequest,this.logger,this.performanceClient,r)(t),i=await $(e.getAuthCodeUrl.bind(e),b.GetAuthCodeUrl,this.logger,this.performanceClient,r)({...t,nativeBroker:_n.isNativeAvailable(this.config,this.logger,this.nativeMessageHandler,t.authenticationScheme)}),s=new Gl(e,this.browserStorage,o,this.logger,this.performanceClient),a=await $(P_,b.SilentHandlerInitiateAuthRequest,this.logger,this.performanceClient,r)(i,this.performanceClient,this.logger,r,this.config.system.navigateFrameWait),c=this.config.auth.OIDCOptions.serverResponseType,l=await $(N_,b.SilentHandlerMonitorIframeForHash,this.logger,this.performanceClient,r)(a,this.config.system.iframeHashTimeout,this.config.system.pollIntervalMilliseconds,this.performanceClient,this.logger,r,c),u=Vr(tm,b.DeserializeResponse,this.logger,this.performanceClient,this.correlationId)(l,c,this.logger);if(u.accountId){if(this.logger.verbose("Account id found in hash, calling WAM for token"),!this.nativeMessageHandler)throw J(Mi);const d=new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.apiId,this.performanceClient,this.nativeMessageHandler,u.accountId,this.browserStorage,r),{userRequestState:h}=sn.parseRequestState(this.browserCrypto,t.state);return $(d.acquireToken.bind(d),b.NativeInteractionClientAcquireToken,this.logger,this.performanceClient,r)({...t,state:h,prompt:t.prompt||ct.NONE})}return $(s.handleCodeResponse.bind(s),b.HandleCodeResponse,this.logger,this.performanceClient,r)(u,t)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class U_ extends Lo{async acquireToken(e){this.performanceClient.addQueueMeasurement(b.SilentRefreshClientAcquireToken,e.correlationId);const t=await $($l,b.InitializeBaseRequest,this.logger,this.performanceClient,e.correlationId)(e,this.config,this.performanceClient,this.logger),r={...e,...t};e.redirectUri&&(r.redirectUri=this.getRedirectUri(e.redirectUri));const o=this.initializeServerTelemetryManager(qe.acquireTokenSilent_silentFlow),i=await this.createRefreshTokenClient({serverTelemetryManager:o,authorityUrl:r.authority,azureCloudOptions:r.azureCloudOptions,account:r.account});return $(i.acquireTokenByRefreshToken.bind(i),b.RefreshTokenClientAcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(r).catch(s=>{throw s.setCorrelationId(this.correlationId),o.cacheFailedRequest(s),s})}logout(){return Promise.reject(J(oa))}async createRefreshTokenClient(e){const t=await $(this.getClientConfiguration.bind(this),b.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,this.correlationId)({serverTelemetryManager:e.serverTelemetryManager,requestAuthority:e.authorityUrl,requestAzureCloudOptions:e.azureCloudOptions,requestExtraQueryParameters:e.extraQueryParameters,account:e.account});return new Cc(t,this.performanceClient)}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class H_{constructor(e,t,r,o){this.isBrowserEnvironment=typeof window<"u",this.config=e,this.storage=t,this.logger=r,this.cryptoObj=o}loadExternalTokens(e,t,r){if(!this.isBrowserEnvironment)throw J(ia);const o=e.correlationId||kn(),i=t.id_token?Gr(t.id_token,In):void 0,s={protocolMode:this.config.auth.protocolMode,knownAuthorities:this.config.auth.knownAuthorities,cloudDiscoveryMetadata:this.config.auth.cloudDiscoveryMetadata,authorityMetadata:this.config.auth.authorityMetadata,skipAuthorityMetadataCache:this.config.auth.skipAuthorityMetadataCache},a=e.authority?new mt(mt.generateAuthority(e.authority,e.azureCloudOptions),this.config.system.networkClient,this.storage,s,this.logger,e.correlationId||kn()):void 0,c=this.loadAccount(e,r.clientInfo||t.client_info||"",o,i,a),l=this.loadIdToken(t,c.homeAccountId,c.environment,c.realm,o),u=this.loadAccessToken(e,t,c.homeAccountId,c.environment,c.realm,r,o),d=this.loadRefreshToken(t,c.homeAccountId,c.environment,o);return this.generateAuthenticationResult(e,{account:c,idToken:l,accessToken:u,refreshToken:d},i,a)}loadAccount(e,t,r,o,i){if(this.logger.verbose("TokenCache - loading account"),e.account){const l=ot.createFromAccountInfo(e.account);return this.storage.setAccount(l,r),l}else if(!i||!t&&!o)throw this.logger.error("TokenCache - if an account is not provided on the request, authority and either clientInfo or idToken must be provided instead."),J(kp);const s=ot.generateHomeAccountId(t,i.authorityType,this.logger,this.cryptoObj,o),a=o==null?void 0:o.tid,c=Rl(this.storage,i,s,In,r,o,t,i.hostnameAndPort,a,void 0,void 0,this.logger);return this.storage.setAccount(c,r),c}loadIdToken(e,t,r,o,i){if(!e.id_token)return this.logger.verbose("TokenCache - no id token found in response"),null;this.logger.verbose("TokenCache - loading id token");const s=Js(t,r,e.id_token,this.config.auth.clientId,o);return this.storage.setIdTokenCredential(s,i),s}loadAccessToken(e,t,r,o,i,s,a){if(t.access_token)if(t.expires_in){if(!t.scope&&(!e.scopes||!e.scopes.length))return this.logger.error("TokenCache - scopes not specified in the request or response. Cannot add token to the cache."),null}else return this.logger.error("TokenCache - no expiration set on the access token. Cannot add it to the cache."),null;else return this.logger.verbose("TokenCache - no access token found in response"),null;this.logger.verbose("TokenCache - loading access token");const c=t.scope?Je.fromString(t.scope):new Je(e.scopes),l=s.expiresOn||t.expires_in+new Date().getTime()/1e3,u=s.extendedExpiresOn||(t.ext_expires_in||t.expires_in)+new Date().getTime()/1e3,d=Xs(r,o,t.access_token,this.config.auth.clientId,i,c.printScopes(),l,u,In);return this.storage.setAccessTokenCredential(d,a),d}loadRefreshToken(e,t,r,o){if(!e.refresh_token)return this.logger.verbose("TokenCache - no refresh token found in response"),null;this.logger.verbose("TokenCache - loading refresh token");const i=Ug(t,r,e.refresh_token,this.config.auth.clientId,e.foci,void 0,e.refresh_token_expires_in);return this.storage.setRefreshTokenCredential(i,o),i}generateAuthenticationResult(e,t,r,o){var u,d,h;let i="",s=[],a=null,c;t!=null&&t.accessToken&&(i=t.accessToken.secret,s=Je.fromString(t.accessToken.target).asArray(),a=new Date(Number(t.accessToken.expiresOn)*1e3),c=new Date(Number(t.accessToken.extendedExpiresOn)*1e3));const l=t.account;return{authority:o?o.canonicalAuthority:"",uniqueId:t.account.localAccountId,tenantId:t.account.realm,scopes:s,account:l.getAccountInfo(),idToken:((u=t.idToken)==null?void 0:u.secret)||"",idTokenClaims:r||{},accessToken:i,fromCache:!0,expiresOn:a,correlationId:e.correlationId||"",requestId:"",extExpiresOn:c,familyId:((d=t.refreshToken)==null?void 0:d.familyId)||"",tokenType:((h=t==null?void 0:t.accessToken)==null?void 0:h.tokenType)||"",state:e.state||"",cloudGraphHostName:l.cloudGraphHostName||"",msGraphHost:l.msGraphHost||"",fromNativeBroker:!1}}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class F_ extends lp{constructor(e){super(e),this.includeRedirectUri=!1}}/*! @azure/msal-browser v3.30.0 2025-08-05 */class B_ extends Lo{constructor(e,t,r,o,i,s,a,c,l,u){super(e,t,r,o,i,s,c,l,u),this.apiId=a}async acquireToken(e){if(!e.code)throw J(Op);const t=await $(this.initializeAuthorizationRequest.bind(this),b.StandardInteractionClientInitializeAuthorizationRequest,this.logger,this.performanceClient,e.correlationId)(e,ne.Silent),r=this.initializeServerTelemetryManager(this.apiId);try{const o={...t,code:e.code},i=await $(this.getClientConfiguration.bind(this),b.StandardInteractionClientGetClientConfiguration,this.logger,this.performanceClient,e.correlationId)({serverTelemetryManager:r,requestAuthority:t.authority,requestAzureCloudOptions:t.azureCloudOptions,requestExtraQueryParameters:t.extraQueryParameters,account:t.account}),s=new F_(i);this.logger.verbose("Auth code client created");const a=new Gl(s,this.browserStorage,o,this.logger,this.performanceClient);return await $(a.handleCodeResponseFromServer.bind(a),b.HandleCodeResponseFromServer,this.logger,this.performanceClient,e.correlationId)({code:e.code,msgraph_host:e.msGraphHost,cloud_graph_host_name:e.cloudGraphHostName,cloud_instance_host_name:e.cloudInstanceHostName},t,!1)}catch(o){throw o instanceof je&&(o.setCorrelationId(this.correlationId),r.cacheFailedRequest(o)),o}}logout(){return Promise.reject(J(oa))}}/*! @azure/msal-browser v3.30.0 2025-08-05 */function fn(n){const e=n==null?void 0:n.idTokenClaims;if(e!=null&&e.tfp||e!=null&&e.acr)return"B2C";if(e!=null&&e.tid){if((e==null?void 0:e.tid)==="9188040d-6c67-4c5b-b112-36a304b66dad")return"MSA"}else return;return"AAD"}function Yi(n,e){try{ql(n)}catch(t){throw e.end({success:!1},t),t}}class aa{constructor(e){this.operatingContext=e,this.isBrowserEnvironment=this.operatingContext.isBrowserEnvironment(),this.config=e.getConfig(),this.initialized=!1,this.logger=this.operatingContext.getLogger(),this.networkClient=this.config.system.networkClient,this.navigationClient=this.config.system.navigationClient,this.redirectResponse=new Map,this.hybridAuthCodeResponses=new Map,this.performanceClient=this.config.telemetry.client,this.browserCrypto=this.isBrowserEnvironment?new Oo(this.logger,this.performanceClient):Cs,this.eventHandler=new h_(this.logger),this.browserStorage=this.isBrowserEnvironment?new bc(this.config.auth.clientId,this.config.cache,this.browserCrypto,this.logger,XE(this.config.auth),this.performanceClient):o_(this.config.auth.clientId,this.logger);const t={cacheLocation:Nt.MemoryStorage,temporaryCacheLocation:Nt.MemoryStorage,storeAuthStateInCookie:!1,secureCookies:!1,cacheMigrationEnabled:!1,claimsBasedCachingEnabled:!1};this.nativeInternalStorage=new bc(this.config.auth.clientId,t,this.browserCrypto,this.logger,void 0,this.performanceClient),this.tokenCache=new H_(this.config,this.browserStorage,this.logger,this.browserCrypto),this.activeSilentTokenRequests=new Map,this.trackPageVisibility=this.trackPageVisibility.bind(this),this.trackPageVisibilityWithMeasurement=this.trackPageVisibilityWithMeasurement.bind(this),this.listeningToStorageEvents=!1,this.handleAccountCacheChange=this.handleAccountCacheChange.bind(this)}static async createController(e,t){const r=new aa(e);return await r.initialize(t),r}trackPageVisibility(e){e&&(this.logger.info("Perf: Visibility change detected"),this.performanceClient.incrementFields({visibilityChangeCount:1},e))}async initialize(e){if(this.logger.trace("initialize called"),this.initialized){this.logger.info("initialize has already been called, exiting early.");return}if(!this.isBrowserEnvironment){this.logger.info("in non-browser environment, exiting early."),this.initialized=!0,this.eventHandler.emitEvent(ce.INITIALIZE_END);return}const t=(e==null?void 0:e.correlationId)||this.getRequestCorrelationId(),r=this.config.system.allowNativeBroker,o=this.performanceClient.startMeasurement(b.InitializeClientApplication,t);if(this.eventHandler.emitEvent(ce.INITIALIZE_START),r)try{this.nativeExtensionProvider=await _n.createProvider(this.logger,this.config.system.nativeBrokerHandshakeTimeout,this.performanceClient)}catch(i){this.logger.verbose(i)}this.config.cache.claimsBasedCachingEnabled||(this.logger.verbose("Claims-based caching is disabled. Clearing the previous cache with claims"),await $(this.browserStorage.clearTokensAndKeysWithClaims.bind(this.browserStorage),b.ClearTokensAndKeysWithClaims,this.logger,this.performanceClient,t)(this.performanceClient,t)),this.initialized=!0,this.eventHandler.emitEvent(ce.INITIALIZE_END),o.end({allowNativeBroker:r,success:!0})}async handleRedirectPromise(e){if(this.logger.verbose("handleRedirectPromise called"),Wp(this.initialized),this.isBrowserEnvironment){const t=e||"";let r=this.redirectResponse.get(t);return typeof r>"u"?(r=this.handleRedirectPromiseInternal(e),this.redirectResponse.set(t,r),this.logger.verbose("handleRedirectPromise has been called for the first time, storing the promise")):this.logger.verbose("handleRedirectPromise has been called previously, returning the result from the first call"),r}return this.logger.verbose("handleRedirectPromise returns null, not browser environment"),null}async handleRedirectPromiseInternal(e){const t=this.getAllAccounts(),r=this.browserStorage.getCachedNativeRequest(),o=r&&_n.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider)&&this.nativeExtensionProvider&&!e,i=o?r==null?void 0:r.correlationId:this.browserStorage.getTemporaryCache(xe.CORRELATION_ID,!0)||"",s=this.performanceClient.startMeasurement(b.AcquireTokenRedirect,i);this.eventHandler.emitEvent(ce.HANDLE_REDIRECT_START,ne.Redirect);let a;if(o&&this.nativeExtensionProvider){this.logger.trace("handleRedirectPromise - acquiring token from native platform");const c=new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.handleRedirectPromise,this.performanceClient,this.nativeExtensionProvider,r.accountId,this.nativeInternalStorage,r.correlationId);a=$(c.handleRedirectPromise.bind(c),b.HandleNativeRedirectPromiseMeasurement,this.logger,this.performanceClient,s.event.correlationId)(this.performanceClient,s.event.correlationId)}else{this.logger.trace("handleRedirectPromise - acquiring token from web flow");const c=this.createRedirectClient(i);a=$(c.handleRedirectPromise.bind(c),b.HandleRedirectPromiseMeasurement,this.logger,this.performanceClient,s.event.correlationId)(e,s)}return a.then(c=>(c?(t.length{const l=c;throw t.length>0?this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_FAILURE,ne.Redirect,null,l):this.eventHandler.emitEvent(ce.LOGIN_FAILURE,ne.Redirect,null,l),this.eventHandler.emitEvent(ce.HANDLE_REDIRECT_END,ne.Redirect),s.end({success:!1},l),c})}async acquireTokenRedirect(e){const t=this.getRequestCorrelationId(e);this.logger.verbose("acquireTokenRedirect called",t);const r=this.performanceClient.startMeasurement(b.AcquireTokenPreRedirect,t);r.add({accountType:fn(e.account),scenarioId:e.scenarioId});const o=e.onRedirectNavigate;if(o)e.onRedirectNavigate=s=>{const a=typeof o=="function"?o(s):void 0;return a!==!1?r.end({success:!0}):r.discard(),a};else{const s=this.config.auth.onRedirectNavigate;this.config.auth.onRedirectNavigate=a=>{const c=typeof s=="function"?s(a):void 0;return c!==!1?r.end({success:!0}):r.discard(),c}}const i=this.getAllAccounts().length>0;try{Fd(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0),i?this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_START,ne.Redirect,e):this.eventHandler.emitEvent(ce.LOGIN_START,ne.Redirect,e);let s;return this.nativeExtensionProvider&&this.canUseNative(e)?s=new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.acquireTokenRedirect,this.performanceClient,this.nativeExtensionProvider,this.getNativeAccountId(e),this.nativeInternalStorage,t).acquireTokenRedirect(e,r).catch(c=>{if(c instanceof bn&&to(c))return this.nativeExtensionProvider=void 0,this.createRedirectClient(t).acquireToken(e);if(c instanceof ln)return this.logger.verbose("acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createRedirectClient(t).acquireToken(e);throw this.browserStorage.setInteractionInProgress(!1),c}):s=this.createRedirectClient(t).acquireToken(e),await s}catch(s){throw r.end({success:!1},s),i?this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_FAILURE,ne.Redirect,null,s):this.eventHandler.emitEvent(ce.LOGIN_FAILURE,ne.Redirect,null,s),s}}acquireTokenPopup(e){const t=this.getRequestCorrelationId(e),r=this.performanceClient.startMeasurement(b.AcquireTokenPopup,t);r.add({scenarioId:e.scenarioId,accountType:fn(e.account)});try{this.logger.verbose("acquireTokenPopup called",t),Yi(this.initialized,r),this.browserStorage.setInteractionInProgress(!0)}catch(s){return Promise.reject(s)}const o=this.getAllAccounts();o.length>0?this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_START,ne.Popup,e):this.eventHandler.emitEvent(ce.LOGIN_START,ne.Popup,e);let i;return this.canUseNative(e)?i=this.acquireTokenNative({...e,correlationId:t},qe.acquireTokenPopup).then(s=>(this.browserStorage.setInteractionInProgress(!1),r.end({success:!0,isNativeBroker:!0,accountType:fn(s.account)}),s)).catch(s=>{if(s instanceof bn&&to(s))return this.nativeExtensionProvider=void 0,this.createPopupClient(t).acquireToken(e);if(s instanceof ln)return this.logger.verbose("acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow"),this.createPopupClient(t).acquireToken(e);throw this.browserStorage.setInteractionInProgress(!1),s}):i=this.createPopupClient(t).acquireToken(e),i.then(s=>(o.length(o.length>0?this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_FAILURE,ne.Popup,null,s):this.eventHandler.emitEvent(ce.LOGIN_FAILURE,ne.Popup,null,s),r.end({success:!1},s),Promise.reject(s)))}trackPageVisibilityWithMeasurement(){const e=this.ssoSilentMeasurement||this.acquireTokenByCodeAsyncMeasurement;e&&(this.logger.info("Perf: Visibility change detected in ",e.event.name),e.increment({visibilityChangeCount:1}))}async ssoSilent(e){var i,s;const t=this.getRequestCorrelationId(e),r={...e,prompt:e.prompt,correlationId:t};this.ssoSilentMeasurement=this.performanceClient.startMeasurement(b.SsoSilent,t),(i=this.ssoSilentMeasurement)==null||i.add({scenarioId:e.scenarioId,accountType:fn(e.account)}),Yi(this.initialized,this.ssoSilentMeasurement),(s=this.ssoSilentMeasurement)==null||s.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),this.logger.verbose("ssoSilent called",t),this.eventHandler.emitEvent(ce.SSO_SILENT_START,ne.Silent,r);let o;return this.canUseNative(r)?o=this.acquireTokenNative(r,qe.ssoSilent).catch(a=>{if(a instanceof bn&&to(a))return this.nativeExtensionProvider=void 0,this.createSilentIframeClient(r.correlationId).acquireToken(r);throw a}):o=this.createSilentIframeClient(r.correlationId).acquireToken(r),o.then(a=>{var c;return this.eventHandler.emitEvent(ce.SSO_SILENT_SUCCESS,ne.Silent,a),(c=this.ssoSilentMeasurement)==null||c.end({success:!0,isNativeBroker:a.fromNativeBroker,accessTokenSize:a.accessToken.length,idTokenSize:a.idToken.length,accountType:fn(a.account)}),a}).catch(a=>{var c;throw this.eventHandler.emitEvent(ce.SSO_SILENT_FAILURE,ne.Silent,null,a),(c=this.ssoSilentMeasurement)==null||c.end({success:!1},a),a}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenByCode(e){const t=this.getRequestCorrelationId(e);this.logger.trace("acquireTokenByCode called",t);const r=this.performanceClient.startMeasurement(b.AcquireTokenByCode,t);Yi(this.initialized,r),this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_BY_CODE_START,ne.Silent,e),r.add({scenarioId:e.scenarioId});try{if(e.code&&e.nativeAccountId)throw J(Np);if(e.code){const o=e.code;let i=this.hybridAuthCodeResponses.get(o);return i?(this.logger.verbose("Existing acquireTokenByCode request found",t),r.discard()):(this.logger.verbose("Initiating new acquireTokenByCode request",t),i=this.acquireTokenByCodeAsync({...e,correlationId:t}).then(s=>(this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_BY_CODE_SUCCESS,ne.Silent,s),this.hybridAuthCodeResponses.delete(o),r.end({success:!0,isNativeBroker:s.fromNativeBroker,accessTokenSize:s.accessToken.length,idTokenSize:s.idToken.length,accountType:fn(s.account)}),s)).catch(s=>{throw this.hybridAuthCodeResponses.delete(o),this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_BY_CODE_FAILURE,ne.Silent,null,s),r.end({success:!1},s),s}),this.hybridAuthCodeResponses.set(o,i)),await i}else if(e.nativeAccountId)if(this.canUseNative(e,e.nativeAccountId)){const o=await this.acquireTokenNative({...e,correlationId:t},qe.acquireTokenByCode,e.nativeAccountId).catch(i=>{throw i instanceof bn&&to(i)&&(this.nativeExtensionProvider=void 0),i});return r.end({accountType:fn(o.account),success:!0}),o}else throw J(Mp);else throw J(Pp)}catch(o){throw this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_BY_CODE_FAILURE,ne.Silent,null,o),r.end({success:!1},o),o}}async acquireTokenByCodeAsync(e){var o;return this.logger.trace("acquireTokenByCodeAsync called",e.correlationId),this.acquireTokenByCodeAsyncMeasurement=this.performanceClient.startMeasurement(b.AcquireTokenByCodeAsync,e.correlationId),(o=this.acquireTokenByCodeAsyncMeasurement)==null||o.increment({visibilityChangeCount:0}),document.addEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement),await this.createSilentAuthCodeClient(e.correlationId).acquireToken(e).then(i=>{var s;return(s=this.acquireTokenByCodeAsyncMeasurement)==null||s.end({success:!0,fromCache:i.fromCache,isNativeBroker:i.fromNativeBroker}),i}).catch(i=>{var s;throw(s=this.acquireTokenByCodeAsyncMeasurement)==null||s.end({success:!1},i),i}).finally(()=>{document.removeEventListener("visibilitychange",this.trackPageVisibilityWithMeasurement)})}async acquireTokenFromCache(e,t){switch(this.performanceClient.addQueueMeasurement(b.AcquireTokenFromCache,e.correlationId),t){case Ht.Default:case Ht.AccessToken:case Ht.AccessTokenAndRefreshToken:const r=this.createSilentCacheClient(e.correlationId);return $(r.acquireToken.bind(r),b.SilentCacheClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw B(Kn)}}async acquireTokenByRefreshToken(e,t){switch(this.performanceClient.addQueueMeasurement(b.AcquireTokenByRefreshToken,e.correlationId),t){case Ht.Default:case Ht.AccessTokenAndRefreshToken:case Ht.RefreshToken:case Ht.RefreshTokenAndNetwork:const r=this.createSilentRefreshClient(e.correlationId);return $(r.acquireToken.bind(r),b.SilentRefreshClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e);default:throw B(Kn)}}async acquireTokenBySilentIframe(e){this.performanceClient.addQueueMeasurement(b.AcquireTokenBySilentIframe,e.correlationId);const t=this.createSilentIframeClient(e.correlationId);return $(t.acquireToken.bind(t),b.SilentIframeClientAcquireToken,this.logger,this.performanceClient,e.correlationId)(e)}async logout(e){const t=this.getRequestCorrelationId(e);return this.logger.warning("logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.",t),this.logoutRedirect({correlationId:t,...e})}async logoutRedirect(e){const t=this.getRequestCorrelationId(e);return Fd(this.initialized,this.config),this.browserStorage.setInteractionInProgress(!0),this.createRedirectClient(t).logout(e)}logoutPopup(e){try{const t=this.getRequestCorrelationId(e);return ql(this.initialized),this.browserStorage.setInteractionInProgress(!0),this.createPopupClient(t).logout(e)}catch(t){return Promise.reject(t)}}async clearCache(e){if(!this.isBrowserEnvironment){this.logger.info("in non-browser environment, returning early.");return}const t=this.getRequestCorrelationId(e);return this.createSilentCacheClient(t).logout(e)}getAllAccounts(e){const t=this.getRequestCorrelationId();return i_(this.logger,this.browserStorage,this.isBrowserEnvironment,t,e)}getAccount(e){const t=this.getRequestCorrelationId();return s_(e,this.logger,this.browserStorage,t)}getAccountByUsername(e){const t=this.getRequestCorrelationId();return a_(e,this.logger,this.browserStorage,t)}getAccountByHomeId(e){const t=this.getRequestCorrelationId();return c_(e,this.logger,this.browserStorage,t)}getAccountByLocalId(e){const t=this.getRequestCorrelationId();return l_(e,this.logger,this.browserStorage,t)}setActiveAccount(e){const t=this.getRequestCorrelationId();u_(e,this.browserStorage,t)}getActiveAccount(){const e=this.getRequestCorrelationId();return d_(this.browserStorage,e)}async hydrateCache(e,t){this.logger.verbose("hydrateCache called");const r=ot.createFromAccountInfo(e.account,e.cloudGraphHostName,e.msGraphHost);return this.browserStorage.setAccount(r,e.correlationId),e.fromNativeBroker?(this.logger.verbose("Response was from native broker, storing in-memory"),this.nativeInternalStorage.hydrateCache(e,t)):this.browserStorage.hydrateCache(e,t)}async acquireTokenNative(e,t,r){if(this.logger.trace("acquireTokenNative called"),!this.nativeExtensionProvider)throw J(Mi);return new go(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,t,this.performanceClient,this.nativeExtensionProvider,r||this.getNativeAccountId(e),this.nativeInternalStorage,e.correlationId).acquireToken(e)}canUseNative(e,t){if(this.logger.trace("canUseNative called"),!_n.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme))return this.logger.trace("canUseNative: isNativeAvailable returned false, returning false"),!1;if(e.prompt)switch(e.prompt){case ct.NONE:case ct.CONSENT:case ct.LOGIN:this.logger.trace("canUseNative: prompt is compatible with native flow");break;default:return this.logger.trace(`canUseNative: prompt = ${e.prompt} is not compatible with native flow, returning false`),!1}return!t&&!this.getNativeAccountId(e)?(this.logger.trace("canUseNative: nativeAccountId is not available, returning false"),!1):!0}getNativeAccountId(e){const t=e.account||this.getAccount({loginHint:e.loginHint,sid:e.sid})||this.getActiveAccount();return t&&t.nativeAccountId||""}createPopupClient(e){return new R_(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createRedirectClient(e){return new O_(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentIframeClient(e){return new D_(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.ssoSilent,this.performanceClient,this.nativeInternalStorage,this.nativeExtensionProvider,e)}createSilentCacheClient(e){return new em(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentRefreshClient(e){return new U_(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,this.performanceClient,this.nativeExtensionProvider,e)}createSilentAuthCodeClient(e){return new B_(this.config,this.browserStorage,this.browserCrypto,this.logger,this.eventHandler,this.navigationClient,qe.acquireTokenByCode,this.performanceClient,this.nativeExtensionProvider,e)}addEventCallback(e,t){return this.eventHandler.addEventCallback(e,t)}removeEventCallback(e){this.eventHandler.removeEventCallback(e)}addPerformanceCallback(e){return Qp(),this.performanceClient.addPerformanceCallback(e)}removePerformanceCallback(e){return this.performanceClient.removePerformanceCallback(e)}enableAccountStorageEvents(){typeof window>"u"||(this.listeningToStorageEvents?this.logger.verbose("Account storage listener already registered."):(this.logger.verbose("Adding account storage listener."),this.listeningToStorageEvents=!0,window.addEventListener("storage",this.handleAccountCacheChange)))}disableAccountStorageEvents(){typeof window>"u"||(this.listeningToStorageEvents?(this.logger.verbose("Removing account storage listener."),window.removeEventListener("storage",this.handleAccountCacheChange),this.listeningToStorageEvents=!1):this.logger.verbose("No account storage listener registered."))}handleAccountCacheChange(e){var t;try{(t=e.key)!=null&&t.includes(st.ACTIVE_ACCOUNT_FILTERS)&&this.eventHandler.emitEvent(ce.ACTIVE_ACCOUNT_CHANGED);const r=e.newValue||e.oldValue;if(!r)return;const o=JSON.parse(r);if(typeof o!="object"||!ot.isAccountEntity(o))return;const s=Io.toObject(new ot,o).getAccountInfo();!e.oldValue&&e.newValue?(this.logger.info("Account was added to cache in a different window"),this.eventHandler.emitEvent(ce.ACCOUNT_ADDED,void 0,s)):!e.newValue&&e.oldValue&&(this.logger.info("Account was removed from cache in a different window"),this.eventHandler.emitEvent(ce.ACCOUNT_REMOVED,void 0,s))}catch{return}}getTokenCache(){return this.tokenCache}getLogger(){return this.logger}setLogger(e){this.logger=e}initializeWrapperLibrary(e,t){this.browserStorage.setWrapperMetadata(e,t)}setNavigationClient(e){this.navigationClient=e}getConfiguration(){return this.config}getPerformanceClient(){return this.performanceClient}isBrowserEnv(){return this.isBrowserEnvironment}getRequestCorrelationId(e){return e!=null&&e.correlationId?e.correlationId:this.isBrowserEnvironment?kn():k.EMPTY_STRING}async loginRedirect(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginRedirect called",t),this.acquireTokenRedirect({correlationId:t,...e||Dd})}loginPopup(e){const t=this.getRequestCorrelationId(e);return this.logger.verbose("loginPopup called",t),this.acquireTokenPopup({correlationId:t,...e||Dd})}async acquireTokenSilent(e){const t=this.getRequestCorrelationId(e),r=this.performanceClient.startMeasurement(b.AcquireTokenSilent,t);r.add({cacheLookupPolicy:e.cacheLookupPolicy,scenarioId:e.scenarioId}),Yi(this.initialized,r),this.logger.verbose("acquireTokenSilent called",t);const o=e.account||this.getActiveAccount();if(!o)throw J(bp);r.add({accountType:fn(o)});const i={clientId:this.config.auth.clientId,authority:e.authority||k.EMPTY_STRING,scopes:e.scopes,homeAccountIdentifier:o.homeAccountId,claims:e.claims,authenticationScheme:e.authenticationScheme,resourceRequestMethod:e.resourceRequestMethod,resourceRequestUri:e.resourceRequestUri,shrClaims:e.shrClaims,sshKid:e.sshKid,shrOptions:e.shrOptions},s=JSON.stringify(i),a=this.activeSilentTokenRequests.get(s);if(typeof a>"u"){this.logger.verbose("acquireTokenSilent called for the first time, storing active request",t);const c=$(this.acquireTokenSilentAsync.bind(this),b.AcquireTokenSilentAsync,this.logger,this.performanceClient,t)({...e,correlationId:t},o).then(l=>(this.activeSilentTokenRequests.delete(s),r.end({success:!0,fromCache:l.fromCache,isNativeBroker:l.fromNativeBroker,cacheLookupPolicy:e.cacheLookupPolicy,accessTokenSize:l.accessToken.length,idTokenSize:l.idToken.length}),l)).catch(l=>{throw this.activeSilentTokenRequests.delete(s),r.end({success:!1},l),l});return this.activeSilentTokenRequests.set(s,c),{...await c,state:e.state}}else return this.logger.verbose("acquireTokenSilent has been called previously, returning the result from the first call",t),r.discard(),{...await a,state:e.state}}async acquireTokenSilentAsync(e,t){const r=()=>this.trackPageVisibility(e.correlationId);this.performanceClient.addQueueMeasurement(b.AcquireTokenSilentAsync,e.correlationId),this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_START,ne.Silent,e),e.correlationId&&this.performanceClient.incrementFields({visibilityChangeCount:0},e.correlationId),document.addEventListener("visibilitychange",r);const o=await $(y_,b.InitializeSilentRequest,this.logger,this.performanceClient,e.correlationId)(e,t,this.config,this.performanceClient,this.logger),i=e.cacheLookupPolicy||Ht.Default;return this.acquireTokenSilentNoIframe(o,i).catch(async a=>{if(K_(a,i))if(this.activeIframeRequest)if(i!==Ht.Skip){const[l,u]=this.activeIframeRequest;this.logger.verbose(`Iframe request is already in progress, awaiting resolution for request with correlationId: ${u}`,o.correlationId);const d=this.performanceClient.startMeasurement(b.AwaitConcurrentIframe,o.correlationId);d.add({awaitIframeCorrelationId:u});const h=await l;if(d.end({success:h}),h)return this.logger.verbose(`Parallel iframe request with correlationId: ${u} succeeded. Retrying cache and/or RT redemption`,o.correlationId),this.acquireTokenSilentNoIframe(o,i);throw this.logger.info(`Iframe request with correlationId: ${u} failed. Interaction is required.`),a}else return this.logger.warning("Another iframe request is currently in progress and CacheLookupPolicy is set to Skip. This may result in degraded performance and/or reliability for both calls. Please consider changing the CacheLookupPolicy to take advantage of request queuing and token cache.",o.correlationId),$(this.acquireTokenBySilentIframe.bind(this),b.AcquireTokenBySilentIframe,this.logger,this.performanceClient,o.correlationId)(o);else{let l;return this.activeIframeRequest=[new Promise(u=>{l=u}),o.correlationId],this.logger.verbose("Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.",o.correlationId),$(this.acquireTokenBySilentIframe.bind(this),b.AcquireTokenBySilentIframe,this.logger,this.performanceClient,o.correlationId)(o).then(u=>(l(!0),u)).catch(u=>{throw l(!1),u}).finally(()=>{this.activeIframeRequest=void 0})}else throw a}).then(a=>(this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_SUCCESS,ne.Silent,a),e.correlationId&&this.performanceClient.addFields({fromCache:a.fromCache,isNativeBroker:a.fromNativeBroker},e.correlationId),a)).catch(a=>{throw this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_FAILURE,ne.Silent,null,a),a}).finally(()=>{document.removeEventListener("visibilitychange",r)})}async acquireTokenSilentNoIframe(e,t){return _n.isNativeAvailable(this.config,this.logger,this.nativeExtensionProvider,e.authenticationScheme)&&e.account.nativeAccountId?(this.logger.verbose("acquireTokenSilent - attempting to acquire token from native platform"),this.acquireTokenNative(e,qe.acquireTokenSilent_silentFlow).catch(async r=>{throw r instanceof bn&&to(r)?(this.logger.verbose("acquireTokenSilent - native platform unavailable, falling back to web flow"),this.nativeExtensionProvider=void 0,B(Kn)):r})):(this.logger.verbose("acquireTokenSilent - attempting to acquire token from web flow"),$(this.acquireTokenFromCache.bind(this),b.AcquireTokenFromCache,this.logger,this.performanceClient,e.correlationId)(e,t).catch(r=>{if(t===Ht.AccessToken)throw r;return this.eventHandler.emitEvent(ce.ACQUIRE_TOKEN_NETWORK_START,ne.Silent,e),$(this.acquireTokenByRefreshToken.bind(this),b.AcquireTokenByRefreshToken,this.logger,this.performanceClient,e.correlationId)(e,t)}))}}function K_(n,e){const t=!(n instanceof ln&&n.subError!==na),r=n.errorCode===qt.INVALID_GRANT_ERROR||n.errorCode===Kn,o=t&&r||n.errorCode===Es||n.errorCode===Il,i=Ab.includes(e);return o&&i}/*! @azure/msal-browser v3.30.0 2025-08-05 */async function q_(n,e){const t=new jr(n);return await t.initialize(),aa.createController(t,e)}/*! @azure/msal-browser v3.30.0 2025-08-05 */class Vl{static async createPublicClientApplication(e){const t=await q_(e);return new Vl(e,t)}constructor(e,t){this.controller=t||new aa(new jr(e))}async initialize(e){return this.controller.initialize(e)}async acquireTokenPopup(e){return this.controller.acquireTokenPopup(e)}acquireTokenRedirect(e){return this.controller.acquireTokenRedirect(e)}acquireTokenSilent(e){return this.controller.acquireTokenSilent(e)}acquireTokenByCode(e){return this.controller.acquireTokenByCode(e)}addEventCallback(e,t){return this.controller.addEventCallback(e,t)}removeEventCallback(e){return this.controller.removeEventCallback(e)}addPerformanceCallback(e){return this.controller.addPerformanceCallback(e)}removePerformanceCallback(e){return this.controller.removePerformanceCallback(e)}enableAccountStorageEvents(){this.controller.enableAccountStorageEvents()}disableAccountStorageEvents(){this.controller.disableAccountStorageEvents()}getAccount(e){return this.controller.getAccount(e)}getAccountByHomeId(e){return this.controller.getAccountByHomeId(e)}getAccountByLocalId(e){return this.controller.getAccountByLocalId(e)}getAccountByUsername(e){return this.controller.getAccountByUsername(e)}getAllAccounts(e){return this.controller.getAllAccounts(e)}handleRedirectPromise(e){return this.controller.handleRedirectPromise(e)}loginPopup(e){return this.controller.loginPopup(e)}loginRedirect(e){return this.controller.loginRedirect(e)}logout(e){return this.controller.logout(e)}logoutRedirect(e){return this.controller.logoutRedirect(e)}logoutPopup(e){return this.controller.logoutPopup(e)}ssoSilent(e){return this.controller.ssoSilent(e)}getTokenCache(){return this.controller.getTokenCache()}getLogger(){return this.controller.getLogger()}setLogger(e){this.controller.setLogger(e)}setActiveAccount(e){this.controller.setActiveAccount(e)}getActiveAccount(){return this.controller.getActiveAccount()}initializeWrapperLibrary(e,t){return this.controller.initializeWrapperLibrary(e,t)}setNavigationClient(e){this.controller.setNavigationClient(e)}getConfiguration(){return this.controller.getConfiguration()}async hydrateCache(e,t){return this.controller.hydrateCache(e,t)}clearCache(e){return this.controller.clearCache(e)}}const j_="modulepreload",$_=function(n){return"/cc-dashboard/static/"+n},$d={},Dt=function(e,t,r){let o=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),a=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.allSettled(t.map(c=>{if(c=$_(c),c in $d)return;$d[c]=!0;const l=c.endsWith(".css"),u=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${u}`))return;const d=document.createElement("link");if(d.rel=l?"stylesheet":j_,l||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),l)return new Promise((h,f)=>{d.addEventListener("load",h),d.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return o.then(s=>{for(const a of s||[])a.status==="rejected"&&i(a.reason);return e().catch(i)})},Ss=new Vl({auth:{clientId:"9079054c-9620-4757-a256-23413042f1ef",authority:"https://login.microsoftonline.com/e519c2e6-bc6d-4fdf-8d9c-923c2f002385",redirectUri:"https://optical-dev.oliver.solutions/cc-dashboard/"},cache:{cacheLocation:"sessionStorage",storeAuthStateInCookie:!1}}),G_=["openid","profile","email"];async function V_(){await Ss.initialize(),await Ss.handleRedirectPromise()}const ca=nv("auth",()=>{const n=Te(null),e=Te(null),t=Te(!1),r=Te(null),o=_e(()=>n.value!==null),i=_e(()=>{var u;return((u=e.value)==null?void 0:u.role)==="admin"});async function s(){var u,d;t.value=!0,r.value=null;try{const f=(await Ss.loginPopup({scopes:G_})).idToken,C=await ps.post("/api/auth/microsoft",{id_token:f});n.value=C.data.access_token,await c()}catch(h){const f=h;throw r.value=((d=(u=f.response)==null?void 0:u.data)==null?void 0:d.detail)??f.message??"Login failed",h}finally{t.value=!1}}async function a(){n.value=null,e.value=null;try{await Ss.clearCache()}catch{}}async function c(){const u=await ps.get("/api/auth/me");e.value=u.data}function l(){return n.value}return{token:n,user:e,loading:t,error:r,isAuthenticated:o,isAdmin:i,loginWithMicrosoft:s,logout:a,fetchMe:c,getToken:l}}),z_={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"},Q_={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"},W_={class:"flex items-center justify-between px-4 py-3 border-b border-gray-700 bg-gray-800 flex-shrink-0"},Y_={class:"flex items-center gap-1"},J_={key:0,class:"flex flex-col items-center justify-center h-full py-8 text-center"},X_={class:"mt-4 flex flex-wrap justify-center gap-2"},Z_=["onClick"],eS={key:0,class:"flex justify-end"},tS={class:"max-w-[80%] rounded-2xl rounded-tr-sm bg-amber-400 px-3 py-2"},nS={class:"text-sm text-gray-900"},rS={key:1,class:"flex justify-start"},oS={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},iS=["innerHTML"],sS={key:1,class:"flex justify-start"},aS={class:"max-w-[90%] rounded-2xl rounded-tl-sm bg-gray-800 border border-gray-700 px-3 py-2"},cS={key:0,class:"mb-2 space-y-1"},lS=["innerHTML"],uS={key:2,class:"flex items-center gap-1"},dS={class:"flex-shrink-0 border-t border-gray-700 bg-gray-800 p-3"},hS={class:"flex items-end gap-2"},fS=["disabled","onKeydown"],gS=["disabled"],pS=$r({__name:"AssistantWidget",setup(n){const e=ca(),t=Te(!1),r=Te([]),o=Te(""),i=Te(!1),s=Te(""),a=Te([]),c=Te(0),l=Te(),u=Te(),d=["Check today for gaps","What's on my task list today?","Auto-schedule today","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…",list_tasks:"Loading tasks…",create_task:"Creating task…",update_task:"Updating task…",delete_task:"Deleting task…",complete_task:"Completing task…",prioritize_day:"Prioritizing tasks…",schedule_task:"Scheduling task…",auto_schedule_day:"Auto-scheduling day…",list_projects:"Loading projects…",list_manual_entries:"Loading manual entries…",delete_manual_entry:"Deleting entry…",generate_report:"Generating report…",search_sessions:"Searching sessions…",list_work_items:"Loading work items…"}[S]??`Running ${S}…`}function f(S){const V=S.replace(/&/g,"&").replace(//g,">").split(` +`),U=[];let Z=!1;for(const ue of V){const we=ue.replace(/\*\*(.+?)\*\*/g,'$1').replace(/`(.+?)`/g,'$1');/^###? (.+)/.test(we)?(Z&&(U.push(""),Z=!1),U.push(`

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

`)):/^# (.+)/.test(we)?(Z&&(U.push(""),Z=!1),U.push(`

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

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

${we}

`))}return Z&&U.push(""),U.join("")}async function C(){try{const S=await fetch("/cc-dashboard/api/assistant/history?limit=30",{headers:{Authorization:`Bearer ${e.token}`}});if(!S.ok)return;r.value=await S.json()}catch{}}async function p(){try{const S=await fetch("/cc-dashboard/api/assistant/flags?days_back=7&resolved=false",{headers:{Authorization:`Bearer ${e.token}`}});if(!S.ok)return;const x=await S.json();c.value=x.length}catch{}}async function v(){await fetch("/cc-dashboard/api/assistant/history",{method:"DELETE",headers:{Authorization:`Bearer ${e.token}`}}),r.value=[]}function A(){_("Show me all unresolved time-tracking issues from the last 7 days")}function _(S){o.value=S,y()}async function y(){const S=o.value.trim();if(!S||i.value)return;o.value="",Q();const x={id:crypto.randomUUID(),role:"user",content:S,created_at:new Date().toISOString()};r.value.push(x),T(),i.value=!0,s.value="",a.value=[];try{const V=await fetch("/cc-dashboard/api/assistant/chat",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({message:S})});if(!V.ok||!V.body)throw new Error(`HTTP ${V.status}`);const U=V.body.getReader(),Z=new TextDecoder;let ue="";for(;;){const{done:we,value:me}=await U.read();if(we)break;ue+=Z.decode(me,{stream:!0});const oe=ue.split(` +`);ue=oe.pop()??"";for(const ge of oe){if(!ge.startsWith("data: "))continue;const Re=ge.slice(6).trim();if(Re!=="[DONE]")try{const ve=JSON.parse(Re);ve.type==="text"?(s.value+=ve.text,T()):ve.type==="tool_start"?a.value.includes(ve.tool)||a.value.push(ve.tool):ve.type==="tool_result"?a.value=a.value.filter(ze=>ze!==ve.tool):ve.type==="error"&&(s.value=ve.text)}catch{}}}s.value&&r.value.push({id:crypto.randomUUID(),role:"assistant",content:s.value,created_at:new Date().toISOString()}),await p()}catch{r.value.push({id:crypto.randomUUID(),role:"assistant",content:"Failed to get response. Please try again.",created_at:new Date().toISOString()})}finally{i.value=!1,s.value="",a.value=[],T()}}function T(){Hr(()=>{l.value&&(l.value.scrollTop=l.value.scrollHeight)})}function P(S){const x=S.target;x.style.height="auto",x.style.height=`${Math.min(x.scrollHeight,96)}px`}function Q(){u.value&&(u.value.style.height="auto")}async function q(){t.value=!0,await C(),Hr(()=>{var S;return(S=u.value)==null?void 0:S.focus()}),T()}let K;return li(()=>{p(),K=setInterval(p,5*60*1e3)}),Vc(()=>{K!==void 0&&clearInterval(K)}),fr(t,S=>{S&&p()}),(S,x)=>(se(),ye(Fe,null,[t.value?It("",!0):(se(),ye("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:q},[x[2]||(x[2]=te("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"},[te("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)),c.value>0?(se(),ye("span",z_,nn(c.value>9?"9+":c.value),1)):It("",!0)])),Ge(vC,{name:"slide-up"},{default:or(()=>[t.value?(se(),ye("div",Q_,[te("div",W_,[x[6]||(x[6]=te("div",{class:"flex items-center gap-2"},[te("div",{class:"flex h-8 w-8 items-center justify-center rounded-full bg-amber-400"},[te("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"},[te("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"})])]),te("div",null,[te("p",{class:"text-sm font-semibold text-white"},"Time Analyst"),te("p",{class:"text-xs text-gray-400"},"AI assistant")])],-1)),te("div",Y_,[c.value>0?(se(),ye("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:A},[x[3]||(x[3]=te("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-3 w-3",viewBox:"0 0 20 20",fill:"currentColor"},[te("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)),hi(" "+nn(c.value)+" issue"+nn(c.value>1?"s":""),1)])):It("",!0),te("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors",title:"Clear history","aria-label":"Clear chat history",onClick:v},[...x[4]||(x[4]=[te("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"},[te("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)])]),te("button",{class:"p-1.5 text-gray-400 hover:text-white transition-colors","aria-label":"Close assistant",onClick:x[0]||(x[0]=V=>t.value=!1)},[...x[5]||(x[5]=[te("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"},[te("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),te("div",{ref_key:"messagesEl",ref:l,class:"flex-1 overflow-y-auto p-3 space-y-3 min-h-0"},[r.value.length===0&&!i.value?(se(),ye("div",J_,[x[7]||(x[7]=te("div",{class:"h-12 w-12 rounded-full bg-amber-400/10 flex items-center justify-center mb-3"},[te("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"},[te("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)),x[8]||(x[8]=te("p",{class:"text-sm font-medium text-gray-300"},"Time Analyst",-1)),x[9]||(x[9]=te("p",{class:"text-xs text-gray-500 mt-1"},"Ask me about your hours, gaps, or missing time entries.",-1)),te("div",X_,[(se(),ye(Fe,null,ho(d,V=>te("button",{key:V,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:U=>_(V)},nn(V),9,Z_)),64))])])):It("",!0),(se(!0),ye(Fe,null,ho(r.value,V=>(se(),ye(Fe,{key:V.id},[V.role==="user"?(se(),ye("div",eS,[te("div",tS,[te("p",nS,nn(V.content),1)])])):(se(),ye("div",rS,[te("div",oS,[te("div",{class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:f(V.content)},null,8,iS)])]))],64))),128)),i.value||s.value?(se(),ye("div",sS,[te("div",aS,[a.value.length>0?(se(),ye("div",cS,[(se(!0),ye(Fe,null,ho(a.value,V=>(se(),ye("div",{key:V,class:"flex items-center gap-1.5 text-xs text-amber-400"},[x[10]||(x[10]=te("svg",{class:"h-3 w-3 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[te("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),te("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),hi(" "+nn(h(V)),1)]))),128))])):It("",!0),s.value?(se(),ye("div",{key:1,class:"text-sm text-gray-200 prose prose-sm prose-invert max-w-none",innerHTML:f(s.value)},null,8,lS)):(se(),ye("div",uS,[...x[11]||(x[11]=[te("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"0ms"}},null,-1),te("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"150ms"}},null,-1),te("span",{class:"h-1.5 w-1.5 rounded-full bg-gray-500 animate-bounce",style:{"animation-delay":"300ms"}},null,-1)])]))])])):It("",!0)],512),te("div",dS,[te("div",hS,[sy(te("textarea",{ref_key:"inputEl",ref:u,"onUpdate:modelValue":x[1]||(x[1]=V=>o.value=V),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:i.value,onKeydown:[Bu(Fu(y,["exact","prevent"]),["enter"]),Bu(Fu(()=>{},["shift","exact"]),["enter"])],onInput:P},null,40,fS),[[KC,o.value]]),te("button",{disabled:!o.value.trim()||i.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},[...x[12]||(x[12]=[te("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor"},[te("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,gS)]),x[13]||(x[13]=te("p",{class:"mt-1.5 text-center text-xs text-gray-600"},"Enter to send · Shift+Enter for newline",-1))])])):It("",!0)]),_:1})],64))}}),mS=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},yS=mS(pS,[["__scopeId","data-v-5b6580b3"]]),CS=$r({__name:"App",setup(n){const e=ca(),t=_e(()=>e.isAuthenticated);return(r,o)=>{const i=Iy("RouterView");return se(),ye(Fe,null,[Ge(i),t.value?(se(),An(yS,{key:0})):It("",!0),Ge(ht(kT),{position:"top-right","toast-options":{style:{background:"hsl(var(--card))",color:"hsl(var(--card-foreground))",border:"1px solid hsl(var(--border))"}}})],64)}}});/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const no=typeof document<"u";function rm(n){return typeof n=="object"||"displayName"in n||"props"in n||"__vccOpts"in n}function vS(n){return n.__esModule||n[Symbol.toStringTag]==="Module"||n.default&&rm(n.default)}const Oe=Object.assign;function xa(n,e){const t={};for(const r in e){const o=e[r];t[r]=un(o)?o.map(n):n(o)}return t}const oi=()=>{},un=Array.isArray;function Gd(n,e){const t={};for(const r in n)t[r]=r in e?e[r]:n[r];return t}const om=/#/g,TS=/&/g,wS=/\//g,AS=/=/g,ES=/\?/g,im=/\+/g,bS=/%5B/g,_S=/%5D/g,sm=/%5E/g,SS=/%60/g,am=/%7B/g,IS=/%7C/g,cm=/%7D/g,RS=/%20/g;function zl(n){return n==null?"":encodeURI(""+n).replace(IS,"|").replace(bS,"[").replace(_S,"]")}function kS(n){return zl(n).replace(am,"{").replace(cm,"}").replace(sm,"^")}function Sc(n){return zl(n).replace(im,"%2B").replace(RS,"+").replace(om,"%23").replace(TS,"%26").replace(SS,"`").replace(am,"{").replace(cm,"}").replace(sm,"^")}function OS(n){return Sc(n).replace(AS,"%3D")}function PS(n){return zl(n).replace(om,"%23").replace(ES,"%3F")}function NS(n){return PS(n).replace(wS,"%2F")}function Ci(n){if(n==null)return null;try{return decodeURIComponent(""+n)}catch{}return""+n}const MS=/\/$/,xS=n=>n.replace(MS,"");function La(n,e,t="/"){let r,o={},i="",s="";const a=e.indexOf("#");let c=e.indexOf("?");return c=a>=0&&c>a?-1:c,c>=0&&(r=e.slice(0,c),i=e.slice(c,a>0?a:e.length),o=n(i.slice(1))),a>=0&&(r=r||e.slice(0,a),s=e.slice(a,e.length)),r=HS(r??e,t),{fullPath:r+i+s,path:r,query:o,hash:Ci(s)}}function LS(n,e){const t=e.query?n(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function Vd(n,e){return!e||!n.toLowerCase().startsWith(e.toLowerCase())?n:n.slice(e.length)||"/"}function DS(n,e,t){const r=e.matched.length-1,o=t.matched.length-1;return r>-1&&r===o&&Po(e.matched[r],t.matched[o])&&lm(e.params,t.params)&&n(e.query)===n(t.query)&&e.hash===t.hash}function Po(n,e){return(n.aliasOf||n)===(e.aliasOf||e)}function lm(n,e){if(Object.keys(n).length!==Object.keys(e).length)return!1;for(var t in n)if(!US(n[t],e[t]))return!1;return!0}function US(n,e){return un(n)?zd(n,e):un(e)?zd(e,n):(n==null?void 0:n.valueOf())===(e==null?void 0:e.valueOf())}function zd(n,e){return un(e)?n.length===e.length&&n.every((t,r)=>t===e[r]):n.length===1&&n[0]===e}function HS(n,e){if(n.startsWith("/"))return n;if(!n)return e;const t=e.split("/"),r=n.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let i=t.length-1,s,a;for(s=0;s1&&i--;else break;return t.slice(0,i).join("/")+"/"+r.slice(s).join("/")}const Xn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ic=function(n){return n.pop="pop",n.push="push",n}({}),Da=function(n){return n.back="back",n.forward="forward",n.unknown="",n}({});function FS(n){if(!n)if(no){const e=document.querySelector("base");n=e&&e.getAttribute("href")||"/",n=n.replace(/^\w+:\/\/[^\/]+/,"")}else n="/";return n[0]!=="/"&&n[0]!=="#"&&(n="/"+n),xS(n)}const BS=/^[^#]+#/;function KS(n,e){return n.replace(BS,"#")+e}function qS(n,e){const t=document.documentElement.getBoundingClientRect(),r=n.getBoundingClientRect();return{behavior:e.behavior,left:r.left-t.left-(e.left||0),top:r.top-t.top-(e.top||0)}}const la=()=>({left:window.scrollX,top:window.scrollY});function jS(n){let e;if("el"in n){const t=n.el,r=typeof t=="string"&&t.startsWith("#"),o=typeof t=="string"?r?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!o)return;e=qS(o,n)}else e=n;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function Qd(n,e){return(history.state?history.state.position-e:-1)+n}const Rc=new Map;function $S(n,e){Rc.set(n,e)}function GS(n){const e=Rc.get(n);return Rc.delete(n),e}function VS(n){return typeof n=="string"||n&&typeof n=="object"}function um(n){return typeof n=="string"||typeof n=="symbol"}let Ye=function(n){return n[n.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",n[n.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",n[n.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",n[n.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",n[n.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",n}({});const dm=Symbol("");Ye.MATCHER_NOT_FOUND+"",Ye.NAVIGATION_GUARD_REDIRECT+"",Ye.NAVIGATION_ABORTED+"",Ye.NAVIGATION_CANCELLED+"",Ye.NAVIGATION_DUPLICATED+"";function No(n,e){return Oe(new Error,{type:n,[dm]:!0},e)}function Mn(n,e){return n instanceof Error&&dm in n&&(e==null||!!(n.type&e))}const zS=["params","query","hash"];function QS(n){if(typeof n=="string")return n;if(n.path!=null)return n.path;const e={};for(const t of zS)t in n&&(e[t]=n[t]);return JSON.stringify(e,null,2)}function WS(n){const e={};if(n===""||n==="?")return e;const t=(n[0]==="?"?n.slice(1):n).split("&");for(let r=0;ro&&Sc(o)):[r&&Sc(r)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+t,o!=null&&(e+="="+o))})}return e}function YS(n){const e={};for(const t in n){const r=n[t];r!==void 0&&(e[t]=un(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return e}const JS=Symbol(""),Yd=Symbol(""),ua=Symbol(""),Ql=Symbol(""),kc=Symbol("");function qo(){let n=[];function e(r){return n.push(r),()=>{const o=n.indexOf(r);o>-1&&n.splice(o,1)}}function t(){n=[]}return{add:e,list:()=>n.slice(),reset:t}}function ir(n,e,t,r,o,i=s=>s()){const s=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((a,c)=>{const l=h=>{h===!1?c(No(Ye.NAVIGATION_ABORTED,{from:t,to:e})):h instanceof Error?c(h):VS(h)?c(No(Ye.NAVIGATION_GUARD_REDIRECT,{from:e,to:h})):(s&&r.enterCallbacks[o]===s&&typeof h=="function"&&s.push(h),a())},u=i(()=>n.call(r&&r.instances[o],e,t,l));let d=Promise.resolve(u);n.length<3&&(d=d.then(l)),d.catch(h=>c(h))})}function Ua(n,e,t,r,o=i=>i()){const i=[];for(const s of n)for(const a in s.components){let c=s.components[a];if(!(e!=="beforeRouteEnter"&&!s.instances[a]))if(rm(c)){const l=(c.__vccOpts||c)[e];l&&i.push(ir(l,t,r,s,a,o))}else{let l=c();i.push(()=>l.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${s.path}"`);const d=vS(u)?u.default:u;s.mods[a]=u,s.components[a]=d;const h=(d.__vccOpts||d)[e];return h&&ir(h,t,r,s,a,o)()}))}}return i}function XS(n,e){const t=[],r=[],o=[],i=Math.max(e.matched.length,n.matched.length);for(let s=0;sPo(l,a))?r.push(a):t.push(a));const c=n.matched[s];c&&(e.matched.find(l=>Po(l,c))||o.push(c))}return[t,r,o]}/*! + * vue-router v4.6.4 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let ZS=()=>location.protocol+"//"+location.host;function hm(n,e){const{pathname:t,search:r,hash:o}=e,i=n.indexOf("#");if(i>-1){let s=o.includes(n.slice(i))?n.slice(i).length:1,a=o.slice(s);return a[0]!=="/"&&(a="/"+a),Vd(a,"")}return Vd(t,n)+r+o}function eI(n,e,t,r){let o=[],i=[],s=null;const a=({state:h})=>{const f=hm(n,location),C=t.value,p=e.value;let v=0;if(h){if(t.value=f,e.value=h,s&&s===C){s=null;return}v=p?h.position-p.position:0}else r(f);o.forEach(A=>{A(t.value,C,{delta:v,type:Ic.pop,direction:v?v>0?Da.forward:Da.back:Da.unknown})})};function c(){s=t.value}function l(h){o.push(h);const f=()=>{const C=o.indexOf(h);C>-1&&o.splice(C,1)};return i.push(f),f}function u(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Oe({},h.state,{scroll:la()}),"")}}function d(){for(const h of i)h();i=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:c,listen:l,destroy:d}}function Jd(n,e,t,r=!1,o=!1){return{back:n,current:e,forward:t,replaced:r,position:window.history.length,scroll:o?la():null}}function tI(n){const{history:e,location:t}=window,r={value:hm(n,t)},o={value:e.state};o.value||i(r.value,{back:null,current:r.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function i(c,l,u){const d=n.indexOf("#"),h=d>-1?(t.host&&document.querySelector("base")?n:n.slice(d))+c:ZS()+n+c;try{e[u?"replaceState":"pushState"](l,"",h),o.value=l}catch(f){console.error(f),t[u?"replace":"assign"](h)}}function s(c,l){i(c,Oe({},e.state,Jd(o.value.back,c,o.value.forward,!0),l,{position:o.value.position}),!0),r.value=c}function a(c,l){const u=Oe({},o.value,e.state,{forward:c,scroll:la()});i(u.current,u,!0),i(c,Oe({},Jd(r.value,c,null),{position:u.position+1},l),!1),r.value=c}return{location:r,state:o,push:a,replace:s}}function nI(n){n=FS(n);const e=tI(n),t=eI(n,e.state,e.location,e.replace);function r(i,s=!0){s||t.pauseListeners(),history.go(i)}const o=Oe({location:"",base:n,go:r,createHref:KS.bind(null,n)},e,t);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>e.state.value}),o}let Rr=function(n){return n[n.Static=0]="Static",n[n.Param=1]="Param",n[n.Group=2]="Group",n}({});var nt=function(n){return n[n.Static=0]="Static",n[n.Param=1]="Param",n[n.ParamRegExp=2]="ParamRegExp",n[n.ParamRegExpEnd=3]="ParamRegExpEnd",n[n.EscapeNext=4]="EscapeNext",n}(nt||{});const rI={type:Rr.Static,value:""},oI=/[a-zA-Z0-9_]/;function iI(n){if(!n)return[[]];if(n==="/")return[[rI]];if(!n.startsWith("/"))throw new Error(`Invalid path "${n}"`);function e(f){throw new Error(`ERR (${t})/"${l}": ${f}`)}let t=nt.Static,r=t;const o=[];let i;function s(){i&&o.push(i),i=[]}let a=0,c,l="",u="";function d(){l&&(t===nt.Static?i.push({type:Rr.Static,value:l}):t===nt.Param||t===nt.ParamRegExp||t===nt.ParamRegExpEnd?(i.length>1&&(c==="*"||c==="+")&&e(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),i.push({type:Rr.Param,value:l,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):e("Invalid state to consume buffer"),l="")}function h(){l+=c}for(;ae.length?e.length===1&&e[0]===_t.Static+_t.Segment?1:-1:0}function fm(n,e){let t=0;const r=n.score,o=e.score;for(;t0&&e[e.length-1]<0}const uI={strict:!1,end:!0,sensitive:!1};function dI(n,e,t){const r=cI(iI(n.path),t),o=Oe(r,{record:n,parent:e,children:[],alias:[]});return e&&!o.record.aliasOf==!e.record.aliasOf&&e.children.push(o),o}function hI(n,e){const t=[],r=new Map;e=Gd(uI,e);function o(d){return r.get(d)}function i(d,h,f){const C=!f,p=th(d);p.aliasOf=f&&f.record;const v=Gd(e,d),A=[p];if("alias"in d){const T=typeof d.alias=="string"?[d.alias]:d.alias;for(const P of T)A.push(th(Oe({},p,{components:f?f.record.components:p.components,path:P,aliasOf:f?f.record:p})))}let _,y;for(const T of A){const{path:P}=T;if(h&&P[0]!=="/"){const Q=h.record.path,q=Q[Q.length-1]==="/"?"":"/";T.path=h.record.path+(P&&q+P)}if(_=dI(T,h,v),f?f.alias.push(_):(y=y||_,y!==_&&y.alias.push(_),C&&d.name&&!nh(_)&&s(d.name)),gm(_)&&c(_),p.children){const Q=p.children;for(let q=0;q{s(y)}:oi}function s(d){if(um(d)){const h=r.get(d);h&&(r.delete(d),t.splice(t.indexOf(h),1),h.children.forEach(s),h.alias.forEach(s))}else{const h=t.indexOf(d);h>-1&&(t.splice(h,1),d.record.name&&r.delete(d.record.name),d.children.forEach(s),d.alias.forEach(s))}}function a(){return t}function c(d){const h=pI(d,t);t.splice(h,0,d),d.record.name&&!nh(d)&&r.set(d.record.name,d)}function l(d,h){let f,C={},p,v;if("name"in d&&d.name){if(f=r.get(d.name),!f)throw No(Ye.MATCHER_NOT_FOUND,{location:d});v=f.record.name,C=Oe(eh(h.params,f.keys.filter(y=>!y.optional).concat(f.parent?f.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),d.params&&eh(d.params,f.keys.map(y=>y.name))),p=f.stringify(C)}else if(d.path!=null)p=d.path,f=t.find(y=>y.re.test(p)),f&&(C=f.parse(p),v=f.record.name);else{if(f=h.name?r.get(h.name):t.find(y=>y.re.test(h.path)),!f)throw No(Ye.MATCHER_NOT_FOUND,{location:d,currentLocation:h});v=f.record.name,C=Oe({},h.params,d.params),p=f.stringify(C)}const A=[];let _=f;for(;_;)A.unshift(_.record),_=_.parent;return{name:v,path:p,params:C,matched:A,meta:gI(A)}}n.forEach(d=>i(d));function u(){t.length=0,r.clear()}return{addRoute:i,resolve:l,removeRoute:s,clearRoutes:u,getRoutes:a,getRecordMatcher:o}}function eh(n,e){const t={};for(const r of e)r in n&&(t[r]=n[r]);return t}function th(n){const e={path:n.path,redirect:n.redirect,name:n.name,meta:n.meta||{},aliasOf:n.aliasOf,beforeEnter:n.beforeEnter,props:fI(n),children:n.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in n?n.components||null:n.component&&{default:n.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function fI(n){const e={},t=n.props||!1;if("component"in n)e.default=t;else for(const r in n.components)e[r]=typeof t=="object"?t[r]:t;return e}function nh(n){for(;n;){if(n.record.aliasOf)return!0;n=n.parent}return!1}function gI(n){return n.reduce((e,t)=>Oe(e,t.meta),{})}function pI(n,e){let t=0,r=e.length;for(;t!==r;){const i=t+r>>1;fm(n,e[i])<0?r=i:t=i+1}const o=mI(n);return o&&(r=e.lastIndexOf(o,r-1)),r}function mI(n){let e=n;for(;e=e.parent;)if(gm(e)&&fm(n,e)===0)return e}function gm({record:n}){return!!(n.name||n.components&&Object.keys(n.components).length||n.redirect)}function rh(n){const e=Xt(ua),t=Xt(Ql),r=_e(()=>{const c=ht(n.to);return e.resolve(c)}),o=_e(()=>{const{matched:c}=r.value,{length:l}=c,u=c[l-1],d=t.matched;if(!u||!d.length)return-1;const h=d.findIndex(Po.bind(null,u));if(h>-1)return h;const f=oh(c[l-2]);return l>1&&oh(u)===f&&d[d.length-1].path!==f?d.findIndex(Po.bind(null,c[l-2])):h}),i=_e(()=>o.value>-1&&wI(t.params,r.value.params)),s=_e(()=>o.value>-1&&o.value===t.matched.length-1&&lm(t.params,r.value.params));function a(c={}){if(TI(c)){const l=e[ht(n.replace)?"replace":"push"](ht(n.to)).catch(oi);return n.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>l),l}return Promise.resolve()}return{route:r,href:_e(()=>r.value.href),isActive:i,isExactActive:s,navigate:a}}function yI(n){return n.length===1?n[0]:n}const CI=$r({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:rh,setup(n,{slots:e}){const t=Ei(rh(n)),{options:r}=Xt(ua),o=_e(()=>({[ih(n.activeClass,r.linkActiveClass,"router-link-active")]:t.isActive,[ih(n.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const i=e.default&&yI(e.default(t));return n.custom?i:Jc("a",{"aria-current":t.isExactActive?n.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:o.value},i)}}}),vI=CI;function TI(n){if(!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)&&!n.defaultPrevented&&!(n.button!==void 0&&n.button!==0)){if(n.currentTarget&&n.currentTarget.getAttribute){const e=n.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return n.preventDefault&&n.preventDefault(),!0}}function wI(n,e){for(const t in e){const r=e[t],o=n[t];if(typeof r=="string"){if(r!==o)return!1}else if(!un(o)||o.length!==r.length||r.some((i,s)=>i.valueOf()!==o[s].valueOf()))return!1}return!0}function oh(n){return n?n.aliasOf?n.aliasOf.path:n.path:""}const ih=(n,e,t)=>n??e??t,AI=$r({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(n,{attrs:e,slots:t}){const r=Xt(kc),o=_e(()=>n.route||r.value),i=Xt(Yd,0),s=_e(()=>{let l=ht(i);const{matched:u}=o.value;let d;for(;(d=u[l])&&!d.components;)l++;return l}),a=_e(()=>o.value.matched[s.value]);Xi(Yd,_e(()=>s.value+1)),Xi(JS,a),Xi(kc,o);const c=Te();return fr(()=>[c.value,a.value,n.name],([l,u,d],[h,f,C])=>{u&&(u.instances[d]=l,f&&f!==u&&l&&l===h&&(u.leaveGuards.size||(u.leaveGuards=f.leaveGuards),u.updateGuards.size||(u.updateGuards=f.updateGuards))),l&&u&&(!f||!Po(u,f)||!h)&&(u.enterCallbacks[d]||[]).forEach(p=>p(l))},{flush:"post"}),()=>{const l=o.value,u=n.name,d=a.value,h=d&&d.components[u];if(!h)return sh(t.default,{Component:h,route:l});const f=d.props[u],C=f?f===!0?l.params:typeof f=="function"?f(l):f:null,v=Jc(h,Oe({},C,e,{onVnodeUnmounted:A=>{A.component.isUnmounted&&(d.instances[u]=null)},ref:c}));return sh(t.default,{Component:v,route:l})||v}}});function sh(n,e){if(!n)return null;const t=n(e);return t.length===1?t[0]:t}const EI=AI;function bI(n){const e=hI(n.routes,n),t=n.parseQuery||WS,r=n.stringifyQuery||Wd,o=n.history,i=qo(),s=qo(),a=qo(),c=zm(Xn);let l=Xn;no&&n.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=xa.bind(null,I=>""+I),d=xa.bind(null,NS),h=xa.bind(null,Ci);function f(I,D){let F,Y;return um(I)?(F=e.getRecordMatcher(I),Y=D):Y=I,e.addRoute(Y,F)}function C(I){const D=e.getRecordMatcher(I);D&&e.removeRoute(D)}function p(){return e.getRoutes().map(I=>I.record)}function v(I){return!!e.getRecordMatcher(I)}function A(I,D){if(D=Oe({},D||c.value),typeof I=="string"){const w=La(t,I,D.path),N=e.resolve({path:w.path},D),L=o.createHref(w.fullPath);return Oe(w,N,{params:h(N.params),hash:Ci(w.hash),redirectedFrom:void 0,href:L})}let F;if(I.path!=null)F=Oe({},I,{path:La(t,I.path,D.path).path});else{const w=Oe({},I.params);for(const N in w)w[N]==null&&delete w[N];F=Oe({},I,{params:d(w)}),D.params=d(D.params)}const Y=e.resolve(F,D),he=I.hash||"";Y.params=u(h(Y.params));const g=LS(r,Oe({},I,{hash:kS(he),path:Y.path})),m=o.createHref(g);return Oe({fullPath:g,hash:he,query:r===Wd?YS(I.query):I.query||{}},Y,{redirectedFrom:void 0,href:m})}function _(I){return typeof I=="string"?La(t,I,c.value.path):Oe({},I)}function y(I,D){if(l!==I)return No(Ye.NAVIGATION_CANCELLED,{from:D,to:I})}function T(I){return q(I)}function P(I){return T(Oe(_(I),{replace:!0}))}function Q(I,D){const F=I.matched[I.matched.length-1];if(F&&F.redirect){const{redirect:Y}=F;let he=typeof Y=="function"?Y(I,D):Y;return typeof he=="string"&&(he=he.includes("?")||he.includes("#")?he=_(he):{path:he},he.params={}),Oe({query:I.query,hash:I.hash,params:he.path!=null?{}:I.params},he)}}function q(I,D){const F=l=A(I),Y=c.value,he=I.state,g=I.force,m=I.replace===!0,w=Q(F,Y);if(w)return q(Oe(_(w),{state:typeof w=="object"?Oe({},he,w.state):he,force:g,replace:m}),D||F);const N=F;N.redirectedFrom=D;let L;return!g&&DS(r,Y,F)&&(L=No(Ye.NAVIGATION_DUPLICATED,{to:N,from:Y}),ze(Y,Y,!0,!1)),(L?Promise.resolve(L):x(N,Y)).catch(M=>Mn(M)?Mn(M,Ye.NAVIGATION_GUARD_REDIRECT)?M:ve(M):ge(M,N,Y)).then(M=>{if(M){if(Mn(M,Ye.NAVIGATION_GUARD_REDIRECT))return q(Oe({replace:m},_(M.to),{state:typeof M.to=="object"?Oe({},he,M.to.state):he,force:g}),D||N)}else M=U(N,Y,!0,m,he);return V(N,Y,M),M})}function K(I,D){const F=y(I,D);return F?Promise.reject(F):Promise.resolve()}function S(I){const D=lt.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(I):I()}function x(I,D){let F;const[Y,he,g]=XS(I,D);F=Ua(Y.reverse(),"beforeRouteLeave",I,D);for(const w of Y)w.leaveGuards.forEach(N=>{F.push(ir(N,I,D))});const m=K.bind(null,I,D);return F.push(m),pe(F).then(()=>{F=[];for(const w of i.list())F.push(ir(w,I,D));return F.push(m),pe(F)}).then(()=>{F=Ua(he,"beforeRouteUpdate",I,D);for(const w of he)w.updateGuards.forEach(N=>{F.push(ir(N,I,D))});return F.push(m),pe(F)}).then(()=>{F=[];for(const w of g)if(w.beforeEnter)if(un(w.beforeEnter))for(const N of w.beforeEnter)F.push(ir(N,I,D));else F.push(ir(w.beforeEnter,I,D));return F.push(m),pe(F)}).then(()=>(I.matched.forEach(w=>w.enterCallbacks={}),F=Ua(g,"beforeRouteEnter",I,D,S),F.push(m),pe(F))).then(()=>{F=[];for(const w of s.list())F.push(ir(w,I,D));return F.push(m),pe(F)}).catch(w=>Mn(w,Ye.NAVIGATION_CANCELLED)?w:Promise.reject(w))}function V(I,D,F){a.list().forEach(Y=>S(()=>Y(I,D,F)))}function U(I,D,F,Y,he){const g=y(I,D);if(g)return g;const m=D===Xn,w=no?history.state:{};F&&(Y||m?o.replace(I.fullPath,Oe({scroll:m&&w&&w.scroll},he)):o.push(I.fullPath,he)),c.value=I,ze(I,D,F,m),ve()}let Z;function ue(){Z||(Z=o.listen((I,D,F)=>{if(!R.listening)return;const Y=A(I),he=Q(Y,R.currentRoute.value);if(he){q(Oe(he,{replace:!0,force:!0}),Y).catch(oi);return}l=Y;const g=c.value;no&&$S(Qd(g.fullPath,F.delta),la()),x(Y,g).catch(m=>Mn(m,Ye.NAVIGATION_ABORTED|Ye.NAVIGATION_CANCELLED)?m:Mn(m,Ye.NAVIGATION_GUARD_REDIRECT)?(q(Oe(_(m.to),{force:!0}),Y).then(w=>{Mn(w,Ye.NAVIGATION_ABORTED|Ye.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===Ic.pop&&o.go(-1,!1)}).catch(oi),Promise.reject()):(F.delta&&o.go(-F.delta,!1),ge(m,Y,g))).then(m=>{m=m||U(Y,g,!1),m&&(F.delta&&!Mn(m,Ye.NAVIGATION_CANCELLED)?o.go(-F.delta,!1):F.type===Ic.pop&&Mn(m,Ye.NAVIGATION_ABORTED|Ye.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),V(Y,g,m)}).catch(oi)}))}let we=qo(),me=qo(),oe;function ge(I,D,F){ve(I);const Y=me.list();return Y.length?Y.forEach(he=>he(I,D,F)):console.error(I),Promise.reject(I)}function Re(){return oe&&c.value!==Xn?Promise.resolve():new Promise((I,D)=>{we.add([I,D])})}function ve(I){return oe||(oe=!I,ue(),we.list().forEach(([D,F])=>I?F(I):D()),we.reset()),I}function ze(I,D,F,Y){const{scrollBehavior:he}=n;if(!no||!he)return Promise.resolve();const g=!F&&GS(Qd(I.fullPath,0))||(Y||!F)&&history.state&&history.state.scroll||null;return Hr().then(()=>he(I,D,g)).then(m=>m&&jS(m)).catch(m=>ge(m,I,D))}const et=I=>o.go(I);let Ke;const lt=new Set,R={currentRoute:c,listening:!0,addRoute:f,removeRoute:C,clearRoutes:e.clearRoutes,hasRoute:v,getRoutes:p,resolve:A,options:n,push:T,replace:P,go:et,back:()=>et(-1),forward:()=>et(1),beforeEach:i.add,beforeResolve:s.add,afterEach:a.add,onError:me.add,isReady:Re,install(I){I.component("RouterLink",vI),I.component("RouterView",EI),I.config.globalProperties.$router=R,Object.defineProperty(I.config.globalProperties,"$route",{enumerable:!0,get:()=>ht(c)}),no&&!Ke&&c.value===Xn&&(Ke=!0,T(o.location).catch(Y=>{}));const D={};for(const Y in Xn)Object.defineProperty(D,Y,{get:()=>c.value[Y],enumerable:!0});I.provide(ua,R),I.provide(Ql,qh(D)),I.provide(kc,c);const F=I.unmount;lt.add(I),I.unmount=function(){lt.delete(I),lt.size<1&&(l=Xn,Z&&Z(),Z=null,c.value=Xn,Ke=!1,oe=!1),F()}}};function pe(I){return I.reduce((D,F)=>D.then(()=>S(F)),Promise.resolve())}return R}function eR(){return Xt(ua)}function tR(n){return Xt(Ql)}const _I=[{path:"/login",name:"login",component:()=>Dt(()=>import("./LoginView-DzMVaLbC.js"),__vite__mapDeps([0,1,2])),meta:{public:!0}},{path:"/",component:()=>Dt(()=>import("./AppLayout-LtMoYzU8.js"),[]),children:[{path:"",name:"dashboard",component:()=>Dt(()=>import("./DashboardView-Cvjfxfcs.js"),__vite__mapDeps([3,4,1,2,5,6,7,8]))},{path:"calendar",name:"calendar",component:()=>Dt(()=>import("./CalendarView-CVfEc5OT.js"),__vite__mapDeps([9,4,2,7,8,10,11,12,13,14,15]))},{path:"planner",name:"planner",component:()=>Dt(()=>import("./PlannerView-DJPGnDPz.js"),__vite__mapDeps([16,10,11,7,8,2,12,13,14]))},{path:"projects",name:"projects",component:()=>Dt(()=>import("./ProjectsView-VxSshwHq.js"),__vite__mapDeps([17,4,1,2,6,8]))},{path:"projects/:id/:date?",name:"project-detail",component:()=>Dt(()=>import("./ProjectDetailView-2QTgygyj.js"),__vite__mapDeps([18,4,1,2,5,8]))},{path:"live",name:"live",component:()=>Dt(()=>import("./LiveView-Df9pKcnA.js"),__vite__mapDeps([19,1,2,7,8]))},{path:"reports",name:"reports",component:()=>Dt(()=>import("./ReportsView-Dgj4QJox.js"),__vite__mapDeps([20,1,2,14,7,8,21]))},{path:"keys",name:"keys",component:()=>Dt(()=>import("./KeysView-Buk66uDj.js"),__vite__mapDeps([22,23,1,2,7,8,11,12]))},{path:"devops",name:"devops",component:()=>Dt(()=>import("./DevopsView-L2Z-AJUn.js"),__vite__mapDeps([24,13,1,2,5,7,8]))},{path:"settings",name:"settings",component:()=>Dt(()=>import("./SettingsView-DsEb6gx-.js"),__vite__mapDeps([25,13,1,2,5,12,7,8]))},{path:"admin",name:"admin",component:()=>Dt(()=>import("./AdminView-DUmZvUGQ.js"),__vite__mapDeps([26,23,1,2,14,8])),meta:{adminOnly:!0}}]},{path:"/:pathMatch(.*)*",redirect:"/"}],Oc=bI({history:nI("/cc-dashboard/"),routes:_I});Oc.beforeEach((n,e,t)=>{const r=ca();if(n.meta.public){t();return}if(!r.isAuthenticated){t({name:"login",query:{redirect:n.fullPath}});return}if(n.meta.adminOnly&&!r.isAdmin){t({name:"dashboard"});return}t()});V_().then(()=>{const n=zC(CS),e=YC();n.use(e),n.use(Oc),n.use(Uv);const t=ca();yA(()=>t.getToken(),()=>{t.logout(),Oc.push({name:"login"})}),n.mount("#app")});export{nv as A,Fu as B,kI as C,ps as D,Vc as E,Fe as F,II as G,MI as K,vC as T,mS as _,te as a,RI as b,ye as c,$r as d,Ge as e,eR as f,tR as g,ht as h,It as i,_e as j,An as k,Iy as l,Jt as m,Bt as n,se as o,hi as p,Te as q,ho as r,fr as s,nn as t,ca as u,li as v,or as w,sy as x,KC as y,hr as z}; diff --git a/src/static/assets/index-yrXqsixb.js b/src/static/assets/index-yrXqsixb.js deleted file mode 100644 index 2dad054..0000000 --- a/src/static/assets/index-yrXqsixb.js +++ /dev/null @@ -1,40 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-Behmy84N.js","assets/Button.vue_vue_type_script_setup_true_lang-XMbqbqq8.js","assets/utils-D_0J15Md.js","assets/Input.vue_vue_type_script_setup_true_lang-Bo0JoDsF.js","assets/CardContent.vue_vue_type_script_setup_true_lang-BZS0eQer.js","assets/DashboardView-Cp_ma0oa.js","assets/dashboard-Bay5szWb.js","assets/CardTitle.vue_vue_type_script_setup_true_lang-Bs99oJeq.js","assets/Progress.vue_vue_type_script_setup_true_lang-CI2N8P-o.js","assets/CalendarView-DC2Ojs9-.js","assets/TaskForm.vue_vue_type_script_setup_true_lang-CuS-8amU.js","assets/Dialog.vue_vue_type_script_setup_true_lang-Bjx8yW8V.js","assets/devops-C_7zqRan.js","assets/Badge.vue_vue_type_script_setup_true_lang-18ft6dLh.js","assets/CalendarView-DRWiX2N8.css","assets/PlannerView-v43b0qQj.js","assets/ProjectsView-BncIuojQ.js","assets/ProjectDetailView-BejhakPZ.js","assets/LiveView-DXX4fst3.js","assets/ReportsView-B3ORTUxG.js","assets/ReportsView-BczQ2gJa.css","assets/KeysView-gO6qeRwx.js","assets/admin-BRKJZipt.js","assets/DevopsView-CXcxdKJq.js","assets/SettingsView-BXkPmh00.js","assets/AdminView-9bHvBNlr.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 ar=(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=()=>{},Rl=()=>!1,Lr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),kr=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=>Ys(e)==="[object Map]",Ol=e=>Ys(e)==="[object Set]",Ui=e=>Ys(e)==="[object Date]",oe=e=>typeof e=="function",Re=e=>typeof e=="string",yt=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,Ys=e=>Pl.call(e),Uu=e=>Ys(e).slice(8,-1),Dl=e=>Ys(e)==="[object Object]",Fr=e=>Re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,As=ai(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Mr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hu=/-\w/g,it=Mr(e=>e.replace(Hu,t=>t.slice(1).toUpperCase())),qu=/\B([A-Z])/g,xn=Mr(e=>e.replace(qu,"-$1").toLowerCase()),Br=Mr(e=>e.charAt(0).toUpperCase()+e.slice(1)),lo=Mr(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=Re(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 ht(e){let t="";if(Re(e))t=e;else if(Z(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Ct=e=>Re(e)?e:e==null?"":Z(e)||xe(e)&&(e.toString===Pl||!oe(e.toString))?Ll(e)?Ct(e.value):JSON.stringify(e,kl,2):String(e),kl=(e,t)=>Ll(t)?kl(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))}:yt(t)?co(t):xe(t)&&!Z(t)&&!Dl(t)?String(t):t,co=(e,t="")=>{var n;return yt(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(;Rs;){let t=Rs;for(Rs=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===ks)||(e.globalVersion=ks,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Po(e))))return;e.flags|=2;const t=e.dep,n=Ce,s=At;Ce=e,At=!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,At=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 At=!0;const Kl=[];function Xt(){Kl.push(At),At=!1}function Zt(){const e=Kl.pop();At=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 ks=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||!At||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++,ks++,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 xr=new WeakMap,Bn=Symbol(""),Do=Symbol(""),Fs=Symbol("");function Ge(e,t,n){if(At&&Ce){let s=xr.get(e);s||xr.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=xr.get(e);if(!i){ks++;return}const a=l=>{l&&l.trigger()};if(fi(),t==="clear")i.forEach(a);else{const l=Z(e),u=l&&Fr(n);if(l&&n==="length"){const c=Number(s);i.forEach((f,h)=>{(h==="length"||h===Fs||!yt(h)&&h>=c)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),u&&a(i.get(Fs)),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=xr.get(e);return n&&n.get(t)}function $n(e){const t=ye(e);return t===e?t:(Ge(t,"iterate",Fs),mt(e)?t:t.map(Rt))}function Ur(e){return Ge(e=ye(e),"iterate",Fs),e}function Mt(e,t){return en(e)?fs(Yt(e)?Rt(t):t):Rt(t)}const tf={__proto__:null,[Symbol.iterator](){return fo(this,Symbol.iterator,e=>Mt(this,e))},concat(...e){return $n(this).concat(...e.map(t=>Z(t)?$n(t):t))},entries(){return fo(this,"entries",e=>(e[1]=Mt(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=>Mt(this,s)),arguments)},find(e,t){return qt(this,"find",e,t,n=>Mt(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=>Mt(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 ms(this,"pop")},push(...e){return ms(this,"push",e)},reduce(e,...t){return $i(this,"reduce",e,t)},reduceRight(e,...t){return $i(this,"reduceRight",e,t)},shift(){return ms(this,"shift")},some(e,t){return qt(this,"some",e,t,void 0,arguments)},splice(...e){return ms(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 ms(this,"unshift",e)},values(){return fo(this,"values",e=>Mt(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?Rt(f):f}let u=n;i!==e&&(a?u=function(f,h){return n.call(this,Mt(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=Mt(e,u)),n.call(this,u,Mt(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?Mt(e,l):l}function ho(e,t,n){const s=ye(e);Ge(s,"iterate",Fs);const r=s[t](...n);return(r===-1||r===!1)&&Hr(n[0])?(n[0]=ye(n[0]),s[t](...n)):r}function ms(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(yt));function rf(e){yt(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?gf: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((yt(n)?zl.has(n):sf(n))||(r||Ge(t,"get",n),o))return a;if(Pe(a)){const l=i&&Fr(n)?a:a.value;return r&&xe(l)?Io(l):l}return xe(a)?r?Io(a):Xs(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)&&Fr(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,lr=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:Rt;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 cr(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}=lr(i),u=t?No:e?fs:Rt;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:Rt;return!e&&Ge(l,"iterate",Bn),a.forEach((c,f)=>r.call(o,u(c),u(f),i))}};return He(n,e?{add:cr("add"),set:cr("set"),delete:cr("delete"),clear:cr("clear")}:{add(r){const o=ye(this),i=lr(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}=lr(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}=lr(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 gi(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:gi(!1,!1)},hf={get:gi(!1,!0)},pf={get:gi(!0,!1)};const Jl=new WeakMap,Yl=new WeakMap,Xl=new WeakMap,gf=new WeakMap;function mf(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:mf(Uu(e))}function Xs(e){return en(e)?e:mi(e,!1,af,df,Jl)}function Zl(e){return mi(e,!1,cf,hf,Yl)}function Io(e){return mi(e,!0,lf,pf,Xl)}function mi(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 Rt=e=>xe(e)?Xs(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:Rt(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:Rt(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=yt(n)?n:String(n),this._raw=ye(t);let r=!0,o=t;if(!Z(t)||yt(this._key)||!Fr(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=ks-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 ur={},Er=new WeakMap;let Rn;function Af(e,t=!1,n=Rn){if(n){let s=Er.get(n);s||Er.set(n,s=[]),s.push(e)}}function Rf(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,m=!1;if(Pe(e)?(f=()=>e.value,x=mt(e)):Yt(e)?(f=()=>u(e),x=!0):Z(e)?(m=!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=Rn;Rn=c;try{return l?l(e,3,[p]):e(p)}finally{Rn=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 A=m?new Array(e.length).fill(ur):ur;const y=v=>{if(!(!(c.flags&1)||!c.dirty&&!v))if(t){const D=c.run();if(r||x||(m?D.some((K,j)=>jt(K,A[j])):jt(D,A))){h&&h();const K=Rn;Rn=c;try{const j=[D,A===ur?void 0:m&&A[0]===ur?[]:A,p];A=D,l?l(t,3,j):t(...j)}finally{Rn=K}}}else c.run()};return a&&a(y),c=new jl(f),c.scheduler=i?()=>i(y,!1):y,p=v=>Af(v,!1,c),h=c.onStop=()=>{const v=Er.get(c);if(v){if(l)l(v,4);else for(const D of v)D();Er.delete(c)}},t?s?y(!0):A=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 Zs(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=Zs(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=Ms(r);o=Ms(n)?rt.push(e):rt.splice(Tf(t),0,e),e.flags|=1,sc()}}function sc(){Sr||(Sr=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(;nMs(n)-Ms(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&&Or(-1);const o=Cr(t);let i;try{i=e(...r)}finally{Cr(o),s._d&&Or(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(Vs){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,m)=>Ot(p,c,x,m);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=Rf(e,t,a);return Vs&&(u?u.push(h):l&&h()),h}function kf(e,t,n){const s=this.proxy,r=Re(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=er(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===""),Ff=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 Re(n)?t?t(n):null:n},Mf={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:m,createComment:w,parentNode:E}}=u,A=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=ko(S,j,m,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=m(""),B=t.anchor=m("");if(p(j,n,s),p(B,n,s),Ff(t.props)||o&&o.pendingBranch){K(t);return}A&&(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),k=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,k,r,o,i,a),Si(e,t,!0)):l||f(e,t,k,W,r,o,i,a,!1),A)q?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):fr(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&&fr(t,se,null,u,0)}else q&&fr(t,S,I,u,1);Es(t,A)}},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 m=0;m{e.isMounted=!0}),wi(()=>{e.isUnmounting=!0}),e}const vt=[Function,Array],uc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vt,onEnter:vt,onAfterEnter:vt,onEnterCancelled:vt,onBeforeLeave:vt,onLeave:vt,onAfterLeave:vt,onLeaveCancelled:vt,onBeforeAppear:vt,onAppear:vt,onAfterAppear:vt,onAppearCancelled:vt},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=Fo(l,i,s,n,f=>u=f);l.type!==Je&&Bs(l,u);let c=n.subTree&&Wi(n.subTree);if(c&&c.type!==Je&&!Tn(c,l)&&fc(n).type!==Je){let f=Fo(c,i,s,n);if(Bs(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 m=hc(s,c);m[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 Fo(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:m,onBeforeAppear:w,onAppear:E,onAfterAppear:A,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(k=>k.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,k=f;if(!n.isMounted)if(o)I=E||u,q=A||c,k=y||f;else return;let W=!1;S[ys]=de=>{W||(W=!0,de?K(k,[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 k=!1;S[It]=se=>{k||(k=!0,I(),se?K(m,[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=Fo(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 Bs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Bs(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(m,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?Rl:m=>Gi(c,m)?!1:_e(h,m),x=(m,w)=>!(w&&Gi(c,w));if(u!=null&&u!==l){if(Ji(t),Re(u))c[u]=null,p(u)&&(f[u]=null);else if(Pe(u)){const m=t;x(u,m.k)&&(u.value=null),m.k&&(c[m.k]=null)}}if(oe(l))Zs(l,a,12,[i,c]);else{const m=Re(l),w=Pe(l);if(m||w){const E=()=>{if(e.f){const A=m?p(l)?f[l]:c[l]:x()||!e.k?l.value:c[e.k];if(r)Z(A)&&li(A,o);else if(Z(A))A.includes(o)||A.push(o);else if(m)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 m?(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 A=()=>{E(),Ar.delete(e)};A.id=-1,Ar.set(e,A),tt(A,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){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);_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=er(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)=>{(!Vs||e==="sp")&&$r(e,(...s)=>t(...s),n)},Kf=tn("bm"),js=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 Re(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=Fd(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||Re(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(Ae,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(Ae,{key:(a&&!yt(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=>Hs(t)?!(t.type===Je||t.type===Ae&&!wc(t.children)):!0)?e:null}const Mo=e=>e?jc(e)?Wr(e):Mo(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=>Mo(e.parent),$root:e=>Mo(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=>kf.bind(e)}),go=(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(go(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 go(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)||go(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:m,deactivated:w,beforeDestroy:E,beforeUnmount:A,destroyed:y,unmounted:v,render:D,renderTracked:K,renderTriggered:j,errorCaptured:B,serverPrefetch:S,expose:I,inheritAttrs:q,components:k,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=Xs(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=me({get:ve,set:ue});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>De.value,set:Me=>De.value=Me})}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=>{mr(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(js,h),le(Qf,p),le(zf,x),le(qf,m),le(Vf,w),le(Yf,B),le(Jf,K),le(Gf,j),le(wi,A),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),k&&(e.components=k),W&&(e.directives=W),S&&gc(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(Re(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=>Rr(l,u,i,!0)),Rr(l,t,i)),xe(t)&&o.set(t,l),l}function Rr(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Rr(e,o,n,!0),r&&r.forEach(i=>Rr(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=>Re(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:m}=e,w=Cr(e);let E,A;try{if(n.shapeFlag&4){const v=r||s,D=v;E=Bt(u.call(D,v,c,f,p,h,x)),A=a}else{const v=t;E=Bt(v.length>1?v(f,{attrs:a,slots:i,emit:l}):v(f,null)),A=t.props?a:dd(a)}}catch(v){Ds.length=0,qr(v,e,1),E=Te(Je)}let y=E;if(A&&m!==!1){const v=Object.keys(A),{shapeFlag:D}=y;v.length&&D&7&&(o&&v.some(kr)&&(A=hd(A,o)),y=_n(y,A,!1,!0))}return n.dirs&&(y=_n(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&Bs(y,n.transition),E=y,Cr(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)(!kr(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(Ac),Oc=e=>Object.getPrototypeOf(e)===Ac;function md(e,t,n,s=!1){const r={},o=Rc();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=Rc();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=Ad;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,m=(d,g,b,T=null,N=null,P=null,V=void 0,H=null,U=!!g.dynamicChildren)=>{if(d===g)return;d&&!Tn(d,g)&&(T=C(d),Me(d,N,P,!0),d=null),g.patchFlag===-2&&(U=!1,g.dynamicChildren=null);const{type:F,ref:Y,shapeFlag:$}=g;switch(F){case Qr:w(d,g,b,T);break;case Je:E(d,g,b,T);break;case yr:d==null&&A(g,b,T,V);break;case Ae:k(d,g,b,T,N,P,V,H,U);break;default:$&1?D(d,g,b,T,N,P,V,H,U):$&6?W(d,g,b,T,N,P,V,H,U):($&64||$&128)&&F.process(d,g,b,T,N,P,V,H,U,Q)}Y!=null&&N?Ts(Y,d&&d.ref,P,g||d,!g):Y==null&&d&&d.ref!=null&&Ts(d.ref,null,P,d,!0)},w=(d,g,b,T)=>{if(d==null)s(g.el=a(g.children),b,T);else{const N=g.el=d.el;g.children!==d.children&&u(N,g.children)}},E=(d,g,b,T)=>{d==null?s(g.el=l(g.children||""),b,T):g.el=d.el},A=(d,g,b,T)=>{[d.el,d.anchor]=x(d.children,g,b,T,d.el,d.anchor)},y=({el:d,anchor:g},b,T)=>{let N;for(;d&&d!==g;)N=h(d),s(d,b,T),d=N;s(g,b,T)},v=({el:d,anchor:g})=>{let b;for(;d&&d!==g;)b=h(d),r(d),d=b;r(g)},D=(d,g,b,T,N,P,V,H,U)=>{if(g.type==="svg"?V="svg":g.type==="math"&&(V="mathml"),d==null)K(g,b,T,N,P,V,H,U);else{const F=d.el&&d.el._isVueCE?d.el:null;try{F&&F._beginPatch(),S(d,g,N,P,V,H,U)}finally{F&&F._endPatch()}}},K=(d,g,b,T,N,P,V,H)=>{let U,F;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,mo(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"&&!As(be)&&o(U,be,null,Y[be],P,T);"value"in Y&&o(U,"value",null,Y.value,P),(F=Y.onVnodeBeforeMount)&&Dt(F,T,d)}te&&En(d,null,T,"beforeMount");const ge=Sd(N,G);ge&&G.beforeEnter(U),s(U,g,b),((F=Y&&Y.onVnodeMounted)||ge||te)&&tt(()=>{try{F&&Dt(F,T,d),ge&&G.enter(U),te&&En(d,null,T,"mounted")}finally{}},N)},j=(d,g,b,T,N)=>{if(b&&p(d,b),T)for(let P=0;P{for(let F=U;F{const H=g.el=d.el;let{patchFlag:U,dynamicChildren:F,dirs:Y}=g;U|=d.patchFlag&16;const $=d.props||Se,G=g.props||Se;let te;if(b&&Sn(b,!1),(te=G.onVnodeBeforeUpdate)&&Dt(te,b,g,d),Y&&En(g,d,b,"beforeUpdate"),b&&Sn(b,!0),($.innerHTML&&G.innerHTML==null||$.textContent&&G.textContent==null)&&c(H,""),F?I(d.dynamicChildren,F,H,b,T,mo(g,N),P):V||ie(d,g,H,null,b,T,mo(g,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 ge=g.dynamicProps;for(let be=0;be{te&&Dt(te,b,g,d),Y&&En(g,d,b,"updated")},T)},I=(d,g,b,T,N,P,V)=>{for(let H=0;H{if(g!==b){if(g!==Se)for(const P in g)!As(P)&&!(P in b)&&o(d,P,g[P],null,N,T);for(const P in b){if(As(P))continue;const V=b[P],H=g[P];V!==H&&P!=="value"&&o(d,P,H,V,N,T)}"value"in b&&o(d,"value",g.value,b.value,N)}},k=(d,g,b,T,N,P,V,H,U)=>{const F=g.el=d?d.el:a(""),Y=g.anchor=d?d.anchor:a("");let{patchFlag:$,dynamicChildren:G,slotScopeIds:te}=g;te&&(H=H?H.concat(te):te),d==null?(s(F,b,T),s(Y,b,T),B(g.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),(g.key!=null||N&&g===N.subTree)&&Si(d,g,!0)):ie(d,g,b,Y,N,P,V,H,U)},W=(d,g,b,T,N,P,V,H,U)=>{g.slotScopeIds=H,d==null?g.shapeFlag&512?N.ctx.activate(g,b,T,V,U):se(g,b,T,N,P,V,U):de(d,g,U)},se=(d,g,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,g,b),d.placeholder=U.el}}else le(H,d,g,b,N,P,V)},de=(d,g,b)=>{const T=g.component=d.component;if(pd(d,g,b))if(T.asyncDep&&!T.asyncResolved){X(T,g,b);return}else T.next=g,T.update();else g.el=d.el,T.vnode=g},le=(d,g,b,T,N,P,V)=>{const H=()=>{if(d.isMounted){let{next:$,bu:G,u:te,parent:ge,vnode:be}=d;{const ut=Lc(d);if(ut){$&&($.el=be.el,X(d,$,V)),ut.asyncDep.then(()=>{tt(()=>{d.isUnmounted||F()},N)});return}}let Ee=$,Ne;Sn(d,!1),$?($.el=be.el,X(d,$,V)):$=be,G&&gr(G),(Ne=$.props&&$.props.onVnodeBeforeUpdate)&&Dt(Ne,ge,$,be),Sn(d,!0);const Fe=na(d),ct=d.subTree;d.subTree=Fe,m(ct,Fe,f(ct.el),C(ct),d,N,P),$.el=Fe.el,Ee===null&&gd(d,Fe.el),te&&tt(te,N),(Ne=$.props&&$.props.onVnodeUpdated)&&tt(()=>Dt(Ne,ge,$,be),N)}else{let $;const{el:G,props:te}=g,{bm:ge,m:be,parent:Ee,root:Ne,type:Fe}=d,ct=es(g);Sn(d,!1),ge&&gr(ge),!ct&&($=te&&te.onVnodeBeforeMount)&&Dt($,Ee,g),Sn(d,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(Fe,d.parent?d.parent.type:void 0);const ut=d.subTree=na(d);m(null,ut,b,T,d,N,P),g.el=ut.el}if(be&&tt(be,N),!ct&&($=te&&te.onVnodeMounted)){const ut=g;tt(()=>Dt($,Ee,ut),N)}(g.shapeFlag&256||Ee&&es(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&d.a&&tt(d.a,N),d.isMounted=!0,g=b=T=null}};d.scope.on();const U=d.effect=new jl(H);d.scope.off();const F=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),F()},X=(d,g,b)=>{g.component=d;const T=d.vnode.props;d.vnode=g,d.next=null,yd(d,g.props,T,b),_d(d,g.children,b),Xt(),Ki(d),Zt()},ie=(d,g,b,T,N,P,V,H,U=!1)=>{const F=d&&d.children,Y=d?d.shapeFlag:0,$=g.children,{patchFlag:G,shapeFlag:te}=g;if(G>0){if(G&128){ue(F,$,b,T,N,P,V,H,U);return}else if(G&256){ve(F,$,b,T,N,P,V,H,U);return}}te&8?(Y&16&&ae(F,N,P),$!==F&&c(b,$)):Y&16?te&16?ue(F,$,b,T,N,P,V,H,U):ae(F,N,P,!0):(Y&8&&c(b,""),te&16&&B($,b,T,N,P,V,H,U))},ve=(d,g,b,T,N,P,V,H,U)=>{d=d||Yn,g=g||Yn;const F=d.length,Y=g.length,$=Math.min(F,Y);let G;for(G=0;G<$;G++){const te=g[G]=U?zt(g[G]):Bt(g[G]);m(d[G],te,b,null,N,P,V,H,U)}F>Y?ae(d,N,P,!0,!1,$):B(g,b,T,N,P,V,H,U,$)},ue=(d,g,b,T,N,P,V,H,U)=>{let F=0;const Y=g.length;let $=d.length-1,G=Y-1;for(;F<=$&&F<=G;){const te=d[F],ge=g[F]=U?zt(g[F]):Bt(g[F]);if(Tn(te,ge))m(te,ge,b,null,N,P,V,H,U);else break;F++}for(;F<=$&&F<=G;){const te=d[$],ge=g[G]=U?zt(g[G]):Bt(g[G]);if(Tn(te,ge))m(te,ge,b,null,N,P,V,H,U);else break;$--,G--}if(F>$){if(F<=G){const te=G+1,ge=teG)for(;F<=$;)Me(d[F],N,P,!0),F++;else{const te=F,ge=F,be=new Map;for(F=ge;F<=G;F++){const Be=g[F]=U?zt(g[F]):Bt(g[F]);Be.key!=null&&be.set(Be.key,F)}let Ee,Ne=0;const Fe=G-ge+1;let ct=!1,ut=0;const nn=new Array(Fe);for(F=0;F=Fe){Me(Be,N,P,!0);continue}let ze;if(Be.key!=null)ze=be.get(Be.key);else for(Ee=ge;Ee<=G;Ee++)if(nn[Ee-ge]===0&&Tn(Be,g[Ee])){ze=Ee;break}ze===void 0?Me(Be,N,P,!0):(nn[ze-ge]=F+1,ze>=ut?ut=ze:ct=!0,m(Be,g[ze],b,null,N,P,V,H,U),Ne++)}const sn=ct?Cd(nn):Yn;for(Ee=sn.length-1,F=Fe-1;F>=0;F--){const Be=ge+F,ze=g[Be],Mi=g[Be+1],Bi=Be+1{const{el:P,type:V,transition:H,children:U,shapeFlag:F}=d;if(F&6){De(d.component.subTree,g,b,T);return}if(F&128){d.suspense.move(g,b,T);return}if(F&64){V.move(d,g,b,Q);return}if(V===Ae){s(P,g,b);for(let $=0;$H.enter(P),N);else{const{leave:$,delayLeave:G,afterLeave:te}=H,ge=()=>{d.ctx.isUnmounted?r(P):s(P,g,b)},be=()=>{P._isLeaving&&P[It](!0),$(P,()=>{ge(),te&&te()})};G?G(P,ge,be):be()}else s(P,g,b)},Me=(d,g,b,T=!1,N=!1)=>{const{type:P,props:V,ref:H,children:U,dynamicChildren:F,shapeFlag:Y,patchFlag:$,dirs:G,cacheIndex:te,memo:ge}=d;if($===-2&&(N=!1),H!=null&&(Xt(),Ts(H,null,b,d,!0),Zt()),te!=null&&(g.renderCache[te]=void 0),Y&256){g.ctx.deactivate(d);return}const be=Y&1&&G,Ee=!es(d);let Ne;if(Ee&&(Ne=V&&V.onVnodeBeforeUnmount)&&Dt(Ne,g,d),Y&6)R(d.component,b,T);else{if(Y&128){d.suspense.unmount(b,T);return}be&&En(d,null,g,"beforeUnmount"),Y&64?d.type.remove(d,g,b,Q,T):F&&!F.hasOnce&&(P!==Ae||$>0&&$&64)?ae(F,g,b,!1,!0):(P===Ae&&$&384||!N&&Y&16)&&ae(U,g,b),T&&Oe(d)}const Fe=ge!=null&&te==null;(Ee&&(Ne=V&&V.onVnodeUnmounted)||be||Fe)&&tt(()=>{Ne&&Dt(Ne,g,d),be&&En(d,null,g,"unmounted"),Fe&&(d.el=null)},b)},Oe=d=>{const{type:g,el:b,anchor:T,transition:N}=d;if(g===Ae){Ve(b,T);return}if(g===yr){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,g)=>{let b;for(;d!==g;)b=h(d),r(d),d=b;r(g)},R=(d,g,b)=>{const{bum:T,scope:N,job:P,subTree:V,um:H,m:U,a:F}=d;oa(U),oa(F),T&&gr(T),N.stop(),P&&(P.flags|=8,Me(V,d,g,b)),H&&tt(H,g),tt(()=>{d.isUnmounted=!0},g)},ae=(d,g,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 g=h(d.anchor||d.el),b=g&&g[lc];return b?h(b):g};let L=!1;const M=(d,g,b)=>{let T;d==null?g._vnode&&(Me(g._vnode,null,null,!0),T=g._vnode.component):m(g._vnode||null,d,g,null,null,null,b),g._vnode=d,L||(L=!0,Ki(T),rc(),L=!1)},Q={p:m,um:Me,m:De,r:Oe,mt:se,mc:B,pc:ie,pbc:I,n:C,o:e};return{render:M,hydrate:void 0,createApp:ld(M)}}function mo({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 Ad(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):Pf(e)}const Ae=Symbol.for("v-fgt"),Qr=Symbol.for("v-txt"),Je=Symbol.for("v-cmt"),yr=Symbol.for("v-stc"),Ds=[];let gt=null;function ee(e=!1){Ds.push(gt=e?null:[])}function Rd(){Ds.pop(),gt=Ds[Ds.length-1]||null}let Us=1;function Or(e,t=!1){Us+=e,e<0&>&&t&&(gt.hasOnce=!0)}function Mc(e){return e.dynamicChildren=Us>0?gt||Yn:null,Rd(),Us>0&>&>.push(e),e}function ce(e,t,n,s,r,o){return Mc(J(e,t,n,s,r,o,!0))}function Ut(e,t,n,s,r){return Mc(Te(e,t,n,s,r,!0))}function Hs(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,vr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Re(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===Ae?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bc(t),ref:t&&vr(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|=Re(n)?8:16),Us>0&&!i&>&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&>.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),Hs(e)){const a=_n(e,t,!0);return n&&Ci(a,n),Us>0&&!o&>&&(a.shapeFlag&6?gt[gt.indexOf(e)]=a:gt.push(a)),a.patchFlag=-2,a}if(Md(e)&&(e=e.__vccOpts),t){t=Td(t);let{class:a,style:l}=t;a&&!Re(a)&&(t.class=ht(a)),xe(l)&&(Hr(l)&&!Z(l)&&(l=He({},l)),t.style=bn(l))}const i=Re(e)?1:Fc(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(vr(t)):[o,vr(t)]:vr(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!==Ae?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&&Bs(c,l.clone(c)),c}function qs(e=" ",t=0){return Te(Qr,null,e,t)}function R0(e,t){const n=Te(yr,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(Ae,null,e.slice()):Hs(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=[qs(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ns(...e){const t={};for(let n=0;nYe||Qe;let Tr,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)}};Tr=t("__VUE_INSTANCE_SETTERS__",n=>Ye=n),Ho=t("__VUE_SSR_SETTERS__",n=>Vs=n)}const er=e=>{const t=Ye;return Tr(e),e.scope.on(),()=>{e.scope.off(),Tr(t)}},ia=()=>{Ye&&Ye.scope.off(),Tr(null)};function jc(e){return e.vnode.shapeFlag&4}let Vs=!1;function Id(e,t=!1,n=!1){t&&Ho(t);const{props:s,children:r}=e.vnode,o=jc(e);md(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=er(e),i=Zs(s,e,0,[e.props,r]),a=Tl(i);if(Zt(),o(),(a||e.sp)&&!es(e)&&gc(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=er(e);Xt();try{nd(e)}finally{Zt(),r()}}}const kd={get(e,t){return Ge(e,"get",""),e[t]}};function Hc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,kd),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 Fd(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Md(e){return oe(e)&&"__vccOpts"in e}const me=(e,t)=>Cf(e,t,Vs);function Ai(e,t,n){try{Or(-1);const s=arguments.length;return s===2?xe(t)&&!Z(t)?Hs(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Hs(n)&&(n=[n]),Te(e,t,n))}finally{Or(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",$s=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})=>Ai(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 k in e)k in Vc||(t[k]=e[k]);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),m=x&&x[0],w=x&&x[1],{onBeforeEnter:E,onEnter:A,onEnterCancelled:y,onLeave:v,onLeaveCancelled:D,onBeforeAppear:K=E,onAppear:j=A,onAppearCancelled:B=y}=t,S=(k,W,se,de)=>{k._enterCancelled=de,An(k,W?c:a),An(k,W?u:i),se&&se()},I=(k,W)=>{k._isLeaving=!1,An(k,f),An(k,p),An(k,h),W&&W()},q=k=>(W,se)=>{const de=k?j:A,le=()=>S(W,k,se);Cn(de,[W,le]),fa(()=>{An(W,k?l:o),Vt(W,k?c:a),ua(de)||da(W,s,m,le)})};return He(t,{onBeforeEnter(k){Cn(E,[k]),Vt(k,o),Vt(k,i)},onBeforeAppear(k){Cn(K,[k]),Vt(k,l),Vt(k,u)},onEnter:q(!1),onAppear:q(!0),onLeave(k,W){k._isLeaving=!0;const se=()=>I(k,W);Vt(k,f),k._enterCancelled?(Vt(k,h),ga(k)):(ga(k),Vt(k,h)),fa(()=>{k._isLeaving&&(An(k,f),Vt(k,p),ua(v)||da(k,s,w,se))}),Cn(v,[k,se])},onEnterCancelled(k){S(k,!1,void 0,!0),Cn(y,[k])},onAppearCancelled(k){S(k,!0,void 0,!0),Cn(B,[k])},onLeaveCancelled(k){I(k),Cn(D,[k])}})}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[$s]||(e[$s]=new Set)).add(t)}function An(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[$s];n&&(n.delete(t),n.size||(e[$s]=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 ga(e){return(e?e.ownerDocument:document).body.offsetHeight}function Gd(e,t,n){const s=e[$s];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Pr=Symbol("_vod"),$c=Symbol("_vsh"),O0={name:"show",beforeMount(e,{value:t},{transition:n}){e[Pr]=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[Pr]:"none",e[$c]=!t}const Jd=Symbol(""),Yd=/(?:^|;)\s*display\s*:/;function Xd(e,t,n){const s=e.style,r=Re(n);let o=!1;if(n&&!r){if(t)if(Re(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,!Re(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");Pr in e&&(e[Pr]=o?s.display:"",e[$c]&&(s.display="none"))}const ma=/\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);ma.test(n)?e.setProperty(xn(s),n.replace(ma,""),"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)?kr(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)||!Re(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)&&Re(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 Aa(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](Aa(e.value,n,o))}),(n||o)&&Wn(e,"change",()=>{e.value=Aa(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))},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||gh[i]===o))return e(r)})},mh=He({patchProp:lh},Hd);let Ta;function yh(){return Ta||(Ta=xd(mh))}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 Re(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 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 Ah(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 m;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=m=Symbol();Hn().then(()=>{m===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 A(){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),k=[],W=[];function se(X){k.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(k,X),X)).catch(X=>(Kn(W,X),Promise.reject(X))):(Kn(k,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],k=>{(S.flush==="sync"?c:u)&&B({storeId:e,type:Is.direct,events:p},k)},ln({},l,S)));return I},$dispose:A},D=Xs(v);s._s.set(e,D);const j=(s._a&&s._a.runWithContext||xh)(()=>s._e.run(()=>(i=Ml()).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 Rh(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):Ah(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 kh(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!==Ri(i,t.options))return!1}else if(!Qs(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(Ks(t.options.mutationKey)!==Ks(o))return!1}else if(!Qs(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)||Ks)(e)}function Ks(e){return JSON.stringify(e,(t,n)=>zo(n)?Object.keys(n).sort().reduce((s,r)=>(s[r]=n[r],s),{}):n)}function Qs(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Qs(e[n],t[n])):!1}var Fh=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,gn,rs,wl,Kh=(wl=class extends Jr{constructor(){super();pe(this,ss,!0);pe(this,gn);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,gn)||this.setEventListener(O(this,rs))}onUnsubscribe(){var t;this.hasListeners()||((t=O(this,gn))==null||t.call(this),ne(this,gn,void 0))}setEventListener(t){var n;ne(this,rs,t),(n=O(this,gn))==null||n.call(this),ne(this,gn,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,gn=new WeakMap,rs=new WeakMap,wl),Dr=new Kh;function Qh(e){return Math.min(1e3*2**e,3e4)}function eu(e){return(e??"online")==="online"?Dr.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=m=>{var w;if(!o()){const E=new Wo(m);h(E),(w=e.onCancel)==null||w.call(e,E)}},a=()=>{t=!0},l=()=>{t=!1},u=()=>Gc.isFocused()&&(e.networkMode==="always"||Dr.isOnline())&&e.canRun(),c=()=>eu(e.networkMode)&&e.canRun(),f=m=>{o()||(s==null||s(),r.resolve(m))},h=m=>{o()||(s==null||s(),r.reject(m))},p=()=>new Promise(m=>{var w;s=E=>{(o()||u())&&m(E)},(w=e.onPause)==null||w.call(e)}).then(()=>{var m;s=void 0,o()||(m=e.onContinue)==null||m.call(e)}),x=()=>{if(o())return;let m;const w=n===0?e.initialPromise:void 0;try{m=w??e.fn()}catch(E){m=Promise.reject(E)}Promise.resolve(m).then(f).catch(E=>{var K;if(o())return;const A=e.retry??(Zc.isServer()?0:3),y=e.retryDelay??Qh,v=typeof y=="function"?y(n,E):y,D=A===!0||typeof A=="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 m=!1;const w=y=>{Hh(y,()=>t.signal,()=>m=!0)},E=Xc(t.options,t.fetchOptions),A=async(y,v,D)=>{if(m)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:Fa,D={pages:o,pageParams:i},K=v(s,D);a=await A(D,K,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 A(a,v),l++}while(l{var m,w;return(w=(m=t.options).persister)==null?void 0:w.call(m,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,kn,qe,Ws,Fn,pt,su,Kt,xl,Gh=(xl=class extends nu{constructor(t){super();pe(this,pt);pe(this,os);pe(this,Ln);pe(this,is);pe(this,wt);pe(this,kn);pe(this,qe);pe(this,Ws);pe(this,Fn);ne(this,Fn,!1),ne(this,Ws,t.defaultOptions),this.setOptions(t.options),this.observers=[],ne(this,kn,t.client),ne(this,wt,O(this,kn).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,Ws),...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(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,pt,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,pt,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=>kh(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,Fn)||$e(this,pt,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,pt,Kt).call(this,{type:"invalidate"})}async fetch(t,n){var u,c,f,h,p,x,m,w,E,A,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,Fn,!0),s.signal)})},o=()=>{const v=Xc(this.options,n),K=(()=>{const j={client:O(this,kn),queryKey:this.queryKey,meta:this.meta};return r(j),j})();return ne(this,Fn,!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,kn),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,pt,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,pt,Kt).call(this,{type:"failed",failureCount:v,error:D})},onPause:()=>{$e(this,pt,Kt).call(this,{type:"pause"})},onContinue:()=>{$e(this,pt,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),(m=(x=O(this,wt).config).onSettled)==null||m.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,pt,Kt).call(this,{type:"error",error:v}),(E=(w=O(this,wt).config).onError)==null||E.call(w,v,this),(y=(A=O(this,wt).config).onSettled)==null||y.call(A,this.state.data,v,this),v}finally{this.scheduleGc()}}},os=new WeakMap,Ln=new WeakMap,is=new WeakMap,wt=new WeakMap,kn=new WeakMap,qe=new WeakMap,Ws=new WeakMap,Fn=new WeakMap,pt=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})})},xl);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 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 Gs,Lt,We,Mn,kt,cn,El,Yh=(El=class extends nu{constructor(t){super();pe(this,kt);pe(this,Gs);pe(this,Lt);pe(this,We);pe(this,Mn);ne(this,Gs,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,Mn))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,a,l,u,c,f,h,p,x,m,w,E,A,y,v,D,K,j;const n=()=>{$e(this,kt,cn).call(this,{type:"continue"})},s={client:O(this,Gs),meta:this.options.meta,mutationKey:this.options.mutationKey};ne(this,Mn,tu({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(new Error("No mutationFn found")),onFail:(B,S)=>{$e(this,kt,cn).call(this,{type:"failed",failureCount:B,error:S})},onPause:()=>{$e(this,kt,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,Mn).canStart();try{if(r)n();else{$e(this,kt,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,kt,cn).call(this,{type:"pending",context:S,variables:t,isPaused:o})}const B=await O(this,Mn).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((m=(x=this.options).onSettled)==null?void 0:m.call(x,B,null,t,this.state.context,s)),$e(this,kt,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=(A=this.options).onError)==null?void 0:y.call(A,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,kt,cn).call(this,{type:"error",error:B}),B}finally{O(this,We).runNext(this)}}},Gs=new WeakMap,Lt=new WeakMap,We=new WeakMap,Mn=new WeakMap,kt=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,Js,Sl,ru=(Sl=class extends Jr{constructor(n={}){super();pe(this,Wt);pe(this,St);pe(this,Js);this.config=n,ne(this,Wt,new Set),ne(this,St,new Map),ne(this,Js,0)}build(n,s,r){const o=new Yh({client:n,mutationCache:this,mutationId:++ar(this,Js)._,options:n.defaultMutationOptions(s),state:r});return this.add(o),o}add(n){O(this,Wt).add(n);const s=dr(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=dr(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=dr(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=dr(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,Js=new WeakMap,Sl);function dr(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Ft,Cl,ou=(Cl=class extends Jr{constructor(n={}){super();pe(this,Ft);this.config=n,ne(this,Ft,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,Ft).has(n.queryHash)||(O(this,Ft).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const s=O(this,Ft).get(n.queryHash);s&&(n.destroy(),s===n&&O(this,Ft).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){ot.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return O(this,Ft).get(n)}getAll(){return[...O(this,Ft).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()})})}},Ft=new WeakMap,Cl),Ie,mn,yn,as,ls,vn,cs,us,Al,Zh=(Al=class{constructor(t={}){pe(this,Ie);pe(this,mn);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,mn,t.mutationCache||new ru),ne(this,yn,t.defaultOptions||{}),ne(this,as,new Map),ne(this,ls,new Map),ne(this,vn,0)}mount(){ar(this,vn)._++,O(this,vn)===1&&(ne(this,cs,Gc.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ie).onFocus())})),ne(this,us,Dr.subscribe(async t=>{t&&(await this.resumePausedMutations(),O(this,Ie).onOnline())})))}unmount(){var t,n;ar(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,mn).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 Dr.isOnline()?O(this,mn).resumePausedMutations():Promise.resolve()}getQueryCache(){return O(this,Ie)}getMutationCache(){return O(this,mn)}getDefaultOptions(){return O(this,yn)}setDefaultOptions(t){ne(this,yn,t)}setQueryDefaults(t,n){O(this,as).set(Ks(t),{queryKey:t,defaultOptions:n})}getQueryDefaults(t){const n=[...O(this,as).values()],s={};return n.forEach(r=>{Qs(t,r.queryKey)&&Object.assign(s,r.defaultOptions)}),s}setMutationDefaults(t,n){O(this,ls).set(Ks(t),{mutationKey:t,defaultOptions:n})}getMutationDefaults(t){const n=[...O(this,ls).values()],s={};return n.forEach(r=>{Qs(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===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,mn).clear()}},Ie=new WeakMap,mn=new WeakMap,yn=new WeakMap,as=new WeakMap,ls=new WeakMap,vn=new WeakMap,cs=new WeakMap,us=new WeakMap,Al),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 dt=new dp;function hp(e,t){const n=(t==null?void 0:t.id)||Jo++;return dt.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",gp=hp,mp=()=>dt.toasts,N0=Object.assign(gp,{success:dt.success,info:dt.info,warning:dt.warning,error:dt.error,custom:dt.custom,message:dt.message,promise:dt.promise,dismiss:dt.dismiss,loading:dt.loading},{getHistory:mp});function hr(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),m=me(()=>n.index+1<=n.visibleToasts),w=me(()=>n.toast.type),E=me(()=>n.toast.dismissible!==!1),A=me(()=>n.toast.class||""),y=me(()=>n.descriptionClass||""),v=n.toast.style||{},D=me(()=>n.heights.findIndex(R=>R.toastId===n.toast.id)||0),K=me(()=>n.toast.closeButton??n.closeButton),j=fe(0),B=fe(0),S=fe(null),I=me(()=>n.position.split("-")),q=me(()=>I.value[0]),k=me(()=>I.value[1]),W=me(()=>typeof n.toast.title!="string"),se=me(()=>typeof n.toast.description!="string"),de=me(()=>n.heights.reduce((R,ae,C)=>C>=D.value?R:R+ae.height,0)),le=yp(),X=me(()=>n.toast.invert||n.invert),ie=me(()=>w.value==="loading"),ve=me(()=>D.value*n.gap+de.value||0);js(()=>{if(!r.value)return;const R=p.value,ae=R==null?void 0:R.style.height;R.style.height="auto";const C=R.getBoundingClientRect().height;R.style.height=ae,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 ue(){o.value=!0,u.value=ve.value;const R=n.heights.filter(ae=>ae.toastId!==n.toast.id);s("update:heights",R),setTimeout(()=>{s("removeToast",n.toast)},xp)}function De(){var R,ae;if(ie.value||!E.value)return{};ue(),(ae=(R=n.toast).onDismiss)==null||ae.call(R,n.toast)}function Me(R){ie.value||!E.value||(h.value=new Date,u.value=ve.value,R.target.setPointerCapture(R.pointerId),R.target.tagName!=="BUTTON"&&(i.value=!0,S.value={x:R.clientX,y:R.clientY}))}function Oe(){var R,ae,C,L,M;if(a.value||!E)return;S.value=null;const Q=Number(((R=p.value)==null?void 0:R.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}(M=p.value)==null||M.style.setProperty("--swipe-amount","0px"),i.value=!1}function Ve(R){var ae,C;if(!S.value||!E.value)return;const L=R.clientY-S.value.y,M=((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),!M&&((C=p.value)==null||C.style.setProperty("--swipe-amount",`${Q}px`))}return Jn(R=>{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 M,Q;(Q=(M=n.toast).onAutoClose)==null||Q.call(M,n.toast),ue()},f.value))};n.expanded||n.interacting||n.pauseWhenPageIsHidden&&le?C():L(),R(()=>{clearTimeout(ae)})}),wn(()=>n.toast.delete,()=>{n.toast.delete&&ue()},{deep:!0}),js(()=>{if(r.value=!0,p.value){const R=p.value.getBoundingClientRect().height;c.value=R;const ae=[{toastId:n.toast.id,height:R,position:n.toast.position},...n.heights];s("update:heights",ae)}}),wi(()=>{if(p.value){const R=n.heights.filter(ae=>ae.toastId!==n.toast.id);s("update:heights",R)}}),(R,ae)=>{var C,L,M,Q,re,d,g,b,T,N,P,V,H,U,F,Y,$,G,te,ge,be,Ee,Ne,Fe,ct,ut,nn;return ee(),ce("li",{ref_key:"toastRef",ref:p,"aria-live":R.toast.important?"assertive":"polite","aria-atomic":"true",role:"status",tabindex:"0","data-sonner-toast":"true",class:ht(R.cn(n.class,A.value,(C=R.classes)==null?void 0:C.toast,(L=R.toast.classes)==null?void 0:L.toast,(M=R.classes)==null?void 0:M[w.value],(re=(Q=R.toast)==null?void 0:Q.classes)==null?void 0:re[w.value])),"data-rich-colors":R.toast.richColors??R.defaultRichColors,"data-styled":!(R.toast.component||(d=R.toast)!=null&&d.unstyled||R.unstyled),"data-mounted":r.value,"data-promise":!!R.toast.promise,"data-removed":o.value,"data-visible":m.value,"data-y-position":q.value,"data-x-position":k.value,"data-index":R.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":!!(R.expanded||R.expandByDefault&&r.value),style:bn({"--index":R.index,"--toasts-before":R.index,"--z-index":R.toasts.length-R.index,"--offset":`${o.value?u.value:ve.value}px`,"--initial-height":R.expandByDefault?"auto":`${c.value}px`,...R.style,...Ke(v)}),onPointerdown:Me,onPointerup:Oe,onPointermove:Ve},[K.value&&!R.toast.component?(ee(),ce("button",{key:0,"aria-label":R.closeButtonAriaLabel||"Close toast","data-disabled":ie.value,"data-close-button":"true",class:ht(R.cn((g=R.classes)==null?void 0:g.closeButton,(T=(b=R.toast)==null?void 0:b.classes)==null?void 0:T.closeButton)),onClick:De},[(N=R.icons)!=null&&N.close?(ee(),Ut(vs((P=R.icons)==null?void 0:P.close),{key:0})):_t(R.$slots,"close-icon",{key:1})],10,bp)):st("",!0),R.toast.component?(ee(),Ut(vs(R.toast.component),Ns({key:1},R.toast.componentProps,{onCloseToast:De}),null,16)):(ee(),ce(Ae,{key:2},[w.value!=="default"||R.toast.icon||R.toast.promise?(ee(),ce("div",{key:0,"data-icon":"",class:ht(R.cn((V=R.classes)==null?void 0:V.icon,(U=(H=R.toast)==null?void 0:H.classes)==null?void 0:U.icon))},[R.toast.icon?(ee(),Ut(vs(R.toast.icon),{key:0})):(ee(),ce(Ae,{key:1},[w.value==="loading"?_t(R.$slots,"loading-icon",{key:0}):w.value==="success"?_t(R.$slots,"success-icon",{key:1}):w.value==="error"?_t(R.$slots,"error-icon",{key:2}):w.value==="warning"?_t(R.$slots,"warning-icon",{key:3}):w.value==="info"?_t(R.$slots,"info-icon",{key:4}):st("",!0)],64))],2)):st("",!0),J("div",{"data-content":"",class:ht(R.cn((F=R.classes)==null?void 0:F.content,($=(Y=R.toast)==null?void 0:Y.classes)==null?void 0:$.content))},[J("div",{"data-title":"",class:ht(R.cn((G=R.classes)==null?void 0:G.title,(te=R.toast.classes)==null?void 0:te.title))},[W.value?(ee(),Ut(vs(R.toast.title),qi(Ns({key:0},R.toast.componentProps)),null,16)):(ee(),ce(Ae,{key:1},[qs(Ct(R.toast.title),1)],64))],2),R.toast.description?(ee(),ce("div",{key:0,"data-description":"",class:ht(R.cn(R.descriptionClass,y.value,(ge=R.classes)==null?void 0:ge.description,(be=R.toast.classes)==null?void 0:be.description))},[se.value?(ee(),Ut(vs(R.toast.description),qi(Ns({key:0},R.toast.componentProps)),null,16)):(ee(),ce(Ae,{key:1},[qs(Ct(R.toast.description),1)],64))],2)):st("",!0)],2),R.toast.cancel?(ee(),ce("button",{key:1,style:bn(R.toast.cancelButtonStyle||R.cancelButtonStyle),class:ht(R.cn((Ee=R.classes)==null?void 0:Ee.cancelButton,(Ne=R.toast.classes)==null?void 0:Ne.cancelButton)),"data-button":"","data-cancel":"",onClick:ae[0]||(ae[0]=sn=>{var Be,ze;Ke(hr)(R.toast.cancel)&&E.value&&((ze=(Be=R.toast.cancel).onClick)==null||ze.call(Be,sn),ue())})},Ct(Ke(hr)(R.toast.cancel)?(Fe=R.toast.cancel)==null?void 0:Fe.label:R.toast.cancel),7)):st("",!0),R.toast.action?(ee(),ce("button",{key:2,style:bn(R.toast.actionButtonStyle||R.actionButtonStyle),class:ht(R.cn((ct=R.classes)==null?void 0:ct.actionButton,(ut=R.toast.classes)==null?void 0:ut.actionButton)),"data-button":"","data-action":"",onClick:ae[1]||(ae[1]=sn=>{var Be,ze;Ke(hr)(R.toast.action)&&(sn.defaultPrevented||((ze=(Be=R.toast.action).onClick)==null||ze.call(Be,sn),!sn.defaultPrevented&&ue()))})},Ct(Ke(hr)(R.toast.action)?(nn=R.toast.action)==null?void 0:nn.label:R.toast.action),7)):st("",!0)],64))],46,vp)}}}),tr=(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 Ap(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 Rp=tr(Sp,[["render",Ap]]),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(Ae,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=tr(Dp,[["render",Ip]]),kp={},Fp={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"};function Mp(e,t){return ee(),ce("svg",Fp,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=tr(kp,[["render",Mp]]),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=tr(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=tr(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 eg=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=me(()=>(y,v)=>r.value.filter(D=>!D.position&&v===0||D.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 m(y){var v;(v=r.value.find(D=>D.id===y.id))!=null&&v.delete||dt.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 A(y){y.target&&y.target instanceof HTMLElement&&y.target.dataset.dismissible==="false"||(u.value=!0)}return Jn(y=>{const v=dt.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(Ae,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:A,onPointerup:v[4]||(v[4]=()=>u.value=!1)}),[(ee(!0),ce(Ae,null,ts(o.value(D,K),(B,S)=>{var I,q,k,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:ht(((q=y.toastOptions)==null?void 0:q.class)??""),descriptionClass:(k=y.toastOptions)==null?void 0:k.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:m},{"close-icon":fn(()=>[_t(y.$slots,"close-icon",{},()=>[Te(Rp)])]),"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:tg}=Object.prototype,{getPrototypeOf:Yr}=Object,{iterator:Xr,toStringTag:au}=Symbol,Zr=(e=>t=>{const n=tg.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:gs}=Array,ds=eo("undefined");function nr(e){return e!==null&&!ds(e)&&e.constructor!==null&&!ds(e.constructor)&<(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const lu=Pt("ArrayBuffer");function ng(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&lu(e.buffer),t}const sg=eo("string"),lt=eo("function"),cu=eo("number"),sr=e=>e!==null&&typeof e=="object",rg=e=>e===!0||e===!1,br=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)},og=e=>{if(!sr(e)||nr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ig=Pt("Date"),ag=Pt("File"),lg=e=>!!(e&&typeof e.uri<"u"),cg=e=>e&&typeof e.getParts<"u",ug=Pt("Blob"),fg=Pt("FileList"),dg=e=>sr(e)&<(e.pipe);function hg(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Ua=hg(),Ha=typeof Ua.FormData<"u"?Ua.FormData:void 0,pg=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]"},gg=Pt("URLSearchParams"),[mg,yg,vg,bg]=["ReadableStream","Request","Response","Headers"].map(Pt),wg=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function rr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let s,r;if(typeof e!="object"&&(e=[e]),gs(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;br(l)&&br(o)?s[a]=Yo(l,o):br(o)?s[a]=Yo({},o):gs(o)?s[a]=o.slice():(!n||!ds(o))&&(s[a]=o)};for(let o=0,i=e.length;o(rr(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),xg=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Eg=(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)},Sg=(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},Cg=(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},Ag=e=>{if(!e)return null;if(gs(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},Rg=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Yr(Uint8Array)),Og=(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])}},Tg=(e,t)=>{let n;const s=[];for(;(n=e.exec(t))!==null;)s.push(n);return s},Pg=Pt("HTMLFormElement"),Dg=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),Ng=Pt("RegExp"),du=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),s={};rr(n,(r,o)=>{let i;(i=t(r,o,e))!==!1&&(s[o]=i||r)}),Object.defineProperties(e,s)},Ig=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+"'")})}})},Lg=(e,t)=>{const n={},s=r=>{r.forEach(o=>{n[o]=!0})};return gs(e)?s(e):s(String(e).split(t)),n},kg=()=>{},Fg=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Mg(e){return!!(e&<(e.append)&&e[au]==="FormData"&&e[Xr])}const Bg=e=>{const t=new Array(10),n=(s,r)=>{if(sr(s)){if(t.indexOf(s)>=0)return;if(nr(s))return s;if(!("toJSON"in s)){t[r]=s;const o=gs(s)?[]:{};return rr(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)},jg=Pt("AsyncFunction"),Ug=e=>e&&(sr(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)),Hg=typeof queueMicrotask<"u"?queueMicrotask.bind(Pn):typeof process<"u"&&process.nextTick||hu,qg=e=>e!=null&<(e[Xr]),_={isArray:gs,isArrayBuffer:lu,isBuffer:nr,isFormData:pg,isArrayBufferView:ng,isString:sg,isNumber:cu,isBoolean:rg,isObject:sr,isPlainObject:br,isEmptyObject:og,isReadableStream:mg,isRequest:yg,isResponse:vg,isHeaders:bg,isUndefined:ds,isDate:ig,isFile:ag,isReactNativeBlob:lg,isReactNative:cg,isBlob:ug,isRegExp:Ng,isFunction:lt,isStream:dg,isURLSearchParams:gg,isTypedArray:Rg,isFileList:fg,forEach:rr,merge:Yo,extend:_g,trim:wg,stripBOM:xg,inherits:Eg,toFlatObject:Sg,kindOf:Zr,kindOfTest:Pt,endsWith:Cg,toArray:Ag,forEachEntry:Og,matchAll:Tg,isHTMLForm:Pg,hasOwnProperty:Xo,hasOwnProp:Xo,reduceDescriptors:du,freezeMethods:Ig,toObjectSet:Lg,toCamelCase:Dg,noop:kg,toFiniteNumber:Fg,findKey:uu,global:Pn,isContextDefined:fu,isSpecCompliantForm:Mg,toJSONObject:Bg,isAsyncFn:jg,isThenable:Ug,setImmediate:hu,asap:Hg,isIterable:qg},Vg=_.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"]),$g=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]&&Vg[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"),Kg=/[^\x09\x20-\x7E\x80-\xFF]/g;function Qg(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 zg(e){return Qg(e.replace(Kg,""))}function wr(e){return e===!1||e==null?e:_.isArray(e)?e.map(wr):zg(String(e))}function Wg(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 Gg=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 Jg(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,s)=>n.toUpperCase()+s)}function Yg(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]=wr(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())&&!Gg(t))i($g(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 Wg(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]=wr(r),delete n[o];return}const a=t?Jg(o):String(o).trim();a!==o&&delete n[o],n[a]=wr(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]||(Yg(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 Xg="[REDACTED ****]";function Zg(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 em(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)&&Zg(o))return s.pop(),o;i=Object.create(null);for(const[a,l]of Object.entries(o)){const u=n.has(a.toLowerCase())?Xg: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?em(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 tm=null;function Zo(e){return _.isPlainObject(e)||_.isArray(e)}function gu(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=gu(r),!n&&o?"["+r+"]":r}).join(n?".":""):t}function nm(e){return _.isArray(e)&&!e.some(Zo)}const sm=_.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(m){if(m===null)return"";if(_.isDate(m))return m.toISOString();if(_.isBoolean(m))return m.toString();if(!u&&_.isBlob(m))throw new z("Blob is not supported. Use a Buffer instead.");return _.isArrayBuffer(m)||_.isTypedArray(m)?u&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function f(m,w,E){let A=m;if(_.isReactNative(t)&&_.isReactNativeBlob(m))return t.append(Eo(E,w,o),c(m)),!1;if(m&&!E&&typeof m=="object"){if(_.endsWith(w,"{}"))w=s?w:w.slice(0,-2),m=JSON.stringify(m);else if(_.isArray(m)&&nm(m)||(_.isFileList(m)||_.endsWith(w,"[]"))&&(A=_.toArray(m)))return w=gu(w),A.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(m)?!0:(t.append(Eo(E,w,o),c(m)),!1)}const h=[],p=Object.assign(sm,{defaultVisitor:f,convertValue:c,isVisitable:Zo});function x(m,w,E=0){if(!_.isUndefined(m)){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(m)!==-1)throw Error("Circular reference detected in "+w.join("."));h.push(m),_.forEach(m,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 mu=Ti.prototype;mu.append=function(t,n){this._pairs.push([t,n])};mu.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 rm(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||rm,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},om=typeof URLSearchParams<"u"?URLSearchParams:Ti,im=typeof FormData<"u"?FormData:null,am=typeof Blob<"u"?Blob:null,lm={isBrowser:!0,classes:{URLSearchParams:om,FormData:im,Blob:am},protocols:["http","https","file","blob","url","data"]},Di=typeof window<"u"&&typeof document<"u",ei=typeof navigator=="object"&&navigator||void 0,cm=Di&&(!ei||["ReactNative","NativeScript","NS"].indexOf(ei.product)<0),um=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",fm=Di&&window.location.href||"http://localhost",dm=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Di,hasStandardBrowserEnv:cm,hasStandardBrowserWebWorkerEnv:um,navigator:ei,origin:fm},Symbol.toStringTag,{value:"Module"})),Xe={...dm,...lm};function hm(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 pm(e){return _.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function gm(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]=gm(r[i])),!a)}if(_.isFormData(e)&&_.isFunction(e.entries)){const n={};return _.forEachEntry(e,(s,r)=>{t(pm(s),r,n,0)}),n}return null}const Qn=(e,t)=>e!=null&&_.hasOwnProp(e,t)?e[t]:void 0;function mm(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 or={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 hm(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),mm(t)):t}],transformResponse:[function(t){const n=Qn(this,"transitional")||or.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=>{or.headers[e]={}});function So(e,t){const n=this||or,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 ir=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 ym(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function vm(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 Nr=(e,t,n=3)=>{let s=0;const r=vm(50,250);return bm(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)),wm=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,_m=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 Sm=["content-type","content-length"];function Cm(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t).forEach(([s,r])=>{Sm.includes(s.toLowerCase())&&e.set(s,r)})}const Am=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?Am(l.password):""))),_.isFormData(s)&&(Xe.hasStandardBrowserEnv||Xe.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):_.isFunction(s.getHeaders)&&Cm(a,s.getHeaders(),n("formDataHeaderPolicy"))),Xe.hasStandardBrowserEnv&&(_.isFunction(r)&&(r=r(t)),r===!0||r==null&&wm(t.url))){const p=o&&i&&_m.read(i);p&&a.set(o,p)}return t},Rm=typeof XMLHttpRequest<"u",Om=Rm&&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 m(){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),m()},function(j){s(j),m()},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)),m(),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),m(),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)),m(),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]=Nr(u,!0),w.addEventListener("progress",h)),l&&w.upload&&([f,p]=Nr(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",p)),(r.cancelToken||r.signal)&&(c=y=>{w&&(s(!y||y.type?new ir(null,e,w):y),w.abort(),m(),w=null)},r.cancelToken&&r.cancelToken.subscribe(c),r.signal&&(r.signal.aborted?c():r.signal.addEventListener("abort",c)));const A=ym(r.url);if(A&&!Xe.protocols.includes(A)){s(new z("Unsupported protocol "+A+":",z.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Tm=(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 ir(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}},Pm=function*(e,t){let n=e.byteLength;if(n{const r=Dm(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 Im(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)&&(m>=48&&m<=57||m>=65&&m<=70||m>=97&&m<=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:pr}=_,Ja=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Lm=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?pr(r):typeof fetch=="function",l=pr(o),u=pr(i);if(!a)return!1;const c=a&&pr(n),f=a&&(typeof s=="function"?(E=>A=>E.encode(A))(new s):async E=>new Uint8Array(await new o(E).arrayBuffer())),h=l&&c&&Ja(()=>{let E=!1;const A=new o(Xe.origin,{body:new n,method:"POST",get duplex(){return E=!0,"half"}}),y=A.headers.has("Content-Type");return A.body!=null&&A.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]=(A,y)=>{let v=A&&A[E];if(v)return v.call(A);throw new z(`Response type '${E}' is not supported`,z.ERR_NOT_SUPPORT,y)})});const m=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,A)=>{const y=_.toFiniteNumber(E.getContentLength());return y??m(A)};return async E=>{let{url:A,method:y,data:v,signal:D,cancelToken:K,timeout:j,onDownloadProgress:B,onUploadProgress:S,responseType:I,headers:q,withCredentials:k="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=Tm([D,K&&K.toAbortSignal()],j),ue=null;const De=ve&&ve.unsubscribe&&(()=>{ve.unsubscribe()});let Me;try{if(le&&typeof A=="string"&&A.startsWith("data:")&&Im(A)>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"&&(Me=await w(q,v))!==0){let L=new o(A,{method:"POST",body:v,duplex:"half"}),M;if(_.isFormData(v)&&(M=L.headers.get("content-type"))&&q.setContentType(M),L.body){const[Q,re]=Ka(Me,Nr(Qa(S)));v=Wa(L.body,Ga,Q,re)}}_.isString(k)||(k=k?"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?k:void 0};ue=l&&new o(A,Ve);let R=await(l?ie(ue,W):ie(A,Ve));if(le){const L=_.toFiniteNumber(R.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&&R.body&&(B||le||ae&&De)){const L={};["status","statusText","headers"].forEach(b=>{L[b]=R[b]});const M=_.toFiniteNumber(R.headers.get("content-length")),[Q,re]=B&&Ka(M,Nr(Qa(B),!0))||[];let d=0;const g=b=>{if(le&&(d=b,d>se))throw new z("maxContentLength size of "+se+" exceeded",z.ERR_BAD_RESPONSE,E,ue);Q&&Q(b)};R=new i(Wa(R.body,Ga,g,()=>{re&&re(),De&&De()}),L)}I=I||"text";let C=await x[_.findKey(x,I)||"text"](R,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,M)=>{wu(L,M,{data:C,headers:at.from(R.headers),status:R.status,statusText:R.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)}}},km=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=km;for(;a--;)l=o[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:Lm(t)),c=u;return u};Eu();const Ii={http:tm,xhr:Om,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}`,Fm=e=>_.isFunction(e)||e===null||e===!1;function Mm(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:Mm,adapters:Ii};function Co(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ir(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||or.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 Bm(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 _r={assertOptions:Bm,validators:no},bt=_r.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&&_r.assertOptions(s,{silentJSONParsing:bt.transitional(bt.boolean),forcedJSONParsing:bt.transitional(bt.boolean),clarifyTimeoutError:bt.transitional(bt.boolean),legacyInterceptorReqResOrdering:bt.transitional(bt.boolean)},!1),r!=null&&(_.isFunction(r)?n.paramsSerializer={serialize:r}:_r.assertOptions(r,{encode:bt.function,serialize:bt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),_r.assertOptions(n,{baseUrl:bt.spelling("baseURL"),withXsrfToken:bt.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(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;l=l&&m.synchronous;const w=n.transitional||Pi;w&&w.legacyInterceptorReqResOrdering?a.unshift(m.fulfilled,m.rejected):a.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let 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 ir(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 Um(e){return function(n){return e.apply(null,n)}}function Hm(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 Au(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 Au(qn(e,r))},n}const ke=Au(or);ke.Axios=Un;ke.CanceledError=ir;ke.CancelToken=jm;ke.isCancel=bu;ke.VERSION=Ni;ke.toFormData=to;ke.AxiosError=z;ke.Cancel=ke.CanceledError;ke.all=function(t){return Promise.all(t)};ke.spread=Um;ke.isAxiosError=Hm;ke.mergeConfig=qn;ke.AxiosHeaders=at;ke.formToJSON=e=>vu(_.isHTMLForm(e)?new FormData(e):e);ke.getAdapter=Su.getAdapter;ke.HttpStatusCode=ti;ke.default=ke;const{Axios:F0,AxiosError:M0,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}=ke,Ir=ke.create({baseURL:"/cc-dashboard",headers:{"Content-Type":"application/json"}});function qm(e,t){Ir.interceptors.request.use(n=>{const s=e();return s&&(n.headers.Authorization=`Bearer ${s}`),n}),Ir.interceptors.response.use(n=>n,n=>{var s;return((s=n.response)==null?void 0:s.status)===401&&t(),Promise.reject(n)})}const so=Rh("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=await Ir.post("/api/auth/login",{email:c,password:f});e.value=x.data.access_token,await l()}catch(x){const m=x;throw s.value=((p=(h=m.response)==null?void 0:h.data)==null?void 0:p.detail)??"Login failed",x}finally{n.value=!1}}function a(){e.value=null,t.value=null}async function l(){const c=await Ir.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}}),Vm={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"},$m={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"},Km={class:"flex items-center justify-between px-4 py-3 border-b border-gray-700 bg-gray-800 flex-shrink-0"},Qm={class:"flex items-center gap-1"},zm={key:0,class:"flex flex-col items-center justify-center h-full py-8 text-center"},Wm={class:"mt-4 flex flex-wrap justify-center gap-2"},Gm=["onClick"],Jm={key:0,class:"flex justify-end"},Ym={class:"max-w-[80%] rounded-2xl rounded-tr-sm bg-amber-400 px-3 py-2"},Xm={class:"text-sm text-gray-900"},Zm={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","What's on my task list today?","Auto-schedule today","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…",list_tasks:"Loading tasks…",create_task:"Creating task…",update_task:"Updating task…",delete_task:"Deleting task…",complete_task:"Completing task…",prioritize_day:"Prioritizing tasks…",schedule_task:"Scheduling task…",auto_schedule_day:"Auto-scheduling day…",list_projects:"Loading projects…",list_manual_entries:"Loading manual entries…",delete_manual_entry:"Deleting entry…",generate_report:"Generating report…",search_sessions:"Searching sessions…",list_work_items:"Loading work items…"}[S]??`Running ${S}…`}function p(S){const q=S.replace(/&/g,"&").replace(//g,">").split(` -`),k=[];let W=!1;for(const se of q){const de=se.replace(/\*\*(.+?)\*\*/g,'$1').replace(/`(.+?)`/g,'$1');/^###? (.+)/.test(de)?(W&&(k.push(""),W=!1),k.push(`

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

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

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

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

${de}

`))}return W&&k.push(""),k.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 m(){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(){A("Show me all unresolved time-tracking issues from the last 7 days")}function A(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 k=q.body.getReader(),W=new TextDecoder;let se="";for(;;){const{done:de,value:le}=await k.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 m()}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 js(()=>{m(),B=setInterval(m,5*60*1e3)}),_i(()=>{B!==void 0&&clearInterval(B)}),wn(n,S=>{S&&m()}),(S,I)=>(ee(),ce(Ae,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",Vm,Ct(l.value>9?"9+":l.value),1)):st("",!0)])),Te($d,{name:"slide-up"},{default:fn(()=>[n.value?(ee(),ce("div",$m,[J("div",Km,[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",Qm,[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)),qs(" "+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",zm,[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",Wm,[(ee(),ce(Ae,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:k=>A(q)},Ct(q),9,Gm)),64))])])):st("",!0),(ee(!0),ce(Ae,null,ts(s.value,q=>(ee(),ce(Ae,{key:q.id},[q.role==="user"?(ee(),ce("div",Jm,[J("div",Ym,[J("p",Xm,Ct(q.content),1)])])):(ee(),ce("div",Zm,[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(Ae,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)),qs(" "+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(Ra(y,["exact","prevent"]),["enter"]),Oa(Ra(()=>{},["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-5b6580b3"]]),py=Vn({__name:"App",setup(e){const t=so(),n=me(()=>t.isAuthenticated);return(s,r)=>{const o=Xf("RouterView");return ee(),ce(Ae,null,[Te(o),n.value?(ee(),Ut(hy,{key:0})):st("",!0),Te(Ke(eg),{position:"top-right","toast-options":{style:{background:"hsl(var(--card))",color:"hsl(var(--card-foreground))",border:"1px solid hsl(var(--border))"}}})],64)}}}),gy="modulepreload",my=function(e){return"/cc-dashboard/static/"+e},el={},ft=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=my(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":gy,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 Ru(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&&Ru(e.default)}const we=Object.assign;function Ao(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 Ls=()=>{},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,Ay=/%20/g;function Li(e){return e==null?"":encodeURI(""+e).replace(Cy,"|").replace(xy,"[").replace(Ey,"]")}function Ry(e){return Li(e).replace(Du,"{").replace(Nu,"}").replace(Pu,"^")}function ni(e){return Li(e).replace(Tu,"%2B").replace(Ay,"+").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 zs(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Dy=/\/$/,Ny=e=>e.replace(Dy,"");function Ro(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=Fy(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:zs(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(!ky(e[n],t[n]))return!1;return!0}function ky(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 Fy(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 My(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 ku=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,[ku]:!0},t)}function $t(e,t){return e instanceof Error&&ku 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(""),ki=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(Ru(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 Fu(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=Fu(e,location),x=n.value,m=t.value;let w=0;if(h){if(n.value=p,t.value=h,i&&i===x){i=null;return}w=m?h.position-m.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:Fu(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=My(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 Mu(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,m=fl(f);m.aliasOf=p&&p.record;const w=tl(t,f),E=[m];if("alias"in f){const v=typeof f.alias=="string"?[f.alias]:f.alias;for(const D of v)E.push(fl(we({},m,{components:p?p.record.components:m.components,path:D,aliasOf:p?p.record:m})))}let A,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(A=c0(v,h,w),p?p.alias.push(A):(y=y||A,y!==A&&y.alias.push(A),x&&f.name&&!dl(A)&&i(f.name)),Bu(A)&&l(A),m.children){const K=m.children;for(let j=0;j{i(y)}:Ls}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={},m,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))),m=p.stringify(x)}else if(f.path!=null)m=f.path,p=n.find(y=>y.re.test(m)),p&&(x=p.parse(m),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),m=p.stringify(x)}const E=[];let A=p;for(;A;)E.unshift(A.record),A=A.parent;return{name:w,path:m,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;Mu(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)&&Mu(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(ki),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=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=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(Ls);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 g0(e){return e.length===1?e[0]:e}const m0=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=Xs(hl(e)),{options:s}=xt(oo),r=me(()=>({[gl(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[gl(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&g0(t.default(n));return e.custom?o:Ai("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),y0=m0;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 gl=(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(il,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]);mr(il,me(()=>i.value+1)),mr(Gy,a),mr(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(m=>m(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=Ai(h,we({},x,t,{onVnodeUnmounted:E=>{E.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||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=Ao.bind(null,C=>""+C),f=Ao.bind(null,Py),h=Ao.bind(null,zs);function p(C,L){let M,Q;return Lu(C)?(M=t.getRecordMatcher(C),Q=L):Q=C,t.addRoute(Q,M)}function x(C){const L=t.getRecordMatcher(C);L&&t.removeRoute(L)}function m(){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=Ro(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:zs(b.hash),redirectedFrom:void 0,href:N})}let M;if(C.path!=null)M=we({},C,{path:Ro(n,C.path,L.path).path});else{const b=we({},C.params);for(const T in b)b[T]==null&&delete b[T];M=we({},C,{params:f(b)}),L.params=f(L.params)}const Q=t.resolve(M,L),re=C.hash||"";Q.params=c(h(Q.params));const d=Iy(s,we({},C,{hash:Ry(re),path:Q.path})),g=r.createHref(d);return we({fullPath:d,hash:re,query:s===ol?Wy(C.query):C.query||{}},Q,{redirectedFrom:void 0,href:g})}function A(C){return typeof C=="string"?Ro(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(A(C),{replace:!0}))}function K(C,L){const M=C.matched[C.matched.length-1];if(M&&M.redirect){const{redirect:Q}=M;let re=typeof Q=="function"?Q(C,L):Q;return typeof re=="string"&&(re=re.includes("?")||re.includes("#")?re=A(re):{path:re},re.params={}),we({query:C.query,hash:C.hash,params:re.path!=null?{}:C.params},re)}}function j(C,L){const M=u=E(C),Q=l.value,re=C.state,d=C.force,g=C.replace===!0,b=K(M,Q);if(b)return j(we(A(b),{state:typeof b=="object"?we({},re,b.state):re,force:d,replace:g}),L||M);const T=M;T.redirectedFrom=L;let N;return!d&&Ly(s,Q,M)&&(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:g},A(P.to),{state:typeof P.to=="object"?we({},re,P.to.state):re,force:d}),L||T)}else P=k(T,Q,!0,g,re);return q(T,Q,P),P})}function B(C,L){const M=y(C,L);return M?Promise.reject(M):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 M;const[Q,re,d]=Jy(C,L);M=To(Q.reverse(),"beforeRouteLeave",C,L);for(const b of Q)b.leaveGuards.forEach(T=>{M.push(dn(T,C,L))});const g=B.bind(null,C,L);return M.push(g),ae(M).then(()=>{M=[];for(const b of o.list())M.push(dn(b,C,L));return M.push(g),ae(M)}).then(()=>{M=To(re,"beforeRouteUpdate",C,L);for(const b of re)b.updateGuards.forEach(T=>{M.push(dn(T,C,L))});return M.push(g),ae(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(g),ae(M)}).then(()=>(C.matched.forEach(b=>b.enterCallbacks={}),M=To(d,"beforeRouteEnter",C,L,S),M.push(g),ae(M))).then(()=>{M=[];for(const b of i.list())M.push(dn(b,C,L));return M.push(g),ae(M)}).catch(b=>$t(b,Le.NAVIGATION_CANCELLED)?b:Promise.reject(b))}function q(C,L,M){a.list().forEach(Q=>S(()=>Q(C,L,M)))}function k(C,L,M,Q,re){const d=y(C,L);if(d)return d;const g=L===on,b=Gn?history.state:{};M&&(Q||g?r.replace(C.fullPath,we({scroll:g&&b&&b.scroll},re)):r.push(C.fullPath,re)),l.value=C,De(C,L,M,g),ue()}let W;function se(){W||(W=r.listen((C,L,M)=>{if(!R.listening)return;const Q=E(C),re=K(Q,R.currentRoute.value);if(re){j(we(re,{replace:!0,force:!0}),Q).catch(Ls);return}u=Q;const d=l.value;Gn&&qy(rl(d.fullPath,M.delta),ro()),I(Q,d).catch(g=>$t(g,Le.NAVIGATION_ABORTED|Le.NAVIGATION_CANCELLED)?g:$t(g,Le.NAVIGATION_GUARD_REDIRECT)?(j(we(A(g.to),{force:!0}),Q).then(b=>{$t(b,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&!M.delta&&M.type===si.pop&&r.go(-1,!1)}).catch(Ls),Promise.reject()):(M.delta&&r.go(-M.delta,!1),ie(g,Q,d))).then(g=>{g=g||k(Q,d,!1),g&&(M.delta&&!$t(g,Le.NAVIGATION_CANCELLED)?r.go(-M.delta,!1):M.type===si.pop&&$t(g,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),q(Q,d,g)}).catch(Ls)}))}let de=xs(),le=xs(),X;function ie(C,L,M){ue(C);const Q=le.list();return Q.length?Q.forEach(re=>re(C,L,M)):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,M])=>C?M(C):L()),de.reset()),C}function De(C,L,M,Q){const{scrollBehavior:re}=e;if(!Gn||!re)return Promise.resolve();const d=!M&&Vy(rl(C.fullPath,0))||(Q||!M)&&history.state&&history.state.scroll||null;return Hn().then(()=>re(C,L,d)).then(g=>g&&Hy(g)).catch(g=>ie(g,C,L))}const Me=C=>r.go(C);let Oe;const Ve=new Set,R={currentRoute:l,listening:!0,addRoute:p,removeRoute:x,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:m,resolve:E,options:e,push:v,replace:D,go:Me,back:()=>Me(-1),forward:()=>Me(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=R,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,R),C.provide(ki,Zl(L)),C.provide(oi,l);const M=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),M()}}};function ae(C){return C.reduce((L,M)=>L.then(()=>S(M)),Promise.resolve())}return R}function Z0(){return xt(oo)}function ev(e){return xt(ki)}const E0=[{path:"/login",name:"login",component:()=>ft(()=>import("./LoginView-Behmy84N.js"),__vite__mapDeps([0,1,2,3,4])),meta:{public:!0}},{path:"/",component:()=>ft(()=>import("./AppLayout-J7i4Eomh.js"),[]),children:[{path:"",name:"dashboard",component:()=>ft(()=>import("./DashboardView-Cp_ma0oa.js"),__vite__mapDeps([5,6,4,2,7,8,1]))},{path:"calendar",name:"calendar",component:()=>ft(()=>import("./CalendarView-DC2Ojs9-.js"),__vite__mapDeps([9,6,2,1,10,11,3,12,13,14]))},{path:"planner",name:"planner",component:()=>ft(()=>import("./PlannerView-v43b0qQj.js"),__vite__mapDeps([15,10,11,1,2,3,12,13]))},{path:"projects",name:"projects",component:()=>ft(()=>import("./ProjectsView-BncIuojQ.js"),__vite__mapDeps([16,6,4,2,8]))},{path:"projects/:id/:date?",name:"project-detail",component:()=>ft(()=>import("./ProjectDetailView-BejhakPZ.js"),__vite__mapDeps([17,6,4,2,7]))},{path:"live",name:"live",component:()=>ft(()=>import("./LiveView-DXX4fst3.js"),__vite__mapDeps([18,4,2,1]))},{path:"reports",name:"reports",component:()=>ft(()=>import("./ReportsView-B3ORTUxG.js"),__vite__mapDeps([19,4,2,13,1,20]))},{path:"keys",name:"keys",component:()=>ft(()=>import("./KeysView-gO6qeRwx.js"),__vite__mapDeps([21,22,4,2,1,11,3]))},{path:"devops",name:"devops",component:()=>ft(()=>import("./DevopsView-CXcxdKJq.js"),__vite__mapDeps([23,12,4,2,7,1]))},{path:"settings",name:"settings",component:()=>ft(()=>import("./SettingsView-BXkPmh00.js"),__vite__mapDeps([24,12,4,2,7,3,1]))},{path:"admin",name:"admin",component:()=>ft(()=>import("./AdminView-9bHvBNlr.js"),__vite__mapDeps([25,22,4,2,13])),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 yl=so();qm(()=>yl.getToken(),()=>{yl.logout(),Fi.push({name:"login"})});io.mount("#app");export{bn as A,Rh as B,O0 as C,Ir as D,_i as E,Ae as F,A0 as G,N0 as K,$d as T,dy as _,J as a,R0 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,qs as k,ts as l,me as m,Ut as n,ee as o,ht as p,Xf as q,fe as r,_t as s,Ct as t,so as u,wn as v,fn as w,js as x,Df as y,dh as z}; diff --git a/src/static/assets/utils-7WVCegLb.js b/src/static/assets/utils-7WVCegLb.js new file mode 100644 index 0000000..58ac6fb --- /dev/null +++ b/src/static/assets/utils-7WVCegLb.js @@ -0,0 +1 @@ +function K(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=le(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:a=>{const s=a.split(B);return s[0]===""&&s.length!==1&&s.shift(),Q(s,r)||ie(a)},getConflictingClassGroupIds:(a,s)=>{const u=t[a]||[];return s&&o[a]?[...u,...o[a]]:u}}},Q=(e,r)=>{var a;if(e.length===0)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),i=o?Q(e.slice(1),o):void 0;if(i)return i;if(r.validators.length===0)return;const n=e.join(B);return(a=r.validators.find(({validator:s})=>s(n)))==null?void 0:a.classGroupId},D=/^\[(.+)\]$/,ie=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}},le=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return ce(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:H(r,i);n.classGroupId=t;return}if(typeof i=="function"){if(ae(i)){_(i(o),r,t,o);return}r.validators.push({validator:i,classGroupId:t});return}Object.entries(i).forEach(([n,a])=>{_(a,H(r,n),t,o)})})},H=(e,r)=>{let t=e;return r.split(B).forEach(o=>{t.nextPart.has(o)||t.nextPart.set(o,{nextPart:new Map,validators:[]}),t=t.nextPart.get(o)}),t},ae=e=>e.isThemeGetter,ce=(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,de=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)}}},ee="!",pe=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},ue=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},be=e=>({cache:de(e.cacheSize),parseClassName:pe(e),...se(e)}),ge=/\s+/,fe=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:i}=r,n=[],a=e.trim().split(ge);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=ue(m).join(":"),f=y?p+ee: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 me(){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=be(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=fe(u,t);return i(u,m),m}return function(){return n(me.apply(null,arguments))}}const c=e=>{const r=t=>t[e]||[];return r.isThemeGetter=!0,r},te=/^\[(?:([a-z-]+):)?(.+)\]$/i,ye=/^\d+\/\d+$/,xe=new Set(["px","full","screen"]),we=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ve=/\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$/,ke=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ce=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ze=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,C=e=>M(e)||xe.has(e)||ye.test(e),z=e=>G(e,"length",je),M=e=>!!e&&!Number.isNaN(Number(e)),O=e=>G(e,"number",M),P=e=>!!e&&Number.isInteger(Number(e)),Se=e=>e.endsWith("%")&&M(e.slice(0,-1)),l=e=>te.test(e),S=e=>we.test(e),Ae=new Set(["length","size","percentage"]),Me=e=>G(e,Ae,oe),Ge=e=>G(e,"position",oe),Re=new Set(["image","url"]),Ie=e=>G(e,Re,Te),Pe=e=>G(e,"",Ee),j=()=>!0,G=(e,r,t)=>{const o=te.exec(e);return o?o[1]?typeof r=="string"?o[1]===r:r.has(o[1]):t(o[2]):!1},je=e=>ve.test(e)&&!ke.test(e),oe=()=>!1,Ee=e=>Ce.test(e),Te=e=>ze.test(e),Ne=()=>{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"),L=()=>["auto","contain","none"],$=()=>["auto","hidden","clip","visible","scroll"],W=()=>["auto",l,r],d=()=>[l,r],J=()=>["",C,z],T=()=>["auto",M,l],X=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],N=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],V=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",l],Z=()=>["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:J(),contrast:k(),grayscale:I(),hueRotate:k(),invert:I(),gap:d(),gradientColorStops:[e],gradientColorStopPositions:[Se,z],inset:W(),margin:W(),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":Z()}],"break-before":[{"break-before":Z()}],"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:[...X(),l]}],overflow:[{overflow:$()}],"overflow-x":[{"overflow-x":$()}],"overflow-y":[{"overflow-y":$()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],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:W()}],"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":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":[j]}],"row-start-end":[{row:["auto",{span:[P,l]},l]}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"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",...V()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...V(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...V(),"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",O]}],"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,O]}],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:[...N(),"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:[...X(),Ge]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Me]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ie]}],"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:[...N(),"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:N()}],"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:["",...N()]}],"outline-offset":[{"outline-offset":[C,l]}],"outline-w":[{outline:[C,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:J()}],"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,Pe]}],"shadow-color":[{shadow:[j]}],opacity:[{opacity:[f]}],"mix-blend":[{"mix-blend":[...Y(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Y()}],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,O]}],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"]}}},Le=he(Ne);function $e(...e){return Le(ne(e))}function We(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 Ve(e){return new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Oe(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function _e(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{Ve as a,Oe as b,$e as c,We as f,_e as i}; diff --git a/src/static/assets/utils-D_0J15Md.js b/src/static/assets/utils-D_0J15Md.js deleted file mode 100644 index f2e81ea..0000000 --- a/src/static/assets/utils-D_0J15Md.js +++ /dev/null @@ -1 +0,0 @@ -import{d as se,o as ie,c as le,p as ae,a as Z}from"./index-yrXqsixb.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 866c71f..16ac62e 100644 --- a/src/static/index.html +++ b/src/static/index.html @@ -14,8 +14,8 @@ else { document.documentElement.classList.remove('dark'); } })(); - - + +
diff --git a/web/.env.example b/web/.env.example new file mode 100644 index 0000000..04a482f --- /dev/null +++ b/web/.env.example @@ -0,0 +1,5 @@ +# Azure AD SSO +VITE_AZURE_TENANT_ID=e519c2e6-bc6d-4fdf-8d9c-923c2f002385 +VITE_AZURE_CLIENT_ID=9079054c-9620-4757-a256-23413042f1ef +VITE_AZURE_REDIRECT_URI=https://optical-dev.oliver.solutions/cc-dashboard/ +# For local dev, change redirect URI to: http://localhost:5173/ diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 0000000..cdfdf80 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,5924 @@ +{ + "name": "cc-dashboard-web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cc-dashboard-web", + "version": "1.0.0", + "dependencies": { + "@azure/msal-browser": "^3.20.0", + "@radix-icons/vue": "^1.0.0", + "@tanstack/vue-query": "^5.51.0", + "@vee-validate/zod": "^4.13.2", + "@vueuse/core": "^11.0.0", + "axios": "^1.7.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "date-fns": "^3.6.0", + "date-fns-tz": "^3.1.3", + "lucide-vue-next": "^0.427.0", + "marked": "^12.0.0", + "pinia": "^2.2.0", + "radix-vue": "^1.9.9", + "tailwind-merge": "^2.4.0", + "vee-validate": "^4.13.2", + "vue": "^3.5.0", + "vue-router": "^4.3.0", + "vue-sonner": "^1.1.4", + "zod": "^3.23.8" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "@vitejs/plugin-vue": "^5.1.0", + "@vue/test-utils": "^2.4.6", + "autoprefixer": "^10.4.20", + "eslint": "^8.57.0", + "eslint-plugin-vue": "^9.27.0", + "happy-dom": "^14.12.3", + "postcss": "^8.4.41", + "prettier": "^3.3.3", + "tailwindcss": "^3.4.10", + "typescript": "^5.5.0", + "vite": "^5.4.0", + "vitest": "^2.0.5", + "vue-tsc": "^2.1.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.30.0.tgz", + "integrity": "sha512-I0XlIGVdM4E9kYP5eTjgW8fgATdzwxJvQ6bm2PNiHaZhEuUz47NYw1xHthC9R+lXz4i9zbShS0VdLyxd7n0GGA==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "14.16.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.16.1.tgz", + "integrity": "sha512-nyxsA6NA4SVKh5YyRpbSXiMr7oQbwark7JU9LMeg6tJYTSPyAGkdx61wPT4gyxZfxlSxMMEyAsWaubBlNyIa1w==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@floating-ui/vue": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.11.tgz", + "integrity": "sha512-HzHKCNVxnGS35r9fCHBc3+uCnjw9IWIlCPL683cGgM9Kgj2BiAl8x1mS7vtvP6F9S/e/q4O6MApwSHj8hNLGfw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6", + "@floating-ui/utils": "^0.2.11", + "vue-demi": ">=0.13.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@internationalized/date": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.1.tgz", + "integrity": "sha512-6IedsVWXyq4P9Tj+TxuU8WGWM70hYLl12nbYU8jkikVpa6WXapFazPUcHUMDMoWftIDE2ILDkFFte6W2nFCkRQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.6.tgz", + "integrity": "sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-icons/vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-icons/vue/-/vue-1.0.0.tgz", + "integrity": "sha512-gKWWk9tTK/laDRRNe5KLLR8A0qUwx4q4+DN8Fq48hJ904u78R82ayAO3TrxbNLgyn2D0h6rRiGdLzQWj7rPcvA==", + "license": "MIT", + "peerDependencies": { + "vue": ">= 3" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz", + "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz", + "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz", + "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz", + "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz", + "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz", + "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz", + "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz", + "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz", + "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz", + "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz", + "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz", + "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz", + "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz", + "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz", + "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz", + "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz", + "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz", + "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz", + "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz", + "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz", + "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz", + "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz", + "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz", + "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz", + "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz", + "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/match-sorter-utils": { + "version": "8.19.4", + "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz", + "integrity": "sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==", + "license": "MIT", + "dependencies": { + "remove-accents": "0.5.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.100.9", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.100.9.tgz", + "integrity": "sha512-SJSFw1S8+kQ0+knv/XGfrbocWoAlT7vDKsSImtLx3ZPQmEcR46hkDjLSvynSy25N8Ms4tIEini1FuBd5k7IscQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.14.0.tgz", + "integrity": "sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-query": { + "version": "5.100.9", + "resolved": "https://registry.npmjs.org/@tanstack/vue-query/-/vue-query-5.100.9.tgz", + "integrity": "sha512-wGiv/AirRuITlTDl87zdBRaZIZTejMItUswKgMzzcX/1gfn95iKw2EaCuz7qlX9ceB0DwBj9FqaroLnDoJCecg==", + "license": "MIT", + "dependencies": { + "@tanstack/match-sorter-utils": "^8.19.4", + "@tanstack/query-core": "5.100.9", + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@vue/composition-api": "^1.1.2", + "vue": "^2.6.0 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.24", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.24.tgz", + "integrity": "sha512-A0k2qF0zFSUStXSZkGXABouXr2Tw2Ztl/cVIYG9qy84uR8W7UNjAcX3DvzBS3YnDcwvLxab8v7dbmYBZ39itDA==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.14.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vee-validate/zod": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@vee-validate/zod/-/zod-4.15.1.tgz", + "integrity": "sha512-329Z4TDBE5Vx0FdbA8S4eR9iGCFFUNGbxjpQ20ff5b5wGueScjocUIx9JHPa79LTG06RnlUR4XogQsjN4tecKA==", + "license": "MIT", + "dependencies": { + "type-fest": "^4.8.3", + "vee-validate": "4.15.1" + }, + "peerDependencies": { + "zod": "^3.24.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.34.tgz", + "integrity": "sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.34", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz", + "integrity": "sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz", + "integrity": "sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.34", + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.14", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz", + "integrity": "sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.34.tgz", + "integrity": "sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.34.tgz", + "integrity": "sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz", + "integrity": "sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/runtime-core": "3.5.34", + "@vue/shared": "3.5.34", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.34.tgz", + "integrity": "sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "vue": "3.5.34" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.34.tgz", + "integrity": "sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==", + "license": "MIT" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.10.tgz", + "integrity": "sha512-SmoZ5EA1kYiAFs9NkYdiFFQF+cSnUwnvlYEbY+DogWQZUiqOm/Y29eSbc5T6yi75SgSF9863SBeXniIEoPajCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^3.0.0" + }, + "peerDependencies": { + "@vue/compiler-dom": "3.x", + "@vue/server-renderer": "3.x", + "vue": "3.x" + }, + "peerDependenciesMeta": { + "@vue/server-renderer": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-11.3.0.tgz", + "integrity": "sha512-7OC4Rl1f9G8IT6rUfi9JrKiXy4bfmHhZ5x2Ceojy0jnd3mHNEvV4JaRygH362ror6/NZ+Nl+n13LPzGiPN8cKA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "11.3.0", + "@vueuse/shared": "11.3.0", + "vue-demi": ">=0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-11.3.0.tgz", + "integrity": "sha512-pwDnDspTqtTo2HwfLw4Rp6yywuuBdYnPYDq+mO38ZYKGebCUQC/nVj/PXSiK9HX5otxLz8Fn7ECPbjiRz2CC3g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-11.3.0.tgz", + "integrity": "sha512-P8gSSWQeucH5821ek2mn/ciCk+MS/zoRKqdQIM3bHq6p7GXDAJLmnRRKmF5F65sAVJIfzQlwR3aDzwCn10s8hA==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.27.tgz", + "integrity": "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001792", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz", + "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-tz": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz", + "integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==", + "license": "MIT", + "peerDependencies": { + "date-fns": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/editorconfig": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.7.tgz", + "integrity": "sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "^9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.351", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.351.tgz", + "integrity": "sha512-9D7Iqx8RImSvCnOsj86rCH6eQjZFQoM04Jn6HnZVM0Nu/G58/gmKYQ1d12MZTbjQbQSTGI8nwEy07ErsA2slLA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/happy-dom": { + "version": "14.12.3", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.12.3.tgz", + "integrity": "sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0", + "webidl-conversions": "^7.0.0", + "whatwg-mimetype": "^3.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/happy-dom/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-beautify": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/lucide-vue-next": { + "version": "0.427.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.427.0.tgz", + "integrity": "sha512-zI1FhbfQ3Wl0SgPKnOWhTDC6yAC5TTjSC9FSZ61ULg3U36e+GVK+RT1qfkU9Q5BjeBuwmsHWKsXKptKMjUAwFA==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", + "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/radix-vue": { + "version": "1.9.17", + "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.9.17.tgz", + "integrity": "sha512-mVCu7I2vXt1L2IUYHTt0sZMz7s1K2ZtqKeTIxG3yC5mMFfLBG4FtE1FDeRMpDd+Hhg/ybi9+iXmAP1ISREndoQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.6.7", + "@floating-ui/vue": "^1.1.0", + "@internationalized/date": "^3.5.4", + "@internationalized/number": "^3.5.3", + "@tanstack/vue-virtual": "^3.8.1", + "@vueuse/core": "^10.11.0", + "@vueuse/shared": "^10.11.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.4", + "fast-deep-equal": "^3.1.3", + "nanoid": "^5.0.7" + }, + "peerDependencies": { + "vue": ">= 3.2.0" + } + }, + "node_modules/radix-vue/node_modules/@vueuse/core": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/radix-vue/node_modules/@vueuse/metadata": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/radix-vue/node_modules/@vueuse/shared": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/radix-vue/node_modules/nanoid": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.11.tgz", + "integrity": "sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz", + "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.1.tgz", + "integrity": "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vee-validate": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.15.1.tgz", + "integrity": "sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.5.2", + "type-fest": "^4.8.3" + }, + "peerDependencies": { + "vue": "^3.4.26" + } + }, + "node_modules/vee-validate/node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.34.tgz", + "integrity": "sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-sfc": "3.5.34", + "@vue/runtime-dom": "3.5.34", + "@vue/server-renderer": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.2.8.tgz", + "integrity": "sha512-9689efAXhN/EV86plgkL/XFiJSXhGtWPG6JDboZ+QnjlUWUUQrQ0ILKQtw4iQsuwIwu5k6Aw+JnehDe7161e7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-sonner": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/vue-sonner/-/vue-sonner-1.3.2.tgz", + "integrity": "sha512-UbZ48E9VIya3ToiRHAZUbodKute/z/M1iT8/3fU8zEbwBRE11AKuHikssv18LMk2gTTr6eMQT4qf6JoLHWuj/A==", + "license": "MIT" + }, + "node_modules/vue-tsc": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/web/package.json b/web/package.json index c141333..092b073 100644 --- a/web/package.json +++ b/web/package.json @@ -30,7 +30,8 @@ "tailwind-merge": "^2.4.0", "radix-vue": "^1.9.9", "@radix-icons/vue": "^1.0.0", - "lucide-vue-next": "^0.427.0" + "lucide-vue-next": "^0.427.0", + "@azure/msal-browser": "^3.20.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.1.0", diff --git a/web/src/api/msal.ts b/web/src/api/msal.ts new file mode 100644 index 0000000..bd45e4d --- /dev/null +++ b/web/src/api/msal.ts @@ -0,0 +1,18 @@ +/// +import { PublicClientApplication } from '@azure/msal-browser' + +export const msalInstance = new PublicClientApplication({ + auth: { + clientId: import.meta.env.VITE_AZURE_CLIENT_ID as string, + authority: `https://login.microsoftonline.com/${import.meta.env.VITE_AZURE_TENANT_ID}`, + redirectUri: import.meta.env.VITE_AZURE_REDIRECT_URI as string, + }, + cache: { cacheLocation: 'sessionStorage', storeAuthStateInCookie: false }, +}) + +export const LOGIN_SCOPES = ['openid', 'profile', 'email'] + +export async function initMsal(): Promise { + await msalInstance.initialize() + await msalInstance.handleRedirectPromise() +} diff --git a/web/src/main.ts b/web/src/main.ts index a44f781..7662a66 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -5,23 +5,26 @@ import App from './App.vue' import router from './router' import { setupInterceptors } from './api/client' import { useAuthStore } from './stores/auth' +import { initMsal } from './api/msal' import './styles/globals.css' -const app = createApp(App) -const pinia = createPinia() +// Initialize MSAL before mounting — handles redirect callback if present +initMsal().then(() => { + const app = createApp(App) + const pinia = createPinia() -app.use(pinia) -app.use(router) -app.use(VueQueryPlugin) + app.use(pinia) + app.use(router) + app.use(VueQueryPlugin) -// Setup axios interceptors after pinia is installed -const authStore = useAuthStore() -setupInterceptors( - () => authStore.getToken(), - () => { - authStore.logout() - router.push({ name: 'login' }) - } -) + const authStore = useAuthStore() + setupInterceptors( + () => authStore.getToken(), + () => { + authStore.logout() + router.push({ name: 'login' }) + } + ) -app.mount('#app') + app.mount('#app') +}) diff --git a/web/src/stores/auth.ts b/web/src/stores/auth.ts index 04bb5c3..38c7546 100644 --- a/web/src/stores/auth.ts +++ b/web/src/stores/auth.ts @@ -1,6 +1,7 @@ import { defineStore } from 'pinia' import { ref, computed } from 'vue' import apiClient from '@/api/client' +import { msalInstance, LOGIN_SCOPES } from '@/api/msal' import type { UserOut } from '@/types' export const useAuthStore = defineStore('auth', () => { @@ -13,28 +14,35 @@ export const useAuthStore = defineStore('auth', () => { const isAuthenticated = computed(() => token.value !== null) const isAdmin = computed(() => user.value?.role === 'admin') - async function login(email: string, password: string): Promise { + async function loginWithMicrosoft(): Promise { loading.value = true error.value = null try { - const res = await apiClient.post<{ access_token: string; token_type: string }>( - '/api/auth/login', - { email, password } + const result = await msalInstance.loginPopup({ scopes: LOGIN_SCOPES }) + const idToken = result.idToken + const res = await apiClient.post<{ access_token: string; refresh_token: string }>( + '/api/auth/microsoft', + { id_token: idToken } ) token.value = res.data.access_token await fetchMe() } catch (err: unknown) { - const axiosError = err as { response?: { data?: { detail?: string } } } - error.value = axiosError.response?.data?.detail ?? 'Login failed' + const axiosError = err as { response?: { data?: { detail?: string } }; message?: string } + error.value = axiosError.response?.data?.detail ?? axiosError.message ?? 'Login failed' throw err } finally { loading.value = false } } - function logout(): void { + async function logout(): Promise { token.value = null user.value = null + try { + await msalInstance.clearCache() + } catch { + // clearCache may fail if no active account — safe to ignore + } } async function fetchMe(): Promise { @@ -53,7 +61,7 @@ export const useAuthStore = defineStore('auth', () => { error, isAuthenticated, isAdmin, - login, + loginWithMicrosoft, logout, fetchMe, getToken, diff --git a/web/src/views/LoginView.vue b/web/src/views/LoginView.vue index b096ee6..59a2b73 100644 --- a/web/src/views/LoginView.vue +++ b/web/src/views/LoginView.vue @@ -1,9 +1,6 @@