From 65c4a29bf8de388c3832f3980c187a7d97b3f64f Mon Sep 17 00:00:00 2001 From: Snow Lee Date: Sun, 19 Jul 2026 12:37:46 -0700 Subject: [PATCH] feat(web): toasts on sonner behind the same toast() API; specs pin behavior via expectToast Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01VbiaaVM2ACxeRi8ySG9ybc --- internal/webapp/frontend/e2e/admin.spec.ts | 20 +++++----- internal/webapp/frontend/e2e/browse.spec.ts | 4 +- internal/webapp/frontend/e2e/helpers.ts | 7 ++++ internal/webapp/frontend/e2e/hub.spec.ts | 7 ++-- internal/webapp/frontend/src/style.css | 5 +-- internal/webapp/frontend/src/toast.tsx | 38 ++++--------------- ...{index-DMJdCyap.css => index-53HfgqM0.css} | 2 +- .../webapp/static/assets/index-ClGU06Ni.js | 11 ++++++ .../webapp/static/assets/index-m4Vx6mmC.js | 11 ------ internal/webapp/static/index.html | 4 +- 10 files changed, 46 insertions(+), 63 deletions(-) rename internal/webapp/static/assets/{index-DMJdCyap.css => index-53HfgqM0.css} (90%) create mode 100644 internal/webapp/static/assets/index-ClGU06Ni.js delete mode 100644 internal/webapp/static/assets/index-m4Vx6mmC.js diff --git a/internal/webapp/frontend/e2e/admin.spec.ts b/internal/webapp/frontend/e2e/admin.spec.ts index 8bd557e..1d2ca73 100644 --- a/internal/webapp/frontend/e2e/admin.spec.ts +++ b/internal/webapp/frontend/e2e/admin.spec.ts @@ -1,5 +1,5 @@ import { test, expect } from "@playwright/test"; -import { login, wikiId, ADMIN, MEMBER } from "./helpers"; +import { login, wikiId, ADMIN, MEMBER, expectToast } from "./helpers"; // Phase 4: org admin (rename, members, projects, invites, share audit) and // hub settings (policy toggles, pending queue). Panels are not routes — @@ -24,7 +24,7 @@ test("org admin: members with roles, self marked, rename round-trip", async ({ p // Rename and revert await page.fill("#org-rename", "renamed-org"); await page.click("#org-rename-btn"); - await expect(page.locator("#toast")).toContainText("Renamed"); + await expectToast(page, "Renamed"); await page.click("#account-btn"); await expect(page.locator("#menu-org-settings")).toContainText("renamed-org"); await page.keyboard.press("Escape"); @@ -40,7 +40,7 @@ test("org admin: member role change round-trip", async ({ page }) => { await openOrgSettings(page); const sel = page.locator(".admin-item", { hasText: MEMBER }).locator("select"); await sel.selectOption("owner"); - await expect(page.locator("#toast")).toContainText("Role updated"); + await expectToast(page, "Role updated"); await expect(sel).toHaveValue("owner"); await sel.selectOption("member"); await expect(sel).toHaveValue("member"); @@ -50,13 +50,13 @@ test("org admin: invite create shows in list, revoke removes it", async ({ page await login(page); await openOrgSettings(page); await page.click(".admin-h .pbtn"); // New invite - await expect(page.locator("#toast")).toContainText("Invite"); + await expectToast(page, "Invite"); const row = page.locator(".admin-item", { hasText: "/join/" }).first(); await expect(row).toBeVisible(); await expect(row.locator(".ai-tag")).toContainText("unused"); await row.locator(".ai-del").click(); await page.click(".modal .danger-btn"); // confirm revoke - await expect(page.locator("#toast")).toContainText("Revoked"); + await expectToast(page, "Revoked"); await expect(page.locator(".admin-item", { hasText: "/join/" })).toHaveCount(0); }); @@ -70,7 +70,7 @@ test("org admin: public share audit lists and revokes", async ({ page }) => { await expect(row.locator(".ai-tag")).toContainText("wiki"); await row.locator(".ai-del").click(); await page.click(".modal .danger-btn"); - await expect(page.locator("#toast")).toContainText("Share revoked"); + await expectToast(page, "Share revoked"); await expect(page.locator(".admin-item", { hasText: "index.md" })).toHaveCount(0); }); @@ -83,12 +83,12 @@ test("org admin: project rename and delete", async ({ page }) => { await row.locator(".ai-btn", { hasText: "Rename" }).click(); await page.fill(".modal-input", "doomed-2"); await page.click(".modal .pbtn"); - await expect(page.locator("#toast")).toContainText("Renamed"); + await expectToast(page, "Renamed"); const row2 = page.locator(".admin-item", { hasText: "doomed-2" }); await expect(row2).toBeVisible(); await row2.locator(".ai-del").click(); await page.click(".modal .danger-btn"); - await expect(page.locator("#toast")).toContainText("Deleted"); + await expectToast(page, "Deleted"); await expect(page.locator(".admin-item", { hasText: "doomed-2" })).toHaveCount(0); await expect(page.locator("#projects .row .label", { hasText: "doomed-2" })).toHaveCount(0); }); @@ -117,10 +117,10 @@ test("hub settings: policy view, save round-trip, pending queue empty", async ({ const app = page.locator(".admin-item.toggle").nth(1).locator("input"); await app.check(); await page.click(".admin > .pbtn"); - await expect(page.locator("#toast")).toContainText("policy saved"); + await expectToast(page, "policy saved"); await app.uncheck(); await page.click(".admin > .pbtn"); - await expect(page.locator("#toast")).toContainText("policy saved"); + await expectToast(page, "policy saved"); await expect(page.locator(".admin-empty", { hasText: "No one is waiting" })).toBeVisible(); }); diff --git a/internal/webapp/frontend/e2e/browse.spec.ts b/internal/webapp/frontend/e2e/browse.spec.ts index 23e0f5d..bb6577c 100644 --- a/internal/webapp/frontend/e2e/browse.spec.ts +++ b/internal/webapp/frontend/e2e/browse.spec.ts @@ -1,5 +1,5 @@ import { test, expect } from "@playwright/test"; -import { login, wikiId } from "./helpers"; +import { login, wikiId, expectToast } from "./helpers"; // Phase 2: tree, folder listings (heat dots + change feed), file views // (markdown/wikilinks/images), breadcrumbs, upload, share, palette. @@ -118,7 +118,7 @@ test("share mints a public link that serves the file, revoke kills it", async ({ expect(publicRes.status()).toBe(200); expect(await publicRes.text()).toContain("Second version"); await page.click(".modal .ai-del"); // revoke - await expect(page.locator("#toast")).toContainText("revoked"); + await expectToast(page, "revoked"); const gone = await page.request.get(url!); expect(gone.status()).toBe(404); }); diff --git a/internal/webapp/frontend/e2e/helpers.ts b/internal/webapp/frontend/e2e/helpers.ts index b291a3b..8f268ef 100644 --- a/internal/webapp/frontend/e2e/helpers.ts +++ b/internal/webapp/frontend/e2e/helpers.ts @@ -33,3 +33,10 @@ export async function wikiId(page: Page): Promise { const out = await (await page.request.get("/api/projects")).json(); return out.projects.find((p: { name: string }) => p.name === "wiki").id; } + +// Implementation-agnostic toast assertion: matches the legacy #toast div or +// a sonner toast, so specs pin BEHAVIOR (text shown) not markup. +export async function expectToast(page: Page, text: string | RegExp) { + const { expect } = await import("@playwright/test"); + await expect(page.locator("#toast.show, [data-sonner-toast]").filter({ hasText: text }).first()).toBeVisible(); +} diff --git a/internal/webapp/frontend/e2e/hub.spec.ts b/internal/webapp/frontend/e2e/hub.spec.ts index 9fec06b..ff14cd6 100644 --- a/internal/webapp/frontend/e2e/hub.spec.ts +++ b/internal/webapp/frontend/e2e/hub.spec.ts @@ -1,5 +1,5 @@ import { test, expect } from "@playwright/test"; -import { login, wikiId, MEMBER, PASSWORD } from "./helpers"; +import { login, wikiId, MEMBER, PASSWORD, expectToast } from "./helpers"; // Phase 1: shell, session flags, project list/selection, routing, empty // state, invite accept. Mutating specs (project creation) run last — @@ -64,8 +64,7 @@ test("join link accepts an invite after sign-in", async ({ page, browser }) => { await p2.fill('input[name="email"]', MEMBER); await p2.fill('input[name="password"]', PASSWORD); await p2.click("form button"); - await p2.waitForSelector("#toast.show"); - await expect(p2.locator("#toast")).toContainText("you joined"); + await expectToast(p2, "you joined"); await p2.waitForURL(/\/p-[0-9a-f]{8}$/); // lands on the org's project await ctx.close(); }); @@ -90,5 +89,5 @@ test("new project via the sidebar + modal", async ({ page }) => { await page.waitForURL(/\/p-[0-9a-f]{8}$/); await expect(page.locator("#project-select option:checked")).toHaveText("scratch"); await expect(page.locator("#project-select option")).toContainText(["scratch", "wiki"]); - await expect(page.locator("#toast")).toContainText("Created"); + await expectToast(page, "Created"); }); diff --git a/internal/webapp/frontend/src/style.css b/internal/webapp/frontend/src/style.css index 4331a3d..1185b74 100644 --- a/internal/webapp/frontend/src/style.css +++ b/internal/webapp/frontend/src/style.css @@ -460,9 +460,8 @@ button, input, a.btn { font-family: inherit; } .modal-input:focus { border-color: var(--accent); background: var(--hover); } /* ---- toast ---- */ -#toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--bg-raise); color: var(--text); border: 1px solid var(--border-2); border-radius: 10px; padding: 11px 18px; font-size: 13.5px; box-shadow: 0 18px 44px -12px rgba(0,0,0,.7); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 200; } -#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); } -#toast.err { border-color: rgba(242,109,109,.5); color: #ffb0aa; } +[data-sonner-toast] { background: var(--bg-raise) !important; color: var(--text) !important; border: 1px solid var(--border-2) !important; border-radius: 10px !important; font-size: 13.5px !important; box-shadow: 0 18px 44px -12px rgba(0,0,0,.7) !important; } +[data-sonner-toast][data-type="error"] { border-color: rgba(242,109,109,.5) !important; color: #ffb0aa !important; } #sb-backdrop { display: none; } diff --git a/internal/webapp/frontend/src/toast.tsx b/internal/webapp/frontend/src/toast.tsx index e6f734a..09b8915 100644 --- a/internal/webapp/frontend/src/toast.tsx +++ b/internal/webapp/frontend/src/toast.tsx @@ -1,37 +1,15 @@ -import { useSyncExternalStore } from "react"; +import { toast as sonner } from "sonner"; +import { Toaster as SonnerToaster } from "@/components/ui/sonner"; -// Transient toast, replacing blocking alert(). Imperative `toast()` from -// anywhere; (mounted once in App) renders it. - -type ToastState = { msg: string; err: boolean; shown: boolean }; -let state: ToastState = { msg: "", err: false, shown: false }; -let listeners: Array<() => void> = []; -let timer: ReturnType | undefined; - -function emit(next: ToastState) { - state = next; - listeners.forEach((l) => l()); -} +// Transient toast. Same imperative `toast()` API as the original in-house +// version; sonner (via the shadcn wrapper) renders it. Call sites and specs +// are markup-agnostic. export function toast(msg: string, isErr = false) { - emit({ msg, err: isErr, shown: true }); - clearTimeout(timer); - timer = setTimeout(() => emit({ ...state, shown: false }), 3200); + if (isErr) sonner.error(msg); + else sonner(msg); } export function Toaster() { - const s = useSyncExternalStore( - (l) => { - listeners.push(l); - return () => { - listeners = listeners.filter((x) => x !== l); - }; - }, - () => state, - ); - return ( -
- {s.msg} -
- ); + return ; } diff --git a/internal/webapp/static/assets/index-DMJdCyap.css b/internal/webapp/static/assets/index-53HfgqM0.css similarity index 90% rename from internal/webapp/static/assets/index-DMJdCyap.css rename to internal/webapp/static/assets/index-53HfgqM0.css index d876f40..362268b 100644 --- a/internal/webapp/static/assets/index-DMJdCyap.css +++ b/internal/webapp/static/assets/index-53HfgqM0.css @@ -1 +1 @@ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-widest:.1em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-background:#0a0b0d;--color-foreground:#eef0f3;--color-popover:#15171b;--color-popover-foreground:#eef0f3;--color-primary:#f5a623;--color-primary-foreground:#1a1204;--color-secondary:#ffffff08;--color-secondary-foreground:#eef0f3;--color-muted:#ffffff0f;--color-muted-foreground:#9aa0a9;--color-accent:#ffffff0f;--color-accent-foreground:#eef0f3;--color-destructive:#f26d6d;--color-border:#ffffff12;--color-input:#ffffff1c;--color-ring:#d3861a}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-4{top:calc(var(--spacing) * 4)}.top-20{top:calc(var(--spacing) * 20)}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.scroll-my-1{scroll-margin-block:var(--spacing)}.scroll-py-1{scroll-padding-block:var(--spacing)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-input{border-color:var(--color-input)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-destructive{background-color:var(--color-destructive)}.bg-foreground{background-color:var(--color-foreground)}.bg-muted\/50{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-foreground{fill:var(--color-foreground)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--color-background)}.text-destructive{color:var(--color-destructive)}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--color-primary)}.selection\:bg-primary::selection{background-color:var(--color-primary)}.selection\:text-primary-foreground ::selection{color:var(--color-primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--color-primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/90:hover{background-color:#f26d6de6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:#f5a623e6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:#ffffff06}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--color-ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:#d3861a80}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--color-destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--color-destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--color-accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--color-accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--color-muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--color-destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:#f26d6d1a}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--color-destructive)}@media(min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(prefers-color-scheme:dark){.dark\:border-input{border-color:var(--color-input)}.dark\:bg-destructive\/60{background-color:#f26d6d99}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab,var(--color-destructive) 60%,transparent)}}.dark\:bg-input\/30{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30{background-color:color-mix(in oklab,var(--color-input) 30%,transparent)}}@media(hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:#ffffff0e}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab,var(--color-input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:#f26d6d66}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:#f26d6d66}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--color-destructive) 20%,transparent)}}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--color-muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--color-muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--color-destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}:root{--bg: #0a0b0d;--bg-side: #0c0e10;--bg-raise: #15171b;--surface: rgba(255,255,255,.03);--hover: rgba(255,255,255,.06);--border: rgba(255,255,255,.07);--border-2: rgba(255,255,255,.11);--code-bg: #0d0f12;--text: #eef0f3;--text-dim: #9aa0a9;--text-faint: #868b93;--text-ghost: #666b74;--accent: #f5a623;--accent-bright: #ffcf85;--accent-dim: #d3861a;--accent-press: #e0951a;--glow: rgba(245,166,35,.13);--add: #4cc38a;--del: #f26d6d;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif;--r-ctl: 7px;--r-card: 10px;--r-over: 14px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}#root{display:contents}body{display:flex;background:var(--bg);color:var(--text);font:13px/1.5 var(--ui);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--glow);color:var(--accent-bright)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:5px}.sprite{position:absolute}.ico{width:16px;height:16px;flex:none;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}button,input,a.btn{font-family:inherit}#sidebar{width:264px;min-width:210px;background:var(--bg-side);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}#vault{display:flex;align-items:center;gap:9px;height:52px;padding:0 12px 0 14px;border-bottom:1px solid var(--border);position:relative;z-index:45}#vault-badge{width:22px;height:22px;border-radius:6px;flex:none;display:grid;place-items:center;font-size:13px;line-height:1;background:linear-gradient(160deg,#ffcf85,#f5a623 55%,#d3861a);box-shadow:0 1px #ffffff59 inset,0 2px 6px -1px #f5a62366}#vault-name{font-weight:600;font-size:13px;letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-actions{display:flex;align-items:center;gap:4px}#vault #signout,.icon-btn2{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-ghost);background:transparent;border:none;cursor:pointer;text-decoration:none}#vault #signout:hover,.icon-btn2:hover{color:var(--text);background:var(--hover)}#vault #signout .ico,.icon-btn2 .ico{width:16px;height:16px}#projects{flex:none;max-height:32%;overflow-y:auto;padding:10px 8px 8px;border-bottom:1px solid var(--border)}.nav-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost)}.nav-add{display:grid;place-items:center;width:18px;height:18px;border:none;background:transparent;color:var(--text-ghost);cursor:pointer;border-radius:5px}.nav-add .ico{width:14px;height:14px}.nav-add:hover{color:var(--text);background:var(--hover)}#projects ul{list-style:none;margin:0;padding:0}#projects .row{display:flex;align-items:center;gap:9px;height:31px;padding:0 8px;border-radius:7px;color:var(--text-dim);cursor:pointer;position:relative;white-space:nowrap;overflow:hidden}.proj-mark{width:17px;height:17px;border-radius:5px;flex:none;display:grid;place-items:center;font-size:10px;font-weight:700;color:#0a0b0d;letter-spacing:-.02em;text-transform:uppercase}#projects .row .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}#projects .row:hover{background:var(--hover);color:var(--text)}#projects .row.active{background:var(--glow);color:var(--accent-bright)}#projects .row.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--accent)}#tree{flex:1;overflow-y:auto;padding:8px 8px 24px}#tree ul{list-style:none;margin:0;padding-left:13px;position:relative}#tree>ul{padding-left:0}#tree ul ul:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--border)}#tree li>.row{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px;border-radius:7px;color:var(--text-dim);cursor:pointer;position:relative;white-space:nowrap;overflow:hidden}#tree li>.row:hover{background:var(--hover);color:var(--text)}#tree li>.row.active{background:var(--glow);color:var(--accent-bright)}#tree li>.row.active:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:2px;border-radius:2px;background:var(--accent)}#tree .chev{width:14px;height:14px;flex:none;color:var(--text-ghost);transition:transform .12s;display:flex;align-items:center;justify-content:center}#tree .chev .ico{width:13px;height:13px}#tree .ticon{flex:none;display:flex;color:var(--text-ghost)}#tree .ticon .ico{width:15px;height:15px}#tree li>.row:hover .ticon,#tree li>.row:hover .chev{color:var(--text-faint)}#tree li>.row.active .ticon,#tree li>.row.active .chev{color:var(--accent)}#tree .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}#tree .file .label{font-size:12.5px}#tree .file .chev{visibility:hidden}#tree li.collapsed>ul{display:none}#tree li.collapsed>.row .chev{transform:rotate(-90deg)}.nav-menu{list-style:none;margin:6px 0 0;padding:0}.nav-menu .row .ico{width:15px;height:15px;flex:none;color:var(--text-ghost)}.nav-menu .row.active .ico{color:var(--accent-bright)}.proj-row{display:flex;align-items:center;gap:4px;padding:0 10px 4px 12px}.proj-select-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.proj-select-wrap .proj-mark{position:absolute;left:9px;pointer-events:none}.proj-select-wrap>.ico{position:absolute;right:8px;width:14px;height:14px;color:var(--text-ghost);pointer-events:none}#project-select{flex:1;min-width:0;height:30px;padding:0 26px 0 30px;appearance:none;-webkit-appearance:none;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#project-select:hover{background:var(--hover);border-color:var(--border-2)}#accountbar{position:relative;border-top:1px solid var(--border);padding:7px 10px}#account-btn{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:6px 8px;border:none;border-radius:7px;background:transparent;color:var(--text-dim);cursor:pointer;font:inherit}#account-btn:hover{background:var(--hover);color:var(--text)}#account-btn .avatar{width:26px;height:26px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}#account-btn .acct{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}#account-btn .acct b{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#account-btn .acct small{font-size:11px;color:var(--text-ghost);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#account-btn>.ico{width:14px;height:14px;color:var(--text-ghost)}#account-menu{position:absolute;left:10px;right:10px;bottom:calc(100% + 4px);padding:5px;border:1px solid var(--border-2);border-radius:9px;background:var(--surface);box-shadow:0 10px 32px #00000059;display:flex;flex-direction:column;z-index:30}#account-menu .menu-sec{padding:7px 9px 3px;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-ghost)}#account-menu [role=menuitem]{display:flex;align-items:center;gap:8px;padding:7px 9px;border:none;border-radius:6px;background:transparent;text-align:left;color:var(--text-dim);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:none}#account-menu [role=menuitem]:hover{background:var(--hover);color:var(--text)}#account-menu [role=menuitem] b{font-weight:600}#account-menu [role=menuitem] .ico{width:15px;height:15px}#account-menu #signout{color:var(--danger, #e5534b)}#account-menu #signout:hover{color:var(--danger, #e5534b);background:var(--hover)}#main{flex:1;display:flex;flex-direction:column;min-width:0}#topbar{position:relative;display:flex;align-items:center;gap:9px;height:52px;padding:0 16px;border-bottom:1px solid var(--border)}.icon-btn{display:none;width:34px;height:34px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;border-radius:7px;align-items:center;justify-content:center}.icon-btn:hover{color:var(--text);background:var(--hover)}#crumb{font-size:12.5px;color:var(--text);font-weight:500;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#crumb .crumb-seg{color:var(--text-dim);cursor:pointer}#crumb .crumb-seg:hover{color:var(--accent-bright)}#crumb .crumb-sep{color:var(--text-ghost);margin:0 5px}#meta{flex:1;min-width:0;font-size:12px;color:var(--text-faint);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:6px;flex:none;height:30px;padding:0 11px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-size:12.5px;font-weight:500;cursor:pointer;text-decoration:none}.btn:hover{background:var(--hover);color:var(--text);border-color:var(--border-2)}.btn .ico{width:15px;height:15px}.btn.ghost{color:var(--text-dim)}.has-tip{position:relative}.has-tip .tip{position:absolute;top:calc(100% + 8px);right:-6px;display:flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 9px;border-radius:8px;border:1px solid var(--border-2);background:var(--surface);color:var(--text);font-size:12.5px;font-weight:500;box-shadow:0 8px 24px #00000059;opacity:0;visibility:hidden;transition:opacity .12s ease .15s;z-index:40}.has-tip .tip:before{content:"";position:absolute;top:-4.5px;right:16px;width:8px;height:8px;transform:rotate(45deg);background:var(--surface);border-left:1px solid var(--border-2);border-top:1px solid var(--border-2)}.has-tip:hover .tip,.has-tip:focus-visible .tip{opacity:1;visibility:visible}.has-tip .tip kbd{font:11px var(--ui);color:var(--text-faint);background:var(--hover);border:1px solid var(--border-2);border-radius:5px;padding:1px 5px}#more-menu{position:absolute;right:12px;top:calc(100% - 4px);z-index:80;background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-card);box-shadow:0 18px 44px -14px #000000bf;padding:6px;min-width:168px}.more-item{display:block;width:100%;text-align:left;min-height:40px;padding:0 12px;background:transparent;border:none;cursor:pointer;color:var(--text);font:inherit;font-size:13.5px;border-radius:var(--r-ctl)}.more-item:hover{background:var(--hover)}#content{flex:1;overflow-y:auto;padding:44px 40px 110px;scroll-behavior:smooth}.empty{color:var(--text-faint);text-align:center;margin-top:22vh}.empty-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-ghost)}.onboard{max-width:560px;margin:8vh auto 0}.onboard h1{font-size:25px;font-weight:640;letter-spacing:-.02em;margin:0 0 8px;color:#f4f6f9}.onboard>p{color:var(--text-dim);margin:0 0 28px;font-size:14px}.ob-card{background:var(--bg-side);border:1px solid var(--border);border-radius:var(--r-card);padding:20px 22px;margin-bottom:14px}.ob-card h3{margin:0 0 6px;font-size:14.5px;font-weight:600}.ob-card p{margin:0 0 14px;font-size:13px;color:var(--text-dim)}.ob-row{display:flex;gap:9px}.ob-row input{flex:1;height:34px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;outline:none}.ob-row input:focus{border-color:var(--accent);background:var(--hover)}.pbtn{display:inline-flex;align-items:center;gap:6px;flex:none;height:32px;padding:0 14px;border-radius:var(--r-ctl);border:none;background:var(--accent);color:#241704;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pbtn:hover{background:var(--accent-bright)}.pbtn .ico{width:15px;height:15px}.danger-btn{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:var(--r-ctl);border:none;background:#b3382e;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.danger-btn:hover{background:#c94336}.admin{max-width:760px}.admin h1{font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 6px;color:#f4f6f9}.admin h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost);font-weight:600;margin:30px 0 10px}.admin-sub{color:var(--text-dim);font-size:13.5px;margin:0 0 6px;line-height:1.55}.admin-h{display:flex;align-items:center;justify-content:space-between;margin:30px 0 10px}.admin-h h3{margin:0}.admin-row{display:flex;gap:9px;margin-bottom:8px}.admin-row input{flex:1;height:34px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;outline:none}.admin-row input:focus{border-color:var(--accent);background:var(--hover)}.admin-list{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--bg-side)}.admin-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--border);font-size:13.5px}.admin-item:last-child{border-bottom:none}.admin-item:hover{background:#ffffff04}.ai-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ai-main.mono{font:12px var(--mono);color:var(--text-dim);cursor:pointer}.ai-tag{font-size:11.5px;color:var(--text-faint);flex:none}.admin-item select{height:28px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:0 8px;font:inherit;font-size:12.5px;cursor:pointer}.admin-item select:hover{border-color:var(--border-2)}.ai-btn,.ai-del{flex:none;height:27px;padding:0 11px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font:inherit;font-size:12px;font-weight:500;cursor:pointer}.ai-btn:hover{background:var(--hover);color:var(--text);border-color:var(--border-2)}.ai-del{color:var(--del);border-color:transparent;background:transparent}.ai-del:hover{background:#f26d6d1f;color:#ff8b8b}.admin-empty{padding:14px;color:var(--text-faint);font-size:13px}.admin-item.toggle{cursor:pointer;align-items:flex-start}.admin-item.toggle .ai-main{white-space:normal}.tg-label{font-size:13.5px;font-weight:550;color:var(--text)}.tg-desc{font-size:12px;color:var(--text-faint);margin-top:3px;line-height:1.5}.admin-item.toggle input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent);flex:none}.dirlist{max-width:704px;margin:0 auto}.dl-title{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 4px;color:#f4f6f9}.dl-title-icon{display:flex;color:var(--accent)}.dl-title-icon .ico{width:20px;height:20px}.dl-sub{color:var(--text-faint);font-size:12.5px;margin:0 0 18px}.dl-items{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--bg-side)}.dl-row{display:flex;align-items:center;gap:11px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer}.dl-row:last-child{border-bottom:none}.dl-row:hover{background:var(--hover)}.dl-row .ticon{flex:none;display:flex;color:var(--text-ghost)}.dl-row .ticon .ico{width:16px;height:16px}.dl-row:hover .ticon{color:var(--text-faint)}.dl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;color:var(--text)}.dl-meta{flex:none;font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.heatdot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent)}.heatdot.lvl1{opacity:.3}.heatdot.lvl2{opacity:.55}.heatdot.lvl3{opacity:.8}.heatdot.lvl4{opacity:1;box-shadow:0 0 6px #f5a6238c}.dl-empty{padding:24px 14px;color:var(--text-faint);font-size:13px;border:1px dashed var(--border);border-radius:var(--r-card);text-align:center}.dl-h3{margin:28px 0 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost);font-weight:600}.dl-hlist{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);overflow:hidden;max-width:none}.dl-hlist .hentry:last-child{border-bottom:none}.hentry.clickable{cursor:pointer}.hentry.clickable:hover{background:var(--hover)}.dl-more{margin-top:10px}#vault-name.vault-link{cursor:pointer}#vault-name.vault-link:hover{color:var(--accent-bright)}.guide{max-width:760px;margin:0 auto}.gd-tabs{display:flex;gap:2px;margin:20px 0 16px;border-bottom:1px solid var(--border);overflow-x:auto}.gd-tab{font:inherit;font-size:13px;font-weight:600;padding:7px 12px 9px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-faint);cursor:pointer;white-space:nowrap}.gd-tab:hover{color:var(--text)}.gd-tab.active{color:var(--accent-bright);border-bottom-color:var(--accent)}.gd-step{margin:0 0 18px}.gd-step-head{display:flex;align-items:center;gap:10px;margin-bottom:3px}.gd-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--glow);color:var(--accent-bright);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.gd-step-title{font-weight:600;font-size:14px;color:var(--text)}.gd-desc{margin:2px 0 8px 32px;color:var(--text-faint);font-size:13px;line-height:1.5}.gd-extra{font-size:12.5px;margin-top:6px}.gd-code{position:relative;margin:6px 0 6px 32px;padding:10px 72px 10px 12px;background:var(--bg-raise);border:1px solid var(--border);border-radius:var(--r-card);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;color:var(--text);overflow-x:auto;white-space:pre}.gd-copy{position:absolute;top:7px;right:7px;font:inherit;font-family:inherit;font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;border:1px solid var(--border-2);background:var(--bg-raise);color:var(--text-faint);cursor:pointer;box-shadow:-14px 0 12px -6px var(--bg-raise)}.gd-copy:hover{color:var(--accent-bright);border-color:var(--accent-dim)}.gd-done{margin:22px 0 8px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);color:var(--text-faint);font-size:13px;line-height:1.5}.home-insights{margin-top:30px;padding-top:22px;border-top:1px solid var(--border)}.insights{max-width:760px;margin:0 auto}.in-title{font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 4px;color:#f4f6f9}.in-title .in-scope{color:var(--text-ghost);font-weight:500;font-size:15px}.in-lens{display:flex;gap:6px;margin:0 0 14px}.in-lens-btn{font:inherit;font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--text-faint);cursor:pointer}.in-lens-btn:hover{color:var(--text)}.in-lens-btn.active{color:var(--accent);border-color:var(--accent)}.in-chart{width:100%;height:auto;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);margin-bottom:6px}.in-axis{stroke:var(--border);stroke-width:1}.in-threshold{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.in-danger-zone{fill:#f26d6d0d}.in-label{fill:var(--text-ghost);font-size:11px}.in-quad{fill:var(--text-ghost);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}.in-quad-danger{fill:#e07070}.in-pt{fill:var(--accent);opacity:.5;cursor:pointer}.in-pt:hover{opacity:1}.in-pt.cold{fill:var(--text-ghost);opacity:.25}.in-pt.danger{fill:#e05d5d;opacity:.6}.in-treemap{background:#0c0d10}.in-tm-group{fill:none;stroke:var(--border);stroke-width:1;cursor:pointer;pointer-events:all}.in-tm-glabel{fill:var(--text-faint);font-size:10px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.in-tm-cell{cursor:pointer}.in-tm-cell:hover{stroke:#fff;stroke-width:1}.in-tm-label{fill:#0c0d10;font-size:10.5px;font-weight:620;cursor:pointer;pointer-events:none}.in-hotpath{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);overflow:hidden}.in-hp-row{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid var(--border);cursor:pointer}.in-hp-row:last-child{border-bottom:none}.in-hp-row:hover{background:var(--hover)}.in-hp-name{flex:0 0 300px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--text)}.in-hp-name.danger{color:var(--accent)}.in-hp-bar{flex:1;display:flex;height:10px;border-radius:3px;overflow:hidden}.in-hp-agent{background:var(--accent)}.in-hp-human{background:#5b8def}.in-hp-count{flex:none;width:40px;text-align:right;font-size:11.5px;color:var(--text-faint);font-variant-numeric:tabular-nums}.in-legend{margin:8px 2px 0;font-size:11.5px;color:var(--text-faint)}.in-sw{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}.in-sw.agent{background:var(--accent)}.in-sw.human{background:#5b8def}.in-matrix rect{transition:opacity .1s}.in-matrix rect:hover{opacity:.85}.history{max-width:860px}.hentry{padding:11px 12px;border-bottom:1px solid var(--border)}.hentry:hover{background:#ffffff04}.hline{display:flex;gap:10px;align-items:center}.hkind{display:inline-flex;color:var(--add)}.hkind .ico{width:13px;height:13px}.hentry.edit .hkind{color:var(--accent)}.hentry.delete .hkind{color:var(--del)}.htag{flex:none;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:1px 6px;border-radius:4px}.hentry.add .htag{color:var(--add);background:#4cc38a1f}.hentry.edit .htag{color:var(--accent-bright);background:var(--glow)}.hentry.delete .htag{color:#ff8b8b;background:#f26d6d1f}.hpath{font-weight:500;cursor:pointer;color:var(--text);font-size:13px}.hpath:hover{color:var(--accent-bright)}.htime{margin-left:auto;color:var(--text-faint);font-size:12px;font-variant-numeric:tabular-nums}.hmeta{display:flex;align-items:center;gap:14px;margin-top:4px;padding-left:23px;font-size:12px;color:var(--text-dim)}.hdev,.hsize{color:var(--text-faint)}.hsize{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.hnote{margin-top:4px;padding-left:23px;font-size:12px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.hnote:hover{color:var(--text)}.hnote.open{white-space:normal;overflow-wrap:anywhere}.hnote:before{content:"› ";color:var(--text-ghost)}.hnote a{color:var(--accent-bright);text-decoration:none}.hnote a:hover{text-decoration:underline}#palette-overlay{position:fixed;inset:0;background:#0607099e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;z-index:100}#palette{width:min(560px,92vw);background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-over);box-shadow:0 24px 70px -18px #000c;overflow:hidden}#palette-inputwrap{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--border)}#palette-inputwrap .ico{width:17px;height:17px;color:var(--text-faint)}#palette-input{flex:1;width:100%;border:none;background:transparent;color:var(--text);font:inherit;font-size:15px;letter-spacing:-.01em;outline:none;padding:0}#palette-input::placeholder{color:var(--text-ghost)}#palette-results{list-style:none;margin:0;padding:8px;max-height:46vh;overflow-y:auto}#palette-results li{display:flex;align-items:center;gap:11px;height:38px;padding:0 10px;border-radius:9px;cursor:pointer;color:var(--text-dim);font-size:13.5px}#palette-results li.selected{background:var(--glow)}#palette-results li.selected .picon{color:var(--accent)}#palette-results li.selected .plabel,#palette-results li.selected .plabel b{color:var(--accent-bright)}#palette-results li .picon{width:18px;flex:none;display:flex;justify-content:center;color:var(--text-faint)}#palette-results li .picon .ico{width:15px;height:15px}#palette-results li .plabel{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}#palette-results li .plabel b{color:var(--accent-bright);font-weight:600}#palette-results li .pkind{flex:none;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-ghost)}#palette-results .pempty{color:var(--text-faint);cursor:default;justify-content:center;height:auto;padding:14px}#palette-hint{padding:9px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--text-ghost)}.modal-back{position:fixed;inset:0;background:#06070999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:150;padding:20px}.modal{background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-over);padding:22px 24px;width:min(460px,100%);box-shadow:0 24px 70px -18px #000c}.modal h3{margin:0 0 10px;font-size:16px;font-weight:620;letter-spacing:-.01em}.modal p{margin:0 0 16px;font-size:13.5px;color:var(--text-dim);line-height:1.55}.modal p b{color:var(--text)}.modal-url{font:12px var(--mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);padding:9px 11px;color:var(--text-dim);word-break:break-all;margin-bottom:16px}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.modal-label{display:block;font-size:12.5px;color:var(--text-dim);margin:0 0 6px}.modal-msg{margin:0 0 16px;font-size:13.5px;color:var(--text-dim);line-height:1.55}.modal-input{width:100%;height:36px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:14px;margin-bottom:16px;outline:none}.modal-input:focus{border-color:var(--accent);background:var(--hover)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-raise);color:var(--text);border:1px solid var(--border-2);border-radius:10px;padding:11px 18px;font-size:13.5px;box-shadow:0 18px 44px -12px #000000b3;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#toast.err{border-color:#f26d6d80;color:#ffb0aa}#sb-backdrop{display:none}@media(max-width:900px){#sidebar{position:fixed;z-index:60;top:0;left:0;height:100%;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 40px #0009}body.sb-open #sidebar{transform:translate(0)}body.sb-open #sb-backdrop{display:block;position:fixed;inset:0;background:#0000008c;z-index:50}.icon-btn{display:inline-flex;width:44px;height:44px}#content{padding:24px 18px 70px}#topbar{padding:0 8px;gap:4px}.btn .lbl{display:none}#topbar .btn{min-width:44px;min-height:44px;padding:0;justify-content:center;gap:0}#topbar .btn .ico{width:18px;height:18px}#more-btn:not([hidden]){display:inline-flex}#history-btn,#upload-btn,#download{display:none!important}#meta{display:none}#crumb{flex:1}#vault{padding:0 8px 0 12px}.icon-btn2,#signout,#tree li>.row,#projects .row{height:44px}#account-btn,#project-select{min-height:44px}.nav-add{min-width:44px;min-height:44px}.markdown,.admin,.onboard,.history,.dirlist{max-width:100%}.markdown table,pre.plain{display:block;overflow-x:auto;max-width:100%}.ob-row{flex-direction:column}.ob-row input{flex:none;min-height:44px}.admin-item{flex-wrap:wrap;row-gap:8px;padding:12px 14px}.admin-item select{height:44px}.ai-btn,.ai-del{height:auto;min-height:44px;padding:0 12px}.admin-item .ai-main{flex:1 1 100%;white-space:normal;overflow-wrap:break-word}.gd-code{min-height:62px;padding-top:12px;padding-bottom:12px}.gd-copy{min-height:44px;padding:0 14px}.gd-tab{min-height:44px}.in-lens-btn{min-height:44px;padding:0 14px}.modal-input{height:44px}.modal-actions button,.pbtn,#palette-results li{height:auto;min-height:44px}.more-item{min-height:44px}}.modal-actions .ai-del{margin-right:auto}@media(max-width:430px){.dl-meta{display:none}.ai-tag{font-size:11px}.htime{white-space:nowrap;font-size:12px}.hline{flex-wrap:wrap}.modal-actions .ai-del{flex:0 0 100%}}.markdown{max-width:704px;width:100%;margin:0 auto}.markdown h1,.markdown h2,.markdown h3,.markdown h4{color:#f4f6f9;line-height:1.25;letter-spacing:-.018em;margin:1.5em 0 .5em;text-wrap:balance}.markdown h1:first-child{margin-top:0}.markdown h1{font-size:1.85em;font-weight:660;letter-spacing:-.024em}.markdown h2{font-size:1.32em;font-weight:620;margin-top:1.7em}.markdown h3{font-size:1.08em;font-weight:620}.markdown p,.markdown li{color:#c6cbd3;font-size:14.5px;line-height:1.72}.markdown p{margin:0 0 1em}.markdown strong{color:var(--text);font-weight:620}.markdown a{color:var(--accent-bright);text-decoration:none;border-bottom:1px solid rgba(245,166,35,.28)}.markdown a:hover{border-bottom-color:var(--accent)}.markdown ul,.markdown ol{margin:0 0 1em;padding-left:1.4em}.markdown li{margin-bottom:.4em}.markdown li::marker{color:var(--text-ghost)}.markdown code{background:var(--hover);border:1px solid var(--border);padding:.1em .4em;border-radius:5px;font:12.5px/1.5 var(--mono);color:#e4d9c4}.markdown pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;overflow-x:auto;margin:1.3em 0}.markdown pre code{background:none;border:none;padding:0;color:#c6cbd3}.markdown blockquote{margin:1.3em 0;padding:.3em 1em;border-left:2px solid var(--accent);background:linear-gradient(90deg,var(--glow),transparent);border-radius:0 8px 8px 0;color:#d8cdb6}.markdown blockquote p{margin:.3em 0;color:#d8cdb6}.markdown table{border-collapse:collapse;margin:1.3em 0;font-size:13.5px}.markdown th,.markdown td{border-bottom:1px solid var(--border);padding:9px 13px;text-align:left}.markdown th{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;border-bottom-color:var(--border-2)}.markdown tr:hover td{background:#ffffff05}.markdown img{max-width:100%;border-radius:8px;border:1px solid var(--border)}.markdown hr{border:none;border-top:1px solid var(--border);margin:2.2em 0}.markdown table.frontmatter{margin:0 0 1.8em;font-size:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;border-collapse:separate;border-spacing:0}.markdown table.frontmatter th{text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--text-faint);font-weight:600;text-align:left;white-space:nowrap;vertical-align:top;padding:6px 14px 6px 12px;border-bottom:1px solid var(--border)}.markdown table.frontmatter td{color:var(--text-dim);padding:6px 12px 6px 0;border-bottom:1px solid var(--border)}.markdown table.frontmatter tr:last-child th,.markdown table.frontmatter tr:last-child td{border-bottom:none}.markdown table.frontmatter code{white-space:pre-wrap;font-size:11px}.markdown input[type=checkbox]{accent-color:var(--accent)}.htmlview{display:block;width:100%;height:calc(100vh - 150px);border:1px solid var(--border);border-radius:var(--r-card);background:#fff}.notfound{margin-top:12vh;text-align:center;color:var(--text-dim)}.notfound h1{color:var(--text);font-size:1.4em;margin-bottom:.5em}.notfound code{background:var(--hover);border:1px solid var(--border);padding:.15em .5em;border-radius:6px}.notfound .nf-sub{max-width:440px;margin:12px auto 20px;font-size:13px;color:var(--text-faint);line-height:1.6}pre.plain{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;overflow-x:auto;font:12.5px/1.6 var(--mono);color:#c6cbd3;white-space:pre-wrap;overflow-wrap:anywhere;max-width:900px}#content.markdown{min-width:0}.filecard{margin-top:15vh;text-align:center;color:var(--text-dim)}.filecard .name{font-size:1.2em;color:var(--text);margin-bottom:.3em}.filecard .btn{margin-top:14px} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-widest:.1em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-background:#0a0b0d;--color-foreground:#eef0f3;--color-popover:#15171b;--color-popover-foreground:#eef0f3;--color-primary:#f5a623;--color-primary-foreground:#1a1204;--color-secondary:#ffffff08;--color-secondary-foreground:#eef0f3;--color-muted:#ffffff0f;--color-muted-foreground:#9aa0a9;--color-accent:#ffffff0f;--color-accent-foreground:#eef0f3;--color-destructive:#f26d6d;--color-border:#ffffff12;--color-input:#ffffff1c;--color-ring:#d3861a}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-4{top:calc(var(--spacing) * 4)}.top-20{top:calc(var(--spacing) * 20)}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.scroll-my-1{scroll-margin-block:var(--spacing)}.scroll-py-1{scroll-padding-block:var(--spacing)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-input{border-color:var(--color-input)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-destructive{background-color:var(--color-destructive)}.bg-foreground{background-color:var(--color-foreground)}.bg-muted\/50{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-foreground{fill:var(--color-foreground)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--color-background)}.text-destructive{color:var(--color-destructive)}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--color-primary)}.selection\:bg-primary::selection{background-color:var(--color-primary)}.selection\:text-primary-foreground ::selection{color:var(--color-primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--color-primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/90:hover{background-color:#f26d6de6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:#f5a623e6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:#ffffff06}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--color-ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:#d3861a80}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--color-destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--color-destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--color-accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--color-accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--color-muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--color-destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:#f26d6d1a}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--color-destructive)}@media(min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(prefers-color-scheme:dark){.dark\:border-input{border-color:var(--color-input)}.dark\:bg-destructive\/60{background-color:#f26d6d99}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab,var(--color-destructive) 60%,transparent)}}.dark\:bg-input\/30{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30{background-color:color-mix(in oklab,var(--color-input) 30%,transparent)}}@media(hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:#ffffff0e}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab,var(--color-input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:#f26d6d66}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:#f26d6d66}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--color-destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:#f26d6d33}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--color-destructive) 20%,transparent)}}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--color-muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--color-muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--color-destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}:root{--bg: #0a0b0d;--bg-side: #0c0e10;--bg-raise: #15171b;--surface: rgba(255,255,255,.03);--hover: rgba(255,255,255,.06);--border: rgba(255,255,255,.07);--border-2: rgba(255,255,255,.11);--code-bg: #0d0f12;--text: #eef0f3;--text-dim: #9aa0a9;--text-faint: #868b93;--text-ghost: #666b74;--accent: #f5a623;--accent-bright: #ffcf85;--accent-dim: #d3861a;--accent-press: #e0951a;--glow: rgba(245,166,35,.13);--add: #4cc38a;--del: #f26d6d;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif;--r-ctl: 7px;--r-card: 10px;--r-over: 14px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}#root{display:contents}body{display:flex;background:var(--bg);color:var(--text);font:13px/1.5 var(--ui);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--glow);color:var(--accent-bright)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:5px}.sprite{position:absolute}.ico{width:16px;height:16px;flex:none;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}button,input,a.btn{font-family:inherit}#sidebar{width:264px;min-width:210px;background:var(--bg-side);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}#vault{display:flex;align-items:center;gap:9px;height:52px;padding:0 12px 0 14px;border-bottom:1px solid var(--border);position:relative;z-index:45}#vault-badge{width:22px;height:22px;border-radius:6px;flex:none;display:grid;place-items:center;font-size:13px;line-height:1;background:linear-gradient(160deg,#ffcf85,#f5a623 55%,#d3861a);box-shadow:0 1px #ffffff59 inset,0 2px 6px -1px #f5a62366}#vault-name{font-weight:600;font-size:13px;letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-actions{display:flex;align-items:center;gap:4px}#vault #signout,.icon-btn2{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-ghost);background:transparent;border:none;cursor:pointer;text-decoration:none}#vault #signout:hover,.icon-btn2:hover{color:var(--text);background:var(--hover)}#vault #signout .ico,.icon-btn2 .ico{width:16px;height:16px}#projects{flex:none;max-height:32%;overflow-y:auto;padding:10px 8px 8px;border-bottom:1px solid var(--border)}.nav-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost)}.nav-add{display:grid;place-items:center;width:18px;height:18px;border:none;background:transparent;color:var(--text-ghost);cursor:pointer;border-radius:5px}.nav-add .ico{width:14px;height:14px}.nav-add:hover{color:var(--text);background:var(--hover)}#projects ul{list-style:none;margin:0;padding:0}#projects .row{display:flex;align-items:center;gap:9px;height:31px;padding:0 8px;border-radius:7px;color:var(--text-dim);cursor:pointer;position:relative;white-space:nowrap;overflow:hidden}.proj-mark{width:17px;height:17px;border-radius:5px;flex:none;display:grid;place-items:center;font-size:10px;font-weight:700;color:#0a0b0d;letter-spacing:-.02em;text-transform:uppercase}#projects .row .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}#projects .row:hover{background:var(--hover);color:var(--text)}#projects .row.active{background:var(--glow);color:var(--accent-bright)}#projects .row.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--accent)}#tree{flex:1;overflow-y:auto;padding:8px 8px 24px}#tree ul{list-style:none;margin:0;padding-left:13px;position:relative}#tree>ul{padding-left:0}#tree ul ul:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--border)}#tree li>.row{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px;border-radius:7px;color:var(--text-dim);cursor:pointer;position:relative;white-space:nowrap;overflow:hidden}#tree li>.row:hover{background:var(--hover);color:var(--text)}#tree li>.row.active{background:var(--glow);color:var(--accent-bright)}#tree li>.row.active:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:2px;border-radius:2px;background:var(--accent)}#tree .chev{width:14px;height:14px;flex:none;color:var(--text-ghost);transition:transform .12s;display:flex;align-items:center;justify-content:center}#tree .chev .ico{width:13px;height:13px}#tree .ticon{flex:none;display:flex;color:var(--text-ghost)}#tree .ticon .ico{width:15px;height:15px}#tree li>.row:hover .ticon,#tree li>.row:hover .chev{color:var(--text-faint)}#tree li>.row.active .ticon,#tree li>.row.active .chev{color:var(--accent)}#tree .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}#tree .file .label{font-size:12.5px}#tree .file .chev{visibility:hidden}#tree li.collapsed>ul{display:none}#tree li.collapsed>.row .chev{transform:rotate(-90deg)}.nav-menu{list-style:none;margin:6px 0 0;padding:0}.nav-menu .row .ico{width:15px;height:15px;flex:none;color:var(--text-ghost)}.nav-menu .row.active .ico{color:var(--accent-bright)}.proj-row{display:flex;align-items:center;gap:4px;padding:0 10px 4px 12px}.proj-select-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.proj-select-wrap .proj-mark{position:absolute;left:9px;pointer-events:none}.proj-select-wrap>.ico{position:absolute;right:8px;width:14px;height:14px;color:var(--text-ghost);pointer-events:none}#project-select{flex:1;min-width:0;height:30px;padding:0 26px 0 30px;appearance:none;-webkit-appearance:none;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#project-select:hover{background:var(--hover);border-color:var(--border-2)}#accountbar{position:relative;border-top:1px solid var(--border);padding:7px 10px}#account-btn{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:6px 8px;border:none;border-radius:7px;background:transparent;color:var(--text-dim);cursor:pointer;font:inherit}#account-btn:hover{background:var(--hover);color:var(--text)}#account-btn .avatar{width:26px;height:26px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}#account-btn .acct{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}#account-btn .acct b{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#account-btn .acct small{font-size:11px;color:var(--text-ghost);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#account-btn>.ico{width:14px;height:14px;color:var(--text-ghost)}#account-menu{position:absolute;left:10px;right:10px;bottom:calc(100% + 4px);padding:5px;border:1px solid var(--border-2);border-radius:9px;background:var(--surface);box-shadow:0 10px 32px #00000059;display:flex;flex-direction:column;z-index:30}#account-menu .menu-sec{padding:7px 9px 3px;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-ghost)}#account-menu [role=menuitem]{display:flex;align-items:center;gap:8px;padding:7px 9px;border:none;border-radius:6px;background:transparent;text-align:left;color:var(--text-dim);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:none}#account-menu [role=menuitem]:hover{background:var(--hover);color:var(--text)}#account-menu [role=menuitem] b{font-weight:600}#account-menu [role=menuitem] .ico{width:15px;height:15px}#account-menu #signout{color:var(--danger, #e5534b)}#account-menu #signout:hover{color:var(--danger, #e5534b);background:var(--hover)}#main{flex:1;display:flex;flex-direction:column;min-width:0}#topbar{position:relative;display:flex;align-items:center;gap:9px;height:52px;padding:0 16px;border-bottom:1px solid var(--border)}.icon-btn{display:none;width:34px;height:34px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;border-radius:7px;align-items:center;justify-content:center}.icon-btn:hover{color:var(--text);background:var(--hover)}#crumb{font-size:12.5px;color:var(--text);font-weight:500;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#crumb .crumb-seg{color:var(--text-dim);cursor:pointer}#crumb .crumb-seg:hover{color:var(--accent-bright)}#crumb .crumb-sep{color:var(--text-ghost);margin:0 5px}#meta{flex:1;min-width:0;font-size:12px;color:var(--text-faint);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:6px;flex:none;height:30px;padding:0 11px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-size:12.5px;font-weight:500;cursor:pointer;text-decoration:none}.btn:hover{background:var(--hover);color:var(--text);border-color:var(--border-2)}.btn .ico{width:15px;height:15px}.btn.ghost{color:var(--text-dim)}.has-tip{position:relative}.has-tip .tip{position:absolute;top:calc(100% + 8px);right:-6px;display:flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 9px;border-radius:8px;border:1px solid var(--border-2);background:var(--surface);color:var(--text);font-size:12.5px;font-weight:500;box-shadow:0 8px 24px #00000059;opacity:0;visibility:hidden;transition:opacity .12s ease .15s;z-index:40}.has-tip .tip:before{content:"";position:absolute;top:-4.5px;right:16px;width:8px;height:8px;transform:rotate(45deg);background:var(--surface);border-left:1px solid var(--border-2);border-top:1px solid var(--border-2)}.has-tip:hover .tip,.has-tip:focus-visible .tip{opacity:1;visibility:visible}.has-tip .tip kbd{font:11px var(--ui);color:var(--text-faint);background:var(--hover);border:1px solid var(--border-2);border-radius:5px;padding:1px 5px}#more-menu{position:absolute;right:12px;top:calc(100% - 4px);z-index:80;background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-card);box-shadow:0 18px 44px -14px #000000bf;padding:6px;min-width:168px}.more-item{display:block;width:100%;text-align:left;min-height:40px;padding:0 12px;background:transparent;border:none;cursor:pointer;color:var(--text);font:inherit;font-size:13.5px;border-radius:var(--r-ctl)}.more-item:hover{background:var(--hover)}#content{flex:1;overflow-y:auto;padding:44px 40px 110px;scroll-behavior:smooth}.empty{color:var(--text-faint);text-align:center;margin-top:22vh}.empty-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-ghost)}.onboard{max-width:560px;margin:8vh auto 0}.onboard h1{font-size:25px;font-weight:640;letter-spacing:-.02em;margin:0 0 8px;color:#f4f6f9}.onboard>p{color:var(--text-dim);margin:0 0 28px;font-size:14px}.ob-card{background:var(--bg-side);border:1px solid var(--border);border-radius:var(--r-card);padding:20px 22px;margin-bottom:14px}.ob-card h3{margin:0 0 6px;font-size:14.5px;font-weight:600}.ob-card p{margin:0 0 14px;font-size:13px;color:var(--text-dim)}.ob-row{display:flex;gap:9px}.ob-row input{flex:1;height:34px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;outline:none}.ob-row input:focus{border-color:var(--accent);background:var(--hover)}.pbtn{display:inline-flex;align-items:center;gap:6px;flex:none;height:32px;padding:0 14px;border-radius:var(--r-ctl);border:none;background:var(--accent);color:#241704;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pbtn:hover{background:var(--accent-bright)}.pbtn .ico{width:15px;height:15px}.danger-btn{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:var(--r-ctl);border:none;background:#b3382e;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.danger-btn:hover{background:#c94336}.admin{max-width:760px}.admin h1{font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 6px;color:#f4f6f9}.admin h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost);font-weight:600;margin:30px 0 10px}.admin-sub{color:var(--text-dim);font-size:13.5px;margin:0 0 6px;line-height:1.55}.admin-h{display:flex;align-items:center;justify-content:space-between;margin:30px 0 10px}.admin-h h3{margin:0}.admin-row{display:flex;gap:9px;margin-bottom:8px}.admin-row input{flex:1;height:34px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;outline:none}.admin-row input:focus{border-color:var(--accent);background:var(--hover)}.admin-list{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--bg-side)}.admin-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--border);font-size:13.5px}.admin-item:last-child{border-bottom:none}.admin-item:hover{background:#ffffff04}.ai-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ai-main.mono{font:12px var(--mono);color:var(--text-dim);cursor:pointer}.ai-tag{font-size:11.5px;color:var(--text-faint);flex:none}.admin-item select{height:28px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:0 8px;font:inherit;font-size:12.5px;cursor:pointer}.admin-item select:hover{border-color:var(--border-2)}.ai-btn,.ai-del{flex:none;height:27px;padding:0 11px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font:inherit;font-size:12px;font-weight:500;cursor:pointer}.ai-btn:hover{background:var(--hover);color:var(--text);border-color:var(--border-2)}.ai-del{color:var(--del);border-color:transparent;background:transparent}.ai-del:hover{background:#f26d6d1f;color:#ff8b8b}.admin-empty{padding:14px;color:var(--text-faint);font-size:13px}.admin-item.toggle{cursor:pointer;align-items:flex-start}.admin-item.toggle .ai-main{white-space:normal}.tg-label{font-size:13.5px;font-weight:550;color:var(--text)}.tg-desc{font-size:12px;color:var(--text-faint);margin-top:3px;line-height:1.5}.admin-item.toggle input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent);flex:none}.dirlist{max-width:704px;margin:0 auto}.dl-title{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 4px;color:#f4f6f9}.dl-title-icon{display:flex;color:var(--accent)}.dl-title-icon .ico{width:20px;height:20px}.dl-sub{color:var(--text-faint);font-size:12.5px;margin:0 0 18px}.dl-items{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;background:var(--bg-side)}.dl-row{display:flex;align-items:center;gap:11px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer}.dl-row:last-child{border-bottom:none}.dl-row:hover{background:var(--hover)}.dl-row .ticon{flex:none;display:flex;color:var(--text-ghost)}.dl-row .ticon .ico{width:16px;height:16px}.dl-row:hover .ticon{color:var(--text-faint)}.dl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;color:var(--text)}.dl-meta{flex:none;font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.heatdot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent)}.heatdot.lvl1{opacity:.3}.heatdot.lvl2{opacity:.55}.heatdot.lvl3{opacity:.8}.heatdot.lvl4{opacity:1;box-shadow:0 0 6px #f5a6238c}.dl-empty{padding:24px 14px;color:var(--text-faint);font-size:13px;border:1px dashed var(--border);border-radius:var(--r-card);text-align:center}.dl-h3{margin:28px 0 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-ghost);font-weight:600}.dl-hlist{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);overflow:hidden;max-width:none}.dl-hlist .hentry:last-child{border-bottom:none}.hentry.clickable{cursor:pointer}.hentry.clickable:hover{background:var(--hover)}.dl-more{margin-top:10px}#vault-name.vault-link{cursor:pointer}#vault-name.vault-link:hover{color:var(--accent-bright)}.guide{max-width:760px;margin:0 auto}.gd-tabs{display:flex;gap:2px;margin:20px 0 16px;border-bottom:1px solid var(--border);overflow-x:auto}.gd-tab{font:inherit;font-size:13px;font-weight:600;padding:7px 12px 9px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-faint);cursor:pointer;white-space:nowrap}.gd-tab:hover{color:var(--text)}.gd-tab.active{color:var(--accent-bright);border-bottom-color:var(--accent)}.gd-step{margin:0 0 18px}.gd-step-head{display:flex;align-items:center;gap:10px;margin-bottom:3px}.gd-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--glow);color:var(--accent-bright);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.gd-step-title{font-weight:600;font-size:14px;color:var(--text)}.gd-desc{margin:2px 0 8px 32px;color:var(--text-faint);font-size:13px;line-height:1.5}.gd-extra{font-size:12.5px;margin-top:6px}.gd-code{position:relative;margin:6px 0 6px 32px;padding:10px 72px 10px 12px;background:var(--bg-raise);border:1px solid var(--border);border-radius:var(--r-card);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;color:var(--text);overflow-x:auto;white-space:pre}.gd-copy{position:absolute;top:7px;right:7px;font:inherit;font-family:inherit;font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;border:1px solid var(--border-2);background:var(--bg-raise);color:var(--text-faint);cursor:pointer;box-shadow:-14px 0 12px -6px var(--bg-raise)}.gd-copy:hover{color:var(--accent-bright);border-color:var(--accent-dim)}.gd-done{margin:22px 0 8px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);color:var(--text-faint);font-size:13px;line-height:1.5}.home-insights{margin-top:30px;padding-top:22px;border-top:1px solid var(--border)}.insights{max-width:760px;margin:0 auto}.in-title{font-size:21px;font-weight:640;letter-spacing:-.02em;margin:0 0 4px;color:#f4f6f9}.in-title .in-scope{color:var(--text-ghost);font-weight:500;font-size:15px}.in-lens{display:flex;gap:6px;margin:0 0 14px}.in-lens-btn{font:inherit;font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--text-faint);cursor:pointer}.in-lens-btn:hover{color:var(--text)}.in-lens-btn.active{color:var(--accent);border-color:var(--accent)}.in-chart{width:100%;height:auto;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);margin-bottom:6px}.in-axis{stroke:var(--border);stroke-width:1}.in-threshold{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.in-danger-zone{fill:#f26d6d0d}.in-label{fill:var(--text-ghost);font-size:11px}.in-quad{fill:var(--text-ghost);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}.in-quad-danger{fill:#e07070}.in-pt{fill:var(--accent);opacity:.5;cursor:pointer}.in-pt:hover{opacity:1}.in-pt.cold{fill:var(--text-ghost);opacity:.25}.in-pt.danger{fill:#e05d5d;opacity:.6}.in-treemap{background:#0c0d10}.in-tm-group{fill:none;stroke:var(--border);stroke-width:1;cursor:pointer;pointer-events:all}.in-tm-glabel{fill:var(--text-faint);font-size:10px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.in-tm-cell{cursor:pointer}.in-tm-cell:hover{stroke:#fff;stroke-width:1}.in-tm-label{fill:#0c0d10;font-size:10.5px;font-weight:620;cursor:pointer;pointer-events:none}.in-hotpath{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-side);overflow:hidden}.in-hp-row{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid var(--border);cursor:pointer}.in-hp-row:last-child{border-bottom:none}.in-hp-row:hover{background:var(--hover)}.in-hp-name{flex:0 0 300px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--text)}.in-hp-name.danger{color:var(--accent)}.in-hp-bar{flex:1;display:flex;height:10px;border-radius:3px;overflow:hidden}.in-hp-agent{background:var(--accent)}.in-hp-human{background:#5b8def}.in-hp-count{flex:none;width:40px;text-align:right;font-size:11.5px;color:var(--text-faint);font-variant-numeric:tabular-nums}.in-legend{margin:8px 2px 0;font-size:11.5px;color:var(--text-faint)}.in-sw{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px}.in-sw.agent{background:var(--accent)}.in-sw.human{background:#5b8def}.in-matrix rect{transition:opacity .1s}.in-matrix rect:hover{opacity:.85}.history{max-width:860px}.hentry{padding:11px 12px;border-bottom:1px solid var(--border)}.hentry:hover{background:#ffffff04}.hline{display:flex;gap:10px;align-items:center}.hkind{display:inline-flex;color:var(--add)}.hkind .ico{width:13px;height:13px}.hentry.edit .hkind{color:var(--accent)}.hentry.delete .hkind{color:var(--del)}.htag{flex:none;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:1px 6px;border-radius:4px}.hentry.add .htag{color:var(--add);background:#4cc38a1f}.hentry.edit .htag{color:var(--accent-bright);background:var(--glow)}.hentry.delete .htag{color:#ff8b8b;background:#f26d6d1f}.hpath{font-weight:500;cursor:pointer;color:var(--text);font-size:13px}.hpath:hover{color:var(--accent-bright)}.htime{margin-left:auto;color:var(--text-faint);font-size:12px;font-variant-numeric:tabular-nums}.hmeta{display:flex;align-items:center;gap:14px;margin-top:4px;padding-left:23px;font-size:12px;color:var(--text-dim)}.hdev,.hsize{color:var(--text-faint)}.hsize{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.hnote{margin-top:4px;padding-left:23px;font-size:12px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.hnote:hover{color:var(--text)}.hnote.open{white-space:normal;overflow-wrap:anywhere}.hnote:before{content:"› ";color:var(--text-ghost)}.hnote a{color:var(--accent-bright);text-decoration:none}.hnote a:hover{text-decoration:underline}#palette-overlay{position:fixed;inset:0;background:#0607099e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;z-index:100}#palette{width:min(560px,92vw);background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-over);box-shadow:0 24px 70px -18px #000c;overflow:hidden}#palette-inputwrap{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--border)}#palette-inputwrap .ico{width:17px;height:17px;color:var(--text-faint)}#palette-input{flex:1;width:100%;border:none;background:transparent;color:var(--text);font:inherit;font-size:15px;letter-spacing:-.01em;outline:none;padding:0}#palette-input::placeholder{color:var(--text-ghost)}#palette-results{list-style:none;margin:0;padding:8px;max-height:46vh;overflow-y:auto}#palette-results li{display:flex;align-items:center;gap:11px;height:38px;padding:0 10px;border-radius:9px;cursor:pointer;color:var(--text-dim);font-size:13.5px}#palette-results li.selected{background:var(--glow)}#palette-results li.selected .picon{color:var(--accent)}#palette-results li.selected .plabel,#palette-results li.selected .plabel b{color:var(--accent-bright)}#palette-results li .picon{width:18px;flex:none;display:flex;justify-content:center;color:var(--text-faint)}#palette-results li .picon .ico{width:15px;height:15px}#palette-results li .plabel{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}#palette-results li .plabel b{color:var(--accent-bright);font-weight:600}#palette-results li .pkind{flex:none;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-ghost)}#palette-results .pempty{color:var(--text-faint);cursor:default;justify-content:center;height:auto;padding:14px}#palette-hint{padding:9px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--text-ghost)}.modal-back{position:fixed;inset:0;background:#06070999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:150;padding:20px}.modal{background:var(--bg-raise);border:1px solid var(--border-2);border-radius:var(--r-over);padding:22px 24px;width:min(460px,100%);box-shadow:0 24px 70px -18px #000c}.modal h3{margin:0 0 10px;font-size:16px;font-weight:620;letter-spacing:-.01em}.modal p{margin:0 0 16px;font-size:13.5px;color:var(--text-dim);line-height:1.55}.modal p b{color:var(--text)}.modal-url{font:12px var(--mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);padding:9px 11px;color:var(--text-dim);word-break:break-all;margin-bottom:16px}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.modal-label{display:block;font-size:12.5px;color:var(--text-dim);margin:0 0 6px}.modal-msg{margin:0 0 16px;font-size:13.5px;color:var(--text-dim);line-height:1.55}.modal-input{width:100%;height:36px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:14px;margin-bottom:16px;outline:none}.modal-input:focus{border-color:var(--accent);background:var(--hover)}[data-sonner-toast]{background:var(--bg-raise)!important;color:var(--text)!important;border:1px solid var(--border-2)!important;border-radius:10px!important;font-size:13.5px!important;box-shadow:0 18px 44px -12px #000000b3!important}[data-sonner-toast][data-type=error]{border-color:#f26d6d80!important;color:#ffb0aa!important}#sb-backdrop{display:none}@media(max-width:900px){#sidebar{position:fixed;z-index:60;top:0;left:0;height:100%;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 40px #0009}body.sb-open #sidebar{transform:translate(0)}body.sb-open #sb-backdrop{display:block;position:fixed;inset:0;background:#0000008c;z-index:50}.icon-btn{display:inline-flex;width:44px;height:44px}#content{padding:24px 18px 70px}#topbar{padding:0 8px;gap:4px}.btn .lbl{display:none}#topbar .btn{min-width:44px;min-height:44px;padding:0;justify-content:center;gap:0}#topbar .btn .ico{width:18px;height:18px}#more-btn:not([hidden]){display:inline-flex}#history-btn,#upload-btn,#download{display:none!important}#meta{display:none}#crumb{flex:1}#vault{padding:0 8px 0 12px}.icon-btn2,#signout,#tree li>.row,#projects .row{height:44px}#account-btn,#project-select{min-height:44px}.nav-add{min-width:44px;min-height:44px}.markdown,.admin,.onboard,.history,.dirlist{max-width:100%}.markdown table,pre.plain{display:block;overflow-x:auto;max-width:100%}.ob-row{flex-direction:column}.ob-row input{flex:none;min-height:44px}.admin-item{flex-wrap:wrap;row-gap:8px;padding:12px 14px}.admin-item select{height:44px}.ai-btn,.ai-del{height:auto;min-height:44px;padding:0 12px}.admin-item .ai-main{flex:1 1 100%;white-space:normal;overflow-wrap:break-word}.gd-code{min-height:62px;padding-top:12px;padding-bottom:12px}.gd-copy{min-height:44px;padding:0 14px}.gd-tab{min-height:44px}.in-lens-btn{min-height:44px;padding:0 14px}.modal-input{height:44px}.modal-actions button,.pbtn,#palette-results li{height:auto;min-height:44px}.more-item{min-height:44px}}.modal-actions .ai-del{margin-right:auto}@media(max-width:430px){.dl-meta{display:none}.ai-tag{font-size:11px}.htime{white-space:nowrap;font-size:12px}.hline{flex-wrap:wrap}.modal-actions .ai-del{flex:0 0 100%}}.markdown{max-width:704px;width:100%;margin:0 auto}.markdown h1,.markdown h2,.markdown h3,.markdown h4{color:#f4f6f9;line-height:1.25;letter-spacing:-.018em;margin:1.5em 0 .5em;text-wrap:balance}.markdown h1:first-child{margin-top:0}.markdown h1{font-size:1.85em;font-weight:660;letter-spacing:-.024em}.markdown h2{font-size:1.32em;font-weight:620;margin-top:1.7em}.markdown h3{font-size:1.08em;font-weight:620}.markdown p,.markdown li{color:#c6cbd3;font-size:14.5px;line-height:1.72}.markdown p{margin:0 0 1em}.markdown strong{color:var(--text);font-weight:620}.markdown a{color:var(--accent-bright);text-decoration:none;border-bottom:1px solid rgba(245,166,35,.28)}.markdown a:hover{border-bottom-color:var(--accent)}.markdown ul,.markdown ol{margin:0 0 1em;padding-left:1.4em}.markdown li{margin-bottom:.4em}.markdown li::marker{color:var(--text-ghost)}.markdown code{background:var(--hover);border:1px solid var(--border);padding:.1em .4em;border-radius:5px;font:12.5px/1.5 var(--mono);color:#e4d9c4}.markdown pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;overflow-x:auto;margin:1.3em 0}.markdown pre code{background:none;border:none;padding:0;color:#c6cbd3}.markdown blockquote{margin:1.3em 0;padding:.3em 1em;border-left:2px solid var(--accent);background:linear-gradient(90deg,var(--glow),transparent);border-radius:0 8px 8px 0;color:#d8cdb6}.markdown blockquote p{margin:.3em 0;color:#d8cdb6}.markdown table{border-collapse:collapse;margin:1.3em 0;font-size:13.5px}.markdown th,.markdown td{border-bottom:1px solid var(--border);padding:9px 13px;text-align:left}.markdown th{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;border-bottom-color:var(--border-2)}.markdown tr:hover td{background:#ffffff05}.markdown img{max-width:100%;border-radius:8px;border:1px solid var(--border)}.markdown hr{border:none;border-top:1px solid var(--border);margin:2.2em 0}.markdown table.frontmatter{margin:0 0 1.8em;font-size:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;border-collapse:separate;border-spacing:0}.markdown table.frontmatter th{text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--text-faint);font-weight:600;text-align:left;white-space:nowrap;vertical-align:top;padding:6px 14px 6px 12px;border-bottom:1px solid var(--border)}.markdown table.frontmatter td{color:var(--text-dim);padding:6px 12px 6px 0;border-bottom:1px solid var(--border)}.markdown table.frontmatter tr:last-child th,.markdown table.frontmatter tr:last-child td{border-bottom:none}.markdown table.frontmatter code{white-space:pre-wrap;font-size:11px}.markdown input[type=checkbox]{accent-color:var(--accent)}.htmlview{display:block;width:100%;height:calc(100vh - 150px);border:1px solid var(--border);border-radius:var(--r-card);background:#fff}.notfound{margin-top:12vh;text-align:center;color:var(--text-dim)}.notfound h1{color:var(--text);font-size:1.4em;margin-bottom:.5em}.notfound code{background:var(--hover);border:1px solid var(--border);padding:.15em .5em;border-radius:6px}.notfound .nf-sub{max-width:440px;margin:12px auto 20px;font-size:13px;color:var(--text-faint);line-height:1.6}pre.plain{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px;overflow-x:auto;font:12.5px/1.6 var(--mono);color:#c6cbd3;white-space:pre-wrap;overflow-wrap:anywhere;max-width:900px}#content.markdown{min-width:0}.filecard{margin-top:15vh;text-align:center;color:var(--text-dim)}.filecard .name{font-size:1.2em;color:var(--text);margin-bottom:.3em}.filecard .btn{margin-top:14px} diff --git a/internal/webapp/static/assets/index-ClGU06Ni.js b/internal/webapp/static/assets/index-ClGU06Ni.js new file mode 100644 index 0000000..1fdf1dd --- /dev/null +++ b/internal/webapp/static/assets/index-ClGU06Ni.js @@ -0,0 +1,11 @@ +(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))r(d);new MutationObserver(d=>{for(const y of d)if(y.type==="childList")for(const g of y.addedNodes)g.tagName==="LINK"&&g.rel==="modulepreload"&&r(g)}).observe(document,{childList:!0,subtree:!0});function c(d){const y={};return d.integrity&&(y.integrity=d.integrity),d.referrerPolicy&&(y.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?y.credentials="include":d.crossOrigin==="anonymous"?y.credentials="omit":y.credentials="same-origin",y}function r(d){if(d.ep)return;d.ep=!0;const y=c(d);fetch(d.href,y)}})();function sm(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var cr={exports:{}},gi={};var Ah;function Z0(){if(Ah)return gi;Ah=1;var i=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function c(r,d,y){var g=null;if(y!==void 0&&(g=""+y),d.key!==void 0&&(g=""+d.key),"key"in d){y={};for(var A in d)A!=="key"&&(y[A]=d[A])}else y=d;return d=y.ref,{$$typeof:i,type:r,key:g,ref:d!==void 0?d:null,props:y}}return gi.Fragment=u,gi.jsx=c,gi.jsxs=c,gi}var Ch;function J0(){return Ch||(Ch=1,cr.exports=Z0()),cr.exports}var f=J0(),rr={exports:{}},at={};var _h;function F0(){if(_h)return at;_h=1;var i=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),g=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),T=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),S=Symbol.iterator;function U(x){return x===null||typeof x!="object"?null:(x=S&&x[S]||x["@@iterator"],typeof x=="function"?x:null)}var _={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B=Object.assign,X={};function G(x,D,q){this.props=x,this.context=D,this.refs=X,this.updater=q||_}G.prototype.isReactComponent={},G.prototype.setState=function(x,D){if(typeof x!="object"&&typeof x!="function"&&x!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,x,D,"setState")},G.prototype.forceUpdate=function(x){this.updater.enqueueForceUpdate(this,x,"forceUpdate")};function mt(){}mt.prototype=G.prototype;function et(x,D,q){this.props=x,this.context=D,this.refs=X,this.updater=q||_}var Mt=et.prototype=new mt;Mt.constructor=et,B(Mt,G.prototype),Mt.isPureReactComponent=!0;var Ut=Array.isArray;function P(){}var F={H:null,A:null,T:null,S:null},ft=Object.prototype.hasOwnProperty;function Yt(x,D,q){var Y=q.ref;return{$$typeof:i,type:x,key:D,ref:Y!==void 0?Y:null,props:q}}function Xt(x,D){return Yt(x.type,D,x.props)}function Zt(x){return typeof x=="object"&&x!==null&&x.$$typeof===i}function Ct(x){var D={"=":"=0",":":"=2"};return"$"+x.replace(/[=:]/g,function(q){return D[q]})}var Dt=/\/+/g;function fe(x,D){return typeof x=="object"&&x!==null&&x.key!=null?Ct(""+x.key):D.toString(36)}function Nt(x){switch(x.status){case"fulfilled":return x.value;case"rejected":throw x.reason;default:switch(typeof x.status=="string"?x.then(P,P):(x.status="pending",x.then(function(D){x.status==="pending"&&(x.status="fulfilled",x.value=D)},function(D){x.status==="pending"&&(x.status="rejected",x.reason=D)})),x.status){case"fulfilled":return x.value;case"rejected":throw x.reason}}throw x}function O(x,D,q,Y,K){var $=typeof x;($==="undefined"||$==="boolean")&&(x=null);var ot=!1;if(x===null)ot=!0;else switch($){case"bigint":case"string":case"number":ot=!0;break;case"object":switch(x.$$typeof){case i:case u:ot=!0;break;case T:return ot=x._init,O(ot(x._payload),D,q,Y,K)}}if(ot)return K=K(x),ot=Y===""?"."+fe(x,0):Y,Ut(K)?(q="",ot!=null&&(q=ot.replace(Dt,"$&/")+"/"),O(K,D,q,"",function(Xe){return Xe})):K!=null&&(Zt(K)&&(K=Xt(K,q+(K.key==null||x&&x.key===K.key?"":(""+K.key).replace(Dt,"$&/")+"/")+ot)),D.push(K)),1;ot=0;var nt=Y===""?".":Y+":";if(Ut(x))for(var jt=0;jt>>1,it=O[ct];if(0>>1;ctd(q,J))Yd(K,q)?(O[ct]=K,O[Y]=J,ct=Y):(O[ct]=q,O[D]=J,ct=D);else if(Yd(K,J))O[ct]=K,O[Y]=J,ct=Y;else break t}}return L}function d(O,L){var J=O.sortIndex-L.sortIndex;return J!==0?J:O.id-L.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var y=performance;i.unstable_now=function(){return y.now()}}else{var g=Date,A=g.now();i.unstable_now=function(){return g.now()-A}}var p=[],v=[],T=1,m=null,S=3,U=!1,_=!1,B=!1,X=!1,G=typeof setTimeout=="function"?setTimeout:null,mt=typeof clearTimeout=="function"?clearTimeout:null,et=typeof setImmediate<"u"?setImmediate:null;function Mt(O){for(var L=c(v);L!==null;){if(L.callback===null)r(v);else if(L.startTime<=O)r(v),L.sortIndex=L.expirationTime,u(p,L);else break;L=c(v)}}function Ut(O){if(B=!1,Mt(O),!_)if(c(p)!==null)_=!0,P||(P=!0,Ct());else{var L=c(v);L!==null&&Nt(Ut,L.startTime-O)}}var P=!1,F=-1,ft=5,Yt=-1;function Xt(){return X?!0:!(i.unstable_now()-YtO&&Xt());){var ct=m.callback;if(typeof ct=="function"){m.callback=null,S=m.priorityLevel;var it=ct(m.expirationTime<=O);if(O=i.unstable_now(),typeof it=="function"){m.callback=it,Mt(O),L=!0;break e}m===c(p)&&r(p),Mt(O)}else r(p);m=c(p)}if(m!==null)L=!0;else{var x=c(v);x!==null&&Nt(Ut,x.startTime-O),L=!1}}break t}finally{m=null,S=J,U=!1}L=void 0}}finally{L?Ct():P=!1}}}var Ct;if(typeof et=="function")Ct=function(){et(Zt)};else if(typeof MessageChannel<"u"){var Dt=new MessageChannel,fe=Dt.port2;Dt.port1.onmessage=Zt,Ct=function(){fe.postMessage(null)}}else Ct=function(){G(Zt,0)};function Nt(O,L){F=G(function(){O(i.unstable_now())},L)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(O){O.callback=null},i.unstable_forceFrameRate=function(O){0>O||125ct?(O.sortIndex=J,u(v,O),c(p)===null&&O===c(v)&&(B?(mt(F),F=-1):B=!0,Nt(Ut,J-ct))):(O.sortIndex=it,u(p,O),_||U||(_=!0,P||(P=!0,Ct()))),O},i.unstable_shouldYield=Xt,i.unstable_wrapCallback=function(O){var L=S;return function(){var J=S;S=L;try{return O.apply(this,arguments)}finally{S=J}}}})(dr)),dr}var Dh;function W0(){return Dh||(Dh=1,fr.exports=$0()),fr.exports}var hr={exports:{}},me={};var Rh;function I0(){if(Rh)return me;Rh=1;var i=Or();function u(p){var v="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(u){console.error(u)}}return i(),hr.exports=I0(),hr.exports}var Hh;function P0(){if(Hh)return bi;Hh=1;var i=W0(),u=Or(),c=um();function r(t){var e="https://react.dev/errors/"+t;if(1it||(t.current=ct[it],ct[it]=null,it--)}function q(t,e){it++,ct[it]=t.current,t.current=e}var Y=x(null),K=x(null),$=x(null),ot=x(null);function nt(t,e){switch(q($,e),q(K,t),q(Y,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Wd(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=Wd(e),t=Id(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}D(Y),q(Y,t)}function jt(){D(Y),D(K),D($)}function Xe(t){t.memoizedState!==null&&q(ot,t);var e=Y.current,a=Id(e,t.type);e!==a&&(q(K,t),q(Y,a))}function aa(t){K.current===t&&(D(Y),D(K)),ot.current===t&&(D(ot),mi._currentValue=J)}var ge,pa;function Re(t){if(ge===void 0)try{throw Error()}catch(a){var e=a.stack.trim().match(/\n( *(at )?)/);ge=e&&e[1]||"",pa=-1)":-1l||b[n]!==M[l]){var w=` +`+b[n].replace(" at new "," at ");return t.displayName&&w.includes("")&&(w=w.replace("",t.displayName)),w}while(1<=n&&0<=l);break}}}finally{ra=!1,Error.prepareStackTrace=a}return(a=t?t.displayName||t.name:"")?Re(a):""}function te(t,e){switch(t.tag){case 26:case 27:case 5:return Re(t.type);case 16:return Re("Lazy");case 13:return t.child!==e&&e!==null?Re("Suspense Fallback"):Re("Suspense");case 19:return Re("SuspenseList");case 0:case 15:return be(t.type,!1);case 11:return be(t.type.render,!1);case 1:return be(t.type,!0);case 31:return Re("Activity");default:return""}}function dn(t){try{var e="",a=null;do e+=te(t,a),a=t,t=t.return;while(t);return e}catch(n){return` +Error generating stack: `+n.message+` +`+n.stack}}var ye=Object.prototype.hasOwnProperty,lt=i.unstable_scheduleCallback,pt=i.unstable_cancelCallback,rt=i.unstable_shouldYield,Ke=i.unstable_requestPaint,le=i.unstable_now,Ml=i.unstable_getCurrentPriorityLevel,hn=i.unstable_ImmediatePriority,_i=i.unstable_UserBlockingPriority,mn=i.unstable_NormalPriority,Ol=i.unstable_LowPriority,ga=i.unstable_IdlePriority,zi=i.log,qa=i.unstable_setDisableYieldValue,yn=null,ve=null;function na(t){if(typeof zi=="function"&&qa(t),ve&&typeof ve.setStrictMode=="function")try{ve.setStrictMode(yn,t)}catch{}}var de=Math.clz32?Math.clz32:oa,Ws=Math.log,Al=Math.LN2;function oa(t){return t>>>=0,t===0?32:31-(Ws(t)/Al|0)|0}var Hn=256,qn=262144,vn=4194304;function fa(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function tt(t,e,a){var n=t.pendingLanes;if(n===0)return 0;var l=0,s=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var h=n&134217727;return h!==0?(n=h&~s,n!==0?l=fa(n):(o&=h,o!==0?l=fa(o):a||(a=h&~t,a!==0&&(l=fa(a))))):(h=n&~s,h!==0?l=fa(h):o!==0?l=fa(o):a||(a=n&~t,a!==0&&(l=fa(a)))),l===0?0:e!==0&&e!==l&&(e&s)===0&&(s=l&-l,a=e&-e,s>=a||s===32&&(a&4194048)!==0)?e:l}function Bt(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function ee(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function he(){var t=vn;return vn<<=1,(vn&62914560)===0&&(vn=4194304),t}function Ba(t){for(var e=[],a=0;31>a;a++)e.push(t);return e}function Lt(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Se(t,e,a,n,l,s){var o=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var h=t.entanglements,b=t.expirationTimes,M=t.hiddenUpdates;for(a=o&~a;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Ym=/[\n"\\]/g;function Ze(t){return t.replace(Ym,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function au(t,e,a,n,l,s,o,h){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Ve(e)):t.value!==""+Ve(e)&&(t.value=""+Ve(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?nu(t,o,Ve(e)):a!=null?nu(t,o,Ve(a)):n!=null&&t.removeAttribute("value"),l==null&&s!=null&&(t.defaultChecked=!!s),l!=null&&(t.checked=l&&typeof l!="function"&&typeof l!="symbol"),h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?t.name=""+Ve(h):t.removeAttribute("name")}function Gr(t,e,a,n,l,s,o,h){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(t.type=s),e!=null||a!=null){if(!(s!=="submit"&&s!=="reset"||e!=null)){eu(t);return}a=a!=null?""+Ve(a):"",e=e!=null?""+Ve(e):a,h||e===t.value||(t.value=e),t.defaultValue=e}n=n??l,n=typeof n!="function"&&typeof n!="symbol"&&!!n,t.checked=h?t.checked:!!n,t.defaultChecked=!!n,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o),eu(t)}function nu(t,e,a){e==="number"&&Ri(t.ownerDocument)===t||t.defaultValue===""+a||(t.defaultValue=""+a)}function Xn(t,e,a,n){if(t=t.options,e){e={};for(var l=0;l"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),cu=!1;if(xa)try{var wl={};Object.defineProperty(wl,"passive",{get:function(){cu=!0}}),window.addEventListener("test",wl,wl),window.removeEventListener("test",wl,wl)}catch{cu=!1}var La=null,ru=null,Hi=null;function $r(){if(Hi)return Hi;var t,e=ru,a=e.length,n,l="value"in La?La.value:La.textContent,s=l.length;for(t=0;t=Ul),ao=" ",no=!1;function lo(t,e){switch(t){case"keyup":return yy.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function io(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Jn=!1;function py(t,e){switch(t){case"compositionend":return io(e);case"keypress":return e.which!==32?null:(no=!0,ao);case"textInput":return t=e.data,t===ao&&no?null:t;default:return null}}function gy(t,e){if(Jn)return t==="compositionend"||!mu&&lo(t,e)?(t=$r(),Hi=ru=La=null,Jn=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:a,offset:e-t};t=n}t:{for(;a;){if(a.nextSibling){a=a.nextSibling;break t}a=a.parentNode}a=void 0}a=mo(a)}}function vo(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?vo(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function po(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Ri(t.document);e instanceof t.HTMLIFrameElement;){try{var a=typeof e.contentWindow.location.href=="string"}catch{a=!1}if(a)t=e.contentWindow;else break;e=Ri(t.document)}return e}function pu(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var My=xa&&"documentMode"in document&&11>=document.documentMode,Fn=null,gu=null,Ql=null,bu=!1;function go(t,e,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;bu||Fn==null||Fn!==Ri(n)||(n=Fn,"selectionStart"in n&&pu(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ql&&Bl(Ql,n)||(Ql=n,n=Cs(gu,"onSelect"),0>=o,l-=o,da=1<<32-de(e)+l|a<ut?(vt=Z,Z=null):vt=Z.sibling;var xt=C(E,Z,N[ut],R);if(xt===null){Z===null&&(Z=vt);break}t&&Z&&xt.alternate===null&&e(E,Z),j=s(xt,j,ut),St===null?W=xt:St.sibling=xt,St=xt,Z=vt}if(ut===N.length)return a(E,Z),gt&&Ea(E,ut),W;if(Z===null){for(;utut?(vt=Z,Z=null):vt=Z.sibling;var rn=C(E,Z,xt.value,R);if(rn===null){Z===null&&(Z=vt);break}t&&Z&&rn.alternate===null&&e(E,Z),j=s(rn,j,ut),St===null?W=rn:St.sibling=rn,St=rn,Z=vt}if(xt.done)return a(E,Z),gt&&Ea(E,ut),W;if(Z===null){for(;!xt.done;ut++,xt=N.next())xt=H(E,xt.value,R),xt!==null&&(j=s(xt,j,ut),St===null?W=xt:St.sibling=xt,St=xt);return gt&&Ea(E,ut),W}for(Z=n(Z);!xt.done;ut++,xt=N.next())xt=z(Z,E,ut,xt.value,R),xt!==null&&(t&&xt.alternate!==null&&Z.delete(xt.key===null?ut:xt.key),j=s(xt,j,ut),St===null?W=xt:St.sibling=xt,St=xt);return t&&Z.forEach(function(V0){return e(E,V0)}),gt&&Ea(E,ut),W}function wt(E,j,N,R){if(typeof N=="object"&&N!==null&&N.type===B&&N.key===null&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case U:t:{for(var W=N.key;j!==null;){if(j.key===W){if(W=N.type,W===B){if(j.tag===7){a(E,j.sibling),R=l(j,N.props.children),R.return=E,E=R;break t}}else if(j.elementType===W||typeof W=="object"&&W!==null&&W.$$typeof===ft&&An(W)===j.type){a(E,j.sibling),R=l(j,N.props),Kl(R,N),R.return=E,E=R;break t}a(E,j);break}else e(E,j);j=j.sibling}N.type===B?(R=En(N.props.children,E.mode,R,N.key),R.return=E,E=R):(R=Vi(N.type,N.key,N.props,null,E.mode,R),Kl(R,N),R.return=E,E=R)}return o(E);case _:t:{for(W=N.key;j!==null;){if(j.key===W)if(j.tag===4&&j.stateNode.containerInfo===N.containerInfo&&j.stateNode.implementation===N.implementation){a(E,j.sibling),R=l(j,N.children||[]),R.return=E,E=R;break t}else{a(E,j);break}else e(E,j);j=j.sibling}R=Mu(N,E.mode,R),R.return=E,E=R}return o(E);case ft:return N=An(N),wt(E,j,N,R)}if(Nt(N))return V(E,j,N,R);if(Ct(N)){if(W=Ct(N),typeof W!="function")throw Error(r(150));return N=W.call(N),I(E,j,N,R)}if(typeof N.then=="function")return wt(E,j,Pi(N),R);if(N.$$typeof===et)return wt(E,j,Fi(E,N),R);ts(E,N)}return typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint"?(N=""+N,j!==null&&j.tag===6?(a(E,j.sibling),R=l(j,N),R.return=E,E=R):(a(E,j),R=Nu(N,E.mode,R),R.return=E,E=R),o(E)):a(E,j)}return function(E,j,N,R){try{Xl=0;var W=wt(E,j,N,R);return sl=null,W}catch(Z){if(Z===il||Z===Wi)throw Z;var St=He(29,Z,null,E.mode);return St.lanes=R,St.return=E,St}}}var _n=Yo(!0),ko=Yo(!1),Ka=!1;function Bu(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Qu(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Va(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Za(t,e,a){var n=t.updateQueue;if(n===null)return null;if(n=n.shared,(Et&2)!==0){var l=n.pending;return l===null?e.next=e:(e.next=l.next,l.next=e),n.pending=e,e=Ki(t),No(t,null,a),e}return Xi(t,n,e,a),Ki(t)}function Vl(t,e,a){if(e=e.updateQueue,e!==null&&(e=e.shared,(a&4194048)!==0)){var n=e.lanes;n&=t.pendingLanes,a|=n,e.lanes=a,xe(t,a)}}function Lu(t,e){var a=t.updateQueue,n=t.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var l=null,s=null;if(a=a.firstBaseUpdate,a!==null){do{var o={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};s===null?l=s=o:s=s.next=o,a=a.next}while(a!==null);s===null?l=s=e:s=s.next=e}else l=s=e;a={baseState:n.baseState,firstBaseUpdate:l,lastBaseUpdate:s,shared:n.shared,callbacks:n.callbacks},t.updateQueue=a;return}t=a.lastBaseUpdate,t===null?a.firstBaseUpdate=e:t.next=e,a.lastBaseUpdate=e}var Yu=!1;function Zl(){if(Yu){var t=ll;if(t!==null)throw t}}function Jl(t,e,a,n){Yu=!1;var l=t.updateQueue;Ka=!1;var s=l.firstBaseUpdate,o=l.lastBaseUpdate,h=l.shared.pending;if(h!==null){l.shared.pending=null;var b=h,M=b.next;b.next=null,o===null?s=M:o.next=M,o=b;var w=t.alternate;w!==null&&(w=w.updateQueue,h=w.lastBaseUpdate,h!==o&&(h===null?w.firstBaseUpdate=M:h.next=M,w.lastBaseUpdate=b))}if(s!==null){var H=l.baseState;o=0,w=M=b=null,h=s;do{var C=h.lane&-536870913,z=C!==h.lane;if(z?(yt&C)===C:(n&C)===C){C!==0&&C===nl&&(Yu=!0),w!==null&&(w=w.next={lane:0,tag:h.tag,payload:h.payload,callback:null,next:null});t:{var V=t,I=h;C=e;var wt=a;switch(I.tag){case 1:if(V=I.payload,typeof V=="function"){H=V.call(wt,H,C);break t}H=V;break t;case 3:V.flags=V.flags&-65537|128;case 0:if(V=I.payload,C=typeof V=="function"?V.call(wt,H,C):V,C==null)break t;H=m({},H,C);break t;case 2:Ka=!0}}C=h.callback,C!==null&&(t.flags|=64,z&&(t.flags|=8192),z=l.callbacks,z===null?l.callbacks=[C]:z.push(C))}else z={lane:C,tag:h.tag,payload:h.payload,callback:h.callback,next:null},w===null?(M=w=z,b=H):w=w.next=z,o|=C;if(h=h.next,h===null){if(h=l.shared.pending,h===null)break;z=h,h=z.next,z.next=null,l.lastBaseUpdate=z,l.shared.pending=null}}while(!0);w===null&&(b=H),l.baseState=b,l.firstBaseUpdate=M,l.lastBaseUpdate=w,s===null&&(l.shared.lanes=0),Ia|=o,t.lanes=o,t.memoizedState=H}}function Go(t,e){if(typeof t!="function")throw Error(r(191,t));t.call(e)}function Xo(t,e){var a=t.callbacks;if(a!==null)for(t.callbacks=null,t=0;ts?s:8;var o=O.T,h={};O.T=h,sc(t,!1,e,a);try{var b=l(),M=O.S;if(M!==null&&M(h,b),b!==null&&typeof b=="object"&&typeof b.then=="function"){var w=Uy(b,n);Wl(t,e,w,Ye(t))}else Wl(t,e,n,Ye(t))}catch(H){Wl(t,e,{then:function(){},status:"rejected",reason:H},Ye())}finally{L.p=s,o!==null&&h.types!==null&&(o.types=h.types),O.T=o}}function Yy(){}function lc(t,e,a,n){if(t.tag!==5)throw Error(r(476));var l=Ef(t).queue;jf(t,l,e,J,a===null?Yy:function(){return Tf(t),a(n)})}function Ef(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oa,lastRenderedState:J},next:null};var a={};return e.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oa,lastRenderedState:a},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function Tf(t){var e=Ef(t);e.next===null&&(e=t.alternate.memoizedState),Wl(t,e.next.queue,{},Ye())}function ic(){return ue(mi)}function Nf(){return Vt().memoizedState}function Mf(){return Vt().memoizedState}function ky(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var a=Ye();t=Va(a);var n=Za(e,t,a);n!==null&&(Ce(n,e,a),Vl(n,e,a)),e={cache:Ru()},t.payload=e;return}e=e.return}}function Gy(t,e,a){var n=Ye();a={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},os(t)?Af(e,a):(a=Eu(t,e,a,n),a!==null&&(Ce(a,t,n),Cf(a,e,n)))}function Of(t,e,a){var n=Ye();Wl(t,e,a,n)}function Wl(t,e,a,n){var l={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(os(t))Af(e,l);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,h=s(o,a);if(l.hasEagerState=!0,l.eagerState=h,Ue(h,o))return Xi(t,e,l,0),Rt===null&&Gi(),!1}catch{}if(a=Eu(t,e,l,n),a!==null)return Ce(a,t,n),Cf(a,e,n),!0}return!1}function sc(t,e,a,n){if(n={lane:2,revertLane:Bc(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},os(t)){if(e)throw Error(r(479))}else e=Eu(t,a,n,2),e!==null&&Ce(e,t,2)}function os(t){var e=t.alternate;return t===st||e!==null&&e===st}function Af(t,e){cl=ns=!0;var a=t.pending;a===null?e.next=e:(e.next=a.next,a.next=e),t.pending=e}function Cf(t,e,a){if((a&4194048)!==0){var n=e.lanes;n&=t.pendingLanes,a|=n,e.lanes=a,xe(t,a)}}var Il={readContext:ue,use:ss,useCallback:kt,useContext:kt,useEffect:kt,useImperativeHandle:kt,useLayoutEffect:kt,useInsertionEffect:kt,useMemo:kt,useReducer:kt,useRef:kt,useState:kt,useDebugValue:kt,useDeferredValue:kt,useTransition:kt,useSyncExternalStore:kt,useId:kt,useHostTransitionStatus:kt,useFormState:kt,useActionState:kt,useOptimistic:kt,useMemoCache:kt,useCacheRefresh:kt};Il.useEffectEvent=kt;var _f={readContext:ue,use:ss,useCallback:function(t,e){return pe().memoizedState=[t,e===void 0?null:e],t},useContext:ue,useEffect:hf,useImperativeHandle:function(t,e,a){a=a!=null?a.concat([t]):null,cs(4194308,4,pf.bind(null,e,t),a)},useLayoutEffect:function(t,e){return cs(4194308,4,t,e)},useInsertionEffect:function(t,e){cs(4,2,t,e)},useMemo:function(t,e){var a=pe();e=e===void 0?null:e;var n=t();if(zn){na(!0);try{t()}finally{na(!1)}}return a.memoizedState=[n,e],n},useReducer:function(t,e,a){var n=pe();if(a!==void 0){var l=a(e);if(zn){na(!0);try{a(e)}finally{na(!1)}}}else l=e;return n.memoizedState=n.baseState=l,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:l},n.queue=t,t=t.dispatch=Gy.bind(null,st,t),[n.memoizedState,t]},useRef:function(t){var e=pe();return t={current:t},e.memoizedState=t},useState:function(t){t=Pu(t);var e=t.queue,a=Of.bind(null,st,e);return e.dispatch=a,[t.memoizedState,a]},useDebugValue:ac,useDeferredValue:function(t,e){var a=pe();return nc(a,t,e)},useTransition:function(){var t=Pu(!1);return t=jf.bind(null,st,t.queue,!0,!1),pe().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,a){var n=st,l=pe();if(gt){if(a===void 0)throw Error(r(407));a=a()}else{if(a=e(),Rt===null)throw Error(r(349));(yt&127)!==0||$o(n,e,a)}l.memoizedState=a;var s={value:a,getSnapshot:e};return l.queue=s,hf(Io.bind(null,n,s,t),[t]),n.flags|=2048,ol(9,{destroy:void 0},Wo.bind(null,n,s,a,e),null),a},useId:function(){var t=pe(),e=Rt.identifierPrefix;if(gt){var a=ha,n=da;a=(n&~(1<<32-de(n)-1)).toString(32)+a,e="_"+e+"R_"+a,a=ls++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof n.is=="string"?o.createElement("select",{is:n.is}):o.createElement("select"),n.multiple?s.multiple=!0:n.size&&(s.size=n.size);break;default:s=typeof n.is=="string"?o.createElement(l,{is:n.is}):o.createElement(l)}}s[ie]=e,s[Ee]=n;t:for(o=e.child;o!==null;){if(o.tag===5||o.tag===6)s.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===e)break t;for(;o.sibling===null;){if(o.return===null||o.return===e)break t;o=o.return}o.sibling.return=o.return,o=o.sibling}e.stateNode=s;t:switch(re(s,l,n),l){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break t;case"img":n=!0;break t;default:n=!1}n&&Ca(e)}}return qt(e),Sc(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,a),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==n&&Ca(e);else{if(typeof n!="string"&&e.stateNode===null)throw Error(r(166));if(t=$.current,el(e)){if(t=e.stateNode,a=e.memoizedProps,n=null,l=se,l!==null)switch(l.tag){case 27:case 5:n=l.memoizedProps}t[ie]=e,t=!!(t.nodeValue===a||n!==null&&n.suppressHydrationWarning===!0||Fd(t.nodeValue,a)),t||Ga(e,!0)}else t=_s(t).createTextNode(n),t[ie]=e,e.stateNode=t}return qt(e),null;case 31:if(a=e.memoizedState,t===null||t.memoizedState!==null){if(n=el(e),a!==null){if(t===null){if(!n)throw Error(r(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(557));t[ie]=e}else Tn(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;qt(e),t=!1}else a=_u(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=a),t=!0;if(!t)return e.flags&256?(Be(e),e):(Be(e),null);if((e.flags&128)!==0)throw Error(r(558))}return qt(e),null;case 13:if(n=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(l=el(e),n!==null&&n.dehydrated!==null){if(t===null){if(!l)throw Error(r(318));if(l=e.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(r(317));l[ie]=e}else Tn(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;qt(e),l=!1}else l=_u(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=l),l=!0;if(!l)return e.flags&256?(Be(e),e):(Be(e),null)}return Be(e),(e.flags&128)!==0?(e.lanes=a,e):(a=n!==null,t=t!==null&&t.memoizedState!==null,a&&(n=e.child,l=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(l=n.alternate.memoizedState.cachePool.pool),s=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(s=n.memoizedState.cachePool.pool),s!==l&&(n.flags|=2048)),a!==t&&a&&(e.child.flags|=8192),ys(e,e.updateQueue),qt(e),null);case 4:return jt(),t===null&&kc(e.stateNode.containerInfo),qt(e),null;case 10:return Na(e.type),qt(e),null;case 19:if(D(Kt),n=e.memoizedState,n===null)return qt(e),null;if(l=(e.flags&128)!==0,s=n.rendering,s===null)if(l)ti(n,!1);else{if(Gt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(s=as(t),s!==null){for(e.flags|=128,ti(n,!1),t=s.updateQueue,e.updateQueue=t,ys(e,t),e.subtreeFlags=0,t=a,a=e.child;a!==null;)Mo(a,t),a=a.sibling;return q(Kt,Kt.current&1|2),gt&&Ea(e,n.treeForkCount),e.child}t=t.sibling}n.tail!==null&&le()>Ss&&(e.flags|=128,l=!0,ti(n,!1),e.lanes=4194304)}else{if(!l)if(t=as(s),t!==null){if(e.flags|=128,l=!0,t=t.updateQueue,e.updateQueue=t,ys(e,t),ti(n,!0),n.tail===null&&n.tailMode==="hidden"&&!s.alternate&&!gt)return qt(e),null}else 2*le()-n.renderingStartTime>Ss&&a!==536870912&&(e.flags|=128,l=!0,ti(n,!1),e.lanes=4194304);n.isBackwards?(s.sibling=e.child,e.child=s):(t=n.last,t!==null?t.sibling=s:e.child=s,n.last=s)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=le(),t.sibling=null,a=Kt.current,q(Kt,l?a&1|2:a&1),gt&&Ea(e,n.treeForkCount),t):(qt(e),null);case 22:case 23:return Be(e),Gu(),n=e.memoizedState!==null,t!==null?t.memoizedState!==null!==n&&(e.flags|=8192):n&&(e.flags|=8192),n?(a&536870912)!==0&&(e.flags&128)===0&&(qt(e),e.subtreeFlags&6&&(e.flags|=8192)):qt(e),a=e.updateQueue,a!==null&&ys(e,a.retryQueue),a=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==a&&(e.flags|=2048),t!==null&&D(On),null;case 24:return a=null,t!==null&&(a=t.memoizedState.cache),e.memoizedState.cache!==a&&(e.flags|=2048),Na(Jt),qt(e),null;case 25:return null;case 30:return null}throw Error(r(156,e.tag))}function Jy(t,e){switch(Au(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Na(Jt),jt(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return aa(e),null;case 31:if(e.memoizedState!==null){if(Be(e),e.alternate===null)throw Error(r(340));Tn()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Be(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(r(340));Tn()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return D(Kt),null;case 4:return jt(),null;case 10:return Na(e.type),null;case 22:case 23:return Be(e),Gu(),t!==null&&D(On),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return Na(Jt),null;case 25:return null;default:return null}}function td(t,e){switch(Au(e),e.tag){case 3:Na(Jt),jt();break;case 26:case 27:case 5:aa(e);break;case 4:jt();break;case 31:e.memoizedState!==null&&Be(e);break;case 13:Be(e);break;case 19:D(Kt);break;case 10:Na(e.type);break;case 22:case 23:Be(e),Gu(),t!==null&&D(On);break;case 24:Na(Jt)}}function ei(t,e){try{var a=e.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var l=n.next;a=l;do{if((a.tag&t)===t){n=void 0;var s=a.create,o=a.inst;n=s(),o.destroy=n}a=a.next}while(a!==l)}}catch(h){At(e,e.return,h)}}function $a(t,e,a){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var s=l.next;n=s;do{if((n.tag&t)===t){var o=n.inst,h=o.destroy;if(h!==void 0){o.destroy=void 0,l=e;var b=a,M=h;try{M()}catch(w){At(l,b,w)}}}n=n.next}while(n!==s)}}catch(w){At(e,e.return,w)}}function ed(t){var e=t.updateQueue;if(e!==null){var a=t.stateNode;try{Xo(e,a)}catch(n){At(t,t.return,n)}}}function ad(t,e,a){a.props=wn(t.type,t.memoizedProps),a.state=t.memoizedState;try{a.componentWillUnmount()}catch(n){At(t,e,n)}}function ai(t,e){try{var a=t.ref;if(a!==null){switch(t.tag){case 26:case 27:case 5:var n=t.stateNode;break;case 30:n=t.stateNode;break;default:n=t.stateNode}typeof a=="function"?t.refCleanup=a(n):a.current=n}}catch(l){At(t,e,l)}}function ma(t,e){var a=t.ref,n=t.refCleanup;if(a!==null)if(typeof n=="function")try{n()}catch(l){At(t,e,l)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(l){At(t,e,l)}else a.current=null}function nd(t){var e=t.type,a=t.memoizedProps,n=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":a.autoFocus&&n.focus();break t;case"img":a.src?n.src=a.src:a.srcSet&&(n.srcset=a.srcSet)}}catch(l){At(t,t.return,l)}}function xc(t,e,a){try{var n=t.stateNode;v0(n,t.type,a,e),n[Ee]=e}catch(l){At(t,t.return,l)}}function ld(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&nn(t.type)||t.tag===4}function jc(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||ld(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&nn(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Ec(t,e,a){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(t,e):(e=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,e.appendChild(t),a=a._reactRootContainer,a!=null||e.onclick!==null||(e.onclick=Sa));else if(n!==4&&(n===27&&nn(t.type)&&(a=t.stateNode,e=null),t=t.child,t!==null))for(Ec(t,e,a),t=t.sibling;t!==null;)Ec(t,e,a),t=t.sibling}function vs(t,e,a){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?a.insertBefore(t,e):a.appendChild(t);else if(n!==4&&(n===27&&nn(t.type)&&(a=t.stateNode),t=t.child,t!==null))for(vs(t,e,a),t=t.sibling;t!==null;)vs(t,e,a),t=t.sibling}function id(t){var e=t.stateNode,a=t.memoizedProps;try{for(var n=t.type,l=e.attributes;l.length;)e.removeAttributeNode(l[0]);re(e,n,a),e[ie]=t,e[Ee]=a}catch(s){At(t,t.return,s)}}var _a=!1,Wt=!1,Tc=!1,sd=typeof WeakSet=="function"?WeakSet:Set,ne=null;function Fy(t,e){if(t=t.containerInfo,Kc=qs,t=po(t),pu(t)){if("selectionStart"in t)var a={start:t.selectionStart,end:t.selectionEnd};else t:{a=(a=t.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var l=n.anchorOffset,s=n.focusNode;n=n.focusOffset;try{a.nodeType,s.nodeType}catch{a=null;break t}var o=0,h=-1,b=-1,M=0,w=0,H=t,C=null;e:for(;;){for(var z;H!==a||l!==0&&H.nodeType!==3||(h=o+l),H!==s||n!==0&&H.nodeType!==3||(b=o+n),H.nodeType===3&&(o+=H.nodeValue.length),(z=H.firstChild)!==null;)C=H,H=z;for(;;){if(H===t)break e;if(C===a&&++M===l&&(h=o),C===s&&++w===n&&(b=o),(z=H.nextSibling)!==null)break;H=C,C=H.parentNode}H=z}a=h===-1||b===-1?null:{start:h,end:b}}else a=null}a=a||{start:0,end:0}}else a=null;for(Vc={focusedElem:t,selectionRange:a},qs=!1,ne=e;ne!==null;)if(e=ne,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,ne=t;else for(;ne!==null;){switch(e=ne,s=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(a=0;a title"))),re(s,n,a),s[ie]=t,ae(s),n=s;break t;case"link":var o=dh("link","href",l).get(n+(a.href||""));if(o){for(var h=0;hwt&&(o=wt,wt=I,I=o);var E=yo(h,I),j=yo(h,wt);if(E&&j&&(z.rangeCount!==1||z.anchorNode!==E.node||z.anchorOffset!==E.offset||z.focusNode!==j.node||z.focusOffset!==j.offset)){var N=H.createRange();N.setStart(E.node,E.offset),z.removeAllRanges(),I>wt?(z.addRange(N),z.extend(j.node,j.offset)):(N.setEnd(j.node,j.offset),z.addRange(N))}}}}for(H=[],z=h;z=z.parentNode;)z.nodeType===1&&H.push({element:z,left:z.scrollLeft,top:z.scrollTop});for(typeof h.focus=="function"&&h.focus(),h=0;ha?32:a,O.T=null,a=zc,zc=null;var s=tn,o=Ua;if(It=0,yl=tn=null,Ua=0,(Et&6)!==0)throw Error(r(331));var h=Et;if(Et|=4,pd(s.current),md(s,s.current,o,a),Et=h,ci(0,!1),ve&&typeof ve.onPostCommitFiberRoot=="function")try{ve.onPostCommitFiberRoot(yn,s)}catch{}return!0}finally{L.p=l,O.T=n,Ud(t,e)}}function qd(t,e,a){e=Fe(a,e),e=oc(t.stateNode,e,2),t=Za(t,e,2),t!==null&&(Lt(t,2),ya(t))}function At(t,e,a){if(t.tag===3)qd(t,t,a);else for(;e!==null;){if(e.tag===3){qd(e,t,a);break}else if(e.tag===1){var n=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Pa===null||!Pa.has(n))){t=Fe(a,t),a=Bf(2),n=Za(e,a,2),n!==null&&(Qf(a,n,e,t),Lt(n,2),ya(n));break}}e=e.return}}function Uc(t,e,a){var n=t.pingCache;if(n===null){n=t.pingCache=new Iy;var l=new Set;n.set(e,l)}else l=n.get(e),l===void 0&&(l=new Set,n.set(e,l));l.has(a)||(Oc=!0,l.add(a),t=n0.bind(null,t,e,a),e.then(t,t))}function n0(t,e,a){var n=t.pingCache;n!==null&&n.delete(e),t.pingedLanes|=t.suspendedLanes&a,t.warmLanes&=~a,Rt===t&&(yt&a)===a&&(Gt===4||Gt===3&&(yt&62914560)===yt&&300>le()-bs?(Et&2)===0&&vl(t,0):Ac|=a,ml===yt&&(ml=0)),ya(t)}function Bd(t,e){e===0&&(e=he()),t=jn(t,e),t!==null&&(Lt(t,e),ya(t))}function l0(t){var e=t.memoizedState,a=0;e!==null&&(a=e.retryLane),Bd(t,a)}function i0(t,e){var a=0;switch(t.tag){case 31:case 13:var n=t.stateNode,l=t.memoizedState;l!==null&&(a=l.retryLane);break;case 19:n=t.stateNode;break;case 22:n=t.stateNode._retryCache;break;default:throw Error(r(314))}n!==null&&n.delete(e),Bd(t,a)}function s0(t,e){return lt(t,e)}var Ms=null,gl=null,Hc=!1,Os=!1,qc=!1,an=0;function ya(t){t!==gl&&t.next===null&&(gl===null?Ms=gl=t:gl=gl.next=t),Os=!0,Hc||(Hc=!0,c0())}function ci(t,e){if(!qc&&Os){qc=!0;do for(var a=!1,n=Ms;n!==null;){if(t!==0){var l=n.pendingLanes;if(l===0)var s=0;else{var o=n.suspendedLanes,h=n.pingedLanes;s=(1<<31-de(42|t)+1)-1,s&=l&~(o&~h),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(a=!0,kd(n,s))}else s=yt,s=tt(n,n===Rt?s:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(s&3)===0||Bt(n,s)||(a=!0,kd(n,s));n=n.next}while(a);qc=!1}}function u0(){Qd()}function Qd(){Os=Hc=!1;var t=0;an!==0&&g0()&&(t=an);for(var e=le(),a=null,n=Ms;n!==null;){var l=n.next,s=Ld(n,e);s===0?(n.next=null,a===null?Ms=l:a.next=l,l===null&&(gl=a)):(a=n,(t!==0||(s&3)!==0)&&(Os=!0)),n=l}It!==0&&It!==5||ci(t),an!==0&&(an=0)}function Ld(t,e){for(var a=t.suspendedLanes,n=t.pingedLanes,l=t.expirationTimes,s=t.pendingLanes&-62914561;0h)break;var w=b.transferSize,H=b.initiatorType;w&&$d(H)&&(b=b.responseEnd,o+=w*(b"u"?null:document;function ch(t,e,a){var n=bl;if(n&&typeof e=="string"&&e){var l=Ze(e);l='link[rel="'+t+'"][href="'+l+'"]',typeof a=="string"&&(l+='[crossorigin="'+a+'"]'),uh.has(l)||(uh.add(l),t={rel:t,crossOrigin:a,href:e},n.querySelector(l)===null&&(e=n.createElement("link"),re(e,"link",t),ae(e),n.head.appendChild(e)))}}function O0(t){Ha.D(t),ch("dns-prefetch",t,null)}function A0(t,e){Ha.C(t,e),ch("preconnect",t,e)}function C0(t,e,a){Ha.L(t,e,a);var n=bl;if(n&&t&&e){var l='link[rel="preload"][as="'+Ze(e)+'"]';e==="image"&&a&&a.imageSrcSet?(l+='[imagesrcset="'+Ze(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(l+='[imagesizes="'+Ze(a.imageSizes)+'"]')):l+='[href="'+Ze(t)+'"]';var s=l;switch(e){case"style":s=Sl(t);break;case"script":s=xl(t)}ea.has(s)||(t=m({rel:"preload",href:e==="image"&&a&&a.imageSrcSet?void 0:t,as:e},a),ea.set(s,t),n.querySelector(l)!==null||e==="style"&&n.querySelector(di(s))||e==="script"&&n.querySelector(hi(s))||(e=n.createElement("link"),re(e,"link",t),ae(e),n.head.appendChild(e)))}}function _0(t,e){Ha.m(t,e);var a=bl;if(a&&t){var n=e&&typeof e.as=="string"?e.as:"script",l='link[rel="modulepreload"][as="'+Ze(n)+'"][href="'+Ze(t)+'"]',s=l;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=xl(t)}if(!ea.has(s)&&(t=m({rel:"modulepreload",href:t},e),ea.set(s,t),a.querySelector(l)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(hi(s)))return}n=a.createElement("link"),re(n,"link",t),ae(n),a.head.appendChild(n)}}}function z0(t,e,a){Ha.S(t,e,a);var n=bl;if(n&&t){var l=kn(n).hoistableStyles,s=Sl(t);e=e||"default";var o=l.get(s);if(!o){var h={loading:0,preload:null};if(o=n.querySelector(di(s)))h.loading=5;else{t=m({rel:"stylesheet",href:t,"data-precedence":e},a),(a=ea.get(s))&&Pc(t,a);var b=o=n.createElement("link");ae(b),re(b,"link",t),b._p=new Promise(function(M,w){b.onload=M,b.onerror=w}),b.addEventListener("load",function(){h.loading|=1}),b.addEventListener("error",function(){h.loading|=2}),h.loading|=4,ws(o,e,n)}o={type:"stylesheet",instance:o,count:1,state:h},l.set(s,o)}}}function w0(t,e){Ha.X(t,e);var a=bl;if(a&&t){var n=kn(a).hoistableScripts,l=xl(t),s=n.get(l);s||(s=a.querySelector(hi(l)),s||(t=m({src:t,async:!0},e),(e=ea.get(l))&&tr(t,e),s=a.createElement("script"),ae(s),re(s,"link",t),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},n.set(l,s))}}function D0(t,e){Ha.M(t,e);var a=bl;if(a&&t){var n=kn(a).hoistableScripts,l=xl(t),s=n.get(l);s||(s=a.querySelector(hi(l)),s||(t=m({src:t,async:!0,type:"module"},e),(e=ea.get(l))&&tr(t,e),s=a.createElement("script"),ae(s),re(s,"link",t),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},n.set(l,s))}}function rh(t,e,a,n){var l=(l=$.current)?zs(l):null;if(!l)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(e=Sl(a.href),a=kn(l).hoistableStyles,n=a.get(e),n||(n={type:"style",instance:null,count:0,state:null},a.set(e,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){t=Sl(a.href);var s=kn(l).hoistableStyles,o=s.get(t);if(o||(l=l.ownerDocument||l,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(t,o),(s=l.querySelector(di(t)))&&!s._p&&(o.instance=s,o.state.loading=5),ea.has(t)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},ea.set(t,a),s||R0(l,t,a,o.state))),e&&n===null)throw Error(r(528,""));return o}if(e&&n!==null)throw Error(r(529,""));return null;case"script":return e=a.async,a=a.src,typeof a=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=xl(a),a=kn(l).hoistableScripts,n=a.get(e),n||(n={type:"script",instance:null,count:0,state:null},a.set(e,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function Sl(t){return'href="'+Ze(t)+'"'}function di(t){return'link[rel="stylesheet"]['+t+"]"}function oh(t){return m({},t,{"data-precedence":t.precedence,precedence:null})}function R0(t,e,a,n){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?n.loading=1:(e=t.createElement("link"),n.preload=e,e.addEventListener("load",function(){return n.loading|=1}),e.addEventListener("error",function(){return n.loading|=2}),re(e,"link",a),ae(e),t.head.appendChild(e))}function xl(t){return'[src="'+Ze(t)+'"]'}function hi(t){return"script[async]"+t}function fh(t,e,a){if(e.count++,e.instance===null)switch(e.type){case"style":var n=t.querySelector('style[data-href~="'+Ze(a.href)+'"]');if(n)return e.instance=n,ae(n),n;var l=m({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return n=(t.ownerDocument||t).createElement("style"),ae(n),re(n,"style",l),ws(n,a.precedence,t),e.instance=n;case"stylesheet":l=Sl(a.href);var s=t.querySelector(di(l));if(s)return e.state.loading|=4,e.instance=s,ae(s),s;n=oh(a),(l=ea.get(l))&&Pc(n,l),s=(t.ownerDocument||t).createElement("link"),ae(s);var o=s;return o._p=new Promise(function(h,b){o.onload=h,o.onerror=b}),re(s,"link",n),e.state.loading|=4,ws(s,a.precedence,t),e.instance=s;case"script":return s=xl(a.src),(l=t.querySelector(hi(s)))?(e.instance=l,ae(l),l):(n=a,(l=ea.get(s))&&(n=m({},a),tr(n,l)),t=t.ownerDocument||t,l=t.createElement("script"),ae(l),re(l,"link",n),t.head.appendChild(l),e.instance=l);case"void":return null;default:throw Error(r(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(n=e.instance,e.state.loading|=4,ws(n,a.precedence,t));return e.instance}function ws(t,e,a){for(var n=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=n.length?n[n.length-1]:null,s=l,o=0;o title"):null)}function U0(t,e,a){if(a===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function mh(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function H0(t,e,a,n){if(a.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var l=Sl(n.href),s=e.querySelector(di(l));if(s){e=s._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Rs.bind(t),e.then(t,t)),a.state.loading|=4,a.instance=s,ae(s);return}s=e.ownerDocument||e,n=oh(n),(l=ea.get(l))&&Pc(n,l),s=s.createElement("link"),ae(s);var o=s;o._p=new Promise(function(h,b){o.onload=h,o.onerror=b}),re(s,"link",n),a.instance=s}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(a,e),(e=a.state.preload)&&(a.state.loading&3)===0&&(t.count++,a=Rs.bind(t),e.addEventListener("load",a),e.addEventListener("error",a))}}var er=0;function q0(t,e){return t.stylesheets&&t.count===0&&Hs(t,t.stylesheets),0er?50:800)+e);return t.unsuspend=a,function(){t.unsuspend=null,clearTimeout(n),clearTimeout(l)}}:null}function Rs(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Hs(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Us=null;function Hs(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Us=new Map,e.forEach(B0,t),Us=null,Rs.call(t))}function B0(t,e){if(!(e.state.loading&4)){var a=Us.get(t);if(a)var n=a.get(null);else{a=new Map,Us.set(t,a);for(var l=t.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(u){console.error(u)}}return i(),or.exports=P0(),or.exports}var ev=tv(),Ai=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(i){return this.listeners.add(i),this.onSubscribe(),()=>{this.listeners.delete(i),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},av=class extends Ai{#t;#e;#a;constructor(){super(),this.#a=i=>{if(typeof window<"u"&&window.addEventListener){const u=()=>i();return window.addEventListener("visibilitychange",u,!1),()=>{window.removeEventListener("visibilitychange",u)}}}}onSubscribe(){this.#e||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(i){this.#a=i,this.#e?.(),this.#e=i(u=>{typeof u=="boolean"?this.setFocused(u):this.onFocus()})}setFocused(i){this.#t!==i&&(this.#t=i,this.onFocus())}onFocus(){const i=this.isFocused();this.listeners.forEach(u=>{u(i)})}isFocused(){return typeof this.#t=="boolean"?this.#t:globalThis.document?.visibilityState!=="hidden"}},Ar=new av,nv={setTimeout:(i,u)=>setTimeout(i,u),clearTimeout:i=>clearTimeout(i),setInterval:(i,u)=>setInterval(i,u),clearInterval:i=>clearInterval(i)},lv=class{#t=nv;#e=!1;setTimeoutProvider(i){this.#t=i}setTimeout(i,u){return this.#t.setTimeout(i,u)}clearTimeout(i){this.#t.clearTimeout(i)}setInterval(i,u){return this.#t.setInterval(i,u)}clearInterval(i){this.#t.clearInterval(i)}},Un=new lv;function iv(i){setTimeout(i,0)}var sv=typeof window>"u"||"Deno"in globalThis;function ze(){}function uv(i,u){return typeof i=="function"?i(u):i}function pr(i){return typeof i=="number"&&i>=0&&i!==1/0}function cm(i,u){return Math.max(i+(u||0)-Date.now(),0)}function fn(i,u){return typeof i=="function"?i(u):i}function ke(i,u){return typeof i=="function"?i(u):i}function Bh(i,u){const{type:c="all",exact:r,fetchStatus:d,predicate:y,queryKey:g,stale:A}=i;if(g){if(r){if(u.queryHash!==Cr(g,u.options))return!1}else if(!ji(u.queryKey,g))return!1}if(c!=="all"){const p=u.isActive();if(c==="active"&&!p||c==="inactive"&&p)return!1}return!(typeof A=="boolean"&&u.isStale()!==A||d&&d!==u.state.fetchStatus||y&&!y(u))}function Qh(i,u){const{exact:c,status:r,predicate:d,mutationKey:y}=i;if(y){if(!u.options.mutationKey)return!1;if(c){if(xi(u.options.mutationKey)!==xi(y))return!1}else if(!ji(u.options.mutationKey,y))return!1}return!(r&&u.state.status!==r||d&&!d(u))}function Cr(i,u){return(u?.queryKeyHashFn||xi)(i)}function xi(i){return JSON.stringify(i,(u,c)=>br(c)?Object.keys(c).sort().reduce((r,d)=>(r[d]=c[d],r),{}):c)}function ji(i,u){return i===u?!0:typeof i!=typeof u?!1:i&&u&&typeof i=="object"&&typeof u=="object"?Object.keys(u).every(c=>ji(i[c],u[c])):!1}var cv=Object.prototype.hasOwnProperty;function rm(i,u,c=0){if(i===u)return i;if(c>500)return u;const r=Lh(i)&&Lh(u);if(!r&&!(br(i)&&br(u)))return u;const y=(r?i:Object.keys(i)).length,g=r?u:Object.keys(u),A=g.length,p=r?new Array(A):{};let v=0;for(let T=0;T{Un.setTimeout(u,i)})}function Sr(i,u,c){return typeof c.structuralSharing=="function"?c.structuralSharing(i,u):c.structuralSharing!==!1?rm(i,u):u}function ov(i,u,c=0){const r=[...i,u];return c&&r.length>c?r.slice(1):r}function fv(i,u,c=0){const r=[u,...i];return c&&r.length>c?r.slice(0,-1):r}var _r=Symbol();function om(i,u){return!i.queryFn&&u?.initialPromise?()=>u.initialPromise:!i.queryFn||i.queryFn===_r?()=>Promise.reject(new Error(`Missing queryFn: '${i.queryHash}'`)):i.queryFn}function fm(i,u){return typeof i=="function"?i(...u):!!i}function dv(i,u,c){let r=!1,d;return Object.defineProperty(i,"signal",{enumerable:!0,get:()=>(d??=u(),r||(r=!0,d.aborted?c():d.addEventListener("abort",c,{once:!0})),d)}),i}var Ei=(()=>{let i=()=>sv;return{isServer(){return i()},setIsServer(u){i=u}}})();function xr(){let i,u;const c=new Promise((d,y)=>{i=d,u=y});c.status="pending",c.catch(()=>{});function r(d){Object.assign(c,d),delete c.resolve,delete c.reject}return c.resolve=d=>{r({status:"fulfilled",value:d}),i(d)},c.reject=d=>{r({status:"rejected",reason:d}),u(d)},c}var hv=iv;function mv(){let i=[],u=0,c=A=>{A()},r=A=>{A()},d=hv;const y=A=>{u?i.push(A):d(()=>{c(A)})},g=()=>{const A=i;i=[],A.length&&d(()=>{r(()=>{A.forEach(p=>{c(p)})})})};return{batch:A=>{let p;u++;try{p=A()}finally{u--,u||g()}return p},batchCalls:A=>(...p)=>{y(()=>{A(...p)})},schedule:y,setNotifyFunction:A=>{c=A},setBatchNotifyFunction:A=>{r=A},setScheduler:A=>{d=A}}}var oe=mv(),yv=class extends Ai{#t=!0;#e;#a;constructor(){super(),this.#a=i=>{if(typeof window<"u"&&window.addEventListener){const u=()=>i(!0),c=()=>i(!1);return window.addEventListener("online",u,!1),window.addEventListener("offline",c,!1),()=>{window.removeEventListener("online",u),window.removeEventListener("offline",c)}}}}onSubscribe(){this.#e||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(i){this.#a=i,this.#e?.(),this.#e=i(this.setOnline.bind(this))}setOnline(i){this.#t!==i&&(this.#t=i,this.listeners.forEach(c=>{c(i)}))}isOnline(){return this.#t}},Fs=new yv;function vv(i){return Math.min(1e3*2**i,3e4)}function dm(i){return(i??"online")==="online"?Fs.isOnline():!0}var jr=class extends Error{constructor(i){super("CancelledError"),this.revert=i?.revert,this.silent=i?.silent}};function hm(i){let u=!1,c=0,r;const d=xr(),y=()=>d.status!=="pending",g=B=>{if(!y()){const X=new jr(B);S(X),i.onCancel?.(X)}},A=()=>{u=!0},p=()=>{u=!1},v=()=>Ar.isFocused()&&(i.networkMode==="always"||Fs.isOnline())&&i.canRun(),T=()=>dm(i.networkMode)&&i.canRun(),m=B=>{y()||(r?.(),d.resolve(B))},S=B=>{y()||(r?.(),d.reject(B))},U=()=>new Promise(B=>{r=X=>{(y()||v())&&B(X)},i.onPause?.()}).then(()=>{r=void 0,y()||i.onContinue?.()}),_=()=>{if(y())return;let B;const X=c===0?i.initialPromise:void 0;try{B=X??i.fn()}catch(G){B=Promise.reject(G)}Promise.resolve(B).then(m).catch(G=>{if(y())return;const mt=i.retry??(Ei.isServer()?0:3),et=i.retryDelay??vv,Mt=typeof et=="function"?et(c,G):et,Ut=mt===!0||typeof mt=="number"&&cv()?void 0:U()).then(()=>{u?S(G):_()})})};return{promise:d,status:()=>d.status,cancel:g,continue:()=>(r?.(),d),cancelRetry:A,continueRetry:p,canStart:T,start:()=>(T()?_():U().then(_),d)}}var mm=class{#t;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),pr(this.gcTime)&&(this.#t=Un.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(i){this.gcTime=Math.max(this.gcTime||0,i??(Ei.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#t!==void 0&&(Un.clearTimeout(this.#t),this.#t=void 0)}};function pv(i){return{onFetch:(u,c)=>{const r=u.options,d=u.fetchOptions?.meta?.fetchMore?.direction,y=u.state.data?.pages||[],g=u.state.data?.pageParams||[];let A={pages:[],pageParams:[]},p=0;const v=async()=>{let T=!1;const m=_=>{dv(_,()=>u.signal,()=>T=!0)},S=om(u.options,u.fetchOptions),U=async(_,B,X)=>{if(T)return Promise.reject(u.signal.reason);if(B==null&&_.pages.length)return Promise.resolve(_);const mt=(()=>{const P={client:u.client,queryKey:u.queryKey,pageParam:B,direction:X?"backward":"forward",meta:u.options.meta};return m(P),P})(),et=await S(mt),{maxPages:Mt}=u.options,Ut=X?fv:ov;return{pages:Ut(_.pages,et,Mt),pageParams:Ut(_.pageParams,B,Mt)}};if(d&&y.length){const _=d==="backward",B=_?gv:kh,X={pages:y,pageParams:g},G=B(r,X);A=await U(X,G,_)}else{const _=i??y.length;do{const B=p===0?g[0]??r.initialPageParam:kh(r,A);if(p>0&&B==null)break;A=await U(A,B),p++}while(p<_)}return A};u.options.persister?u.fetchFn=()=>u.options.persister?.(v,{client:u.client,queryKey:u.queryKey,meta:u.options.meta,signal:u.signal},c):u.fetchFn=v}}}function kh(i,{pages:u,pageParams:c}){const r=u.length-1;return u.length>0?i.getNextPageParam(u[r],u,c[r],c):void 0}function gv(i,{pages:u,pageParams:c}){return u.length>0?i.getPreviousPageParam?.(u[0],u,c[0],c):void 0}var bv=class extends mm{#t;#e;#a;#n;#i;#l;#u;#s;constructor(i){super(),this.#s=!1,this.#u=i.defaultOptions,this.setOptions(i.options),this.observers=[],this.#i=i.client,this.#n=this.#i.getQueryCache(),this.queryKey=i.queryKey,this.queryHash=i.queryHash,this.#e=Xh(this.options),this.state=i.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#t}get promise(){return this.#l?.promise}setOptions(i){if(this.options={...this.#u,...i},i?._type&&(this.#t=i._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const u=Xh(this.options);u.data!==void 0&&(this.setState(Gh(u.data,u.dataUpdatedAt)),this.#e=u)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#n.remove(this)}setData(i,u){const c=Sr(this.state.data,i,this.options);return this.#c({data:c,type:"success",dataUpdatedAt:u?.updatedAt,manual:u?.manual}),c}setState(i){this.#c({type:"setState",state:i})}cancel(i){const u=this.#l?.promise;return this.#l?.cancel(i),u?u.then(ze).catch(ze):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(i=>ke(i.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===_r||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(i=>fn(i.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(i=>i.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(i=0){return this.state.data===void 0?!0:i==="static"?!1:this.state.isInvalidated?!0:!cm(this.state.dataUpdatedAt,i)}onFocus(){this.observers.find(u=>u.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#l?.continue()}onOnline(){this.observers.find(u=>u.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#l?.continue()}addObserver(i){this.observers.includes(i)||(this.observers.push(i),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",query:this,observer:i}))}removeObserver(i){this.observers.includes(i)&&(this.observers=this.observers.filter(u=>u!==i),this.observers.length||(this.#l&&(this.#s||this.#o()?this.#l.cancel({revert:!0}):this.#l.cancelRetry()),this.scheduleGc()),this.#n.notify({type:"observerRemoved",query:this,observer:i}))}getObserversCount(){return this.observers.length}#o(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#c({type:"invalidate"})}async fetch(i,u){if(this.state.fetchStatus!=="idle"&&this.#l?.status()!=="rejected"){if(this.state.data!==void 0&&u?.cancelRefetch)this.cancel({silent:!0});else if(this.#l)return this.#l.continueRetry(),this.#l.promise}if(i&&this.setOptions(i),!this.options.queryFn){const p=this.observers.find(v=>v.options.queryFn);p&&this.setOptions(p.options)}const c=new AbortController,r=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(this.#s=!0,c.signal)})},d=()=>{const p=om(this.options,u),T=(()=>{const m={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(m),m})();return this.#s=!1,this.options.persister?this.options.persister(p,T,this):p(T)},g=(()=>{const p={fetchOptions:u,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:d};return r(p),p})();(this.#t==="infinite"?pv(this.options.pages):this.options.behavior)?.onFetch(g,this),this.#a=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==g.fetchOptions?.meta)&&this.#c({type:"fetch",meta:g.fetchOptions?.meta}),this.#l=hm({initialPromise:u?.initialPromise,fn:g.fetchFn,onCancel:p=>{p instanceof jr&&p.revert&&this.setState({...this.#a,fetchStatus:"idle"}),c.abort()},onFail:(p,v)=>{this.#c({type:"failed",failureCount:p,error:v})},onPause:()=>{this.#c({type:"pause"})},onContinue:()=>{this.#c({type:"continue"})},retry:g.options.retry,retryDelay:g.options.retryDelay,networkMode:g.options.networkMode,canRun:()=>!0});try{const p=await this.#l.start();if(p===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(p),this.#n.config.onSuccess?.(p,this),this.#n.config.onSettled?.(p,this.state.error,this),p}catch(p){if(p instanceof jr){if(p.silent)return this.#l.promise;if(p.revert){if(this.state.data===void 0)throw p;return this.state.data}}throw this.#c({type:"error",error:p}),this.#n.config.onError?.(p,this),this.#n.config.onSettled?.(this.state.data,p,this),p}finally{this.scheduleGc()}}#c(i){const u=c=>{switch(i.type){case"failed":return{...c,fetchFailureCount:i.failureCount,fetchFailureReason:i.error};case"pause":return{...c,fetchStatus:"paused"};case"continue":return{...c,fetchStatus:"fetching"};case"fetch":return{...c,...ym(c.data,this.options),fetchMeta:i.meta??null};case"success":const r={...c,...Gh(i.data,i.dataUpdatedAt),dataUpdateCount:c.dataUpdateCount+1,...!i.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#a=i.manual?r:void 0,r;case"error":const d=i.error;return{...c,error:d,errorUpdateCount:c.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:c.fetchFailureCount+1,fetchFailureReason:d,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...c,isInvalidated:!0};case"setState":return{...c,...i.state}}};this.state=u(this.state),oe.batch(()=>{this.observers.forEach(c=>{c.onQueryUpdate()}),this.#n.notify({query:this,type:"updated",action:i})})}};function ym(i,u){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:dm(u.networkMode)?"fetching":"paused",...i===void 0&&{error:null,status:"pending"}}}function Gh(i,u){return{data:i,dataUpdatedAt:u??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Xh(i){const u=typeof i.initialData=="function"?i.initialData():i.initialData,c=u!==void 0,r=c?typeof i.initialDataUpdatedAt=="function"?i.initialDataUpdatedAt():i.initialDataUpdatedAt:0;return{data:u,dataUpdateCount:0,dataUpdatedAt:c?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:c?"success":"pending",fetchStatus:"idle"}}var Sv=class extends Ai{constructor(i,u){super(),this.options=u,this.#t=i,this.#s=null,this.#u=xr(),this.bindMethods(),this.setOptions(u)}#t;#e=void 0;#a=void 0;#n=void 0;#i;#l;#u;#s;#o;#c;#m;#f;#d;#r;#y=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#e.addObserver(this),Kh(this.#e,this.options)?this.#h():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Er(this.#e,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Er(this.#e,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#S(),this.#x(),this.#e.removeObserver(this)}setOptions(i){const u=this.options,c=this.#e;if(this.options=this.#t.defaultQueryOptions(i),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof ke(this.options.enabled,this.#e)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#j(),this.#e.setOptions(this.options),u._defaulted&&!gr(this.options,u)&&this.#t.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#e,observer:this});const r=this.hasListeners();r&&Vh(this.#e,c,this.options,u)&&this.#h(),this.updateResult(),r&&(this.#e!==c||ke(this.options.enabled,this.#e)!==ke(u.enabled,this.#e)||fn(this.options.staleTime,this.#e)!==fn(u.staleTime,this.#e))&&this.#v();const d=this.#p();r&&(this.#e!==c||ke(this.options.enabled,this.#e)!==ke(u.enabled,this.#e)||d!==this.#r)&&this.#g(d)}getOptimisticResult(i){const u=this.#t.getQueryCache().build(this.#t,i),c=this.createResult(u,i);return jv(this,c)&&(this.#n=c,this.#l=this.options,this.#i=this.#e.state),c}getCurrentResult(){return this.#n}trackResult(i,u){return new Proxy(i,{get:(c,r)=>(this.trackProp(r),u?.(r),r==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#u.status==="pending"&&this.#u.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(c,r))})}trackProp(i){this.#y.add(i)}getCurrentQuery(){return this.#e}refetch({...i}={}){return this.fetch({...i})}fetchOptimistic(i){const u=this.#t.defaultQueryOptions(i),c=this.#t.getQueryCache().build(this.#t,u);return c.fetch().then(()=>this.createResult(c,u))}fetch(i){return this.#h({...i,cancelRefetch:i.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#n))}#h(i){this.#j();let u=this.#e.fetch(this.options,i);return i?.throwOnError||(u=u.catch(ze)),u}#v(){this.#S();const i=fn(this.options.staleTime,this.#e);if(Ei.isServer()||this.#n.isStale||!pr(i))return;const c=cm(this.#n.dataUpdatedAt,i)+1;this.#f=Un.setTimeout(()=>{this.#n.isStale||this.updateResult()},c)}#p(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#e):this.options.refetchInterval)??!1}#g(i){this.#x(),this.#r=i,!(Ei.isServer()||ke(this.options.enabled,this.#e)===!1||!pr(this.#r)||this.#r===0)&&(this.#d=Un.setInterval(()=>{(this.options.refetchIntervalInBackground||Ar.isFocused())&&this.#h()},this.#r))}#b(){this.#v(),this.#g(this.#p())}#S(){this.#f!==void 0&&(Un.clearTimeout(this.#f),this.#f=void 0)}#x(){this.#d!==void 0&&(Un.clearInterval(this.#d),this.#d=void 0)}createResult(i,u){const c=this.#e,r=this.options,d=this.#n,y=this.#i,g=this.#l,p=i!==c?i.state:this.#a,{state:v}=i;let T={...v},m=!1,S;if(u._optimisticResults){const ft=this.hasListeners(),Yt=!ft&&Kh(i,u),Xt=ft&&Vh(i,c,u,r);(Yt||Xt)&&(T={...T,...ym(v.data,i.options)}),u._optimisticResults==="isRestoring"&&(T.fetchStatus="idle")}let{error:U,errorUpdatedAt:_,status:B}=T;S=T.data;let X=!1;if(u.placeholderData!==void 0&&S===void 0&&B==="pending"){let ft;d?.isPlaceholderData&&u.placeholderData===g?.placeholderData?(ft=d.data,X=!0):ft=typeof u.placeholderData=="function"?u.placeholderData(this.#m?.state.data,this.#m):u.placeholderData,ft!==void 0&&(B="success",S=Sr(d?.data,ft,u),m=!0)}if(u.select&&S!==void 0&&!X)if(d&&S===y?.data&&u.select===this.#o)S=this.#c;else try{this.#o=u.select,S=u.select(S),S=Sr(d?.data,S,u),this.#c=S,this.#s=null}catch(ft){this.#s=ft}this.#s&&(U=this.#s,S=this.#c,_=Date.now(),B="error");const G=T.fetchStatus==="fetching",mt=B==="pending",et=B==="error",Mt=mt&&G,Ut=S!==void 0,F={status:B,fetchStatus:T.fetchStatus,isPending:mt,isSuccess:B==="success",isError:et,isInitialLoading:Mt,isLoading:Mt,data:S,dataUpdatedAt:T.dataUpdatedAt,error:U,errorUpdatedAt:_,failureCount:T.fetchFailureCount,failureReason:T.fetchFailureReason,errorUpdateCount:T.errorUpdateCount,isFetched:i.isFetched(),isFetchedAfterMount:T.dataUpdateCount>p.dataUpdateCount||T.errorUpdateCount>p.errorUpdateCount,isFetching:G,isRefetching:G&&!mt,isLoadingError:et&&!Ut,isPaused:T.fetchStatus==="paused",isPlaceholderData:m,isRefetchError:et&&Ut,isStale:zr(i,u),refetch:this.refetch,promise:this.#u,isEnabled:ke(u.enabled,i)!==!1};if(this.options.experimental_prefetchInRender){const ft=F.data!==void 0,Yt=F.status==="error"&&!ft,Xt=Dt=>{Yt?Dt.reject(F.error):ft&&Dt.resolve(F.data)},Zt=()=>{const Dt=this.#u=F.promise=xr();Xt(Dt)},Ct=this.#u;switch(Ct.status){case"pending":i.queryHash===c.queryHash&&Xt(Ct);break;case"fulfilled":(Yt||F.data!==Ct.value)&&Zt();break;case"rejected":(!Yt||F.error!==Ct.reason)&&Zt();break}}return F}updateResult(){const i=this.#n,u=this.createResult(this.#e,this.options);if(this.#i=this.#e.state,this.#l=this.options,this.#i.data!==void 0&&(this.#m=this.#e),gr(u,i))return;this.#n=u;const c=()=>{if(!i)return!0;const{notifyOnChangeProps:r}=this.options,d=typeof r=="function"?r():r;if(d==="all"||!d&&!this.#y.size)return!0;const y=new Set(d??this.#y);return this.options.throwOnError&&y.add("error"),Object.keys(this.#n).some(g=>{const A=g;return this.#n[A]!==i[A]&&y.has(A)})};this.#E({listeners:c()})}#j(){const i=this.#t.getQueryCache().build(this.#t,this.options);if(i===this.#e)return;const u=this.#e;this.#e=i,this.#a=i.state,this.hasListeners()&&(u?.removeObserver(this),i.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#E(i){oe.batch(()=>{i.listeners&&this.listeners.forEach(u=>{u(this.#n)}),this.#t.getQueryCache().notify({query:this.#e,type:"observerResultsUpdated"})})}};function xv(i,u){return ke(u.enabled,i)!==!1&&i.state.data===void 0&&!(i.state.status==="error"&&ke(u.retryOnMount,i)===!1)}function Kh(i,u){return xv(i,u)||i.state.data!==void 0&&Er(i,u,u.refetchOnMount)}function Er(i,u,c){if(ke(u.enabled,i)!==!1&&fn(u.staleTime,i)!=="static"){const r=typeof c=="function"?c(i):c;return r==="always"||r!==!1&&zr(i,u)}return!1}function Vh(i,u,c,r){return(i!==u||ke(r.enabled,i)===!1)&&(!c.suspense||i.state.status!=="error")&&zr(i,c)}function zr(i,u){return ke(u.enabled,i)!==!1&&i.isStaleByTime(fn(u.staleTime,i))}function jv(i,u){return!gr(i.getCurrentResult(),u)}var Ev=class extends mm{#t;#e;#a;#n;constructor(i){super(),this.#t=i.client,this.mutationId=i.mutationId,this.#a=i.mutationCache,this.#e=[],this.state=i.state||Tv(),this.setOptions(i.options),this.scheduleGc()}setOptions(i){this.options=i,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(i){this.#e.includes(i)||(this.#e.push(i),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:i}))}removeObserver(i){this.#e=this.#e.filter(u=>u!==i),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:i})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#a.remove(this))}continue(){return this.#n?.continue()??this.execute(this.state.variables)}async execute(i){const u=()=>{this.#i({type:"continue"})},c={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#n=hm({fn:()=>this.options.mutationFn?this.options.mutationFn(i,c):Promise.reject(new Error("No mutationFn found")),onFail:(y,g)=>{this.#i({type:"failed",failureCount:y,error:g})},onPause:()=>{this.#i({type:"pause"})},onContinue:u,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)});const r=this.state.status==="pending",d=!this.#n.canStart();try{if(r)u();else{this.#i({type:"pending",variables:i,isPaused:d}),this.#a.config.onMutate&&await this.#a.config.onMutate(i,this,c);const g=await this.options.onMutate?.(i,c);g!==this.state.context&&this.#i({type:"pending",context:g,variables:i,isPaused:d})}const y=await this.#n.start();return await this.#a.config.onSuccess?.(y,i,this.state.context,this,c),await this.options.onSuccess?.(y,i,this.state.context,c),await this.#a.config.onSettled?.(y,null,this.state.variables,this.state.context,this,c),await this.options.onSettled?.(y,null,i,this.state.context,c),this.#i({type:"success",data:y}),y}catch(y){try{await this.#a.config.onError?.(y,i,this.state.context,this,c)}catch(g){Promise.reject(g)}try{await this.options.onError?.(y,i,this.state.context,c)}catch(g){Promise.reject(g)}try{await this.#a.config.onSettled?.(void 0,y,this.state.variables,this.state.context,this,c)}catch(g){Promise.reject(g)}try{await this.options.onSettled?.(void 0,y,i,this.state.context,c)}catch(g){Promise.reject(g)}throw this.#i({type:"error",error:y}),y}finally{this.#a.runNext(this)}}#i(i){const u=c=>{switch(i.type){case"failed":return{...c,failureCount:i.failureCount,failureReason:i.error};case"pause":return{...c,isPaused:!0};case"continue":return{...c,isPaused:!1};case"pending":return{...c,context:i.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:i.isPaused,status:"pending",variables:i.variables,submittedAt:Date.now()};case"success":return{...c,data:i.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...c,data:void 0,error:i.error,failureCount:c.failureCount+1,failureReason:i.error,isPaused:!1,status:"error"}}};this.state=u(this.state),oe.batch(()=>{this.#e.forEach(c=>{c.onMutationUpdate(i)}),this.#a.notify({mutation:this,type:"updated",action:i})})}};function Tv(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Nv=class extends Ai{constructor(i={}){super(),this.config=i,this.#t=new Set,this.#e=new Map,this.#a=0}#t;#e;#a;build(i,u,c){const r=new Ev({client:i,mutationCache:this,mutationId:++this.#a,options:i.defaultMutationOptions(u),state:c});return this.add(r),r}add(i){this.#t.add(i);const u=Xs(i);if(typeof u=="string"){const c=this.#e.get(u);c?c.push(i):this.#e.set(u,[i])}this.notify({type:"added",mutation:i})}remove(i){if(this.#t.delete(i)){const u=Xs(i);if(typeof u=="string"){const c=this.#e.get(u);if(c)if(c.length>1){const r=c.indexOf(i);r!==-1&&c.splice(r,1)}else c[0]===i&&this.#e.delete(u)}}this.notify({type:"removed",mutation:i})}canRun(i){const u=Xs(i);if(typeof u=="string"){const r=this.#e.get(u)?.find(d=>d.state.status==="pending");return!r||r===i}else return!0}runNext(i){const u=Xs(i);return typeof u=="string"?this.#e.get(u)?.find(r=>r!==i&&r.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){oe.batch(()=>{this.#t.forEach(i=>{this.notify({type:"removed",mutation:i})}),this.#t.clear(),this.#e.clear()})}getAll(){return Array.from(this.#t)}find(i){const u={exact:!0,...i};return this.getAll().find(c=>Qh(u,c))}findAll(i={}){return this.getAll().filter(u=>Qh(i,u))}notify(i){oe.batch(()=>{this.listeners.forEach(u=>{u(i)})})}resumePausedMutations(){const i=this.getAll().filter(u=>u.state.isPaused);return oe.batch(()=>Promise.all(i.map(u=>u.continue().catch(ze))))}};function Xs(i){return i.options.scope?.id}var Mv=class extends Ai{constructor(i={}){super(),this.config=i,this.#t=new Map}#t;build(i,u,c){const r=u.queryKey,d=u.queryHash??Cr(r,u);let y=this.get(d);return y||(y=new bv({client:i,queryKey:r,queryHash:d,options:i.defaultQueryOptions(u),state:c,defaultOptions:i.getQueryDefaults(r)}),this.add(y)),y}add(i){this.#t.has(i.queryHash)||(this.#t.set(i.queryHash,i),this.notify({type:"added",query:i}))}remove(i){const u=this.#t.get(i.queryHash);u&&(i.destroy(),u===i&&this.#t.delete(i.queryHash),this.notify({type:"removed",query:i}))}clear(){oe.batch(()=>{this.getAll().forEach(i=>{this.remove(i)})})}get(i){return this.#t.get(i)}getAll(){return[...this.#t.values()]}find(i){const u={exact:!0,...i};return this.getAll().find(c=>Bh(u,c))}findAll(i={}){const u=this.getAll();return Object.keys(i).length>0?u.filter(c=>Bh(i,c)):u}notify(i){oe.batch(()=>{this.listeners.forEach(u=>{u(i)})})}onFocus(){oe.batch(()=>{this.getAll().forEach(i=>{i.onFocus()})})}onOnline(){oe.batch(()=>{this.getAll().forEach(i=>{i.onOnline()})})}},Ov=class{#t;#e;#a;#n;#i;#l;#u;#s;constructor(i={}){this.#t=i.queryCache||new Mv,this.#e=i.mutationCache||new Nv,this.#a=i.defaultOptions||{},this.#n=new Map,this.#i=new Map,this.#l=0}mount(){this.#l++,this.#l===1&&(this.#u=Ar.subscribe(async i=>{i&&(await this.resumePausedMutations(),this.#t.onFocus())}),this.#s=Fs.subscribe(async i=>{i&&(await this.resumePausedMutations(),this.#t.onOnline())}))}unmount(){this.#l--,this.#l===0&&(this.#u?.(),this.#u=void 0,this.#s?.(),this.#s=void 0)}isFetching(i){return this.#t.findAll({...i,fetchStatus:"fetching"}).length}isMutating(i){return this.#e.findAll({...i,status:"pending"}).length}getQueryData(i){const u=this.defaultQueryOptions({queryKey:i});return this.#t.get(u.queryHash)?.state.data}ensureQueryData(i){const u=this.defaultQueryOptions(i),c=this.#t.build(this,u),r=c.state.data;return r===void 0?this.fetchQuery(i):(i.revalidateIfStale&&c.isStaleByTime(fn(u.staleTime,c))&&this.prefetchQuery(u),Promise.resolve(r))}getQueriesData(i){return this.#t.findAll(i).map(({queryKey:u,state:c})=>{const r=c.data;return[u,r]})}setQueryData(i,u,c){const r=this.defaultQueryOptions({queryKey:i}),y=this.#t.get(r.queryHash)?.state.data,g=uv(u,y);if(g!==void 0)return this.#t.build(this,r).setData(g,{...c,manual:!0})}setQueriesData(i,u,c){return oe.batch(()=>this.#t.findAll(i).map(({queryKey:r})=>[r,this.setQueryData(r,u,c)]))}getQueryState(i){const u=this.defaultQueryOptions({queryKey:i});return this.#t.get(u.queryHash)?.state}removeQueries(i){const u=this.#t;oe.batch(()=>{u.findAll(i).forEach(c=>{u.remove(c)})})}resetQueries(i,u){const c=this.#t;return oe.batch(()=>(c.findAll(i).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...i},u)))}cancelQueries(i,u={}){const c={revert:!0,...u},r=oe.batch(()=>this.#t.findAll(i).map(d=>d.cancel(c)));return Promise.all(r).then(ze).catch(ze)}invalidateQueries(i,u={}){return oe.batch(()=>(this.#t.findAll(i).forEach(c=>{c.invalidate()}),i?.refetchType==="none"?Promise.resolve():this.refetchQueries({...i,type:i?.refetchType??i?.type??"active"},u)))}refetchQueries(i,u={}){const c={...u,cancelRefetch:u.cancelRefetch??!0},r=oe.batch(()=>this.#t.findAll(i).filter(d=>!d.isDisabled()&&!d.isStatic()).map(d=>{let y=d.fetch(void 0,c);return c.throwOnError||(y=y.catch(ze)),d.state.fetchStatus==="paused"?Promise.resolve():y}));return Promise.all(r).then(ze)}fetchQuery(i){const u=this.defaultQueryOptions(i);u.retry===void 0&&(u.retry=!1);const c=this.#t.build(this,u);return c.isStaleByTime(fn(u.staleTime,c))?c.fetch(u):Promise.resolve(c.state.data)}prefetchQuery(i){return this.fetchQuery(i).then(ze).catch(ze)}fetchInfiniteQuery(i){return i._type="infinite",this.fetchQuery(i)}prefetchInfiniteQuery(i){return this.fetchInfiniteQuery(i).then(ze).catch(ze)}ensureInfiniteQueryData(i){return i._type="infinite",this.ensureQueryData(i)}resumePausedMutations(){return Fs.isOnline()?this.#e.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#t}getMutationCache(){return this.#e}getDefaultOptions(){return this.#a}setDefaultOptions(i){this.#a=i}setQueryDefaults(i,u){this.#n.set(xi(i),{queryKey:i,defaultOptions:u})}getQueryDefaults(i){const u=[...this.#n.values()],c={};return u.forEach(r=>{ji(i,r.queryKey)&&Object.assign(c,r.defaultOptions)}),c}setMutationDefaults(i,u){this.#i.set(xi(i),{mutationKey:i,defaultOptions:u})}getMutationDefaults(i){const u=[...this.#i.values()],c={};return u.forEach(r=>{ji(i,r.mutationKey)&&Object.assign(c,r.defaultOptions)}),c}defaultQueryOptions(i){if(i._defaulted)return i;const u={...this.#a.queries,...this.getQueryDefaults(i.queryKey),...i,_defaulted:!0};return u.queryHash||(u.queryHash=Cr(u.queryKey,u)),u.refetchOnReconnect===void 0&&(u.refetchOnReconnect=u.networkMode!=="always"),u.throwOnError===void 0&&(u.throwOnError=!!u.suspense),!u.networkMode&&u.persister&&(u.networkMode="offlineFirst"),u.queryFn===_r&&(u.enabled=!1),u}defaultMutationOptions(i){return i?._defaulted?i:{...this.#a.mutations,...i?.mutationKey&&this.getMutationDefaults(i.mutationKey),...i,_defaulted:!0}}clear(){this.#t.clear(),this.#e.clear()}},vm=Q.createContext(void 0),Ci=i=>{const u=Q.useContext(vm);if(!u)throw new Error("No QueryClient set, use QueryClientProvider to set one");return u},Av=({client:i,children:u})=>(Q.useEffect(()=>(i.mount(),()=>{i.unmount()}),[i]),f.jsx(vm.Provider,{value:i,children:u})),pm=Q.createContext(!1),Cv=()=>Q.useContext(pm);pm.Provider;function _v(){let i=!1;return{clearReset:()=>{i=!1},reset:()=>{i=!0},isReset:()=>i}}var zv=Q.createContext(_v()),wv=()=>Q.useContext(zv),Dv=(i,u,c)=>{const r=c?.state.error&&typeof i.throwOnError=="function"?fm(i.throwOnError,[c.state.error,c]):i.throwOnError;(i.suspense||i.experimental_prefetchInRender||r)&&(u.isReset()||(i.retryOnMount=!1))},Rv=i=>{Q.useEffect(()=>{i.clearReset()},[i])},Uv=({result:i,errorResetBoundary:u,throwOnError:c,query:r,suspense:d})=>i.isError&&!u.isReset()&&!i.isFetching&&r&&(d&&i.data===void 0||fm(c,[i.error,r])),Hv=i=>{if(i.suspense){const c=d=>d==="static"?d:Math.max(d??1e3,1e3),r=i.staleTime;i.staleTime=typeof r=="function"?(...d)=>c(r(...d)):c(r),typeof i.gcTime=="number"&&(i.gcTime=Math.max(i.gcTime,1e3))}},qv=(i,u)=>i.isLoading&&i.isFetching&&!u,Bv=(i,u)=>i?.suspense&&u.isPending,Zh=(i,u,c)=>u.fetchOptimistic(i).catch(()=>{c.clearReset()});function Qv(i,u,c){const r=Cv(),d=wv(),y=Ci(),g=y.defaultQueryOptions(i);y.getDefaultOptions().queries?._experimental_beforeQuery?.(g);const A=y.getQueryCache().get(g.queryHash),p=i.subscribed!==!1;g._optimisticResults=r?"isRestoring":p?"optimistic":void 0,Hv(g),Dv(g,d,A),Rv(d);const v=!y.getQueryCache().get(g.queryHash),[T]=Q.useState(()=>new u(y,g)),m=T.getOptimisticResult(g),S=!r&&p;if(Q.useSyncExternalStore(Q.useCallback(U=>{const _=S?T.subscribe(oe.batchCalls(U)):ze;return T.updateResult(),_},[T,S]),()=>T.getCurrentResult(),()=>T.getCurrentResult()),Q.useEffect(()=>{T.setOptions(g)},[g,T]),Bv(g,m))throw Zh(g,T,d);if(Uv({result:m,errorResetBoundary:d,throwOnError:g.throwOnError,query:A,suspense:g.suspense}))throw m.error;return y.getDefaultOptions().queries?._experimental_afterQuery?.(g,m),g.experimental_prefetchInRender&&!Ei.isServer()&&qv(m,r)&&(v?Zh(g,T,d):A?.promise)?.catch(ze).finally(()=>{T.updateResult()}),g.notifyOnChangeProps?m:T.trackResult(m)}function De(i,u){return Qv(i,Sv)}function gm(){throw location.href="/auth/login?next="+encodeURIComponent(location.pathname+location.search),new Error("signing in…")}async function Ge(i){const u=await fetch(i);if(u.status===401&&gm(),!u.ok)throw new Error(await u.text());return u.json()}async function on(i,u,c){const r={method:i};c!==void 0&&(r.headers={"Content-Type":"application/json"},r.body=JSON.stringify(c));const d=await fetch(u,r);if(!d.ok)throw new Error(await d.text());return d.status===204?{}:d.json()}async function Nl(i,u){const c=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u||{})});if(c.status===401&&gm(),!c.ok)throw new Error(await c.text());return c.json()}function Lv(){return De({queryKey:["config"],queryFn:async()=>{const i=await Ge("/api/config");return i.auth.enabled&&!i.me&&(location.href="/auth/login?next="+encodeURIComponent(location.pathname+location.search),await new Promise(()=>{})),i},staleTime:1/0})}const Tr=new Set;function Yv(i){return Tr.add(i),()=>Tr.delete(i)}function kv(){for(const i of Tr)i()}const bm=(...i)=>i.filter((u,c,r)=>!!u&&u.trim()!==""&&r.indexOf(u)===c).join(" ").trim();const Gv=i=>i.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Xv=i=>i.replace(/^([A-Z])|[\s-_]+(\w)/g,(u,c,r)=>r?r.toUpperCase():c.toLowerCase());const Jh=i=>{const u=Xv(i);return u.charAt(0).toUpperCase()+u.slice(1)};var mr={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Kv=i=>{for(const u in i)if(u.startsWith("aria-")||u==="role"||u==="title")return!0;return!1},Vv=Q.createContext({}),Zv=()=>Q.useContext(Vv),Jv=Q.forwardRef(({color:i,size:u,strokeWidth:c,absoluteStrokeWidth:r,className:d="",children:y,iconNode:g,...A},p)=>{const{size:v=24,strokeWidth:T=2,absoluteStrokeWidth:m=!1,color:S="currentColor",className:U=""}=Zv()??{},_=r??m?Number(c??T)*24/Number(u??v):c??T;return Q.createElement("svg",{ref:p,...mr,width:u??v??mr.width,height:u??v??mr.height,stroke:i??S,strokeWidth:_,className:bm("lucide",U,d),...!y&&!Kv(A)&&{"aria-hidden":"true"},...A},[...g.map(([B,X])=>Q.createElement(B,X)),...Array.isArray(y)?y:[y]])});const Tt=(i,u)=>{const c=Q.forwardRef(({className:r,...d},y)=>Q.createElement(Jv,{ref:y,iconNode:u,className:bm(`lucide-${Gv(Jh(i))}`,`lucide-${i}`,r),...d}));return c.displayName=Jh(i),c};const Fv=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],$v=Tt("check",Fv);const Wv=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Iv=Tt("chevron-down",Wv);const Pv=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],tp=Tt("chevron-right",Pv);const ep=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],ap=Tt("circle-check",ep);const np=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],lp=Tt("clock",np);const ip=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],sp=Tt("copy",ip);const up=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],cp=Tt("download",up);const rp=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],op=Tt("ellipsis",rp);const fp=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],dp=Tt("file-text",fp);const hp=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],mp=Tt("folder",hp);const yp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],vp=Tt("globe",yp);const pp=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],gp=Tt("history",pp);const bp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Sp=Tt("info",bp);const xp=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],jp=Tt("layout-dashboard",xp);const Ep=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],Tp=Tt("link",Ep);const Np=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Mp=Tt("loader-circle",Np);const Op=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],Ap=Tt("lock",Op);const Cp=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],_p=Tt("log-out",Cp);const zp=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],wp=Tt("menu",zp);const Dp=[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],Rp=Tt("octagon-x",Dp);const Up=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Hp=Tt("plus",Up);const qp=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Bp=Tt("search",qp);const Qp=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Lp=Tt("settings",Qp);const Yp=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],kp=Tt("share-2",Yp);const Gp=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Xp=Tt("shield",Gp);const Kp=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],Vp=Tt("square-terminal",Kp);const Zp=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Jp=Tt("trash-2",Zp);const Fp=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Sm=Tt("triangle-alert",Fp);const $p=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Wp=Tt("upload",$p);const Ip=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Pp=Tt("users",Ip);const tg=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],eg=Tt("x",tg);function ag(){document.body.classList.toggle("sb-open")}function ca(){document.body.classList.remove("sb-open")}const ng={alert:Sm,check:$v,chev:tp,chevd:Iv,clock:lp,copy:sp,doc:dp,dots:op,download:cp,folder:mp,dashboard:jp,gear:Lp,globe:vp,hist:gp,link:Tp,lock:Ap,menu:wp,plus:Hp,power:_p,search:Bp,share:kp,shield:Xp,terminal:Vp,trash:Jp,upload:Wp,users:Pp,x:eg};function Pt({name:i}){const u=ng[i];return u?f.jsx(u,{className:"ico","aria-hidden":"true"}):null}function Ti(i){return f.jsxs(f.Fragment,{children:[f.jsx("div",{id:"sb-backdrop",onClick:ca}),f.jsxs("aside",{id:"sidebar",children:[i.vault,i.projectsNav,i.tree??f.jsx("nav",{id:"tree","aria-label":"Files"}),i.orgBar]}),f.jsxs("main",{id:"main",children:[i.topbar,f.jsx("article",{id:"content",className:i.contentClass??"markdown",ref:i.contentRef,onScroll:i.onContentScroll,children:i.children})]})]})}function $s(i){const{name:u,onHome:c,showSignout:r,search:d}=i;return f.jsxs("header",{id:"vault",children:[f.jsx("span",{id:"vault-badge","aria-hidden":"true",children:"🐻"}),f.jsx("span",{id:"vault-name",className:c?"vault-link":void 0,onClick:c,role:c?"button":void 0,tabIndex:c?0:void 0,onKeyDown:y=>{c&&(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),c())},children:u}),f.jsxs("div",{className:"vault-actions",children:[d&&f.jsxs("button",{id:"search-btn",className:"icon-btn2 has-tip","aria-label":"Search",onClick:()=>{kv(),ca()},children:[f.jsx(Pt,{name:"search"}),f.jsxs("span",{className:"tip",role:"tooltip",children:["Search ",f.jsx("kbd",{children:"⌘K"})]})]}),r&&f.jsx("a",{id:"signout",href:"/auth/logout",title:"Sign out","aria-label":"Sign out",children:f.jsx(Pt,{name:"power"})})]})]})}function Ni(i){return f.jsxs("header",{id:"topbar",children:[f.jsx("button",{id:"menu-btn",className:"icon-btn",title:"Menu","aria-label":"Menu",onClick:ag,children:f.jsx(Pt,{name:"menu"})}),f.jsx("span",{id:"crumb",children:i.crumb}),f.jsx("span",{id:"meta",children:i.meta}),i.actions]})}var lg=um();const ig=sm(lg);function sg(i){if(typeof document>"u")return;let u=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",u.appendChild(c),c.styleSheet?c.styleSheet.cssText=i:c.appendChild(document.createTextNode(i))}const ug=i=>{switch(i){case"success":return og;case"info":return dg;case"warning":return fg;case"error":return hg;default:return null}},cg=Array(12).fill(0),rg=({visible:i,className:u})=>k.createElement("div",{className:["sonner-loading-wrapper",u].filter(Boolean).join(" "),"data-visible":i},k.createElement("div",{className:"sonner-spinner"},cg.map((c,r)=>k.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),og=k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},k.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),fg=k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},k.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),dg=k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},k.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),hg=k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},k.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),mg=k.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},k.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),k.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),yg=()=>{const[i,u]=k.useState(document.hidden);return k.useEffect(()=>{const c=()=>{u(document.hidden)};return document.addEventListener("visibilitychange",c),()=>window.removeEventListener("visibilitychange",c)},[]),i};let Nr=1;class vg{constructor(){this.subscribe=u=>(this.subscribers.push(u),()=>{const c=this.subscribers.indexOf(u);this.subscribers.splice(c,1)}),this.publish=u=>{this.subscribers.forEach(c=>c(u))},this.addToast=u=>{this.publish(u),this.toasts=[...this.toasts,u]},this.create=u=>{var c;const{message:r,...d}=u,y=typeof u?.id=="number"||((c=u.id)==null?void 0:c.length)>0?u.id:Nr++,g=this.toasts.find(p=>p.id===y),A=u.dismissible===void 0?!0:u.dismissible;return this.dismissedToasts.has(y)&&this.dismissedToasts.delete(y),g?this.toasts=this.toasts.map(p=>p.id===y?(this.publish({...p,...u,id:y,title:r}),{...p,...u,id:y,dismissible:A,title:r}):p):this.addToast({title:r,...d,dismissible:A,id:y}),y},this.dismiss=u=>(u?(this.dismissedToasts.add(u),requestAnimationFrame(()=>this.subscribers.forEach(c=>c({id:u,dismiss:!0})))):this.toasts.forEach(c=>{this.subscribers.forEach(r=>r({id:c.id,dismiss:!0}))}),u),this.message=(u,c)=>this.create({...c,message:u}),this.error=(u,c)=>this.create({...c,message:u,type:"error"}),this.success=(u,c)=>this.create({...c,type:"success",message:u}),this.info=(u,c)=>this.create({...c,type:"info",message:u}),this.warning=(u,c)=>this.create({...c,type:"warning",message:u}),this.loading=(u,c)=>this.create({...c,type:"loading",message:u}),this.promise=(u,c)=>{if(!c)return;let r;c.loading!==void 0&&(r=this.create({...c,promise:u,type:"loading",message:c.loading,description:typeof c.description!="function"?c.description:void 0}));const d=Promise.resolve(u instanceof Function?u():u);let y=r!==void 0,g;const A=d.then(async v=>{if(g=["resolve",v],k.isValidElement(v))y=!1,this.create({id:r,type:"default",message:v});else if(gg(v)&&!v.ok){y=!1;const m=typeof c.error=="function"?await c.error(`HTTP error! status: ${v.status}`):c.error,S=typeof c.description=="function"?await c.description(`HTTP error! status: ${v.status}`):c.description,_=typeof m=="object"&&!k.isValidElement(m)?m:{message:m};this.create({id:r,type:"error",description:S,..._})}else if(v instanceof Error){y=!1;const m=typeof c.error=="function"?await c.error(v):c.error,S=typeof c.description=="function"?await c.description(v):c.description,_=typeof m=="object"&&!k.isValidElement(m)?m:{message:m};this.create({id:r,type:"error",description:S,..._})}else if(c.success!==void 0){y=!1;const m=typeof c.success=="function"?await c.success(v):c.success,S=typeof c.description=="function"?await c.description(v):c.description,_=typeof m=="object"&&!k.isValidElement(m)?m:{message:m};this.create({id:r,type:"success",description:S,..._})}}).catch(async v=>{if(g=["reject",v],c.error!==void 0){y=!1;const T=typeof c.error=="function"?await c.error(v):c.error,m=typeof c.description=="function"?await c.description(v):c.description,U=typeof T=="object"&&!k.isValidElement(T)?T:{message:T};this.create({id:r,type:"error",description:m,...U})}}).finally(()=>{y&&(this.dismiss(r),r=void 0),c.finally==null||c.finally.call(c)}),p=()=>new Promise((v,T)=>A.then(()=>g[0]==="reject"?T(g[1]):v(g[1])).catch(T));return typeof r!="string"&&typeof r!="number"?{unwrap:p}:Object.assign(r,{unwrap:p})},this.custom=(u,c)=>{const r=c?.id||Nr++;return this.create({jsx:u(r),id:r,...c}),r},this.getActiveToasts=()=>this.toasts.filter(u=>!this.dismissedToasts.has(u.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const _e=new vg,pg=(i,u)=>{const c=u?.id||Nr++;return _e.addToast({title:i,...u,id:c}),c},gg=i=>i&&typeof i=="object"&&"ok"in i&&typeof i.ok=="boolean"&&"status"in i&&typeof i.status=="number",bg=pg,Sg=()=>_e.toasts,xg=()=>_e.getActiveToasts(),Fh=Object.assign(bg,{success:_e.success,info:_e.info,warning:_e.warning,error:_e.error,custom:_e.custom,message:_e.message,promise:_e.promise,dismiss:_e.dismiss,loading:_e.loading},{getHistory:Sg,getToasts:xg});sg("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ks(i){return i.label!==void 0}const jg=3,Eg="24px",Tg="16px",$h=4e3,Ng=356,Mg=14,Og=45,Ag=200;function va(...i){return i.filter(Boolean).join(" ")}function Cg(i){const[u,c]=i.split("-"),r=[];return u&&r.push(u),c&&r.push(c),r}const _g=i=>{var u,c,r,d,y,g,A,p,v;const{invert:T,toast:m,unstyled:S,interacting:U,setHeights:_,visibleToasts:B,heights:X,index:G,toasts:mt,expanded:et,removeToast:Mt,defaultRichColors:Ut,closeButton:P,style:F,cancelButtonStyle:ft,actionButtonStyle:Yt,className:Xt="",descriptionClassName:Zt="",duration:Ct,position:Dt,gap:fe,expandByDefault:Nt,classNames:O,icons:L,closeButtonAriaLabel:J="Close toast"}=i,[ct,it]=k.useState(null),[x,D]=k.useState(null),[q,Y]=k.useState(!1),[K,$]=k.useState(!1),[ot,nt]=k.useState(!1),[jt,Xe]=k.useState(!1),[aa,ge]=k.useState(!1),[pa,Re]=k.useState(0),[ra,be]=k.useState(0),te=k.useRef(m.duration||Ct||$h),dn=k.useRef(null),ye=k.useRef(null),lt=G===0,pt=G+1<=B,rt=m.type,Ke=m.dismissible!==!1,le=m.className||"",Ml=m.descriptionClassName||"",hn=k.useMemo(()=>X.findIndex(tt=>tt.toastId===m.id)||0,[X,m.id]),_i=k.useMemo(()=>{var tt;return(tt=m.closeButton)!=null?tt:P},[m.closeButton,P]),mn=k.useMemo(()=>m.duration||Ct||$h,[m.duration,Ct]),Ol=k.useRef(0),ga=k.useRef(0),zi=k.useRef(0),qa=k.useRef(null),[yn,ve]=Dt.split("-"),na=k.useMemo(()=>X.reduce((tt,Bt,ee)=>ee>=hn?tt:tt+Bt.height,0),[X,hn]),de=yg(),Ws=m.invert||T,Al=rt==="loading";ga.current=k.useMemo(()=>hn*fe+na,[hn,na]),k.useEffect(()=>{te.current=mn},[mn]),k.useEffect(()=>{Y(!0)},[]),k.useEffect(()=>{const tt=ye.current;if(tt){const Bt=tt.getBoundingClientRect().height;return be(Bt),_(ee=>[{toastId:m.id,height:Bt,position:m.position},...ee]),()=>_(ee=>ee.filter(he=>he.toastId!==m.id))}},[_,m.id]),k.useLayoutEffect(()=>{if(!q)return;const tt=ye.current,Bt=tt.style.height;tt.style.height="auto";const ee=tt.getBoundingClientRect().height;tt.style.height=Bt,be(ee),_(he=>he.find(Lt=>Lt.toastId===m.id)?he.map(Lt=>Lt.toastId===m.id?{...Lt,height:ee}:Lt):[{toastId:m.id,height:ee,position:m.position},...he])},[q,m.title,m.description,_,m.id,m.jsx,m.action,m.cancel]);const oa=k.useCallback(()=>{$(!0),Re(ga.current),_(tt=>tt.filter(Bt=>Bt.toastId!==m.id)),setTimeout(()=>{Mt(m)},Ag)},[m,Mt,_,ga]);k.useEffect(()=>{if(m.promise&&rt==="loading"||m.duration===1/0||m.type==="loading")return;let tt;return et||U||de?(()=>{if(zi.current{m.onAutoClose==null||m.onAutoClose.call(m,m),oa()},te.current)),()=>clearTimeout(tt)},[et,U,m,rt,de,oa]),k.useEffect(()=>{m.delete&&(oa(),m.onDismiss==null||m.onDismiss.call(m,m))},[oa,m.delete]);function Hn(){var tt;if(L?.loading){var Bt;return k.createElement("div",{className:va(O?.loader,m==null||(Bt=m.classNames)==null?void 0:Bt.loader,"sonner-loader"),"data-visible":rt==="loading"},L.loading)}return k.createElement(rg,{className:va(O?.loader,m==null||(tt=m.classNames)==null?void 0:tt.loader),visible:rt==="loading"})}const qn=m.icon||L?.[rt]||ug(rt);var vn,fa;return k.createElement("li",{tabIndex:0,ref:ye,className:va(Xt,le,O?.toast,m==null||(u=m.classNames)==null?void 0:u.toast,O?.default,O?.[rt],m==null||(c=m.classNames)==null?void 0:c[rt]),"data-sonner-toast":"","data-rich-colors":(vn=m.richColors)!=null?vn:Ut,"data-styled":!(m.jsx||m.unstyled||S),"data-mounted":q,"data-promise":!!m.promise,"data-swiped":aa,"data-removed":K,"data-visible":pt,"data-y-position":yn,"data-x-position":ve,"data-index":G,"data-front":lt,"data-swiping":ot,"data-dismissible":Ke,"data-type":rt,"data-invert":Ws,"data-swipe-out":jt,"data-swipe-direction":x,"data-expanded":!!(et||Nt&&q),"data-testid":m.testId,style:{"--index":G,"--toasts-before":G,"--z-index":mt.length-G,"--offset":`${K?pa:ga.current}px`,"--initial-height":Nt?"auto":`${ra}px`,...F,...m.style},onDragEnd:()=>{nt(!1),it(null),qa.current=null},onPointerDown:tt=>{tt.button!==2&&(Al||!Ke||(dn.current=new Date,Re(ga.current),tt.target.setPointerCapture(tt.pointerId),tt.target.tagName!=="BUTTON"&&(nt(!0),qa.current={x:tt.clientX,y:tt.clientY})))},onPointerUp:()=>{var tt,Bt,ee;if(jt||!Ke)return;qa.current=null;const he=Number(((tt=ye.current)==null?void 0:tt.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Ba=Number(((Bt=ye.current)==null?void 0:Bt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Lt=new Date().getTime()-((ee=dn.current)==null?void 0:ee.getTime()),Se=ct==="x"?he:Ba,pn=Math.abs(Se)/Lt;if(Math.abs(Se)>=Og||pn>.11){Re(ga.current),m.onDismiss==null||m.onDismiss.call(m,m),D(ct==="x"?he>0?"right":"left":Ba>0?"down":"up"),oa(),Xe(!0);return}else{var xe,je;(xe=ye.current)==null||xe.style.setProperty("--swipe-amount-x","0px"),(je=ye.current)==null||je.style.setProperty("--swipe-amount-y","0px")}ge(!1),nt(!1),it(null)},onPointerMove:tt=>{var Bt,ee,he;if(!qa.current||!Ke||((Bt=window.getSelection())==null?void 0:Bt.toString().length)>0)return;const Lt=tt.clientY-qa.current.y,Se=tt.clientX-qa.current.x;var pn;const xe=(pn=i.swipeDirections)!=null?pn:Cg(Dt);!ct&&(Math.abs(Se)>1||Math.abs(Lt)>1)&&it(Math.abs(Se)>Math.abs(Lt)?"x":"y");let je={x:0,y:0};const Bn=la=>1/(1.5+Math.abs(la)/20);if(ct==="y"){if(xe.includes("top")||xe.includes("bottom"))if(xe.includes("top")&&Lt<0||xe.includes("bottom")&&Lt>0)je.y=Lt;else{const la=Lt*Bn(Lt);je.y=Math.abs(la)0)je.x=Se;else{const la=Se*Bn(Se);je.x=Math.abs(la)0||Math.abs(je.y)>0)&&ge(!0),(ee=ye.current)==null||ee.style.setProperty("--swipe-amount-x",`${je.x}px`),(he=ye.current)==null||he.style.setProperty("--swipe-amount-y",`${je.y}px`)}},_i&&!m.jsx&&rt!=="loading"?k.createElement("button",{"aria-label":J,"data-disabled":Al,"data-close-button":!0,onClick:Al||!Ke?()=>{}:()=>{oa(),m.onDismiss==null||m.onDismiss.call(m,m)},className:va(O?.closeButton,m==null||(r=m.classNames)==null?void 0:r.closeButton)},(fa=L?.close)!=null?fa:mg):null,(rt||m.icon||m.promise)&&m.icon!==null&&(L?.[rt]!==null||m.icon)?k.createElement("div",{"data-icon":"",className:va(O?.icon,m==null||(d=m.classNames)==null?void 0:d.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||Hn():null,m.type!=="loading"?qn:null):null,k.createElement("div",{"data-content":"",className:va(O?.content,m==null||(y=m.classNames)==null?void 0:y.content)},k.createElement("div",{"data-title":"",className:va(O?.title,m==null||(g=m.classNames)==null?void 0:g.title)},m.jsx?m.jsx:typeof m.title=="function"?m.title():m.title),m.description?k.createElement("div",{"data-description":"",className:va(Zt,Ml,O?.description,m==null||(A=m.classNames)==null?void 0:A.description)},typeof m.description=="function"?m.description():m.description):null),k.isValidElement(m.cancel)?m.cancel:m.cancel&&Ks(m.cancel)?k.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||ft,onClick:tt=>{Ks(m.cancel)&&Ke&&(m.cancel.onClick==null||m.cancel.onClick.call(m.cancel,tt),oa())},className:va(O?.cancelButton,m==null||(p=m.classNames)==null?void 0:p.cancelButton)},m.cancel.label):null,k.isValidElement(m.action)?m.action:m.action&&Ks(m.action)?k.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||Yt,onClick:tt=>{Ks(m.action)&&(m.action.onClick==null||m.action.onClick.call(m.action,tt),!tt.defaultPrevented&&oa())},className:va(O?.actionButton,m==null||(v=m.classNames)==null?void 0:v.actionButton)},m.action.label):null)};function Wh(){if(typeof window>"u"||typeof document>"u")return"ltr";const i=document.documentElement.getAttribute("dir");return i==="auto"||!i?window.getComputedStyle(document.documentElement).direction:i}function zg(i,u){const c={};return[i,u].forEach((r,d)=>{const y=d===1,g=y?"--mobile-offset":"--offset",A=y?Tg:Eg;function p(v){["top","right","bottom","left"].forEach(T=>{c[`${g}-${T}`]=typeof v=="number"?`${v}px`:v})}typeof r=="number"||typeof r=="string"?p(r):typeof r=="object"?["top","right","bottom","left"].forEach(v=>{r[v]===void 0?c[`${g}-${v}`]=A:c[`${g}-${v}`]=typeof r[v]=="number"?`${r[v]}px`:r[v]}):p(A)}),c}const wg=k.forwardRef(function(u,c){const{id:r,invert:d,position:y="bottom-right",hotkey:g=["altKey","KeyT"],expand:A,closeButton:p,className:v,offset:T,mobileOffset:m,theme:S="light",richColors:U,duration:_,style:B,visibleToasts:X=jg,toastOptions:G,dir:mt=Wh(),gap:et=Mg,icons:Mt,containerAriaLabel:Ut="Notifications"}=u,[P,F]=k.useState([]),ft=k.useMemo(()=>r?P.filter(q=>q.toasterId===r):P.filter(q=>!q.toasterId),[P,r]),Yt=k.useMemo(()=>Array.from(new Set([y].concat(ft.filter(q=>q.position).map(q=>q.position)))),[ft,y]),[Xt,Zt]=k.useState([]),[Ct,Dt]=k.useState(!1),[fe,Nt]=k.useState(!1),[O,L]=k.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),J=k.useRef(null),ct=g.join("+").replace(/Key/g,"").replace(/Digit/g,""),it=k.useRef(null),x=k.useRef(!1),D=k.useCallback(q=>{F(Y=>{var K;return(K=Y.find($=>$.id===q.id))!=null&&K.delete||_e.dismiss(q.id),Y.filter(({id:$})=>$!==q.id)})},[]);return k.useEffect(()=>_e.subscribe(q=>{if(q.dismiss){requestAnimationFrame(()=>{F(Y=>Y.map(K=>K.id===q.id?{...K,delete:!0}:K))});return}setTimeout(()=>{ig.flushSync(()=>{F(Y=>{const K=Y.findIndex($=>$.id===q.id);return K!==-1?[...Y.slice(0,K),{...Y[K],...q},...Y.slice(K+1)]:[q,...Y]})})})}),[P]),k.useEffect(()=>{if(S!=="system"){L(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?L("dark"):L("light")),typeof window>"u")return;const q=window.matchMedia("(prefers-color-scheme: dark)");try{q.addEventListener("change",({matches:Y})=>{L(Y?"dark":"light")})}catch{q.addListener(({matches:K})=>{try{L(K?"dark":"light")}catch($){console.error($)}})}},[S]),k.useEffect(()=>{P.length<=1&&Dt(!1)},[P]),k.useEffect(()=>{const q=Y=>{var K;if(g.every(nt=>Y[nt]||Y.code===nt)){var ot;Dt(!0),(ot=J.current)==null||ot.focus()}Y.code==="Escape"&&(document.activeElement===J.current||(K=J.current)!=null&&K.contains(document.activeElement))&&Dt(!1)};return document.addEventListener("keydown",q),()=>document.removeEventListener("keydown",q)},[g]),k.useEffect(()=>{if(J.current)return()=>{it.current&&(it.current.focus({preventScroll:!0}),it.current=null,x.current=!1)}},[J.current]),k.createElement("section",{ref:c,"aria-label":`${Ut} ${ct}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Yt.map((q,Y)=>{var K;const[$,ot]=q.split("-");return ft.length?k.createElement("ol",{key:q,dir:mt==="auto"?Wh():mt,tabIndex:-1,ref:J,className:v,"data-sonner-toaster":!0,"data-sonner-theme":O,"data-y-position":$,"data-x-position":ot,style:{"--front-toast-height":`${((K=Xt[0])==null?void 0:K.height)||0}px`,"--width":`${Ng}px`,"--gap":`${et}px`,...B,...zg(T,m)},onBlur:nt=>{x.current&&!nt.currentTarget.contains(nt.relatedTarget)&&(x.current=!1,it.current&&(it.current.focus({preventScroll:!0}),it.current=null))},onFocus:nt=>{nt.target instanceof HTMLElement&&nt.target.dataset.dismissible==="false"||x.current||(x.current=!0,it.current=nt.relatedTarget)},onMouseEnter:()=>Dt(!0),onMouseMove:()=>Dt(!0),onMouseLeave:()=>{fe||Dt(!1)},onDragEnd:()=>Dt(!1),onPointerDown:nt=>{nt.target instanceof HTMLElement&&nt.target.dataset.dismissible==="false"||Nt(!0)},onPointerUp:()=>Nt(!1)},ft.filter(nt=>!nt.position&&Y===0||nt.position===q).map((nt,jt)=>{var Xe,aa;return k.createElement(_g,{key:nt.id,icons:Mt,index:jt,toast:nt,defaultRichColors:U,duration:(Xe=G?.duration)!=null?Xe:_,className:G?.className,descriptionClassName:G?.descriptionClassName,invert:d,visibleToasts:X,closeButton:(aa=G?.closeButton)!=null?aa:p,interacting:fe,position:q,style:G?.style,unstyled:G?.unstyled,classNames:G?.classNames,cancelButtonStyle:G?.cancelButtonStyle,actionButtonStyle:G?.actionButtonStyle,closeButtonAriaLabel:G?.closeButtonAriaLabel,removeToast:D,toasts:ft.filter(ge=>ge.position==nt.position),heights:Xt.filter(ge=>ge.position==nt.position),setHeights:Zt,expandByDefault:A,gap:et,expanded:Ct,swipeDirections:u.swipeDirections})})):null}))}),Dg=({...i})=>f.jsx(wg,{theme:"dark",className:"toaster group",icons:{success:f.jsx(ap,{className:"size-4"}),info:f.jsx(Sp,{className:"size-4"}),warning:f.jsx(Sm,{className:"size-4"}),error:f.jsx(Rp,{className:"size-4"}),loading:f.jsx(Mp,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...i});function bt(i,u=!1){u?Fh.error(i):Fh(i)}function Rg(){return f.jsx(Dg,{position:"bottom-center"})}let xm=null,Zs=[];function wr(i){xm=i,Zs.forEach(u=>u())}function jm(i,u,c="",r="OK"){return new Promise(d=>wr({kind:"prompt",title:i,label:u,value:c,okLabel:r,resolve:d}))}function Vs(i,u,c="Confirm",r=!1){return new Promise(d=>wr({kind:"confirm",title:i,message:u,confirmLabel:c,danger:r,resolve:d}))}function Ug(){const i=Q.useSyncExternalStore(u=>(Zs.push(u),()=>{Zs=Zs.filter(c=>c!==u)}),()=>xm);return i?i.kind==="prompt"?f.jsx(Hg,{m:i}):f.jsx(qg,{m:i}):null}function Em(){wr(null)}function Hg({m:i}){const u=Q.useRef(null),c=d=>{Em(),i.resolve(d)},r=()=>c(u.current.value.trim()||null);return Q.useEffect(()=>{u.current.focus(),u.current.select();const d=y=>{y.key==="Escape"&&c(null),y.key==="Enter"&&r()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[]),f.jsx("div",{className:"modal-back",onClick:d=>d.target===d.currentTarget&&c(null),children:f.jsxs("div",{className:"modal",children:[f.jsx("h3",{children:i.title}),f.jsx("label",{className:"modal-label",children:i.label}),f.jsx("input",{className:"modal-input",type:"text",autoComplete:"off",defaultValue:i.value,ref:u}),f.jsxs("div",{className:"modal-actions",children:[f.jsx("button",{className:"ai-btn",onClick:()=>c(null),children:"Cancel"}),f.jsx("button",{className:"pbtn",onClick:r,children:i.okLabel})]})]})})}function qg({m:i}){const u=Q.useRef(null),c=r=>{Em(),i.resolve(r)};return Q.useEffect(()=>{u.current.focus();const r=d=>{d.key==="Escape"&&c(!1),d.key==="Enter"&&c(!0)};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[]),f.jsx("div",{className:"modal-back",onClick:r=>r.target===r.currentTarget&&c(!1),children:f.jsxs("div",{className:"modal",children:[f.jsx("h3",{children:i.title}),f.jsx("p",{className:"modal-msg",children:i.message}),f.jsxs("div",{className:"modal-actions",children:[f.jsx("button",{className:"ai-btn",onClick:()=>c(!1),children:"Cancel"}),f.jsx("button",{className:i.danger?"danger-btn":"pbtn",onClick:()=>c(!0),ref:u,children:i.confirmLabel})]})]})})}function Bg(i){return De({queryKey:["projects"],queryFn:()=>Ge("/api/projects"),enabled:i,refetchInterval:3e4,select:u=>u.projects||[]})}function Qg(i){return De({queryKey:["orgs"],queryFn:()=>Ge("/api/orgs"),enabled:i,select:u=>u.orgs||[]})}function Tm(i){return De({queryKey:["admin","pending"],queryFn:()=>Ge("/api/admin/pending"),enabled:i,select:u=>u.pending||[]})}function Nm(){const i=Ci();return()=>Promise.all([i.invalidateQueries({queryKey:["projects"]}),i.invalidateQueries({queryKey:["orgs"]})]).then(()=>{})}function Mm(i){return i.split("/").map(encodeURIComponent).join("/")}function Ih(i){return i.split("/").map(decodeURIComponent).join("/")}const Lg=new Set(["insights","history","install","settings"]);function Om(i,u){const c=i.replace(/^\/+/,"");if(u!=="hub")return{path:c?Ih(c):""};const r=c.indexOf("/");if(r===-1)return{project:c,path:""};const d={project:c.slice(0,r),path:Ih(c.slice(r+1))},y=d.path.indexOf("/"),g=y===-1?d.path:d.path.slice(0,y);return Lg.has(g)&&(d.view=g,d.viewTarget=y===-1?"":d.path.slice(y+1).replace(/\/+$/,""),d.path=""),d}function Yg(i,u){const c=Mm(i);return u?"/"+u+(c?"/"+c:""):"/"+c}function Tl(i,u,c){let r=(u?"/"+u:"")+"/"+i;return c&&(r+="/"+Mm(c.replace(/\/+$/,""))),r}let Dr="POP";const Mr=new Set;function Am(){for(const i of Mr)i()}window.addEventListener("popstate",()=>{Dr="POP",Am()});function we(i,u){const c=location.pathname+location.search;!u?.replace&&c===i||(history[u?.replace?"replaceState":"pushState"](null,"",i),Dr=u?.replace?"REPLACE":"PUSH",Am())}function Rr(){return Q.useSyncExternalStore(i=>(Mr.add(i),()=>{Mr.delete(i)}),()=>location.pathname)}function kg(){return Dr}function Gg({to:i}){return Q.useEffect(()=>{we(i,{replace:!0})},[i]),null}const Xg=/\.(md|markdown)$/i,Kg=/\.(png|jpe?g|gif|svg|webp|ico|bmp|avif)$/i,Vg=/\.html?$/i,Zg=/\.(txt|log|json|ya?ml|toml|csv|go|py|js|ts|jsx|tsx|sh|bash|zsh|rb|rs|c|h|cpp|java|kt|swift|sql|css|xml|ini|conf|env|mod|sum|jsonl)$/i;function Cm(i){if(i<1024)return i+" B";const u=["KB","MB","GB","TB"];let c=-1;do i/=1024,c++;while(i>=1024&&cd.invalidateQueries({queryKey:["orgs"]}),v=()=>d.invalidateQueries({queryKey:["invites",i.id]}),T=()=>d.invalidateQueries({queryKey:["orgShares",i.id]}),{data:m}=De({queryKey:["invites",i.id],queryFn:()=>Ge(`/api/orgs/${i.id}/invites`),enabled:y,select:_=>_.invites||[]}),{data:S}=De({queryKey:["orgShares",i.id],queryFn:()=>Ge(`/api/orgs/${i.id}/shares`),enabled:y,select:_=>_.shares||[]}),U=u.filter(_=>_.org===i.id);return f.jsxs("div",{className:"admin",children:[f.jsx("h1",{id:"org-title",children:i.name+(y?"":" · member")}),y&&f.jsxs("div",{className:"admin-row",children:[f.jsx("input",{id:"org-rename",type:"text",value:g,onChange:_=>A(_.target.value)}),f.jsx("button",{className:"pbtn",id:"org-rename-btn",onClick:async()=>{try{await on("PATCH","/api/orgs/"+i.id,{name:g.trim()}),bt("Renamed."),p()}catch(_){bt(_.message,!0)}},children:"Rename org"})]}),f.jsx("h3",{children:"Members"}),f.jsx("div",{className:"admin-list",children:i.members.map(_=>{const B=!!c&&_.email.toLowerCase()===c.toLowerCase();return f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:_.email+(B?" (you)":"")}),y&&!B?f.jsxs(f.Fragment,{children:[f.jsxs("select",{value:_.role,onChange:async X=>{try{await on("PATCH",`/api/orgs/${i.id}/members/${encodeURIComponent(_.email)}`,{role:X.target.value}),bt("Role updated.")}catch(G){bt(G.message,!0)}p()},children:[f.jsx("option",{value:"owner",children:"owner"}),f.jsx("option",{value:"member",children:"member"})]}),f.jsx("button",{className:"ai-del",onClick:async()=>{if(await Vs("Remove member",`Remove ${_.email} from ${i.name}?`,"Remove",!0))try{await on("DELETE",`/api/orgs/${i.id}/members/${encodeURIComponent(_.email)}`),bt("Removed."),p()}catch(X){bt(X.message,!0)}},children:"Remove"})]}):f.jsx("span",{className:"ai-tag",children:_.role})]},_.email)})}),y&&f.jsxs(f.Fragment,{children:[f.jsx("h3",{children:"Projects"}),f.jsxs("div",{className:"admin-list",children:[U.length===0&&f.jsx("div",{className:"admin-empty",children:"No projects yet."}),U.map(_=>f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:_.name}),f.jsx("button",{className:"ai-btn",onClick:async()=>{const B=await jm("Rename project","New name",_.name,"Rename");if(!(!B||B===_.name))try{await on("PATCH","/api/projects/"+_.id,{name:B}),bt("Renamed."),await r()}catch(X){bt(X.message,!0)}},children:"Rename"}),f.jsx("button",{className:"ai-del",onClick:async()=>{if(await Vs("Delete project",`Delete “${_.name}”? Its files stay in storage, but it's removed from the hub.`,"Delete",!0))try{await on("DELETE","/api/projects/"+_.id),bt(`Deleted “${_.name}”.`),await r()}catch(B){bt(B.message,!0)}},children:"Delete"})]},_.id))]}),f.jsxs("div",{className:"admin-h",children:[f.jsx("h3",{children:"Invite links"}),f.jsx("button",{className:"pbtn",onClick:async()=>{try{const _=await Nl(`/api/orgs/${i.id}/invites`),B=await Mi(_.url);bt(B?"Invite link copied to clipboard.":"Invite created — copy it from the list below."),v()}catch(_){bt(_.message,!0)}},children:"New invite"})]}),f.jsxs("div",{className:"admin-list",children:[m&&m.length===0&&f.jsx("div",{className:"admin-empty",children:"No active invite links."}),(m||[]).map(_=>f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main mono",style:{cursor:"pointer"},title:"Copy",onClick:()=>Mi(_.url).then(B=>bt(B?"Copied.":"Select and copy the link.")),children:_.url}),f.jsx("span",{className:"ai-tag",children:(_.creator?"by "+_.creator+" · ":"")+(_.uses?_.uses+" joined · ":"unused · ")+"expires "+new Date(_.expires).toLocaleDateString()}),f.jsx("button",{className:"ai-del",onClick:async()=>{if(await Vs("Revoke invite","Revoke this invite link? Anyone still holding it won't be able to join.","Revoke",!0))try{await on("DELETE",`/api/orgs/${i.id}/invites/${_.token}`),bt("Revoked."),v()}catch(B){bt(B.message,!0)}},children:"Revoke"})]},_.token))]}),f.jsx("h3",{children:"Public share links"}),f.jsxs("div",{className:"admin-list",children:[S&&S.length===0&&f.jsx("div",{className:"admin-empty",children:"No public shares."}),(S||[]).map(_=>f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main mono",style:{cursor:"pointer"},title:_.url,onClick:()=>window.open(_.url,"_blank"),children:_.path}),f.jsx("span",{className:"ai-tag",children:(_.project_name||"")+(_.creator?" · by "+_.creator:"")+(_.created?" · "+new Date(_.created).toLocaleDateString():"")}),f.jsx("button",{className:"ai-del",onClick:async()=>{if(await Vs("Revoke share link",`Revoke the public link to “${_.path}”? Anyone with the URL will lose access.`,"Revoke",!0))try{await on("DELETE","/api/shares/"+_.token),bt("Share revoked."),T()}catch(B){bt(B.message,!0)}},children:"Revoke"})]},_.token))]})]})]})}function Fg(){const i=Ci(),{data:u,error:c}=De({queryKey:["admin","policy"],queryFn:()=>Ge("/api/admin/policy")}),{data:r}=Tm(!0),[d,y]=Q.useState(!1),[g,A]=Q.useState(!1);if(Q.useEffect(()=>{u&&(y(u.require_verification&&u.mailer),A(u.require_approval))},[u]),Q.useEffect(()=>{c&&bt(c.message,!0)},[c]),!u)return null;const p=async(v,T,m)=>{try{await Nl(`/api/admin/pending/${v}/${T}`),bt((T==="approve"?"Approved ":"Denied ")+m),i.invalidateQueries({queryKey:["admin","pending"]})}catch(S){bt(S.message,!0)}};return f.jsxs("div",{className:"admin",children:[f.jsx("h1",{children:"Signup & access"}),f.jsx("p",{className:"admin-sub",children:"Who can create an account on this hub, and how new accounts are vetted."}),f.jsx("h3",{children:"New-account vetting"}),f.jsxs("div",{className:"admin-list",children:[f.jsx(Ph,{label:"Require email verification",desc:u.mailer?"New accounts must click an emailed link before they can sign in — proves they control the address.":"Configure SMTP on the server (auth.smtp) to enable email verification.",checked:d,disabled:!u.mailer,onChange:y}),f.jsx(Ph,{label:"Require admin approval",desc:"New accounts wait for a hub admin to approve them before they gain access.",checked:g,onChange:A})]}),f.jsx("button",{className:"pbtn",style:{marginTop:14},onClick:async()=>{try{await Nl("/api/admin/policy",{require_verification:d,require_approval:g}),bt("Signup policy saved."),i.invalidateQueries({queryKey:["admin","policy"]})}catch(v){bt(v.message,!0)}},children:"Save policy"}),f.jsx("h3",{children:"Who can sign up"}),f.jsxs("div",{className:"admin-list",children:[f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:"Allowed email domains"}),f.jsx("span",{className:"ai-tag",children:u.allowed_domains&&u.allowed_domains.length?u.allowed_domains.map(v=>"@"+v).join(", "):"any"})]}),f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:"Self-signup"}),f.jsx("span",{className:"ai-tag",children:u.allow_signup?"open":"invite-only"})]}),f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:"Hub admins"}),f.jsx("span",{className:"ai-tag",children:u.admins&&u.admins.length?u.admins.join(", "):"none"})]})]}),f.jsx("p",{className:"admin-sub",children:"Domains and admins are set in the server config file (they can't be widened from the browser)."}),f.jsx("h3",{children:"Pending signups"}),f.jsxs("div",{className:"admin-list",children:[(!r||r.length===0)&&f.jsx("div",{className:"admin-empty",children:"No one is waiting for approval."}),(r||[]).map(v=>f.jsxs("div",{className:"admin-item",children:[f.jsx("span",{className:"ai-main",children:(v.name?v.name+" · ":"")+v.email}),f.jsx("button",{className:"pbtn",onClick:()=>p(v.id,"approve",v.email),children:"Approve"}),f.jsx("button",{className:"ai-del",onClick:()=>p(v.id,"deny",v.email),children:"Deny"})]},v.id))]})]})}function Ph({label:i,desc:u,checked:c,disabled:r,onChange:d}){return f.jsxs("label",{className:"admin-item toggle",style:r?{opacity:.55}:void 0,children:[f.jsxs("span",{className:"ai-main",children:[f.jsx("div",{className:"tg-label",children:i}),f.jsx("div",{className:"tg-desc",children:u})]}),f.jsx("input",{type:"checkbox",checked:c,disabled:r,onChange:y=>d(y.target.checked)})]})}const tm=["#5b8def","#f5a623","#4cc38a","#e0679b","#8b7bf0","#3ec8c8","#e6934a"];function zm(i){let u=0;for(const c of i)u=u*31+c.charCodeAt(0)>>>0;return tm[u%tm.length]}function em({projects:i,currentId:u,menu:c}){const r=Nm(),d=async()=>{const y=await jm("New project","Project name","","Create");if(y)try{const g=await Nl("/api/projects",{name:y});await r(),we("/"+g.project.id),bt(`Created “${g.project.name}”.`)}catch(g){bt("Could not create the project: "+g.message,!0)}};return f.jsxs("nav",{id:"projects","aria-label":"Projects",children:[f.jsxs("div",{className:"nav-head",children:[f.jsx("span",{children:"Projects"}),f.jsx("button",{className:"nav-add",title:"New project",onClick:d,children:"+"})]}),f.jsx("div",{className:"proj-row",children:f.jsxs("span",{className:"proj-select-wrap",children:[u&&f.jsx("span",{className:"proj-mark","aria-hidden":"true",style:{background:zm(i.find(y=>y.id===u)?.name||"")}}),f.jsxs("select",{id:"project-select","aria-label":"Switch project",value:u||"",onChange:y=>{y.target.value&&(we("/"+y.target.value),ca())},children:[!u&&f.jsx("option",{value:"",disabled:!0}),i.map(y=>f.jsx("option",{value:y.id,children:y.name},y.id))]}),f.jsx(Pt,{name:"chevd"})]})}),c&&f.jsx("ul",{className:"nav-menu","aria-label":"Project pages",children:[["dashboard","Dashboard","dashboard",c.onDashboard],["install","Installation","terminal",c.onInstall],["history","History","hist",c.onHistory],["settings","Settings","gear",c.onSettings]].map(([y,g,A,p])=>f.jsx("li",{children:f.jsxs("div",{id:"nav-"+y,className:"row"+(c.active===y?" active":""),role:"button",tabIndex:0,onClick:p,onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),p())},children:[f.jsx(Pt,{name:A}),f.jsx("span",{className:"label",children:g})]})},y))})]})}function $g({me:i,org:u,admin:c,onOrgSettings:r}){const[d,y]=Q.useState(!1),g=Q.useRef(null);Q.useEffect(()=>{if(!d)return;const p=T=>{g.current&&!g.current.contains(T.target)&&y(!1)},v=T=>{T.key==="Escape"&&y(!1)};return document.addEventListener("mousedown",p),document.addEventListener("keydown",v),()=>{document.removeEventListener("mousedown",p),document.removeEventListener("keydown",v)}},[d]);const A=i.name||i.email;return f.jsxs("footer",{id:"accountbar",ref:g,children:[d&&f.jsxs("div",{id:"account-menu",role:"menu","aria-label":"Account menu",children:[u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-sec",children:"Organization"}),f.jsxs("button",{id:"menu-org-settings",role:"menuitem",onClick:()=>{y(!1),r(u)},children:[f.jsx(Pt,{name:"gear"}),f.jsxs("span",{children:[f.jsx("b",{children:u.name})," Settings"]})]})]}),c&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"menu-sec",children:"Hub"}),f.jsxs("button",{id:"menu-hub-admin",role:"menuitem",onClick:()=>{y(!1),c.onClick()},children:[f.jsx(Pt,{name:"shield"}),f.jsxs("span",{children:["Signup & access",c.pending?` · ${c.pending}`:""]})]})]}),f.jsx("div",{className:"menu-sec",children:"Account"}),f.jsxs("a",{id:"signout",role:"menuitem",href:"/auth/logout",children:[f.jsx(Pt,{name:"power"}),f.jsx("span",{children:"Log out"})]})]}),f.jsxs("button",{id:"account-btn","aria-haspopup":"menu","aria-expanded":d,onClick:()=>y(p=>!p),children:[f.jsx("span",{className:"avatar",style:{background:zm(i.email)},"aria-hidden":"true",children:(A.trim()[0]||"?").toUpperCase()}),f.jsxs("span",{className:"acct",children:[f.jsx("b",{children:A}),i.name&&f.jsx("small",{children:i.email})]}),f.jsx(Pt,{name:"chev"})]})]})}function Wg({project:i,org:u}){return f.jsxs("div",{className:"project-settings",children:[f.jsx("h2",{children:i.name}),f.jsxs("dl",{className:"ps-facts",children:[f.jsx("dt",{children:"Project id"}),f.jsx("dd",{children:f.jsx("code",{children:i.id})}),u&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{children:"Workspace"}),f.jsx("dd",{children:u.name})]}),i.created&&f.jsxs(f.Fragment,{children:[f.jsx("dt",{children:"Created"}),f.jsx("dd",{children:new Date(i.created).toLocaleDateString()})]})]})]})}const yr=[{key:"claude",label:"Claude Code & Cowork"},{key:"hermes",label:"Hermes",hook:"hermes",note:"Registers BearDrive's hooks in Hermes's config: pull before every turn, push after edits with a session note, and report file reads to Insights."},{key:"codex",label:"Codex",hook:"codex",note:"Registers hooks in .codex/hooks.json.",extra:"Run /hooks inside Codex once to trust the project's .codex layer — after that every turn pulls, edits push automatically, and reads are reported to Insights."}];function Ig(i,u){const c=window.location.origin,r=u.id;if(i.key==="claude")return[{title:"Add the BearDrive plugin",desc:"One time, in any Claude Code session. The plugin ships the beardrive skill, the /beardrive commands, and turn-boundary sync hooks — and Claude Cowork shares the same plugins, so installing it once covers both.",code:`/plugin marketplace add runbear-io/beardrive +/plugin install beardrive@beardrive`},{title:"Set up this project conversationally",desc:"In a Claude Code or Cowork session in the folder where you want the files, run:",code:"/beardrive:install connect to "+c+", project "+r,extra:"Claude installs the CLI, signs this machine in, mounts the project, and registers the sync hooks — pull the latest before every turn, push after edits (stamped with the session that made them), and report file reads to Insights. It asks before anything it changes."}];const d=(u.name||"project").toLowerCase().replace(/[^a-z0-9._-]+/g,"-")||"project";return[{title:"Install the BearDrive CLI",desc:"One static binary. Homebrew on macOS and Linux; releases and `go install` also work.",code:"brew install runbear-io/tap/beardrive"},{title:"Sign in to this hub",desc:"Opens the browser once and stores a device token on this machine — the synced folder itself never holds credentials.",code:"bdrive login "+c},{title:"Mount the project into a local folder",desc:"Run it where you want the files. An existing folder works too — contents merge, and re-running init later (or after moving the folder) just resumes.",code:"mkdir -p ~/"+d+" && cd ~/"+d+` +bdrive init --project `+r},{title:"Connect "+i.label,desc:i.note,code:"bdrive hooks install --agent "+i.hook,extra:i.extra}]}function Pg(){try{return localStorage.getItem("bdrive-guide-agent")||"claude"}catch{return"claude"}}function wm({project:i}){const[u,c]=Q.useState(Pg),r=yr.find(d=>d.key===u)||yr[0];return f.jsxs("div",{className:"guide",children:[f.jsx("h1",{className:"in-title",children:i.name}),f.jsx("p",{className:"dl-sub",children:"Mount this project as a folder on any machine and connect your coding agent: files sync both ways in the background, every change is journaled with who made it, and agent reads feed Insights."}),f.jsx("div",{className:"gd-tabs",children:yr.map(d=>f.jsx("button",{className:"gd-tab"+(d.key===r.key?" active":""),"data-key":d.key,onClick:()=>{c(d.key);try{localStorage.setItem("bdrive-guide-agent",d.key)}catch{}},children:d.label},d.key))}),f.jsxs("div",{className:"gd-body",children:[Ig(r,i).map((d,y)=>f.jsxs("div",{className:"gd-step",children:[f.jsxs("div",{className:"gd-step-head",children:[f.jsx("span",{className:"gd-num",children:y+1}),f.jsx("span",{className:"gd-step-title",children:d.title})]}),d.desc&&f.jsx("p",{className:"gd-desc",children:d.desc}),d.code&&f.jsx(t1,{code:d.code}),d.extra&&f.jsx("p",{className:"gd-desc gd-extra",children:d.extra})]},y)),f.jsx("p",{className:"gd-done",children:"That's it — the folder now syncs on its own. Every agent turn starts from the latest state, edits appear here (and on every teammate's mount) within seconds, and what your agents read shows up in Insights."})]})]})}function t1({code:i}){const[u,c]=Q.useState("Copy");return f.jsxs("pre",{className:"gd-code",children:[f.jsx("code",{children:i}),f.jsx("button",{className:"gd-copy",onClick:async()=>{c(await Mi(i)?"Copied":"Copy failed"),setTimeout(()=>c("Copy"),1400)},children:u})]})}function e1({authEnabled:i,onCreate:u}){const c=Q.useRef(null),r=Q.useRef(null),d=()=>{const y=c.current.value.trim(),g=y.match(/join\/([0-9a-f]+)/)||y.match(/^([0-9a-f]{8,})$/);if(!g){bt("That doesn't look like an invite link.",!0);return}location.href="/join/"+g[1]};return f.jsxs("div",{className:"onboard",children:[f.jsx("h1",{children:"Welcome to BearDrive"}),f.jsx("p",{children:"You're signed in, but you're not part of any project yet."}),i&&f.jsxs("div",{className:"ob-card",children:[f.jsx("h3",{children:"Have an invite link?"}),f.jsx("p",{children:"A teammate can send you a join link. Paste it here:"}),f.jsxs("div",{className:"ob-row",children:[f.jsx("input",{id:"ob-invite",type:"text",placeholder:"https://…/join/…",autoComplete:"off",ref:c}),f.jsx("button",{id:"ob-join",className:"pbtn",onClick:d,children:"Join"})]})]}),f.jsxs("div",{className:"ob-card",children:[f.jsx("h3",{children:"Or start a new project"}),f.jsx("p",{children:"Create a shared space for your team's files."}),f.jsxs("div",{className:"ob-row",children:[f.jsx("input",{id:"ob-name",type:"text",placeholder:"Project name, e.g. wiki",autoComplete:"off",ref:r}),f.jsx("button",{id:"ob-create",className:"pbtn",onClick:()=>u(r.current.value.trim()),children:"Create"})]})]})]})}function a1(i,u=!0){const c=De({queryKey:["tree",i],queryFn:()=>Ge(i+"tree"),enabled:u,refetchInterval:15e3}),r=Q.useMemo(()=>{const d=[],y=new Map,g=A=>{for(const p of A.children||[])p.dir?(y.set(p.path,p),g(p)):d.push(p)};return c.data&&g(c.data),{flatFiles:d,dirIndex:y}},[c.data]);return{tree:c.data,...r,loaded:!!c.data}}function n1(i,u){return De({queryKey:["heat",i],queryFn:()=>Ge(i+"heat?days=30"),enabled:u,staleTime:6e4,refetchInterval:6e4}).data?.entries??null}function l1(i,u,c){return De({queryKey:["history",i,"prefix",u,20],queryFn:()=>Ge(i+"history?prefix="+encodeURIComponent(u)+"&n=20"),enabled:c,staleTime:15e3}).data?.entries??null}function am(i,u,c){if(!i)return null;if(!c)return i[u]||null;const r={human:0,agent:0,share:0};for(const[d,y]of Object.entries(i))d.startsWith(u+"/")&&(r.human+=y.human||0,r.agent+=y.agent||0,r.share+=y.share||0);return r.human||r.agent||r.share?r:null}function Oi(i){return(i.human||0)+(i.agent||0)+(i.share||0)}function Js(i){const u=Oi(i);if(!u)return"";let c=u+(u===1?" read":" reads");return i.agent&&(c+=" ("+i.agent+" agent)"),c}function i1(i){const u=Oi(i);return u?u<3?1:u<10?2:u<30?3:4:0}function s1(i){return f.jsx("nav",{id:"tree","aria-label":"Files",children:i.root&&f.jsx(Dm,{nodes:i.root.children||[],...i})})}function Dm({nodes:i,...u}){return f.jsx("ul",{children:i.map(c=>f.jsx(u1,{node:c,...u},c.path))})}function u1({node:i,...u}){const{expanded:c,onToggle:r,currentPath:d,listingShowing:y,onOpen:g}=u,A=i.dir?c.has(i.path):!1,p=()=>{if(i.dir&&d===i.path&&y){r(i.path);return}g(i.path),i.dir||ca()};return f.jsxs("li",{className:(i.dir?"dir":"file")+(i.dir&&!A?" collapsed":""),children:[f.jsxs("div",{className:"row"+(d===i.path?" active":""),"data-path":i.path,tabIndex:0,role:"button",title:i.name,"aria-expanded":i.dir?A:void 0,onClick:p,onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),p())},children:[f.jsx("span",{className:"chev",onClick:v=>{i.dir&&(v.stopPropagation(),r(i.path))},children:f.jsx(Pt,{name:"chevd"})}),f.jsx("span",{className:"ticon",children:f.jsx(Pt,{name:i.dir?"folder":"doc"})}),f.jsx("span",{className:"label",children:i.name})]}),i.dir&&f.jsx(Dm,{nodes:i.children||[],...u})]})}function c1(i){const u=i.split("/"),c=[];let r="";for(let d=0;d{r=r?r+"/"+d:d;const g=r,A=y===c.length-1;return f.jsxs("span",{children:[y>0&&f.jsx("span",{className:"crumb-sep",children:"/"}),A?f.jsx("span",{children:d}):f.jsx("span",{className:"crumb-seg",title:g,onClick:()=>u(g),children:d})]},g)})})}const o1={add:"plus",edit:"edit",delete:"x"},f1={add:"added",edit:"edited",delete:"deleted"};function Rm({entry:i,onOpen:u}){const[c,r]=Q.useState(!1),d=i.kind==="put"?"edit":i.kind,y=i.user_name?`${i.user_name} <${i.user}>`:i.user||i.author||"unknown",g=[i.device.name||i.device.id,i.device.os,i.device.ip].filter(Boolean).join(" · "),A=d!=="delete",p=v=>{v.target.tagName!=="A"&&A&&u(i.path)};return f.jsxs("div",{className:"hentry "+d+(A?" clickable":""),tabIndex:A?0:void 0,role:A?"button":void 0,onClick:p,onKeyDown:v=>{A&&(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),u(i.path))},children:[f.jsxs("div",{className:"hline",children:[f.jsx("span",{className:"hkind",children:f.jsx(Pt,{name:o1[d]||"dot"})}),f.jsx("span",{className:"hpath",children:i.path}),f.jsx("span",{className:"htag",children:f1[d]||d}),f.jsx("span",{className:"htime",children:new Date(i.time).toLocaleString()})]}),f.jsxs("div",{className:"hmeta",children:[f.jsx("span",{className:"hwho",children:y}),f.jsx("span",{className:"hdev",children:g}),f.jsx("span",{className:"hsize",children:i.size?Cm(i.size):""})]}),i.note&&f.jsx("div",{className:"hnote"+(c?" open":""),tabIndex:0,role:"button",title:c?"Collapse note":"Show full note","aria-expanded":c,onClick:v=>{v.stopPropagation(),v.target.tagName!=="A"&&r(!c)},onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),v.stopPropagation(),r(!c))},children:i.note.split(/(https?:\/\/\S+)/).map((v,T)=>/^https?:\/\//.test(v)?f.jsx("a",{href:v,target:"_blank",rel:"noopener",children:v},T):v)})]})}function d1(i){const{node:u,heatMap:c,onOpen:r}=i,d=(u.children||[]).slice().sort((v,T)=>Number(T.dir||!1)-Number(v.dir||!1)||v.name.localeCompare(T.name)),y=d.filter(v=>v.dir).length,g=d.length-y,A=[];y&&A.push(y+(y===1?" folder":" folders")),g&&A.push(g+(g===1?" file":" files"));const p=am(c,u.path,!0);return p&&A.push(Js(p)+" in 30 days"),f.jsxs("div",{className:"dirlist",children:[f.jsxs("h1",{className:"dl-title",children:[f.jsx("span",{className:"dl-title-icon",children:f.jsx(Pt,{name:"folder"})}),f.jsx("span",{children:u.name})]}),f.jsx("p",{className:"dl-sub",children:A.join(" · ")||"Empty folder"}),d.length===0?f.jsx("div",{className:"dl-empty",children:"Nothing in this folder yet."}):f.jsx("div",{className:"dl-items",children:d.map(v=>{let T="";if(v.dir){const S=(v.children||[]).length;T=S+(S===1?" item":" items")}else T=[v.size?Cm(v.size):"",v.time?new Date(v.time).toLocaleDateString():""].filter(Boolean).join(" · ");const m=am(c,v.path,!!v.dir);return m&&(T=Js(m)+(T?" · "+T:"")),f.jsxs("div",{className:"dl-row",tabIndex:0,role:"button",title:v.path,onClick:()=>r(v.path),onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),r(v.path))},children:[f.jsx("span",{className:"ticon",children:f.jsx(Pt,{name:v.dir?"folder":"doc"})}),f.jsx("span",{className:"dl-name",children:v.name}),m&&f.jsx("span",{className:"heatdot lvl"+i1(m),title:Js(m)+" in 30 days"}),f.jsx("span",{className:"dl-meta",children:T})]},v.path)})}),i.hub&&f.jsx(h1,{apiBase:i.apiBase,prefix:u.path+"/",onOpen:r,onFullHistory:()=>i.onFullHistory(u.path+"/"),onRendered:i.onRendered})]})}function h1(i){const u=l1(i.apiBase,i.prefix,!0),{onRendered:c}=i;return Q.useEffect(()=>{u&&u.length&&c&&c()},[u,c]),!u||u.length===0?null:f.jsxs("div",{className:"dl-history",children:[f.jsx("h3",{className:"dl-h3",children:"Recent changes"}),f.jsx("div",{className:"history dl-hlist",children:u.map((r,d)=>f.jsx(Rm,{entry:r,onOpen:i.onOpen},d))}),f.jsx("button",{className:"ai-btn dl-more",onClick:i.onFullHistory,children:"Full history"})]})}function m1(i){const{apiBase:u,path:c,onMeta:r}=i,d=u+"file?path="+encodeURIComponent(c);return Q.useEffect(()=>()=>r(""),[c,r]),Xg.test(c)?f.jsx(y1,{...i}):Vg.test(c)?f.jsx("iframe",{className:"htmlview",sandbox:"allow-scripts",src:d,title:c,onLoad:i.onRendered}):Kg.test(c)?f.jsx(g1,{src:d,alt:c,onRendered:i.onRendered}):Zg.test(c)?f.jsx(b1,{...i,fileURL:d}):f.jsxs("div",{className:"filecard",children:[f.jsx("div",{className:"name",children:c.split("/").pop()}),f.jsx("p",{children:"No preview for this file type."}),f.jsx("a",{className:"btn",download:!0,href:u+"download?path="+encodeURIComponent(c),children:"Download"})]})}function y1(i){const{apiBase:u,path:c,heatMap:r,flatFiles:d,onOpenFile:y,onMeta:g,onRendered:A}=i,{data:p,error:v}=De({queryKey:["render",u,c],queryFn:()=>Ge(u+"render?path="+encodeURIComponent(c))}),T=Q.useMemo(()=>p?p1(p.html,c,u):"",[p,c,u]);return Q.useEffect(()=>{if(!p)return;const m=[];p.author&&m.push(p.author+(p.device?" on "+p.device:"")),p.time&&m.push(new Date(p.time).toLocaleString());const S=r&&r[p.path];S&&Oi(S)&&m.push(Js(S)+" / 30d"),g(m.join(" · ")),A?.()},[p,r,g,A]),v?f.jsxs("div",{className:"empty",children:["Could not load file: ",v.message]}):p?f.jsx("div",{dangerouslySetInnerHTML:{__html:T},onClick:m=>v1(m,c,d,y)}):null}function v1(i,u,c,r){const d=i.target.closest("a");if(!d||!i.currentTarget.contains(d))return;const y=d.getAttribute("href")||"",g=u.includes("/")?u.slice(0,u.lastIndexOf("/")):"";y.startsWith("wiki:")?(i.preventDefault(),S1(decodeURIComponent(y.slice(5)),c,r)):/^([a-z]+:|\/|#)/i.test(y)||(i.preventDefault(),r(_m(g,decodeURIComponent(y))))}function p1(i,u,c){const r=u.includes("/")?u.slice(0,u.lastIndexOf("/")):"",d=g=>c+"file?path="+encodeURIComponent(g),y=new DOMParser().parseFromString(i,"text/html");for(const g of y.querySelectorAll("img")){const A=g.getAttribute("src")||"";/^([a-z]+:|\/)/i.test(A)||g.setAttribute("src",d(_m(r,A)))}for(const g of y.querySelectorAll("a")){const A=g.getAttribute("href")||"";/^https?:/i.test(A)&&(g.setAttribute("target","_blank"),g.setAttribute("rel","noopener"))}return y.body.innerHTML}function g1({src:i,alt:u,onRendered:c}){return f.jsx("img",{src:i,alt:u,onLoad:c})}function b1(i){const{path:u,fileURL:c,onRendered:r}=i,{data:d,error:y}=De({queryKey:["text",c],queryFn:async()=>{const g=await fetch(c);if(!g.ok)throw new Error(await g.text());return g.text()}});return Q.useEffect(()=>{d!=null&&r?.()},[d,r]),y?f.jsxs("div",{className:"empty",children:["Could not load file: ",y.message]}):d==null?null:f.jsx("pre",{className:"plain",children:d},u)}function S1(i,u,c){const r=i.toLowerCase(),d=u.find(y=>y.path.toLowerCase()===r||y.path.toLowerCase()===r+".md")||u.find(y=>{const g=y.name.toLowerCase();return g===r||g===r+".md"});d&&c(d.path)}function x1({url:i,copied:u,onClose:c}){const r=i.split("/s/")[1];return Q.useEffect(()=>{const d=y=>{y.key==="Escape"&&c()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[c]),f.jsx("div",{className:"modal-back",onClick:d=>d.target===d.currentTarget&&c(),children:f.jsxs("div",{className:"modal",children:[f.jsx("h3",{children:"Public link created"}),f.jsxs("p",{children:[f.jsx("b",{children:"Anyone with this link can view this file"})," — no account needed. It always shows the latest version until you revoke it."]}),f.jsx("div",{className:"modal-url",children:i}),f.jsxs("div",{className:"modal-actions",children:[f.jsx("button",{className:"pbtn",onClick:()=>Mi(i).then(d=>bt(d?"Copied.":"Select and copy the link above.")),children:u?"Copied ✓":"Copy link"}),f.jsx("button",{className:"ai-btn",onClick:()=>window.open(i,"_blank"),children:"Open"}),f.jsx("button",{className:"ai-del",onClick:async()=>{try{await on("DELETE","/api/shares/"+r),bt("Link revoked — it no longer works."),c()}catch(d){bt(d.message,!0)}},children:"Revoke"}),f.jsx("button",{className:"ai-btn",onClick:c,children:"Done"})]})]})})}function nm(i,u){if(!i)return{score:0,hits:[]};const c=i.toLowerCase(),r=u.toLowerCase();let d=0,y=0,g=0;const A=[];for(let p=0;p3&&r.endsWith("ies")?d=r.slice(0,-3)+"y":r.length>3&&r.endsWith("es")?d=r.slice(0,-2):r.length>2&&r.endsWith("s")&&(d=r.slice(0,-1)),d?nm(d,u):null}function E1({text:i,hits:u}){const c=[];let r=0;return u.forEach((d,y)=>{d>r&&c.push(i.slice(r,d)),c.push(f.jsx("b",{children:i[d]},y)),r=d+1}),c.push(i.slice(r)),f.jsx("span",{className:"plabel",children:c})}function T1({open:i,onClose:u,candidates:c}){const[r,d]=Q.useState(""),[y,g]=Q.useState(0),A=Q.useRef(null),p=Q.useRef(null),v=Q.useMemo(()=>{if(!i)return[];const m=[];for(const S of c()){const U=j1(r,S.label);U&&m.push({...S,score:U.score,hits:U.hits})}return m.sort((S,U)=>U.score-S.score),m.slice(0,40)},[i,r,c]);Q.useEffect(()=>{i&&(d(""),g(0),A.current?.focus())},[i]),Q.useEffect(()=>g(0),[r]),Q.useEffect(()=>{p.current?.children[y]?.scrollIntoView({block:"nearest"})},[y,v]);const T=m=>{u(),m.run()};return Q.useEffect(()=>{if(!i)return;const m=S=>{if(S.key==="Escape")S.preventDefault(),u();else if(S.key==="ArrowDown"||S.key==="ArrowUp"){S.preventDefault();const U=v.length;U&&g(_=>(_+(S.key==="ArrowDown"?1:U-1))%U)}else S.key==="Enter"&&(S.preventDefault(),v[y]&&T(v[y]))};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[i,v,y]),i?f.jsx("div",{id:"palette-overlay",onClick:m=>m.target===m.currentTarget&&u(),children:f.jsxs("div",{id:"palette",role:"dialog","aria-label":"Search and quick actions",children:[f.jsxs("div",{id:"palette-inputwrap",children:[f.jsx(Pt,{name:"search"}),f.jsx("input",{id:"palette-input",type:"text",placeholder:"Search file names, projects, actions…",autoComplete:"off",spellCheck:!1,ref:A,value:r,onChange:m=>d(m.target.value)})]}),f.jsx("ul",{id:"palette-results",ref:p,children:v.length===0?f.jsx("li",{className:"pempty",children:"No matches — search covers file names, projects, and actions"}):v.map((m,S)=>f.jsxs("li",{className:S===y?"selected":void 0,onClick:()=>T(m),onMouseMove:()=>y!==S&&g(S),children:[f.jsx("span",{className:"picon",children:f.jsx(Pt,{name:m.icon})}),f.jsx(E1,{text:m.label,hits:m.hits}),f.jsx("span",{className:"pkind",children:m.kind})]},m.kind+":"+m.label))}),f.jsx("footer",{id:"palette-hint",children:"↑↓ navigate · ⏎ select · esc close"})]})}):null}const Si=3,El=30;function N1(i,u){return De({queryKey:["heatDevices",i],queryFn:()=>Ge(i+"heat?by=device&days=30"),enabled:u,retry:!1,staleTime:6e4}).data?.devices??null}function lm(i){const[u,c]=Q.useState("all"),{flatFiles:r,heatMap:d,devices:y,scope:g}=i,A=S=>!g||S===g||S.startsWith(g+"/"),p=g?r.filter(S=>A(S.path)):r,v=y&&g?y.map(S=>{const U={};for(const[_,B]of Object.entries(S.folders||{}))A(_)&&(U[_]=B);return{...S,folders:U}}).filter(S=>Object.keys(S.folders).length>0):y,T=Date.now(),m=p.map(S=>{const U=d&&d[S.path]||{},_=S.time?Math.max(0,(T-new Date(S.time).getTime())/864e5):0,B=u==="all"?Oi(U):U[u]||0;return{path:S.path,reads:B,agent:U.agent||0,total:Oi(U),days:_,danger:B>=Si&&_>=El}});return f.jsxs("div",{className:"insights",children:[f.jsxs("h1",{className:"in-title",children:["Knowledge insights",g?f.jsxs("span",{className:"in-scope",children:[" · ",g]}):null]}),f.jsx("p",{className:"dl-sub",children:g?`Reads over the last 30 days × freshness, for ${g} and everything in it.`:"Reads over the last 30 days × how long since each file changed. Hot but stale knowledge — read a lot, maintained by nobody — is the danger zone."}),f.jsx("div",{className:"in-lens",children:["all","human","agent"].map(S=>f.jsx("button",{className:"in-lens-btn"+(S===u?" active":""),onClick:()=>c(S),children:S==="all"?"All reads":S==="human"?"Human reads":"Agent reads"},S))}),f.jsx("h3",{className:"dl-h3",children:"Map — cell size = reads, color = freshness"}),f.jsx(O1,{pts:m,onOpenFile:i.onOpenFile,onOpenFolder:i.onOpenFolder,isFolder:i.isFolder}),f.jsx("h3",{className:"dl-h3",children:"Reads × freshness"}),f.jsx(A1,{pts:m,onOpenFile:i.onOpenFile}),f.jsx("h3",{className:"dl-h3",children:"Hot path — top files by reads"}),f.jsx(C1,{pts:m,lens:u,onOpenFile:i.onOpenFile}),v&&v.length>0&&f.jsxs(f.Fragment,{children:[f.jsx("h3",{className:"dl-h3",children:"Agent coverage — which agents read which areas"}),f.jsx(_1,{devices:v})]})]})}function M1(i){const u=[[76,195,138],[232,196,84],[224,93,93]],c=Math.min(1,Math.max(0,i/300))*(u.length-1),r=Math.min(u.length-2,Math.floor(c)),d=c-r,y=u[r].map((g,A)=>Math.round(g+(u[r+1][A]-g)*d));return`rgb(${y[0]},${y[1]},${y[2]})`}function im(i,u,c,r,d){const y=i.reduce((v,T)=>v+T.value,0);if(!y||r<=0||d<=0)return[];const g=i.slice().sort((v,T)=>T.value-v.value).map(v=>({it:v,a:v.value/y*r*d})),A=(v,T)=>{const S=v.reduce((_,B)=>_+B.a,0)/T;let U=0;for(const _ of v){const B=_.a/S;U=Math.max(U,B/S,S/B)}return U},p=[];for(;g.length;){const v=r>=d,T=v?d:r,m=[g.shift()];for(;g.length&&A(m.concat(g[0]),T)<=A(m,T);)m.push(g.shift());const S=m.reduce((_,B)=>_+B.a,0)/T;let U=0;for(const _ of m){const B=_.a/S;v?p.push({item:_.it,x:u,y:c+U,w:S,h:B}):p.push({item:_.it,x:u+U,y:c,w:B,h:S}),U+=B}v?(u+=S,r-=S):(c+=S,d-=S)}return p}const vr=15;function O1({pts:i,onOpenFile:u,onOpenFolder:c,isFolder:r}){const g=new Map;for(const p of i){const v=p.path.includes("/")?p.path.split("/")[0]:"/";let T=g.get(v);T||g.set(v,T={name:v,files:[],value:0}),T.files.push(p),T.value+=p.reads+1}const A=[];for(const p of im([...g.values()],0,0,720,480)){const v=p.item,T=v.name==="/"?"":v.name;if(A.push(f.jsx("rect",{x:p.x+1,y:p.y+1,width:Math.max(0,p.w-2),height:Math.max(0,p.h-2),rx:3,className:"in-tm-group","data-dir":T},"g"+v.name)),p.w>46&&p.h>vr+10){let S=v.name==="/"?"(root)":v.name;const U=Math.floor((p.w-8)/6);S.length>U&&(S=S.slice(0,Math.max(1,U-1))+"…"),A.push(f.jsx("text",{x:p.x+5,y:p.y+12,className:"in-tm-glabel","data-dir":T,children:S},"gl"+v.name))}const m=im(v.files.map(S=>({...S,name:S.path.split("/").pop(),value:S.reads+1})),p.x+2,p.y+vr,Math.max(0,p.w-4),Math.max(0,p.h-vr-2));for(const S of m)if(A.push(f.jsx("rect",{x:S.x+.6,y:S.y+.6,width:Math.max(.4,S.w-1.2),height:Math.max(.4,S.h-1.2),rx:1.5,fill:M1(S.item.days),className:"in-tm-cell","data-path":S.item.path,children:f.jsx("title",{children:`${S.item.path} — ${S.item.reads} read${S.item.reads===1?"":"s"}/30d · changed ${Math.round(S.item.days)}d ago`})},S.item.path)),S.w>54&&S.h>16){const U=Math.floor((S.w-8)/6);let _=(S.item.danger?"⚠ ":"")+S.item.name;_.length>U&&(_=_.slice(0,Math.max(1,U-1))+"…"),U>=5&&A.push(f.jsx("text",{x:S.x+4.5,y:S.y+12.5,className:"in-tm-label","data-path":S.item.path,children:_},"l"+S.item.path))}}return f.jsx("svg",{viewBox:"0 0 720 480",className:"in-chart in-treemap",onClick:p=>{const v=p.target.closest("[data-path], [data-dir]");if(!v)return;const T=v.getAttribute("data-path");if(T)return u(T);const m=v.getAttribute("data-dir");m&&r(m)&&c(m)},children:A})}function A1({pts:i,onOpenFile:u}){const d={l:44,r:16,t:20,b:34},y=Math.max(El*2,...i.map(m=>m.days)),g=Math.max(Si*2,...i.map(m=>m.reads)),A=m=>Math.log10(m+1)/Math.log10(y+1),p=m=>Math.log10(m+1)/Math.log10(g+1),v=m=>d.l+A(m)*(720-d.l-d.r),T=m=>360-d.b-p(m)*(360-d.t-d.b);return f.jsxs("svg",{viewBox:"0 0 720 360",className:"in-chart",children:[f.jsx("rect",{x:v(El),y:d.t,width:720-d.r-v(El),height:T(Si)-d.t,className:"in-danger-zone"}),f.jsx("line",{x1:v(El),y1:d.t,x2:v(El),y2:360-d.b,className:"in-threshold"}),f.jsx("line",{x1:d.l,y1:T(Si),x2:720-d.r,y2:T(Si),className:"in-threshold"}),f.jsx("line",{x1:d.l,y1:360-d.b,x2:720-d.r,y2:360-d.b,className:"in-axis"}),f.jsx("line",{x1:d.l,y1:d.t,x2:d.l,y2:360-d.b,className:"in-axis"}),f.jsx("text",{x:(d.l+720-d.r)/2,y:352,className:"in-label",children:"days since last change →"}),f.jsx("text",{x:12,y:(d.t+360-d.b)/2,className:"in-label",transform:`rotate(-90 12 ${(d.t+360-d.b)/2})`,children:"reads / 30d →"}),f.jsx("text",{x:720-d.r-6,y:d.t+14,className:"in-quad in-quad-danger",textAnchor:"end",children:"hot + stale"}),f.jsx("text",{x:d.l+6,y:d.t+14,className:"in-quad",children:"hot + fresh"}),f.jsx("text",{x:720-d.r-6,y:360-d.b-8,className:"in-quad",textAnchor:"end",children:"cold + stale"}),f.jsx("text",{x:720-d.r-6,y:d.t+28,className:"in-label",textAnchor:"end",children:"dot size = agent share of reads"}),i.map(m=>{const S=m.total?(m.agent||0)/m.total:0;return f.jsx("circle",{cx:Number(v(m.days).toFixed(1)),cy:Number(T(m.reads).toFixed(1)),r:Number((3+4*S).toFixed(1)),className:"in-pt"+(m.danger?" danger":m.reads?"":" cold"),onClick:()=>u(m.path),children:f.jsx("title",{children:`${m.path} — ${m.reads} read${m.reads===1?"":"s"} / 30d · changed ${Math.round(m.days)}d ago`})},m.path)})]})}function C1({pts:i,lens:u,onOpenFile:c}){const r=i.filter(y=>y.reads>0).sort((y,g)=>g.reads-y.reads||g.days-y.days).slice(0,20);if(!r.length)return f.jsx("div",{className:"dl-empty",children:"No reads in the window yet."});const d=r[0].reads;return f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"in-hotpath",children:r.map(y=>{const g=u==="agent"?1:u==="human"?0:y.total?y.agent/y.total:0,A=y.reads/d*100;return f.jsxs("div",{className:"in-hp-row",tabIndex:0,role:"button",title:y.danger?`${y.reads} read${y.reads===1?"":"s"}/30d · unchanged ${Math.round(y.days)}d — review this file`:y.path,onClick:()=>c(y.path),onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),c(y.path))},children:[f.jsx("span",{className:"in-hp-name"+(y.danger?" danger":""),children:y.path+(y.danger?" ⚠":"")}),f.jsxs("span",{className:"in-hp-bar",children:[f.jsx("span",{className:"in-hp-agent",style:{width:(A*g).toFixed(1)+"%"}}),f.jsx("span",{className:"in-hp-human",style:{width:(A*(1-g)).toFixed(1)+"%"}})]}),f.jsx("span",{className:"in-hp-count",children:y.reads})]},y.path)})}),f.jsxs("p",{className:"in-legend",children:[f.jsx("span",{className:"in-sw agent"})," agent reads ",f.jsx("span",{className:"in-sw human"})," human reads"]})]})}function _1({devices:i}){const u=new Map;for(const S of i)for(const[U,_]of Object.entries(S.folders||{}))u.set(U,(u.get(U)||0)+_);const c=[...u.entries()].sort((S,U)=>U[1]-S[1]).slice(0,12).map(S=>S[0]),r=i.slice(0,12),d=140,y=6,g=Math.min(76,Math.max(34,(720-d-8)/c.length)),A=26,p=720,v=y+r.length*A+58,T=Math.max(1,...r.flatMap(S=>c.map(U=>(S.folders||{})[U]||0))),m=S=>{const U=[23,25,31],_=[245,166,35],B=U.map((X,G)=>Math.round(X+(_[G]-X)*S));return`rgb(${B[0]},${B[1]},${B[2]})`};return f.jsxs("svg",{viewBox:`0 0 ${p} ${v}`,className:"in-chart in-matrix",children:[r.map((S,U)=>{let _=S.name||S.id||"";return _.length>20&&(_=_.slice(0,19)+"…"),f.jsxs("g",{children:[f.jsx("text",{x:d-8,y:y+U*A+17,textAnchor:"end",className:"in-label",children:_}),c.map((B,X)=>{const G=(S.folders||{})[B]||0;return f.jsx("rect",{x:d+X*g,y:y+U*A,width:g-4,height:A-4,rx:3,fill:m(Math.sqrt(G/T)),children:f.jsx("title",{children:`${S.name||S.id} × ${B||"(root)"}: ${G} read${G===1?"":"s"}/30d`})},B)})]},S.id||U)}),c.map((S,U)=>{const _=d+U*g+(g-4)/2,B=y+r.length*A+14;return f.jsx("text",{x:_,y:B,className:"in-label",textAnchor:"end",transform:`rotate(-28 ${_} ${B})`,children:S||"(root)"},S)})]})}function z1(i){const{apiBase:u,target:c,isFolder:r,onMeta:d,onRendered:y}=i,g=c?r(c)?{prefix:c+"/"}:{path:c}:{prefix:""},A="path"in g&&g.path!==void 0?"path="+encodeURIComponent(g.path):"prefix="+encodeURIComponent(g.prefix??""),{data:p,error:v}=De({queryKey:["history",u,A,200],queryFn:()=>Ge(u+"history?"+A+"&n=200"),staleTime:15e3});if(Q.useEffect(()=>{v&&d("History unavailable: "+v.message)},[v,d]),Q.useEffect(()=>{p&&y?.()},[p,y]),!p)return null;const T=p.entries||[];return f.jsxs("div",{className:"history",children:[T.length===0&&f.jsx("div",{className:"empty",children:"No history yet."}),T.map((m,S)=>f.jsx(Rm,{entry:m,onOpen:i.onOpen},S))]})}function w1(i,u){return i?u(i)?i+"/ (folder)":i:"all changes"}function Um(i){const{config:u,apiBase:c,route:r,hub:d,project:y}=i,g=Rr(),A=Ci(),{tree:p,flatFiles:v,dirIndex:T,loaded:m}=a1(c,!d||!!y),S=n1(c,d&&!!y&&!!u.reads?.enabled),U=d&&!!y&&!r.path&&!r.view,_=!!i.canInsights&&(r.view==="insights"||U),B=N1(c,_);Q.useEffect(()=>{_&&A.invalidateQueries({queryKey:["heat",c]})},[_,c,A]);const X=r.path,G=X||(r.view==="insights"||r.view==="history")&&r.viewTarget||"",mt=!!X&&T.has(X),et=!!X&&m&&!mt&&v.some(lt=>lt.path===X),Mt=!!X&&m&&!mt&&!et,Ut=mt&&!r.view,[P,F]=Q.useState(()=>new Set),ft=Q.useRef(!0);Q.useEffect(()=>{if(!p||!ft.current)return;ft.current=!1;const lt=(p.children||[]).filter(pt=>pt.dir);lt.length===1&&F(pt=>new Set(pt).add(lt[0].path))},[p]),Q.useEffect(()=>{if(!G||!m)return;F(pt=>{const rt=new Set(pt);for(const Ke of c1(G))rt.add(Ke);return T.has(G)&&rt.add(G),rt});const lt=document.querySelector(`#tree .row[data-path="${CSS.escape(G)}"]`);lt&<.scrollIntoView({block:"nearest"})},[G,m,T]);const Yt=Q.useCallback(lt=>{F(pt=>{const rt=new Set(pt);return rt.has(lt)?rt.delete(lt):rt.add(lt),rt})},[]),Xt=Q.useRef(null),Zt=Q.useRef(new Map),Ct=Q.useRef({key:"",want:0,attempts:0});Q.useEffect(()=>{Ct.current={key:g,want:kg()==="POP"?Zt.current.get(g)??0:0,attempts:0}},[g]);const Dt=Q.useCallback(()=>{const lt=Xt.current,pt=Ct.current;!lt||pt.key!==g||pt.attempts>=3||(pt.attempts++,lt.scrollTo({top:pt.want,behavior:"instant"}))},[g]),fe=Q.useCallback(()=>{Xt.current&&Zt.current.set(g,Xt.current.scrollTop)},[g]),Nt=Q.useCallback(lt=>{we(Yg(lt,y?.id)),ca()},[y?.id]),O=Q.useCallback(lt=>we(Tl("history",y?.id,lt)),[y?.id]),[L,J]=Q.useState(""),[ct,it]=Q.useState(null),[x,D]=Q.useState(!1),[q,Y]=Q.useState(!1);Q.useEffect(()=>Yv(()=>Y(!0)),[]);const K=Q.useRef(null),$=i.panel??null,ot=!$&&d&&!!y&&et,nt=!$&&d&&!!y,jt=!$&&et,Xe=!$&&(et||d&&!!y&&mt),aa=c+"download?path="+encodeURIComponent(X),ge=Q.useCallback(async()=>{try{const lt=await fetch(c+"shares",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:X})});if(!lt.ok)throw new Error(await lt.text());const pt=await lt.json(),rt=await Mi(pt.url);it({url:pt.url,copied:rt})}catch(lt){bt("Share failed: "+lt.message,!0)}},[c,X]),pa=Q.useCallback(()=>{if(!X)return O("");O(mt?X+"/":X)},[X,mt,O]);Q.useEffect(()=>{const lt=pt=>{(pt.metaKey||pt.ctrlKey)&&pt.key.toLowerCase()==="k"&&(pt.preventDefault(),Y(rt=>!rt))};return window.addEventListener("keydown",lt),()=>window.removeEventListener("keydown",lt)},[]);const Re=Q.useCallback(()=>{const lt=[],pt=(rt,Ke,le,Ml)=>lt.push({icon:rt,label:Ke,kind:le,run:Ml});if(d&&y&&X&&(et&&pt("share","Share: "+X,"action",ge),pt("hist","History: "+X,"action",pa),et&&pt("download","Download: "+X,"action",()=>K.current?.click())),d&&y&&pt("hist","History: whole project","action",()=>O("")),d)for(const rt of i.projects||[])(!y||rt.id!==y.id)&&pt("folder","Switch to project: "+rt.name,"project",()=>we("/"+rt.id));u.auth?.enabled&&pt("power","Sign out","action",()=>window.location.href="/auth/logout");for(const rt of T.keys())pt("folder",rt,"folder",()=>Nt(rt));for(const rt of v)pt("doc",rt.path,"file",()=>Nt(rt.path));return lt},[d,y,X,et,u.auth?.enabled,T,v,i.projects,ge,pa,O,Nt]);Q.useEffect(()=>{if(!x)return;const lt=()=>D(!1);return document.addEventListener("click",lt),()=>document.removeEventListener("click",lt)},[x]);const ra=Q.useCallback(lt=>T.has(lt),[T]);let be="markdown",te;$?(be="view",te=$.body):r.view==="insights"?(be="view",te=i.canInsights?f.jsx(lm,{flatFiles:v,heatMap:S,devices:B,scope:r.viewTarget||"",onOpenFile:Nt,onOpenFolder:Nt,isFolder:ra}):f.jsx("div",{className:"empty",children:"Insights is for hub admins and org owners."})):r.view==="history"?(be="view",te=f.jsx(z1,{apiBase:c,target:r.viewTarget||"",isFolder:ra,onOpen:Nt,onMeta:J,onRendered:Dt})):X?m?Mt?(be="view",te=f.jsxs("div",{className:"notfound",children:[f.jsx("h1",{children:"Couldn't find that"}),f.jsxs("p",{children:[f.jsx("code",{children:X})," isn't in this project right now."]}),f.jsx("p",{className:"nf-sub",children:"If it was just created, it may still be uploading or syncing from a teammate's device — this page checks again automatically every few seconds, so refresh or come back in a moment."}),f.jsx("button",{className:"pbtn",onClick:()=>A.invalidateQueries({queryKey:["tree",c]}),children:"Check again"})]})):mt?(be="view",te=f.jsx(d1,{node:T.get(X),heatMap:S,hub:d&&!!y,apiBase:c,onOpen:Nt,onFullHistory:O,onRendered:Dt})):te=f.jsx(m1,{apiBase:c,path:X,heatMap:S,flatFiles:v,onOpenFile:Nt,onMeta:J,onRendered:Dt}):te=f.jsx("div",{className:"empty",children:"Loading…"}):U?(be="view",te=f.jsxs(f.Fragment,{children:[f.jsx(wm,{project:y}),i.canInsights&&f.jsx("div",{className:"home-insights",children:f.jsx(lm,{flatFiles:v,heatMap:S,devices:B,onOpenFile:Nt,onOpenFolder:Nt,isFolder:ra})})]})):te=f.jsx("div",{className:"empty",children:"Select a file to read it."});const dn=$?$.crumb:X?f.jsx(r1,{path:X,onOpenFolder:Nt}):r.view==="insights"?"Insights — "+(r.viewTarget||y?.name||""):r.view==="history"?"History — "+w1(r.viewTarget||"",ra):U?y.name:null,ye=f.jsx(Ni,{crumb:dn,meta:L,actions:f.jsxs(f.Fragment,{children:[ot&&f.jsx("button",{id:"share-btn",className:"btn icon-only",title:"Share","aria-label":"Share",onClick:ge,children:f.jsx(Pt,{name:"share"})}),nt&&!X&&!r.view&&f.jsxs("button",{id:"history-btn",className:"btn",onClick:pa,children:[f.jsx(Pt,{name:"hist"})," ",f.jsx("span",{className:"lbl",children:"History"})]}),jt&&f.jsx("a",{id:"download",hidden:!0,download:!0,href:aa,ref:K,children:"Download"}),Xe&&f.jsx("button",{id:"more-btn",className:"btn icon-only",title:"More actions","aria-label":"More actions",onClick:lt=>{lt.stopPropagation(),D(!x)},children:f.jsx(Pt,{name:"dots"})}),x&&f.jsxs("div",{id:"more-menu",role:"menu",children:[nt&&f.jsx("button",{className:"more-item",onClick:pa,children:"History"}),jt&&f.jsx("button",{className:"more-item",onClick:()=>K.current?.click(),children:"Download"}),i.canInsights&&f.jsx("button",{className:"more-item",onClick:()=>{i.onClosePanel?.(),we(Tl("insights",y?.id,X))},children:"Insights"})]})]})});return f.jsxs(f.Fragment,{children:[f.jsx(Ti,{vault:i.sidebar.vault,projectsNav:i.sidebar.projectsNav,orgBar:i.sidebar.orgBar,tree:f.jsx(s1,{root:p,expanded:P,onToggle:Yt,currentPath:G,listingShowing:Ut,onOpen:Nt}),topbar:ye,contentClass:be,contentRef:Xt,onContentScroll:fe,children:te}),ct&&f.jsx(x1,{url:ct.url,copied:ct.copied,onClose:()=>it(null)}),f.jsx(T1,{open:q,onClose:()=>Y(!1),candidates:Re})]})}function D1({config:i}){const u=Rr(),c=Nm(),[r,d]=Q.useState(null),[y,g]=Q.useState(null);Q.useEffect(()=>g(null),[u]);const A=Q.useMemo(()=>{const P=u.match(/^\/join\/([0-9a-f]+)\/?$/);return P?P[1]:null},[u]),{data:p}=Bg(!A),{data:v}=Qg(!A),T=!!i.auth.admin,{data:m}=Tm(T),S=Q.useMemo(()=>Om(u,"hub"),[u]),U=Q.useMemo(()=>p&&(p.find(P=>P.id===S.project)||r&&p.find(P=>P.org===r)||p[0])||null,[p,S.project,r]);if(Q.useEffect(()=>{document.title=U?U.name+" — BearDrive":i.brand||i.volume||"BearDrive"},[U,i]),A)return f.jsx(R1,{token:A,onDone:async P=>{d(P),await c(),we("/",{replace:!0})}});const _=i.brand||i.volume||"BearDrive",B=U&&v?.find(P=>P.id===U.org)||null,X=T||(B?B.role==="owner":!1),G=f.jsx($s,{name:_,onHome:()=>we("/"),search:!!U}),mt=i.me?f.jsx($g,{me:i.me,org:B,admin:T?{pending:m?.length||0,onClick:()=>{g({kind:"hub"}),ca()}}:void 0,onOrgSettings:P=>{g({kind:"org",orgId:P.id}),ca()}}):void 0;if(!p||!v)return f.jsx(Ti,{vault:G,topbar:f.jsx(Ni,{}),children:f.jsx("div",{className:"empty",children:"Loading…"})});if(!U)return f.jsx(Ti,{vault:G,projectsNav:f.jsx(em,{projects:p}),orgBar:mt,topbar:f.jsx(Ni,{}),contentClass:"view",children:f.jsx(e1,{authEnabled:i.auth.enabled,onCreate:async P=>{if(!P){bt("Give the project a name.",!0);return}try{const F=await Nl("/api/projects",{name:P});await c(),we("/"+F.project.id),bt(`Created “${F.project.name}”.`)}catch(F){bt("Could not create the project: "+F.message,!0)}}})});const et=y?.kind==="org"?v.find(P=>P.id===y.orgId):null,Mt=y?.kind==="hub"?{crumb:"Signup & access",body:f.jsx(Fg,{})}:et?{crumb:et.name,body:f.jsx(Jg,{org:et,projects:p,myEmail:i.me?.email||"",onProjectsChanged:c})}:null,Ut=S.view==="settings"?{crumb:"Project settings",body:f.jsx(Wg,{project:U,org:B})}:S.view==="install"?{crumb:"Installation",body:f.jsx("div",{className:"onboard",children:f.jsx(wm,{project:U})})}:null;return S.project!==U.id?f.jsx(Gg,{to:"/"+U.id}):f.jsx(Um,{config:i,apiBase:"/api/p/"+U.id+"/",route:S,hub:!0,project:U,projects:p,canInsights:X,sidebar:{vault:G,projectsNav:f.jsx(em,{projects:p,currentId:U.id,menu:{active:y?null:S.view==="insights"&&!S.viewTarget?"dashboard":S.view==="install"?"install":S.view==="history"&&!S.viewTarget?"history":S.view==="settings"?"settings":null,onDashboard:()=>{g(null),we(Tl("insights",U.id)),ca()},onInstall:()=>{g(null),we(Tl("install",U.id)),ca()},onHistory:()=>{g(null),we(Tl("history",U.id)),ca()},onSettings:()=>{g(null),we(Tl("settings",U.id)),ca()}}}),orgBar:mt},panel:Mt||Ut,onClosePanel:()=>g(null)},U.id)}function R1({token:i,onDone:u}){return Q.useEffect(()=>{let c=!1;return Nl("/api/invites/"+i).then(r=>{c||(bt(`Welcome — you joined the “${r.org.name}” team. Opening its projects…`),u(r.org.id))}).catch(r=>{c||String(r.message).includes("signing in")||(bt("Could not accept the invite: "+r.message,!0),u(null))}),()=>{c=!0}},[i]),f.jsx(Ti,{vault:f.jsx($s,{name:"BearDrive"}),topbar:f.jsx(Ni,{}),children:f.jsx("div",{className:"empty",children:"Joining…"})})}function U1({config:i}){const u=Rr(),c=i.volume||"BearDrive";Q.useEffect(()=>{document.title=i.brand||c},[i,c]);const r=Q.useMemo(()=>Om(u,"volume"),[u]);return f.jsx(Um,{config:i,apiBase:"/api/",route:r,hub:!1,sidebar:{vault:f.jsx($s,{name:c,showSignout:i.auth.enabled,search:!0})}})}function H1(){const{data:i}=Lv();return f.jsxs(f.Fragment,{children:[i?i.mode==="hub"?f.jsx(D1,{config:i}):f.jsx(U1,{config:i}):f.jsx(Ti,{vault:f.jsx($s,{name:"…",showSignout:!1}),topbar:f.jsx(Ni,{}),children:f.jsx("div",{className:"empty",children:"Loading…"})}),f.jsx(Rg,{}),f.jsx(Ug,{})]})}const q1=new Ov({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1}}});ev.createRoot(document.getElementById("root")).render(f.jsx(Q.StrictMode,{children:f.jsx(Av,{client:q1,children:f.jsx(H1,{})})})); diff --git a/internal/webapp/static/assets/index-m4Vx6mmC.js b/internal/webapp/static/assets/index-m4Vx6mmC.js deleted file mode 100644 index 3393bbc..0000000 --- a/internal/webapp/static/assets/index-m4Vx6mmC.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))f(d);new MutationObserver(d=>{for(const m of d)if(m.type==="childList")for(const g of m.addedNodes)g.tagName==="LINK"&&g.rel==="modulepreload"&&f(g)}).observe(document,{childList:!0,subtree:!0});function r(d){const m={};return d.integrity&&(m.integrity=d.integrity),d.referrerPolicy&&(m.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?m.credentials="include":d.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function f(d){if(d.ep)return;d.ep=!0;const m=r(d);fetch(d.href,m)}})();var Xs={exports:{}},Vn={};var ph;function Lv(){if(ph)return Vn;ph=1;var i=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function r(f,d,m){var g=null;if(m!==void 0&&(g=""+m),d.key!==void 0&&(g=""+d.key),"key"in d){m={};for(var A in d)A!=="key"&&(m[A]=d[A])}else m=d;return d=m.ref,{$$typeof:i,type:f,key:g,ref:d!==void 0?d:null,props:m}}return Vn.Fragment=c,Vn.jsx=r,Vn.jsxs=r,Vn}var gh;function Yv(){return gh||(gh=1,Xs.exports=Lv()),Xs.exports}var o=Yv(),Ks={exports:{}},I={};var bh;function Gv(){if(bh)return I;bh=1;var i=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),m=Symbol.for("react.consumer"),g=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),E=Symbol.for("react.activity"),x=Symbol.iterator;function w(S){return S===null||typeof S!="object"?null:(S=x&&S[x]||S["@@iterator"],typeof S=="function"?S:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q=Object.assign,Y={};function F(S,H,L){this.props=S,this.context=H,this.refs=Y,this.updater=L||z}F.prototype.isReactComponent={},F.prototype.setState=function(S,H){if(typeof S!="object"&&typeof S!="function"&&S!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,S,H,"setState")},F.prototype.forceUpdate=function(S){this.updater.enqueueForceUpdate(this,S,"forceUpdate")};function yt(){}yt.prototype=F.prototype;function lt(S,H,L){this.props=S,this.context=H,this.refs=Y,this.updater=L||z}var Ct=lt.prototype=new yt;Ct.constructor=lt,q(Ct,F.prototype),Ct.isPureReactComponent=!0;var Rt=Array.isArray;function at(){}var k={H:null,A:null,T:null,S:null},pt=Object.prototype.hasOwnProperty;function Zt(S,H,L){var G=L.ref;return{$$typeof:i,type:S,key:H,ref:G!==void 0?G:null,props:L}}function ee(S,H){return Zt(S.type,H,S.props)}function le(S){return typeof S=="object"&&S!==null&&S.$$typeof===i}function Ut(S){var H={"=":"=0",":":"=2"};return"$"+S.replace(/[=:]/g,function(L){return H[L]})}var ae=/\/+/g;function Be(S,H){return typeof S=="object"&&S!==null&&S.key!=null?Ut(""+S.key):H.toString(36)}function zt(S){switch(S.status){case"fulfilled":return S.value;case"rejected":throw S.reason;default:switch(typeof S.status=="string"?S.then(at,at):(S.status="pending",S.then(function(H){S.status==="pending"&&(S.status="fulfilled",S.value=H)},function(H){S.status==="pending"&&(S.status="rejected",S.reason=H)})),S.status){case"fulfilled":return S.value;case"rejected":throw S.reason}}throw S}function _(S,H,L,G,$){var W=typeof S;(W==="undefined"||W==="boolean")&&(S=null);var dt=!1;if(S===null)dt=!0;else switch(W){case"bigint":case"string":case"number":dt=!0;break;case"object":switch(S.$$typeof){case i:case c:dt=!0;break;case M:return dt=S._init,_(dt(S._payload),H,L,G,$)}}if(dt)return $=$(S),dt=G===""?"."+Be(S,0):G,Rt($)?(L="",dt!=null&&(L=dt.replace(ae,"$&/")+"/"),_($,H,L,"",function(Gl){return Gl})):$!=null&&(le($)&&($=ee($,L+($.key==null||S&&S.key===$.key?"":(""+$.key).replace(ae,"$&/")+"/")+dt)),H.push($)),1;dt=0;var kt=G===""?".":G+":";if(Rt(S))for(var _t=0;_t>>1,gt=_[ot];if(0>>1;otd(L,V))Gd($,L)?(_[ot]=$,_[G]=V,ot=G):(_[ot]=L,_[H]=V,ot=H);else if(Gd($,V))_[ot]=$,_[G]=V,ot=G;else break t}}return B}function d(_,B){var V=_.sortIndex-B.sortIndex;return V!==0?V:_.id-B.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var m=performance;i.unstable_now=function(){return m.now()}}else{var g=Date,A=g.now();i.unstable_now=function(){return g.now()-A}}var p=[],y=[],M=1,E=null,x=3,w=!1,z=!1,q=!1,Y=!1,F=typeof setTimeout=="function"?setTimeout:null,yt=typeof clearTimeout=="function"?clearTimeout:null,lt=typeof setImmediate<"u"?setImmediate:null;function Ct(_){for(var B=r(y);B!==null;){if(B.callback===null)f(y);else if(B.startTime<=_)f(y),B.sortIndex=B.expirationTime,c(p,B);else break;B=r(y)}}function Rt(_){if(q=!1,Ct(_),!z)if(r(p)!==null)z=!0,at||(at=!0,Ut());else{var B=r(y);B!==null&&zt(Rt,B.startTime-_)}}var at=!1,k=-1,pt=5,Zt=-1;function ee(){return Y?!0:!(i.unstable_now()-Zt_&&ee());){var ot=E.callback;if(typeof ot=="function"){E.callback=null,x=E.priorityLevel;var gt=ot(E.expirationTime<=_);if(_=i.unstable_now(),typeof gt=="function"){E.callback=gt,Ct(_),B=!0;break e}E===r(p)&&f(p),Ct(_)}else f(p);E=r(p)}if(E!==null)B=!0;else{var S=r(y);S!==null&&zt(Rt,S.startTime-_),B=!1}}break t}finally{E=null,x=V,w=!1}B=void 0}}finally{B?Ut():at=!1}}}var Ut;if(typeof lt=="function")Ut=function(){lt(le)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,Be=ae.port2;ae.port1.onmessage=le,Ut=function(){Be.postMessage(null)}}else Ut=function(){F(le,0)};function zt(_,B){k=F(function(){_(i.unstable_now())},B)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(_){_.callback=null},i.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):pt=0<_?Math.floor(1e3/_):5},i.unstable_getCurrentPriorityLevel=function(){return x},i.unstable_next=function(_){switch(x){case 1:case 2:case 3:var B=3;break;default:B=x}var V=x;x=B;try{return _()}finally{x=V}},i.unstable_requestPaint=function(){Y=!0},i.unstable_runWithPriority=function(_,B){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var V=x;x=_;try{return B()}finally{x=V}},i.unstable_scheduleCallback=function(_,B,V){var ot=i.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0ot?(_.sortIndex=V,c(y,_),r(p)===null&&_===r(y)&&(q?(yt(k),k=-1):q=!0,zt(Rt,V-ot))):(_.sortIndex=gt,c(p,_),z||w||(z=!0,at||(at=!0,Ut()))),_},i.unstable_shouldYield=ee,i.unstable_wrapCallback=function(_){var B=x;return function(){var V=x;x=B;try{return _.apply(this,arguments)}finally{x=V}}}})(Vs)),Vs}var jh;function Kv(){return jh||(jh=1,ks.exports=Xv()),ks.exports}var Js={exports:{}},ne={};var Eh;function Zv(){if(Eh)return ne;Eh=1;var i=cr();function c(p){var y="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(c){console.error(c)}}return i(),Js.exports=Zv(),Js.exports}var Nh;function Vv(){if(Nh)return Jn;Nh=1;var i=Kv(),c=cr(),r=kv();function f(t){var e="https://react.dev/errors/"+t;if(1gt||(t.current=ot[gt],ot[gt]=null,gt--)}function L(t,e){gt++,ot[gt]=t.current,t.current=e}var G=S(null),$=S(null),W=S(null),dt=S(null);function kt(t,e){switch(L(W,e),L($,t),L(G,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Ld(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=Ld(e),t=Yd(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}H(G),L(G,t)}function _t(){H(G),H($),H(W)}function Gl(t){t.memoizedState!==null&&L(dt,t);var e=G.current,l=Yd(e,t.type);e!==l&&(L($,t),L(G,l))}function fa(t){$.current===t&&(H(G),H($)),dt.current===t&&(H(dt),Xn._currentValue=V)}var Xl,Kl;function Fe(t){if(Xl===void 0)try{throw Error()}catch(l){var e=l.stack.trim().match(/\n( *(at )?)/);Xl=e&&e[1]||"",Kl=-1)":-1n||v[a]!==N[n]){var D=` -`+v[a].replace(" at new "," at ");return t.displayName&&D.includes("")&&(D=D.replace("",t.displayName)),D}while(1<=a&&0<=n);break}}}finally{ml=!1,Error.prepareStackTrace=l}return(l=t?t.displayName||t.name:"")?Fe(l):""}function Ae(t,e){switch(t.tag){case 26:case 27:case 5:return Fe(t.type);case 16:return Fe("Lazy");case 13:return t.child!==e&&e!==null?Fe("Suspense Fallback"):Fe("Suspense");case 19:return Fe("SuspenseList");case 0:case 15:return Le(t.type,!1);case 11:return Le(t.type.render,!1);case 1:return Le(t.type,!0);case 31:return Fe("Activity");default:return""}}function ii(t){try{var e="",l=null;do e+=Ae(t,l),l=t,t=t.return;while(t);return e}catch(a){return` -Error generating stack: `+a.message+` -`+a.stack}}var Ia=Object.prototype.hasOwnProperty,tt=i.unstable_scheduleCallback,ft=i.unstable_cancelCallback,Ot=i.unstable_shouldYield,Pa=i.unstable_requestPaint,ie=i.unstable_now,zu=i.unstable_getCurrentPriorityLevel,vr=i.unstable_ImmediatePriority,pr=i.unstable_UserBlockingPriority,ui=i.unstable_NormalPriority,xm=i.unstable_LowPriority,gr=i.unstable_IdlePriority,jm=i.log,Em=i.unstable_setDisableYieldValue,tn=null,pe=null;function yl(t){if(typeof jm=="function"&&Em(t),pe&&typeof pe.setStrictMode=="function")try{pe.setStrictMode(tn,t)}catch{}}var ge=Math.clz32?Math.clz32:Om,Tm=Math.log,Nm=Math.LN2;function Om(t){return t>>>=0,t===0?32:31-(Tm(t)/Nm|0)|0}var ci=256,si=262144,ri=4194304;function Zl(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function fi(t,e,l){var a=t.pendingLanes;if(a===0)return 0;var n=0,u=t.suspendedLanes,s=t.pingedLanes;t=t.warmLanes;var h=a&134217727;return h!==0?(a=h&~u,a!==0?n=Zl(a):(s&=h,s!==0?n=Zl(s):l||(l=h&~t,l!==0&&(n=Zl(l))))):(h=a&~u,h!==0?n=Zl(h):s!==0?n=Zl(s):l||(l=a&~t,l!==0&&(n=Zl(l)))),n===0?0:e!==0&&e!==n&&(e&u)===0&&(u=n&-n,l=e&-e,u>=l||u===32&&(l&4194048)!==0)?e:n}function en(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function Mm(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function br(){var t=ri;return ri<<=1,(ri&62914560)===0&&(ri=4194304),t}function _u(t){for(var e=[],l=0;31>l;l++)e.push(t);return e}function ln(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Am(t,e,l,a,n,u){var s=t.pendingLanes;t.pendingLanes=l,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=l,t.entangledLanes&=l,t.errorRecoveryDisabledLanes&=l,t.shellSuspendCounter=0;var h=t.entanglements,v=t.expirationTimes,N=t.hiddenUpdates;for(l=s&~l;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Um=/[\n"\\]/g;function ze(t){return t.replace(Um,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function qu(t,e,l,a,n,u,s,h){t.name="",s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?t.type=s:t.removeAttribute("type"),e!=null?s==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Ce(e)):t.value!==""+Ce(e)&&(t.value=""+Ce(e)):s!=="submit"&&s!=="reset"||t.removeAttribute("value"),e!=null?Qu(t,s,Ce(e)):l!=null?Qu(t,s,Ce(l)):a!=null&&t.removeAttribute("value"),n==null&&u!=null&&(t.defaultChecked=!!u),n!=null&&(t.checked=n&&typeof n!="function"&&typeof n!="symbol"),h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?t.name=""+Ce(h):t.removeAttribute("name")}function Dr(t,e,l,a,n,u,s,h){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(t.type=u),e!=null||l!=null){if(!(u!=="submit"&&u!=="reset"||e!=null)){wu(t);return}l=l!=null?""+Ce(l):"",e=e!=null?""+Ce(e):l,h||e===t.value||(t.value=e),t.defaultValue=e}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,t.checked=h?t.checked:!!a,t.defaultChecked=!!a,s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(t.name=s),wu(t)}function Qu(t,e,l){e==="number"&&hi(t.ownerDocument)===t||t.defaultValue===""+l||(t.defaultValue=""+l)}function va(t,e,l,a){if(t=t.options,e){e={};for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Xu=!1;if(Ie)try{var cn={};Object.defineProperty(cn,"passive",{get:function(){Xu=!0}}),window.addEventListener("test",cn,cn),window.removeEventListener("test",cn,cn)}catch{Xu=!1}var pl=null,Ku=null,yi=null;function Br(){if(yi)return yi;var t,e=Ku,l=e.length,a,n="value"in pl?pl.value:pl.textContent,u=n.length;for(t=0;t=fn),Zr=" ",kr=!1;function Vr(t,e){switch(t){case"keyup":return sy.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jr(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Sa=!1;function fy(t,e){switch(t){case"compositionend":return Jr(e);case"keypress":return e.which!==32?null:(kr=!0,Zr);case"textInput":return t=e.data,t===Zr&&kr?null:t;default:return null}}function oy(t,e){if(Sa)return t==="compositionend"||!Fu&&Vr(t,e)?(t=Br(),yi=Ku=pl=null,Sa=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:l,offset:e-t};t=a}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=lf(l)}}function nf(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?nf(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function uf(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=hi(t.document);e instanceof t.HTMLIFrameElement;){try{var l=typeof e.contentWindow.location.href=="string"}catch{l=!1}if(l)t=e.contentWindow;else break;e=hi(t.document)}return e}function Iu(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var by=Ie&&"documentMode"in document&&11>=document.documentMode,xa=null,Pu=null,mn=null,tc=!1;function cf(t,e,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;tc||xa==null||xa!==hi(a)||(a=xa,"selectionStart"in a&&Iu(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),mn&&hn(mn,a)||(mn=a,a=su(Pu,"onSelect"),0>=s,n-=s,Ze=1<<32-ge(e)+n|l<et?(ct=K,K=null):ct=K.sibling;var mt=O(j,K,T[et],R);if(mt===null){K===null&&(K=ct);break}t&&K&&mt.alternate===null&&e(j,K),b=u(mt,b,et),ht===null?Z=mt:ht.sibling=mt,ht=mt,K=ct}if(et===T.length)return l(j,K),st&&tl(j,et),Z;if(K===null){for(;etet?(ct=K,K=null):ct=K.sibling;var Bl=O(j,K,mt.value,R);if(Bl===null){K===null&&(K=ct);break}t&&K&&Bl.alternate===null&&e(j,K),b=u(Bl,b,et),ht===null?Z=Bl:ht.sibling=Bl,ht=Bl,K=ct}if(mt.done)return l(j,K),st&&tl(j,et),Z;if(K===null){for(;!mt.done;et++,mt=T.next())mt=U(j,mt.value,R),mt!==null&&(b=u(mt,b,et),ht===null?Z=mt:ht.sibling=mt,ht=mt);return st&&tl(j,et),Z}for(K=a(K);!mt.done;et++,mt=T.next())mt=C(K,j,et,mt.value,R),mt!==null&&(t&&mt.alternate!==null&&K.delete(mt.key===null?et:mt.key),b=u(mt,b,et),ht===null?Z=mt:ht.sibling=mt,ht=mt);return t&&K.forEach(function(Bv){return e(j,Bv)}),st&&tl(j,et),Z}function Et(j,b,T,R){if(typeof T=="object"&&T!==null&&T.type===q&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case w:t:{for(var Z=T.key;b!==null;){if(b.key===Z){if(Z=T.type,Z===q){if(b.tag===7){l(j,b.sibling),R=n(b,T.props.children),R.return=j,j=R;break t}}else if(b.elementType===Z||typeof Z=="object"&&Z!==null&&Z.$$typeof===pt&&la(Z)===b.type){l(j,b.sibling),R=n(b,T.props),Sn(R,T),R.return=j,j=R;break t}l(j,b);break}else e(j,b);b=b.sibling}T.type===q?(R=Wl(T.props.children,j.mode,R,T.key),R.return=j,j=R):(R=Ni(T.type,T.key,T.props,null,j.mode,R),Sn(R,T),R.return=j,j=R)}return s(j);case z:t:{for(Z=T.key;b!==null;){if(b.key===Z)if(b.tag===4&&b.stateNode.containerInfo===T.containerInfo&&b.stateNode.implementation===T.implementation){l(j,b.sibling),R=n(b,T.children||[]),R.return=j,j=R;break t}else{l(j,b);break}else e(j,b);b=b.sibling}R=cc(T,j.mode,R),R.return=j,j=R}return s(j);case pt:return T=la(T),Et(j,b,T,R)}if(zt(T))return X(j,b,T,R);if(Ut(T)){if(Z=Ut(T),typeof Z!="function")throw Error(f(150));return T=Z.call(T),J(j,b,T,R)}if(typeof T.then=="function")return Et(j,b,Di(T),R);if(T.$$typeof===lt)return Et(j,b,Ai(j,T),R);Ri(j,T)}return typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint"?(T=""+T,b!==null&&b.tag===6?(l(j,b.sibling),R=n(b,T),R.return=j,j=R):(l(j,b),R=uc(T,j.mode,R),R.return=j,j=R),s(j)):l(j,b)}return function(j,b,T,R){try{bn=0;var Z=Et(j,b,T,R);return Da=null,Z}catch(K){if(K===_a||K===zi)throw K;var ht=Se(29,K,null,j.mode);return ht.lanes=R,ht.return=j,ht}}}var na=zf(!0),_f=zf(!1),jl=!1;function bc(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Sc(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function El(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Tl(t,e,l){var a=t.updateQueue;if(a===null)return null;if(a=a.shared,(vt&2)!==0){var n=a.pending;return n===null?e.next=e:(e.next=n.next,n.next=e),a.pending=e,e=Ti(t),mf(t,null,l),e}return Ei(t,a,e,l),Ti(t)}function xn(t,e,l){if(e=e.updateQueue,e!==null&&(e=e.shared,(l&4194048)!==0)){var a=e.lanes;a&=t.pendingLanes,l|=a,e.lanes=l,xr(t,l)}}function xc(t,e){var l=t.updateQueue,a=t.alternate;if(a!==null&&(a=a.updateQueue,l===a)){var n=null,u=null;if(l=l.firstBaseUpdate,l!==null){do{var s={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};u===null?n=u=s:u=u.next=s,l=l.next}while(l!==null);u===null?n=u=e:u=u.next=e}else n=u=e;l={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},t.updateQueue=l;return}t=l.lastBaseUpdate,t===null?l.firstBaseUpdate=e:t.next=e,l.lastBaseUpdate=e}var jc=!1;function jn(){if(jc){var t=za;if(t!==null)throw t}}function En(t,e,l,a){jc=!1;var n=t.updateQueue;jl=!1;var u=n.firstBaseUpdate,s=n.lastBaseUpdate,h=n.shared.pending;if(h!==null){n.shared.pending=null;var v=h,N=v.next;v.next=null,s===null?u=N:s.next=N,s=v;var D=t.alternate;D!==null&&(D=D.updateQueue,h=D.lastBaseUpdate,h!==s&&(h===null?D.firstBaseUpdate=N:h.next=N,D.lastBaseUpdate=v))}if(u!==null){var U=n.baseState;s=0,D=N=v=null,h=u;do{var O=h.lane&-536870913,C=O!==h.lane;if(C?(ut&O)===O:(a&O)===O){O!==0&&O===Ca&&(jc=!0),D!==null&&(D=D.next={lane:0,tag:h.tag,payload:h.payload,callback:null,next:null});t:{var X=t,J=h;O=e;var Et=l;switch(J.tag){case 1:if(X=J.payload,typeof X=="function"){U=X.call(Et,U,O);break t}U=X;break t;case 3:X.flags=X.flags&-65537|128;case 0:if(X=J.payload,O=typeof X=="function"?X.call(Et,U,O):X,O==null)break t;U=E({},U,O);break t;case 2:jl=!0}}O=h.callback,O!==null&&(t.flags|=64,C&&(t.flags|=8192),C=n.callbacks,C===null?n.callbacks=[O]:C.push(O))}else C={lane:O,tag:h.tag,payload:h.payload,callback:h.callback,next:null},D===null?(N=D=C,v=U):D=D.next=C,s|=O;if(h=h.next,h===null){if(h=n.shared.pending,h===null)break;C=h,h=C.next,C.next=null,n.lastBaseUpdate=C,n.shared.pending=null}}while(!0);D===null&&(v=U),n.baseState=v,n.firstBaseUpdate=N,n.lastBaseUpdate=D,u===null&&(n.shared.lanes=0),Cl|=s,t.lanes=s,t.memoizedState=U}}function Df(t,e){if(typeof t!="function")throw Error(f(191,t));t.call(e)}function Rf(t,e){var l=t.callbacks;if(l!==null)for(t.callbacks=null,t=0;tu?u:8;var s=_.T,h={};_.T=h,Yc(t,!1,e,l);try{var v=n(),N=_.S;if(N!==null&&N(h,v),v!==null&&typeof v=="object"&&typeof v.then=="function"){var D=Ay(v,a);On(t,e,D,Ne(t))}else On(t,e,a,Ne(t))}catch(U){On(t,e,{then:function(){},status:"rejected",reason:U},Ne())}finally{B.p=u,s!==null&&h.types!==null&&(s.types=h.types),_.T=s}}function Uy(){}function Bc(t,e,l,a){if(t.tag!==5)throw Error(f(476));var n=oo(t).queue;fo(t,n,e,V,l===null?Uy:function(){return ho(t),l(a)})}function oo(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:V,baseState:V,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:nl,lastRenderedState:V},next:null};var l={};return e.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:nl,lastRenderedState:l},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function ho(t){var e=oo(t);e.next===null&&(e=t.alternate.memoizedState),On(t,e.next.queue,{},Ne())}function Lc(){return Wt(Xn)}function mo(){return Qt().memoizedState}function yo(){return Qt().memoizedState}function Hy(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var l=Ne();t=El(l);var a=Tl(e,t,l);a!==null&&(he(a,e,l),xn(a,e,l)),e={cache:yc()},t.payload=e;return}e=e.return}}function wy(t,e,l){var a=Ne();l={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Xi(t)?po(e,l):(l=nc(t,e,l,a),l!==null&&(he(l,t,a),go(l,e,a)))}function vo(t,e,l){var a=Ne();On(t,e,l,a)}function On(t,e,l,a){var n={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(Xi(t))po(e,n);else{var u=t.alternate;if(t.lanes===0&&(u===null||u.lanes===0)&&(u=e.lastRenderedReducer,u!==null))try{var s=e.lastRenderedState,h=u(s,l);if(n.hasEagerState=!0,n.eagerState=h,be(h,s))return Ei(t,e,n,0),Tt===null&&ji(),!1}catch{}if(l=nc(t,e,n,a),l!==null)return he(l,t,a),go(l,e,a),!0}return!1}function Yc(t,e,l,a){if(a={lane:2,revertLane:bs(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Xi(t)){if(e)throw Error(f(479))}else e=nc(t,l,a,2),e!==null&&he(e,t,2)}function Xi(t){var e=t.alternate;return t===P||e!==null&&e===P}function po(t,e){Ua=wi=!0;var l=t.pending;l===null?e.next=e:(e.next=l.next,l.next=e),t.pending=e}function go(t,e,l){if((l&4194048)!==0){var a=e.lanes;a&=t.pendingLanes,l|=a,e.lanes=l,xr(t,l)}}var Mn={readContext:Wt,use:Bi,useCallback:Ht,useContext:Ht,useEffect:Ht,useImperativeHandle:Ht,useLayoutEffect:Ht,useInsertionEffect:Ht,useMemo:Ht,useReducer:Ht,useRef:Ht,useState:Ht,useDebugValue:Ht,useDeferredValue:Ht,useTransition:Ht,useSyncExternalStore:Ht,useId:Ht,useHostTransitionStatus:Ht,useFormState:Ht,useActionState:Ht,useOptimistic:Ht,useMemoCache:Ht,useCacheRefresh:Ht};Mn.useEffectEvent=Ht;var bo={readContext:Wt,use:Bi,useCallback:function(t,e){return ue().memoizedState=[t,e===void 0?null:e],t},useContext:Wt,useEffect:eo,useImperativeHandle:function(t,e,l){l=l!=null?l.concat([t]):null,Yi(4194308,4,io.bind(null,e,t),l)},useLayoutEffect:function(t,e){return Yi(4194308,4,t,e)},useInsertionEffect:function(t,e){Yi(4,2,t,e)},useMemo:function(t,e){var l=ue();e=e===void 0?null:e;var a=t();if(ia){yl(!0);try{t()}finally{yl(!1)}}return l.memoizedState=[a,e],a},useReducer:function(t,e,l){var a=ue();if(l!==void 0){var n=l(e);if(ia){yl(!0);try{l(e)}finally{yl(!1)}}}else n=e;return a.memoizedState=a.baseState=n,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},a.queue=t,t=t.dispatch=wy.bind(null,P,t),[a.memoizedState,t]},useRef:function(t){var e=ue();return t={current:t},e.memoizedState=t},useState:function(t){t=Uc(t);var e=t.queue,l=vo.bind(null,P,e);return e.dispatch=l,[t.memoizedState,l]},useDebugValue:qc,useDeferredValue:function(t,e){var l=ue();return Qc(l,t,e)},useTransition:function(){var t=Uc(!1);return t=fo.bind(null,P,t.queue,!0,!1),ue().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,l){var a=P,n=ue();if(st){if(l===void 0)throw Error(f(407));l=l()}else{if(l=e(),Tt===null)throw Error(f(349));(ut&127)!==0||Bf(a,e,l)}n.memoizedState=l;var u={value:l,getSnapshot:e};return n.queue=u,eo(Yf.bind(null,a,u,t),[t]),a.flags|=2048,wa(9,{destroy:void 0},Lf.bind(null,a,u,l,e),null),l},useId:function(){var t=ue(),e=Tt.identifierPrefix;if(st){var l=ke,a=Ze;l=(a&~(1<<32-ge(a)-1)).toString(32)+l,e="_"+e+"R_"+l,l=qi++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?s.createElement("select",{is:a.is}):s.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?s.createElement(n,{is:a.is}):s.createElement(n)}}u[Ft]=e,u[ce]=a;t:for(s=e.child;s!==null;){if(s.tag===5||s.tag===6)u.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break t;for(;s.sibling===null;){if(s.return===null||s.return===e)break t;s=s.return}s.sibling.return=s.return,s=s.sibling}e.stateNode=u;t:switch(Pt(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break t;case"img":a=!0;break t;default:a=!1}a&&ul(e)}}return At(e),es(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,l),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==a&&ul(e);else{if(typeof a!="string"&&e.stateNode===null)throw Error(f(166));if(t=W.current,Ma(e)){if(t=e.stateNode,l=e.memoizedProps,a=null,n=$t,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}t[Ft]=e,t=!!(t.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||Qd(t.nodeValue,l)),t||Sl(e,!0)}else t=ru(t).createTextNode(a),t[Ft]=e,e.stateNode=t}return At(e),null;case 31:if(l=e.memoizedState,t===null||t.memoizedState!==null){if(a=Ma(e),l!==null){if(t===null){if(!a)throw Error(f(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(f(557));t[Ft]=e}else Il(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;At(e),t=!1}else l=oc(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=l),t=!0;if(!t)return e.flags&256?(je(e),e):(je(e),null);if((e.flags&128)!==0)throw Error(f(558))}return At(e),null;case 13:if(a=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(n=Ma(e),a!==null&&a.dehydrated!==null){if(t===null){if(!n)throw Error(f(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(f(317));n[Ft]=e}else Il(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;At(e),n=!1}else n=oc(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),n=!0;if(!n)return e.flags&256?(je(e),e):(je(e),null)}return je(e),(e.flags&128)!==0?(e.lanes=l,e):(l=a!==null,t=t!==null&&t.memoizedState!==null,l&&(a=e.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),l!==t&&l&&(e.child.flags|=8192),Ji(e,e.updateQueue),At(e),null);case 4:return _t(),t===null&&Es(e.stateNode.containerInfo),At(e),null;case 10:return ll(e.type),At(e),null;case 19:if(H(qt),a=e.memoizedState,a===null)return At(e),null;if(n=(e.flags&128)!==0,u=a.rendering,u===null)if(n)Cn(a,!1);else{if(wt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(u=Hi(t),u!==null){for(e.flags|=128,Cn(a,!1),t=u.updateQueue,e.updateQueue=t,Ji(e,t),e.subtreeFlags=0,t=l,l=e.child;l!==null;)yf(l,t),l=l.sibling;return L(qt,qt.current&1|2),st&&tl(e,a.treeForkCount),e.child}t=t.sibling}a.tail!==null&&ie()>Pi&&(e.flags|=128,n=!0,Cn(a,!1),e.lanes=4194304)}else{if(!n)if(t=Hi(u),t!==null){if(e.flags|=128,n=!0,t=t.updateQueue,e.updateQueue=t,Ji(e,t),Cn(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!st)return At(e),null}else 2*ie()-a.renderingStartTime>Pi&&l!==536870912&&(e.flags|=128,n=!0,Cn(a,!1),e.lanes=4194304);a.isBackwards?(u.sibling=e.child,e.child=u):(t=a.last,t!==null?t.sibling=u:e.child=u,a.last=u)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=ie(),t.sibling=null,l=qt.current,L(qt,n?l&1|2:l&1),st&&tl(e,a.treeForkCount),t):(At(e),null);case 22:case 23:return je(e),Tc(),a=e.memoizedState!==null,t!==null?t.memoizedState!==null!==a&&(e.flags|=8192):a&&(e.flags|=8192),a?(l&536870912)!==0&&(e.flags&128)===0&&(At(e),e.subtreeFlags&6&&(e.flags|=8192)):At(e),l=e.updateQueue,l!==null&&Ji(e,l.retryQueue),l=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),a=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),a!==l&&(e.flags|=2048),t!==null&&H(ea),null;case 24:return l=null,t!==null&&(l=t.memoizedState.cache),e.memoizedState.cache!==l&&(e.flags|=2048),ll(Bt),At(e),null;case 25:return null;case 30:return null}throw Error(f(156,e.tag))}function Yy(t,e){switch(rc(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return ll(Bt),_t(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return fa(e),null;case 31:if(e.memoizedState!==null){if(je(e),e.alternate===null)throw Error(f(340));Il()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(je(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(f(340));Il()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return H(qt),null;case 4:return _t(),null;case 10:return ll(e.type),null;case 22:case 23:return je(e),Tc(),t!==null&&H(ea),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return ll(Bt),null;case 25:return null;default:return null}}function Xo(t,e){switch(rc(e),e.tag){case 3:ll(Bt),_t();break;case 26:case 27:case 5:fa(e);break;case 4:_t();break;case 31:e.memoizedState!==null&&je(e);break;case 13:je(e);break;case 19:H(qt);break;case 10:ll(e.type);break;case 22:case 23:je(e),Tc(),t!==null&&H(ea);break;case 24:ll(Bt)}}function zn(t,e){try{var l=e.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var n=a.next;l=n;do{if((l.tag&t)===t){a=void 0;var u=l.create,s=l.inst;a=u(),s.destroy=a}l=l.next}while(l!==n)}}catch(h){St(e,e.return,h)}}function Ml(t,e,l){try{var a=e.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&t)===t){var s=a.inst,h=s.destroy;if(h!==void 0){s.destroy=void 0,n=e;var v=l,N=h;try{N()}catch(D){St(n,v,D)}}}a=a.next}while(a!==u)}}catch(D){St(e,e.return,D)}}function Ko(t){var e=t.updateQueue;if(e!==null){var l=t.stateNode;try{Rf(e,l)}catch(a){St(t,t.return,a)}}}function Zo(t,e,l){l.props=ua(t.type,t.memoizedProps),l.state=t.memoizedState;try{l.componentWillUnmount()}catch(a){St(t,e,a)}}function _n(t,e){try{var l=t.ref;if(l!==null){switch(t.tag){case 26:case 27:case 5:var a=t.stateNode;break;case 30:a=t.stateNode;break;default:a=t.stateNode}typeof l=="function"?t.refCleanup=l(a):l.current=a}}catch(n){St(t,e,n)}}function Ve(t,e){var l=t.ref,a=t.refCleanup;if(l!==null)if(typeof a=="function")try{a()}catch(n){St(t,e,n)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(n){St(t,e,n)}else l.current=null}function ko(t){var e=t.type,l=t.memoizedProps,a=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":l.autoFocus&&a.focus();break t;case"img":l.src?a.src=l.src:l.srcSet&&(a.srcset=l.srcSet)}}catch(n){St(t,t.return,n)}}function ls(t,e,l){try{var a=t.stateNode;rv(a,t.type,l,e),a[ce]=e}catch(n){St(t,t.return,n)}}function Vo(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Ul(t.type)||t.tag===4}function as(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||Vo(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Ul(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function ns(t,e,l){var a=t.tag;if(a===5||a===6)t=t.stateNode,e?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(t,e):(e=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,e.appendChild(t),l=l._reactRootContainer,l!=null||e.onclick!==null||(e.onclick=We));else if(a!==4&&(a===27&&Ul(t.type)&&(l=t.stateNode,e=null),t=t.child,t!==null))for(ns(t,e,l),t=t.sibling;t!==null;)ns(t,e,l),t=t.sibling}function Fi(t,e,l){var a=t.tag;if(a===5||a===6)t=t.stateNode,e?l.insertBefore(t,e):l.appendChild(t);else if(a!==4&&(a===27&&Ul(t.type)&&(l=t.stateNode),t=t.child,t!==null))for(Fi(t,e,l),t=t.sibling;t!==null;)Fi(t,e,l),t=t.sibling}function Jo(t){var e=t.stateNode,l=t.memoizedProps;try{for(var a=t.type,n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Pt(e,a,l),e[Ft]=t,e[ce]=l}catch(u){St(t,t.return,u)}}var cl=!1,Gt=!1,is=!1,Fo=typeof WeakSet=="function"?WeakSet:Set,Jt=null;function Gy(t,e){if(t=t.containerInfo,Os=vu,t=uf(t),Iu(t)){if("selectionStart"in t)var l={start:t.selectionStart,end:t.selectionEnd};else t:{l=(l=t.ownerDocument)&&l.defaultView||window;var a=l.getSelection&&l.getSelection();if(a&&a.rangeCount!==0){l=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{l.nodeType,u.nodeType}catch{l=null;break t}var s=0,h=-1,v=-1,N=0,D=0,U=t,O=null;e:for(;;){for(var C;U!==l||n!==0&&U.nodeType!==3||(h=s+n),U!==u||a!==0&&U.nodeType!==3||(v=s+a),U.nodeType===3&&(s+=U.nodeValue.length),(C=U.firstChild)!==null;)O=U,U=C;for(;;){if(U===t)break e;if(O===l&&++N===n&&(h=s),O===u&&++D===a&&(v=s),(C=U.nextSibling)!==null)break;U=O,O=U.parentNode}U=C}l=h===-1||v===-1?null:{start:h,end:v}}else l=null}l=l||{start:0,end:0}}else l=null;for(Ms={focusedElem:t,selectionRange:l},vu=!1,Jt=e;Jt!==null;)if(e=Jt,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Jt=t;else for(;Jt!==null;){switch(e=Jt,u=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(l=0;l title"))),Pt(u,a,l),u[Ft]=t,Vt(u),a=u;break t;case"link":var s=eh("link","href",n).get(a+(l.href||""));if(s){for(var h=0;hEt&&(s=Et,Et=J,J=s);var j=af(h,J),b=af(h,Et);if(j&&b&&(C.rangeCount!==1||C.anchorNode!==j.node||C.anchorOffset!==j.offset||C.focusNode!==b.node||C.focusOffset!==b.offset)){var T=U.createRange();T.setStart(j.node,j.offset),C.removeAllRanges(),J>Et?(C.addRange(T),C.extend(b.node,b.offset)):(T.setEnd(b.node,b.offset),C.addRange(T))}}}}for(U=[],C=h;C=C.parentNode;)C.nodeType===1&&U.push({element:C,left:C.scrollLeft,top:C.scrollTop});for(typeof h.focus=="function"&&h.focus(),h=0;hl?32:l,_.T=null,l=ds,ds=null;var u=_l,s=dl;if(Xt=0,Ya=_l=null,dl=0,(vt&6)!==0)throw Error(f(331));var h=vt;if(vt|=4,ud(u.current),ad(u,u.current,s,l),vt=h,qn(0,!1),pe&&typeof pe.onPostCommitFiberRoot=="function")try{pe.onPostCommitFiberRoot(tn,u)}catch{}return!0}finally{B.p=n,_.T=a,Td(t,e)}}function Od(t,e,l){e=De(l,e),e=Zc(t.stateNode,e,2),t=Tl(t,e,2),t!==null&&(ln(t,2),Je(t))}function St(t,e,l){if(t.tag===3)Od(t,t,l);else for(;e!==null;){if(e.tag===3){Od(e,t,l);break}else if(e.tag===1){var a=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(zl===null||!zl.has(a))){t=De(l,t),l=Mo(2),a=Tl(e,l,2),a!==null&&(Ao(l,a,e,t),ln(a,2),Je(a));break}}e=e.return}}function vs(t,e,l){var a=t.pingCache;if(a===null){a=t.pingCache=new Zy;var n=new Set;a.set(e,n)}else n=a.get(e),n===void 0&&(n=new Set,a.set(e,n));n.has(l)||(ss=!0,n.add(l),t=$y.bind(null,t,e,l),e.then(t,t))}function $y(t,e,l){var a=t.pingCache;a!==null&&a.delete(e),t.pingedLanes|=t.suspendedLanes&l,t.warmLanes&=~l,Tt===t&&(ut&l)===l&&(wt===4||wt===3&&(ut&62914560)===ut&&300>ie()-Ii?(vt&2)===0&&Ga(t,0):rs|=l,La===ut&&(La=0)),Je(t)}function Md(t,e){e===0&&(e=br()),t=$l(t,e),t!==null&&(ln(t,e),Je(t))}function Wy(t){var e=t.memoizedState,l=0;e!==null&&(l=e.retryLane),Md(t,l)}function Iy(t,e){var l=0;switch(t.tag){case 31:case 13:var a=t.stateNode,n=t.memoizedState;n!==null&&(l=n.retryLane);break;case 19:a=t.stateNode;break;case 22:a=t.stateNode._retryCache;break;default:throw Error(f(314))}a!==null&&a.delete(e),Md(t,l)}function Py(t,e){return tt(t,e)}var iu=null,Ka=null,ps=!1,uu=!1,gs=!1,Rl=0;function Je(t){t!==Ka&&t.next===null&&(Ka===null?iu=Ka=t:Ka=Ka.next=t),uu=!0,ps||(ps=!0,ev())}function qn(t,e){if(!gs&&uu){gs=!0;do for(var l=!1,a=iu;a!==null;){if(t!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var s=a.suspendedLanes,h=a.pingedLanes;u=(1<<31-ge(42|t)+1)-1,u&=n&~(s&~h),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(l=!0,_d(a,u))}else u=ut,u=fi(a,a===Tt?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||en(a,u)||(l=!0,_d(a,u));a=a.next}while(l);gs=!1}}function tv(){Ad()}function Ad(){uu=ps=!1;var t=0;Rl!==0&&ov()&&(t=Rl);for(var e=ie(),l=null,a=iu;a!==null;){var n=a.next,u=Cd(a,e);u===0?(a.next=null,l===null?iu=n:l.next=n,n===null&&(Ka=l)):(l=a,(t!==0||(u&3)!==0)&&(uu=!0)),a=n}Xt!==0&&Xt!==5||qn(t),Rl!==0&&(Rl=0)}function Cd(t,e){for(var l=t.suspendedLanes,a=t.pingedLanes,n=t.expirationTimes,u=t.pendingLanes&-62914561;0h)break;var D=v.transferSize,U=v.initiatorType;D&&Bd(U)&&(v=v.responseEnd,s+=D*(v"u"?null:document;function Wd(t,e,l){var a=Za;if(a&&typeof e=="string"&&e){var n=ze(e);n='link[rel="'+t+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),$d.has(n)||($d.add(n),t={rel:t,crossOrigin:l,href:e},a.querySelector(n)===null&&(e=a.createElement("link"),Pt(e,"link",t),Vt(e),a.head.appendChild(e)))}}function Sv(t){hl.D(t),Wd("dns-prefetch",t,null)}function xv(t,e){hl.C(t,e),Wd("preconnect",t,e)}function jv(t,e,l){hl.L(t,e,l);var a=Za;if(a&&t&&e){var n='link[rel="preload"][as="'+ze(e)+'"]';e==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+ze(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+ze(l.imageSizes)+'"]')):n+='[href="'+ze(t)+'"]';var u=n;switch(e){case"style":u=ka(t);break;case"script":u=Va(t)}Qe.has(u)||(t=E({rel:"preload",href:e==="image"&&l&&l.imageSrcSet?void 0:t,as:e},l),Qe.set(u,t),a.querySelector(n)!==null||e==="style"&&a.querySelector(Yn(u))||e==="script"&&a.querySelector(Gn(u))||(e=a.createElement("link"),Pt(e,"link",t),Vt(e),a.head.appendChild(e)))}}function Ev(t,e){hl.m(t,e);var l=Za;if(l&&t){var a=e&&typeof e.as=="string"?e.as:"script",n='link[rel="modulepreload"][as="'+ze(a)+'"][href="'+ze(t)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Va(t)}if(!Qe.has(u)&&(t=E({rel:"modulepreload",href:t},e),Qe.set(u,t),l.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(Gn(u)))return}a=l.createElement("link"),Pt(a,"link",t),Vt(a),l.head.appendChild(a)}}}function Tv(t,e,l){hl.S(t,e,l);var a=Za;if(a&&t){var n=ma(a).hoistableStyles,u=ka(t);e=e||"default";var s=n.get(u);if(!s){var h={loading:0,preload:null};if(s=a.querySelector(Yn(u)))h.loading=5;else{t=E({rel:"stylesheet",href:t,"data-precedence":e},l),(l=Qe.get(u))&&Us(t,l);var v=s=a.createElement("link");Vt(v),Pt(v,"link",t),v._p=new Promise(function(N,D){v.onload=N,v.onerror=D}),v.addEventListener("load",function(){h.loading|=1}),v.addEventListener("error",function(){h.loading|=2}),h.loading|=4,ou(s,e,a)}s={type:"stylesheet",instance:s,count:1,state:h},n.set(u,s)}}}function Nv(t,e){hl.X(t,e);var l=Za;if(l&&t){var a=ma(l).hoistableScripts,n=Va(t),u=a.get(n);u||(u=l.querySelector(Gn(n)),u||(t=E({src:t,async:!0},e),(e=Qe.get(n))&&Hs(t,e),u=l.createElement("script"),Vt(u),Pt(u,"link",t),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Ov(t,e){hl.M(t,e);var l=Za;if(l&&t){var a=ma(l).hoistableScripts,n=Va(t),u=a.get(n);u||(u=l.querySelector(Gn(n)),u||(t=E({src:t,async:!0,type:"module"},e),(e=Qe.get(n))&&Hs(t,e),u=l.createElement("script"),Vt(u),Pt(u,"link",t),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Id(t,e,l,a){var n=(n=W.current)?fu(n):null;if(!n)throw Error(f(446));switch(t){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(e=ka(l.href),l=ma(n).hoistableStyles,a=l.get(e),a||(a={type:"style",instance:null,count:0,state:null},l.set(e,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){t=ka(l.href);var u=ma(n).hoistableStyles,s=u.get(t);if(s||(n=n.ownerDocument||n,s={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(t,s),(u=n.querySelector(Yn(t)))&&!u._p&&(s.instance=u,s.state.loading=5),Qe.has(t)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Qe.set(t,l),u||Mv(n,t,l,s.state))),e&&a===null)throw Error(f(528,""));return s}if(e&&a!==null)throw Error(f(529,""));return null;case"script":return e=l.async,l=l.src,typeof l=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Va(l),l=ma(n).hoistableScripts,a=l.get(e),a||(a={type:"script",instance:null,count:0,state:null},l.set(e,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(f(444,t))}}function ka(t){return'href="'+ze(t)+'"'}function Yn(t){return'link[rel="stylesheet"]['+t+"]"}function Pd(t){return E({},t,{"data-precedence":t.precedence,precedence:null})}function Mv(t,e,l,a){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?a.loading=1:(e=t.createElement("link"),a.preload=e,e.addEventListener("load",function(){return a.loading|=1}),e.addEventListener("error",function(){return a.loading|=2}),Pt(e,"link",l),Vt(e),t.head.appendChild(e))}function Va(t){return'[src="'+ze(t)+'"]'}function Gn(t){return"script[async]"+t}function th(t,e,l){if(e.count++,e.instance===null)switch(e.type){case"style":var a=t.querySelector('style[data-href~="'+ze(l.href)+'"]');if(a)return e.instance=a,Vt(a),a;var n=E({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return a=(t.ownerDocument||t).createElement("style"),Vt(a),Pt(a,"style",n),ou(a,l.precedence,t),e.instance=a;case"stylesheet":n=ka(l.href);var u=t.querySelector(Yn(n));if(u)return e.state.loading|=4,e.instance=u,Vt(u),u;a=Pd(l),(n=Qe.get(n))&&Us(a,n),u=(t.ownerDocument||t).createElement("link"),Vt(u);var s=u;return s._p=new Promise(function(h,v){s.onload=h,s.onerror=v}),Pt(u,"link",a),e.state.loading|=4,ou(u,l.precedence,t),e.instance=u;case"script":return u=Va(l.src),(n=t.querySelector(Gn(u)))?(e.instance=n,Vt(n),n):(a=l,(n=Qe.get(u))&&(a=E({},l),Hs(a,n)),t=t.ownerDocument||t,n=t.createElement("script"),Vt(n),Pt(n,"link",a),t.head.appendChild(n),e.instance=n);case"void":return null;default:throw Error(f(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(a=e.instance,e.state.loading|=4,ou(a,l.precedence,t));return e.instance}function ou(t,e,l){for(var a=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,s=0;s title"):null)}function Av(t,e,l){if(l===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function ah(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function Cv(t,e,l,a){if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var n=ka(a.href),u=e.querySelector(Yn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=hu.bind(t),e.then(t,t)),l.state.loading|=4,l.instance=u,Vt(u);return}u=e.ownerDocument||e,a=Pd(a),(n=Qe.get(n))&&Us(a,n),u=u.createElement("link"),Vt(u);var s=u;s._p=new Promise(function(h,v){s.onload=h,s.onerror=v}),Pt(u,"link",a),l.instance=u}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(l,e),(e=l.state.preload)&&(l.state.loading&3)===0&&(t.count++,l=hu.bind(t),e.addEventListener("load",l),e.addEventListener("error",l))}}var ws=0;function zv(t,e){return t.stylesheets&&t.count===0&&yu(t,t.stylesheets),0ws?50:800)+e);return t.unsuspend=l,function(){t.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function hu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)yu(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var mu=null;function yu(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,mu=new Map,e.forEach(_v,t),mu=null,hu.call(t))}function _v(t,e){if(!(e.state.loading&4)){var l=mu.get(t);if(l)var a=l.get(null);else{l=new Map,mu.set(t,l);for(var n=t.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(c){console.error(c)}}return i(),Zs.exports=Vv(),Zs.exports}var Fv=Jv(),ai=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(i){return this.listeners.add(i),this.onSubscribe(),()=>{this.listeners.delete(i),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},$v=class extends ai{#t;#e;#l;constructor(){super(),this.#l=i=>{if(typeof window<"u"&&window.addEventListener){const c=()=>i();return window.addEventListener("visibilitychange",c,!1),()=>{window.removeEventListener("visibilitychange",c)}}}}onSubscribe(){this.#e||this.setEventListener(this.#l)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(i){this.#l=i,this.#e?.(),this.#e=i(c=>{typeof c=="boolean"?this.setFocused(c):this.onFocus()})}setFocused(i){this.#t!==i&&(this.#t=i,this.onFocus())}onFocus(){const i=this.isFocused();this.listeners.forEach(c=>{c(i)})}isFocused(){return typeof this.#t=="boolean"?this.#t:globalThis.document?.visibilityState!=="hidden"}},sr=new $v,Wv={setTimeout:(i,c)=>setTimeout(i,c),clearTimeout:i=>clearTimeout(i),setInterval:(i,c)=>setInterval(i,c),clearInterval:i=>clearInterval(i)},Iv=class{#t=Wv;#e=!1;setTimeoutProvider(i){this.#t=i}setTimeout(i,c){return this.#t.setTimeout(i,c)}clearTimeout(i){this.#t.clearTimeout(i)}setInterval(i,c){return this.#t.setInterval(i,c)}clearInterval(i){this.#t.clearInterval(i)}},ra=new Iv;function Pv(i){setTimeout(i,0)}var t0=typeof window>"u"||"Deno"in globalThis;function me(){}function e0(i,c){return typeof i=="function"?i(c):i}function Is(i){return typeof i=="number"&&i>=0&&i!==1/0}function Jh(i,c){return Math.max(i+(c||0)-Date.now(),0)}function Yl(i,c){return typeof i=="function"?i(c):i}function Oe(i,c){return typeof i=="function"?i(c):i}function Mh(i,c){const{type:r="all",exact:f,fetchStatus:d,predicate:m,queryKey:g,stale:A}=i;if(g){if(f){if(c.queryHash!==rr(g,c.options))return!1}else if(!Wn(c.queryKey,g))return!1}if(r!=="all"){const p=c.isActive();if(r==="active"&&!p||r==="inactive"&&p)return!1}return!(typeof A=="boolean"&&c.isStale()!==A||d&&d!==c.state.fetchStatus||m&&!m(c))}function Ah(i,c){const{exact:r,status:f,predicate:d,mutationKey:m}=i;if(m){if(!c.options.mutationKey)return!1;if(r){if($n(c.options.mutationKey)!==$n(m))return!1}else if(!Wn(c.options.mutationKey,m))return!1}return!(f&&c.state.status!==f||d&&!d(c))}function rr(i,c){return(c?.queryKeyHashFn||$n)(i)}function $n(i){return JSON.stringify(i,(c,r)=>tr(r)?Object.keys(r).sort().reduce((f,d)=>(f[d]=r[d],f),{}):r)}function Wn(i,c){return i===c?!0:typeof i!=typeof c?!1:i&&c&&typeof i=="object"&&typeof c=="object"?Object.keys(c).every(r=>Wn(i[r],c[r])):!1}var l0=Object.prototype.hasOwnProperty;function Fh(i,c,r=0){if(i===c)return i;if(r>500)return c;const f=Ch(i)&&Ch(c);if(!f&&!(tr(i)&&tr(c)))return c;const m=(f?i:Object.keys(i)).length,g=f?c:Object.keys(c),A=g.length,p=f?new Array(A):{};let y=0;for(let M=0;M{ra.setTimeout(c,i)})}function er(i,c,r){return typeof r.structuralSharing=="function"?r.structuralSharing(i,c):r.structuralSharing!==!1?Fh(i,c):c}function n0(i,c,r=0){const f=[...i,c];return r&&f.length>r?f.slice(1):f}function i0(i,c,r=0){const f=[c,...i];return r&&f.length>r?f.slice(0,-1):f}var fr=Symbol();function $h(i,c){return!i.queryFn&&c?.initialPromise?()=>c.initialPromise:!i.queryFn||i.queryFn===fr?()=>Promise.reject(new Error(`Missing queryFn: '${i.queryHash}'`)):i.queryFn}function Wh(i,c){return typeof i=="function"?i(...c):!!i}function u0(i,c,r){let f=!1,d;return Object.defineProperty(i,"signal",{enumerable:!0,get:()=>(d??=c(),f||(f=!0,d.aborted?r():d.addEventListener("abort",r,{once:!0})),d)}),i}var In=(()=>{let i=()=>t0;return{isServer(){return i()},setIsServer(c){i=c}}})();function lr(){let i,c;const r=new Promise((d,m)=>{i=d,c=m});r.status="pending",r.catch(()=>{});function f(d){Object.assign(r,d),delete r.resolve,delete r.reject}return r.resolve=d=>{f({status:"fulfilled",value:d}),i(d)},r.reject=d=>{f({status:"rejected",reason:d}),c(d)},r}var c0=Pv;function s0(){let i=[],c=0,r=A=>{A()},f=A=>{A()},d=c0;const m=A=>{c?i.push(A):d(()=>{r(A)})},g=()=>{const A=i;i=[],A.length&&d(()=>{f(()=>{A.forEach(p=>{r(p)})})})};return{batch:A=>{let p;c++;try{p=A()}finally{c--,c||g()}return p},batchCalls:A=>(...p)=>{m(()=>{A(...p)})},schedule:m,setNotifyFunction:A=>{r=A},setBatchNotifyFunction:A=>{f=A},setScheduler:A=>{d=A}}}var te=s0(),r0=class extends ai{#t=!0;#e;#l;constructor(){super(),this.#l=i=>{if(typeof window<"u"&&window.addEventListener){const c=()=>i(!0),r=()=>i(!1);return window.addEventListener("online",c,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",c),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#e||this.setEventListener(this.#l)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(i){this.#l=i,this.#e?.(),this.#e=i(this.setOnline.bind(this))}setOnline(i){this.#t!==i&&(this.#t=i,this.listeners.forEach(r=>{r(i)}))}isOnline(){return this.#t}},Au=new r0;function f0(i){return Math.min(1e3*2**i,3e4)}function Ih(i){return(i??"online")==="online"?Au.isOnline():!0}var ar=class extends Error{constructor(i){super("CancelledError"),this.revert=i?.revert,this.silent=i?.silent}};function Ph(i){let c=!1,r=0,f;const d=lr(),m=()=>d.status!=="pending",g=q=>{if(!m()){const Y=new ar(q);x(Y),i.onCancel?.(Y)}},A=()=>{c=!0},p=()=>{c=!1},y=()=>sr.isFocused()&&(i.networkMode==="always"||Au.isOnline())&&i.canRun(),M=()=>Ih(i.networkMode)&&i.canRun(),E=q=>{m()||(f?.(),d.resolve(q))},x=q=>{m()||(f?.(),d.reject(q))},w=()=>new Promise(q=>{f=Y=>{(m()||y())&&q(Y)},i.onPause?.()}).then(()=>{f=void 0,m()||i.onContinue?.()}),z=()=>{if(m())return;let q;const Y=r===0?i.initialPromise:void 0;try{q=Y??i.fn()}catch(F){q=Promise.reject(F)}Promise.resolve(q).then(E).catch(F=>{if(m())return;const yt=i.retry??(In.isServer()?0:3),lt=i.retryDelay??f0,Ct=typeof lt=="function"?lt(r,F):lt,Rt=yt===!0||typeof yt=="number"&&ry()?void 0:w()).then(()=>{c?x(F):z()})})};return{promise:d,status:()=>d.status,cancel:g,continue:()=>(f?.(),d),cancelRetry:A,continueRetry:p,canStart:M,start:()=>(M()?z():w().then(z),d)}}var tm=class{#t;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Is(this.gcTime)&&(this.#t=ra.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(i){this.gcTime=Math.max(this.gcTime||0,i??(In.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#t!==void 0&&(ra.clearTimeout(this.#t),this.#t=void 0)}};function o0(i){return{onFetch:(c,r)=>{const f=c.options,d=c.fetchOptions?.meta?.fetchMore?.direction,m=c.state.data?.pages||[],g=c.state.data?.pageParams||[];let A={pages:[],pageParams:[]},p=0;const y=async()=>{let M=!1;const E=z=>{u0(z,()=>c.signal,()=>M=!0)},x=$h(c.options,c.fetchOptions),w=async(z,q,Y)=>{if(M)return Promise.reject(c.signal.reason);if(q==null&&z.pages.length)return Promise.resolve(z);const yt=(()=>{const at={client:c.client,queryKey:c.queryKey,pageParam:q,direction:Y?"backward":"forward",meta:c.options.meta};return E(at),at})(),lt=await x(yt),{maxPages:Ct}=c.options,Rt=Y?i0:n0;return{pages:Rt(z.pages,lt,Ct),pageParams:Rt(z.pageParams,q,Ct)}};if(d&&m.length){const z=d==="backward",q=z?d0:_h,Y={pages:m,pageParams:g},F=q(f,Y);A=await w(Y,F,z)}else{const z=i??m.length;do{const q=p===0?g[0]??f.initialPageParam:_h(f,A);if(p>0&&q==null)break;A=await w(A,q),p++}while(pc.options.persister?.(y,{client:c.client,queryKey:c.queryKey,meta:c.options.meta,signal:c.signal},r):c.fetchFn=y}}}function _h(i,{pages:c,pageParams:r}){const f=c.length-1;return c.length>0?i.getNextPageParam(c[f],c,r[f],r):void 0}function d0(i,{pages:c,pageParams:r}){return c.length>0?i.getPreviousPageParam?.(c[0],c,r[0],r):void 0}var h0=class extends tm{#t;#e;#l;#a;#i;#n;#c;#u;constructor(i){super(),this.#u=!1,this.#c=i.defaultOptions,this.setOptions(i.options),this.observers=[],this.#i=i.client,this.#a=this.#i.getQueryCache(),this.queryKey=i.queryKey,this.queryHash=i.queryHash,this.#e=Rh(this.options),this.state=i.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#t}get promise(){return this.#n?.promise}setOptions(i){if(this.options={...this.#c,...i},i?._type&&(this.#t=i._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const c=Rh(this.options);c.data!==void 0&&(this.setState(Dh(c.data,c.dataUpdatedAt)),this.#e=c)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#a.remove(this)}setData(i,c){const r=er(this.state.data,i,this.options);return this.#s({data:r,type:"success",dataUpdatedAt:c?.updatedAt,manual:c?.manual}),r}setState(i){this.#s({type:"setState",state:i})}cancel(i){const c=this.#n?.promise;return this.#n?.cancel(i),c?c.then(me).catch(me):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(i=>Oe(i.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===fr||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(i=>Yl(i.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(i=>i.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(i=0){return this.state.data===void 0?!0:i==="static"?!1:this.state.isInvalidated?!0:!Jh(this.state.dataUpdatedAt,i)}onFocus(){this.observers.find(c=>c.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(c=>c.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(i){this.observers.includes(i)||(this.observers.push(i),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",query:this,observer:i}))}removeObserver(i){this.observers.includes(i)&&(this.observers=this.observers.filter(c=>c!==i),this.observers.length||(this.#n&&(this.#u||this.#f()?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#a.notify({type:"observerRemoved",query:this,observer:i}))}getObserversCount(){return this.observers.length}#f(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#s({type:"invalidate"})}async fetch(i,c){if(this.state.fetchStatus!=="idle"&&this.#n?.status()!=="rejected"){if(this.state.data!==void 0&&c?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(i&&this.setOptions(i),!this.options.queryFn){const p=this.observers.find(y=>y.options.queryFn);p&&this.setOptions(p.options)}const r=new AbortController,f=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(this.#u=!0,r.signal)})},d=()=>{const p=$h(this.options,c),M=(()=>{const E={client:this.#i,queryKey:this.queryKey,meta:this.meta};return f(E),E})();return this.#u=!1,this.options.persister?this.options.persister(p,M,this):p(M)},g=(()=>{const p={fetchOptions:c,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:d};return f(p),p})();(this.#t==="infinite"?o0(this.options.pages):this.options.behavior)?.onFetch(g,this),this.#l=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==g.fetchOptions?.meta)&&this.#s({type:"fetch",meta:g.fetchOptions?.meta}),this.#n=Ph({initialPromise:c?.initialPromise,fn:g.fetchFn,onCancel:p=>{p instanceof ar&&p.revert&&this.setState({...this.#l,fetchStatus:"idle"}),r.abort()},onFail:(p,y)=>{this.#s({type:"failed",failureCount:p,error:y})},onPause:()=>{this.#s({type:"pause"})},onContinue:()=>{this.#s({type:"continue"})},retry:g.options.retry,retryDelay:g.options.retryDelay,networkMode:g.options.networkMode,canRun:()=>!0});try{const p=await this.#n.start();if(p===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(p),this.#a.config.onSuccess?.(p,this),this.#a.config.onSettled?.(p,this.state.error,this),p}catch(p){if(p instanceof ar){if(p.silent)return this.#n.promise;if(p.revert){if(this.state.data===void 0)throw p;return this.state.data}}throw this.#s({type:"error",error:p}),this.#a.config.onError?.(p,this),this.#a.config.onSettled?.(this.state.data,p,this),p}finally{this.scheduleGc()}}#s(i){const c=r=>{switch(i.type){case"failed":return{...r,fetchFailureCount:i.failureCount,fetchFailureReason:i.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...em(r.data,this.options),fetchMeta:i.meta??null};case"success":const f={...r,...Dh(i.data,i.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!i.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#l=i.manual?f:void 0,f;case"error":const d=i.error;return{...r,error:d,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:d,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...i.state}}};this.state=c(this.state),te.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#a.notify({query:this,type:"updated",action:i})})}};function em(i,c){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Ih(c.networkMode)?"fetching":"paused",...i===void 0&&{error:null,status:"pending"}}}function Dh(i,c){return{data:i,dataUpdatedAt:c??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Rh(i){const c=typeof i.initialData=="function"?i.initialData():i.initialData,r=c!==void 0,f=r?typeof i.initialDataUpdatedAt=="function"?i.initialDataUpdatedAt():i.initialDataUpdatedAt:0;return{data:c,dataUpdateCount:0,dataUpdatedAt:r?f??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var m0=class extends ai{constructor(i,c){super(),this.options=c,this.#t=i,this.#u=null,this.#c=lr(),this.bindMethods(),this.setOptions(c)}#t;#e=void 0;#l=void 0;#a=void 0;#i;#n;#c;#u;#f;#s;#m;#o;#d;#r;#y=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#e.addObserver(this),Uh(this.#e,this.options)?this.#h():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return nr(this.#e,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return nr(this.#e,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#S(),this.#x(),this.#e.removeObserver(this)}setOptions(i){const c=this.options,r=this.#e;if(this.options=this.#t.defaultQueryOptions(i),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Oe(this.options.enabled,this.#e)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#j(),this.#e.setOptions(this.options),c._defaulted&&!Ps(this.options,c)&&this.#t.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#e,observer:this});const f=this.hasListeners();f&&Hh(this.#e,r,this.options,c)&&this.#h(),this.updateResult(),f&&(this.#e!==r||Oe(this.options.enabled,this.#e)!==Oe(c.enabled,this.#e)||Yl(this.options.staleTime,this.#e)!==Yl(c.staleTime,this.#e))&&this.#v();const d=this.#p();f&&(this.#e!==r||Oe(this.options.enabled,this.#e)!==Oe(c.enabled,this.#e)||d!==this.#r)&&this.#g(d)}getOptimisticResult(i){const c=this.#t.getQueryCache().build(this.#t,i),r=this.createResult(c,i);return v0(this,r)&&(this.#a=r,this.#n=this.options,this.#i=this.#e.state),r}getCurrentResult(){return this.#a}trackResult(i,c){return new Proxy(i,{get:(r,f)=>(this.trackProp(f),c?.(f),f==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#c.status==="pending"&&this.#c.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,f))})}trackProp(i){this.#y.add(i)}getCurrentQuery(){return this.#e}refetch({...i}={}){return this.fetch({...i})}fetchOptimistic(i){const c=this.#t.defaultQueryOptions(i),r=this.#t.getQueryCache().build(this.#t,c);return r.fetch().then(()=>this.createResult(r,c))}fetch(i){return this.#h({...i,cancelRefetch:i.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#h(i){this.#j();let c=this.#e.fetch(this.options,i);return i?.throwOnError||(c=c.catch(me)),c}#v(){this.#S();const i=Yl(this.options.staleTime,this.#e);if(In.isServer()||this.#a.isStale||!Is(i))return;const r=Jh(this.#a.dataUpdatedAt,i)+1;this.#o=ra.setTimeout(()=>{this.#a.isStale||this.updateResult()},r)}#p(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#e):this.options.refetchInterval)??!1}#g(i){this.#x(),this.#r=i,!(In.isServer()||Oe(this.options.enabled,this.#e)===!1||!Is(this.#r)||this.#r===0)&&(this.#d=ra.setInterval(()=>{(this.options.refetchIntervalInBackground||sr.isFocused())&&this.#h()},this.#r))}#b(){this.#v(),this.#g(this.#p())}#S(){this.#o!==void 0&&(ra.clearTimeout(this.#o),this.#o=void 0)}#x(){this.#d!==void 0&&(ra.clearInterval(this.#d),this.#d=void 0)}createResult(i,c){const r=this.#e,f=this.options,d=this.#a,m=this.#i,g=this.#n,p=i!==r?i.state:this.#l,{state:y}=i;let M={...y},E=!1,x;if(c._optimisticResults){const pt=this.hasListeners(),Zt=!pt&&Uh(i,c),ee=pt&&Hh(i,r,c,f);(Zt||ee)&&(M={...M,...em(y.data,i.options)}),c._optimisticResults==="isRestoring"&&(M.fetchStatus="idle")}let{error:w,errorUpdatedAt:z,status:q}=M;x=M.data;let Y=!1;if(c.placeholderData!==void 0&&x===void 0&&q==="pending"){let pt;d?.isPlaceholderData&&c.placeholderData===g?.placeholderData?(pt=d.data,Y=!0):pt=typeof c.placeholderData=="function"?c.placeholderData(this.#m?.state.data,this.#m):c.placeholderData,pt!==void 0&&(q="success",x=er(d?.data,pt,c),E=!0)}if(c.select&&x!==void 0&&!Y)if(d&&x===m?.data&&c.select===this.#f)x=this.#s;else try{this.#f=c.select,x=c.select(x),x=er(d?.data,x,c),this.#s=x,this.#u=null}catch(pt){this.#u=pt}this.#u&&(w=this.#u,x=this.#s,z=Date.now(),q="error");const F=M.fetchStatus==="fetching",yt=q==="pending",lt=q==="error",Ct=yt&&F,Rt=x!==void 0,k={status:q,fetchStatus:M.fetchStatus,isPending:yt,isSuccess:q==="success",isError:lt,isInitialLoading:Ct,isLoading:Ct,data:x,dataUpdatedAt:M.dataUpdatedAt,error:w,errorUpdatedAt:z,failureCount:M.fetchFailureCount,failureReason:M.fetchFailureReason,errorUpdateCount:M.errorUpdateCount,isFetched:i.isFetched(),isFetchedAfterMount:M.dataUpdateCount>p.dataUpdateCount||M.errorUpdateCount>p.errorUpdateCount,isFetching:F,isRefetching:F&&!yt,isLoadingError:lt&&!Rt,isPaused:M.fetchStatus==="paused",isPlaceholderData:E,isRefetchError:lt&&Rt,isStale:or(i,c),refetch:this.refetch,promise:this.#c,isEnabled:Oe(c.enabled,i)!==!1};if(this.options.experimental_prefetchInRender){const pt=k.data!==void 0,Zt=k.status==="error"&&!pt,ee=ae=>{Zt?ae.reject(k.error):pt&&ae.resolve(k.data)},le=()=>{const ae=this.#c=k.promise=lr();ee(ae)},Ut=this.#c;switch(Ut.status){case"pending":i.queryHash===r.queryHash&&ee(Ut);break;case"fulfilled":(Zt||k.data!==Ut.value)&&le();break;case"rejected":(!Zt||k.error!==Ut.reason)&&le();break}}return k}updateResult(){const i=this.#a,c=this.createResult(this.#e,this.options);if(this.#i=this.#e.state,this.#n=this.options,this.#i.data!==void 0&&(this.#m=this.#e),Ps(c,i))return;this.#a=c;const r=()=>{if(!i)return!0;const{notifyOnChangeProps:f}=this.options,d=typeof f=="function"?f():f;if(d==="all"||!d&&!this.#y.size)return!0;const m=new Set(d??this.#y);return this.options.throwOnError&&m.add("error"),Object.keys(this.#a).some(g=>{const A=g;return this.#a[A]!==i[A]&&m.has(A)})};this.#E({listeners:r()})}#j(){const i=this.#t.getQueryCache().build(this.#t,this.options);if(i===this.#e)return;const c=this.#e;this.#e=i,this.#l=i.state,this.hasListeners()&&(c?.removeObserver(this),i.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#E(i){te.batch(()=>{i.listeners&&this.listeners.forEach(c=>{c(this.#a)}),this.#t.getQueryCache().notify({query:this.#e,type:"observerResultsUpdated"})})}};function y0(i,c){return Oe(c.enabled,i)!==!1&&i.state.data===void 0&&!(i.state.status==="error"&&Oe(c.retryOnMount,i)===!1)}function Uh(i,c){return y0(i,c)||i.state.data!==void 0&&nr(i,c,c.refetchOnMount)}function nr(i,c,r){if(Oe(c.enabled,i)!==!1&&Yl(c.staleTime,i)!=="static"){const f=typeof r=="function"?r(i):r;return f==="always"||f!==!1&&or(i,c)}return!1}function Hh(i,c,r,f){return(i!==c||Oe(f.enabled,i)===!1)&&(!r.suspense||i.state.status!=="error")&&or(i,r)}function or(i,c){return Oe(c.enabled,i)!==!1&&i.isStaleByTime(Yl(c.staleTime,i))}function v0(i,c){return!Ps(i.getCurrentResult(),c)}var p0=class extends tm{#t;#e;#l;#a;constructor(i){super(),this.#t=i.client,this.mutationId=i.mutationId,this.#l=i.mutationCache,this.#e=[],this.state=i.state||g0(),this.setOptions(i.options),this.scheduleGc()}setOptions(i){this.options=i,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(i){this.#e.includes(i)||(this.#e.push(i),this.clearGcTimeout(),this.#l.notify({type:"observerAdded",mutation:this,observer:i}))}removeObserver(i){this.#e=this.#e.filter(c=>c!==i),this.scheduleGc(),this.#l.notify({type:"observerRemoved",mutation:this,observer:i})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#l.remove(this))}continue(){return this.#a?.continue()??this.execute(this.state.variables)}async execute(i){const c=()=>{this.#i({type:"continue"})},r={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#a=Ph({fn:()=>this.options.mutationFn?this.options.mutationFn(i,r):Promise.reject(new Error("No mutationFn found")),onFail:(m,g)=>{this.#i({type:"failed",failureCount:m,error:g})},onPause:()=>{this.#i({type:"pause"})},onContinue:c,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#l.canRun(this)});const f=this.state.status==="pending",d=!this.#a.canStart();try{if(f)c();else{this.#i({type:"pending",variables:i,isPaused:d}),this.#l.config.onMutate&&await this.#l.config.onMutate(i,this,r);const g=await this.options.onMutate?.(i,r);g!==this.state.context&&this.#i({type:"pending",context:g,variables:i,isPaused:d})}const m=await this.#a.start();return await this.#l.config.onSuccess?.(m,i,this.state.context,this,r),await this.options.onSuccess?.(m,i,this.state.context,r),await this.#l.config.onSettled?.(m,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(m,null,i,this.state.context,r),this.#i({type:"success",data:m}),m}catch(m){try{await this.#l.config.onError?.(m,i,this.state.context,this,r)}catch(g){Promise.reject(g)}try{await this.options.onError?.(m,i,this.state.context,r)}catch(g){Promise.reject(g)}try{await this.#l.config.onSettled?.(void 0,m,this.state.variables,this.state.context,this,r)}catch(g){Promise.reject(g)}try{await this.options.onSettled?.(void 0,m,i,this.state.context,r)}catch(g){Promise.reject(g)}throw this.#i({type:"error",error:m}),m}finally{this.#l.runNext(this)}}#i(i){const c=r=>{switch(i.type){case"failed":return{...r,failureCount:i.failureCount,failureReason:i.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:i.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:i.isPaused,status:"pending",variables:i.variables,submittedAt:Date.now()};case"success":return{...r,data:i.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:i.error,failureCount:r.failureCount+1,failureReason:i.error,isPaused:!1,status:"error"}}};this.state=c(this.state),te.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(i)}),this.#l.notify({mutation:this,type:"updated",action:i})})}};function g0(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var b0=class extends ai{constructor(i={}){super(),this.config=i,this.#t=new Set,this.#e=new Map,this.#l=0}#t;#e;#l;build(i,c,r){const f=new p0({client:i,mutationCache:this,mutationId:++this.#l,options:i.defaultMutationOptions(c),state:r});return this.add(f),f}add(i){this.#t.add(i);const c=Eu(i);if(typeof c=="string"){const r=this.#e.get(c);r?r.push(i):this.#e.set(c,[i])}this.notify({type:"added",mutation:i})}remove(i){if(this.#t.delete(i)){const c=Eu(i);if(typeof c=="string"){const r=this.#e.get(c);if(r)if(r.length>1){const f=r.indexOf(i);f!==-1&&r.splice(f,1)}else r[0]===i&&this.#e.delete(c)}}this.notify({type:"removed",mutation:i})}canRun(i){const c=Eu(i);if(typeof c=="string"){const f=this.#e.get(c)?.find(d=>d.state.status==="pending");return!f||f===i}else return!0}runNext(i){const c=Eu(i);return typeof c=="string"?this.#e.get(c)?.find(f=>f!==i&&f.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){te.batch(()=>{this.#t.forEach(i=>{this.notify({type:"removed",mutation:i})}),this.#t.clear(),this.#e.clear()})}getAll(){return Array.from(this.#t)}find(i){const c={exact:!0,...i};return this.getAll().find(r=>Ah(c,r))}findAll(i={}){return this.getAll().filter(c=>Ah(i,c))}notify(i){te.batch(()=>{this.listeners.forEach(c=>{c(i)})})}resumePausedMutations(){const i=this.getAll().filter(c=>c.state.isPaused);return te.batch(()=>Promise.all(i.map(c=>c.continue().catch(me))))}};function Eu(i){return i.options.scope?.id}var S0=class extends ai{constructor(i={}){super(),this.config=i,this.#t=new Map}#t;build(i,c,r){const f=c.queryKey,d=c.queryHash??rr(f,c);let m=this.get(d);return m||(m=new h0({client:i,queryKey:f,queryHash:d,options:i.defaultQueryOptions(c),state:r,defaultOptions:i.getQueryDefaults(f)}),this.add(m)),m}add(i){this.#t.has(i.queryHash)||(this.#t.set(i.queryHash,i),this.notify({type:"added",query:i}))}remove(i){const c=this.#t.get(i.queryHash);c&&(i.destroy(),c===i&&this.#t.delete(i.queryHash),this.notify({type:"removed",query:i}))}clear(){te.batch(()=>{this.getAll().forEach(i=>{this.remove(i)})})}get(i){return this.#t.get(i)}getAll(){return[...this.#t.values()]}find(i){const c={exact:!0,...i};return this.getAll().find(r=>Mh(c,r))}findAll(i={}){const c=this.getAll();return Object.keys(i).length>0?c.filter(r=>Mh(i,r)):c}notify(i){te.batch(()=>{this.listeners.forEach(c=>{c(i)})})}onFocus(){te.batch(()=>{this.getAll().forEach(i=>{i.onFocus()})})}onOnline(){te.batch(()=>{this.getAll().forEach(i=>{i.onOnline()})})}},x0=class{#t;#e;#l;#a;#i;#n;#c;#u;constructor(i={}){this.#t=i.queryCache||new S0,this.#e=i.mutationCache||new b0,this.#l=i.defaultOptions||{},this.#a=new Map,this.#i=new Map,this.#n=0}mount(){this.#n++,this.#n===1&&(this.#c=sr.subscribe(async i=>{i&&(await this.resumePausedMutations(),this.#t.onFocus())}),this.#u=Au.subscribe(async i=>{i&&(await this.resumePausedMutations(),this.#t.onOnline())}))}unmount(){this.#n--,this.#n===0&&(this.#c?.(),this.#c=void 0,this.#u?.(),this.#u=void 0)}isFetching(i){return this.#t.findAll({...i,fetchStatus:"fetching"}).length}isMutating(i){return this.#e.findAll({...i,status:"pending"}).length}getQueryData(i){const c=this.defaultQueryOptions({queryKey:i});return this.#t.get(c.queryHash)?.state.data}ensureQueryData(i){const c=this.defaultQueryOptions(i),r=this.#t.build(this,c),f=r.state.data;return f===void 0?this.fetchQuery(i):(i.revalidateIfStale&&r.isStaleByTime(Yl(c.staleTime,r))&&this.prefetchQuery(c),Promise.resolve(f))}getQueriesData(i){return this.#t.findAll(i).map(({queryKey:c,state:r})=>{const f=r.data;return[c,f]})}setQueryData(i,c,r){const f=this.defaultQueryOptions({queryKey:i}),m=this.#t.get(f.queryHash)?.state.data,g=e0(c,m);if(g!==void 0)return this.#t.build(this,f).setData(g,{...r,manual:!0})}setQueriesData(i,c,r){return te.batch(()=>this.#t.findAll(i).map(({queryKey:f})=>[f,this.setQueryData(f,c,r)]))}getQueryState(i){const c=this.defaultQueryOptions({queryKey:i});return this.#t.get(c.queryHash)?.state}removeQueries(i){const c=this.#t;te.batch(()=>{c.findAll(i).forEach(r=>{c.remove(r)})})}resetQueries(i,c){const r=this.#t;return te.batch(()=>(r.findAll(i).forEach(f=>{f.reset()}),this.refetchQueries({type:"active",...i},c)))}cancelQueries(i,c={}){const r={revert:!0,...c},f=te.batch(()=>this.#t.findAll(i).map(d=>d.cancel(r)));return Promise.all(f).then(me).catch(me)}invalidateQueries(i,c={}){return te.batch(()=>(this.#t.findAll(i).forEach(r=>{r.invalidate()}),i?.refetchType==="none"?Promise.resolve():this.refetchQueries({...i,type:i?.refetchType??i?.type??"active"},c)))}refetchQueries(i,c={}){const r={...c,cancelRefetch:c.cancelRefetch??!0},f=te.batch(()=>this.#t.findAll(i).filter(d=>!d.isDisabled()&&!d.isStatic()).map(d=>{let m=d.fetch(void 0,r);return r.throwOnError||(m=m.catch(me)),d.state.fetchStatus==="paused"?Promise.resolve():m}));return Promise.all(f).then(me)}fetchQuery(i){const c=this.defaultQueryOptions(i);c.retry===void 0&&(c.retry=!1);const r=this.#t.build(this,c);return r.isStaleByTime(Yl(c.staleTime,r))?r.fetch(c):Promise.resolve(r.state.data)}prefetchQuery(i){return this.fetchQuery(i).then(me).catch(me)}fetchInfiniteQuery(i){return i._type="infinite",this.fetchQuery(i)}prefetchInfiniteQuery(i){return this.fetchInfiniteQuery(i).then(me).catch(me)}ensureInfiniteQueryData(i){return i._type="infinite",this.ensureQueryData(i)}resumePausedMutations(){return Au.isOnline()?this.#e.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#t}getMutationCache(){return this.#e}getDefaultOptions(){return this.#l}setDefaultOptions(i){this.#l=i}setQueryDefaults(i,c){this.#a.set($n(i),{queryKey:i,defaultOptions:c})}getQueryDefaults(i){const c=[...this.#a.values()],r={};return c.forEach(f=>{Wn(i,f.queryKey)&&Object.assign(r,f.defaultOptions)}),r}setMutationDefaults(i,c){this.#i.set($n(i),{mutationKey:i,defaultOptions:c})}getMutationDefaults(i){const c=[...this.#i.values()],r={};return c.forEach(f=>{Wn(i,f.mutationKey)&&Object.assign(r,f.defaultOptions)}),r}defaultQueryOptions(i){if(i._defaulted)return i;const c={...this.#l.queries,...this.getQueryDefaults(i.queryKey),...i,_defaulted:!0};return c.queryHash||(c.queryHash=rr(c.queryKey,c)),c.refetchOnReconnect===void 0&&(c.refetchOnReconnect=c.networkMode!=="always"),c.throwOnError===void 0&&(c.throwOnError=!!c.suspense),!c.networkMode&&c.persister&&(c.networkMode="offlineFirst"),c.queryFn===fr&&(c.enabled=!1),c}defaultMutationOptions(i){return i?._defaulted?i:{...this.#l.mutations,...i?.mutationKey&&this.getMutationDefaults(i.mutationKey),...i,_defaulted:!0}}clear(){this.#t.clear(),this.#e.clear()}},lm=Q.createContext(void 0),ni=i=>{const c=Q.useContext(lm);if(!c)throw new Error("No QueryClient set, use QueryClientProvider to set one");return c},j0=({client:i,children:c})=>(Q.useEffect(()=>(i.mount(),()=>{i.unmount()}),[i]),o.jsx(lm.Provider,{value:i,children:c})),am=Q.createContext(!1),E0=()=>Q.useContext(am);am.Provider;function T0(){let i=!1;return{clearReset:()=>{i=!1},reset:()=>{i=!0},isReset:()=>i}}var N0=Q.createContext(T0()),O0=()=>Q.useContext(N0),M0=(i,c,r)=>{const f=r?.state.error&&typeof i.throwOnError=="function"?Wh(i.throwOnError,[r.state.error,r]):i.throwOnError;(i.suspense||i.experimental_prefetchInRender||f)&&(c.isReset()||(i.retryOnMount=!1))},A0=i=>{Q.useEffect(()=>{i.clearReset()},[i])},C0=({result:i,errorResetBoundary:c,throwOnError:r,query:f,suspense:d})=>i.isError&&!c.isReset()&&!i.isFetching&&f&&(d&&i.data===void 0||Wh(r,[i.error,f])),z0=i=>{if(i.suspense){const r=d=>d==="static"?d:Math.max(d??1e3,1e3),f=i.staleTime;i.staleTime=typeof f=="function"?(...d)=>r(f(...d)):r(f),typeof i.gcTime=="number"&&(i.gcTime=Math.max(i.gcTime,1e3))}},_0=(i,c)=>i.isLoading&&i.isFetching&&!c,D0=(i,c)=>i?.suspense&&c.isPending,wh=(i,c,r)=>c.fetchOptimistic(i).catch(()=>{r.clearReset()});function R0(i,c,r){const f=E0(),d=O0(),m=ni(),g=m.defaultQueryOptions(i);m.getDefaultOptions().queries?._experimental_beforeQuery?.(g);const A=m.getQueryCache().get(g.queryHash),p=i.subscribed!==!1;g._optimisticResults=f?"isRestoring":p?"optimistic":void 0,z0(g),M0(g,d,A),A0(d);const y=!m.getQueryCache().get(g.queryHash),[M]=Q.useState(()=>new c(m,g)),E=M.getOptimisticResult(g),x=!f&&p;if(Q.useSyncExternalStore(Q.useCallback(w=>{const z=x?M.subscribe(te.batchCalls(w)):me;return M.updateResult(),z},[M,x]),()=>M.getCurrentResult(),()=>M.getCurrentResult()),Q.useEffect(()=>{M.setOptions(g)},[g,M]),D0(g,E))throw wh(g,M,d);if(C0({result:E,errorResetBoundary:d,throwOnError:g.throwOnError,query:A,suspense:g.suspense}))throw E.error;return m.getDefaultOptions().queries?._experimental_afterQuery?.(g,E),g.experimental_prefetchInRender&&!In.isServer()&&_0(E,f)&&(y?wh(g,M,d):A?.promise)?.catch(me).finally(()=>{M.updateResult()}),g.notifyOnChangeProps?E:M.trackResult(E)}function ve(i,c){return R0(i,m0)}function nm(){throw location.href="/auth/login?next="+encodeURIComponent(location.pathname+location.search),new Error("signing in…")}async function Me(i){const c=await fetch(i);if(c.status===401&&nm(),!c.ok)throw new Error(await c.text());return c.json()}async function Ll(i,c,r){const f={method:i};r!==void 0&&(f.headers={"Content-Type":"application/json"},f.body=JSON.stringify(r));const d=await fetch(c,f);if(!d.ok)throw new Error(await d.text());return d.status===204?{}:d.json()}async function Wa(i,c){const r=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c||{})});if(r.status===401&&nm(),!r.ok)throw new Error(await r.text());return r.json()}function U0(){return ve({queryKey:["config"],queryFn:async()=>{const i=await Me("/api/config");return i.auth.enabled&&!i.me&&(location.href="/auth/login?next="+encodeURIComponent(location.pathname+location.search),await new Promise(()=>{})),i},staleTime:1/0})}const ir=new Set;function H0(i){return ir.add(i),()=>ir.delete(i)}function w0(){for(const i of ir)i()}const im=(...i)=>i.filter((c,r,f)=>!!c&&c.trim()!==""&&f.indexOf(c)===r).join(" ").trim();const q0=i=>i.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Q0=i=>i.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,r,f)=>f?f.toUpperCase():r.toLowerCase());const qh=i=>{const c=Q0(i);return c.charAt(0).toUpperCase()+c.slice(1)};var Fs={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const B0=i=>{for(const c in i)if(c.startsWith("aria-")||c==="role"||c==="title")return!0;return!1},L0=Q.createContext({}),Y0=()=>Q.useContext(L0),G0=Q.forwardRef(({color:i,size:c,strokeWidth:r,absoluteStrokeWidth:f,className:d="",children:m,iconNode:g,...A},p)=>{const{size:y=24,strokeWidth:M=2,absoluteStrokeWidth:E=!1,color:x="currentColor",className:w=""}=Y0()??{},z=f??E?Number(r??M)*24/Number(c??y):r??M;return Q.createElement("svg",{ref:p,...Fs,width:c??y??Fs.width,height:c??y??Fs.height,stroke:i??x,strokeWidth:z,className:im("lucide",w,d),...!m&&!B0(A)&&{"aria-hidden":"true"},...A},[...g.map(([q,Y])=>Q.createElement(q,Y)),...Array.isArray(m)?m:[m]])});const Nt=(i,c)=>{const r=Q.forwardRef(({className:f,...d},m)=>Q.createElement(G0,{ref:m,iconNode:c,className:im(`lucide-${q0(qh(i))}`,`lucide-${i}`,f),...d}));return r.displayName=qh(i),r};const X0=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],K0=Nt("check",X0);const Z0=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],k0=Nt("chevron-down",Z0);const V0=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],J0=Nt("chevron-right",V0);const F0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],$0=Nt("clock",F0);const W0=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],I0=Nt("copy",W0);const P0=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],tp=Nt("download",P0);const ep=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],lp=Nt("ellipsis",ep);const ap=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],np=Nt("file-text",ap);const ip=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],up=Nt("folder",ip);const cp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],sp=Nt("globe",cp);const rp=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],fp=Nt("history",rp);const op=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],dp=Nt("layout-dashboard",op);const hp=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],mp=Nt("link",hp);const yp=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],vp=Nt("lock",yp);const pp=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],gp=Nt("log-out",pp);const bp=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],Sp=Nt("menu",bp);const xp=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],jp=Nt("plus",xp);const Ep=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Tp=Nt("search",Ep);const Np=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Op=Nt("settings",Np);const Mp=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],Ap=Nt("share-2",Mp);const Cp=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],zp=Nt("shield",Cp);const _p=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],Dp=Nt("square-terminal",_p);const Rp=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Up=Nt("trash-2",Rp);const Hp=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],wp=Nt("triangle-alert",Hp);const qp=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Qp=Nt("upload",qp);const Bp=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Lp=Nt("users",Bp);const Yp=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Gp=Nt("x",Yp);function Xp(){document.body.classList.toggle("sb-open")}function Ke(){document.body.classList.remove("sb-open")}const Kp={alert:wp,check:K0,chev:J0,chevd:k0,clock:$0,copy:I0,doc:np,dots:lp,download:tp,folder:up,dashboard:dp,gear:Op,globe:sp,hist:fp,link:mp,lock:vp,menu:Sp,plus:jp,power:gp,search:Tp,share:Ap,shield:zp,terminal:Dp,trash:Up,upload:Qp,users:Lp,x:Gp};function Kt({name:i}){const c=Kp[i];return c?o.jsx(c,{className:"ico","aria-hidden":"true"}):null}function Pn(i){return o.jsxs(o.Fragment,{children:[o.jsx("div",{id:"sb-backdrop",onClick:Ke}),o.jsxs("aside",{id:"sidebar",children:[i.vault,i.projectsNav,i.tree??o.jsx("nav",{id:"tree","aria-label":"Files"}),i.orgBar]}),o.jsxs("main",{id:"main",children:[i.topbar,o.jsx("article",{id:"content",className:i.contentClass??"markdown",ref:i.contentRef,onScroll:i.onContentScroll,children:i.children})]})]})}function Cu(i){const{name:c,onHome:r,showSignout:f,search:d}=i;return o.jsxs("header",{id:"vault",children:[o.jsx("span",{id:"vault-badge","aria-hidden":"true",children:"🐻"}),o.jsx("span",{id:"vault-name",className:r?"vault-link":void 0,onClick:r,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:m=>{r&&(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),r())},children:c}),o.jsxs("div",{className:"vault-actions",children:[d&&o.jsxs("button",{id:"search-btn",className:"icon-btn2 has-tip","aria-label":"Search",onClick:()=>{w0(),Ke()},children:[o.jsx(Kt,{name:"search"}),o.jsxs("span",{className:"tip",role:"tooltip",children:["Search ",o.jsx("kbd",{children:"⌘K"})]})]}),f&&o.jsx("a",{id:"signout",href:"/auth/logout",title:"Sign out","aria-label":"Sign out",children:o.jsx(Kt,{name:"power"})})]})]})}function ti(i){return o.jsxs("header",{id:"topbar",children:[o.jsx("button",{id:"menu-btn",className:"icon-btn",title:"Menu","aria-label":"Menu",onClick:Xp,children:o.jsx(Kt,{name:"menu"})}),o.jsx("span",{id:"crumb",children:i.crumb}),o.jsx("span",{id:"meta",children:i.meta}),i.actions]})}let dr={msg:"",err:!1,shown:!1},Nu=[],Qh;function Bh(i){dr=i,Nu.forEach(c=>c())}function rt(i,c=!1){Bh({msg:i,err:c,shown:!0}),clearTimeout(Qh),Qh=setTimeout(()=>Bh({...dr,shown:!1}),3200)}function Zp(){const i=Q.useSyncExternalStore(c=>(Nu.push(c),()=>{Nu=Nu.filter(r=>r!==c)}),()=>dr);return o.jsx("div",{id:"toast",className:i.shown?"show"+(i.err?" err":""):"",children:i.msg})}let um=null,Ou=[];function hr(i){um=i,Ou.forEach(c=>c())}function cm(i,c,r="",f="OK"){return new Promise(d=>hr({kind:"prompt",title:i,label:c,value:r,okLabel:f,resolve:d}))}function Tu(i,c,r="Confirm",f=!1){return new Promise(d=>hr({kind:"confirm",title:i,message:c,confirmLabel:r,danger:f,resolve:d}))}function kp(){const i=Q.useSyncExternalStore(c=>(Ou.push(c),()=>{Ou=Ou.filter(r=>r!==c)}),()=>um);return i?i.kind==="prompt"?o.jsx(Vp,{m:i}):o.jsx(Jp,{m:i}):null}function sm(){hr(null)}function Vp({m:i}){const c=Q.useRef(null),r=d=>{sm(),i.resolve(d)},f=()=>r(c.current.value.trim()||null);return Q.useEffect(()=>{c.current.focus(),c.current.select();const d=m=>{m.key==="Escape"&&r(null),m.key==="Enter"&&f()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[]),o.jsx("div",{className:"modal-back",onClick:d=>d.target===d.currentTarget&&r(null),children:o.jsxs("div",{className:"modal",children:[o.jsx("h3",{children:i.title}),o.jsx("label",{className:"modal-label",children:i.label}),o.jsx("input",{className:"modal-input",type:"text",autoComplete:"off",defaultValue:i.value,ref:c}),o.jsxs("div",{className:"modal-actions",children:[o.jsx("button",{className:"ai-btn",onClick:()=>r(null),children:"Cancel"}),o.jsx("button",{className:"pbtn",onClick:f,children:i.okLabel})]})]})})}function Jp({m:i}){const c=Q.useRef(null),r=f=>{sm(),i.resolve(f)};return Q.useEffect(()=>{c.current.focus();const f=d=>{d.key==="Escape"&&r(!1),d.key==="Enter"&&r(!0)};return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[]),o.jsx("div",{className:"modal-back",onClick:f=>f.target===f.currentTarget&&r(!1),children:o.jsxs("div",{className:"modal",children:[o.jsx("h3",{children:i.title}),o.jsx("p",{className:"modal-msg",children:i.message}),o.jsxs("div",{className:"modal-actions",children:[o.jsx("button",{className:"ai-btn",onClick:()=>r(!1),children:"Cancel"}),o.jsx("button",{className:i.danger?"danger-btn":"pbtn",onClick:()=>r(!0),ref:c,children:i.confirmLabel})]})]})})}function Fp(i){return ve({queryKey:["projects"],queryFn:()=>Me("/api/projects"),enabled:i,refetchInterval:3e4,select:c=>c.projects||[]})}function $p(i){return ve({queryKey:["orgs"],queryFn:()=>Me("/api/orgs"),enabled:i,select:c=>c.orgs||[]})}function rm(i){return ve({queryKey:["admin","pending"],queryFn:()=>Me("/api/admin/pending"),enabled:i,select:c=>c.pending||[]})}function fm(){const i=ni();return()=>Promise.all([i.invalidateQueries({queryKey:["projects"]}),i.invalidateQueries({queryKey:["orgs"]})]).then(()=>{})}function om(i){return i.split("/").map(encodeURIComponent).join("/")}function Lh(i){return i.split("/").map(decodeURIComponent).join("/")}const Wp=new Set(["insights","history","install","settings"]);function dm(i,c){const r=i.replace(/^\/+/,"");if(c!=="hub")return{path:r?Lh(r):""};const f=r.indexOf("/");if(f===-1)return{project:r,path:""};const d={project:r.slice(0,f),path:Lh(r.slice(f+1))},m=d.path.indexOf("/"),g=m===-1?d.path:d.path.slice(0,m);return Wp.has(g)&&(d.view=g,d.viewTarget=m===-1?"":d.path.slice(m+1).replace(/\/+$/,""),d.path=""),d}function Ip(i,c){const r=om(i);return c?"/"+c+(r?"/"+r:""):"/"+r}function $a(i,c,r){let f=(c?"/"+c:"")+"/"+i;return r&&(f+="/"+om(r.replace(/\/+$/,""))),f}let mr="POP";const ur=new Set;function hm(){for(const i of ur)i()}window.addEventListener("popstate",()=>{mr="POP",hm()});function ye(i,c){const r=location.pathname+location.search;!c?.replace&&r===i||(history[c?.replace?"replaceState":"pushState"](null,"",i),mr=c?.replace?"REPLACE":"PUSH",hm())}function yr(){return Q.useSyncExternalStore(i=>(ur.add(i),()=>{ur.delete(i)}),()=>location.pathname)}function Pp(){return mr}function tg({to:i}){return Q.useEffect(()=>{ye(i,{replace:!0})},[i]),null}const eg=/\.(md|markdown)$/i,lg=/\.(png|jpe?g|gif|svg|webp|ico|bmp|avif)$/i,ag=/\.html?$/i,ng=/\.(txt|log|json|ya?ml|toml|csv|go|py|js|ts|jsx|tsx|sh|bash|zsh|rb|rs|c|h|cpp|java|kt|swift|sql|css|xml|ini|conf|env|mod|sum|jsonl)$/i;function mm(i){if(i<1024)return i+" B";const c=["KB","MB","GB","TB"];let r=-1;do i/=1024,r++;while(i>=1024&&rd.invalidateQueries({queryKey:["orgs"]}),y=()=>d.invalidateQueries({queryKey:["invites",i.id]}),M=()=>d.invalidateQueries({queryKey:["orgShares",i.id]}),{data:E}=ve({queryKey:["invites",i.id],queryFn:()=>Me(`/api/orgs/${i.id}/invites`),enabled:m,select:z=>z.invites||[]}),{data:x}=ve({queryKey:["orgShares",i.id],queryFn:()=>Me(`/api/orgs/${i.id}/shares`),enabled:m,select:z=>z.shares||[]}),w=c.filter(z=>z.org===i.id);return o.jsxs("div",{className:"admin",children:[o.jsx("h1",{id:"org-title",children:i.name+(m?"":" · member")}),m&&o.jsxs("div",{className:"admin-row",children:[o.jsx("input",{id:"org-rename",type:"text",value:g,onChange:z=>A(z.target.value)}),o.jsx("button",{className:"pbtn",id:"org-rename-btn",onClick:async()=>{try{await Ll("PATCH","/api/orgs/"+i.id,{name:g.trim()}),rt("Renamed."),p()}catch(z){rt(z.message,!0)}},children:"Rename org"})]}),o.jsx("h3",{children:"Members"}),o.jsx("div",{className:"admin-list",children:i.members.map(z=>{const q=!!r&&z.email.toLowerCase()===r.toLowerCase();return o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:z.email+(q?" (you)":"")}),m&&!q?o.jsxs(o.Fragment,{children:[o.jsxs("select",{value:z.role,onChange:async Y=>{try{await Ll("PATCH",`/api/orgs/${i.id}/members/${encodeURIComponent(z.email)}`,{role:Y.target.value}),rt("Role updated.")}catch(F){rt(F.message,!0)}p()},children:[o.jsx("option",{value:"owner",children:"owner"}),o.jsx("option",{value:"member",children:"member"})]}),o.jsx("button",{className:"ai-del",onClick:async()=>{if(await Tu("Remove member",`Remove ${z.email} from ${i.name}?`,"Remove",!0))try{await Ll("DELETE",`/api/orgs/${i.id}/members/${encodeURIComponent(z.email)}`),rt("Removed."),p()}catch(Y){rt(Y.message,!0)}},children:"Remove"})]}):o.jsx("span",{className:"ai-tag",children:z.role})]},z.email)})}),m&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{children:"Projects"}),o.jsxs("div",{className:"admin-list",children:[w.length===0&&o.jsx("div",{className:"admin-empty",children:"No projects yet."}),w.map(z=>o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:z.name}),o.jsx("button",{className:"ai-btn",onClick:async()=>{const q=await cm("Rename project","New name",z.name,"Rename");if(!(!q||q===z.name))try{await Ll("PATCH","/api/projects/"+z.id,{name:q}),rt("Renamed."),await f()}catch(Y){rt(Y.message,!0)}},children:"Rename"}),o.jsx("button",{className:"ai-del",onClick:async()=>{if(await Tu("Delete project",`Delete “${z.name}”? Its files stay in storage, but it's removed from the hub.`,"Delete",!0))try{await Ll("DELETE","/api/projects/"+z.id),rt(`Deleted “${z.name}”.`),await f()}catch(q){rt(q.message,!0)}},children:"Delete"})]},z.id))]}),o.jsxs("div",{className:"admin-h",children:[o.jsx("h3",{children:"Invite links"}),o.jsx("button",{className:"pbtn",onClick:async()=>{try{const z=await Wa(`/api/orgs/${i.id}/invites`),q=await ei(z.url);rt(q?"Invite link copied to clipboard.":"Invite created — copy it from the list below."),y()}catch(z){rt(z.message,!0)}},children:"New invite"})]}),o.jsxs("div",{className:"admin-list",children:[E&&E.length===0&&o.jsx("div",{className:"admin-empty",children:"No active invite links."}),(E||[]).map(z=>o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main mono",style:{cursor:"pointer"},title:"Copy",onClick:()=>ei(z.url).then(q=>rt(q?"Copied.":"Select and copy the link.")),children:z.url}),o.jsx("span",{className:"ai-tag",children:(z.creator?"by "+z.creator+" · ":"")+(z.uses?z.uses+" joined · ":"unused · ")+"expires "+new Date(z.expires).toLocaleDateString()}),o.jsx("button",{className:"ai-del",onClick:async()=>{if(await Tu("Revoke invite","Revoke this invite link? Anyone still holding it won't be able to join.","Revoke",!0))try{await Ll("DELETE",`/api/orgs/${i.id}/invites/${z.token}`),rt("Revoked."),y()}catch(q){rt(q.message,!0)}},children:"Revoke"})]},z.token))]}),o.jsx("h3",{children:"Public share links"}),o.jsxs("div",{className:"admin-list",children:[x&&x.length===0&&o.jsx("div",{className:"admin-empty",children:"No public shares."}),(x||[]).map(z=>o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main mono",style:{cursor:"pointer"},title:z.url,onClick:()=>window.open(z.url,"_blank"),children:z.path}),o.jsx("span",{className:"ai-tag",children:(z.project_name||"")+(z.creator?" · by "+z.creator:"")+(z.created?" · "+new Date(z.created).toLocaleDateString():"")}),o.jsx("button",{className:"ai-del",onClick:async()=>{if(await Tu("Revoke share link",`Revoke the public link to “${z.path}”? Anyone with the URL will lose access.`,"Revoke",!0))try{await Ll("DELETE","/api/shares/"+z.token),rt("Share revoked."),M()}catch(q){rt(q.message,!0)}},children:"Revoke"})]},z.token))]})]})]})}function ug(){const i=ni(),{data:c,error:r}=ve({queryKey:["admin","policy"],queryFn:()=>Me("/api/admin/policy")}),{data:f}=rm(!0),[d,m]=Q.useState(!1),[g,A]=Q.useState(!1);if(Q.useEffect(()=>{c&&(m(c.require_verification&&c.mailer),A(c.require_approval))},[c]),Q.useEffect(()=>{r&&rt(r.message,!0)},[r]),!c)return null;const p=async(y,M,E)=>{try{await Wa(`/api/admin/pending/${y}/${M}`),rt((M==="approve"?"Approved ":"Denied ")+E),i.invalidateQueries({queryKey:["admin","pending"]})}catch(x){rt(x.message,!0)}};return o.jsxs("div",{className:"admin",children:[o.jsx("h1",{children:"Signup & access"}),o.jsx("p",{className:"admin-sub",children:"Who can create an account on this hub, and how new accounts are vetted."}),o.jsx("h3",{children:"New-account vetting"}),o.jsxs("div",{className:"admin-list",children:[o.jsx(Yh,{label:"Require email verification",desc:c.mailer?"New accounts must click an emailed link before they can sign in — proves they control the address.":"Configure SMTP on the server (auth.smtp) to enable email verification.",checked:d,disabled:!c.mailer,onChange:m}),o.jsx(Yh,{label:"Require admin approval",desc:"New accounts wait for a hub admin to approve them before they gain access.",checked:g,onChange:A})]}),o.jsx("button",{className:"pbtn",style:{marginTop:14},onClick:async()=>{try{await Wa("/api/admin/policy",{require_verification:d,require_approval:g}),rt("Signup policy saved."),i.invalidateQueries({queryKey:["admin","policy"]})}catch(y){rt(y.message,!0)}},children:"Save policy"}),o.jsx("h3",{children:"Who can sign up"}),o.jsxs("div",{className:"admin-list",children:[o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:"Allowed email domains"}),o.jsx("span",{className:"ai-tag",children:c.allowed_domains&&c.allowed_domains.length?c.allowed_domains.map(y=>"@"+y).join(", "):"any"})]}),o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:"Self-signup"}),o.jsx("span",{className:"ai-tag",children:c.allow_signup?"open":"invite-only"})]}),o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:"Hub admins"}),o.jsx("span",{className:"ai-tag",children:c.admins&&c.admins.length?c.admins.join(", "):"none"})]})]}),o.jsx("p",{className:"admin-sub",children:"Domains and admins are set in the server config file (they can't be widened from the browser)."}),o.jsx("h3",{children:"Pending signups"}),o.jsxs("div",{className:"admin-list",children:[(!f||f.length===0)&&o.jsx("div",{className:"admin-empty",children:"No one is waiting for approval."}),(f||[]).map(y=>o.jsxs("div",{className:"admin-item",children:[o.jsx("span",{className:"ai-main",children:(y.name?y.name+" · ":"")+y.email}),o.jsx("button",{className:"pbtn",onClick:()=>p(y.id,"approve",y.email),children:"Approve"}),o.jsx("button",{className:"ai-del",onClick:()=>p(y.id,"deny",y.email),children:"Deny"})]},y.id))]})]})}function Yh({label:i,desc:c,checked:r,disabled:f,onChange:d}){return o.jsxs("label",{className:"admin-item toggle",style:f?{opacity:.55}:void 0,children:[o.jsxs("span",{className:"ai-main",children:[o.jsx("div",{className:"tg-label",children:i}),o.jsx("div",{className:"tg-desc",children:c})]}),o.jsx("input",{type:"checkbox",checked:r,disabled:f,onChange:m=>d(m.target.checked)})]})}const Gh=["#5b8def","#f5a623","#4cc38a","#e0679b","#8b7bf0","#3ec8c8","#e6934a"];function vm(i){let c=0;for(const r of i)c=c*31+r.charCodeAt(0)>>>0;return Gh[c%Gh.length]}function Xh({projects:i,currentId:c,menu:r}){const f=fm(),d=async()=>{const m=await cm("New project","Project name","","Create");if(m)try{const g=await Wa("/api/projects",{name:m});await f(),ye("/"+g.project.id),rt(`Created “${g.project.name}”.`)}catch(g){rt("Could not create the project: "+g.message,!0)}};return o.jsxs("nav",{id:"projects","aria-label":"Projects",children:[o.jsxs("div",{className:"nav-head",children:[o.jsx("span",{children:"Projects"}),o.jsx("button",{className:"nav-add",title:"New project",onClick:d,children:"+"})]}),o.jsx("div",{className:"proj-row",children:o.jsxs("span",{className:"proj-select-wrap",children:[c&&o.jsx("span",{className:"proj-mark","aria-hidden":"true",style:{background:vm(i.find(m=>m.id===c)?.name||"")}}),o.jsxs("select",{id:"project-select","aria-label":"Switch project",value:c||"",onChange:m=>{m.target.value&&(ye("/"+m.target.value),Ke())},children:[!c&&o.jsx("option",{value:"",disabled:!0}),i.map(m=>o.jsx("option",{value:m.id,children:m.name},m.id))]}),o.jsx(Kt,{name:"chevd"})]})}),r&&o.jsx("ul",{className:"nav-menu","aria-label":"Project pages",children:[["dashboard","Dashboard","dashboard",r.onDashboard],["install","Installation","terminal",r.onInstall],["history","History","hist",r.onHistory],["settings","Settings","gear",r.onSettings]].map(([m,g,A,p])=>o.jsx("li",{children:o.jsxs("div",{id:"nav-"+m,className:"row"+(r.active===m?" active":""),role:"button",tabIndex:0,onClick:p,onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),p())},children:[o.jsx(Kt,{name:A}),o.jsx("span",{className:"label",children:g})]})},m))})]})}function cg({me:i,org:c,admin:r,onOrgSettings:f}){const[d,m]=Q.useState(!1),g=Q.useRef(null);Q.useEffect(()=>{if(!d)return;const p=M=>{g.current&&!g.current.contains(M.target)&&m(!1)},y=M=>{M.key==="Escape"&&m(!1)};return document.addEventListener("mousedown",p),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",p),document.removeEventListener("keydown",y)}},[d]);const A=i.name||i.email;return o.jsxs("footer",{id:"accountbar",ref:g,children:[d&&o.jsxs("div",{id:"account-menu",role:"menu","aria-label":"Account menu",children:[c&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"menu-sec",children:"Organization"}),o.jsxs("button",{id:"menu-org-settings",role:"menuitem",onClick:()=>{m(!1),f(c)},children:[o.jsx(Kt,{name:"gear"}),o.jsxs("span",{children:[o.jsx("b",{children:c.name})," Settings"]})]})]}),r&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"menu-sec",children:"Hub"}),o.jsxs("button",{id:"menu-hub-admin",role:"menuitem",onClick:()=>{m(!1),r.onClick()},children:[o.jsx(Kt,{name:"shield"}),o.jsxs("span",{children:["Signup & access",r.pending?` · ${r.pending}`:""]})]})]}),o.jsx("div",{className:"menu-sec",children:"Account"}),o.jsxs("a",{id:"signout",role:"menuitem",href:"/auth/logout",children:[o.jsx(Kt,{name:"power"}),o.jsx("span",{children:"Log out"})]})]}),o.jsxs("button",{id:"account-btn","aria-haspopup":"menu","aria-expanded":d,onClick:()=>m(p=>!p),children:[o.jsx("span",{className:"avatar",style:{background:vm(i.email)},"aria-hidden":"true",children:(A.trim()[0]||"?").toUpperCase()}),o.jsxs("span",{className:"acct",children:[o.jsx("b",{children:A}),i.name&&o.jsx("small",{children:i.email})]}),o.jsx(Kt,{name:"chev"})]})]})}function sg({project:i,org:c}){return o.jsxs("div",{className:"project-settings",children:[o.jsx("h2",{children:i.name}),o.jsxs("dl",{className:"ps-facts",children:[o.jsx("dt",{children:"Project id"}),o.jsx("dd",{children:o.jsx("code",{children:i.id})}),c&&o.jsxs(o.Fragment,{children:[o.jsx("dt",{children:"Workspace"}),o.jsx("dd",{children:c.name})]}),i.created&&o.jsxs(o.Fragment,{children:[o.jsx("dt",{children:"Created"}),o.jsx("dd",{children:new Date(i.created).toLocaleDateString()})]})]})]})}const $s=[{key:"claude",label:"Claude Code & Cowork"},{key:"hermes",label:"Hermes",hook:"hermes",note:"Registers BearDrive's hooks in Hermes's config: pull before every turn, push after edits with a session note, and report file reads to Insights."},{key:"codex",label:"Codex",hook:"codex",note:"Registers hooks in .codex/hooks.json.",extra:"Run /hooks inside Codex once to trust the project's .codex layer — after that every turn pulls, edits push automatically, and reads are reported to Insights."}];function rg(i,c){const r=window.location.origin,f=c.id;if(i.key==="claude")return[{title:"Add the BearDrive plugin",desc:"One time, in any Claude Code session. The plugin ships the beardrive skill, the /beardrive commands, and turn-boundary sync hooks — and Claude Cowork shares the same plugins, so installing it once covers both.",code:`/plugin marketplace add runbear-io/beardrive -/plugin install beardrive@beardrive`},{title:"Set up this project conversationally",desc:"In a Claude Code or Cowork session in the folder where you want the files, run:",code:"/beardrive:install connect to "+r+", project "+f,extra:"Claude installs the CLI, signs this machine in, mounts the project, and registers the sync hooks — pull the latest before every turn, push after edits (stamped with the session that made them), and report file reads to Insights. It asks before anything it changes."}];const d=(c.name||"project").toLowerCase().replace(/[^a-z0-9._-]+/g,"-")||"project";return[{title:"Install the BearDrive CLI",desc:"One static binary. Homebrew on macOS and Linux; releases and `go install` also work.",code:"brew install runbear-io/tap/beardrive"},{title:"Sign in to this hub",desc:"Opens the browser once and stores a device token on this machine — the synced folder itself never holds credentials.",code:"bdrive login "+r},{title:"Mount the project into a local folder",desc:"Run it where you want the files. An existing folder works too — contents merge, and re-running init later (or after moving the folder) just resumes.",code:"mkdir -p ~/"+d+" && cd ~/"+d+` -bdrive init --project `+f},{title:"Connect "+i.label,desc:i.note,code:"bdrive hooks install --agent "+i.hook,extra:i.extra}]}function fg(){try{return localStorage.getItem("bdrive-guide-agent")||"claude"}catch{return"claude"}}function pm({project:i}){const[c,r]=Q.useState(fg),f=$s.find(d=>d.key===c)||$s[0];return o.jsxs("div",{className:"guide",children:[o.jsx("h1",{className:"in-title",children:i.name}),o.jsx("p",{className:"dl-sub",children:"Mount this project as a folder on any machine and connect your coding agent: files sync both ways in the background, every change is journaled with who made it, and agent reads feed Insights."}),o.jsx("div",{className:"gd-tabs",children:$s.map(d=>o.jsx("button",{className:"gd-tab"+(d.key===f.key?" active":""),"data-key":d.key,onClick:()=>{r(d.key);try{localStorage.setItem("bdrive-guide-agent",d.key)}catch{}},children:d.label},d.key))}),o.jsxs("div",{className:"gd-body",children:[rg(f,i).map((d,m)=>o.jsxs("div",{className:"gd-step",children:[o.jsxs("div",{className:"gd-step-head",children:[o.jsx("span",{className:"gd-num",children:m+1}),o.jsx("span",{className:"gd-step-title",children:d.title})]}),d.desc&&o.jsx("p",{className:"gd-desc",children:d.desc}),d.code&&o.jsx(og,{code:d.code}),d.extra&&o.jsx("p",{className:"gd-desc gd-extra",children:d.extra})]},m)),o.jsx("p",{className:"gd-done",children:"That's it — the folder now syncs on its own. Every agent turn starts from the latest state, edits appear here (and on every teammate's mount) within seconds, and what your agents read shows up in Insights."})]})]})}function og({code:i}){const[c,r]=Q.useState("Copy");return o.jsxs("pre",{className:"gd-code",children:[o.jsx("code",{children:i}),o.jsx("button",{className:"gd-copy",onClick:async()=>{r(await ei(i)?"Copied":"Copy failed"),setTimeout(()=>r("Copy"),1400)},children:c})]})}function dg({authEnabled:i,onCreate:c}){const r=Q.useRef(null),f=Q.useRef(null),d=()=>{const m=r.current.value.trim(),g=m.match(/join\/([0-9a-f]+)/)||m.match(/^([0-9a-f]{8,})$/);if(!g){rt("That doesn't look like an invite link.",!0);return}location.href="/join/"+g[1]};return o.jsxs("div",{className:"onboard",children:[o.jsx("h1",{children:"Welcome to BearDrive"}),o.jsx("p",{children:"You're signed in, but you're not part of any project yet."}),i&&o.jsxs("div",{className:"ob-card",children:[o.jsx("h3",{children:"Have an invite link?"}),o.jsx("p",{children:"A teammate can send you a join link. Paste it here:"}),o.jsxs("div",{className:"ob-row",children:[o.jsx("input",{id:"ob-invite",type:"text",placeholder:"https://…/join/…",autoComplete:"off",ref:r}),o.jsx("button",{id:"ob-join",className:"pbtn",onClick:d,children:"Join"})]})]}),o.jsxs("div",{className:"ob-card",children:[o.jsx("h3",{children:"Or start a new project"}),o.jsx("p",{children:"Create a shared space for your team's files."}),o.jsxs("div",{className:"ob-row",children:[o.jsx("input",{id:"ob-name",type:"text",placeholder:"Project name, e.g. wiki",autoComplete:"off",ref:f}),o.jsx("button",{id:"ob-create",className:"pbtn",onClick:()=>c(f.current.value.trim()),children:"Create"})]})]})]})}function hg(i,c=!0){const r=ve({queryKey:["tree",i],queryFn:()=>Me(i+"tree"),enabled:c,refetchInterval:15e3}),f=Q.useMemo(()=>{const d=[],m=new Map,g=A=>{for(const p of A.children||[])p.dir?(m.set(p.path,p),g(p)):d.push(p)};return r.data&&g(r.data),{flatFiles:d,dirIndex:m}},[r.data]);return{tree:r.data,...f,loaded:!!r.data}}function mg(i,c){return ve({queryKey:["heat",i],queryFn:()=>Me(i+"heat?days=30"),enabled:c,staleTime:6e4,refetchInterval:6e4}).data?.entries??null}function yg(i,c,r){return ve({queryKey:["history",i,"prefix",c,20],queryFn:()=>Me(i+"history?prefix="+encodeURIComponent(c)+"&n=20"),enabled:r,staleTime:15e3}).data?.entries??null}function Kh(i,c,r){if(!i)return null;if(!r)return i[c]||null;const f={human:0,agent:0,share:0};for(const[d,m]of Object.entries(i))d.startsWith(c+"/")&&(f.human+=m.human||0,f.agent+=m.agent||0,f.share+=m.share||0);return f.human||f.agent||f.share?f:null}function li(i){return(i.human||0)+(i.agent||0)+(i.share||0)}function Mu(i){const c=li(i);if(!c)return"";let r=c+(c===1?" read":" reads");return i.agent&&(r+=" ("+i.agent+" agent)"),r}function vg(i){const c=li(i);return c?c<3?1:c<10?2:c<30?3:4:0}function pg(i){return o.jsx("nav",{id:"tree","aria-label":"Files",children:i.root&&o.jsx(gm,{nodes:i.root.children||[],...i})})}function gm({nodes:i,...c}){return o.jsx("ul",{children:i.map(r=>o.jsx(gg,{node:r,...c},r.path))})}function gg({node:i,...c}){const{expanded:r,onToggle:f,currentPath:d,listingShowing:m,onOpen:g}=c,A=i.dir?r.has(i.path):!1,p=()=>{if(i.dir&&d===i.path&&m){f(i.path);return}g(i.path),i.dir||Ke()};return o.jsxs("li",{className:(i.dir?"dir":"file")+(i.dir&&!A?" collapsed":""),children:[o.jsxs("div",{className:"row"+(d===i.path?" active":""),"data-path":i.path,tabIndex:0,role:"button",title:i.name,"aria-expanded":i.dir?A:void 0,onClick:p,onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),p())},children:[o.jsx("span",{className:"chev",onClick:y=>{i.dir&&(y.stopPropagation(),f(i.path))},children:o.jsx(Kt,{name:"chevd"})}),o.jsx("span",{className:"ticon",children:o.jsx(Kt,{name:i.dir?"folder":"doc"})}),o.jsx("span",{className:"label",children:i.name})]}),i.dir&&o.jsx(gm,{nodes:i.children||[],...c})]})}function bg(i){const c=i.split("/"),r=[];let f="";for(let d=0;d{f=f?f+"/"+d:d;const g=f,A=m===r.length-1;return o.jsxs("span",{children:[m>0&&o.jsx("span",{className:"crumb-sep",children:"/"}),A?o.jsx("span",{children:d}):o.jsx("span",{className:"crumb-seg",title:g,onClick:()=>c(g),children:d})]},g)})})}const xg={add:"plus",edit:"edit",delete:"x"},jg={add:"added",edit:"edited",delete:"deleted"};function bm({entry:i,onOpen:c}){const[r,f]=Q.useState(!1),d=i.kind==="put"?"edit":i.kind,m=i.user_name?`${i.user_name} <${i.user}>`:i.user||i.author||"unknown",g=[i.device.name||i.device.id,i.device.os,i.device.ip].filter(Boolean).join(" · "),A=d!=="delete",p=y=>{y.target.tagName!=="A"&&A&&c(i.path)};return o.jsxs("div",{className:"hentry "+d+(A?" clickable":""),tabIndex:A?0:void 0,role:A?"button":void 0,onClick:p,onKeyDown:y=>{A&&(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),c(i.path))},children:[o.jsxs("div",{className:"hline",children:[o.jsx("span",{className:"hkind",children:o.jsx(Kt,{name:xg[d]||"dot"})}),o.jsx("span",{className:"hpath",children:i.path}),o.jsx("span",{className:"htag",children:jg[d]||d}),o.jsx("span",{className:"htime",children:new Date(i.time).toLocaleString()})]}),o.jsxs("div",{className:"hmeta",children:[o.jsx("span",{className:"hwho",children:m}),o.jsx("span",{className:"hdev",children:g}),o.jsx("span",{className:"hsize",children:i.size?mm(i.size):""})]}),i.note&&o.jsx("div",{className:"hnote"+(r?" open":""),tabIndex:0,role:"button",title:r?"Collapse note":"Show full note","aria-expanded":r,onClick:y=>{y.stopPropagation(),y.target.tagName!=="A"&&f(!r)},onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),y.stopPropagation(),f(!r))},children:i.note.split(/(https?:\/\/\S+)/).map((y,M)=>/^https?:\/\//.test(y)?o.jsx("a",{href:y,target:"_blank",rel:"noopener",children:y},M):y)})]})}function Eg(i){const{node:c,heatMap:r,onOpen:f}=i,d=(c.children||[]).slice().sort((y,M)=>Number(M.dir||!1)-Number(y.dir||!1)||y.name.localeCompare(M.name)),m=d.filter(y=>y.dir).length,g=d.length-m,A=[];m&&A.push(m+(m===1?" folder":" folders")),g&&A.push(g+(g===1?" file":" files"));const p=Kh(r,c.path,!0);return p&&A.push(Mu(p)+" in 30 days"),o.jsxs("div",{className:"dirlist",children:[o.jsxs("h1",{className:"dl-title",children:[o.jsx("span",{className:"dl-title-icon",children:o.jsx(Kt,{name:"folder"})}),o.jsx("span",{children:c.name})]}),o.jsx("p",{className:"dl-sub",children:A.join(" · ")||"Empty folder"}),d.length===0?o.jsx("div",{className:"dl-empty",children:"Nothing in this folder yet."}):o.jsx("div",{className:"dl-items",children:d.map(y=>{let M="";if(y.dir){const x=(y.children||[]).length;M=x+(x===1?" item":" items")}else M=[y.size?mm(y.size):"",y.time?new Date(y.time).toLocaleDateString():""].filter(Boolean).join(" · ");const E=Kh(r,y.path,!!y.dir);return E&&(M=Mu(E)+(M?" · "+M:"")),o.jsxs("div",{className:"dl-row",tabIndex:0,role:"button",title:y.path,onClick:()=>f(y.path),onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),f(y.path))},children:[o.jsx("span",{className:"ticon",children:o.jsx(Kt,{name:y.dir?"folder":"doc"})}),o.jsx("span",{className:"dl-name",children:y.name}),E&&o.jsx("span",{className:"heatdot lvl"+vg(E),title:Mu(E)+" in 30 days"}),o.jsx("span",{className:"dl-meta",children:M})]},y.path)})}),i.hub&&o.jsx(Tg,{apiBase:i.apiBase,prefix:c.path+"/",onOpen:f,onFullHistory:()=>i.onFullHistory(c.path+"/"),onRendered:i.onRendered})]})}function Tg(i){const c=yg(i.apiBase,i.prefix,!0),{onRendered:r}=i;return Q.useEffect(()=>{c&&c.length&&r&&r()},[c,r]),!c||c.length===0?null:o.jsxs("div",{className:"dl-history",children:[o.jsx("h3",{className:"dl-h3",children:"Recent changes"}),o.jsx("div",{className:"history dl-hlist",children:c.map((f,d)=>o.jsx(bm,{entry:f,onOpen:i.onOpen},d))}),o.jsx("button",{className:"ai-btn dl-more",onClick:i.onFullHistory,children:"Full history"})]})}function Ng(i){const{apiBase:c,path:r,onMeta:f}=i,d=c+"file?path="+encodeURIComponent(r);return Q.useEffect(()=>()=>f(""),[r,f]),eg.test(r)?o.jsx(Og,{...i}):ag.test(r)?o.jsx("iframe",{className:"htmlview",sandbox:"allow-scripts",src:d,title:r,onLoad:i.onRendered}):lg.test(r)?o.jsx(Cg,{src:d,alt:r,onRendered:i.onRendered}):ng.test(r)?o.jsx(zg,{...i,fileURL:d}):o.jsxs("div",{className:"filecard",children:[o.jsx("div",{className:"name",children:r.split("/").pop()}),o.jsx("p",{children:"No preview for this file type."}),o.jsx("a",{className:"btn",download:!0,href:c+"download?path="+encodeURIComponent(r),children:"Download"})]})}function Og(i){const{apiBase:c,path:r,heatMap:f,flatFiles:d,onOpenFile:m,onMeta:g,onRendered:A}=i,{data:p,error:y}=ve({queryKey:["render",c,r],queryFn:()=>Me(c+"render?path="+encodeURIComponent(r))}),M=Q.useMemo(()=>p?Ag(p.html,r,c):"",[p,r,c]);return Q.useEffect(()=>{if(!p)return;const E=[];p.author&&E.push(p.author+(p.device?" on "+p.device:"")),p.time&&E.push(new Date(p.time).toLocaleString());const x=f&&f[p.path];x&&li(x)&&E.push(Mu(x)+" / 30d"),g(E.join(" · ")),A?.()},[p,f,g,A]),y?o.jsxs("div",{className:"empty",children:["Could not load file: ",y.message]}):p?o.jsx("div",{dangerouslySetInnerHTML:{__html:M},onClick:E=>Mg(E,r,d,m)}):null}function Mg(i,c,r,f){const d=i.target.closest("a");if(!d||!i.currentTarget.contains(d))return;const m=d.getAttribute("href")||"",g=c.includes("/")?c.slice(0,c.lastIndexOf("/")):"";m.startsWith("wiki:")?(i.preventDefault(),_g(decodeURIComponent(m.slice(5)),r,f)):/^([a-z]+:|\/|#)/i.test(m)||(i.preventDefault(),f(ym(g,decodeURIComponent(m))))}function Ag(i,c,r){const f=c.includes("/")?c.slice(0,c.lastIndexOf("/")):"",d=g=>r+"file?path="+encodeURIComponent(g),m=new DOMParser().parseFromString(i,"text/html");for(const g of m.querySelectorAll("img")){const A=g.getAttribute("src")||"";/^([a-z]+:|\/)/i.test(A)||g.setAttribute("src",d(ym(f,A)))}for(const g of m.querySelectorAll("a")){const A=g.getAttribute("href")||"";/^https?:/i.test(A)&&(g.setAttribute("target","_blank"),g.setAttribute("rel","noopener"))}return m.body.innerHTML}function Cg({src:i,alt:c,onRendered:r}){return o.jsx("img",{src:i,alt:c,onLoad:r})}function zg(i){const{path:c,fileURL:r,onRendered:f}=i,{data:d,error:m}=ve({queryKey:["text",r],queryFn:async()=>{const g=await fetch(r);if(!g.ok)throw new Error(await g.text());return g.text()}});return Q.useEffect(()=>{d!=null&&f?.()},[d,f]),m?o.jsxs("div",{className:"empty",children:["Could not load file: ",m.message]}):d==null?null:o.jsx("pre",{className:"plain",children:d},c)}function _g(i,c,r){const f=i.toLowerCase(),d=c.find(m=>m.path.toLowerCase()===f||m.path.toLowerCase()===f+".md")||c.find(m=>{const g=m.name.toLowerCase();return g===f||g===f+".md"});d&&r(d.path)}function Dg({url:i,copied:c,onClose:r}){const f=i.split("/s/")[1];return Q.useEffect(()=>{const d=m=>{m.key==="Escape"&&r()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[r]),o.jsx("div",{className:"modal-back",onClick:d=>d.target===d.currentTarget&&r(),children:o.jsxs("div",{className:"modal",children:[o.jsx("h3",{children:"Public link created"}),o.jsxs("p",{children:[o.jsx("b",{children:"Anyone with this link can view this file"})," — no account needed. It always shows the latest version until you revoke it."]}),o.jsx("div",{className:"modal-url",children:i}),o.jsxs("div",{className:"modal-actions",children:[o.jsx("button",{className:"pbtn",onClick:()=>ei(i).then(d=>rt(d?"Copied.":"Select and copy the link above.")),children:c?"Copied ✓":"Copy link"}),o.jsx("button",{className:"ai-btn",onClick:()=>window.open(i,"_blank"),children:"Open"}),o.jsx("button",{className:"ai-del",onClick:async()=>{try{await Ll("DELETE","/api/shares/"+f),rt("Link revoked — it no longer works."),r()}catch(d){rt(d.message,!0)}},children:"Revoke"}),o.jsx("button",{className:"ai-btn",onClick:r,children:"Done"})]})]})})}function Zh(i,c){if(!i)return{score:0,hits:[]};const r=i.toLowerCase(),f=c.toLowerCase();let d=0,m=0,g=0;const A=[];for(let p=0;p3&&f.endsWith("ies")?d=f.slice(0,-3)+"y":f.length>3&&f.endsWith("es")?d=f.slice(0,-2):f.length>2&&f.endsWith("s")&&(d=f.slice(0,-1)),d?Zh(d,c):null}function Ug({text:i,hits:c}){const r=[];let f=0;return c.forEach((d,m)=>{d>f&&r.push(i.slice(f,d)),r.push(o.jsx("b",{children:i[d]},m)),f=d+1}),r.push(i.slice(f)),o.jsx("span",{className:"plabel",children:r})}function Hg({open:i,onClose:c,candidates:r}){const[f,d]=Q.useState(""),[m,g]=Q.useState(0),A=Q.useRef(null),p=Q.useRef(null),y=Q.useMemo(()=>{if(!i)return[];const E=[];for(const x of r()){const w=Rg(f,x.label);w&&E.push({...x,score:w.score,hits:w.hits})}return E.sort((x,w)=>w.score-x.score),E.slice(0,40)},[i,f,r]);Q.useEffect(()=>{i&&(d(""),g(0),A.current?.focus())},[i]),Q.useEffect(()=>g(0),[f]),Q.useEffect(()=>{p.current?.children[m]?.scrollIntoView({block:"nearest"})},[m,y]);const M=E=>{c(),E.run()};return Q.useEffect(()=>{if(!i)return;const E=x=>{if(x.key==="Escape")x.preventDefault(),c();else if(x.key==="ArrowDown"||x.key==="ArrowUp"){x.preventDefault();const w=y.length;w&&g(z=>(z+(x.key==="ArrowDown"?1:w-1))%w)}else x.key==="Enter"&&(x.preventDefault(),y[m]&&M(y[m]))};return window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)},[i,y,m]),i?o.jsx("div",{id:"palette-overlay",onClick:E=>E.target===E.currentTarget&&c(),children:o.jsxs("div",{id:"palette",role:"dialog","aria-label":"Search and quick actions",children:[o.jsxs("div",{id:"palette-inputwrap",children:[o.jsx(Kt,{name:"search"}),o.jsx("input",{id:"palette-input",type:"text",placeholder:"Search file names, projects, actions…",autoComplete:"off",spellCheck:!1,ref:A,value:f,onChange:E=>d(E.target.value)})]}),o.jsx("ul",{id:"palette-results",ref:p,children:y.length===0?o.jsx("li",{className:"pempty",children:"No matches — search covers file names, projects, and actions"}):y.map((E,x)=>o.jsxs("li",{className:x===m?"selected":void 0,onClick:()=>M(E),onMouseMove:()=>m!==x&&g(x),children:[o.jsx("span",{className:"picon",children:o.jsx(Kt,{name:E.icon})}),o.jsx(Ug,{text:E.label,hits:E.hits}),o.jsx("span",{className:"pkind",children:E.kind})]},E.kind+":"+E.label))}),o.jsx("footer",{id:"palette-hint",children:"↑↓ navigate · ⏎ select · esc close"})]})}):null}const Fn=3,Fa=30;function wg(i,c){return ve({queryKey:["heatDevices",i],queryFn:()=>Me(i+"heat?by=device&days=30"),enabled:c,retry:!1,staleTime:6e4}).data?.devices??null}function kh(i){const[c,r]=Q.useState("all"),{flatFiles:f,heatMap:d,devices:m,scope:g}=i,A=x=>!g||x===g||x.startsWith(g+"/"),p=g?f.filter(x=>A(x.path)):f,y=m&&g?m.map(x=>{const w={};for(const[z,q]of Object.entries(x.folders||{}))A(z)&&(w[z]=q);return{...x,folders:w}}).filter(x=>Object.keys(x.folders).length>0):m,M=Date.now(),E=p.map(x=>{const w=d&&d[x.path]||{},z=x.time?Math.max(0,(M-new Date(x.time).getTime())/864e5):0,q=c==="all"?li(w):w[c]||0;return{path:x.path,reads:q,agent:w.agent||0,total:li(w),days:z,danger:q>=Fn&&z>=Fa}});return o.jsxs("div",{className:"insights",children:[o.jsxs("h1",{className:"in-title",children:["Knowledge insights",g?o.jsxs("span",{className:"in-scope",children:[" · ",g]}):null]}),o.jsx("p",{className:"dl-sub",children:g?`Reads over the last 30 days × freshness, for ${g} and everything in it.`:"Reads over the last 30 days × how long since each file changed. Hot but stale knowledge — read a lot, maintained by nobody — is the danger zone."}),o.jsx("div",{className:"in-lens",children:["all","human","agent"].map(x=>o.jsx("button",{className:"in-lens-btn"+(x===c?" active":""),onClick:()=>r(x),children:x==="all"?"All reads":x==="human"?"Human reads":"Agent reads"},x))}),o.jsx("h3",{className:"dl-h3",children:"Map — cell size = reads, color = freshness"}),o.jsx(Qg,{pts:E,onOpenFile:i.onOpenFile,onOpenFolder:i.onOpenFolder,isFolder:i.isFolder}),o.jsx("h3",{className:"dl-h3",children:"Reads × freshness"}),o.jsx(Bg,{pts:E,onOpenFile:i.onOpenFile}),o.jsx("h3",{className:"dl-h3",children:"Hot path — top files by reads"}),o.jsx(Lg,{pts:E,lens:c,onOpenFile:i.onOpenFile}),y&&y.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"dl-h3",children:"Agent coverage — which agents read which areas"}),o.jsx(Yg,{devices:y})]})]})}function qg(i){const c=[[76,195,138],[232,196,84],[224,93,93]],r=Math.min(1,Math.max(0,i/300))*(c.length-1),f=Math.min(c.length-2,Math.floor(r)),d=r-f,m=c[f].map((g,A)=>Math.round(g+(c[f+1][A]-g)*d));return`rgb(${m[0]},${m[1]},${m[2]})`}function Vh(i,c,r,f,d){const m=i.reduce((y,M)=>y+M.value,0);if(!m||f<=0||d<=0)return[];const g=i.slice().sort((y,M)=>M.value-y.value).map(y=>({it:y,a:y.value/m*f*d})),A=(y,M)=>{const x=y.reduce((z,q)=>z+q.a,0)/M;let w=0;for(const z of y){const q=z.a/x;w=Math.max(w,q/x,x/q)}return w},p=[];for(;g.length;){const y=f>=d,M=y?d:f,E=[g.shift()];for(;g.length&&A(E.concat(g[0]),M)<=A(E,M);)E.push(g.shift());const x=E.reduce((z,q)=>z+q.a,0)/M;let w=0;for(const z of E){const q=z.a/x;y?p.push({item:z.it,x:c,y:r+w,w:x,h:q}):p.push({item:z.it,x:c+w,y:r,w:q,h:x}),w+=q}y?(c+=x,f-=x):(r+=x,d-=x)}return p}const Ws=15;function Qg({pts:i,onOpenFile:c,onOpenFolder:r,isFolder:f}){const g=new Map;for(const p of i){const y=p.path.includes("/")?p.path.split("/")[0]:"/";let M=g.get(y);M||g.set(y,M={name:y,files:[],value:0}),M.files.push(p),M.value+=p.reads+1}const A=[];for(const p of Vh([...g.values()],0,0,720,480)){const y=p.item,M=y.name==="/"?"":y.name;if(A.push(o.jsx("rect",{x:p.x+1,y:p.y+1,width:Math.max(0,p.w-2),height:Math.max(0,p.h-2),rx:3,className:"in-tm-group","data-dir":M},"g"+y.name)),p.w>46&&p.h>Ws+10){let x=y.name==="/"?"(root)":y.name;const w=Math.floor((p.w-8)/6);x.length>w&&(x=x.slice(0,Math.max(1,w-1))+"…"),A.push(o.jsx("text",{x:p.x+5,y:p.y+12,className:"in-tm-glabel","data-dir":M,children:x},"gl"+y.name))}const E=Vh(y.files.map(x=>({...x,name:x.path.split("/").pop(),value:x.reads+1})),p.x+2,p.y+Ws,Math.max(0,p.w-4),Math.max(0,p.h-Ws-2));for(const x of E)if(A.push(o.jsx("rect",{x:x.x+.6,y:x.y+.6,width:Math.max(.4,x.w-1.2),height:Math.max(.4,x.h-1.2),rx:1.5,fill:qg(x.item.days),className:"in-tm-cell","data-path":x.item.path,children:o.jsx("title",{children:`${x.item.path} — ${x.item.reads} read${x.item.reads===1?"":"s"}/30d · changed ${Math.round(x.item.days)}d ago`})},x.item.path)),x.w>54&&x.h>16){const w=Math.floor((x.w-8)/6);let z=(x.item.danger?"⚠ ":"")+x.item.name;z.length>w&&(z=z.slice(0,Math.max(1,w-1))+"…"),w>=5&&A.push(o.jsx("text",{x:x.x+4.5,y:x.y+12.5,className:"in-tm-label","data-path":x.item.path,children:z},"l"+x.item.path))}}return o.jsx("svg",{viewBox:"0 0 720 480",className:"in-chart in-treemap",onClick:p=>{const y=p.target.closest("[data-path], [data-dir]");if(!y)return;const M=y.getAttribute("data-path");if(M)return c(M);const E=y.getAttribute("data-dir");E&&f(E)&&r(E)},children:A})}function Bg({pts:i,onOpenFile:c}){const d={l:44,r:16,t:20,b:34},m=Math.max(Fa*2,...i.map(E=>E.days)),g=Math.max(Fn*2,...i.map(E=>E.reads)),A=E=>Math.log10(E+1)/Math.log10(m+1),p=E=>Math.log10(E+1)/Math.log10(g+1),y=E=>d.l+A(E)*(720-d.l-d.r),M=E=>360-d.b-p(E)*(360-d.t-d.b);return o.jsxs("svg",{viewBox:"0 0 720 360",className:"in-chart",children:[o.jsx("rect",{x:y(Fa),y:d.t,width:720-d.r-y(Fa),height:M(Fn)-d.t,className:"in-danger-zone"}),o.jsx("line",{x1:y(Fa),y1:d.t,x2:y(Fa),y2:360-d.b,className:"in-threshold"}),o.jsx("line",{x1:d.l,y1:M(Fn),x2:720-d.r,y2:M(Fn),className:"in-threshold"}),o.jsx("line",{x1:d.l,y1:360-d.b,x2:720-d.r,y2:360-d.b,className:"in-axis"}),o.jsx("line",{x1:d.l,y1:d.t,x2:d.l,y2:360-d.b,className:"in-axis"}),o.jsx("text",{x:(d.l+720-d.r)/2,y:352,className:"in-label",children:"days since last change →"}),o.jsx("text",{x:12,y:(d.t+360-d.b)/2,className:"in-label",transform:`rotate(-90 12 ${(d.t+360-d.b)/2})`,children:"reads / 30d →"}),o.jsx("text",{x:720-d.r-6,y:d.t+14,className:"in-quad in-quad-danger",textAnchor:"end",children:"hot + stale"}),o.jsx("text",{x:d.l+6,y:d.t+14,className:"in-quad",children:"hot + fresh"}),o.jsx("text",{x:720-d.r-6,y:360-d.b-8,className:"in-quad",textAnchor:"end",children:"cold + stale"}),o.jsx("text",{x:720-d.r-6,y:d.t+28,className:"in-label",textAnchor:"end",children:"dot size = agent share of reads"}),i.map(E=>{const x=E.total?(E.agent||0)/E.total:0;return o.jsx("circle",{cx:Number(y(E.days).toFixed(1)),cy:Number(M(E.reads).toFixed(1)),r:Number((3+4*x).toFixed(1)),className:"in-pt"+(E.danger?" danger":E.reads?"":" cold"),onClick:()=>c(E.path),children:o.jsx("title",{children:`${E.path} — ${E.reads} read${E.reads===1?"":"s"} / 30d · changed ${Math.round(E.days)}d ago`})},E.path)})]})}function Lg({pts:i,lens:c,onOpenFile:r}){const f=i.filter(m=>m.reads>0).sort((m,g)=>g.reads-m.reads||g.days-m.days).slice(0,20);if(!f.length)return o.jsx("div",{className:"dl-empty",children:"No reads in the window yet."});const d=f[0].reads;return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"in-hotpath",children:f.map(m=>{const g=c==="agent"?1:c==="human"?0:m.total?m.agent/m.total:0,A=m.reads/d*100;return o.jsxs("div",{className:"in-hp-row",tabIndex:0,role:"button",title:m.danger?`${m.reads} read${m.reads===1?"":"s"}/30d · unchanged ${Math.round(m.days)}d — review this file`:m.path,onClick:()=>r(m.path),onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),r(m.path))},children:[o.jsx("span",{className:"in-hp-name"+(m.danger?" danger":""),children:m.path+(m.danger?" ⚠":"")}),o.jsxs("span",{className:"in-hp-bar",children:[o.jsx("span",{className:"in-hp-agent",style:{width:(A*g).toFixed(1)+"%"}}),o.jsx("span",{className:"in-hp-human",style:{width:(A*(1-g)).toFixed(1)+"%"}})]}),o.jsx("span",{className:"in-hp-count",children:m.reads})]},m.path)})}),o.jsxs("p",{className:"in-legend",children:[o.jsx("span",{className:"in-sw agent"})," agent reads ",o.jsx("span",{className:"in-sw human"})," human reads"]})]})}function Yg({devices:i}){const c=new Map;for(const x of i)for(const[w,z]of Object.entries(x.folders||{}))c.set(w,(c.get(w)||0)+z);const r=[...c.entries()].sort((x,w)=>w[1]-x[1]).slice(0,12).map(x=>x[0]),f=i.slice(0,12),d=140,m=6,g=Math.min(76,Math.max(34,(720-d-8)/r.length)),A=26,p=720,y=m+f.length*A+58,M=Math.max(1,...f.flatMap(x=>r.map(w=>(x.folders||{})[w]||0))),E=x=>{const w=[23,25,31],z=[245,166,35],q=w.map((Y,F)=>Math.round(Y+(z[F]-Y)*x));return`rgb(${q[0]},${q[1]},${q[2]})`};return o.jsxs("svg",{viewBox:`0 0 ${p} ${y}`,className:"in-chart in-matrix",children:[f.map((x,w)=>{let z=x.name||x.id||"";return z.length>20&&(z=z.slice(0,19)+"…"),o.jsxs("g",{children:[o.jsx("text",{x:d-8,y:m+w*A+17,textAnchor:"end",className:"in-label",children:z}),r.map((q,Y)=>{const F=(x.folders||{})[q]||0;return o.jsx("rect",{x:d+Y*g,y:m+w*A,width:g-4,height:A-4,rx:3,fill:E(Math.sqrt(F/M)),children:o.jsx("title",{children:`${x.name||x.id} × ${q||"(root)"}: ${F} read${F===1?"":"s"}/30d`})},q)})]},x.id||w)}),r.map((x,w)=>{const z=d+w*g+(g-4)/2,q=m+f.length*A+14;return o.jsx("text",{x:z,y:q,className:"in-label",textAnchor:"end",transform:`rotate(-28 ${z} ${q})`,children:x||"(root)"},x)})]})}function Gg(i){const{apiBase:c,target:r,isFolder:f,onMeta:d,onRendered:m}=i,g=r?f(r)?{prefix:r+"/"}:{path:r}:{prefix:""},A="path"in g&&g.path!==void 0?"path="+encodeURIComponent(g.path):"prefix="+encodeURIComponent(g.prefix??""),{data:p,error:y}=ve({queryKey:["history",c,A,200],queryFn:()=>Me(c+"history?"+A+"&n=200"),staleTime:15e3});if(Q.useEffect(()=>{y&&d("History unavailable: "+y.message)},[y,d]),Q.useEffect(()=>{p&&m?.()},[p,m]),!p)return null;const M=p.entries||[];return o.jsxs("div",{className:"history",children:[M.length===0&&o.jsx("div",{className:"empty",children:"No history yet."}),M.map((E,x)=>o.jsx(bm,{entry:E,onOpen:i.onOpen},x))]})}function Xg(i,c){return i?c(i)?i+"/ (folder)":i:"all changes"}function Sm(i){const{config:c,apiBase:r,route:f,hub:d,project:m}=i,g=yr(),A=ni(),{tree:p,flatFiles:y,dirIndex:M,loaded:E}=hg(r,!d||!!m),x=mg(r,d&&!!m&&!!c.reads?.enabled),w=d&&!!m&&!f.path&&!f.view,z=!!i.canInsights&&(f.view==="insights"||w),q=wg(r,z);Q.useEffect(()=>{z&&A.invalidateQueries({queryKey:["heat",r]})},[z,r,A]);const Y=f.path,F=Y||(f.view==="insights"||f.view==="history")&&f.viewTarget||"",yt=!!Y&&M.has(Y),lt=!!Y&&E&&!yt&&y.some(tt=>tt.path===Y),Ct=!!Y&&E&&!yt&&!lt,Rt=yt&&!f.view,[at,k]=Q.useState(()=>new Set),pt=Q.useRef(!0);Q.useEffect(()=>{if(!p||!pt.current)return;pt.current=!1;const tt=(p.children||[]).filter(ft=>ft.dir);tt.length===1&&k(ft=>new Set(ft).add(tt[0].path))},[p]),Q.useEffect(()=>{if(!F||!E)return;k(ft=>{const Ot=new Set(ft);for(const Pa of bg(F))Ot.add(Pa);return M.has(F)&&Ot.add(F),Ot});const tt=document.querySelector(`#tree .row[data-path="${CSS.escape(F)}"]`);tt&&tt.scrollIntoView({block:"nearest"})},[F,E,M]);const Zt=Q.useCallback(tt=>{k(ft=>{const Ot=new Set(ft);return Ot.has(tt)?Ot.delete(tt):Ot.add(tt),Ot})},[]),ee=Q.useRef(null),le=Q.useRef(new Map),Ut=Q.useRef({key:"",want:0,attempts:0});Q.useEffect(()=>{Ut.current={key:g,want:Pp()==="POP"?le.current.get(g)??0:0,attempts:0}},[g]);const ae=Q.useCallback(()=>{const tt=ee.current,ft=Ut.current;!tt||ft.key!==g||ft.attempts>=3||(ft.attempts++,tt.scrollTo({top:ft.want,behavior:"instant"}))},[g]),Be=Q.useCallback(()=>{ee.current&&le.current.set(g,ee.current.scrollTop)},[g]),zt=Q.useCallback(tt=>{ye(Ip(tt,m?.id)),Ke()},[m?.id]),_=Q.useCallback(tt=>ye($a("history",m?.id,tt)),[m?.id]),[B,V]=Q.useState(""),[ot,gt]=Q.useState(null),[S,H]=Q.useState(!1),[L,G]=Q.useState(!1);Q.useEffect(()=>H0(()=>G(!0)),[]);const $=Q.useRef(null),W=i.panel??null,dt=!W&&d&&!!m&<,kt=!W&&d&&!!m,_t=!W&<,Gl=!W&&(lt||d&&!!m&&yt),fa=r+"download?path="+encodeURIComponent(Y),Xl=Q.useCallback(async()=>{try{const tt=await fetch(r+"shares",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:Y})});if(!tt.ok)throw new Error(await tt.text());const ft=await tt.json(),Ot=await ei(ft.url);gt({url:ft.url,copied:Ot})}catch(tt){rt("Share failed: "+tt.message,!0)}},[r,Y]),Kl=Q.useCallback(()=>{if(!Y)return _("");_(yt?Y+"/":Y)},[Y,yt,_]);Q.useEffect(()=>{const tt=ft=>{(ft.metaKey||ft.ctrlKey)&&ft.key.toLowerCase()==="k"&&(ft.preventDefault(),G(Ot=>!Ot))};return window.addEventListener("keydown",tt),()=>window.removeEventListener("keydown",tt)},[]);const Fe=Q.useCallback(()=>{const tt=[],ft=(Ot,Pa,ie,zu)=>tt.push({icon:Ot,label:Pa,kind:ie,run:zu});if(d&&m&&Y&&(lt&&ft("share","Share: "+Y,"action",Xl),ft("hist","History: "+Y,"action",Kl),lt&&ft("download","Download: "+Y,"action",()=>$.current?.click())),d&&m&&ft("hist","History: whole project","action",()=>_("")),d)for(const Ot of i.projects||[])(!m||Ot.id!==m.id)&&ft("folder","Switch to project: "+Ot.name,"project",()=>ye("/"+Ot.id));c.auth?.enabled&&ft("power","Sign out","action",()=>window.location.href="/auth/logout");for(const Ot of M.keys())ft("folder",Ot,"folder",()=>zt(Ot));for(const Ot of y)ft("doc",Ot.path,"file",()=>zt(Ot.path));return tt},[d,m,Y,lt,c.auth?.enabled,M,y,i.projects,Xl,Kl,_,zt]);Q.useEffect(()=>{if(!S)return;const tt=()=>H(!1);return document.addEventListener("click",tt),()=>document.removeEventListener("click",tt)},[S]);const ml=Q.useCallback(tt=>M.has(tt),[M]);let Le="markdown",Ae;W?(Le="view",Ae=W.body):f.view==="insights"?(Le="view",Ae=i.canInsights?o.jsx(kh,{flatFiles:y,heatMap:x,devices:q,scope:f.viewTarget||"",onOpenFile:zt,onOpenFolder:zt,isFolder:ml}):o.jsx("div",{className:"empty",children:"Insights is for hub admins and org owners."})):f.view==="history"?(Le="view",Ae=o.jsx(Gg,{apiBase:r,target:f.viewTarget||"",isFolder:ml,onOpen:zt,onMeta:V,onRendered:ae})):Y?E?Ct?(Le="view",Ae=o.jsxs("div",{className:"notfound",children:[o.jsx("h1",{children:"Couldn't find that"}),o.jsxs("p",{children:[o.jsx("code",{children:Y})," isn't in this project right now."]}),o.jsx("p",{className:"nf-sub",children:"If it was just created, it may still be uploading or syncing from a teammate's device — this page checks again automatically every few seconds, so refresh or come back in a moment."}),o.jsx("button",{className:"pbtn",onClick:()=>A.invalidateQueries({queryKey:["tree",r]}),children:"Check again"})]})):yt?(Le="view",Ae=o.jsx(Eg,{node:M.get(Y),heatMap:x,hub:d&&!!m,apiBase:r,onOpen:zt,onFullHistory:_,onRendered:ae})):Ae=o.jsx(Ng,{apiBase:r,path:Y,heatMap:x,flatFiles:y,onOpenFile:zt,onMeta:V,onRendered:ae}):Ae=o.jsx("div",{className:"empty",children:"Loading…"}):w?(Le="view",Ae=o.jsxs(o.Fragment,{children:[o.jsx(pm,{project:m}),i.canInsights&&o.jsx("div",{className:"home-insights",children:o.jsx(kh,{flatFiles:y,heatMap:x,devices:q,onOpenFile:zt,onOpenFolder:zt,isFolder:ml})})]})):Ae=o.jsx("div",{className:"empty",children:"Select a file to read it."});const ii=W?W.crumb:Y?o.jsx(Sg,{path:Y,onOpenFolder:zt}):f.view==="insights"?"Insights — "+(f.viewTarget||m?.name||""):f.view==="history"?"History — "+Xg(f.viewTarget||"",ml):w?m.name:null,Ia=o.jsx(ti,{crumb:ii,meta:B,actions:o.jsxs(o.Fragment,{children:[dt&&o.jsx("button",{id:"share-btn",className:"btn icon-only",title:"Share","aria-label":"Share",onClick:Xl,children:o.jsx(Kt,{name:"share"})}),kt&&!Y&&!f.view&&o.jsxs("button",{id:"history-btn",className:"btn",onClick:Kl,children:[o.jsx(Kt,{name:"hist"})," ",o.jsx("span",{className:"lbl",children:"History"})]}),_t&&o.jsx("a",{id:"download",hidden:!0,download:!0,href:fa,ref:$,children:"Download"}),Gl&&o.jsx("button",{id:"more-btn",className:"btn icon-only",title:"More actions","aria-label":"More actions",onClick:tt=>{tt.stopPropagation(),H(!S)},children:o.jsx(Kt,{name:"dots"})}),S&&o.jsxs("div",{id:"more-menu",role:"menu",children:[kt&&o.jsx("button",{className:"more-item",onClick:Kl,children:"History"}),_t&&o.jsx("button",{className:"more-item",onClick:()=>$.current?.click(),children:"Download"}),i.canInsights&&o.jsx("button",{className:"more-item",onClick:()=>{i.onClosePanel?.(),ye($a("insights",m?.id,Y))},children:"Insights"})]})]})});return o.jsxs(o.Fragment,{children:[o.jsx(Pn,{vault:i.sidebar.vault,projectsNav:i.sidebar.projectsNav,orgBar:i.sidebar.orgBar,tree:o.jsx(pg,{root:p,expanded:at,onToggle:Zt,currentPath:F,listingShowing:Rt,onOpen:zt}),topbar:Ia,contentClass:Le,contentRef:ee,onContentScroll:Be,children:Ae}),ot&&o.jsx(Dg,{url:ot.url,copied:ot.copied,onClose:()=>gt(null)}),o.jsx(Hg,{open:L,onClose:()=>G(!1),candidates:Fe})]})}function Kg({config:i}){const c=yr(),r=fm(),[f,d]=Q.useState(null),[m,g]=Q.useState(null);Q.useEffect(()=>g(null),[c]);const A=Q.useMemo(()=>{const at=c.match(/^\/join\/([0-9a-f]+)\/?$/);return at?at[1]:null},[c]),{data:p}=Fp(!A),{data:y}=$p(!A),M=!!i.auth.admin,{data:E}=rm(M),x=Q.useMemo(()=>dm(c,"hub"),[c]),w=Q.useMemo(()=>p&&(p.find(at=>at.id===x.project)||f&&p.find(at=>at.org===f)||p[0])||null,[p,x.project,f]);if(Q.useEffect(()=>{document.title=w?w.name+" — BearDrive":i.brand||i.volume||"BearDrive"},[w,i]),A)return o.jsx(Zg,{token:A,onDone:async at=>{d(at),await r(),ye("/",{replace:!0})}});const z=i.brand||i.volume||"BearDrive",q=w&&y?.find(at=>at.id===w.org)||null,Y=M||(q?q.role==="owner":!1),F=o.jsx(Cu,{name:z,onHome:()=>ye("/"),search:!!w}),yt=i.me?o.jsx(cg,{me:i.me,org:q,admin:M?{pending:E?.length||0,onClick:()=>{g({kind:"hub"}),Ke()}}:void 0,onOrgSettings:at=>{g({kind:"org",orgId:at.id}),Ke()}}):void 0;if(!p||!y)return o.jsx(Pn,{vault:F,topbar:o.jsx(ti,{}),children:o.jsx("div",{className:"empty",children:"Loading…"})});if(!w)return o.jsx(Pn,{vault:F,projectsNav:o.jsx(Xh,{projects:p}),orgBar:yt,topbar:o.jsx(ti,{}),contentClass:"view",children:o.jsx(dg,{authEnabled:i.auth.enabled,onCreate:async at=>{if(!at){rt("Give the project a name.",!0);return}try{const k=await Wa("/api/projects",{name:at});await r(),ye("/"+k.project.id),rt(`Created “${k.project.name}”.`)}catch(k){rt("Could not create the project: "+k.message,!0)}}})});const lt=m?.kind==="org"?y.find(at=>at.id===m.orgId):null,Ct=m?.kind==="hub"?{crumb:"Signup & access",body:o.jsx(ug,{})}:lt?{crumb:lt.name,body:o.jsx(ig,{org:lt,projects:p,myEmail:i.me?.email||"",onProjectsChanged:r})}:null,Rt=x.view==="settings"?{crumb:"Project settings",body:o.jsx(sg,{project:w,org:q})}:x.view==="install"?{crumb:"Installation",body:o.jsx("div",{className:"onboard",children:o.jsx(pm,{project:w})})}:null;return x.project!==w.id?o.jsx(tg,{to:"/"+w.id}):o.jsx(Sm,{config:i,apiBase:"/api/p/"+w.id+"/",route:x,hub:!0,project:w,projects:p,canInsights:Y,sidebar:{vault:F,projectsNav:o.jsx(Xh,{projects:p,currentId:w.id,menu:{active:m?null:x.view==="insights"&&!x.viewTarget?"dashboard":x.view==="install"?"install":x.view==="history"&&!x.viewTarget?"history":x.view==="settings"?"settings":null,onDashboard:()=>{g(null),ye($a("insights",w.id)),Ke()},onInstall:()=>{g(null),ye($a("install",w.id)),Ke()},onHistory:()=>{g(null),ye($a("history",w.id)),Ke()},onSettings:()=>{g(null),ye($a("settings",w.id)),Ke()}}}),orgBar:yt},panel:Ct||Rt,onClosePanel:()=>g(null)},w.id)}function Zg({token:i,onDone:c}){return Q.useEffect(()=>{let r=!1;return Wa("/api/invites/"+i).then(f=>{r||(rt(`Welcome — you joined the “${f.org.name}” team. Opening its projects…`),c(f.org.id))}).catch(f=>{r||String(f.message).includes("signing in")||(rt("Could not accept the invite: "+f.message,!0),c(null))}),()=>{r=!0}},[i]),o.jsx(Pn,{vault:o.jsx(Cu,{name:"BearDrive"}),topbar:o.jsx(ti,{}),children:o.jsx("div",{className:"empty",children:"Joining…"})})}function kg({config:i}){const c=yr(),r=i.volume||"BearDrive";Q.useEffect(()=>{document.title=i.brand||r},[i,r]);const f=Q.useMemo(()=>dm(c,"volume"),[c]);return o.jsx(Sm,{config:i,apiBase:"/api/",route:f,hub:!1,sidebar:{vault:o.jsx(Cu,{name:r,showSignout:i.auth.enabled,search:!0})}})}function Vg(){const{data:i}=U0();return o.jsxs(o.Fragment,{children:[i?i.mode==="hub"?o.jsx(Kg,{config:i}):o.jsx(kg,{config:i}):o.jsx(Pn,{vault:o.jsx(Cu,{name:"…",showSignout:!1}),topbar:o.jsx(ti,{}),children:o.jsx("div",{className:"empty",children:"Loading…"})}),o.jsx(Zp,{}),o.jsx(kp,{})]})}const Jg=new x0({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1}}});Fv.createRoot(document.getElementById("root")).render(o.jsx(Q.StrictMode,{children:o.jsx(j0,{client:Jg,children:o.jsx(Vg,{})})})); diff --git a/internal/webapp/static/index.html b/internal/webapp/static/index.html index 606bedc..cdf4fb9 100644 --- a/internal/webapp/static/index.html +++ b/internal/webapp/static/index.html @@ -5,8 +5,8 @@ BearDrive - - + +