From 278acb10cbbf807298988abc77a015b07b05f527 Mon Sep 17 00:00:00 2001 From: John McLear Date: Sat, 16 May 2026 18:34:22 +0100 Subject: [PATCH] Drop swagger-ui, document telemetry, add opt-outs (#7524) (#7757) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: design spec for #7524 drop swagger-ui + privacy opt-outs Three-deliverable plan: vendor RapiDoc to replace swagger-ui-express (Scarf-injecting), add privacy.updateCheck and privacy.pluginCatalog opt-outs for our two outbound calls, and ship PRIVACY.md as a public stance doc. Co-Authored-By: Claude Opus 4.7 (1M context) * docs: implementation plan for #7524 swagger-ui + privacy opt-outs Twelve TDD-flavoured tasks: privacy settings shape, UpdateCheck + installer opt-outs (each with a failing-test-first cycle), admin backend/UI plumbing, dependency drop, vendored RapiDoc, PRIVACY.md, final verification matrix. Co-Authored-By: Claude Opus 4.7 (1M context) * feat(privacy): add privacy block to settings shape Adds privacy.updateCheck and privacy.pluginCatalog, both defaulting to true so behavior is unchanged until operators opt out. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(privacy): honour privacy.updateCheck=false in UpdateCheck check() and getLatestVersion() now early-return when the setting is off. Logs once on first skip. The admin "update available" panel already tolerates an undefined latestVersion. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(privacy): honour privacy.pluginCatalog=false in installer Extracts the gate into pluginCatalogGuard.ts so it can be unit-tested under vitest without dragging in the CJS require() chain from installer.ts. getAvailablePlugins() now throws the tagged disabled error before any fetch. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(privacy): emit results:catalogDisabled when pluginCatalog off Short-circuits the four catalog-driven socket events. The install/ uninstall events are untouched so operators can still install by plugin name even when the catalog is disabled. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * fix(bin): stalePlugins reads updateServer and honours privacy flag Was hardcoding static.etherpad.org and ignoring opt-out. Now exits 0 cleanly when privacy.pluginCatalog=false. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * docs(settings): document privacy block in settings template Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(api-docs): replace swagger-ui-express with RapiDoc shell Drops the swagger-ui-express dep (third-party Scarf telemetry pixel, see swagger-api/swagger-ui#10573) and serves /api-docs with a static HTML shell that mounts . /api-docs.json is unchanged. The vendored RapiDoc asset is added in the next commit so the tree is broken for one diff hunk — pair this with the rapidoc-min.js commit during review. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(api-docs): vendor RapiDoc 9.3.4 (MIT) as static asset Pinned bundle with checksum in VERSION. Replaces swagger-ui-dist which shipped a Scarf telemetry pixel. Disables RapiDoc's bundled Google Fonts request via load-fonts="false" plus explicit regular-font/mono-font system stacks — RapiDoc's CSS @font-face rules would otherwise fetch Open Sans from fonts.gstatic.com at render time. Also fixes the /api-docs route's res.sendFile to use an absolute path resolved via settings.root (the previous {root: 'src/static'} was resolved from CWD which is already src/, producing src/src/static). Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * feat(admin): banner when plugin catalog is disabled Subscribes to results:catalogDisabled and renders a localized info banner on the plugins page. install/uninstall still function via CLI. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * docs: PRIVACY.md and README/CHANGELOG pointers Publishes Etherpad's stance on telemetry: two documented, opt-out outbound calls; no third-party analytics; no install-time phone-homes in our deps. Refs #7524 Co-Authored-By: Claude Opus 4.7 (1M context) * fix(admin): await checkPluginForUpdates and emit array on error Qodo flagged that checkUpdates emitted the unresolved Promise (missing await) and emitted {} for updatable on the error path, both breaking the admin UI's expected string[] shape. Pre-existing bug surfaced when the surrounding block was edited for the privacy.pluginCatalog gate. Refs #7524 * feat(api-docs): swap RapiDoc for Scalar (actively maintained) Per @SamTV12345's review on #7757: RapiDoc has been effectively unmaintained for a while. Scalar (https://github.com/scalar/scalar) is MIT-licensed, actively developed, and ships a self-contained standalone bundle that works the same way for our purposes. Privacy posture is preserved by configuring the embed: - withDefaultFonts: false (no fonts.scalar.com woff2 fetch) - telemetry: false (defensive) - agent.disabled: true (no api.scalar.com/vector/* calls) - mcp.disabled: true (no MCP integration) - showDeveloperTools: 'never' - hideClientButton: true Verified with headless Chromium: page loads /api-docs, mounts Scalar, renders the Etherpad OpenAPI document, and makes zero requests to any host other than localhost. Vendor: - src/static/vendor/scalar/standalone.js (@scalar/api-reference 1.57.2) - src/static/vendor/scalar/VERSION (sha256 pinned) - src/static/vendor/scalar/LICENSE (MIT) Removed: - src/static/vendor/rapidoc/* Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 8 + PRIVACY.md | 68 + README.md | 2 +- admin/src/index.css | 10 + admin/src/pages/HomePage.tsx | 11 + bin/plugins/stalePlugins.ts | 9 +- ...6-05-15-issue-7524-swagger-ui-telemetry.md | 1131 ++++++++ ...-issue-7524-swagger-ui-telemetry-design.md | 246 ++ pnpm-lock.yaml | 75 +- settings.json.template | 11 + src/locales/en.json | 1 + src/node/handler/RestAPI.ts | 11 +- src/node/hooks/express/adminplugins.ts | 31 +- src/node/utils/Settings.ts | 12 + src/node/utils/UpdateCheck.ts | 9 + src/package.json | 2 - src/static/api-docs.html | 33 + src/static/js/pluginfw/installer.ts | 2 + src/static/js/pluginfw/pluginCatalogGuard.ts | 11 + src/static/vendor/scalar/LICENSE | 21 + src/static/vendor/scalar/VERSION | 3 + src/static/vendor/scalar/standalone.js | 2364 +++++++++++++++++ .../specs/privacy/installer-optout.test.ts | 21 + .../specs/privacy/settings-defaults.test.ts | 12 + .../specs/privacy/updateCheck-optout.test.ts | 31 + 25 files changed, 4050 insertions(+), 85 deletions(-) create mode 100644 PRIVACY.md create mode 100644 docs/superpowers/plans/2026-05-15-issue-7524-swagger-ui-telemetry.md create mode 100644 docs/superpowers/specs/2026-05-15-issue-7524-swagger-ui-telemetry-design.md create mode 100644 src/static/api-docs.html create mode 100644 src/static/js/pluginfw/pluginCatalogGuard.ts create mode 100644 src/static/vendor/scalar/LICENSE create mode 100644 src/static/vendor/scalar/VERSION create mode 100644 src/static/vendor/scalar/standalone.js create mode 100644 src/tests/backend-new/specs/privacy/installer-optout.test.ts create mode 100644 src/tests/backend-new/specs/privacy/settings-defaults.test.ts create mode 100644 src/tests/backend-new/specs/privacy/updateCheck-optout.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e6f7a07a..74d9b53cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ ### Notable enhancements +- **Privacy — drop swagger-ui telemetry, document phone-homes, add opt-outs.** + - Dropped `swagger-ui-express` because upstream injects a Scarf analytics pixel that cannot be disabled at install or runtime (see [swagger-api/swagger-ui#10573](https://github.com/swagger-api/swagger-ui/issues/10573)). `/api-docs` now serves a vendored copy of [Scalar](https://github.com/scalar/scalar) (MIT) configured with `withDefaultFonts: false` and `telemetry: false` so no outbound calls are made. + - New `privacy.updateCheck` (default `true`) — set to `false` to disable the hourly `UpdateCheck.ts` request to `${updateServer}/info.json`. + - New `privacy.pluginCatalog` (default `true`) — set to `false` to disable the admin plugins page fetch of `${updateServer}/plugins.json`. CLI install-by-name still works. + - New [`PRIVACY.md`](PRIVACY.md) at repo root documenting both outbound calls, what they send, and how to turn each off. + - `bin/plugins/stalePlugins.ts` now reads `settings.updateServer` (was hardcoded to `static.etherpad.org`) and honours the new flag. + - Closes #7524. + - **Self-update subsystem — Tier 2 (manual click).** - Admins on a git install can click "Apply update" at `/admin/update`. Etherpad runs a 60s session drain (with T-60 / T-30 / T-10 broadcasts to every pad), `git fetch / checkout / pnpm install --frozen-lockfile / pnpm run build:ui`, and exits with code 75 so a process supervisor restarts it on the new version. The next boot runs a 60s health check; if `/health` doesn't come up the previous SHA + lockfile are restored automatically. - Crash-loop guard: if the new version reboots more than twice without the health check completing, RollbackHandler forces a rollback regardless of the timer. diff --git a/PRIVACY.md b/PRIVACY.md new file mode 100644 index 000000000..75548c5db --- /dev/null +++ b/PRIVACY.md @@ -0,0 +1,68 @@ +# Privacy in Etherpad + +## What this document is + +A complete, current list of every network call Etherpad's own code makes +to a third party, plus how to turn each one off. Plugins are out of +scope — audit any plugin you install. + +## TL;DR + +Etherpad ships with two outbound calls to `etherpad.org`. Both are +documented below. Both can be disabled with a single config value each. +No analytics, no usage pings, no third-party SDKs at runtime. + +## Outbound calls + +### 1. Version check + +| | | +|---|---| +| URL | `https://static.etherpad.org/info.json` (override via `updateServer`) | +| Frequency | hourly while the server runs | +| Payload | GET only; `User-Agent: Etherpad/` | +| Purpose | surface an "update available" notice in the admin panel | +| Disable | set `privacy.updateCheck: false` in `settings.json` | +| Source | `src/node/utils/UpdateCheck.ts` | + +### 2. Plugin catalog + +| | | +|---|---| +| URL | `https://static.etherpad.org/plugins.json` (override via `updateServer`) | +| Frequency | on admin-plugins page load (cached 10 min) | +| Payload | GET only; same `User-Agent` | +| Purpose | list installable `ep_*` plugins in the admin UI | +| Disable | set `privacy.pluginCatalog: false` in `settings.json` (manual install via CLI still works) | +| Source | `src/static/js/pluginfw/installer.ts` | + +## What we removed + +`swagger-ui-express` was dropped because the upstream npm package +injects a Scarf analytics pixel that cannot be disabled at install or +runtime (see [swagger-api/swagger-ui#10573](https://github.com/swagger-api/swagger-ui/issues/10573)). +`/api-docs` is now served by a vendored copy of [Scalar](https://github.com/scalar/scalar) +(MIT) with no outbound calls. The shell explicitly opts out of Scalar's +default font fetch (`withDefaultFonts: false`) and analytics +(`telemetry: false`), and pins a system-font stack via CSS. + +`@scarf/scarf` is listed under `ignoredBuiltDependencies` in +`pnpm-workspace.yaml`, so its postinstall pixel is suppressed even if a +future transitive dep pulls Scarf in. + +## What we will not add + +- usage analytics or telemetry SDKs +- crash reporters that send data without explicit opt-in +- third-party CDN dependencies at runtime +- dependencies whose install or runtime phones home + +## Plugins + +Third-party plugins are out of this guarantee. Plugins run in your +Etherpad process with full access; audit any plugin you install. + +## Reporting + +Found an outbound call this doc doesn't list? Open an issue with the +label `privacy`. diff --git a/README.md b/README.md index b201d92fd..0560ec3dd 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Every keystroke is attributed to its author. Every revision is preserved. The timeslider lets you scrub through a document's entire history, character by character. Author colours make collaboration visible at a glance — not buried in a menu. -Etherpad runs on your server, under your governance. No telemetry. No upsells. AI is a plugin you install, pointed at the model you choose, running on infrastructure you control — not a feature decided for you in a boardroom you weren't in. +Etherpad runs on your server, under your governance. No telemetry. No upsells. AI is a plugin you install, pointed at the model you choose, running on infrastructure you control — not a feature decided for you in a boardroom you weren't in. See [PRIVACY.md](PRIVACY.md) for the two opt-out network calls Etherpad's own code makes and how to disable each. The code is Apache 2.0. The data format is open. It [scales to thousands of simultaneous editors per pad](http://scale.etherpad.org/). Translated into 105 languages. Extended through hundreds of plugins. Used by Wikimedia, governments, public-sector institutions, and self-hosters worldwide since 2009. diff --git a/admin/src/index.css b/admin/src/index.css index ed43c5240..1d63f26a2 100644 --- a/admin/src/index.css +++ b/admin/src/index.css @@ -1044,6 +1044,16 @@ input, button, select, optgroup, textarea { padding: 8px 8px 40px; } +.pm-banner { + margin: 8px 0 16px; + padding: 12px 16px; + border-radius: 6px; + border: 1px solid var(--ink-3, #cbd5e1); + background: var(--surface-2, #f8fafc); + font-size: .9rem; +} +.pm-banner-info { border-left: 4px solid var(--accent, #0ea5e9); } + /* Header */ .pm-header { display: flex; diff --git a/admin/src/pages/HomePage.tsx b/admin/src/pages/HomePage.tsx index 9f7917684..dfac8fd79 100644 --- a/admin/src/pages/HomePage.tsx +++ b/admin/src/pages/HomePage.tsx @@ -9,6 +9,7 @@ import {IconButton} from "../components/IconButton.tsx"; export const HomePage = () => { const pluginsSocket = useStore(state => state.pluginsSocket) const [plugins, setPlugins] = useState([]) + const [catalogDisabled, setCatalogDisabled] = useState(false) const installedPlugins = useStore(state => state.installedPlugins) const setInstalledPlugins = useStore(state => state.setInstalledPlugins) // Default sort: name ascending. PR #7716 set this to "downloads desc" but @@ -89,11 +90,14 @@ export const HomePage = () => { pluginsSocket.emit('search', searchParams) } + const onCatalogDisabled = () => setCatalogDisabled(true) + pluginsSocket.on('results:installed', onInstalled) pluginsSocket.on('results:updatable', onUpdatable) pluginsSocket.on('finished:install', onFinishedInstall) pluginsSocket.on('finished:uninstall', onFinishedUninstall) pluginsSocket.on('connect', onConnect) + pluginsSocket.on('results:catalogDisabled', onCatalogDisabled) pluginsSocket.emit('getInstalled') @@ -105,6 +109,7 @@ export const HomePage = () => { pluginsSocket.off('finished:install', onFinishedInstall) pluginsSocket.off('finished:uninstall', onFinishedUninstall) pluginsSocket.off('connect', onConnect) + pluginsSocket.off('results:catalogDisabled', onCatalogDisabled) } }, [pluginsSocket]) @@ -145,6 +150,12 @@ export const HomePage = () => { return (
+ {catalogDisabled && ( +
+ +
+ )} + {/* ── Page header ────────────────────────────────────────────────── */}
diff --git a/bin/plugins/stalePlugins.ts b/bin/plugins/stalePlugins.ts index 4ca642140..0ec819e3b 100644 --- a/bin/plugins/stalePlugins.ts +++ b/bin/plugins/stalePlugins.ts @@ -3,10 +3,17 @@ // Returns a list of stale plugins and their authors email import process from "node:process"; +import settings from "../../src/node/utils/Settings"; const currentTime = new Date(); (async () => { - const resp = await fetch('https://static.etherpad.org/plugins.full.json'); + if (!settings.privacy.pluginCatalog) { + console.info( + 'stalePlugins: plugin catalog disabled by privacy.pluginCatalog=false; exiting' + ); + process.exit(0); + } + const resp = await fetch(`${settings.updateServer}/plugins.full.json`); if (!resp.ok) throw new Error(`HTTP ${resp.status} ${resp.statusText}`); const data: any = await resp.json(); for (const plugin of Object.keys(data)) { diff --git a/docs/superpowers/plans/2026-05-15-issue-7524-swagger-ui-telemetry.md b/docs/superpowers/plans/2026-05-15-issue-7524-swagger-ui-telemetry.md new file mode 100644 index 000000000..f0df5d961 --- /dev/null +++ b/docs/superpowers/plans/2026-05-15-issue-7524-swagger-ui-telemetry.md @@ -0,0 +1,1131 @@ +# Issue #7524 — Drop swagger-ui + privacy opt-outs Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Replace `swagger-ui-express` with vendored RapiDoc, add `privacy.updateCheck` and `privacy.pluginCatalog` opt-outs for Etherpad's two outbound calls, and publish a `PRIVACY.md` stance. + +**Architecture:** Three coordinated changes on one branch. (1) Settings.ts gains a `privacy` block; `UpdateCheck.ts` and `installer.ts` early-return when their respective flag is `false`. (2) `swagger-ui-express` is removed; `/api-docs` is served by a vendored RapiDoc web component (``) loading `/api-docs.json`. (3) `PRIVACY.md` documents what calls home and how to disable each. + +**Tech Stack:** TypeScript, Node 25, Express 5, pnpm workspaces, vitest (backend), Playwright (e2e), React 19 (admin), RapiDoc 9.x (vendored). + +**Spec:** `docs/superpowers/specs/2026-05-15-issue-7524-swagger-ui-telemetry-design.md` + +**Branch:** `feature/7524-drop-swagger-ui-telemetry` off `develop` (already created). + +--- + +## File Map + +**Modified:** +- `src/package.json` — drop `swagger-ui-express`, `@types/swagger-ui-express`. +- `src/node/utils/Settings.ts` — add `privacy` field to interface + default. +- `src/node/utils/UpdateCheck.ts` — early-return in `check()` and `getLatestVersion()` when disabled. +- `src/static/js/pluginfw/installer.ts` — throw tagged error in `getAvailablePlugins()` when disabled. +- `src/node/hooks/express/adminplugins.ts` — check the setting before catalog calls; emit `results:catalogDisabled`. +- `bin/plugins/stalePlugins.ts` — read `settings.updateServer`, respect `privacy.pluginCatalog`. +- `src/node/handler/RestAPI.ts` — drop swagger-ui import + route block; serve `api-docs.html`. +- `settings.json.template` — add `privacy` block. +- `admin/src/pages/HomePage.tsx` — subscribe to `results:catalogDisabled`, render banner. +- `admin/src/localization/en.json` (and any keyed locales) — new banner strings. +- `README.md` — one-line privacy mention. +- `CHANGELOG.md` — single bullet. + +**Created:** +- `src/static/vendor/rapidoc/rapidoc-min.js` — vendored asset (~370KB). +- `src/static/vendor/rapidoc/VERSION` — pinned version string + checksum. +- `src/static/vendor/rapidoc/LICENSE` — RapiDoc MIT license copy. +- `src/static/api-docs.html` — minimal RapiDoc shell. +- `src/tests/backend-new/specs/privacy/settings-defaults.test.ts` — `privacy` defaults. +- `src/tests/backend-new/specs/privacy/updateCheck-optout.test.ts` — no fetch when off. +- `src/tests/backend-new/specs/privacy/installer-optout.test.ts` — throws when off. +- `PRIVACY.md` — repo-root stance doc. + +**Unchanged but cross-referenced:** +- `src/node/server.ts:114` — calls `check()`; behavior gated inside `UpdateCheck.ts`. +- `src/node/hooks/express/adminsettings.ts:105` — calls `getLatestVersion()`; tolerates undefined. +- `src/node/types/SwaggerUIResource.ts` — TypeScript-only, no runtime swagger-ui. +- `src/node/handler/RestAPI.ts:1449-1453` — `/api-docs.json` route untouched. + +--- + +## Task 1: Add `privacy` shape to Settings (TDD) + +**Files:** +- Modify: `src/node/utils/Settings.ts:184` (interface) and `src/node/utils/Settings.ts:419` (defaults, next to `privacyBanner`) +- Create: `src/tests/backend-new/specs/privacy/settings-defaults.test.ts` + +- [ ] **Step 1: Create the failing test** + +Create `src/tests/backend-new/specs/privacy/settings-defaults.test.ts`: + +```typescript +import {describe, it, expect} from 'vitest'; +import settings from '../../../../node/utils/Settings'; + +describe('privacy settings defaults', () => { + it('privacy.updateCheck defaults to true', () => { + expect(settings.privacy.updateCheck).toBe(true); + }); + + it('privacy.pluginCatalog defaults to true', () => { + expect(settings.privacy.pluginCatalog).toBe(true); + }); +}); +``` + +- [ ] **Step 2: Run test to verify it fails** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/settings-defaults.test.ts +``` + +Expected: FAIL with `Cannot read properties of undefined (reading 'updateCheck')` or TS compile error referencing `privacy`. + +- [ ] **Step 3: Add `privacy` to the SettingsType interface** + +In `src/node/utils/Settings.ts`, find the interface block containing `privacyBanner: { ... }` (around line 189). Immediately after the closing `}` of `privacyBanner`, add: + +```typescript + privacy: { + updateCheck: boolean, + pluginCatalog: boolean, + }, +``` + +- [ ] **Step 4: Add the default value** + +In `src/node/utils/Settings.ts`, find the defaults object containing `privacyBanner: { enabled: false, ... }` (around line 419). Immediately after the closing `}` of that `privacyBanner` default, add: + +```typescript + privacy: { + // Outbound calls. See PRIVACY.md. + // Set to false to disable hourly version check (UpdateCheck.ts). + updateCheck: true, + // Set to false to disable plugin-catalog fetch from updateServer + // (installer.ts). Manual install via CLI still works. + pluginCatalog: true, + }, +``` + +- [ ] **Step 5: Run test to verify it passes** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/settings-defaults.test.ts +``` + +Expected: PASS, 2 tests. + +- [ ] **Step 6: Commit** + +```bash +git add src/node/utils/Settings.ts src/tests/backend-new/specs/privacy/settings-defaults.test.ts +git commit -m "feat(privacy): add privacy block to settings shape + +Adds privacy.updateCheck and privacy.pluginCatalog, both defaulting to +true so behavior is unchanged until operators opt out. + +Refs #7524" +``` + +--- + +## Task 2: UpdateCheck opt-out (TDD) + +**Files:** +- Modify: `src/node/utils/UpdateCheck.ts` +- Create: `src/tests/backend-new/specs/privacy/updateCheck-optout.test.ts` + +- [ ] **Step 1: Create the failing test** + +Create `src/tests/backend-new/specs/privacy/updateCheck-optout.test.ts`: + +```typescript +import {describe, it, expect, beforeEach, vi} from 'vitest'; +import settings from '../../../../node/utils/Settings'; + +describe('UpdateCheck opt-out', () => { + beforeEach(() => { + vi.resetModules(); + vi.restoreAllMocks(); + }); + + it('check() does not call fetch when privacy.updateCheck is false', async () => { + settings.privacy.updateCheck = false; + const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue( + new Response('{}', {status: 200}) + ); + const {check} = await import('../../../../node/utils/UpdateCheck'); + check(); + // Allow any internal microtasks to settle. + await new Promise((r) => setImmediate(r)); + expect(fetchSpy).not.toHaveBeenCalled(); + settings.privacy.updateCheck = true; + }); + + it('check() calls fetch when privacy.updateCheck is true', async () => { + settings.privacy.updateCheck = true; + const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue( + new Response(JSON.stringify({latestVersion: '99.0.0'}), {status: 200}) + ); + const {check} = await import('../../../../node/utils/UpdateCheck'); + check(); + await new Promise((r) => setImmediate(r)); + expect(fetchSpy).toHaveBeenCalledOnce(); + }); +}); +``` + +- [ ] **Step 2: Run test to verify it fails** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/updateCheck-optout.test.ts +``` + +Expected: FAIL — first test fails because `check()` still calls fetch. + +- [ ] **Step 3: Gate `check()` and `getLatestVersion()`** + +Replace the contents of `src/node/utils/UpdateCheck.ts` with: + +```typescript +'use strict'; +import semver from 'semver'; +import settings, {getEpVersion} from './Settings'; +const headers = { + 'User-Agent': 'Etherpad/' + getEpVersion(), +} + +type Infos = { + latestVersion: string +} + + +const updateInterval = 60 * 60 * 1000; // 1 hour +let infos: Infos; +let lastLoadingTime: number | null = null; +let loggedDisabled = false; + +const loadEtherpadInformations = () => { + if (lastLoadingTime !== null && Date.now() - lastLoadingTime < updateInterval) { + return infos; + } + + return fetch(`${settings.updateServer}/info.json`, {headers}) + .then(async (resp) => { + if (!resp.ok) throw new Error(`HTTP ${resp.status} ${resp.statusText}`); + infos = await resp.json() as Infos; + if (infos === undefined || infos === null) { + await Promise.reject("Could not retrieve current version") + return + } + + lastLoadingTime = Date.now(); + return infos; + }) + .catch(async (err: Error) => { + throw err; + }); +} + + +export const getLatestVersion = () => { + if (!settings.privacy.updateCheck) return undefined; + needsUpdate().catch(); + return infos?.latestVersion; +}; + +const needsUpdate = async (cb?: Function) => { + try { + const info = await loadEtherpadInformations() + if (semver.gt(info!.latestVersion, getEpVersion())) { + if (cb) return cb(true); + } + } catch (err) { + console.error(`Can not perform Etherpad update check: ${err}`); + if (cb) return cb(false); + } +}; + +export const check = () => { + if (!settings.privacy.updateCheck) { + if (!loggedDisabled) { + console.info('Update check disabled by privacy.updateCheck=false (see PRIVACY.md)'); + loggedDisabled = true; + } + return; + } + needsUpdate((needsUpdate: boolean) => { + if (needsUpdate) { + console.warn(`Update available: Download the actual version ${infos.latestVersion}`); + } + }).then(()=>{}); +}; +``` + +- [ ] **Step 4: Run test to verify it passes** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/updateCheck-optout.test.ts +``` + +Expected: PASS, 2 tests. + +- [ ] **Step 5: Commit** + +```bash +git add src/node/utils/UpdateCheck.ts src/tests/backend-new/specs/privacy/updateCheck-optout.test.ts +git commit -m "feat(privacy): honour privacy.updateCheck=false in UpdateCheck + +check() and getLatestVersion() now early-return when the setting is +off. Logs once on first skip. The admin 'update available' panel +already tolerates an undefined latestVersion. + +Refs #7524" +``` + +--- + +## Task 3: Plugin installer opt-out (TDD) + +**Files:** +- Modify: `src/static/js/pluginfw/installer.ts:171-197` +- Create: `src/tests/backend-new/specs/privacy/installer-optout.test.ts` + +- [ ] **Step 1: Create the failing test** + +Create `src/tests/backend-new/specs/privacy/installer-optout.test.ts`: + +```typescript +import {describe, it, expect, beforeEach, vi} from 'vitest'; +import settings from '../../../../node/utils/Settings'; + +describe('Plugin installer opt-out', () => { + beforeEach(() => { + vi.resetModules(); + vi.restoreAllMocks(); + }); + + it('getAvailablePlugins throws tagged error when privacy.pluginCatalog is false', async () => { + settings.privacy.pluginCatalog = false; + const fetchSpy = vi.spyOn(globalThis, 'fetch'); + const {getAvailablePlugins} = await import( + '../../../../static/js/pluginfw/installer' + ); + await expect(getAvailablePlugins(false)).rejects.toThrow( + /privacy\.pluginCatalog=false/ + ); + expect(fetchSpy).not.toHaveBeenCalled(); + settings.privacy.pluginCatalog = true; + }); +}); +``` + +- [ ] **Step 2: Run test to verify it fails** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/installer-optout.test.ts +``` + +Expected: FAIL — fetch is still called; no error thrown. + +- [ ] **Step 3: Guard `getAvailablePlugins()`** + +In `src/static/js/pluginfw/installer.ts`, replace the body of `getAvailablePlugins` (currently lines ~171-197) with: + +```typescript +export const getAvailablePlugins = async (maxCacheAge: number | false) => { + if (!settings.privacy.pluginCatalog) { + throw new Error('Plugin catalog disabled by privacy.pluginCatalog=false (see PRIVACY.md)'); + } + + const nowTimestamp = Math.round(Date.now() / 1000); + + // check cache age before making any request + if (availablePlugins && maxCacheAge && (nowTimestamp - cacheTimestamp) <= maxCacheAge) { + return availablePlugins; + } + + const pluginsLoaded = await fetch(`${settings.updateServer}/plugins.json`, {headers}); + if (!pluginsLoaded.ok) { + throw new Error(`HTTP ${pluginsLoaded.status} ${pluginsLoaded.statusText}`); + } + const data = await pluginsLoaded.json() as MapArrayType; + // Normalize: the registry may use numeric keys instead of plugin names + const normalized: MapArrayType = {}; + for (const key in data) { + const entry = data[key]; + if (entry && entry.name) { + normalized[entry.name] = entry; + } else { + normalized[key] = entry; + } + } + availablePlugins = normalized; + cacheTimestamp = nowTimestamp; + return availablePlugins; +}; +``` + +- [ ] **Step 4: Run test to verify it passes** + +```bash +cd src && pnpm test:vitest -- tests/backend-new/specs/privacy/installer-optout.test.ts +``` + +Expected: PASS. + +- [ ] **Step 5: Commit** + +```bash +git add src/static/js/pluginfw/installer.ts src/tests/backend-new/specs/privacy/installer-optout.test.ts +git commit -m "feat(privacy): honour privacy.pluginCatalog=false in installer + +getAvailablePlugins() throws a tagged disabled error before any fetch +when the setting is off. install/uninstall paths are unaffected so +operators can still install plugins by name via CLI. + +Refs #7524" +``` + +--- + +## Task 4: Surface catalog-disabled in admin socket handler + +**Files:** +- Modify: `src/node/hooks/express/adminplugins.ts:47-100` + +- [ ] **Step 1: Update socket handlers** + +In `src/node/hooks/express/adminplugins.ts`, import settings at the top of the file (after the existing imports around line 13): + +```typescript +import settings from '../../utils/Settings'; +``` + +Then in each of `getInstalled`, `checkUpdates`, `getAvailable`, and `search` socket handlers, add an early branch. For `getInstalled` (around line 47), wrap the `checkPluginForUpdates()` call: + +```typescript + socket.on('getInstalled', async (query: string) => { + // send currently installed plugins + const installed = + Object.keys(pluginDefs.plugins).map((plugin) => pluginDefs.plugins[plugin].package); + + if (settings.privacy.pluginCatalog) { + const updatable = await checkPluginForUpdates(); + installed.forEach((plugin) => { + plugin.updatable = updatable.includes(plugin.name); + }) + } + // When the catalog is disabled, `updatable` simply stays undefined on + // each installed plugin — the admin UI renders no "update available" + // badge, which is correct. + + socket.emit('results:installed', {installed}); + }); +``` + +For `checkUpdates` (around line 62): + +```typescript + socket.on('checkUpdates', async () => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } + try { + const updatable = checkPluginForUpdates(); + socket.emit('results:updatable', {updatable}); + } catch (err) { + const errc = err as ErrorCaused + console.warn(errc.stack || errc.toString()); + socket.emit('results:updatable', {updatable: {}}); + } + }); +``` + +For `getAvailable` (around line 76): + +```typescript + socket.on('getAvailable', async (query:string) => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } + try { + const results = await getAvailablePlugins(/* maxCacheAge:*/ false); + socket.emit('results:available', results); + } catch (er) { + console.error(er); + socket.emit('results:available', {}); + } + }); +``` + +For `search` (around line 86): + +```typescript + socket.on('search', async (query: QueryType) => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } + try { + if (query.searchTerm) logger.info(`Plugin search: ${query.searchTerm}'`); + const results = await search(query.searchTerm, /* maxCacheAge:*/ 60 * 10); + let res = Object.keys(results) + .map((pluginName) => results[pluginName]) + .filter((plugin) => !pluginDefs.plugins[plugin.name]); + res = sortPluginList(res, query.sortBy, query.sortDir) + .slice(query.offset, query.offset + query.limit); + socket.emit('results:search', {results: res, query}); + } catch (err: any) { + logger.error(`Error searching plugins: ${err}`); + socket.emit('results:searcherror', {error: err.message, query}); + } + }); +``` + +- [ ] **Step 2: Sanity-build TypeScript** + +```bash +cd src && pnpm exec tsc --noEmit +``` + +Expected: no errors related to adminplugins.ts. + +- [ ] **Step 3: Commit** + +```bash +git add src/node/hooks/express/adminplugins.ts +git commit -m "feat(privacy): emit results:catalogDisabled when pluginCatalog off + +Short-circuits the four catalog-driven socket events. The install/ +uninstall events are untouched so operators can still install by +plugin name when the catalog is disabled. + +Refs #7524" +``` + +--- + +## Task 5: stalePlugins CLI respects opt-out + +**Files:** +- Modify: `bin/plugins/stalePlugins.ts:9` + +- [ ] **Step 1: Read current state** + +```bash +head -20 bin/plugins/stalePlugins.ts +``` + +Expected: line 9 contains `fetch('https://static.etherpad.org/plugins.full.json')`. + +- [ ] **Step 2: Make it honour settings** + +In `bin/plugins/stalePlugins.ts`, replace the hardcoded fetch with a settings-aware call. At the top of the file (after existing imports), add: + +```typescript +import settings from '../../src/node/utils/Settings'; +``` + +Then replace the line: + +```typescript + const resp = await fetch('https://static.etherpad.org/plugins.full.json'); +``` + +with: + +```typescript + if (!settings.privacy.pluginCatalog) { + console.info('stalePlugins: plugin catalog disabled by privacy.pluginCatalog=false; exiting'); + process.exit(0); + } + const resp = await fetch(`${settings.updateServer}/plugins.full.json`); +``` + +- [ ] **Step 3: Smoke-run the CLI** + +```bash +node --import tsx bin/plugins/stalePlugins.ts --help 2>&1 | head -10 +``` + +Expected: the script starts and either prints help or its normal output. No TypeScript errors. + +- [ ] **Step 4: Commit** + +```bash +git add bin/plugins/stalePlugins.ts +git commit -m "fix(bin): stalePlugins reads updateServer and honours privacy flag + +Was hardcoding static.etherpad.org and ignoring opt-out. Now exits 0 +cleanly when privacy.pluginCatalog=false. + +Refs #7524" +``` + +--- + +## Task 6: settings.json.template + +**Files:** +- Modify: `settings.json.template:418` (add block after `updateServer` line) + +- [ ] **Step 1: Insert the new block** + +In `settings.json.template`, find the existing `"updateServer": "https://etherpad.org/ep_infos",` line. Add the following block immediately after it: + +```jsonc + /* + * Outbound network calls. See PRIVACY.md for what each one sends. + * - updateCheck=false : disables hourly version check (UpdateCheck.ts) + * - pluginCatalog=false: disables admin plugin browser + * (manual install-by-name via CLI still works) + */ + "privacy": { + "updateCheck": true, + "pluginCatalog": true + }, +``` + +- [ ] **Step 2: Validate JSONC syntax** + +```bash +node -e "const {parse} = require('jsonc-parser'); const errors = []; const data = parse(require('fs').readFileSync('settings.json.template', 'utf8'), errors); if (errors.length) { console.error(errors); process.exit(1); } console.log('privacy:', data.privacy); " +``` + +Expected: prints `privacy: { updateCheck: true, pluginCatalog: true }`. No errors. + +- [ ] **Step 3: Commit** + +```bash +git add settings.json.template +git commit -m "docs(settings): document privacy block in settings template + +Refs #7524" +``` + +--- + +## Task 7: Drop swagger-ui-express dependency + +**Files:** +- Modify: `src/package.json:86, 122` + +- [ ] **Step 1: Remove the two dep lines** + +In `src/package.json`, delete the line: +``` + "swagger-ui-express": "^5.0.1", +``` + +And in the devDependencies block, delete the line: +``` + "@types/swagger-ui-express": "^4.1.8", +``` + +- [ ] **Step 2: Refresh the lockfile** + +```bash +pnpm install +``` + +Expected: lockfile updates; `swagger-ui-express` and `swagger-ui-dist` no longer appear. + +- [ ] **Step 3: Confirm dependency is gone** + +```bash +grep -c "swagger-ui" pnpm-lock.yaml +``` + +Expected: `0`. + +- [ ] **Step 4: Commit (do not commit yet — the import in RestAPI.ts still references it; Task 8 fixes that)** + +Skip commit until Task 8 lands so the tree is buildable between commits. + +--- + +## Task 8: Replace swagger-ui-express route with RapiDoc shell + +**Files:** +- Modify: `src/node/handler/RestAPI.ts:8, 1440-1445` +- Create: `src/static/api-docs.html` + +- [ ] **Step 1: Remove the swagger-ui import** + +In `src/node/handler/RestAPI.ts`, delete the line: + +```typescript +import {serve, setup} from 'swagger-ui-express' +``` + +- [ ] **Step 2: Replace the route block** + +In `src/node/handler/RestAPI.ts`, replace lines 1440-1445 (the `app.use('/api-docs', serve)` / `app.get('/api-docs', setup(...))` block) with: + +```typescript + app.get('/api-docs', (_req, res) => { + res.sendFile('api-docs.html', {root: 'src/static'}); + }); +``` + +The `/api-docs.json` route immediately below stays untouched. + +- [ ] **Step 3: Create the RapiDoc shell** + +Create `src/static/api-docs.html`: + +```html + + + + + Etherpad API + + + + + + + + + +``` + +- [ ] **Step 4: TypeScript build sanity** + +```bash +cd src && pnpm exec tsc --noEmit +``` + +Expected: no `swagger-ui-express` related errors. (Vendored RapiDoc is referenced by URL from the browser, not imported.) + +- [ ] **Step 5: Commit (deps + route swap together)** + +```bash +git add src/package.json pnpm-lock.yaml src/node/handler/RestAPI.ts src/static/api-docs.html +git commit -m "feat(api-docs): replace swagger-ui-express with RapiDoc shell + +Drops the swagger-ui-express dep (third-party telemetry via Scarf, +see swagger-api/swagger-ui#10573) and serves /api-docs with a static +HTML shell that mounts . /api-docs.json is unchanged. + +The vendored RapiDoc asset is added in the next commit so the tree is +broken for one diff hunk — pair this with the rapidoc-min.js commit +during review. + +Refs #7524" +``` + +--- + +## Task 9: Vendor RapiDoc as a static asset + +**Files:** +- Create: `src/static/vendor/rapidoc/rapidoc-min.js` +- Create: `src/static/vendor/rapidoc/VERSION` +- Create: `src/static/vendor/rapidoc/LICENSE` + +- [ ] **Step 1: Download a pinned RapiDoc release** + +```bash +mkdir -p src/static/vendor/rapidoc +curl -fsSL -o src/static/vendor/rapidoc/rapidoc-min.js \ + https://unpkg.com/rapidoc@9.3.4/dist/rapidoc-min.js +curl -fsSL -o src/static/vendor/rapidoc/LICENSE \ + https://raw.githubusercontent.com/rapi-doc/RapiDoc/main/LICENSE.txt +``` + +Expected: both files present. Confirm size of `rapidoc-min.js` is roughly 300-400KB. + +```bash +ls -lah src/static/vendor/rapidoc/ +``` + +- [ ] **Step 2: Record version + checksum** + +```bash +( echo "rapidoc 9.3.4 — vendored 2026-05-15"; \ + echo "source: https://unpkg.com/rapidoc@9.3.4/dist/rapidoc-min.js"; \ + echo "sha256: $(sha256sum src/static/vendor/rapidoc/rapidoc-min.js | cut -d' ' -f1)" ) \ + > src/static/vendor/rapidoc/VERSION +cat src/static/vendor/rapidoc/VERSION +``` + +Expected: file contains version, source URL, sha256. + +- [ ] **Step 3: Telemetry grep audit** + +```bash +grep -E "scarf|google-analytics|googletagmanager|sentry|datadog|segment\.|mixpanel|amplitude|navigator\.sendBeacon" \ + src/static/vendor/rapidoc/rapidoc-min.js || echo "no known telemetry strings" +``` + +Expected: prints `no known telemetry strings`. If anything matches, stop and investigate before continuing. + +- [ ] **Step 4: Outbound-fetch surface audit** + +```bash +grep -oE "https?://[a-zA-Z0-9./_-]+" src/static/vendor/rapidoc/rapidoc-min.js \ + | sort -u | head -40 +``` + +Expected: only references to schema/spec URLs (e.g. `swagger.io/specification` for OpenAPI schema validation in comments) and same-origin path templates. No analytics hosts. Document the output in the PR description. + +- [ ] **Step 5: Manual smoke** + +```bash +cd src && pnpm dev & +SERVER_PID=$! +sleep 8 +curl -fsSL -o /tmp/api-docs.html http://localhost:9001/api-docs +grep -c "rapi-doc" /tmp/api-docs.html +kill $SERVER_PID +``` + +Expected: `/api-docs` returns the HTML shell containing ``; count is at least 1. Then open it in a real browser: + +```bash +cd src && pnpm dev +# In another shell: +# xdg-open http://localhost:9001/api-docs +``` + +Verify in the browser: spec renders, no third-party hosts in DevTools Network tab (only `localhost`). Close server when done. + +- [ ] **Step 6: Commit** + +```bash +git add src/static/vendor/rapidoc/ +git commit -m "feat(api-docs): vendor RapiDoc 9.3.4 (MIT) as static asset + +Pinned bundle, checksum in VERSION. Replaces swagger-ui-dist which +shipped a Scarf telemetry pixel. + +Refs #7524" +``` + +--- + +## Task 10: Admin UI banner when catalog is disabled + +**Files:** +- Modify: `admin/src/pages/HomePage.tsx` +- Modify: `admin/src/localization/en.json` (and parallel locale files for keys we already define in English) + +- [ ] **Step 1: Add locale string** + +In `admin/src/localization/en.json`, add a new key (alphabetically placed near other `admin_plugins.*` keys): + +```json +"admin_plugins.catalog_disabled": "Plugin catalog is disabled by your operator (privacy.pluginCatalog=false). To install a plugin, run pnpm run plugins i ep_ from the server.", +``` + +- [ ] **Step 2: Subscribe to results:catalogDisabled and render banner** + +In `admin/src/pages/HomePage.tsx`, inside the `useEffect` that wires socket listeners (around line 82-99), add a state hook at the top of the component: + +```tsx +const [catalogDisabled, setCatalogDisabled] = useState(false); +``` + +In the same `useEffect` body, add the listener wiring: + +```tsx +const onCatalogDisabled = () => setCatalogDisabled(true); +pluginsSocket.on('results:catalogDisabled', onCatalogDisabled); +``` + +And in the cleanup: + +```tsx +pluginsSocket.off('results:catalogDisabled', onCatalogDisabled); +``` + +Then in the JSX (around line 137, just inside the `pm-page` div before the header), render: + +```tsx +{catalogDisabled && ( +
+ +
+)} +``` + +- [ ] **Step 3: Minimal CSS for the banner** + +In `admin/src/index.css`, add (placed near other `.pm-*` rules): + +```css +.pm-banner { + margin: 1rem 0; + padding: .75rem 1rem; + border-radius: 6px; + border: 1px solid var(--ink-3, #cbd5e1); + background: var(--surface-2, #f8fafc); + font-size: .9rem; +} +.pm-banner-info { border-left: 4px solid var(--accent, #0ea5e9); } +``` + +- [ ] **Step 4: Lint and typecheck** + +```bash +cd admin && pnpm lint && pnpm exec tsc --noEmit +``` + +Expected: no errors. + +- [ ] **Step 5: Smoke-test the banner** + +```bash +# In settings.json (or a local override), set privacy.pluginCatalog: false +# Then: +cd src && pnpm dev +``` + +Open `/admin/`, log in, navigate to the plugins page. Verify the banner renders and no errors appear in the browser console. + +- [ ] **Step 6: Commit** + +```bash +git add admin/src/pages/HomePage.tsx admin/src/localization/en.json admin/src/index.css +git commit -m "feat(admin): banner when plugin catalog is disabled + +Subscribes to results:catalogDisabled and renders a localized info +banner. install/uninstall still function via CLI. + +Refs #7524" +``` + +--- + +## Task 11: PRIVACY.md + README + CHANGELOG + +**Files:** +- Create: `PRIVACY.md` +- Modify: `README.md` +- Modify: `CHANGELOG.md` + +- [ ] **Step 1: Write PRIVACY.md** + +Create `PRIVACY.md` at the repo root with this content: + +```markdown +# Privacy in Etherpad + +## What this document is + +A complete, current list of every network call Etherpad's own code makes +to a third party, plus how to turn each one off. Plugins are out of +scope — audit any plugin you install. + +## TL;DR + +Etherpad ships with two outbound calls to `etherpad.org`. Both are +documented below. Both can be disabled with a single config value each. +No analytics, no usage pings, no third-party SDKs at runtime. + +## Outbound calls + +### 1. Version check + +| | | +|---|---| +| URL | `https://static.etherpad.org/info.json` (override via `updateServer`) | +| Frequency | hourly while the server runs | +| Payload | GET only; `User-Agent: Etherpad/` | +| Purpose | surface an "update available" notice in the admin panel | +| Disable | set `privacy.updateCheck: false` in `settings.json` | +| Source | `src/node/utils/UpdateCheck.ts` | + +### 2. Plugin catalog + +| | | +|---|---| +| URL | `https://static.etherpad.org/plugins.json` (override via `updateServer`) | +| Frequency | on admin-plugins page load (cached 10 min) | +| Payload | GET only; same `User-Agent` | +| Purpose | list installable `ep_*` plugins in the admin UI | +| Disable | set `privacy.pluginCatalog: false` in `settings.json` (manual install via CLI still works) | +| Source | `src/static/js/pluginfw/installer.ts` | + +## What we removed + +`swagger-ui-express` was dropped because the upstream npm package +injects a Scarf analytics pixel that cannot be disabled at install or +runtime (see [swagger-api/swagger-ui#10573](https://github.com/swagger-api/swagger-ui/issues/10573)). +`/api-docs` is now served by a vendored copy of RapiDoc (MIT) with no +outbound calls. + +## What we will not add + +- usage analytics or telemetry SDKs +- crash reporters that send data without explicit opt-in +- third-party CDN dependencies at runtime +- dependencies whose install or runtime phones home + +## Plugins + +Third-party plugins are out of this guarantee. Plugins run in your +Etherpad process with full access; audit any plugin you install. + +## Reporting + +Found an outbound call this doc doesn't list? Open an issue with the +label `privacy`. +``` + +- [ ] **Step 2: Add a README pointer** + +Open `README.md`. Find the first heading or intro paragraph near the top. Immediately after the existing intro, add one line: + +```markdown +**Privacy:** Etherpad makes two opt-out network calls and ships no third-party telemetry. See [PRIVACY.md](PRIVACY.md). +``` + +- [ ] **Step 3: Add a CHANGELOG entry** + +Open `CHANGELOG.md`. Under the unreleased / next-release section, add: + +```markdown +- **Privacy:** Dropped `swagger-ui-express` (upstream injects Scarf telemetry); `/api-docs` is now served by vendored RapiDoc. Added `privacy.updateCheck` and `privacy.pluginCatalog` opt-outs for Etherpad's own outbound calls. See [PRIVACY.md](PRIVACY.md). (#7524) +``` + +- [ ] **Step 4: Commit** + +```bash +git add PRIVACY.md README.md CHANGELOG.md +git commit -m "docs: PRIVACY.md and README/CHANGELOG pointers + +Publishes Etherpad's stance on telemetry: two documented, opt-out +outbound calls; no third-party analytics; no install-time phone-homes +in our deps. + +Refs #7524" +``` + +--- + +## Task 12: Final verification + +**Files:** none modified. + +- [ ] **Step 1: pnpm install clean** + +```bash +pnpm install +grep -c "swagger-ui" pnpm-lock.yaml +``` + +Expected: install succeeds; grep prints `0`. + +- [ ] **Step 2: TypeScript across workspaces** + +```bash +cd src && pnpm exec tsc --noEmit +cd ../admin && pnpm exec tsc --noEmit +``` + +Expected: both clean. + +- [ ] **Step 3: Backend vitest (per project memory: always run)** + +```bash +cd src && pnpm test:vitest +``` + +Expected: all tests pass, including the three new privacy specs. + +- [ ] **Step 4: Source grep** + +```bash +grep -rIn "swagger-ui-express\|from 'swagger-ui-express'" src admin bin 2>/dev/null +grep -rIn "swagger" src/node src/static --include="*.ts" 2>/dev/null +``` + +Expected: first grep returns nothing. Second grep returns only `src/node/hooks/express/openapi.ts:810` (unrelated historical comment) and `src/node/types/SwaggerUIResource.ts` (TypeScript-only type). + +- [ ] **Step 5: Manual smoke matrix on port 9003** + +Per project memory ("Use port 9003 for snap/local tests, not 9001"), bind tests to 9003. Set `port: 9003` in your settings.json override. + +Run dev server, then in a browser: + +| Step | Setting | Expected | +|---|---|---| +| a | defaults (both `true`) | `/api-docs` renders RapiDoc, spec loads; no third-party hosts in Network tab | +| b | `privacy.updateCheck: false`, restart | server log shows "Update check disabled..."; no request to `info.json` after 1 hour or on admin settings page load | +| c | `privacy.pluginCatalog: false`, restart | admin plugins page shows the disabled banner; install-by-name via `pnpm run plugins i ep_align` still installs | + +Verify each row manually. Per project memory: actually exercise the UI, not just "lint passed". + +- [ ] **Step 6: Push and open PR** + +```bash +git push -u origin feature/7524-drop-swagger-ui-telemetry +gh pr create --base develop --title "Drop swagger-ui, document telemetry, add opt-outs (#7524)" \ + --body "$(cat <<'EOF' +## Summary +- Drops `swagger-ui-express` (Scarf telemetry pixel, [swagger-api/swagger-ui#10573](https://github.com/swagger-api/swagger-ui/issues/10573)) +- `/api-docs` now served by vendored RapiDoc 9.3.4 (MIT) +- New `privacy.updateCheck` and `privacy.pluginCatalog` opt-outs (default `true`, behaviour unchanged) +- New `PRIVACY.md` documenting both outbound calls and how to disable each +- `stalePlugins.ts` CLI now reads `updateServer` and honours the opt-out + +Closes #7524. + +## Test plan +- [x] `pnpm test:vitest` (3 new specs) +- [x] `pnpm exec tsc --noEmit` clean in `src/` and `admin/` +- [x] Manual: `/api-docs` renders; DevTools Network shows no third-party hosts +- [x] Manual: `privacy.updateCheck: false` prevents info.json fetch +- [x] Manual: `privacy.pluginCatalog: false` renders admin banner; CLI install still works +- [x] Manual: `grep -rIn "swagger-ui-express" src admin bin` returns nothing + +🤖 Generated with [Claude Code](https://claude.com/claude-code) +EOF +)" +``` + +- [ ] **Step 7: Wait ~20s, then check CI** + +```bash +sleep 20 +gh pr checks +``` + +Per project memory: re-check `gh pr checks` at every natural pause; fix red checks before moving on. + +- [ ] **Step 8: Action Qodo review comments inline** + +Per project memory: "Always action Qodo PR feedback — after opening a PR, fetch Qodo's review comments and fix or reply to each." + +```bash +PR=$(gh pr view --json number -q .number) +gh api repos/ether/etherpad/pulls/$PR/comments +``` + +Resolve every Qodo finding in subsequent commits on this branch. + +--- + +## Self-review checklist (run after writing this plan) + +- Spec coverage: deliverable 1 → Tasks 7-9; deliverable 2 → Tasks 1-6; deliverable 3 → Task 11. ✓ +- No placeholders: all code blocks contain real code; commands have expected output. ✓ +- Type consistency: `privacy.updateCheck`/`privacy.pluginCatalog` used identically everywhere; `results:catalogDisabled` is the one socket event name. ✓ +- Test-first: Tasks 1-3 are TDD with failing-test-first steps. Tasks 4-11 are integration/UI surface — verified via manual smoke + typecheck. ✓ +- Commit hygiene: each task ends with a commit; one cross-task boundary (Tasks 7+8 share a commit boundary, called out explicitly). ✓ diff --git a/docs/superpowers/specs/2026-05-15-issue-7524-swagger-ui-telemetry-design.md b/docs/superpowers/specs/2026-05-15-issue-7524-swagger-ui-telemetry-design.md new file mode 100644 index 000000000..ab376f016 --- /dev/null +++ b/docs/superpowers/specs/2026-05-15-issue-7524-swagger-ui-telemetry-design.md @@ -0,0 +1,246 @@ +# Issue #7524 — Drop swagger-ui, take a telemetry stance, opt out our phone-homes + +**Status:** approved 2026-05-15 +**Closes:** [ether/etherpad#7524](https://github.com/ether/etherpad/issues/7524) +**Author:** John McLear (design brainstormed with Claude) +**Branch:** `feature/7524-drop-swagger-ui-telemetry` off `develop` + +## Goal + +Eliminate the only known third-party telemetry vector in Etherpad's runtime +dependency tree (swagger-ui's Scarf pixel) and give operators explicit, +documented opt-outs for the two outbound calls Etherpad itself makes. + +## Background + +Etherpad currently ships `swagger-ui-express ^5.0.1` to render the OpenAPI +spec at `/api-docs`. Upstream's npm distribution injects a Scarf analytics +pixel that cannot be disabled at install or runtime (see +[swagger-api/swagger-ui#10573](https://github.com/swagger-api/swagger-ui/issues/10573)). + +Etherpad itself makes two outbound calls: + +1. `src/node/utils/UpdateCheck.ts` — hourly `GET ${updateServer}/info.json` + for the admin "update available" notice. No opt-out today. +2. `src/static/js/pluginfw/installer.ts:179` — `GET ${updateServer}/plugins.json` + on admin-plugins page load (10 min cache). No opt-out today. + +Both share the `updateServer` setting (default `https://static.etherpad.org`). +There is no public document stating Etherpad's position on telemetry. + +## Out of scope + +- Replacing `static.etherpad.org` itself or hosting a mirror. +- Auditing telemetry beyond the two known endpoints. +- Changing `/api-docs.json` (spec endpoint unchanged). +- The admin OpenAPI editor effort (issue #7693, separate PR). + +## Deliverables + +Three deliverables ship together in one PR closing #7524: + +### 1. Replace `swagger-ui-express` with vendored RapiDoc + +**Removed:** +- `swagger-ui-express ^5.0.1` from `src/package.json` dependencies. +- `@types/swagger-ui-express ^4.1.8` from `src/package.json` devDependencies. +- `import {serve, setup} from 'swagger-ui-express'` at `src/node/handler/RestAPI.ts:8`. +- The three-line route block at `src/node/handler/RestAPI.ts:1440-1445` + (`app.use('/api-docs', serve)` + `app.get('/api-docs', setup(...))`). + +**Added:** +- `src/static/vendor/rapidoc/rapidoc-min.js` — vendored from + `https://unpkg.com/rapidoc@9.3.x/dist/rapidoc-min.js` (MIT, ~370KB), + committed as a static asset. Pinned exact version recorded in + `src/static/vendor/rapidoc/VERSION`. No CDN fetch at runtime. +- `src/static/api-docs.html` — minimal HTML shell: + ```html + Etherpad API + + + + + ``` +- Route registration that serves `/api-docs` → `api-docs.html` and the + static asset under `/static/vendor/rapidoc/`. The simplest path is to + drop the file under `src/static/` and let the existing static-file + middleware pick it up; if that needs an explicit route, add it next to + the `/api-docs.json` handler in `RestAPI.ts`. + +**Kept (unchanged):** +- `/api-docs.json` route at `RestAPI.ts:1449-1453`. +- `src/node/types/SwaggerUIResource.ts` (TypeScript type used by `openapi.ts`, + no runtime swagger-ui dependency). +- The unrelated swagger comment at `openapi.ts:810`. + +**Verification of clean vendoring:** +Before committing the vendored file, grep it for: +`fetch(`, `XMLHttpRequest`, `sendBeacon`, `scarf`, `googletag`, `analytics`, +`navigator.connection`. Any hit must be reviewed and confirmed as either +same-origin spec loading (legit) or removed. Outcome is documented in the +PR description. + +### 2. Privacy opt-out config + +**`src/node/utils/Settings.ts` — new block** alongside the existing +`privacyBanner`: + +```ts +privacy: { + updateCheck: boolean, // default true + pluginCatalog: boolean, // default true +}, +``` + +Defaults are `true` so behavior is identical to today; operators flip to +`false` to silence each call. Both default-true keeps the change +non-breaking for existing installs. + +**`src/node/utils/UpdateCheck.ts`:** +- `check()` — early-return when `settings.privacy.updateCheck === false`, + logging once: `Update check disabled by privacy.updateCheck=false`. + No fetch, no scheduled retry. +- `getLatestVersion()` — returns `undefined` when disabled. The existing + caller at `src/node/hooks/express/adminsettings.ts:105` already tolerates + undefined; the admin panel simply omits the "update available" line. + +**`src/static/js/pluginfw/installer.ts`:** +- `getAvailablePlugins()` — early-throw when + `settings.privacy.pluginCatalog === false` with a tagged error: + `Error('Plugin catalog disabled (privacy.pluginCatalog=false)')`. +- Admin consumer at `src/node/hooks/express/adminplugins.ts` catches this + specific error and renders a fallback panel: "Plugin catalog is disabled. + Enter a plugin name to install manually." with a free-text install input. + `install(pluginName)` itself remains functional — only browsing is gated. + +**`bin/plugins/stalePlugins.ts`:** +- Currently hardcodes `https://static.etherpad.org/plugins.full.json`. + Rewrite to read `settings.updateServer` and respect + `settings.privacy.pluginCatalog`. When disabled, log and exit 0 (dev + tool; failing isn't useful). + +**`settings.json.template`:** +Add the `privacy` block with comments pointing readers to `PRIVACY.md`. + +### 3. `PRIVACY.md` + README link + +New `PRIVACY.md` at the repo root, factual and short: + +``` +# Privacy in Etherpad + +## What this document is +A complete, current list of every network call Etherpad's own code +makes to a third party, plus how to turn each one off. + +## TL;DR +Etherpad ships with two outbound calls to etherpad.org. Both are +documented below. Both can be disabled with a single config value +each. No analytics, no usage pings, no third-party SDKs at runtime. + +## Outbound calls + +### 1. Version check +- URL: https://static.etherpad.org/info.json (or `updateServer`) +- Frequency: hourly while the server runs +- Payload: GET only; User-Agent header carries "Etherpad/" +- Purpose: surface a "update available" notice in the admin panel +- Disable: set `privacy.updateCheck: false` in settings.json +- Source: src/node/utils/UpdateCheck.ts + +### 2. Plugin catalog +- URL: https://static.etherpad.org/plugins.json (or `updateServer`) +- Frequency: on admin-plugins page load (cached 10 min) +- Payload: GET only; same User-Agent +- Purpose: list installable ep_* plugins in the admin UI +- Disable: set `privacy.pluginCatalog: false` in settings.json + (manual install-by-name still works) +- Source: src/static/js/pluginfw/installer.ts + +## What we removed +swagger-ui-express was dropped in because the upstream package +injects a Scarf analytics pixel that cannot be disabled at build or +runtime. /api-docs is now served by a vendored copy of RapiDoc (MIT) +with no outbound calls. + +## What we will not add +- usage analytics or telemetry SDKs +- crash reporters that send data without explicit opt-in +- third-party CDN dependencies at runtime +- dependencies whose install or runtime phones home + +## Plugins +Third-party plugins are out of this guarantee. Plugins run in your +Etherpad process with full access; audit any plugin you install. + +## Reporting +Found an outbound call this doc doesn't list? Open an issue with the +label `privacy`. +``` + +**`README.md`** — one line near the top under the existing intro: + +> Privacy: Etherpad makes two opt-out network calls and ships no third-party +> telemetry. See [PRIVACY.md](PRIVACY.md). + +**`CHANGELOG.md`** (or release notes file) — single entry under the new +release section: + +> **Privacy:** Dropped `swagger-ui-express` (third-party telemetry); +> `/api-docs` now served by vendored RapiDoc. Added `privacy.updateCheck` +> and `privacy.pluginCatalog` opt-outs. See `PRIVACY.md`. + +## Testing + +**Backend (vitest, required per project memory):** +- `Settings.test.ts` — `privacy.updateCheck` and `privacy.pluginCatalog` + default to `true` when not set in `settings.json`. +- New `UpdateCheck.test.ts` — `check()` makes no fetch when + `privacy.updateCheck === false` (fetch mocked, assert no call). +- New `installer.test.ts` — `getAvailablePlugins()` throws the tagged + disabled error when `privacy.pluginCatalog === false`. + +**Manual smoke (pre-merge, on port 9003):** +1. Start dev server, open `/api-docs` — confirm RapiDoc renders the spec + and DevTools Network tab shows zero third-party hosts. +2. Set `privacy.updateCheck: false`, restart — confirm no request to + `static.etherpad.org/info.json` and admin "update available" line is + absent. +3. Set `privacy.pluginCatalog: false`, open admin plugins — confirm the + manual install-by-name fallback renders; `ep_align` installs by name. + +**Existing e2e:** +Run admin-page Playwright suites; any test that depended on swagger-ui's +specific DOM needs updating to RapiDoc selectors or removing. + +**Dependency hygiene:** +- `pnpm install` clean. +- `grep -ri "swagger" src/ --exclude-dir=node_modules` returns only the + unrelated comment at `openapi.ts:810` and the kept `SwaggerUIResource.ts` + type. +- `grep -E "fetch\(|XMLHttpRequest|sendBeacon|scarf|google" src/static/vendor/rapidoc/rapidoc-min.js` + reviewed; results documented in PR description. + +## Rollout + +- Branch: `feature/7524-drop-swagger-ui-telemetry` off `develop`. +- Single PR closing #7524. +- After push, wait ~20s, run `gh pr checks`. Fix CI failures inline before + moving on. +- Action all Qodo review comments inline. + +## Rollback + +All changes are either additive (the `privacy` block, both defaults `true`) +or one-for-one (`swagger-ui-express` → vendored RapiDoc, same URL surface). +Reverting the merge restores prior behavior cleanly. + +## Risks + +- Operators with proxies fronting `/api-docs` — URL unchanged, transparent. +- API consumers scraping `/api-docs.json` — untouched. +- Custom admin pages that depended on swagger-ui's specific DOM — + unlikely (core only); will surface in CI. +- RapiDoc upstream eventually adds telemetry — mitigated by vendoring a + pinned version and re-grepping on each bump. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a1847389..c0624594c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -343,9 +343,6 @@ importers: surrealdb: specifier: ^2.0.3 version: 2.0.3(tslib@2.8.1)(typescript@6.0.3) - swagger-ui-express: - specifier: ^5.0.1 - version: 5.0.1(express@5.2.1) tinycon: specifier: 0.6.8 version: 0.6.8 @@ -434,9 +431,6 @@ importers: '@types/supertest': specifier: ^7.2.0 version: 7.2.0 - '@types/swagger-ui-express': - specifier: ^4.1.8 - version: 4.1.8 '@types/underscore': specifier: ^1.13.0 version: 1.13.0 @@ -1757,9 +1751,6 @@ packages: '@rushstack/eslint-patch@1.16.1': resolution: {integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==} - '@scarf/scarf@1.4.0': - resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - '@shikijs/core@3.23.0': resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} @@ -1969,9 +1960,6 @@ packages: '@types/mime-types@3.0.1': resolution: {integrity: sha512-xRMsfuQbnRq1Ef+C+RKaENOxXX87Ygl38W1vDfPHRku02TgQr+Qd8iivLtAMcR0KF5/29xlnFihkTlbqFrGOVQ==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mocha@10.0.10': resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} @@ -2019,15 +2007,9 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - '@types/send@1.2.1': resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} @@ -2043,9 +2025,6 @@ packages: '@types/supertest@7.2.0': resolution: {integrity: sha512-uh2Lv57xvggst6lCqNdFAmDSvoMG7M/HDtX4iUCquxQ5EGPtaPM5PL5Hmi7LCvOG8db7YaCPNJEeoI8s/WzIQw==} - '@types/swagger-ui-express@4.1.8': - resolution: {integrity: sha512-AhZV8/EIreHFmBV5wAs0gzJUNq9JbbSXgJLQubCC0jtIo6prnI9MIRRxnU4MZX9RB9yXxF1V4R7jtLl/Wcj31g==} - '@types/tar@6.1.13': resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} @@ -5438,15 +5417,6 @@ packages: swagger-schema-official@2.0.0-bab6bed: resolution: {integrity: sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==} - swagger-ui-dist@5.20.6: - resolution: {integrity: sha512-q/1dwcCOQb+qsNkb+1VWRdGEEVdBtOTH4vv9rICjPwJXOwq/JSRkBbuEMjMe161Oxsp589+8Ff5nE4HTPLWIAw==} - - swagger-ui-express@5.0.1: - resolution: {integrity: sha512-SrNU3RiBGTLLmFU8GIJdOdanJTl4TOmT27tt3bWWHppqYmAZ6IDuEuBvMU6nZq0zLEe6b/1rACXCgLZqO6ZfrA==} - engines: {node: '>= v0.10.32'} - peerDependencies: - express: '>=4.0.0 || >=5.0.0-beta' - symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -7204,8 +7174,6 @@ snapshots: '@rushstack/eslint-patch@1.16.1': {} - '@scarf/scarf@1.4.0': {} - '@shikijs/core@3.23.0': dependencies: '@shikijs/types': 3.23.0 @@ -7447,8 +7415,6 @@ snapshots: '@types/mime-types@3.0.1': {} - '@types/mime@1.3.5': {} - '@types/mocha@10.0.10': {} '@types/ms@2.1.0': {} @@ -7502,21 +7468,10 @@ snapshots: '@types/semver@7.7.1': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 25.7.0 - '@types/send@1.2.1': dependencies: '@types/node': 25.7.0 - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 25.7.0 - '@types/send': 0.17.4 - '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 @@ -7540,11 +7495,6 @@ snapshots: '@types/methods': 1.1.4 '@types/superagent': 8.1.9 - '@types/swagger-ui-express@4.1.8': - dependencies: - '@types/express': 5.0.6 - '@types/serve-static': 1.15.7 - '@types/tar@6.1.13': dependencies: '@types/node': 25.7.0 @@ -8769,10 +8719,10 @@ snapshots: '@rushstack/eslint-patch': 1.16.1 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0)(typescript@6.0.3) '@typescript-eslint/parser': 7.18.0(eslint@10.4.0)(typescript@6.0.3) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.4.0) eslint-plugin-cypress: 2.15.2(eslint@10.4.0) eslint-plugin-eslint-comments: 3.2.0(eslint@10.4.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0))(eslint@10.4.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.4.0) eslint-plugin-mocha: 10.5.0(eslint@10.4.0) eslint-plugin-n: 17.24.0(eslint@10.4.0)(typescript@6.0.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@10.4.0) @@ -8793,7 +8743,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0): + eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0)(eslint@10.4.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -8804,18 +8754,18 @@ snapshots: stable-hash: 0.0.5 tinyglobby: 0.2.16 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0))(eslint@10.4.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.4.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0))(eslint@10.4.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.4.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@10.4.0)(typescript@6.0.3) eslint: 10.4.0 eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0) + eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.32.0)(eslint@10.4.0) transitivePeerDependencies: - supports-color @@ -8837,7 +8787,7 @@ snapshots: eslint: 10.4.0 ignore: 5.3.2 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0))(eslint@10.4.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.9.1)(eslint@10.4.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8848,7 +8798,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.4.0 eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0))(eslint@10.4.0))(eslint@10.4.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@10.4.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.9.1)(eslint@10.4.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11366,15 +11316,6 @@ snapshots: swagger-schema-official@2.0.0-bab6bed: {} - swagger-ui-dist@5.20.6: - dependencies: - '@scarf/scarf': 1.4.0 - - swagger-ui-express@5.0.1(express@5.2.1): - dependencies: - express: 5.2.1 - swagger-ui-dist: 5.20.6 - symbol-tree@3.2.4: {} tabbable@6.4.0: {} diff --git a/settings.json.template b/settings.json.template index e88e82a36..baae8110d 100644 --- a/settings.json.template +++ b/settings.json.template @@ -417,6 +417,17 @@ "updateServer": "https://etherpad.org/ep_infos", + /* + * Outbound network calls. See PRIVACY.md for what each one sends. + * - updateCheck=false : disables hourly version check (UpdateCheck.ts) + * - pluginCatalog=false: disables admin plugin browser + * (manual install-by-name via CLI still works) + */ + "privacy": { + "updateCheck": true, + "pluginCatalog": true + }, + /* * Should we suppress errors from being visible in the default Pad Text? */ diff --git a/src/locales/en.json b/src/locales/en.json index f9ca67282..7d51f13b2 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -61,6 +61,7 @@ "admin_plugins.available_search.placeholder": "Search for plugins to install", "admin_plugins.check_updates": "Check for updates", "admin_plugins.core_count": "{{count}} core", + "admin_plugins.catalog_disabled": "Plugin catalog is disabled by your operator (privacy.pluginCatalog=false). To install a plugin, run `pnpm run plugins i ep_` from the server.", "admin_plugins.crumbs": "Plugins", "admin_plugins.description": "Description", "admin_plugins.disables.label": "Disables:", diff --git a/src/node/handler/RestAPI.ts b/src/node/handler/RestAPI.ts index 1e3427eb7..066c2d596 100644 --- a/src/node/handler/RestAPI.ts +++ b/src/node/handler/RestAPI.ts @@ -5,8 +5,8 @@ import {ErrorCaused} from "../types/ErrorCaused"; import createHTTPError from "http-errors"; const apiHandler = require('./APIHandler') -import {serve, setup} from 'swagger-ui-express' import express from "express"; +import path from "path"; import settings from '../utils/Settings'; @@ -1437,12 +1437,9 @@ export const expressCreateServer = async (hookName: string, {app}: ArgsExpressTy } - app.use('/api-docs', serve); - app.get('/api-docs', setup(undefined, { - swaggerOptions: { - url: '/api-docs.json', - }, - })); + app.get('/api-docs', (_req, res) => { + res.sendFile(path.join(settings.root, 'src', 'static', 'api-docs.html')); + }); app.use(express.json()); diff --git a/src/node/hooks/express/adminplugins.ts b/src/node/hooks/express/adminplugins.ts index 47f06c513..c523362ac 100644 --- a/src/node/hooks/express/adminplugins.ts +++ b/src/node/hooks/express/adminplugins.ts @@ -9,6 +9,7 @@ import {PackageData, PackageInfo} from "../../types/PackageInfo"; import semver from 'semver'; import log4js from 'log4js'; import {MapArrayType} from "../../types/MapType"; +import settings from "../../utils/Settings"; const pluginDefs = require('../../../static/js/pluginfw/plugin_defs'); const logger = log4js.getLogger('adminPlugins'); @@ -49,31 +50,43 @@ exports.socketio = (hookName:string, args:ArgsExpressType, cb:Function) => { const installed = Object.keys(pluginDefs.plugins).map((plugin) => pluginDefs.plugins[plugin].package); - const updatable = await checkPluginForUpdates(); - - installed.forEach((plugin) => { - plugin.updatable = updatable.includes(plugin.name); - }) + if (settings.privacy.pluginCatalog) { + const updatable = await checkPluginForUpdates(); + installed.forEach((plugin) => { + plugin.updatable = updatable.includes(plugin.name); + }) + } + // When the catalog is disabled, `updatable` simply stays unset on + // each installed plugin — the admin UI renders no "update available" + // badge, which is correct. socket.emit('results:installed', {installed}); }); socket.on('checkUpdates', async () => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } // Check plugins for updates try { - const updatable = checkPluginForUpdates(); + const updatable = await checkPluginForUpdates(); socket.emit('results:updatable', {updatable}); } catch (err) { const errc = err as ErrorCaused console.warn(errc.stack || errc.toString()); - socket.emit('results:updatable', {updatable: {}}); + socket.emit('results:updatable', {updatable: []}); } }); socket.on('getAvailable', async (query:string) => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } try { const results = await getAvailablePlugins(/* maxCacheAge:*/ false); socket.emit('results:available', results); @@ -84,6 +97,10 @@ exports.socketio = (hookName:string, args:ArgsExpressType, cb:Function) => { }); socket.on('search', async (query: QueryType) => { + if (!settings.privacy.pluginCatalog) { + socket.emit('results:catalogDisabled'); + return; + } try { if (query.searchTerm) logger.info(`Plugin search: ${query.searchTerm}'`); const results = await search(query.searchTerm, /* maxCacheAge:*/ 60 * 10); diff --git a/src/node/utils/Settings.ts b/src/node/utils/Settings.ts index 974130041..230ffcbcd 100644 --- a/src/node/utils/Settings.ts +++ b/src/node/utils/Settings.ts @@ -193,6 +193,10 @@ export type SettingsType = { learnMoreUrl: string | null, dismissal: 'dismissible' | 'sticky', }, + privacy: { + updateCheck: boolean, + pluginCatalog: boolean, + }, skinName: string | null, skinVariants: string, ip: string, @@ -425,6 +429,14 @@ const settings: SettingsType = { learnMoreUrl: null, dismissal: 'dismissible', }, + privacy: { + // Outbound calls. See PRIVACY.md. + // Set to false to disable hourly version check (UpdateCheck.ts). + updateCheck: true, + // Set to false to disable plugin-catalog fetch from updateServer + // (installer.ts). Manual install via CLI still works. + pluginCatalog: true, + }, /* * Skin name. * diff --git a/src/node/utils/UpdateCheck.ts b/src/node/utils/UpdateCheck.ts index 611e98820..1208e37fc 100644 --- a/src/node/utils/UpdateCheck.ts +++ b/src/node/utils/UpdateCheck.ts @@ -13,6 +13,7 @@ type Infos = { const updateInterval = 60 * 60 * 1000; // 1 hour let infos: Infos; let lastLoadingTime: number | null = null; +let loggedDisabled = false; const loadEtherpadInformations = () => { if (lastLoadingTime !== null && Date.now() - lastLoadingTime < updateInterval) { @@ -38,6 +39,7 @@ const loadEtherpadInformations = () => { export const getLatestVersion = () => { + if (!settings.privacy.updateCheck) return undefined; needsUpdate().catch(); return infos?.latestVersion; }; @@ -55,6 +57,13 @@ const needsUpdate = async (cb?: Function) => { }; export const check = () => { + if (!settings.privacy.updateCheck) { + if (!loggedDisabled) { + console.info('Update check disabled by privacy.updateCheck=false (see PRIVACY.md)'); + loggedDisabled = true; + } + return; + } needsUpdate((needsUpdate: boolean) => { if (needsUpdate) { console.warn(`Update available: Download the actual version ${infos.latestVersion}`); diff --git a/src/package.json b/src/package.json index 8a5bd8431..0e648d81f 100644 --- a/src/package.json +++ b/src/package.json @@ -83,7 +83,6 @@ "socket.io-client": "^4.8.3", "superagent": "10.3.0", "surrealdb": "^2.0.3", - "swagger-ui-express": "^5.0.1", "tinycon": "0.6.8", "tsx": "4.22.0", "ueberdb2": "^5.0.48", @@ -119,7 +118,6 @@ "@types/semver": "^7.7.1", "@types/sinon": "^21.0.1", "@types/supertest": "^7.2.0", - "@types/swagger-ui-express": "^4.1.8", "@types/underscore": "^1.13.0", "@types/whatwg-mimetype": "^5.0.0", "chokidar": "^5.0.0", diff --git a/src/static/api-docs.html b/src/static/api-docs.html new file mode 100644 index 000000000..d4abf3fd2 --- /dev/null +++ b/src/static/api-docs.html @@ -0,0 +1,33 @@ + + + + + Etherpad API + + + + + +
+ + + + diff --git a/src/static/js/pluginfw/installer.ts b/src/static/js/pluginfw/installer.ts index eb65a503d..ad1f8dcfc 100644 --- a/src/static/js/pluginfw/installer.ts +++ b/src/static/js/pluginfw/installer.ts @@ -17,6 +17,7 @@ import settings, { reloadSettings } from '../../../node/utils/Settings'; import {LinkInstaller} from "./LinkInstaller"; +import {assertPluginCatalogEnabled} from "./pluginCatalogGuard"; import { checkEngineCompatibility, EngineIncompatibleError, @@ -199,6 +200,7 @@ export let availablePlugins:MapArrayType|null = null; let cacheTimestamp = 0; export const getAvailablePlugins = async (maxCacheAge: number | false) => { + assertPluginCatalogEnabled(); const nowTimestamp = Math.round(Date.now() / 1000); // check cache age before making any request diff --git a/src/static/js/pluginfw/pluginCatalogGuard.ts b/src/static/js/pluginfw/pluginCatalogGuard.ts new file mode 100644 index 000000000..66b5aba4b --- /dev/null +++ b/src/static/js/pluginfw/pluginCatalogGuard.ts @@ -0,0 +1,11 @@ +'use strict'; + +import settings from '../../../node/utils/Settings'; + +export const assertPluginCatalogEnabled = () => { + if (!settings.privacy.pluginCatalog) { + throw new Error( + 'Plugin catalog disabled by privacy.pluginCatalog=false (see PRIVACY.md)' + ); + } +}; diff --git a/src/static/vendor/scalar/LICENSE b/src/static/vendor/scalar/LICENSE new file mode 100644 index 000000000..05ee3dd23 --- /dev/null +++ b/src/static/vendor/scalar/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present Scalar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/static/vendor/scalar/VERSION b/src/static/vendor/scalar/VERSION new file mode 100644 index 000000000..84646b550 --- /dev/null +++ b/src/static/vendor/scalar/VERSION @@ -0,0 +1,3 @@ +@scalar/api-reference 1.57.2 (standalone bundle) - vendored 2026-05-16 +source: https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.57.2/dist/browser/standalone.js +sha256: 538bea0c451ae72ca26242244491a35b3bee4e1ba282f0076f454a68b83788e5 diff --git a/src/static/vendor/scalar/standalone.js b/src/static/vendor/scalar/standalone.js new file mode 100644 index 000000000..bf5c10d58 --- /dev/null +++ b/src/static/vendor/scalar/standalone.js @@ -0,0 +1,2364 @@ +/** + * _____ _________ __ ___ ____ + * / ___// ____/ | / / / | / __ \ + * \__ \/ / / /| | / / / /| | / /_/ / + * ___/ / /___/ ___ |/ /___/ ___ |/ _, _/ + * /____/\____/_/ |_/_____/_/ |_/_/ |_| + * + * @scalar/api-reference 1.57.2 + * + * Website: https://scalar.com + * GitHub: https://github.com/scalar/scalar + * License: https://github.com/scalar/scalar/blob/main/LICENSE +**/ + +(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@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-font-weight:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia: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:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-mask-linear:linear-gradient(#fff, #fff);--tw-mask-radial:linear-gradient(#fff, #fff);--tw-mask-conic:linear-gradient(#fff, #fff);--tw-mask-left:linear-gradient(#fff, #fff);--tw-mask-right:linear-gradient(#fff, #fff);--tw-mask-bottom:linear-gradient(#fff, #fff);--tw-mask-top:linear-gradient(#fff, #fff);--tw-mask-top-from-position:0%;--tw-mask-top-to-position:100%;--tw-mask-top-from-color:black;--tw-mask-top-to-color:transparent;--tw-mask-bottom-from-position:0%;--tw-mask-bottom-to-position:100%;--tw-mask-bottom-from-color:black;--tw-mask-bottom-to-color:transparent;--tw-leading:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}[data-v-b258a15f],[data-v-b258a15f]:before,[data-v-b258a15f]:after,[data-v-b258a15f]::backdrop{--tw-outline-style:solid}}}@layer scalar-base{body{line-height:inherit;margin:0}:root{--scalar-border-width:.5px;--scalar-radius:3px;--scalar-radius-lg:6px;--scalar-radius-xl:8px;--scalar-font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--scalar-font-code:"JetBrains Mono", ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace;--scalar-heading-1:24px;--scalar-page-description:16px;--scalar-heading-2:20px;--scalar-heading-3:16px;--scalar-heading-4:16px;--scalar-heading-5:16px;--scalar-heading-6:16px;--scalar-paragraph:16px;--scalar-small:14px;--scalar-mini:13px;--scalar-micro:12px;--scalar-bold:600;--scalar-semibold:500;--scalar-regular:400;--scalar-font-size-1:21px;--scalar-font-size-2:16px;--scalar-font-size-3:14px;--scalar-font-size-4:13px;--scalar-font-size-5:12px;--scalar-font-size-6:12px;--scalar-font-size-7:10px;--scalar-line-height-1:32px;--scalar-line-height-2:24px;--scalar-line-height-3:20px;--scalar-line-height-4:18px;--scalar-line-height-5:16px;--scalar-font-normal:400;--scalar-font-medium:500;--scalar-font-bold:700;--scalar-text-decoration:none;--scalar-text-decoration-hover:underline;--scalar-link-font-weight:inherit;--scalar-sidebar-indent:20px;--scalar-sidebar-padding:12px}.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--scalar-scrollbar-color:#ffffff2e;--scalar-scrollbar-color-active:#ffffff5c;--scalar-button-1:#fff;--scalar-button-1-hover:#ffffffe6;--scalar-button-1-color:black;--scalar-shadow-1:0 1px 3px 0 #0000001a;--scalar-shadow-2:0 0 0 .5px var(--scalar-border-color), #0f0f0f33 0px 3px 6px, #0f0f0f66 0px 9px 24px;--scalar-lifted-brightness:1.45;--scalar-backdrop-brightness:.5;--scalar-text-decoration-color:currentColor;--scalar-text-decoration-color-hover:currentColor}.light-mode{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--scalar-scrollbar-color-active:#0000005c;--scalar-scrollbar-color:#0000002e;--scalar-button-1:#000;--scalar-button-1-hover:#000c;--scalar-button-1-color:#ffffffe6;--scalar-shadow-1:0 1px 3px 0 #0000001c;--scalar-shadow-2:#00000014 0px 13px 20px 0px, #00000014 0px 3px 8px 0px, #eeeeed 0px 0 0 .5px;--scalar-lifted-brightness:1;--scalar-backdrop-brightness:1;--scalar-text-decoration-color:currentColor;--scalar-text-decoration-color-hover:currentColor}.light-mode .dark-mode{--lightningcss-light: !important;--lightningcss-dark:initial!important;color-scheme:dark!important}@media (width<=460px){:root{--scalar-font-size-1:22px;--scalar-font-size-2:14px;--scalar-font-size-3:12px}}@media (width<=720px){:root{--scalar-heading-1:24px;--scalar-page-description:20px}}:root{--scalar-text-decoration:underline;--scalar-text-decoration-hover:underline}.light-mode{--scalar-background-1:#fff;--scalar-background-2:#f6f6f6;--scalar-background-3:#e7e7e7;--scalar-background-accent:#8ab4f81f;--scalar-color-1:#1b1b1b;--scalar-color-2:#757575;--scalar-color-3:#8e8e8e;--scalar-color-accent:#09f;--scalar-border-color:#dfdfdf}.dark-mode{--scalar-background-1:#0f0f0f;--scalar-background-2:#1a1a1a;--scalar-background-3:#272727;--scalar-color-1:#e7e7e7;--scalar-color-2:#a4a4a4;--scalar-color-3:#797979;--scalar-color-accent:#00aeff;--scalar-background-accent:#3ea6ff1f;--scalar-border-color:#2d2d2d}.light-mode,.dark-mode{--scalar-sidebar-background-1:var(--scalar-background-1);--scalar-sidebar-color-1:var(--scalar-color-1);--scalar-sidebar-color-2:var(--scalar-color-2);--scalar-sidebar-border-color:var(--scalar-border-color);--scalar-sidebar-item-hover-background:var(--scalar-background-2);--scalar-sidebar-item-hover-color:var(--scalar-sidebar-color-2);--scalar-sidebar-item-active-background:var(--scalar-background-2);--scalar-sidebar-color-active:var(--scalar-sidebar-color-1);--scalar-sidebar-indent-border:var(--scalar-sidebar-border-color);--scalar-sidebar-indent-border-hover:var(--scalar-sidebar-border-color);--scalar-sidebar-indent-border-active:var(--scalar-sidebar-border-color);--scalar-sidebar-search-background:var(--scalar-background-2)}@supports (color:color-mix(in lab, red, red)){.light-mode,.dark-mode{--scalar-sidebar-search-background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1))}}.light-mode,.dark-mode{--scalar-sidebar-search-color:var(--scalar-color-3);--scalar-sidebar-search-border-color:var(--scalar-border-color)}.light-mode{--scalar-color-green:#069061;--scalar-color-red:#ef0006;--scalar-color-yellow:#edbe20;--scalar-color-blue:#0082d0;--scalar-color-orange:#ff5800;--scalar-color-purple:#5203d1;--scalar-link-color:var(--scalar-color-1);--scalar-link-color-hover:var(--scalar-link-color);--scalar-button-1:#000;--scalar-button-1-hover:#000c;--scalar-button-1-color:#ffffffe6;--scalar-tooltip-background:#1a1a1ae6;--scalar-tooltip-color:#ffffffd9;--scalar-color-alert:var(--scalar-color-orange)}@supports (color:color-mix(in lab, red, red)){.light-mode{--scalar-color-alert:color-mix(in srgb, var(--scalar-color-orange), var(--scalar-color-1) 20%)}}.light-mode{--scalar-color-danger:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.light-mode{--scalar-color-danger:color-mix(in srgb, var(--scalar-color-red), var(--scalar-color-1) 20%)}}.light-mode{--scalar-background-alert:var(--scalar-color-orange)}@supports (color:color-mix(in lab, red, red)){.light-mode{--scalar-background-alert:color-mix(in srgb, var(--scalar-color-orange), var(--scalar-background-1) 95%)}}.light-mode{--scalar-background-danger:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.light-mode{--scalar-background-danger:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}}.dark-mode{--scalar-color-green:#00b648;--scalar-color-red:#dc1b19;--scalar-color-yellow:#ffc90d;--scalar-color-blue:#4eb3ec;--scalar-color-orange:#ff8d4d;--scalar-color-purple:#b191f9;--scalar-link-color:var(--scalar-color-1);--scalar-link-color-hover:var(--scalar-link-color);--scalar-button-1:#fff;--scalar-button-1-hover:#ffffffe6;--scalar-button-1-color:black;--scalar-tooltip-background:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.dark-mode{--scalar-tooltip-background:color-mix(in srgb, var(--scalar-background-1), #fff 10%)}}.dark-mode{--scalar-tooltip-color:#fffffff2;--scalar-color-danger:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.dark-mode{--scalar-color-danger:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 20%)}}.dark-mode{--scalar-background-alert:var(--scalar-color-orange)}@supports (color:color-mix(in lab, red, red)){.dark-mode{--scalar-background-alert:color-mix(in srgb, var(--scalar-color-orange), var(--scalar-background-1) 95%)}}.dark-mode{--scalar-background-danger:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.dark-mode{--scalar-background-danger:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}}@supports (color:color(display-p3 1 1 1)){.light-mode{--scalar-color-accent:color(display-p3 0 .6 1);--scalar-color-green:color(display-p3 .023529 .564706 .380392);--scalar-color-red:color(display-p3 .937255 0 .023529);--scalar-color-yellow:color(display-p3 .929412 .745098 .12549);--scalar-color-blue:color(display-p3 0 .509804 .815686);--scalar-color-orange:color(display-p3 1 .4 .02);--scalar-color-purple:color(display-p3 .321569 .011765 .819608)}.dark-mode{--scalar-color-accent:color(display-p3 .07 .67 1);--scalar-color-green:color(display-p3 0 .713725 .282353);--scalar-color-red:color(display-p3 .862745 .105882 .098039);--scalar-color-yellow:color(display-p3 1 .788235 .05098);--scalar-color-blue:color(display-p3 .305882 .701961 .92549);--scalar-color-orange:color(display-p3 1 .552941 .301961);--scalar-color-purple:color(display-p3 .694118 .568627 .976471)}}:root,:host{--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}body{background-color:var(--scalar-background-1);margin:0}}@layer scalar-theme;:where(.scalar-app){font-family:var(--scalar-font);color:var(--scalar-color-1);-webkit-text-size-adjust:100%;tab-size:4;line-height:1.15}:where(.scalar-app) *,:where(.scalar-app) :before,:where(.scalar-app) :after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--scalar-border-color);outline-width:1px;outline-style:none;outline-color:var(--scalar-color-accent);font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;text-align:inherit;line-height:inherit;color:inherit;margin:unset;padding:unset;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(.scalar-app) :before,:where(.scalar-app) :after{--tw-content:""}:where(.scalar-app) button,:where(.scalar-app) input,:where(.scalar-app) optgroup,:where(.scalar-app) select,:where(.scalar-app) textarea{background:0 0}:where(.scalar-app) ::file-selector-button{background:0 0}:where(.scalar-app) ol,:where(.scalar-app) ul,:where(.scalar-app) menu{list-style:none}:where(.scalar-app) input:where(:not([type=button],[type=reset],[type=submit])),:where(.scalar-app) select,:where(.scalar-app) textarea{border-radius:var(--scalar-radius);border-width:1px}:where(.scalar-app) input::placeholder{color:var(--scalar-color-3);font-family:var(--scalar-font)}:where(.scalar-app) input[type=search]::-webkit-search-cancel-button{appearance:none}:where(.scalar-app) input[type=search]::-webkit-search-decoration{appearance:none}:where(.scalar-app) summary::-webkit-details-marker{display:none}:where(.scalar-app) input:-webkit-autofill{-webkit-background-clip:text!important;background-clip:text!important}:where(.scalar-app) :focus-visible{border-radius:var(--scalar-radius);outline-style:solid}:where(.scalar-app) button:focus-visible,:where(.scalar-app) [role=button]:focus-visible{outline-offset:-1px}:where(.scalar-app) button,:where(.scalar-app) [role=button]{cursor:pointer}:where(.scalar-app) :disabled{cursor:default}:where(.scalar-app) img,:where(.scalar-app) svg,:where(.scalar-app) video,:where(.scalar-app) canvas,:where(.scalar-app) audio,:where(.scalar-app) iframe,:where(.scalar-app) embed,:where(.scalar-app) object{vertical-align:middle;display:block}:where(.scalar-app) [hidden]{display:none}.scalar-app .cm-scroller,.scalar-app .custom-scroll{scrollbar-color:transparent transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overflow-y:auto}.scalar-app .custom-scroll-self-contain-overflow{overscroll-behavior:contain}.scalar-app .cm-scroller:hover,.scalar-app .custom-scroll:hover,.scalar-app.scalar-scrollbars-obtrusive .cm-scroller,.scalar-app.scalar-scrollbars-obtrusive .custom-scroll{scrollbar-color:var(--scalar-scrollbar-color,transparent) transparent}.scalar-app .cm-scroller:hover::-webkit-scrollbar-thumb{background:var(--scalar-scrollbar-color);background-clip:content-box;border:3px solid #0000}.scalar-app .custom-scroll:hover::-webkit-scrollbar-thumb{background:var(--scalar-scrollbar-color);background-clip:content-box;border:3px solid #0000}.scalar-app .cm-scroller::-webkit-scrollbar-thumb:active{background:var(--scalar-scrollbar-color-active);background-clip:content-box;border:3px solid #0000}.scalar-app .custom-scroll::-webkit-scrollbar-thumb:active{background:var(--scalar-scrollbar-color-active);background-clip:content-box;border:3px solid #0000}.scalar-app .cm-scroller::-webkit-scrollbar-corner{background:0 0}.scalar-app .custom-scroll::-webkit-scrollbar-corner{background:0 0}.scalar-app .cm-scroller::-webkit-scrollbar{width:12px;height:12px}.scalar-app .custom-scroll::-webkit-scrollbar{width:12px;height:12px}.scalar-app .cm-scroller::-webkit-scrollbar-track{background:0 0}.scalar-app .custom-scroll::-webkit-scrollbar-track{background:0 0}.scalar-app .cm-scroller::-webkit-scrollbar-thumb{background:padding-box content-box;border:3px solid #0000;border-radius:20px}.scalar-app .custom-scroll::-webkit-scrollbar-thumb{background:padding-box content-box;border:3px solid #0000;border-radius:20px}@media (pointer:coarse){.scalar-app .cm-scroller,.scalar-app .custom-scroll{padding-right:12px}}:where(.scalar-app) [class*=rotate-],:where(.scalar-app) [class*=translate-],:where(.scalar-app) [class*=scale-]{transform:none}.loader-wrapper[data-v-27df5cd8]{--loader-size:50%;justify-content:center;align-items:center;display:flex;position:relative}.svg-loader[data-v-27df5cd8]{width:var(--loader-size);height:var(--loader-size);fill:none;stroke:currentColor;background-color:#0000;top:1rem;right:.9rem;overflow:visible}.svg-path[data-v-27df5cd8]{stroke-width:12px;fill:none;transition:all .3s}.svg-x-mark[data-v-27df5cd8]{stroke-dasharray:57;stroke-dashoffset:57px;transition-delay:0s}.svg-check-mark[data-v-27df5cd8]{stroke-dasharray:149;stroke-dashoffset:149px;transition-delay:0s}.icon-is-invalid .svg-x-mark[data-v-27df5cd8],.icon-is-valid .svg-check-mark[data-v-27df5cd8]{stroke-dashoffset:0;transition-delay:.3s}.circular-loader[data-v-27df5cd8]{transform-origin:50%;background:0 0;animation:.7s linear infinite rotate-27df5cd8,.4s fade-in-27df5cd8;transform:scale(3.5)}.loader-path[data-v-27df5cd8]{stroke-dasharray:50 200;stroke-dashoffset:-100px;stroke-linecap:round}.loader-path-off[data-v-27df5cd8]{stroke-dasharray:50 200;stroke-dashoffset:-100px;opacity:0;transition:opacity .3s}@keyframes fade-in-27df5cd8{0%{opacity:0}70%{opacity:0}to{opacity:1}}@keyframes rotate-27df5cd8{0%{transform:scale(3.5)rotate(0)}to{transform:scale(3.5)rotate(360deg)}}.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop{background-color:var(--scalar-background-1)}.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop{background-color:var(--scalar-background-2)}.scalar-code-block.bg-b-2 .scalar-code-copy{background-color:var(--scalar-background-3)}.toggle-icon-ellipse[data-v-60be8692]{background:var(--scalar-background-1);border-radius:50%;width:7px;height:7px;transition:width .3s ease-in-out,height .3s ease-in-out;display:inline-block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px}.toggle-icon-moon-mask[data-v-60be8692]{background:var(--scalar-background-1);border:1px solid;border-radius:50%;width:100%;height:100%;transition:transform .3s ease-in-out;display:block;position:absolute;bottom:2.5px;left:2.5px;transform:translate(4px,-4px)}.toggle-icon-sun-ray[data-v-60be8692]{background:currentColor;border-radius:8px;width:12px;height:1px;transition:transform .3s ease-in-out;position:absolute}.toggle-icon-sun-ray[data-v-60be8692]:nth-of-type(2){transform:rotate(90deg)}.toggle-icon-sun-ray[data-v-60be8692]:nth-of-type(3){transform:rotate(45deg)}.toggle-icon-sun-ray[data-v-60be8692]:nth-of-type(4){transform:rotate(-45deg)}.toggle-icon-dark .toggle-icon-ellipse[data-v-60be8692]{width:10px;height:10px;-webkit-mask-image:radial-gradient(circle at 0 100%,pink 10px,#0000 12px);mask-image:radial-gradient(circle at 0 100%,pink 10px,#0000 12px)}.toggle-icon-dark .toggle-icon-sun-ray[data-v-60be8692]{transform:scale(0)}.toggle-icon-dark .toggle-icon-moon-mask[data-v-60be8692]{transform:translate(0)}.dark-mode .scalar-dropdown-item[data-v-f5e0d3d8]:hover,.dark-mode .scalar-dropdown-item[data-highlighted][data-v-f5e0d3d8],.dark-mode .scalar-dropdown-item[data-v-3402682d]:hover{filter:brightness(1.1)}.scalar-icon[data-v-b651bb23],.scalar-icon[data-v-b651bb23] *{stroke-width:var(--c07589c2)}.scalar-app :where(code.hljs) *{font-size:inherit;font-family:var(--scalar-font-code);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;tab-size:4;line-height:1.4}.scalar-app code.hljs{all:unset;font-size:inherit;color:var(--scalar-color-2);font-family:var(--scalar-font-code);counter-reset:linenumber}.scalar-app .hljs{color:var(--scalar-color-2);background:0 0}.scalar-app .hljs .line:before{color:var(--scalar-color-3);counter-increment:linenumber;content:counter(linenumber);min-width:calc(var(--line-digits) * 1ch);text-align:right;margin-right:.875rem;display:inline-block}.scalar-app .hljs-comment,.scalar-app .hljs-quote{color:var(--scalar-color-3);font-style:italic}.scalar-app .hljs-number{color:var(--scalar-color-orange)}.scalar-app .hljs-regexp,.scalar-app .hljs-string,.scalar-app .hljs-built_in{color:var(--scalar-color-blue)}.scalar-app .hljs-title.class_{color:var(--scalar-color-1)}.scalar-app .hljs-keyword{color:var(--scalar-color-purple)}.scalar-app .hljs-title.function_{color:var(--scalar-color-orange)}.scalar-app .hljs-subst,.scalar-app .hljs-name{color:var(--scalar-color-blue)}.scalar-app .hljs-attr,.scalar-app .hljs-attribute{color:var(--scalar-color-1)}.scalar-app .hljs-addition,.scalar-app .hljs-literal,.scalar-app .hljs-selector-tag,.scalar-app .hljs-type{color:var(--scalar-color-green)}.scalar-app .hljs-selector-attr,.scalar-app .hljs-selector-pseudo{color:var(--scalar-color-orange)}.scalar-app .hljs-doctag,.scalar-app .hljs-section,.scalar-app .hljs-title{color:var(--scalar-color-blue)}.scalar-app .hljs-selector-id,.scalar-app .hljs-template-variable,.scalar-app .hljs-variable{color:var(--scalar-color-1)}.scalar-app .hljs-name,.scalar-app .hljs-section,.scalar-app .hljs-strong{font-weight:var(--scalar-semibold)}.scalar-app .hljs-bullet,.scalar-app .hljs-link,.scalar-app .hljs-meta,.scalar-app .hljs-symbol{color:var(--scalar-color-blue)}.scalar-app .hljs-deletion{color:var(--scalar-color-red)}.scalar-app .hljs-formula{background:var(--scalar-color-1)}.scalar-app .hljs-emphasis{font-style:italic}.scalar-app .credential .credential-value{color:#0000;font-size:0}.scalar-app .credential:after{content:"·····";color:var(--scalar-color-3);-webkit-user-select:none;user-select:none}.hljs.language-html{color:var(--scalar-color-1)}.hljs.language-html .hljs-attr{color:var(--scalar-color-2)}.hljs.language-curl .hljs-string{color:var(--scalar-color-blue)}.hljs.language-curl .hljs-literal{color:var(--scalar-color-1)}.hljs.language-php .hljs-variable{color:var(--scalar-color-blue)}.hljs.language-objectivec .hljs-meta{color:var(--scalar-color-1)}.hljs.language-objectivec .hljs-built_in,.hljs-built_in{color:var(--scalar-color-orange)}.scalar-app .markdown{--scalar-refs-heading-spacing:24px;--markdown-border:var(--scalar-border-width) solid var(--scalar-border-color);--markdown-spacing-sm:12px;--markdown-spacing-md:16px;--markdown-line-height:1.625;--markdown-heading-line-height:1.15;font-family:var(--scalar-font);word-break:break-word;line-height:var(--markdown-line-height)}.scalar-app .markdown>*{margin-bottom:var(--markdown-spacing-md)}.scalar-app .markdown>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):last-child{margin-bottom:0}.scalar-app .markdown h1,.scalar-app .markdown h2,.scalar-app .markdown h3,.scalar-app .markdown h4,.scalar-app .markdown h5,.scalar-app .markdown h6{font-weight:var(--scalar-bold);margin-top:var(--scalar-refs-heading-spacing);margin-bottom:var(--markdown-spacing-sm);line-height:var(--markdown-heading-line-height,1.15);scroll-margin-top:1rem;display:block}.scalar-app .markdown h1{font-size:1.5rem}.scalar-app .markdown h2,.scalar-app .markdown h3{font-size:1.25rem}.scalar-app .markdown h4,.scalar-app .markdown h5,.scalar-app .markdown h6{font-size:1rem}.scalar-app .markdown b,.scalar-app .markdown strong{font-weight:var(--scalar-bold)}.scalar-app .markdown p{color:inherit;line-height:var(--markdown-line-height);display:block}.scalar-app .markdown img{border-radius:var(--scalar-radius);max-width:100%;display:inline-block;overflow:hidden}.scalar-app .markdown ul,.scalar-app .markdown ol{line-height:var(--markdown-line-height);flex-direction:column;gap:2px;padding-left:1.6em;display:flex}.scalar-app .markdown li{margin-top:2px;padding-left:7px}.scalar-app ol>li::marker{font:var(--scalar-font);font-variant-numeric:tabular-nums;font-weight:var(--scalar-semibold);white-space:nowrap}.scalar-app ol>*>li::marker{font:var(--scalar-font);font-variant-numeric:tabular-nums;font-weight:var(--scalar-semibold);white-space:nowrap}.scalar-app .markdown ol{list-style-type:decimal}.scalar-app .markdown ol ol{list-style-type:lower-alpha}.scalar-app .markdown ol ol ol ol,.scalar-app .markdown ol ol ol ol ol ol ol{list-style-type:decimal}.scalar-app .markdown ol ol ol ol ol,.scalar-app .markdown ol ol ol ol ol ol ol ol{list-style-type:lower-alpha}.scalar-app .markdown ol ol ol,.scalar-app .markdown ol ol ol ol ol ol,.scalar-app .markdown ol ol ol ol ol ol ol ol ol{list-style-type:lower-roman}.scalar-app .markdown ul>li,.scalar-app .markdown ul>*>li{list-style-type:disc}.scalar-app .markdown table{table-layout:fixed;border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius);border-spacing:0;width:max-content;max-width:100%;margin:1em 0;display:table;position:relative;overflow-x:auto}.scalar-app .markdown tbody,.scalar-app .markdown thead{vertical-align:middle}.scalar-app .markdown tbody{display:table-row-group}.scalar-app .markdown thead{display:table-header-group}.scalar-app .markdown tr{border-color:inherit;vertical-align:inherit;display:table-row}.scalar-app .markdown td,.scalar-app .markdown th{vertical-align:top;min-width:1em;line-height:var(--markdown-line-height);word-break:break-word;font-size:var(--scalar-small);color:var(--scalar-color-1);border-right:var(--markdown-border);border-bottom:var(--markdown-border);padding:8.5px 16px;display:table-cell;position:relative}.scalar-app .markdown td>*,.scalar-app .markdown th>*{margin-bottom:0}.scalar-app .markdown th:empty{display:none}.scalar-app .markdown td:first-of-type,.scalar-app .markdown th:first-of-type{border-left:none}.scalar-app .markdown td:last-of-type,.scalar-app .markdown th:last-of-type{border-right:none}.scalar-app .markdown tr:last-of-type td{border-bottom:none}.scalar-app .markdown th{font-weight:var(--scalar-bold);text-align:left;background:var(--scalar-background-2);border-left-color:#0000}.scalar-app .markdown th:first-of-type{border-top-left-radius:var(--scalar-radius)}.scalar-app .markdown th:last-of-type{border-top-right-radius:var(--scalar-radius)}.scalar-app .markdown tr>[align=left]{text-align:left}.scalar-app .markdown tr>[align=right]{text-align:right}.scalar-app .markdown tr>[align=center]{text-align:center}.scalar-app .markdown details{border:var(--markdown-border);border-radius:var(--scalar-radius-xl);color:var(--scalar-color-1)}.scalar-app .markdown details>:not(summary){margin:var(--markdown-spacing-md);margin-bottom:0}.scalar-app .markdown details>p:has(>strong):not(:has(:not(strong))){margin-bottom:8px}.scalar-app .markdown details>p:has(>strong):not(:has(:not(strong)))+*{margin-top:0}.scalar-app .markdown details>table{width:calc(100% - calc(var(--markdown-spacing-md) * 2))}.scalar-app .markdown summary{min-height:40px;font-weight:var(--scalar-semibold);line-height:var(--markdown-line-height);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:2.5px;align-items:flex-start;gap:8px;padding:7px 14px;display:flex;position:relative}.scalar-app .markdown summary:hover{background-color:var(--scalar-background-2)}.scalar-app .markdown details[open]{padding-bottom:var(--markdown-spacing-md)}.scalar-app .markdown details[open]>summary{border-bottom:var(--markdown-border);border-bottom-right-radius:0;border-bottom-left-radius:0}.scalar-app .markdown summary:before{content:"";width:var(--markdown-spacing-md);height:var(--markdown-spacing-md);background-color:var(--scalar-color-3);flex-shrink:0;margin-top:5px;display:block;-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.scalar-app .markdown summary:hover:before{background-color:var(--scalar-color-1)}.scalar-app .markdown details[open]>summary:before{transition:transform .1s ease-in-out;transform:rotate(90deg)}.scalar-app .markdown details:has(+details){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.scalar-app .markdown details:has(+details)+details{border-top-left-radius:0;border-top-right-radius:0}.scalar-app .markdown details:has(+details)+details>summary{border-top-left-radius:0;border-top-right-radius:0}.scalar-app .markdown a{--font-color:var(--scalar-link-color,var(--scalar-color-accent));--font-visited:var(--scalar-link-color-visited,var(--scalar-color-2));-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);text-decoration:var(--scalar-text-decoration);color:var(--font-color);font-weight:var(--scalar-link-font-weight,var(--scalar-semibold));text-underline-offset:.25rem;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);text-decoration-color:var(--font-color)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown a{-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent)}}.scalar-app .markdown a:hover{-webkit-text-decoration-color:var(--scalar-color-1,currentColor);-webkit-text-decoration-color:var(--scalar-color-1,currentColor);-webkit-text-decoration-color:var(--scalar-color-1,currentColor);text-decoration-color:var(--scalar-color-1,currentColor);color:var(--scalar-link-color-hover,var(--scalar-color-accent));-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);text-decoration:var(--scalar-text-decoration-hover)}.scalar-app .markdown a:visited{color:var(--font-visited)}.scalar-app .markdown em{font-style:italic}.scalar-app .markdown sup,.scalar-app .markdown sub{font-size:var(--scalar-micro);font-weight:450}.scalar-app .markdown sup{vertical-align:super}.scalar-app .markdown sub{vertical-align:sub}.scalar-app .markdown del{text-decoration:line-through}.scalar-app .markdown code{font-family:var(--scalar-font-code);background-color:var(--scalar-background-2);box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color);font-size:var(--scalar-micro);border-radius:2px;padding:0 3px}.scalar-app .markdown .hljs{font-size:var(--scalar-small)}.scalar-app .markdown pre code{white-space:pre;padding:var(--markdown-spacing-sm);margin:var(--markdown-spacing-sm) 0;-webkit-overflow-scrolling:touch;min-width:100px;max-width:100%;line-height:1.5;display:block;overflow-x:auto}.scalar-app .markdown hr{border:none;border-bottom:var(--markdown-border)}.scalar-app .markdown blockquote{border-left:2px solid var(--scalar-border-color);padding-left:var(--markdown-spacing-sm)}.scalar-app .markdown blockquote>*{margin-bottom:var(--markdown-spacing-sm)}.scalar-app .markdown li.task-list-item{list-style:none;position:relative}.scalar-app .markdown li.task-list-item>input{appearance:none;width:var(--markdown-spacing-md);height:var(--markdown-spacing-md);border:1px solid var(--scalar-color-3);border-radius:var(--scalar-radius);display:inline;position:absolute;top:.225em;left:-1.4em}.scalar-app .markdown li.task-list-item>input[type=checkbox]:checked{background-color:var(--scalar-color-1);border-color:var(--scalar-color-1)}.scalar-app .markdown li.task-list-item>input[type=checkbox]:before{content:"";border:solid var(--scalar-background-1);opacity:0;border-width:0 1.5px 1.5px 0;width:5px;height:10px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.scalar-app .markdown li.task-list-item>input[type=checkbox]:checked:before{opacity:1}.scalar-app .markdown .markdown-alert{border-radius:var(--scalar-radius);background-color:var(--scalar-background-2);align-items:stretch}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert{background-color:color-mix(in srgb, var(--scalar-background-2), transparent)}}.scalar-app .markdown .markdown-alert{border:var(--markdown-border);gap:var(--markdown-spacing-sm);padding:10px 14px;display:flex;position:relative}.scalar-app .markdown .markdown-alert .markdown-alert-icon:before{content:"";background-color:currentColor;flex-shrink:0;width:18px;height:18px;margin-top:3px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.scalar-app .markdown .markdown-alert.markdown-alert-note{background-color:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-note{background-color:color-mix(in srgb, var(--scalar-color-blue), transparent 97%)}}.scalar-app .markdown .markdown-alert.markdown-alert-note{border:var(--scalar-border-width) solid var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-note{border:var(--scalar-border-width) solid color-mix(in srgb, var(--scalar-color-blue), transparent 50%)}}.scalar-app .markdown .markdown-alert.markdown-alert-tip{background-color:var(--scalar-color-2)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-tip{background-color:color-mix(in srgb, var(--scalar-color-2), transparent 97%)}}.scalar-app .markdown .markdown-alert.markdown-alert-tip{border:var(--scalar-border-width) solid var(--scalar-color-2)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-tip{border:var(--scalar-border-width) solid color-mix(in srgb, var(--scalar-color-2), transparent 50%)}}.scalar-app .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon:before,.scalar-app .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon:before{color:var(--scalar-color-blue);-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.scalar-app .markdown .markdown-alert.markdown-alert-important,.scalar-app .markdown .markdown-alert.markdown-alert-warning{background-color:var(--scalar-color-orange)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-important,.scalar-app .markdown .markdown-alert.markdown-alert-warning{background-color:color-mix(in srgb, var(--scalar-color-orange), transparent 97%)}}.scalar-app .markdown .markdown-alert.markdown-alert-important,.scalar-app .markdown .markdown-alert.markdown-alert-warning{border:var(--scalar-border-width) solid var(--scalar-color-orange)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-important,.scalar-app .markdown .markdown-alert.markdown-alert-warning{border:var(--scalar-border-width) solid color-mix(in srgb, var(--scalar-color-orange), transparent 50%)}}.scalar-app .markdown .markdown-alert.markdown-alert-important .markdown-alert-icon:before,.scalar-app .markdown .markdown-alert.markdown-alert-warning .markdown-alert-icon:before{-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.scalar-app .markdown .markdown-alert.markdown-alert-caution{background-color:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-caution{background-color:color-mix(in srgb, var(--scalar-color-red), transparent 97%)}}.scalar-app .markdown .markdown-alert.markdown-alert-caution{border:var(--scalar-border-width) solid var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-caution{border:var(--scalar-border-width) solid color-mix(in srgb, var(--scalar-color-red), transparent 50%)}}.scalar-app .markdown .markdown-alert.markdown-alert-caution .markdown-alert-icon:before{color:var(--scalar-color-red);-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.scalar-app .markdown .markdown-alert.markdown-alert-success{background-color:var(--scalar-color-green)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-success{background-color:color-mix(in srgb, var(--scalar-color-green), transparent 97%)}}.scalar-app .markdown .markdown-alert.markdown-alert-success{border:var(--scalar-border-width) solid var(--scalar-color-green)}@supports (color:color-mix(in lab, red, red)){.scalar-app .markdown .markdown-alert.markdown-alert-success{border:var(--scalar-border-width) solid color-mix(in srgb, var(--scalar-color-green), transparent 50%)}}.scalar-app .markdown .markdown-alert.markdown-alert-success .markdown-alert-icon:before{color:var(--scalar-color-green);-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.scalar-app .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon:before{color:var(--scalar-color-blue)}.scalar-app .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon:before{color:var(--scalar-color-2)}.scalar-app .markdown .markdown-alert.markdown-alert-important .markdown-alert-icon:before{color:var(--scalar-color-purple)}.scalar-app .markdown .markdown-alert.markdown-alert-warning .markdown-alert-icon:before{color:var(--scalar-color-orange)}.scalar-app .markdown .markdown-alert .markdown-alert-content{line-height:var(--markdown-line-height);margin:0}.scalar-app .markdown.markdown-summary.markdown-summary :before,.scalar-app .markdown.markdown-summary.markdown-summary :after{content:none}.scalar-app .markdown.markdown-summary.markdown-summary :not(strong,em,a){font-size:inherit;font-weight:inherit;line-height:var(--markdown-line-height);display:contents}.scalar-app .markdown.markdown-summary.markdown-summary img,.scalar-app .markdown.markdown-summary.markdown-summary svg,.scalar-app .markdown.markdown-summary.markdown-summary hr,.scalar-app .markdown.markdown-summary.markdown-summary pre{display:none}.scalar-modal-layout[data-v-5bb1dcc2]{animation:.3s ease-in-out forwards fadein-layout-5bb1dcc2}.scalar-modal[data-v-5bb1dcc2]{box-shadow:var(--scalar-shadow-2);animation:.3s ease-in-out .1s forwards fadein-modal-5bb1dcc2;transform:translateY(10px)}.scalar-modal-layout-full[data-v-5bb1dcc2]{opacity:1!important;background:0 0!important}.modal-content-search .modal-body[data-v-5bb1dcc2]{flex-direction:column;max-height:440px;padding:0;display:flex;overflow:hidden}@media (width<=720px) and (height<=480px){.scalar-modal-layout .scalar-modal[data-v-5bb1dcc2]{max-height:90svh;margin-top:5svh}}@keyframes fadein-layout-5bb1dcc2{0%{opacity:0}to{opacity:1}}@keyframes fadein-modal-5bb1dcc2{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translate(0)}}.full-size-styles[data-v-5bb1dcc2]{margin:initial;border-right:var(--scalar-border-width) solid var(--scalar-border-color);animation:.3s ease-in-out forwards fadein-layout-5bb1dcc2;left:0;transform:translate(0);background-color:var(--scalar-background-1)!important;max-height:100%!important;box-shadow:none!important;border-radius:0!important;position:absolute!important;top:0!important}@media (width>=800px){.full-size-styles[data-v-5bb1dcc2]{width:50dvw!important}}.full-size-styles[data-v-5bb1dcc2]:after{content:"";width:50dvw;height:100dvh;position:absolute;top:0;right:-50dvw}.group\\/item>*>.scalar-sidebar-indent .scalar-sidebar-indent-border[data-v-3e080c68]{inset-block:-1px}.group\\/item:first-child>*>.scalar-sidebar-indent .scalar-sidebar-indent-border[data-v-3e080c68]{top:0}.group\\/item:last-child>*>.scalar-sidebar-indent .scalar-sidebar-indent-border[data-v-3e080c68]{bottom:0}.group\\/item:last-of-type>.group\\/button>.group\\/button-label>.group\\/button-loading{width:66.6667%}.group\\/items.-translate-x-full .group\\/button{transition-behavior:allow-discrete;max-height:0;transition-property:display,max-height;transition-duration:0s;transition-delay:.3s;display:none}.group\\/item.group\\/nested-items-open>*>.group\\/items.translate-x-0 .group\\/button{max-height:3.40282e38px;display:flex}.animate-sidebar-border-bottom{animation:forwards border-bottom;animation-timeline:scroll();animation-range-end:1px}@keyframes border-bottom{0%{border-bottom-width:0}to{border-bottom-width:var(--scalar-border-width)}}.group\\/sidebar-section:first-of-type>.group\\/spacer-before,.group\\/sidebar-section:last-of-type>.group\\/spacer-after{height:0}.group\\/sidebar-section:has(+.group\\/sidebar-section)>.group\\/spacer-after{height:0;margin-bottom:-1px}:where(body)>.scalar-tooltip{--scalar-tooltip-padding:8px;padding:calc(var(--scalar-tooltip-padding) + var(--scalar-tooltip-offset));z-index:99999;max-width:320px;font-size:var(--scalar-font-size-5);--tw-font-weight:var(--scalar-semibold);line-height:16px;font-weight:var(--scalar-semibold);overflow-wrap:break-word;color:var(--scalar-tooltip-color)}:where(body)>.scalar-tooltip:before{content:"";inset:var(--scalar-tooltip-offset);z-index:calc(1 * -1);border-radius:var(--scalar-radius);background-color:var(--scalar-tooltip-background);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );position:absolute}:where(body.dark-mode)>.scalar-tooltip:before{--tw-shadow:inset 0 0 0 var(--tw-shadow-color,var(--scalar-border-width)) var(--scalar-border-color);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{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}.scalar-virtual-text-search-input[data-v-95edadbb]::-webkit-search-cancel-button{display:none}.scalar-virtual-text[data-v-b50a85e1]:focus{outline:none}.scalar-virtual-text-highlight[data-v-b50a85e1]{background:var(--scalar-background-accent);color:inherit;border-radius:2px;padding:1px 0}.scalar-virtual-text-highlight-active[data-v-b50a85e1]{background:var(--scalar-color-accent);color:var(--scalar-background-1);border-radius:2px}.sidebar-heading-type[data-v-1857170e]{text-transform:uppercase;color:var(--method-color,var(--scalar-color-1));font-size:10px;line-height:14px;font-weight:var(--scalar-bold);font-family:var(--scalar-font-code);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;display:inline-flex;overflow:hidden}.http-bg-gradient[data-v-7a19f363]{background:linear-gradient(#ffffffbf,#00000009)}.http-bg-gradient[data-v-7a19f363]:hover{background:linear-gradient(#00000009,#ffffffbf)}.dark-mode .http-bg-gradient[data-v-7a19f363]{background:linear-gradient(#ffffff09,#00000026)}.dark-mode .http-bg-gradient[data-v-7a19f363]:hover{background:linear-gradient(#00000026,#ffffff09)}.ascii-art-animate .ascii-art-line[data-v-9a695e58]{border-right:1ch solid #0000;animation:4s step-end 1s both typewriter-9a695e58,.5s step-end infinite blinkTextCursor-9a695e58}@keyframes typewriter-9a695e58{0%{width:0}to{width:100%}}@keyframes blinkTextCursor-9a695e58{0%{border-right-color:currentColor}50%{border-right-color:#0000}}.open-api-client-button[data-v-264dd42f]{cursor:pointer;text-align:center;white-space:nowrap;width:100%;height:31px;font-size:var(--scalar-small);border-radius:var(--scalar-radius);box-shadow:0 0 0 .5px var(--scalar-border-color);color:var(--scalar-sidebar-color-1);justify-content:center;align-items:center;gap:6px;padding:9px 12px;line-height:1.385;text-decoration:none;display:flex}.open-api-client-button[data-v-264dd42f]:hover{background:var(--scalar-sidebar-item-hover-background,var(--scalar-background-2))}.address-bar-history-button[data-v-2cc840c9]:hover{background:var(--scalar-background-3)}.address-bar-history-button[data-v-2cc840c9]:focus-within{background:var(--scalar-background-2)}[data-v-3118bf46] .cm-editor{background:0 0;outline:none;height:100%;padding:0}[data-v-3118bf46] .cm-placeholder{color:var(--scalar-color-3)}[data-v-3118bf46] .cm-content{font-family:var(--scalar-font-code);font-size:var(--scalar-small);max-height:20px;padding:8px 0}[data-v-3118bf46] .cm-tooltip{filter:brightness(var(--scalar-lifted-brightness));border-radius:var(--scalar-radius);box-shadow:var(--scalar-shadow-2);background:0 0!important;border:none!important;outline:none!important;overflow:hidden!important}[data-v-3118bf46] .cm-tooltip-autocomplete ul li{padding:3px 6px!important}[data-v-3118bf46] .cm-completionIcon-type:after{color:var(--scalar-color-3)!important}[data-v-3118bf46] .cm-tooltip-autocomplete ul li[aria-selected]{background:var(--scalar-background-2)!important;color:var(--scalar-color-1)!important}[data-v-3118bf46] .cm-tooltip-autocomplete ul{position:relative;padding:6px!important}[data-v-3118bf46] .cm-tooltip-autocomplete ul li:hover{border-radius:3px;color:var(--scalar-color-1)!important;background:var(--scalar-background-3)!important}[data-v-3118bf46] .cm-activeLine,[data-v-3118bf46] .cm-activeLineGutter{background-color:#0000}[data-v-3118bf46] .cm-selectionMatch,[data-v-3118bf46] .cm-matchingBracket{border-radius:var(--scalar-radius);background:var(--scalar-background-4)!important}[data-v-3118bf46] .cm-css-color-picker-wrapper{outline:1px solid var(--scalar-background-3);border-radius:3px;display:inline-flex;overflow:hidden}[data-v-3118bf46] .cm-gutters{color:var(--scalar-color-3);font-size:var(--scalar-small);background-color:#0000;border-right:none;border-radius:0 0 0 3px;line-height:22px}[data-v-3118bf46] .cm-gutters:before{content:"";border-radius:var(--scalar-radius) 0 0 var(--scalar-radius);background-color:var(--scalar-background-1);width:calc(100% - 2px);height:calc(100% - 4px);position:absolute;top:2px;left:2px}[data-v-3118bf46] .cm-gutterElement{justify-content:flex-end;align-items:center;display:flex;position:relative;font-family:var(--scalar-font-code)!important;padding-left:0!important;padding-right:6px!important}[data-v-3118bf46] .cm-lineNumbers .cm-gutterElement{min-width:fit-content}[data-v-3118bf46] .cm-gutter+.cm-gutter :not(.cm-foldGutter) .cm-gutterElement{padding-left:0!important}[data-v-3118bf46] .cm-scroller{overflow:auto}.line-wrapping[data-v-3118bf46]:focus-within .cm-content{white-space:break-spaces;word-break:break-all;min-height:fit-content;padding:3px 6px;display:inline-table}.cm-pill{font-size:var(--scalar-small);border-radius:30px;padding:0 9px;display:inline-block;color:var(--scalar-color-1)!important}.light-mode .cm-pill{background:var(--scalar-background-3)!important}.dark-mode .cm-pill{background:var(--tw-bg-base)!important}@supports (color:color-mix(in lab, red, red)){.dark-mode .cm-pill{background:color-mix(in srgb, var(--tw-bg-base), transparent 90%)!important}}.cm-pill--context-fn{border:1px dashed var(--scalar-color-3)}@supports (color:color-mix(in lab, red, red)){.cm-pill--context-fn{border:1px dashed color-mix(in srgb, var(--scalar-color-3), transparent 35%)}}.cm-pill--context-fn{padding:0 8px}.light-mode .cm-pill--context-fn{background:var(--scalar-background-3)!important}@supports (color:color-mix(in lab, red, red)){.light-mode .cm-pill--context-fn{background:color-mix(in srgb, var(--scalar-background-3), transparent 40%)!important}}.dark-mode .cm-pill--context-fn{background:var(--scalar-background-3)!important}@supports (color:color-mix(in lab, red, red)){.dark-mode .cm-pill--context-fn{background:color-mix(in srgb, var(--scalar-background-3), transparent 55%)!important}}.cm-pill:first-of-type{margin-left:0}.cm-editor .cm-widgetBuffer{display:none}.cm-foldPlaceholder:hover{color:var(--scalar-color-1)}.cm-foldGutter .cm-gutterElement{font-size:var(--scalar-heading-4);padding:2px!important}.cm-foldGutter .cm-gutterElement:first-of-type{display:none}.cm-foldGutter .cm-gutterElement .cm-foldMarker{padding:2px}.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker{background:var(--scalar-background-2);border-radius:var(--scalar-radius);color:var(--scalar-color-1)}.description[data-v-1b7a32a4] .markdown{font-weight:var(--scalar-semibold);color:var(--scalar-color--1);padding:0;display:block}.description[data-v-1b7a32a4] .markdown>:first-child{margin-top:0}[data-v-4d85ebb9] .cm-editor{outline:none;width:100%;height:100%}[data-v-4d85ebb9] .cm-line{padding:0}[data-v-4d85ebb9] .cm-content{font-size:var(--scalar-small);align-items:center;padding:0;display:flex}.scroll-timeline-x[data-v-4d85ebb9]{-ms-overflow-style:none;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 6px calc(100% - 24px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 6px calc(100% - 24px),#0000 100%)}.scroll-timeline-x-hidden[data-v-4d85ebb9]{overflow-x:auto}.scroll-timeline-x-hidden[data-v-4d85ebb9] .cm-scroller{scrollbar-width:none;-ms-overflow-style:none;padding-right:20px;overflow:auto}.scroll-timeline-x-hidden[data-v-4d85ebb9]::-webkit-scrollbar{width:0;height:0;display:none}.scroll-timeline-x-hidden[data-v-4d85ebb9] .cm-scroller::-webkit-scrollbar{width:0;height:0;display:none}.scroll-timeline-x-address[data-v-4d85ebb9]{scrollbar-width:none;line-height:27px}.scroll-timeline-x-address[data-v-4d85ebb9]:after{content:"";cursor:text;width:24px;height:100%;position:absolute;right:0}.scroll-timeline-x-address[data-v-4d85ebb9]:empty:before{content:"Enter URL or cURL request";color:var(--scalar-color-3);pointer-events:none}.address-bar-bg-states[data-v-4d85ebb9]{--scalar-address-bar-bg:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.address-bar-bg-states[data-v-4d85ebb9]{--scalar-address-bar-bg:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.address-bar-bg-states[data-v-4d85ebb9]{background:var(--scalar-address-bar-bg)}.address-bar-bg-states[data-v-4d85ebb9]:has(.cm-focused){--scalar-address-bar-bg:var(--scalar-background-1);border-color:var(--scalar-border-color);outline-width:1px;outline-style:solid}.app-exit-button[data-v-b1eef1b6]{color:#fff;background:#0000001a}.app-exit-button[data-v-b1eef1b6]:hover{background:#ffffff1a}.fade-request-section-content[data-v-f97cc68c]{background:linear-gradient(to left, var(--scalar-background-1) 64%, transparent)}.filter-hover[data-v-f97cc68c]{height:100%;padding-left:24px;padding-right:39px;transition:width 0s ease-in-out .2s;position:absolute;right:0;overflow:hidden}.filter-hover[data-v-f97cc68c]:hover{z-index:10;width:100%}.filter-hover[data-v-f97cc68c]:has(:focus-visible){z-index:10;width:100%}.filter-hover[data-v-f97cc68c]:before{content:"";background-color:var(--scalar-background-1);opacity:0;pointer-events:none;width:100%;height:fit-content;transition:all .3s ease-in-out;position:absolute;top:0;left:0}.filter-hover-item[data-v-f97cc68c]{opacity:0}.filter-hover-item[data-v-f97cc68c]:not(:last-of-type){transform:translateY(3px)}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]{transition:opacity .2s ease-in-out,transform .2s ease-in-out}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:last-of-type{transition-delay:50ms}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(2){transition-delay:.1s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(3){transition-delay:.15s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(4){transition-delay:.2s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(5){transition-delay:.25s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(6){transition-delay:.3s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]:nth-last-of-type(7){transition-delay:.35s}.filter-hover:hover .filter-hover-item[data-v-f97cc68c]{opacity:1;transform:translate(0)}.filter-hover:has(:focus-visible) .filter-hover-item[data-v-f97cc68c]{opacity:1;transform:translate(0)}.filter-hover[data-v-f97cc68c]:hover:before{opacity:.9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filter-hover[data-v-f97cc68c]:has(:focus-visible):before{opacity:.9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filter-button[data-v-f97cc68c]{top:50%;transform:translateY(-50%)}.context-bar-group:hover .context-bar-group-hover\\:text-c-1[data-v-f97cc68c]{--tw-text-opacity:1;color:rgb(var(--scalar-color-1) / var(--tw-text-opacity))}.context-bar-group:has(:focus-visible) .context-bar-group-hover\\:text-c-1[data-v-f97cc68c]{--tw-text-opacity:1;color:rgb(var(--scalar-color-1) / var(--tw-text-opacity))}.context-bar-group:hover .context-bar-group-hover\\:hidden[data-v-f97cc68c]{display:none}.context-bar-group:has(:focus-visible) .context-bar-group-hover\\:hidden[data-v-f97cc68c]{display:none}[data-v-36811e28] .cm-editor{padding:0}[data-v-36811e28] .cm-content{font-family:var(--scalar-font);font-size:var(--scalar-small);background-color:#0000;align-items:center;width:100%;padding:5px 8px;display:flex}[data-v-36811e28] .cm-content:has(.cm-pill){padding:5px 8px}[data-v-36811e28] .cm-content .cm-pill:not(:last-of-type){margin-right:.5px}[data-v-36811e28] .cm-content .cm-pill:not(:first-of-type){margin-left:.5px}[data-v-36811e28] .cm-line{text-overflow:ellipsis;padding:0;overflow:hidden}.filemask[data-v-36811e28]{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--scalar-background-2) 20px);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--scalar-background-2) 20px);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--scalar-background-2) 20px);mask-image:linear-gradient(to right, transparent 0, var(--scalar-background-2) 20px)}[data-v-0362e671] .cm-content{font-size:var(--scalar-small)}.oauth-scope-row-action-rail{--oauth-scope-row-rail-bg:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.oauth-scope-row-action-rail{--oauth-scope-row-rail-bg:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.oauth-scope-row-action-rail{background:linear-gradient(90deg, var(--oauth-scope-row-rail-bg) 0%, var(--oauth-scope-row-rail-bg) 30%, var(--oauth-scope-row-rail-bg) 100%)}@supports (color:color-mix(in lab, red, red)){.oauth-scope-row-action-rail{background:linear-gradient(90deg, color-mix(in srgb, var(--oauth-scope-row-rail-bg), transparent 100%) 0%, color-mix(in srgb, var(--oauth-scope-row-rail-bg), transparent 20%) 30%, var(--oauth-scope-row-rail-bg) 100%)}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}[data-v-819cea32] .cm-editor{padding:0}[data-v-819cea32] .cm-content{font-family:var(--scalar-font);font-size:var(--scalar-small);background-color:#0000;align-items:center;width:100%;padding:5px 8px;display:flex}[data-v-819cea32] .cm-content:has(.cm-pill){padding:5px 8px}[data-v-819cea32] .cm-content .cm-pill:not(:last-of-type){margin-right:.5px}[data-v-819cea32] .cm-content .cm-pill:not(:first-of-type){margin-left:.5px}[data-v-819cea32] .cm-line{text-overflow:ellipsis;word-break:break-word;padding:0;overflow:hidden}.required[data-v-819cea32]:after{content:"Required"}input[data-v-819cea32]::placeholder{color:var(--scalar-color-3)}.scalar-password-input[data-v-819cea32]{text-security:disc;-webkit-text-security:disc;-moz-text-security:disc}.request-section-content[data-v-dc6f670a]{--scalar-border-width:.5px}.request-section-content-filter[data-v-dc6f670a]{box-shadow:0 -10px 0 10px var(--scalar-background-1)}.request-item:focus-within .request-meta-buttons[data-v-dc6f670a]{opacity:1}.group-hover-input[data-v-dc6f670a]{border-width:var(--scalar-border-width);border-color:#0000}.group:hover .group-hover-input[data-v-dc6f670a]{background:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.group:hover .group-hover-input[data-v-dc6f670a]{background:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.group:hover .group-hover-input[data-v-dc6f670a]{border-color:var(--scalar-border-color)}.group-hover-input[data-v-dc6f670a]:focus{border-color:var(--scalar-border-color)!important;background:0 0!important}[data-v-20050fd6] .cm-editor{font-size:var(--scalar-small);background-color:#0000;outline:none}[data-v-20050fd6] .cm-gutters{background-color:var(--scalar-background-1);border-radius:var(--scalar-radius) 0 0 var(--scalar-radius)}[data-v-20050fd6] .cm-scroller{min-width:100%;overflow:auto}.light-mode .bg-preview[data-v-65a8f4ce]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.dark-mode .bg-preview[data-v-65a8f4ce]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.scalar-code-block[data-v-bb31ac6f] .hljs *{font-size:var(--scalar-small)}.response-body-virtual[data-headlessui-state=open],.response-body-virtual[data-headlessui-state=open] .diclosure-panel{flex-direction:column;flex-grow:1;display:flex}.scalar-version-number[data-v-ab8886a2]{width:76px;height:76px;font-size:8px;font-family:var(--scalar-font-code);box-shadow:inset 2px 0px 0 2px var(--scalar-background-2);text-align:center;text-transform:initial;-webkit-text-decoration-color:var(--scalar-color-3);-webkit-text-decoration-color:var(--scalar-color-3);-webkit-text-decoration-color:var(--scalar-color-3);text-decoration-color:var(--scalar-color-3);border-radius:9px 9px 16px 12px;flex-direction:column;justify-content:center;align-items:center;margin-top:-113px;margin-left:-36px;line-height:11px;display:flex;position:absolute;transform:skewY(13deg)}.scalar-version-number a[data-v-ab8886a2]{background:var(--scalar-background-2);border:.5px solid var(--scalar-border-color);border-radius:3px;padding:2px 4px;font-weight:700;text-decoration:none}.gitbook-show[data-v-ab8886a2]{display:none}.v-enter-active[data-v-21dc7abd]{transition:opacity .5s}.v-enter-from[data-v-21dc7abd]{opacity:0}.animate-response-heading .response-heading[data-v-82f4df98]{opacity:1;animation:.2s ease-in-out forwards push-response-82f4df98}@keyframes push-response-82f4df98{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.animate-response-heading .animate-response-children[data-v-82f4df98]{opacity:0;animation:.2s ease-in-out 50ms forwards response-spans-82f4df98}@keyframes response-spans-82f4df98{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.request-card[data-v-8d155354]{color:var(--scalar-color-1);font-size:var(--scalar-font-size-3)}.request-method[data-v-8d155354]{font-family:var(--scalar-font-code);text-transform:uppercase;margin-right:6px}.request-card-footer[data-v-8d155354]{flex-shrink:0;justify-content:flex-end;padding:6px;display:flex;position:relative}.request-card-footer-addon[data-v-8d155354]{flex:1;align-items:center;min-width:0;display:flex}.request-editor-section[data-v-8d155354]{flex:1;display:flex}.request-card-simple[data-v-8d155354]{font-size:var(--scalar-small);justify-content:space-between;align-items:center;padding:8px 8px 8px 12px;display:flex}.code-snippet[data-v-8d155354]{flex-direction:column;width:100%;display:flex}[data-radix-popper-content-wrapper]:has(.scalar-api-client-context-menu){z-index:1000!important}.resizer[data-v-e2c54c18]{cursor:col-resize;z-index:100;border-right:2px solid #0000;width:5px;transition:border-right-color .3s;position:absolute;top:0;bottom:0;right:0}.scalar-dragging{cursor:col-resize}.resizer:hover,.scalar-dragging .resizer{border-right-color:var(--scalar-background-3)}.scalar-dragging:after{content:"";display:block;position:absolute;inset:0}[data-v-28c8509c] .cm-editor{padding:0}[data-v-28c8509c] .cm-content{font-family:var(--scalar-font);font-size:var(--scalar-small);background-color:#0000;align-items:center;width:100%;padding:5px 8px;display:flex}[data-v-28c8509c] .cm-content:has(.cm-pill){padding:5px 8px}[data-v-28c8509c] .cm-content .cm-pill:not(:last-of-type){margin-right:.5px}[data-v-28c8509c] .cm-content .cm-pill:not(:first-of-type){margin-left:.5px}[data-v-28c8509c] .cm-line{text-overflow:ellipsis;padding:0;overflow:hidden}.scalar .scalar-app-layout[data-v-ae5e8531]{background:var(--scalar-background-1);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:8px;width:100%;max-width:1390px;height:calc(100% - 120px);margin:auto;position:relative;overflow:hidden}@media (width<=720px) and (height<=480px){.scalar .scalar-app-layout[data-v-ae5e8531]{height:100%;max-height:90svh}}.scalar .scalar-app-exit[data-v-ae5e8531]{cursor:pointer;z-index:-1;background:#00000038;width:100vw;height:100vh;position:fixed;top:0;left:0}.dark-mode .scalar .scalar-app-exit[data-v-ae5e8531]{background:#00000073}.scalar .scalar-app-exit[data-v-ae5e8531]:before{text-align:center;color:#fff;opacity:.6;font-family:sans-serif;font-size:30px;font-weight:100;line-height:50px;position:absolute;top:0;right:12px}.scalar .scalar-app-exit[data-v-ae5e8531]:hover:before{opacity:1}.scalar-container[data-v-ae5e8531]{visibility:hidden;opacity:0;pointer-events:none;will-change:opacity;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .35s,visibility 0s linear .35s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.scalar-container.scalar-client--open[data-v-ae5e8531]{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s}.scalar .url-form-input[data-v-ae5e8531]{min-height:auto!important}.scalar .scalar-container[data-v-ae5e8531]{line-height:normal}.ref-search-meta[data-v-a00657cc]{background:var(--scalar-background-1);border-bottom-left-radius:var(--scalar-radius-lg);border-bottom-right-radius:var(--scalar-radius-lg);font-size:var(--scalar-font-size-4);color:var(--scalar-color-3);font-weight:var(--scalar-semibold);border-top:var(--scalar-border-width) solid var(--scalar-border-color);gap:12px;padding:6px 12px;display:flex}.authenticationProvided[data-v-e3416cd5]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.authenticationRequired[data-v-d15ef40b]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.askForAuthentication[data-v-3e7aa176]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;margin-bottom:12px;padding:0;display:flex;position:relative}.authContent[data-v-3e7aa176]{grid-template-rows:0fr;width:100%;max-width:520px;min-height:0;margin:auto;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.authContentInner[data-v-3e7aa176]>div{margin:36px 0 48px}.authContent[data-v-3e7aa176] .markdown{margin-bottom:0!important}.askForAuthentication.open .authContent[data-v-3e7aa176]{grid-template-rows:1fr}.continueButton[data-v-3e7aa176]{align-self:flex-end}.toggleButton[data-v-3e7aa176]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.authContentInner[data-v-3e7aa176]{min-height:0;overflow:hidden}.authorizeButton[data-v-3e7aa176]{z-index:1;gap:5px;display:flex;background:var(--scalar-color-blue)!important;color:#fff!important;margin:0!important}.autosendPaused[data-v-d08225db]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.playIcon[data-v-5749c429]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-5749c429]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-5749c429;display:inline-block;position:absolute}.buildingRequest[data-v-5749c429]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.buildingRequest svg[data-v-5749c429]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-5749c429{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestApproved[data-v-bb311586]{color:var(--scalar-color-green);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailed[data-v-bc27e533]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestFailedIcon[data-v-bc27e533]{border-radius:50%;width:16px;height:16px;padding:4px;box-shadow:inset 0 0 0 1.5px}.requestRejected[data-v-9803a54c]{color:var(--scalar-color-red);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.requestSuccess[data-v-acc2c0d8]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.light-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23000' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.dark-mode .bg-preview[data-v-92f84612]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' fill-opacity='10%25'%3E%3Crect width='8' height='8' /%3E%3Crect x='8' y='8' width='8' height='8' /%3E%3C/svg%3E")}.playIcon[data-v-65dc6dfb]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-65dc6dfb]:before{content:"";box-sizing:border-box;border:1.75px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-65dc6dfb;display:inline-block;position:absolute}.sendingRequest[data-v-65dc6dfb]{color:var(--scalar-color-blue);font-weight:var(--scalar-semibold);min-height:40px;font-size:var(--scalar-font-size-3);align-items:center;gap:6px;display:flex;position:relative}.sendingRequest svg[data-v-65dc6dfb]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-65dc6dfb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.requestHeaderContainer[data-v-0eb5f95d]{justify-content:space-between;align-items:center;padding:0 5px;display:flex}.requestPreview[data-v-0eb5f95d]{border-radius:12px;flex-direction:column;width:100%;display:flex;position:relative}.requestContent[data-v-0eb5f95d]{grid-template-rows:0fr;min-height:0;transition:grid-template-rows .2s ease-out;display:grid;overflow:hidden}.requestPreview.open .requestContent[data-v-0eb5f95d]{grid-template-rows:1fr}.requestPreview.succeeded[data-v-0eb5f95d]{padding:0}.requestContentInner[data-v-0eb5f95d]{min-height:0;overflow:hidden}.code[data-v-0eb5f95d]{font-size:var(--scalar-font-size-4);background:var(--scalar-background-2);border-radius:12px;flex-direction:column;display:flex}@supports (color:color-mix(in lab, red, red)){.code[data-v-0eb5f95d]{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1))}}.code[data-v-0eb5f95d]{margin-bottom:12px;overflow:hidden}.dark-mode .code[data-v-0eb5f95d]{background:var(--scalar-background-2)}.code h1[data-v-0eb5f95d]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);padding:8px}.code[data-v-0eb5f95d] .codeBlock{max-height:calc(50vh - 100px);padding-top:0}.autosendContainer[data-v-0eb5f95d]{justify-content:space-between;display:flex}.sendButton[data-v-0eb5f95d]{background:var(--scalar-color-blue);color:#fff;font-weight:var(--scalar-semibold);padding:5px 10px}.sendButton[data-v-0eb5f95d]:hover,.sendButton[data-v-0eb5f95d]:active{background:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.sendButton[data-v-0eb5f95d]:hover,.sendButton[data-v-0eb5f95d]:active{background:color-mix(in srgb, var(--scalar-color-blue), black 10%)}}.sendButton[data-v-0eb5f95d]:hover,.sendButton[data-v-0eb5f95d]:active{color:#fff!important}.toggleButton[data-v-0eb5f95d]{cursor:pointer;text-align:left;color:var(--scalar-color-3);border-radius:var(--scalar-radius-lg);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex;position:relative}.toggleButton[data-v-0eb5f95d]:hover{text-decoration:underline}.executeRequestTool[data-v-3e825a81]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);box-shadow:0 var(--scalar-border-width) 0 var(--scalar-background-1), 0 calc(-1 * var(--scalar-border-width)) 0 var(--scalar-background-1);flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.tool[data-v-3e825a81]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:15px;margin-bottom:20px;padding:15px}.playIcon[data-v-9d9724d2]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-9d9724d2]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-9d9724d2;display:inline-block;position:absolute}.loadingApiSpecs[data-v-9d9724d2]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.loadingApiSpecs svg[data-v-9d9724d2]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-9d9724d2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.contextItem[data-v-e6786ce3]{white-space:nowrap;color:var(--scalar-color-2);cursor:pointer;vertical-align:middle;background:var(--scalar-background-2);border-radius:12px;align-items:center;padding:5px 10px;font-size:10px;display:flex}@supports (color:color-mix(in lab, red, red)){.contextItem[data-v-e6786ce3]{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1))}}.contextItem[data-v-e6786ce3]{max-width:200px}.contextItemText[data-v-e6786ce3]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shimmer[data-v-e6786ce3]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #202020 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-e6786ce3}.light-mode .shimmer[data-v-e6786ce3]{background:var(--scalar-background-2);background-image:linear-gradient(90deg, #fafafa 0%, var(--scalar-background-2) 40%, var(--scalar-background-3) 80%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer-e6786ce3}@keyframes shimmer-e6786ce3{0%{background-position:200% 0}to{background-position:-200% 0}}.playIcon[data-v-6e0ac42c]{z-index:1;background:var(--scalar-background-1);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:4px;display:flex;position:relative}.playIcon[data-v-6e0ac42c]:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom-color:#0000;border-image:initial;background:var(--scalar-background-1);border-radius:50%;width:16px;height:16px;animation:.42s linear infinite rotation-6e0ac42c;display:inline-block;position:absolute}.sendingRequest[data-v-6e0ac42c]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);align-items:center;gap:6px;margin-bottom:10px;display:flex}.sendingRequest svg[data-v-6e0ac42c]{z-index:1;border-radius:50%;width:100%;height:100%}@keyframes rotation-6e0ac42c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.operations[data-v-43dd2b86]{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:12px;display:flex}.operations[data-v-43dd2b86]:empty{margin-bottom:-12px}.overflowPopover[data-v-43dd2b86]{flex-direction:column;gap:5px;padding:8px;display:flex}.catalogModal .scalar-modal-body{flex-direction:column;display:flex}.searchInput[data-v-bc24f891]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);margin-bottom:10px}.catalog[data-v-bc24f891]{font-size:var(--scalar-font-size-3);grid-template-columns:1fr 1fr;gap:10px;display:grid;overflow-y:scroll}.item[data-v-bc24f891]{background-color:var(--scalar-background-2);border-radius:var(--scalar-radius-lg);align-items:center;gap:10px;padding:15px;transition:background-color .16s;display:flex}.item[data-v-bc24f891]:hover{background-color:var(--scalar-background-3)!important}@supports (color:color-mix(in lab, red, red)){.item[data-v-bc24f891]:hover{background-color:color-mix(in srgb, var(--scalar-background-3), transparent 40%)!important}}.left[data-v-bc24f891]{align-items:center}.right[data-v-bc24f891]{flex-direction:column;display:flex}.logo[data-v-bc24f891]{width:25px}.item-top[data-v-bc24f891]{gap:10px;display:flex}.version[data-v-bc24f891]{background:var(--scalar-background-3);border-radius:var(--scalar-radius);font-size:var(--scalar-font-size-5);color:var(--scalar-color-3);padding:2px 5px}.description[data-v-bc24f891]{color:var(--scalar-color-2)}.dropdown-item[data-v-2d142bb5]{align-items:center;gap:10px;display:flex}.approvalSection[data-v-a7e6c699]{background:var(--scalar-color-blue);width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px}@supports (color:color-mix(in lab, red, red)){.approvalSection[data-v-a7e6c699]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%)}}.approvalSection[data-v-a7e6c699]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.approveContainer[data-v-a7e6c699]{gap:5px;display:flex}.actionButton[data-v-a7e6c699]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-a7e6c699]:hover,.rejectButton[data-v-a7e6c699]:active{background:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.rejectButton[data-v-a7e6c699]:hover,.rejectButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%)}}.rejectButton[data-v-a7e6c699]:hover,.rejectButton[data-v-a7e6c699]:active{color:#fff!important}.approveButton[data-v-a7e6c699]{color:#fff;background:var(--scalar-color-blue)}.approveButton[data-v-a7e6c699]:hover,.approveButton[data-v-a7e6c699]:active{background:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.approveButton[data-v-a7e6c699]:hover,.approveButton[data-v-a7e6c699]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%)}}.approveButton[data-v-a7e6c699]:hover,.approveButton[data-v-a7e6c699]:active{color:#fff!important}.error[data-v-63a481da]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:var(--scalar-color-red);border-radius:16px 16px 0 0;align-items:center;margin-bottom:-16px;padding:8px 8px 24px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.error[data-v-63a481da]{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}}.error[data-v-63a481da]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3);position:absolute;top:0;transform:translateY(calc(16px - 100%))}.freeMessagesInfoSection[data-v-913a3815]{background:var(--scalar-color-blue);width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;position:relative}@supports (color:color-mix(in lab, red, red)){.freeMessagesInfoSection[data-v-913a3815]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%)}}.freeMessagesInfoSection[data-v-913a3815]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;display:flex}.infoText[data-v-913a3815]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.actionsContainer[data-v-913a3815]{align-items:center;gap:8px;display:flex}.actionButton[data-v-913a3815]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.upgradeButton[data-v-913a3815]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.upgradeButton[data-v-913a3815]:hover,.upgradeButton[data-v-913a3815]:active{background:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.upgradeButton[data-v-913a3815]:hover,.upgradeButton[data-v-913a3815]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%)}}.upgradeButton[data-v-913a3815]:hover,.upgradeButton[data-v-913a3815]:active{color:#fff!important}.closeButton[data-v-913a3815]{width:28px;height:28px;color:var(--scalar-color-2);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.closeButton[data-v-913a3815]:hover{background:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.closeButton[data-v-913a3815]:hover{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 80%)}}.closeButton[data-v-913a3815]:hover{color:var(--scalar-color-1)}.paymentSection[data-v-8f005a5c]{background:var(--scalar-color-blue);width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;position:relative}@supports (color:color-mix(in lab, red, red)){.paymentSection[data-v-8f005a5c]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%)}}.paymentSection[data-v-8f005a5c]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.approvalText[data-v-8f005a5c]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.paymentContainer[data-v-8f005a5c]{gap:5px;display:flex}.actionButton[data-v-8f005a5c]{font-weight:var(--scalar-semibold);border-radius:50px;align-items:center;padding:6px 12px;display:flex}.rejectButton[data-v-8f005a5c]{color:#fff;background:var(--scalar-color-red)}.rejectButton[data-v-8f005a5c]:hover,.rejectButton[data-v-8f005a5c]:active{background:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.rejectButton[data-v-8f005a5c]:hover,.rejectButton[data-v-8f005a5c]:active{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 10%)}}.rejectButton[data-v-8f005a5c]:hover,.rejectButton[data-v-8f005a5c]:active{color:#fff!important}.approveButton[data-v-8f005a5c]{color:#fff;font-size:var(--scalar-font-size-3);background:var(--scalar-color-blue)}.approveButton[data-v-8f005a5c]:hover,.approveButton[data-v-8f005a5c]:active{background:var(--scalar-color-blue)}@supports (color:color-mix(in lab, red, red)){.approveButton[data-v-8f005a5c]:hover,.approveButton[data-v-8f005a5c]:active{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 10%)}}.approveButton[data-v-8f005a5c]:hover,.approveButton[data-v-8f005a5c]:active{color:#fff!important}.paymentInfo[data-v-8f005a5c]{width:300px;box-shadow:var(--scalar-shadow-2);background:var(--scalar-background-1);pointer-events:none;opacity:0;border-radius:16px;padding:12px;transition:all .2s ease-in-out;position:absolute;bottom:70px;right:0;transform:translateY(-5px)}.paymentInfo h3[data-v-8f005a5c]{font-size:var(--scalar-font-size-1);font-weight:var(--scalar-bold);margin-bottom:18px}.paymentInfo h3 span[data-v-8f005a5c]{font-size:var(--scalar-font-size-2)}.dark-mode .paymentInfo[data-v-8f005a5c]{background:var(--scalar-background-2)}.paymentContainer:hover .paymentInfo[data-v-8f005a5c]{opacity:1;transform:translate(0)}.paymentInfoItem[data-v-8f005a5c]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);justify-content:space-between;margin-top:8px;display:flex}.paymentInfoSection[data-v-8f005a5c]:not(:last-child){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);padding-bottom:8px}.searchItem[data-v-7945f74c]{font-size:var(--scalar-font-size-3);align-items:center;gap:9px;padding:8px 10px;display:flex}.searchInput[data-v-7945f74c]{margin-bottom:5px}.searchItem[data-v-7945f74c]:hover{background:var(--scalar-background-2)}.searchItemLogo[data-v-7945f74c]{width:15px}.searchIcon[data-v-7945f74c]{margin-right:7px}.searchResultsEmpty[data-v-7945f74c]{font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);margin:10px}.uploadSection[data-v-9551cf83]{background:var(--scalar-color-blue);width:100%;margin-bottom:-16px;padding:8px 8px 24px 12px;position:relative}@supports (color:color-mix(in lab, red, red)){.uploadSection[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-blue), var(--scalar-background-1) 95%)}}.uploadSection[data-v-9551cf83]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;transform:translateY(calc(16px - 100%))}.uploadSection.error[data-v-9551cf83]{background:var(--scalar-color-red)}@supports (color:color-mix(in lab, red, red)){.uploadSection.error[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-red), var(--scalar-background-1) 95%)}}.uploadSection.done[data-v-9551cf83]{background:var(--scalar-color-green)}@supports (color:color-mix(in lab, red, red)){.uploadSection.done[data-v-9551cf83]{background:color-mix(in srgb, var(--scalar-color-green), var(--scalar-background-1) 95%)}}.uploadText[data-v-9551cf83]{font-weight:var(--scalar-semibold);font-size:var(--scalar-font-size-3)}.icon[data-v-9551cf83]{width:20px;height:20px}.actionContainer[data-v-e7c7c266]{background:var(--scalar-background-2)}@supports (color:color-mix(in lab, red, red)){.actionContainer[data-v-e7c7c266]{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1))}}.actionContainer[data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;box-shadow:0 24px 0 2px var(--scalar-background-1);border-radius:16px;position:relative}.promptForm[data-v-e7c7c266]{background:var(--scalar-background-1);width:100%;box-shadow:var(--scalar-shadow-1), 0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:16px;flex-direction:column;display:flex;position:relative}.inputActionsContainer[data-v-e7c7c266]{justify-content:space-between;padding:0 8px 8px;display:flex}.inputActionsLeft[data-v-e7c7c266]{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.inputActionsRight[data-v-e7c7c266]{gap:5px;display:flex;position:relative}.apiPill[data-v-e7c7c266]{font-size:var(--scalar-font-size-3);border:var(--scalar-border-width) solid var(--scalar-border-color);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);pointer-events:all;z-index:1;-webkit-user-select:none;user-select:none;border-radius:16px;align-items:center;gap:4px;height:28px;padding:0 8px;display:flex}.apiPillLogo[data-v-e7c7c266]{width:15px}.apiPillRemove[data-v-e7c7c266]{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-right:-6px;display:flex}.apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .apiPill:hover .apiPillRemove[data-v-e7c7c266]{background:var(--scalar-background-3)}.apiPillRemove[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.prompt[data-v-e7c7c266]{resize:none;field-sizing:content;z-index:1;scrollbar-width:thin;word-wrap:break-word;width:100%;max-width:100%;min-height:64px;max-height:250px;font-family:var(--scalar-font);border:none;outline:none;padding:12px 12px 14px;font-size:16px;overflow-y:auto}.dark-mode .promptForm[data-v-e7c7c266]{background:var(--scalar-background-2)}.prompt[data-v-e7c7c266]:disabled{color:var(--scalar-color-3)}.addAPIButton[data-v-e7c7c266]{color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);width:28px;height:28px;font-weight:var(--scalar-bold);pointer-events:all;z-index:1;box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color);border-radius:100%;justify-content:center;align-items:center;gap:4px;display:flex}.addAPIButton[data-v-e7c7c266]:hover{background:var(--scalar-background-2)}@supports (color:color-mix(in lab, red, red)){.addAPIButton[data-v-e7c7c266]:hover{background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1))}}.addAPIButton[data-v-e7c7c266]:hover{box-shadow:0 0 0 var(--scalar-border-width) var(--scalar-border-color)}.dark-mode .addAPIButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.settingsButton[data-v-e7c7c266]{z-index:1;color:var(--scalar-color-3)!important;border-radius:50%!important;margin:0!important}.settingsButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-2)}.dark-mode .settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-3)}.sendButton[data-v-e7c7c266]{z-index:1;border:var(--scalar-border-width) solid var(--scalar-color-blue);background:var(--scalar-color-blue)!important;border-radius:50%!important;margin:0!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]){color:#fff!important}.sendButton[data-v-e7c7c266]:not([aria-disabled=true]):hover{background:var(--scalar-color-blue)!important}@supports (color:color-mix(in lab, red, red)){.sendButton[data-v-e7c7c266]:not([aria-disabled=true]):hover{background:color-mix(in srgb, var(--scalar-color-blue), transparent 10%)!important}}.sendButton[aria-disabled=true][data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:var(--scalar-background-2)!important;color:var(--scalar-color-3)!important}.dark-mode .sendButton[aria-disabled=true][data-v-e7c7c266]{background:var(--scalar-background-3)!important}.contextContainer[data-v-e7c7c266]{width:100%;color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);-webkit-user-select:none;user-select:none;justify-content:space-between;padding:10px 12px 12px;display:flex}.settingsButton[data-v-e7c7c266]{font-weight:var(--scalar-semibold);border-radius:var(--scalar-radius-lg);margin:-4px -6px;padding:4px 6px}.settingsButton[data-v-e7c7c266]:hover{background:var(--scalar-background-2);box-shadow:0 0 var(--scalar-border-width) 0 var(--scalar-border-color);cursor:pointer}.agentLabel[data-v-e7c7c266]{cursor:text;width:100%;height:100%;font-size:0;position:absolute}.sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-2);box-shadow:0 0 0 1.5px var(--scalar-background-2);color:var(--scalar-color-2);font-size:var(--scalar-font-size-3);font-weight:var(--scalar-semibold);-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;height:28px;display:flex}.dark-mode .sendCheckboxContinue[data-v-e7c7c266]:has(input){background:var(--scalar-background-3);box-shadow:0 0 0 1.5px var(--scalar-background-3)}.addMoreContext[data-v-e7c7c266]{height:40px;font-size:var(--scalar-font-size-3);color:var(--scalar-color-3);align-items:center;padding:0 8px 0 12px;display:flex;position:relative}.addMoreContext[data-v-e7c7c266]:before{content:"";background:var(--scalar-background-1);width:8px;height:8px}@supports (color:color-mix(in lab, red, red)){.addMoreContext[data-v-e7c7c266]:before{background:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.addMoreContext[data-v-e7c7c266]:before{box-shadow:-.5px -.5px 0 var(--scalar-border-color), inset .5px .5px 1px var(--scalar-border-color);position:absolute;top:-3px;left:18px;transform:rotate(45deg)}.dark-mode .addMoreContext[data-v-e7c7c266]:before{box-shadow:-.5px -.5px 0 var(--scalar-border-color)}.addAPIContext[data-v-e7c7c266]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.termsAgree[data-v-e7c7c266]{cursor:pointer;height:inherit;border-radius:14px;align-items:center;gap:5px;margin:0 5px;display:flex}.termsAgree[data-v-e7c7c266]:hover{color:var(--scalar-color-1)}.termsAgree:hover .termsAgreeIcon[data-v-e7c7c266]{background:var(--scalar-color-1);color:var(--scalar-background-1)}.termsAgreeIcon[data-v-e7c7c266]{width:inherit;height:inherit;background:var(--scalar-background-2);border-radius:50%;padding:2px}.chat[data-v-8e43ed7a]{flex-direction:column;flex:1;width:100%;max-width:744px;padding:24px 0;display:flex}.userMessage[data-v-8e43ed7a]{background:var(--scalar-background-2);width:fit-content;max-width:80%;color:var(--scalar-color-1);padding-top:6px;padding-bottom:6px;border-radius:18px;margin-bottom:12px;margin-left:auto;padding-inline:16px;font-size:16px;line-height:24px}div+.userMessage[data-v-8e43ed7a]{margin-top:64px}.chat[data-v-8e43ed7a]>div:has(.executeRequestTool)+div:has(.executeRequestTool){margin-top:-12px}.spacer[data-v-8e43ed7a]{width:100%;min-height:280px}.formContainer[data-v-8e43ed7a]{z-index:1;width:100%;max-width:744px;position:fixed;bottom:20px}.chat[data-v-8e43ed7a] .markdown{margin-bottom:12px}.agentLogo[data-v-56f7e8dd]{margin-bottom:15px}.startContainer[data-v-56f7e8dd]{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:720px;height:100%;display:flex;position:relative}.heading[data-v-56f7e8dd]{font-size:1.5rem;font-weight:var(--scalar-font-bold);margin-bottom:50px}.disclaimerText[data-v-56f7e8dd]{text-align:center;color:var(--scalar-color-3);font-size:var(--scalar-font-size-3);text-wrap:balance;margin-top:40px;line-height:1.44}.disclaimerLink[data-v-56f7e8dd]{text-decoration:underline}.wrapper[data-v-f1eee0af]{flex-direction:column;align-items:center;width:100%;height:100%;display:flex}.docSettings[data-v-01a25619]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:12px;max-height:600px;margin-bottom:12px;display:flex}.documentName[data-v-01a25619]{font-weight:var(--scalar-semibold)}.settingsModal .scalar-modal-layout{z-index:10!important}.settingsModal .scalar-modal-body{overflow:hidden auto}.documentList[data-v-9843da37]{font-size:var(--scalar-font-size-3);flex-direction:column;margin-bottom:12px;display:flex}.document[data-v-9843da37]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);flex-direction:column;width:calc(100% + 24px);padding:0 12px;display:flex;position:relative;left:-12px}.document[data-v-9843da37]:first-of-type:not(:last-of-type){border-bottom:none}.documentName[data-v-9843da37]{font-weight:var(--scalar-semibold);color:var(--scalar-color-2);align-items:center;gap:4px;padding:12px 0;display:flex}.documentNameActive[data-v-9843da37]{color:var(--scalar-color-1)}.settingsHeading[data-v-9843da37]{font-size:19px;font-weight:var(--scalar-semibold);align-items:center;gap:5px;margin-bottom:12px;display:flex}.proxyUrlContainer[data-v-9843da37]{font-size:var(--scalar-font-size-3);flex-direction:column;gap:5px;display:flex}.proxyUrlContainer label[data-v-9843da37]{font-weight:var(--scalar-semibold)}.noDocuments[data-v-9843da37]{color:var(--scalar-color-2);margin-bottom:10px}.scalar-app .\\@container{container-type:inline-size}.scalar-app .pointer-events-auto{pointer-events:auto}.scalar-app .pointer-events-none{pointer-events:none}.scalar-app .collapse{visibility:collapse}.scalar-app .invisible{visibility:hidden}.scalar-app .visible{visibility:visible}.scalar-app .floating-bg:before{background-color:var(--scalar-background-2);border-radius:var(--scalar-radius);content:"";opacity:0;z-index:1;width:calc(100% + 8px);height:calc(100% - 4px);transition:opacity .2s ease-in-out;position:absolute;top:2.5px;left:-4px}.scalar-app .floating-bg:hover:before{opacity:1}.scalar-app .centered{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);position:absolute;top:50%;left:50%}.scalar-app .centered-y{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);position:absolute;top:50%}.scalar-app .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scalar-app .absolute{position:absolute}.scalar-app .fixed{position:fixed}.scalar-app .relative{position:relative}.scalar-app .static{position:static}.scalar-app .sticky{position:sticky}.scalar-app .inset-0{inset:0}.scalar-app .inset-x-0{inset-inline:0}.scalar-app .inset-x-1{inset-inline:4px}.scalar-app .inset-x-px{inset-inline:1px}.scalar-app .-inset-y-0\\.5{inset-block:-2px}.scalar-app .-inset-y-0\\.75{inset-block:-3px}.scalar-app .inset-y-0{inset-block:0}.scalar-app .inset-y-0\\.5{inset-block:2px}.scalar-app .start{inset-inline-start:4px}.scalar-app .end{inset-inline-end:4px}.scalar-app .-top-1{top:-4px}.scalar-app .-top-2{top:-8px}.scalar-app .top-\\(--nested-items-offset\\)\\!{top:var(--nested-items-offset)!important}.scalar-app .top-\\(--refs-header-height\\){top:var(--refs-header-height)}.scalar-app .top-\\(--scalar-custom-header-height\\,0\\){top:var(--scalar-custom-header-height,0)}.scalar-app .top-\\(--scalar-sidebar-sticky-offset\\,0\\){top:var(--scalar-sidebar-sticky-offset,0)}.scalar-app .top-0{top:0}.scalar-app .top-0\\.5{top:2px}.scalar-app .top-1\\/2{top:50%}.scalar-app .top-2{top:8px}.scalar-app .top-2\\.5{top:10px}.scalar-app .top-3\\.5{top:14px}.scalar-app .top-12{top:48px}.scalar-app .top-\\[1lh\\]{top:1lh}.scalar-app .top-\\[calc\\(10px\\+0\\.5lh\\)\\]{top:calc(10px + .5lh)}.scalar-app .top-\\[calc\\(100\\%\\+4px\\)\\]{top:calc(100% + 4px)}.scalar-app .top-px{top:1px}.scalar-app .-right-1{right:-4px}.scalar-app .-right-1\\.5{right:-6px}.scalar-app .-right-\\[30px\\]{right:-30px}.scalar-app .right-0{right:0}.scalar-app .right-0\\.75{right:3px}.scalar-app .right-1{right:4px}.scalar-app .right-1\\.5{right:6px}.scalar-app .right-1\\.25{right:5px}.scalar-app .right-2{right:8px}.scalar-app .right-2\\.5{right:10px}.scalar-app .right-4{right:16px}.scalar-app .right-7{right:28px}.scalar-app .right-12{right:48px}.scalar-app .bottom-1{bottom:4px}.scalar-app .bottom-4{bottom:16px}.scalar-app .bottom-\\[var\\(--scalar-border-width\\)\\]{bottom:var(--scalar-border-width)}.scalar-app .-left-4\\.5{left:-18px}.scalar-app .-left-5{left:-20px}.scalar-app .-left-6{left:-24px}.scalar-app .left-0{left:0}.scalar-app .left-1\\/2{left:50%}.scalar-app .left-2{left:8px}.scalar-app .left-2\\.5{left:10px}.scalar-app .left-3{left:12px}.scalar-app .left-4{left:16px}.scalar-app .left-border{left:var(--scalar-border-width)}.scalar-app .left-px{left:1px}.scalar-app .left-refs-w-sidebar{left:var(--refs-sidebar-width)}.scalar-app .-z-1{z-index:calc(1 * -1)}.scalar-app .-z-2{z-index:calc(2 * -1)}.scalar-app .z-0{z-index:0}.scalar-app .z-1{z-index:1}.scalar-app .z-10{z-index:10;z-index:10}.scalar-app .z-50{z-index:50;z-index:50}.scalar-app .z-\\[1\\]{z-index:1}.scalar-app .z-context{z-index:1000}.scalar-app .z-context-plus{z-index:1001}.scalar-app .z-overlay{z-index:10000}.scalar-app .z-tooltip{z-index:99999}.scalar-app .order-789{order:789}.scalar-app .order-last{order:9999}.scalar-app .col-span-full{grid-column:1/-1}.scalar-app .container{width:100%}@media (width>=400px){.scalar-app .container{max-width:400px}}@media (width>=600px){.scalar-app .container{max-width:600px}}@media (width>=800px){.scalar-app .container{max-width:800px}}@media (width>=1000px){.scalar-app .container{max-width:1000px}}@media (width>=1200px){.scalar-app .container{max-width:1200px}}@media (width>=96rem){.scalar-app .container{max-width:96rem}}.scalar-app .\\!m-0{margin:0!important}.scalar-app .-m-0\\.5{margin:-2px}.scalar-app .-m-1{margin:-4px}.scalar-app .-m-2{margin:-8px}.scalar-app .-m-px{margin:-1px}.scalar-app .m-0{margin:0}.scalar-app .m-1{margin:4px}.scalar-app .m-auto{margin:auto}.scalar-app .-mx-\\(--scalar-sidebar-padding\\){margin-inline:calc(var(--scalar-sidebar-padding) * -1)}.scalar-app .-mx-0\\.25{margin-inline:-1px}.scalar-app .-mx-0\\.75{margin-inline:-3px}.scalar-app .-mx-2{margin-inline:-8px}.scalar-app .-mx-px{margin-inline:-1px}.scalar-app .mx-0\\.5{margin-inline:2px}.scalar-app .mx-1{margin-inline:4px}.scalar-app .mx-1\\.5{margin-inline:6px}.scalar-app .mx-px{margin-inline:1px}.scalar-app .-my-0\\.5{margin-block:-2px}.scalar-app .-my-1{margin-block:-4px}.scalar-app .-my-1\\.5{margin-block:-6px}.scalar-app .-my-2{margin-block:-8px}.scalar-app .-my-px{margin-block:-1px}.scalar-app .my-0\\.75{margin-block:3px}.scalar-app .my-1\\.5{margin-block:6px}.scalar-app .my-2{margin-block:8px}.scalar-app .my-3{margin-block:12px}.scalar-app .my-12{margin-block:48px}.scalar-app .-mt-\\(--scalar-sidebar-padding\\){margin-top:calc(var(--scalar-sidebar-padding) * -1)}.scalar-app .-mt-1{margin-top:-4px}.scalar-app .-mt-1\\.5{margin-top:-6px}.scalar-app .-mt-\\[\\.5px\\]{margin-top:-.5px}.scalar-app .mt-0{margin-top:0}.scalar-app .mt-0\\.5{margin-top:2px}.scalar-app .mt-0\\.25{margin-top:1px}.scalar-app .mt-1{margin-top:4px}.scalar-app .mt-2{margin-top:8px}.scalar-app .mt-3{margin-top:12px}.scalar-app .mt-6{margin-top:24px}.scalar-app .mt-\\[15svh\\]{margin-top:15svh}.scalar-app .mt-\\[20svh\\]{margin-top:20svh}.scalar-app .mt-auto{margin-top:auto}.scalar-app .mt-px{margin-top:1px}.scalar-app .-mr-0\\.5{margin-right:-2px}.scalar-app .-mr-1{margin-right:-4px}.scalar-app .-mr-1\\.5{margin-right:-6px}.scalar-app .-mr-px{margin-right:-1px}.scalar-app .mr-0{margin-right:0}.scalar-app .mr-0\\.5{margin-right:2px}.scalar-app .mr-0\\.75{margin-right:3px}.scalar-app .mr-1{margin-right:4px}.scalar-app .mr-1\\.5{margin-right:6px}.scalar-app .mr-1\\.25{margin-right:5px}.scalar-app .mr-2{margin-right:8px}.scalar-app .mr-3{margin-right:12px}.scalar-app .mr-\\[calc\\(20px-var\\(--scalar-sidebar-indent\\)\\)\\]{margin-right:calc(20px - var(--scalar-sidebar-indent))}.scalar-app .-mb-1{margin-bottom:-4px}.scalar-app .-mb-\\[var\\(--scalar-border-width\\)\\]{margin-bottom:calc(var(--scalar-border-width) * -1)}.scalar-app .mb-0{margin-bottom:0}.scalar-app .mb-1{margin-bottom:4px}.scalar-app .mb-2{margin-bottom:8px}.scalar-app .mb-3{margin-bottom:12px}.scalar-app .mb-4{margin-bottom:16px}.scalar-app .-ml-0\\.5{margin-left:-2px}.scalar-app .-ml-0\\.25{margin-left:-1px}.scalar-app .-ml-0\\.75{margin-left:-3px}.scalar-app .ml-1{margin-left:4px}.scalar-app .ml-2{margin-left:8px}.scalar-app .ml-auto{margin-left:auto}.scalar-app .box-border{box-sizing:border-box}.scalar-app .box-content{box-sizing:content-box}.scalar-app .flex-center{justify-content:center;align-items:center;display:flex}.scalar-app .line-clamp-\\(--markdown-clamp\\){-webkit-line-clamp:var(--markdown-clamp);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.scalar-app .line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.scalar-app .\\!block{display:block!important}.scalar-app .\\!hidden{display:none!important}.scalar-app .block{display:block}.scalar-app .contents{display:contents}.scalar-app .flex{display:flex}.scalar-app .grid{display:grid}.scalar-app .hidden{display:none}.scalar-app .inline{display:inline}.scalar-app .inline-block{display:inline-block}.scalar-app .inline-flex{display:inline-flex}.scalar-app .table{display:table}.scalar-app .field-sizing-content{field-sizing:content}.scalar-app .aspect-\\[4\\/3\\]{aspect-ratio:4/3}.scalar-app .aspect-square{aspect-ratio:1}.scalar-app .size-1\\.5{width:6px;height:6px}.scalar-app .size-2\\.5{width:10px;height:10px}.scalar-app .size-2\\.75{width:11px;height:11px}.scalar-app .size-3{width:12px;height:12px}.scalar-app .size-3\\.5{width:14px;height:14px}.scalar-app .size-3\\/4{width:75%;height:75%}.scalar-app .size-4{width:16px;height:16px}.scalar-app .size-4\\.5{width:18px;height:18px}.scalar-app .size-5{width:20px;height:20px}.scalar-app .size-6{width:24px;height:24px}.scalar-app .size-8{width:32px;height:32px}.scalar-app .size-10{width:40px;height:40px}.scalar-app .size-\\[23px\\]{width:23px;height:23px}.scalar-app .size-full{width:100%;height:100%}.scalar-app .h-\\(--refs-sidebar-height\\){height:var(--refs-sidebar-height)}.scalar-app .h-\\(--scalar-address-bar-height\\){height:var(--scalar-address-bar-height)}.scalar-app .h-\\(--scalar-header-height\\){height:var(--scalar-header-height)}.scalar-app .h-0{height:0}.scalar-app .h-1{height:4px}.scalar-app .h-1\\.5{height:6px}.scalar-app .h-2{height:8px}.scalar-app .h-2\\.5{height:10px}.scalar-app .h-2\\.25{height:9px}.scalar-app .h-3{height:12px}.scalar-app .h-3\\.5{height:14px}.scalar-app .h-4{height:16px}.scalar-app .h-4\\.5{height:18px}.scalar-app .h-5{height:20px}.scalar-app .h-6{height:24px}.scalar-app .h-7{height:28px}.scalar-app .h-8{height:32px}.scalar-app .h-10{height:40px}.scalar-app .h-\\[calc\\(100\\%\\+16px\\)\\]{height:calc(100% + 16px)}.scalar-app .h-\\[calc\\(100\\%_-_50px\\)\\]{height:calc(100% - 50px)}.scalar-app .h-auto{height:auto}.scalar-app .h-border{height:var(--scalar-border-width)}.scalar-app .h-dvh{height:100dvh}.scalar-app .h-fit{height:fit-content}.scalar-app .h-full{height:100%}.scalar-app .h-lh{height:1lh}.scalar-app .h-min{height:min-content}.scalar-app .h-px{height:1px}.scalar-app .\\!max-h-\\[initial\\]{max-height:initial!important}.scalar-app .max-h-8{max-height:32px}.scalar-app .max-h-40{max-height:160px}.scalar-app .max-h-80{max-height:320px}.scalar-app .max-h-\\[60svh\\]{max-height:60svh}.scalar-app .max-h-\\[60vh\\]{max-height:60vh}.scalar-app .max-h-\\[80svh\\]{max-height:80svh}.scalar-app .max-h-\\[90svh\\]{max-height:90svh}.scalar-app .max-h-\\[auto\\]{max-height:auto}.scalar-app .max-h-\\[calc\\(100\\%-32px\\)\\]{max-height:calc(100% - 32px)}.scalar-app .max-h-\\[inherit\\]{max-height:inherit}.scalar-app .max-h-dvh{max-height:100dvh}.scalar-app .max-h-fit{max-height:fit-content}.scalar-app .max-h-radix-popper{max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px);max-height:calc(var(--radix-popper-available-height) - 8px)}.scalar-app .max-h-screen{max-height:100vh}.scalar-app .min-h-0{min-height:0}.scalar-app .min-h-3{min-height:12px}.scalar-app .min-h-7{min-height:28px}.scalar-app .min-h-8{min-height:32px}.scalar-app .min-h-10{min-height:40px}.scalar-app .min-h-11{min-height:44px}.scalar-app .min-h-16{min-height:64px}.scalar-app .min-h-20{min-height:80px}.scalar-app .min-h-\\[64px\\]{min-height:64px}.scalar-app .min-h-\\[calc\\(4rem\\+0\\.5px\\)\\]{min-height:calc(4rem + .5px)}.scalar-app .min-h-fit{min-height:fit-content}.scalar-app .min-h-header{min-height:48px}.scalar-app .\\!w-fit{width:fit-content!important}.scalar-app .w-\\(--refs-sidebar-width\\){width:var(--refs-sidebar-width)}.scalar-app .w-0\\.5{width:2px}.scalar-app .w-1\\.5{width:6px}.scalar-app .w-2\\.5{width:10px}.scalar-app .w-2\\.25{width:9px}.scalar-app .w-3{width:12px}.scalar-app .w-4{width:16px}.scalar-app .w-4\\.5{width:18px}.scalar-app .w-5{width:20px}.scalar-app .w-6{width:24px}.scalar-app .w-7{width:28px}.scalar-app .w-8{width:32px}.scalar-app .w-36{width:144px}.scalar-app .w-40{width:160px}.scalar-app .w-56{width:224px}.scalar-app .w-64{width:256px}.scalar-app .w-72{width:288px}.scalar-app .w-120{width:480px}.scalar-app .w-\\[38px\\]{width:38px}.scalar-app .w-\\[calc\\(100vw-12px\\)\\]{width:calc(100vw - 12px)}.scalar-app .w-\\[var\\(--scalar-sidebar-indent\\)\\]{width:var(--scalar-sidebar-indent)}.scalar-app .w-auto{width:auto}.scalar-app .w-border{width:var(--scalar-border-width)}.scalar-app .w-content{width:720px}.scalar-app .w-dvw{width:100dvw}.scalar-app .w-fit{width:fit-content}.scalar-app .w-full{width:100%}.scalar-app .w-max{width:max-content}.scalar-app .w-px{width:1px}.scalar-app .max-w-\\(--refs-content-max-width\\){max-width:var(--refs-content-max-width)}.scalar-app .max-w-3xl{max-width:768px}.scalar-app .max-w-64{max-width:256px}.scalar-app .max-w-\\[9rem\\]{max-width:9rem}.scalar-app .max-w-\\[100\\%\\]{max-width:100%}.scalar-app .max-w-\\[160px\\]{max-width:160px}.scalar-app .max-w-\\[220px\\]{max-width:220px}.scalar-app .max-w-\\[360px\\]{max-width:360px}.scalar-app .max-w-\\[480px\\]{max-width:480px}.scalar-app .max-w-\\[540px\\]{max-width:540px}.scalar-app .max-w-\\[640px\\]{max-width:640px}.scalar-app .max-w-\\[800px\\]{max-width:800px}.scalar-app .max-w-\\[1000px\\]{max-width:1000px}.scalar-app .max-w-\\[inherit\\]{max-width:inherit}.scalar-app .max-w-full{max-width:100%}.scalar-app .max-w-screen-padded-4{max-width:calc(100vw - 32px)}.scalar-app .max-w-xs{max-width:320px}.scalar-app .min-w-0{min-width:0}.scalar-app .min-w-2\\.25{min-width:9px}.scalar-app .min-w-3{min-width:12px}.scalar-app .min-w-4{min-width:16px}.scalar-app .min-w-4\\.5{min-width:18px}.scalar-app .min-w-6{min-width:24px}.scalar-app .min-w-7{min-width:28px}.scalar-app .min-w-8{min-width:32px}.scalar-app .min-w-32{min-width:128px}.scalar-app .min-w-48{min-width:192px}.scalar-app .min-w-\\[4\\.5rem\\]{min-width:4.5rem}.scalar-app .min-w-fit{min-width:fit-content}.scalar-app .min-w-full{min-width:100%}.scalar-app .min-w-min{min-width:min-content}.scalar-app .flex-1{flex:1}.scalar-app .flex-shrink,.scalar-app .shrink{flex-shrink:1}.scalar-app .shrink-0{flex-shrink:0}.scalar-app .flex-grow,.scalar-app .grow{flex-grow:1}.scalar-app .grow-3{flex-grow:3}.scalar-app .-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-x-0{--tw-translate-x:calc(4px * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-x-2\\.5{--tw-translate-x:calc(4px * 2.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-x-\\[14px\\]{--tw-translate-x:14px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .-translate-y-1\\.5{--tw-translate-y:calc(4px * -1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-y-0{--tw-translate-y:calc(4px * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-y-1\\.5{--tw-translate-y:calc(4px * 1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .translate-y-\\[200\\%\\]{--tw-translate-y:200%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scalar-app .scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scalar-app .rotate-45{rotate:45deg}.scalar-app .rotate-90{rotate:90deg}.scalar-app .rotate-180{rotate:180deg}.scalar-app .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.scalar-app .animate-pulse{animation:var(--animate-pulse)}.scalar-app .cursor-auto{cursor:auto}.scalar-app .cursor-default{cursor:default}.scalar-app .cursor-help{cursor:help}.scalar-app .cursor-not-allowed{cursor:not-allowed}.scalar-app .cursor-pointer{cursor:pointer}.scalar-app .cursor-text{cursor:text}.scalar-app .resize{resize:both}.scalar-app .resize-none{resize:none}.scalar-app .scroll-mt-16{scroll-margin-top:64px}.scalar-app .scroll-mt-24{scroll-margin-top:96px}.scalar-app .list-none{list-style-type:none}.scalar-app .appearance-none{appearance:none}.scalar-app .grid-flow-col{grid-auto-flow:column}.scalar-app .auto-rows-auto{grid-auto-rows:auto}.scalar-app .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.scalar-app .grid-cols-\\[44px_1fr_repeat\\(3\\,auto\\)\\]{grid-template-columns:44px 1fr repeat(3,auto)}.scalar-app .flex-col{flex-direction:column}.scalar-app .flex-row{flex-direction:row}.scalar-app .flex-wrap{flex-wrap:wrap}.scalar-app .content-end{align-content:flex-end}.scalar-app .content-start{align-content:flex-start}.scalar-app .items-baseline{align-items:baseline}.scalar-app .items-center{align-items:center}.scalar-app .items-end{align-items:flex-end}.scalar-app .items-start{align-items:flex-start}.scalar-app .items-stretch{align-items:stretch}.scalar-app .justify-between{justify-content:space-between}.scalar-app .justify-center{justify-content:center}.scalar-app .justify-end{justify-content:flex-end}.scalar-app .justify-start{justify-content:flex-start}.scalar-app .justify-stretch{justify-content:stretch}.scalar-app .gap-0\\.5{gap:2px}.scalar-app .gap-0\\.75{gap:3px}.scalar-app .gap-1{gap:4px}.scalar-app .gap-1\\.5{gap:6px}.scalar-app .gap-1\\.75{gap:7px}.scalar-app .gap-2{gap:8px}.scalar-app .gap-2\\.5{gap:10px}.scalar-app .gap-2\\.25{gap:9px}.scalar-app .gap-3{gap:12px}.scalar-app .gap-4{gap:16px}.scalar-app .gap-6{gap:24px}.scalar-app .gap-7{gap:28px}.scalar-app .gap-10{gap:40px}.scalar-app .gap-12{gap:48px}.scalar-app .gap-\\[1\\.5px\\]{gap:1.5px}.scalar-app .gap-px{gap:1px}.scalar-app .gap-x-2\\.5{column-gap:10px}:where(.scalar-app .space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(4px * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(4px * 1) * calc(1 - var(--tw-space-x-reverse)))}:where(.scalar-app .divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(var(--scalar-border-width) * var(--tw-divide-y-reverse));border-bottom-width:calc(var(--scalar-border-width) * calc(1 - var(--tw-divide-y-reverse)))}.scalar-app .self-center{align-self:center}.scalar-app .self-end{align-self:flex-end}.scalar-app .self-start{align-self:flex-start}.scalar-app .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scalar-app .overflow-auto{overflow:auto}.scalar-app .overflow-hidden{overflow:hidden}.scalar-app .overflow-visible{overflow:visible}.scalar-app .overflow-x-auto{overflow-x:auto}.scalar-app .overflow-x-hidden{overflow-x:hidden}.scalar-app .overflow-y-auto{overflow-y:auto}.scalar-app .overflow-y-hidden{overflow-y:hidden}.scalar-app .overflow-y-scroll{overflow-y:scroll}.scalar-app .overscroll-contain{overscroll-behavior:contain}.scalar-app .\\!rounded-none{border-radius:0!important}.scalar-app .rounded{border-radius:var(--scalar-radius)}.scalar-app .rounded-\\[inherit\\]{border-radius:inherit}.scalar-app .rounded-full{border-radius:9999px}.scalar-app .rounded-lg{border-radius:var(--scalar-radius-lg)}.scalar-app .rounded-md{border-radius:var(--scalar-radius)}.scalar-app .rounded-none{border-radius:0}.scalar-app .rounded-px{border-radius:1px}.scalar-app .rounded-xl{border-radius:var(--scalar-radius-xl)}.scalar-app .rounded-t{border-top-left-radius:var(--scalar-radius);border-top-right-radius:var(--scalar-radius)}.scalar-app .rounded-t-lg{border-top-left-radius:var(--scalar-radius-lg);border-top-right-radius:var(--scalar-radius-lg)}.scalar-app .rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.scalar-app .rounded-t-xl{border-top-left-radius:var(--scalar-radius-xl);border-top-right-radius:var(--scalar-radius-xl)}.scalar-app .\\!rounded-b-xl{border-bottom-right-radius:var(--scalar-radius-xl)!important;border-bottom-left-radius:var(--scalar-radius-xl)!important}.scalar-app .rounded-b{border-bottom-right-radius:var(--scalar-radius);border-bottom-left-radius:var(--scalar-radius)}.scalar-app .rounded-b-lg{border-bottom-right-radius:var(--scalar-radius-lg);border-bottom-left-radius:var(--scalar-radius-lg)}.scalar-app .rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.scalar-app .rounded-b-xl{border-bottom-right-radius:var(--scalar-radius-xl);border-bottom-left-radius:var(--scalar-radius-xl)}.scalar-app .border{border-style:var(--tw-border-style);border-width:var(--scalar-border-width)}.scalar-app .border-0{border-style:var(--tw-border-style);border-width:0}.scalar-app .border-1,.scalar-app .border-\\[1px\\]{border-style:var(--tw-border-style);border-width:1px}.scalar-app .border-x{border-inline-style:var(--tw-border-style);border-inline-width:var(--scalar-border-width)}.scalar-app .border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.scalar-app .border-y{border-block-style:var(--tw-border-style);border-block-width:var(--scalar-border-width)}.scalar-app .border-t{border-top-style:var(--tw-border-style);border-top-width:var(--scalar-border-width)}.scalar-app .border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.scalar-app .\\!border-r{border-right-style:var(--tw-border-style)!important;border-right-width:var(--scalar-border-width)!important}.scalar-app .border-r{border-right-style:var(--tw-border-style);border-right-width:var(--scalar-border-width)}.scalar-app .border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.scalar-app .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:var(--scalar-border-width)}.scalar-app .border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.scalar-app .border-l{border-left-style:var(--tw-border-style);border-left-width:var(--scalar-border-width)}.scalar-app .border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.scalar-app .border-dashed{--tw-border-style:dashed;border-style:dashed}.scalar-app .border-none{--tw-border-style:none;border-style:none}.scalar-app .\\!border-current{border-color:currentColor!important}.scalar-app .border-\\(--scalar-background-3\\){border-color:var(--scalar-background-3)}.scalar-app .border-border-header{border-color:var(--scalar-header-border-color,var(--scalar-border-color))}.scalar-app .border-c-accent,.scalar-app .border-c-accent\\/30{border-color:var(--scalar-color-accent)}@supports (color:color-mix(in lab, red, red)){.scalar-app .border-c-accent\\/30{border-color:color-mix(in oklab, var(--scalar-color-accent) 30%, transparent)}}.scalar-app .border-c-alert{border-color:var(--scalar-color-alert)}.scalar-app .border-c-danger{border-color:var(--scalar-color-danger)}.scalar-app .border-sidebar-border{border-color:var(--scalar-sidebar-border-color,var(--scalar-border-color))}.scalar-app .border-sidebar-border-search{border-color:var(--scalar-sidebar-search-border-color,var(--scalar-border-color))}.scalar-app .border-transparent{border-color:#0000}.scalar-app .border-r-transparent{border-right-color:#0000}.scalar-app .border-b-sidebar-border{border-bottom-color:var(--scalar-sidebar-border-color,var(--scalar-border-color))}.scalar-app .bg-\\(--bg-light\\){background-color:var(--bg-light)}.scalar-app .bg-b-1,.scalar-app .bg-b-1\\.5{background-color:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.scalar-app .bg-b-1\\.5{background-color:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.scalar-app .bg-b-2{background-color:var(--scalar-background-2)}.scalar-app .bg-b-3{background-color:var(--scalar-background-3)}.scalar-app .bg-b-alert{background-color:var(--scalar-background-alert)}.scalar-app .bg-b-btn{background-color:var(--scalar-button-1)}.scalar-app .bg-b-danger{background-color:var(--scalar-background-danger)}.scalar-app .bg-b-header-1{background-color:var(--scalar-header-background-1,var(--scalar-background-1))}.scalar-app .bg-b-header-cta{background-color:var(--scalar-header-call-to-action-color,var(--scalar-button-1))}.scalar-app .bg-b-tooltip{background-color:var(--scalar-tooltip-background)}.scalar-app .bg-backdrop{background-color:#00000038}.scalar-app .bg-border{background-color:var(--scalar-border-color)}.scalar-app .bg-c-accent,.scalar-app .bg-c-accent\\/5{background-color:var(--scalar-color-accent)}@supports (color:color-mix(in lab, red, red)){.scalar-app .bg-c-accent\\/5{background-color:color-mix(in oklab, var(--scalar-color-accent) 5%, transparent)}}.scalar-app .bg-c-accent\\/10{background-color:var(--scalar-color-accent)}@supports (color:color-mix(in lab, red, red)){.scalar-app .bg-c-accent\\/10{background-color:color-mix(in oklab, var(--scalar-color-accent) 10%, transparent)}}.scalar-app .bg-c-danger{background-color:var(--scalar-color-danger)}.scalar-app .bg-current{background-color:currentColor}.scalar-app .bg-inherit{background-color:inherit}.scalar-app .bg-sidebar-b-1{background-color:var(--scalar-sidebar-background-1,var(--scalar-background-1))}.scalar-app .bg-sidebar-b-active{background-color:var(--scalar-sidebar-item-active-background,var(--scalar-background-2))}.scalar-app .bg-sidebar-b-search{background-color:var(--scalar-sidebar-search-background,var(--scalar-background-2))}.scalar-app .bg-sidebar-c-2\\/15{background-color:var(--scalar-sidebar-color-2,var(--scalar-color-2))}@supports (color:color-mix(in lab, red, red)){.scalar-app .bg-sidebar-c-2\\/15{background-color:color-mix(in oklab, var(--scalar-sidebar-color-2,var(--scalar-color-2)) 15%, transparent)}}.scalar-app .bg-sidebar-indent-border{background-color:var(--scalar-sidebar-indent-border,var(--scalar-border-color))}.scalar-app .bg-sidebar-indent-border-active{background-color:var(--scalar-sidebar-indent-border-active,var(--scalar-color-accent))}.scalar-app .bg-transparent{background-color:#0000}.scalar-app .bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.scalar-app .bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.scalar-app .bg-linear-to-l{--tw-gradient-position:to left}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .bg-linear-to-l{--tw-gradient-position:to left in oklab}}.scalar-app .bg-linear-to-l{background-image:linear-gradient(var(--tw-gradient-stops))}.scalar-app .from-b-1{--tw-gradient-from:var(--scalar-background-1);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.scalar-app .from-40\\%{--tw-gradient-from-position:40%}.scalar-app .to-b-1\\.5{--tw-gradient-to:var(--scalar-background-1)}@supports (color:color-mix(in lab, red, red)){.scalar-app .to-b-1\\.5{--tw-gradient-to:color-mix(in srgb, var(--scalar-background-1), var(--scalar-background-2))}}.scalar-app .to-b-1\\.5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.scalar-app .to-b-2{--tw-gradient-to:var(--scalar-background-2);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.scalar-app .to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.scalar-app .mask-y-from-\\[calc\\(100\\%-8px\\)\\]{-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top);--tw-mask-top:linear-gradient(to top, var(--tw-mask-top-from-color) var(--tw-mask-top-from-position), var(--tw-mask-top-to-color) var(--tw-mask-top-to-position));--tw-mask-top-from-position:calc(100% - 8px);--tw-mask-bottom:linear-gradient(to bottom, var(--tw-mask-bottom-from-color) var(--tw-mask-bottom-from-position), var(--tw-mask-bottom-to-color) var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:calc(100% - 8px);-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;mask-composite:intersect}.scalar-app .mask-y-to-100\\%{-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top);--tw-mask-top:linear-gradient(to top, var(--tw-mask-top-from-color) var(--tw-mask-top-from-position), var(--tw-mask-top-to-color) var(--tw-mask-top-to-position));--tw-mask-top-to-position:100%;--tw-mask-bottom:linear-gradient(to bottom, var(--tw-mask-bottom-from-color) var(--tw-mask-bottom-from-position), var(--tw-mask-bottom-to-color) var(--tw-mask-bottom-to-position));--tw-mask-bottom-to-position:100%;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;mask-composite:intersect}.scalar-app .mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.scalar-app .fill-current{fill:currentColor}.scalar-app .\\!p-0{padding:0!important}.scalar-app .p-\\(--scalar-sidebar-padding\\){padding:var(--scalar-sidebar-padding)}.scalar-app .p-0{padding:0}.scalar-app .p-0\\.5{padding:2px}.scalar-app .p-0\\.75{padding:3px}.scalar-app .p-1{padding:4px}.scalar-app .p-1\\.5{padding:6px}.scalar-app .p-1\\.25{padding:5px}.scalar-app .p-1\\.75{padding:7px}.scalar-app .p-2{padding:8px}.scalar-app .p-2\\.5{padding:10px}.scalar-app .p-3{padding:12px}.scalar-app .p-4{padding:16px}.scalar-app .p-7{padding:28px}.scalar-app .p-\\[3px\\]{padding:3px}.scalar-app .p-px{padding:1px}.scalar-app .px-\\(--scalar-sidebar-padding\\){padding-inline:var(--scalar-sidebar-padding)}.scalar-app .px-0{padding-inline:0}.scalar-app .px-0\\.5{padding-inline:2px}.scalar-app .px-0\\.75{padding-inline:3px}.scalar-app .px-1{padding-inline:4px}.scalar-app .px-1\\.5{padding-inline:6px}.scalar-app .px-1\\.25{padding-inline:5px}.scalar-app .px-2{padding-inline:8px}.scalar-app .px-2\\.5{padding-inline:10px}.scalar-app .px-3{padding-inline:12px}.scalar-app .px-3\\.5{padding-inline:14px}.scalar-app .px-4{padding-inline:16px}.scalar-app .px-5{padding-inline:20px}.scalar-app .px-6{padding-inline:24px}.scalar-app .px-15{padding-inline:60px}.scalar-app .py-0{padding-block:0}.scalar-app .py-0\\.5{padding-block:2px}.scalar-app .py-0\\.25{padding-block:1px}.scalar-app .py-0\\.75{padding-block:3px}.scalar-app .py-1{padding-block:4px}.scalar-app .py-1\\.5{padding-block:6px}.scalar-app .py-1\\.25{padding-block:5px}.scalar-app .py-1\\.75{padding-block:7px}.scalar-app .py-2{padding-block:8px}.scalar-app .py-2\\.5{padding-block:10px}.scalar-app .py-2\\.25{padding-block:9px}.scalar-app .py-3{padding-block:12px}.scalar-app .py-4{padding-block:16px}.scalar-app .py-\\[6\\.75px\\]{padding-block:6.75px}.scalar-app .py-px{padding-block:1px}.scalar-app .pt-\\(--scalar-sidebar-padding\\){padding-top:var(--scalar-sidebar-padding)}.scalar-app .pt-1{padding-top:4px}.scalar-app .pt-2{padding-top:8px}.scalar-app .pt-3{padding-top:12px}.scalar-app .pt-px{padding-top:1px}.scalar-app .pr-0{padding-right:0}.scalar-app .pr-0\\.75{padding-right:3px}.scalar-app .pr-1{padding-right:4px}.scalar-app .pr-1\\.5{padding-right:6px}.scalar-app .pr-2{padding-right:8px}.scalar-app .pr-2\\.5{padding-right:10px}.scalar-app .pr-2\\.25{padding-right:9px}.scalar-app .pr-3{padding-right:12px}.scalar-app .pr-6{padding-right:24px}.scalar-app .pr-8{padding-right:32px}.scalar-app .pr-10{padding-right:40px}.scalar-app .pr-12{padding-right:48px}.scalar-app .pr-20{padding-right:80px}.scalar-app .pr-\\[100\\%\\]{padding-right:100%}.scalar-app .pb-1{padding-bottom:4px}.scalar-app .pb-1\\.5{padding-bottom:6px}.scalar-app .pb-3{padding-bottom:12px}.scalar-app .pb-6{padding-bottom:24px}.scalar-app .pb-12{padding-bottom:48px}.scalar-app .\\!pl-3{padding-left:12px!important}.scalar-app .pl-1{padding-left:4px}.scalar-app .pl-1\\.25{padding-left:5px}.scalar-app .pl-2{padding-left:8px}.scalar-app .pl-3{padding-left:12px}.scalar-app .pl-4{padding-left:16px}.scalar-app .pl-8{padding-left:32px}.scalar-app .pl-8\\.5{padding-left:34px}.scalar-app .pl-\\[100\\%\\]{padding-left:100%}.scalar-app .pl-px{padding-left:1px}.scalar-app .text-center{text-align:center}.scalar-app .text-left{text-align:left}.scalar-app .text-right{text-align:right}.scalar-app .font-code{font-family:var(--scalar-font-code)}.scalar-app .font-sans{font-family:var(--scalar-font)}.scalar-app .text-base{font-size:var(--scalar-font-size-3);line-height:var(--tw-leading,calc(1 / .875))}.scalar-app .text-base\\/4{font-size:var(--scalar-font-size-3);line-height:16px}.scalar-app .text-base\\/5{font-size:var(--scalar-font-size-3);line-height:20px}.scalar-app .text-base\\/5\\.25{font-size:var(--scalar-font-size-3);line-height:21px}.scalar-app .text-lg{font-size:var(--scalar-font-size-2);line-height:var(--tw-leading,calc(1.25 / 1))}.scalar-app .text-sm\\/4{font-size:var(--scalar-font-size-4);line-height:16px}.scalar-app .text-sm\\/none{font-size:var(--scalar-font-size-4);line-height:1}.scalar-app .text-xs\\/4{font-size:var(--scalar-font-size-5);line-height:16px}.scalar-app .text-3xs{font-size:var(--scalar-font-size-7)}.scalar-app .text-\\[6px\\]{font-size:6px}.scalar-app .text-\\[9px\\]{font-size:9px}.scalar-app .text-\\[10px\\]{font-size:10px}.scalar-app .text-\\[11px\\]{font-size:11px}.scalar-app .text-sm{font-size:var(--scalar-font-size-4)}.scalar-app .text-xs{font-size:var(--scalar-font-size-5)}.scalar-app .text-xxs{font-size:var(--scalar-font-size-6)}.scalar-app .leading-5{--tw-leading:calc(4px * 5);line-height:20px}.scalar-app .leading-5\\.5{--tw-leading:calc(4px * 5.5);line-height:22px}.scalar-app .leading-6{--tw-leading:calc(4px * 6);line-height:24px}.scalar-app .leading-\\[1\\.44\\]{--tw-leading:1.44;line-height:1.44}.scalar-app .leading-\\[1\\.45\\]{--tw-leading:1.45;line-height:1.45}.scalar-app .leading-\\[7px\\]{--tw-leading:7px;line-height:7px}.scalar-app .leading-\\[20px\\]{--tw-leading:20px;line-height:20px}.scalar-app .leading-\\[22px\\]{--tw-leading:22px;line-height:22px}.scalar-app .leading-\\[normal\\]{--tw-leading:normal;line-height:normal}.scalar-app .leading-none{--tw-leading:1;line-height:1}.scalar-app .leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.scalar-app .leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.scalar-app .leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.scalar-app .font-bold{--tw-font-weight:var(--scalar-bold);font-weight:var(--scalar-bold)}.scalar-app .font-medium{--tw-font-weight:var(--scalar-semibold);font-weight:var(--scalar-semibold)}.scalar-app .font-normal{--tw-font-weight:var(--scalar-regular);font-weight:var(--scalar-regular)}.scalar-app .font-sidebar{--tw-font-weight:var(--scalar-sidebar-font-weight,var(--scalar-regular));font-weight:var(--scalar-sidebar-font-weight,var(--scalar-regular))}.scalar-app .font-sidebar-active{--tw-font-weight:var(--scalar-sidebar-font-weight-active,var(--scalar-semibold));font-weight:var(--scalar-sidebar-font-weight-active,var(--scalar-semibold))}.scalar-app .text-balance{text-wrap:balance}.scalar-app .text-nowrap{text-wrap:nowrap}.scalar-app .text-pretty{text-wrap:pretty}.scalar-app .text-wrap{text-wrap:wrap}.scalar-app .break-words,.scalar-app .wrap-break-word{overflow-wrap:break-word}.scalar-app .text-ellipsis{text-overflow:ellipsis}.scalar-app .whitespace-nowrap{white-space:nowrap}.scalar-app .whitespace-pre{white-space:pre}.scalar-app .whitespace-pre-wrap{white-space:pre-wrap}.scalar-app .\\!text-c-1{color:var(--scalar-color-1)!important}.scalar-app .text-\\[color\\:var\\(--scalar-color-3\\)\\]{color:var(--scalar-color-3)}.scalar-app .text-b-1{color:var(--scalar-background-1)}.scalar-app .text-b-2{color:var(--scalar-background-2)}.scalar-app .text-blue{color:var(--scalar-color-blue)}.scalar-app .text-c-1{color:var(--scalar-color-1)}.scalar-app .text-c-2{color:var(--scalar-color-2)}.scalar-app .text-c-3{color:var(--scalar-color-3)}.scalar-app .text-c-accent{color:var(--scalar-color-accent)}.scalar-app .text-c-alert{color:var(--scalar-color-alert)}.scalar-app .text-c-btn{color:var(--scalar-button-1-color)}.scalar-app .text-c-danger{color:var(--scalar-color-danger)}.scalar-app .text-c-header-1{color:var(--scalar-header-color-1,var(--scalar-color-1))}.scalar-app .text-c-header-2{color:var(--scalar-header-color-2,var(--scalar-color-2))}.scalar-app .text-c-header-cta{color:var(--scalar-button-1-color)}.scalar-app .text-c-tooltip{color:var(--scalar-tooltip-color)}.scalar-app .text-current{color:currentColor}.scalar-app .text-green{color:var(--scalar-color-green)}.scalar-app .text-grey{color:var(--scalar-color-3)}.scalar-app .text-orange{color:var(--scalar-color-orange)}.scalar-app .text-purple{color:var(--scalar-color-purple)}.scalar-app .text-red{color:var(--scalar-color-red)}.scalar-app .text-sidebar-c-1{color:var(--scalar-sidebar-color-1,var(--scalar-color-1))}.scalar-app .text-sidebar-c-2{color:var(--scalar-sidebar-color-2,var(--scalar-color-2))}.scalar-app .text-sidebar-c-active{color:var(--scalar-sidebar-color-active,var(--scalar-sidebar-color-1))}.scalar-app .text-sidebar-c-search{color:var(--scalar-sidebar-search-color,var(--scalar-color-3))}.scalar-app .text-transparent{color:#0000}.scalar-app .text-white{color:#fff}.scalar-app .text-yellow{color:var(--scalar-color-yellow)}.scalar-app .capitalize{text-transform:capitalize}.scalar-app .uppercase{text-transform:uppercase}.scalar-app .italic{font-style:italic}.scalar-app .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.scalar-app .line-through{text-decoration-line:line-through}.scalar-app .no-underline{text-decoration-line:none}.scalar-app .underline{text-decoration-line:underline}.scalar-app .decoration-c-3{-webkit-text-decoration-color:var(--scalar-color-3);-webkit-text-decoration-color:var(--scalar-color-3);-webkit-text-decoration-color:var(--scalar-color-3);text-decoration-color:var(--scalar-color-3)}.scalar-app .decoration-dotted{text-decoration-style:dotted}.scalar-app .underline-offset-2{text-underline-offset:2px}.scalar-app .opacity-0{opacity:0}.scalar-app .opacity-40{opacity:.4}.scalar-app .opacity-50{opacity:.5}.scalar-app .opacity-100{opacity:1}.scalar-app .bg-blend-normal{background-blend-mode:normal}.scalar-app .shadow{--tw-shadow:var(--scalar-shadow-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .shadow-\\[-8px_0_4px_var\\(--scalar-background-1\\)\\]{--tw-shadow:-8px 0 4px var(--tw-shadow-color,var(--scalar-background-1));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .shadow-border{--tw-shadow:inset 0 0 0 var(--tw-shadow-color,var(--scalar-border-width)) var(--scalar-border-color);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .shadow-lg{--tw-shadow:var(--scalar-shadow-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .shadow-md{--tw-shadow:var(--scalar-shadow-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .outline{outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .-outline-offset-1{outline-offset:calc(1px * -1)}.scalar-app .-outline-offset-2{outline-offset:calc(2px * -1)}.scalar-app .outline-offset-1{outline-offset:1px}.scalar-app .outline-offset-2{outline-offset:2px}.scalar-app .outline-offset-\\[-1px\\]{outline-offset:-1px}.scalar-app .outline-c-danger{outline-color:var(--scalar-color-danger)}.scalar-app .blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .brightness-90{--tw-brightness:brightness(90%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .brightness-lifted{--tw-brightness:brightness(var(--scalar-lifted-brightness));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.scalar-app .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.scalar-app .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))}.scalar-app .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))}.scalar-app .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))}.scalar-app .transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.scalar-app .transition-none{transition-property:none}.scalar-app .duration-100{--tw-duration:.1s;transition-duration:.1s}.scalar-app .duration-150{--tw-duration:.15s;transition-duration:.15s}.scalar-app .duration-200{--tw-duration:.2s;transition-duration:.2s}.scalar-app .duration-300{--tw-duration:.3s;transition-duration:.3s}.scalar-app .duration-400{--tw-duration:.4s;transition-duration:.4s}.scalar-app .duration-500{--tw-duration:.5s;transition-duration:.5s}.scalar-app .ease-\\[cubic-bezier\\(0\\.77\\,0\\,0\\.175\\,1\\)\\]{--tw-ease:cubic-bezier(.77,0,.175,1);transition-timing-function:cubic-bezier(.77,0,.175,1)}.scalar-app .ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.scalar-app .ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.scalar-app .ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.scalar-app .ease-spring{--tw-ease:linear(0, .008 1.1%, .034 2.3%, .134 4.9%, .264 7.3%, .683 14.3%, .797 16.5%, .89 18.6%, .967 20.7%, 1.027 22.8%, 1.073 25%, 1.104 27.3%, 1.123 30.6%, 1.119 34.3%, 1.018 49.5%, .988 58.6%, .985 65.2%, 1 84.5%, 1);transition-timing-function:linear(0, .008 1.1%, .034 2.3%, .134 4.9%, .264 7.3%, .683 14.3%, .797 16.5%, .89 18.6%, .967 20.7%, 1.027 22.8%, 1.073 25%, 1.104 27.3%, 1.123 30.6%, 1.119 34.3%, 1.018 49.5%, .988 58.6%, .985 65.2%, 1 84.5%, 1)}.scalar-app .outline-none{--tw-outline-style:none;outline-style:none}.scalar-app .select-none{-webkit-user-select:none;user-select:none}.scalar-app .\\[--scalar-address-bar-height\\:0px\\]{--scalar-address-bar-height:0px}.scalar-app .\\[--scalar-address-bar-height\\:32px\\]{--scalar-address-bar-height:32px}.scalar-app .\\[grid-area\\:header\\]{grid-area:header}.scalar-app .\\[grid-area\\:navigation\\]{grid-area:navigation}:is(.scalar-app .\\*\\:flex>*){display:flex}:is(.scalar-app .\\*\\:size-3>*){width:12px;height:12px}:is(.scalar-app .\\*\\:size-4>*){width:16px;height:16px}:is(.scalar-app .\\*\\:h-5>*){height:20px}:is(.scalar-app .\\*\\:h-8>*){height:32px}:is(.scalar-app .\\*\\:min-w-5>*){min-width:20px}:is(.scalar-app .\\*\\:flex-1>*){flex:1}:is(.scalar-app .\\*\\:cursor-pointer>*){cursor:pointer}:is(.scalar-app .\\*\\:items-center>*){align-items:center}:is(.scalar-app .\\*\\:justify-center>*){justify-content:center}:is(.scalar-app .\\*\\:gap-1>*){gap:4px}:is(.scalar-app .\\*\\:rounded>*){border-radius:var(--scalar-radius)}:is(.scalar-app .\\*\\:rounded-none>*){border-radius:0}:is(.scalar-app .\\*\\:border>*){border-style:var(--tw-border-style);border-width:var(--scalar-border-width)}:is(.scalar-app .\\*\\:border-t>*){border-top-style:var(--tw-border-style);border-top-width:var(--scalar-border-width)}:is(.scalar-app .\\*\\:border-border-tooltip>*){border-color:var(--scalar-tooltip-color)}@supports (color:color-mix(in lab, red, red)){:is(.scalar-app .\\*\\:border-border-tooltip>*){border-color:color-mix(in srgb, var(--scalar-tooltip-color), var(--scalar-tooltip-background))}}:is(.scalar-app .\\*\\:px-1>*){padding-inline:4px}:is(.scalar-app .\\*\\:px-1\\.5>*){padding-inline:6px}:is(.scalar-app .\\*\\:pl-4>*){padding-left:16px}.scalar-app .group-first\\/row\\:border-t-0:is(:where(.group\\/row):first-child *){border-top-style:var(--tw-border-style);border-top-width:0}.scalar-app .group-last\\:mr-0:is(:where(.group):last-child *){margin-right:0}.scalar-app .group-last\\:border-b-transparent:is(:where(.group):last-child *){border-bottom-color:#0000}.scalar-app .group-last\\/label\\:rounded-br-lg:is(:where(.group\\/label):last-child *){border-bottom-right-radius:var(--scalar-radius-lg)}.scalar-app .group-open\\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.scalar-app .group-open\\:flex-wrap:is(:where(.group):is([open],:popover-open,:open) *){flex-wrap:wrap}.scalar-app .group-open\\:whitespace-normal:is(:where(.group):is([open],:popover-open,:open) *){white-space:normal}.scalar-app .group-focus-within\\:flex:is(:where(.group):focus-within *){display:flex}.scalar-app .group-focus-within\\/parameter-item\\:opacity-100:is(:where(.group\\/parameter-item):focus-within *),.scalar-app .group-focus-within\\/scope-row\\:opacity-100:is(:where(.group\\/scope-row):focus-within *){opacity:1}@media (hover:hover){.scalar-app .group-hover\\:flex:is(:where(.group):hover *){display:flex}.scalar-app .group-hover\\:pr-10:is(:where(.group):hover *){padding-right:40px}.scalar-app .group-hover\\:text-c-1:is(:where(.group):hover *){color:var(--scalar-color-1)}.scalar-app .group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.scalar-app .group-hover\\/button\\:bg-sidebar-indent-border-hover:is(:where(.group\\/button):hover *){background-color:var(--scalar-sidebar-indent-border-hover,var(--scalar-border-color))}.scalar-app .group-hover\\/button\\:text-c-header-1:is(:where(.group\\/button):hover *){color:var(--scalar-header-color-1,var(--scalar-color-1))}.scalar-app .group-hover\\/button\\:opacity-0:is(:where(.group\\/button):hover *){opacity:0}.scalar-app .group-hover\\/heading\\:opacity-100:is(:where(.group\\/heading):hover *),.scalar-app .group-hover\\/item\\:opacity-100:is(:where(.group\\/item):hover *),.scalar-app .group-hover\\/parameter-item\\:opacity-100:is(:where(.group\\/parameter-item):hover *),.scalar-app .group-hover\\/params\\:opacity-100:is(:where(.group\\/params):hover *){opacity:1}.scalar-app .group-hover\\/row\\:flex:is(:where(.group\\/row):hover *){display:flex}.scalar-app .group-hover\\/scope-row\\:text-c-1:is(:where(.group\\/scope-row):hover *){color:var(--scalar-color-1)}.scalar-app .group-hover\\/scope-row\\:opacity-100:is(:where(.group\\/scope-row):hover *){opacity:1}.scalar-app .group-hover\\/scopes-accordion\\:text-c-2:is(:where(.group\\/scopes-accordion):hover *){color:var(--scalar-color-2)}}.scalar-app .group-focus-visible\\:outline:is(:where(.group):focus-visible *){outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .group-focus-visible\\/button\\:opacity-0:is(:where(.group\\/button):focus-visible *){opacity:0}.scalar-app .group-focus-visible\\/toggle\\:outline:is(:where(.group\\/toggle):focus-visible *){outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .group-has-focus-visible\\/heading\\:opacity-100:is(:where(.group\\/heading):has(:focus-visible) *){opacity:1}.scalar-app .group-has-\\[\\.cm-focused\\]\\:z-1:is(:where(.group):has(.cm-focused) *){z-index:1}.scalar-app .group-has-\\[\\.cm-focused\\]\\:flex:is(:where(.group):has(.cm-focused) *){display:flex}.scalar-app .group-has-\\[\\.cm-focused\\]\\:pr-10:is(:where(.group):has(.cm-focused) *){padding-right:40px}.scalar-app .group-has-\\[\\:focus-visible\\]\\/cell\\:border-c-accent:is(:where(.group\\/cell):has(:focus-visible) *){border-color:var(--scalar-color-accent)}.scalar-app .group-has-\\[\\:focus-visible\\]\\/cell\\:opacity-100:is(:where(.group\\/cell):has(:focus-visible) *){opacity:1}.scalar-app .group-has-\\[\\:focus-visible\\]\\/input\\:block:is(:where(.group\\/input):has(:focus-visible) *){display:block}.scalar-app .group-has-\\[input\\]\\/label\\:mr-0:is(:where(.group\\/label):has(:is(input)) *){margin-right:0}.scalar-app .group-has-\\[\\~\\*_\\[aria-expanded\\=true\\]\\]\\/button\\:opacity-0:is(:where(.group\\/button):has(~* [aria-expanded=true]) *),.scalar-app .group-has-\\[\\~\\*\\:focus-within\\]\\/button\\:opacity-0:is(:where(.group\\/button):has(~:focus-within) *),.scalar-app .group-has-\\[\\~\\*\\:hover\\]\\/button\\:opacity-0:is(:where(.group\\/button):has(~:hover) *){opacity:0}.scalar-app .group-aria-expanded\\/button\\:rotate-180:is(:where(.group\\/button)[aria-expanded=true] *),.scalar-app .group-aria-expanded\\/combobox-button\\:rotate-180:is(:where(.group\\/combobox-button)[aria-expanded=true] *){rotate:180deg}.scalar-app .group-hocus\\/copy-button\\:sr-only:is(:is(:where(.group\\/copy-button):hover,:where(.group\\/copy-button):focus-visible) *){clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scalar-app .group-hocus\\/copy-button\\:not-sr-only:is(:is(:where(.group\\/copy-button):hover,:where(.group\\/copy-button):focus-visible) *){clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.scalar-app .group-hocus\\/copy-button\\:block:is(:is(:where(.group\\/copy-button):hover,:where(.group\\/copy-button):focus-visible) *){display:block}.scalar-app .group-hocus-within\\/code-block\\:-left-0\\.5:is(:is(:where(.group\\/code-block):hover,:where(.group\\/code-block):focus-within) *){left:-2px}.scalar-app .group-hocus-within\\/code-block\\:inline:is(:is(:where(.group\\/code-block):hover,:where(.group\\/code-block):focus-within) *){display:inline}.scalar-app .group-hocus-within\\/code-block\\:opacity-100:is(:is(:where(.group\\/code-block):hover,:where(.group\\/code-block):focus-within) *){opacity:1}.scalar-app .group-\\[\\.alert\\]\\:bg-b-alert:is(:where(.group).alert *){background-color:var(--scalar-background-alert)}.scalar-app .group-\\[\\.alert\\]\\:bg-transparent:is(:where(.group).alert *){background-color:#0000}.scalar-app .group-\\[\\.alert\\]\\:shadow-none:is(:where(.group).alert *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .group-\\[\\.alert\\]\\:outline-orange:is(:where(.group).alert *){outline-color:var(--scalar-color-orange)}.scalar-app .group-\\[\\.error\\]\\:bg-b-danger:is(:where(.group).error *){background-color:var(--scalar-background-danger)}.scalar-app .group-\\[\\.error\\]\\:bg-transparent:is(:where(.group).error *){background-color:#0000}.scalar-app .group-\\[\\.error\\]\\:text-red:is(:where(.group).error *){color:var(--scalar-color-red)}.scalar-app .group-\\[\\.error\\]\\:shadow-none:is(:where(.group).error *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.scalar-app .group-\\[\\.error\\]\\:outline-red:is(:where(.group).error *){outline-color:var(--scalar-color-red)}.scalar-app .peer-checked\\:text-c-1:is(:where(.peer):checked~*){color:var(--scalar-color-1)}@media (hover:hover){.scalar-app .peer-hover\\/button\\:opacity-100:is(:where(.peer\\/button):hover~*){opacity:1}}.scalar-app .peer-focus-visible\\/button\\:opacity-100:is(:where(.peer\\/button):focus-visible~*){opacity:1}.scalar-app .peer-has-\\[\\.cm-focused\\]\\:opacity-0:is(:where(.peer):has(.cm-focused)~*){opacity:0}.scalar-app .peer-has-\\[\\.color-selector\\]\\:hidden:is(:where(.peer):has(.color-selector)~*){display:none}.scalar-app .placeholder\\:font-\\[inherit\\]::placeholder{font-family:inherit}:is(.scalar-app .\\*\\:not-first\\:before\\:content-\\[\\'_·_\\'\\]>*):not(:first-child):before{--tw-content:" · ";content:var(--tw-content)}.scalar-app .after\\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.scalar-app .after\\:absolute:after{content:var(--tw-content);position:absolute}.scalar-app .after\\:inset-0:after{content:var(--tw-content);inset:0}.scalar-app .after\\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.scalar-app .after\\:-top-0\\.5:after{content:var(--tw-content);top:-2px}.scalar-app .after\\:-bottom-0\\.5:after{content:var(--tw-content);bottom:-2px}.scalar-app .after\\:block:after{content:var(--tw-content);display:block}.scalar-app .after\\:h-0\\.75:after{content:var(--tw-content);height:3px}.scalar-app .after\\:rounded:after{content:var(--tw-content);border-radius:var(--scalar-radius)}.scalar-app .after\\:bg-blue:after{content:var(--tw-content);background-color:var(--scalar-color-blue)}.scalar-app .after\\:opacity-15:after{content:var(--tw-content);opacity:.15}.scalar-app .after\\:content-\\[\\'\\:\\'\\]:after{--tw-content:":";content:var(--tw-content)}.scalar-app .first\\:rounded-t-\\[inherit\\]:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}:is(.scalar-app .\\*\\:first\\:rounded-l>*):first-child{border-top-left-radius:var(--scalar-radius);border-bottom-left-radius:var(--scalar-radius)}:is(.scalar-app .\\*\\:first\\:border-t-0>*):first-child,:is(.scalar-app .first\\:\\*\\:border-t-0:first-child>*){border-top-style:var(--tw-border-style);border-top-width:0}:is(.scalar-app .\\*\\:first\\:p-3>*):first-child{padding:12px}.scalar-app .last\\:rounded-b-\\[inherit\\]:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.scalar-app .last\\:rounded-b-lg:last-child{border-bottom-right-radius:var(--scalar-radius-lg);border-bottom-left-radius:var(--scalar-radius-lg)}.scalar-app .last\\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}:is(.scalar-app .\\*\\:last\\:rounded-r>*):last-child{border-top-right-radius:var(--scalar-radius);border-bottom-right-radius:var(--scalar-radius)}.scalar-app .last-of-type\\:first-of-type\\:border-b-0:last-of-type:first-of-type{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.scalar-app .empty\\:hidden:empty{display:none}.scalar-app .focus-within\\:bg-b-1:focus-within{background-color:var(--scalar-background-1)}.scalar-app .focus-within\\:text-c-1:focus-within{color:var(--scalar-color-1)}.scalar-app .focus-within\\:opacity-100:focus-within{opacity:1}.scalar-app .focus-within\\:outline-none:focus-within{--tw-outline-style:none;outline-style:none}@media (hover:hover){.scalar-app .hover\\:bg-b-2:hover{background-color:var(--scalar-background-2)}.scalar-app .hover\\:bg-b-3:hover{background-color:var(--scalar-background-3)}.scalar-app .hover\\:bg-b-header-2:hover{background-color:var(--scalar-header-background-2,var(--scalar-background-2))}.scalar-app .hover\\:bg-c-accent\\/20:hover{background-color:var(--scalar-color-accent)}@supports (color:color-mix(in lab, red, red)){.scalar-app .hover\\:bg-c-accent\\/20:hover{background-color:color-mix(in oklab, var(--scalar-color-accent) 20%, transparent)}}.scalar-app .hover\\:bg-h-btn:hover{background-color:var(--scalar-button-1-hover)}.scalar-app .hover\\:bg-h-header-cta:hover{background-color:var(--scalar-header-call-to-action-color,var(--scalar-button-1))}@supports (color:color-mix(in lab, red, red)){.scalar-app .hover\\:bg-h-header-cta:hover{background-color:color-mix(in srgb, var(--scalar-header-call-to-action-color,var(--scalar-button-1)), var(--scalar-header-background-1,var(--scalar-background-1)) 15%)}}.scalar-app .hover\\:bg-sidebar-b-1:hover{background-color:var(--scalar-sidebar-background-1,var(--scalar-background-1))}.scalar-app .hover\\:bg-sidebar-b-hover:hover{background-color:var(--scalar-sidebar-item-hover-background,var(--scalar-background-2))}.scalar-app .hover\\:bg-linear-to-b:hover{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .hover\\:bg-linear-to-b:hover{--tw-gradient-position:to bottom in oklab}}.scalar-app .hover\\:bg-linear-to-b:hover{background-image:linear-gradient(var(--tw-gradient-stops))}.scalar-app .hover\\:bg-linear-to-t:hover{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .hover\\:bg-linear-to-t:hover{--tw-gradient-position:to top in oklab}}.scalar-app .hover\\:bg-linear-to-t:hover{background-image:linear-gradient(var(--tw-gradient-stops))}.scalar-app .hover\\:text-c-1:hover{color:var(--scalar-color-1)}.scalar-app .hover\\:text-c-2:hover{color:var(--scalar-color-2)}.scalar-app .hover\\:text-c-header-1:hover{color:var(--scalar-header-color-1,var(--scalar-color-1))}.scalar-app .hover\\:text-sidebar-c-1:hover{color:var(--scalar-sidebar-color-1,var(--scalar-color-1))}.scalar-app .hover\\:text-sidebar-c-hover:hover{color:var(--scalar-sidebar-item-hover-color,var(--scalar-sidebar-color-2))}.scalar-app .hover\\:underline:hover{text-decoration-line:underline}.scalar-app .hover\\:opacity-100:hover{opacity:1}.scalar-app .hover\\:brightness-75:hover{--tw-brightness:brightness(75%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .hover\\:brightness-90:hover{--tw-brightness:brightness(90%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.scalar-app .focus\\:border-b-1:focus{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--scalar-background-1)}.scalar-app .focus\\:text-c-1:focus{color:var(--scalar-color-1)}.scalar-app .focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.scalar-app .focus-visible\\:border-c-btn:focus-visible{border-color:var(--scalar-button-1-color)}.scalar-app .focus-visible\\:opacity-100:focus-visible{opacity:1}.scalar-app .focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.scalar-app .active\\:bg-b-btn:active{background-color:var(--scalar-button-1)}.scalar-app .active\\:text-c-1:active{color:var(--scalar-color-1)}.scalar-app .active\\:brightness-90:active{--tw-brightness:brightness(90%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.scalar-app .disabled\\:pointer-events-none:disabled{pointer-events:none}.scalar-app .disabled\\:cursor-default:disabled{cursor:default}.scalar-app .disabled\\:text-c-2:disabled{color:var(--scalar-color-2)}.scalar-app .disabled\\:opacity-30:disabled{opacity:.3}.scalar-app .has-focus-visible\\:outline:has(:focus-visible){outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .has-\\[\\:focus-visible\\]\\:absolute:has(:focus-visible){position:absolute}.scalar-app .has-\\[\\:focus-visible\\]\\:z-1:has(:focus-visible){z-index:1}.scalar-app .has-\\[\\:focus-visible\\]\\:rounded-\\[4px\\]:has(:focus-visible){border-radius:4px}.scalar-app .has-\\[\\:focus-visible\\]\\:bg-b-1:has(:focus-visible){background-color:var(--scalar-background-1)}.scalar-app .has-\\[\\:focus-visible\\]\\:bg-sidebar-b-1:has(:focus-visible){background-color:var(--scalar-sidebar-background-1,var(--scalar-background-1))}.scalar-app .has-\\[\\:focus-visible\\]\\:opacity-100:has(:focus-visible){opacity:1}:is(.scalar-app .has-\\[\\:focus-visible\\]\\:outline:has(:focus-visible),.scalar-app .has-\\[input\\:focus-visible\\]\\:outline:has(:is(input:focus-visible))){outline-style:var(--tw-outline-style);outline-width:1px}.scalar-app .has-\\[\\&\\[aria-expanded\\=true\\]\\]\\:opacity-100:has([aria-expanded=true]){opacity:1}@media not all and (width>=800px){.scalar-app .max-md\\:absolute\\!{position:absolute!important}.scalar-app .max-md\\:top-4{top:16px}.scalar-app .max-md\\:z-5{z-index:5}.scalar-app .max-md\\:w-full\\!{width:100%!important}.scalar-app .max-md\\:pt-2{padding-top:8px}.scalar-app .max-md\\:pt-12{padding-top:48px}.scalar-app .max-md\\:pl-4\\!{padding-left:16px!important}.scalar-app .max-md\\:pl-10{padding-left:40px}.scalar-app .max-md\\:pl-14{padding-left:56px}}@media (width>=800px){.scalar-app .md\\:pointer-events-none{pointer-events:none}.scalar-app .md\\:absolute{position:absolute}.scalar-app .md\\:inset-x-1{inset-inline:4px}.scalar-app .md\\:top-1\\/2{top:50%}.scalar-app .md\\:mt-0{margin-top:0}.scalar-app .md\\:-ml-1\\.25{margin-left:-5px}.scalar-app .md\\:w-\\[calc\\(100vw-16px\\)\\]{width:calc(100vw - 16px)}.scalar-app .md\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scalar-app .md\\:flex-row{flex-direction:row}.scalar-app .md\\:px-1\\.5{padding-inline:6px}.scalar-app .md\\:opacity-0{opacity:0}:is(.scalar-app .md\\:\\*\\:border-t-0>*){border-top-style:var(--tw-border-style);border-top-width:0}@media (hover:hover){.scalar-app .md\\:group-hover\\/upload\\:pointer-events-auto:is(:where(.group\\/upload):hover *){pointer-events:auto}.scalar-app .md\\:group-hover\\/upload\\:opacity-100:is(:where(.group\\/upload):hover *){opacity:1}}}@media (width>=1000px){.scalar-app .lg\\:-mr-1{margin-right:-4px}.scalar-app .lg\\:flex{display:flex}.scalar-app .lg\\:hidden{display:none}.scalar-app .lg\\:min-h-header{min-height:48px}.scalar-app .lg\\:w-\\[calc\\(100vw-32px\\)\\]{width:calc(100vw - 32px)}.scalar-app .lg\\:w-full{width:100%}.scalar-app .lg\\:p-0{padding:0}.scalar-app .lg\\:pr-24{padding-right:96px}}@media (width>=1200px){.scalar-app .xl\\:mb-1\\.5{margin-bottom:6px}.scalar-app .xl\\:flex{display:flex}.scalar-app .xl\\:h-full{height:100%}.scalar-app .xl\\:min-w-0{min-width:0}.scalar-app .xl\\:flex-row{flex-direction:row}.scalar-app .xl\\:gap-12{gap:48px}.scalar-app .xl\\:overflow-hidden{overflow:hidden}.scalar-app .xl\\:rounded-none{border-radius:0}.scalar-app .xl\\:border-r{border-right-style:var(--tw-border-style);border-right-width:var(--scalar-border-width)}.scalar-app .xl\\:border-none{--tw-border-style:none;border-style:none}.scalar-app .xl\\:pr-0\\.5{padding-right:2px}.scalar-app .xl\\:pl-2{padding-left:8px}:is(.scalar-app .\\*\\:xl\\:border-t-0>*){border-top-style:var(--tw-border-style);border-top-width:0}:is(.scalar-app .\\*\\:xl\\:border-l>*){border-left-style:var(--tw-border-style);border-left-width:var(--scalar-border-width)}.scalar-app .xl\\:first\\:ml-auto:first-child{margin-left:auto}:is(.scalar-app .\\*\\:first\\:xl\\:border-l-0>*):first-child{border-left-style:var(--tw-border-style);border-left-width:0}}@container (width>=768px){.scalar-app .\\@3xl\\:order-0{order:0}.scalar-app .\\@3xl\\:mb-0{margin-bottom:0}.scalar-app .\\@3xl\\:ml-0\\.75{margin-left:3px}.scalar-app .\\@3xl\\:flex{display:flex}.scalar-app .\\@3xl\\:hidden{display:none}.scalar-app .\\@3xl\\:flex-nowrap{flex-wrap:nowrap}}.scalar-app .dark\\:bg-\\(--bg-dark\\):where(.dark-mode,.dark-mode *){background-color:var(--bg-dark)}.scalar-app .dark\\:bg-b-3:where(.dark-mode,.dark-mode *){background-color:var(--scalar-background-3)}.scalar-app .dark\\:bg-backdrop-dark:where(.dark-mode,.dark-mode *){background-color:#00000073}.scalar-app .dark\\:bg-linear-to-t:where(.dark-mode,.dark-mode *){--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .dark\\:bg-linear-to-t:where(.dark-mode,.dark-mode *){--tw-gradient-position:to top in oklab}}.scalar-app .dark\\:bg-linear-to-t:where(.dark-mode,.dark-mode *){background-image:linear-gradient(var(--tw-gradient-stops))}@media (hover:hover){.scalar-app .dark\\:hover\\:bg-b-3:where(.dark-mode,.dark-mode *):hover{background-color:var(--scalar-background-3)}.scalar-app .dark\\:hover\\:bg-linear-to-b:where(.dark-mode,.dark-mode *):hover{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .dark\\:hover\\:bg-linear-to-b:where(.dark-mode,.dark-mode *):hover{--tw-gradient-position:to bottom in oklab}}.scalar-app .dark\\:hover\\:bg-linear-to-b:where(.dark-mode,.dark-mode *):hover{background-image:linear-gradient(var(--tw-gradient-stops))}.scalar-app .dark\\:hover\\:bg-linear-to-t:where(.dark-mode,.dark-mode *):hover{--tw-gradient-position:to top}@supports (background-image:linear-gradient(in lab, red, red)){.scalar-app .dark\\:hover\\:bg-linear-to-t:where(.dark-mode,.dark-mode *):hover{--tw-gradient-position:to top in oklab}}.scalar-app .dark\\:hover\\:bg-linear-to-t:where(.dark-mode,.dark-mode *):hover{background-image:linear-gradient(var(--tw-gradient-stops))}}.scalar-app .ui-open\\:rotate-90[data-headlessui-state~=open],:where([data-headlessui-state~=open]) :is(.scalar-app .ui-open\\:rotate-90){rotate:90deg}.scalar-app .ui-open\\:rotate-180[data-headlessui-state~=open],:where([data-headlessui-state~=open]) :is(.scalar-app .ui-open\\:rotate-180){rotate:180deg}.scalar-app .last\\:ui-open\\:border-b-0:last-child[data-headlessui-state~=open],:where([data-headlessui-state~=open]) .scalar-app .last\\:ui-open\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.scalar-app .ui-not-open\\:hidden[data-headlessui-state]:not([data-headlessui-state~=open]),:where([data-headlessui-state]:not([data-headlessui-state~=open])) :is(.scalar-app .ui-not-open\\:hidden):not([data-headlessui-state]){display:none}.scalar-app .ui-not-open\\:rotate-0[data-headlessui-state]:not([data-headlessui-state~=open]),:where([data-headlessui-state]:not([data-headlessui-state~=open])) :is(.scalar-app .ui-not-open\\:rotate-0):not([data-headlessui-state]){rotate:none}:is(.scalar-app .ui-active\\:\\*\\:bg-b-2[data-headlessui-state~=active]>*),:is(:where([data-headlessui-state~=active]) :is(.scalar-app .ui-active\\:\\*\\:bg-b-2)>*){background-color:var(--scalar-background-2)}@media (width<=720px) and (height<=480px){.scalar-app .zoomed\\:static{position:static}.scalar-app .zoomed\\:p-1{padding:4px}.scalar-app .zoomed\\:whitespace-normal\\!{white-space:normal!important}}.scalar-app .highlighted\\:bg-b-2[data-highlighted]{background-color:var(--scalar-background-2)}.app-platform-mac :is(.scalar-app .mac\\:h-12){height:48px}.app-platform-mac :is(.scalar-app .mac\\:app-drag-region){-webkit-app-region:drag;-webkit-app-region:drag}.scalar-app .\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.scalar-app .\\[\\&_a\\:hover\\]\\:text-c-1 a:hover{color:var(--scalar-color-1)}.scalar-app .\\[\\&_code\\]\\:font-code code{font-family:var(--scalar-font-code)}.scalar-app .\\[\\&_em\\]\\:text-c-1 em{color:var(--scalar-color-1)}.scalar-app .\\[\\&_em\\]\\:not-italic em{font-style:normal}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-mask-linear{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-radial{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-conic{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-left{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-right{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-bottom{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-top{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-top-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-top-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-top-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-top-to-color{syntax:"*";inherits:false;initial-value:transparent}@property --tw-mask-bottom-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-bottom-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-bottom-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-bottom-to-color{syntax:"*";inherits:false;initial-value:transparent}@property --tw-leading{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}@media (width<=1000px){.agent-scalar.agent-scalar[data-v-a9f22fa8]{border-top-left-radius:var(--scalar-radius-lg);border-top-right-radius:var(--scalar-radius-lg);inset-inline:0;top:48px}.agent-scalar.agent-scalar[data-v-a9f22fa8],.agent-scalar-overlay.agent-scalar-overlay[data-v-a9f22fa8]{z-index:15}}.scalar-mcp-layer[data-v-496918d9]{background:0 0;flex-direction:column;justify-content:flex-end;gap:2px;height:32px;transition:all .4s ease-in-out;display:flex;position:relative}.scalar-mcp-layer[data-v-496918d9]:hover{height:172px}.scalar-mcp-layer-link[data-v-496918d9]:hover{cursor:pointer!important}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]{cursor:pointer;text-align:center;white-space:nowrap;width:100%;height:31px;font-size:var(--scalar-small);border-radius:var(--scalar-radius);border:var(--scalar-border-width) solid var(--scalar-border-color);color:var(--scalar-sidebar-color-1);background:var(--scalar-background-1);align-items:center;gap:6px;padding:9px 6px;line-height:1.385;text-decoration:none;transition:transform .2s ease-in-out;display:flex;position:absolute;bottom:0}.scalar-mcp-layer-link[data-v-496918d9]:after{content:"";width:100%;height:2px;position:absolute;bottom:-2px;left:0}.scalar-mcp-layer div.scalar-mcp-layer-link[data-v-496918d9]{cursor:default}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:last-child{position:relative;transform:translate(0,0)}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:nth-last-child(2){transform:translateY(-2px)scale(.99)}.scalar-mcp-layer:hover a[data-v-496918d9]:nth-last-child(2){transform:translateY(calc(-100% - 2px))scale(.99)}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:nth-last-child(3){transform:translateY(-4px)scale(.98)}.scalar-mcp-layer:hover a[data-v-496918d9]:nth-last-child(3){transform:translateY(calc(-200% - 4px))scale(1)}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:nth-last-child(4){transform:translateY(-6px)scale(.97)}.scalar-mcp-layer:hover a[data-v-496918d9]:nth-last-child(4){transform:translateY(calc(-300% - 6px))scale(1)}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:nth-last-child(5){transform:translateY(-8px)scale(.96)}.scalar-mcp-layer:hover .scalar-mcp-layer-link[data-v-496918d9]:nth-last-child(5){transform:translateY(calc(-400% - 8px))scale(1)}.scalar-mcp-layer:hover .scalar-mcp-layer-link[data-v-496918d9]{transition:transform .2s ease-in-out .1s}.scalar-mcp-layer .scalar-mcp-layer-link[data-v-496918d9]:hover{background:var(--scalar-background-2)}.scalar-mcp-layer .mcp-logo[data-v-496918d9]{width:16px;height:16px;color:var(--scalar-sidebar-color-1)}.mcp-nav[data-v-496918d9]{color:var(--scalar-sidebar-color-2)}.references-classic-header[data-v-8a3822ca]{max-width:var(--refs-content-max-width);align-items:center;gap:12px;margin:auto;padding:12px 0;display:flex}.references-classic-header-content[data-v-8a3822ca]{flex-grow:1;gap:12px;display:flex}.references-classic-header-container[data-v-8a3822ca]{padding:0 60px;position:relative}@container narrow-references-container (width<=900px){.references-classic-header[data-v-8a3822ca]{padding:12px 24px}.references-classic-header-container[data-v-8a3822ca]{padding:0}}.references-classic-header-icon[data-v-8a3822ca]{height:24px;color:var(--scalar-color-1)}.client-libraries-content[data-v-75d206b8]{background-color:var(--scalar-background-1);border-left:var(--scalar-border-width) solid var(--scalar-border-color);border-right:var(--scalar-border-width) solid var(--scalar-border-color);justify-content:center;padding:0 12px;display:flex;overflow:hidden;container:client-libraries-content/inline-size}.client-libraries[data-v-75d206b8]{cursor:pointer;white-space:nowrap;width:100%;color:var(--scalar-color-3);-webkit-user-select:none;user-select:none;border-bottom:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 2px;display:flex;position:relative}.client-libraries[data-v-75d206b8]:not(.client-libraries__active):hover:before{content:"";background:var(--scalar-background-2);z-index:0;border-radius:var(--scalar-radius);width:calc(100% - 4px);height:calc(100% - 4px);position:absolute;top:2px;left:2px}.client-libraries[data-v-75d206b8]:active{color:var(--scalar-color-1)}.client-libraries[data-v-75d206b8]:focus-visible{box-shadow:inset 0 0 0 1px var(--scalar-color-accent);outline:none}@media screen and (width<=450px){.client-libraries[data-v-75d206b8]:nth-of-type(4),.client-libraries[data-v-75d206b8]:nth-of-type(5){display:none}}.client-libraries-icon[data-v-75d206b8]{aspect-ratio:1;box-sizing:border-box;color:currentColor;justify-content:center;align-items:center;width:100%;min-width:14px;max-width:14px;max-height:14px;display:flex;position:relative}.client-libraries-icon__more svg[data-v-75d206b8]{height:initial}@container client-libraries-content (width<400px){.client-libraries__select[data-v-75d206b8]{width:fit-content}.client-libraries__select .client-libraries-icon__more+span[data-v-75d206b8]{display:none}}@container client-libraries-content (width<380px){.client-libraries[data-v-75d206b8]{width:100%}.client-libraries span[data-v-75d206b8]{display:none}}.client-libraries__active[data-v-75d206b8]{color:var(--scalar-color-1);border-bottom:1px solid var(--scalar-color-1)}@keyframes codeloader-75d206b8{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.client-libraries .client-libraries-text[data-v-75d206b8]{font-size:var(--scalar-small);align-items:center;display:flex;position:relative}.client-libraries__active .client-libraries-text[data-v-75d206b8]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold)}@media screen and (width<=600px){.references-classic .client-libraries[data-v-75d206b8]{flex-direction:column}}.selected-client[data-v-c6251633]{color:var(--scalar-color-1);font-size:var(--scalar-small);font-family:var(--scalar-font-code);white-space:nowrap;text-overflow:ellipsis;background:var(--scalar-background-1);border-top:none;border:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom-left-radius:var(--scalar-radius-xl);border-bottom-right-radius:var(--scalar-radius-xl);min-height:fit-content;padding:9px 12px;overflow:hidden}.client-libraries-heading[data-v-c6251633]{font-size:var(--scalar-small);font-weight:var(--scalar-font-medium);color:var(--scalar-color-1);background-color:var(--scalar-background-2);border:var(--scalar-border-width) solid var(--scalar-border-color);border-top-left-radius:var(--scalar-radius-xl);border-top-right-radius:var(--scalar-radius-xl);align-items:center;max-height:32px;padding:9px 12px;display:flex}[data-v-c6251633] .scalar-codeblock-pre .hljs{margin-top:8px}:where(.badge[data-v-fb946bb8]){color:var(--badge-text-color,var(--scalar-color-2));font-size:var(--scalar-mini);background:var(--badge-background-color,var(--scalar-background-2));border:var(--scalar-border-width) solid var(--badge-border-color,var(--scalar-border-color));border-radius:12px;padding:2px 6px;display:inline-block}:where(.badge).text-orange[data-v-fb946bb8]{background:color-mix(in srgb, var(--scalar-color-orange), transparent 90%);border:#0000}:where(.badge).text-yellow[data-v-fb946bb8]{background:color-mix(in srgb, var(--scalar-color-yellow), transparent 90%);border:#0000}:where(.badge).text-red[data-v-fb946bb8]{background:color-mix(in srgb, var(--scalar-color-red), transparent 90%);border:#0000}:where(.badge).text-purple[data-v-fb946bb8]{background:color-mix(in srgb, var(--scalar-color-purple), transparent 90%);border:#0000}:where(.badge).text-green[data-v-fb946bb8]{background:color-mix(in srgb, var(--scalar-color-green), transparent 90%);border:#0000}.download-container[data-v-b258a15f]{z-index:1;flex-direction:column;gap:16px;width:fit-content;margin:0 .5px 8px;display:flex;position:relative}.download-container.download-both[data-v-b258a15f]:hover:before{content:"";border-radius:var(--scalar-radius-lg);width:calc(100% + 24px);height:90px;box-shadow:var(--scalar-shadow-2);pointer-events:none;background:var(--scalar-background-1);position:absolute;top:-11px;left:-12px}.download-container[data-v-b258a15f]:has(:focus-visible):before{content:"";border-radius:var(--scalar-radius-lg);width:calc(100% + 24px);height:90px;box-shadow:var(--scalar-shadow-2);pointer-events:none;background:var(--scalar-background-1);position:absolute;top:-11px;left:-12px}.download-button[data-v-b258a15f]{color:var(--scalar-link-color);cursor:pointer;outline:none;justify-content:center;align-items:center;gap:4px;height:fit-content;padding:0;display:flex;position:relative;white-space:nowrap!important}.download-button[data-v-b258a15f]:before{border-radius:var(--scalar-radius);content:"";width:calc(100% + 18px);height:calc(100% + 16px);position:absolute;top:-8px;left:-9px}.download-button[data-v-b258a15f]:last-of-type:before{width:calc(100% + 15px)}.download-button[data-v-b258a15f]:hover:before{background:var(--scalar-background-2);border:var(--scalar-border-width) solid var(--scalar-border-color)}.download-button[data-v-b258a15f]:focus-visible:before{background:var(--scalar-background-2);border:var(--scalar-border-width) solid var(--scalar-border-color);outline-style:var(--tw-outline-style);outline-width:1px}.download-button span[data-v-b258a15f]{--font-color:var(--scalar-link-color,var(--scalar-color-accent));--font-visited:var(--scalar-link-color-visited,var(--scalar-color-2));-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);text-decoration:var(--scalar-text-decoration);color:var(--font-color);font-weight:var(--scalar-link-font-weight,var(--scalar-semibold));text-underline-offset:.25rem;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);text-decoration-color:var(--font-color)}@supports (color:color-mix(in lab, red, red)){.download-button span[data-v-b258a15f]{-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent)}}.download-button span[data-v-b258a15f]{z-index:1;align-items:center;gap:6px;line-height:1.625;display:flex}.download-button:hover span[data-v-b258a15f]{-webkit-text-decoration-color:var(--scalar-color-1,currentColor);-webkit-text-decoration-color:var(--scalar-color-1,currentColor);-webkit-text-decoration-color:var(--scalar-color-1,currentColor);text-decoration-color:var(--scalar-color-1,currentColor);color:var(--scalar-link-color-hover,var(--scalar-color-accent));-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);-webkit-text-decoration:var(--scalar-text-decoration-hover);text-decoration:var(--scalar-text-decoration-hover)}.download-button[data-v-b258a15f]:nth-of-type(2){clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.download-container:hover .download-button[data-v-b258a15f]:nth-of-type(2){clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:absolute;top:42px;overflow:visible}.download-container:has(:focus-visible) .download-button[data-v-b258a15f]:nth-of-type(2){clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:absolute;top:42px;overflow:visible}.extension[data-v-b258a15f]{z-index:1;background:var(--scalar-link-color,var(--scalar-color-accent));color:var(--scalar-background-1)}.download-container:hover .extension[data-v-b258a15f]{opacity:1}.download-container:has(:focus-visible) .extension[data-v-b258a15f]{opacity:1}.download-link[data-v-b258a15f]{--font-color:var(--scalar-link-color,var(--scalar-color-accent));--font-visited:var(--scalar-link-color-visited,var(--scalar-color-2));-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);-webkit-text-decoration:var(--scalar-text-decoration);text-decoration:var(--scalar-text-decoration);color:var(--font-color);font-weight:var(--scalar-link-font-weight,var(--scalar-semibold));text-underline-offset:.25rem;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);text-decoration-color:var(--font-color)}@supports (color:color-mix(in lab, red, red)){.download-link[data-v-b258a15f]{-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--font-color) 30%, transparent)}}.download-link[data-v-b258a15f]:hover{--font-color:var(--scalar-link-color,var(--scalar-color-accent));-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);-webkit-text-decoration-color:var(--font-color);text-decoration-color:var(--font-color)}.introduction-card[data-v-5764c94a]{flex-direction:column;gap:12px;display:flex}.introduction-card-row[data-v-5764c94a]{gap:24px}@media (width>=600px){.introduction-card-row[data-v-5764c94a]{flex-flow:wrap}}.introduction-card-row[data-v-5764c94a]>*{flex:1}@media (width>=600px){.introduction-card-row[data-v-5764c94a]>*{min-width:min-content}}@media (width<=600px){.introduction-card-row[data-v-5764c94a]>*{max-width:100%}}@container (width<=900px){.introduction-card-row[data-v-5764c94a]{flex-direction:column;align-items:stretch;gap:0}}.introduction-card[data-v-5764c94a] .security-scheme-label{text-transform:uppercase;font-weight:var(--scalar-semibold)}.introduction-card-row[data-v-5764c94a] .scalar-card:nth-of-type(2) .scalar-card-header{display:none}.introduction-card-row[data-v-5764c94a] .scalar-card:nth-of-type(2) .scalar-card-header.scalar-card--borderless+.scalar-card-content{margin-top:0}.section[data-v-be4443e9]{max-width:var(--refs-content-max-width);scroll-margin-top:var(--refs-viewport-offset);flex-direction:column;margin:auto;padding:90px 0;display:flex;position:relative}.section[data-v-be4443e9]:has(~div.contents){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color)}.references-classic .section[data-v-be4443e9]{gap:24px;padding:48px 0}@container narrow-references-container (width<=900px){.references-classic .section[data-v-be4443e9],.section[data-v-be4443e9]{padding:48px 24px}}.section[data-v-be4443e9]:not(:last-of-type){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color)}.section-wrapper[data-v-ff689b94]{color:var(--scalar-color-1);margin-top:-12px;padding-top:12px}.section-accordion[data-v-ff689b94]{border-radius:var(--scalar-radius-lg);background:var(--scalar-background-2);scroll-margin-top:var(--refs-viewport-offset);flex-direction:column;display:flex}.section-accordion-transparent[data-v-ff689b94]{border:var(--scalar-border-width) solid var(--scalar-border-color);background:0 0}.section-accordion-button[data-v-ff689b94]{cursor:pointer;align-items:center;gap:6px;padding:6px;display:flex}.section-accordion-button-content[data-v-ff689b94]{flex:1;min-width:0}.section-accordion-button-actions[data-v-ff689b94]{color:var(--scalar-color-3);align-items:center;gap:6px;display:flex}.section-accordion-chevron[data-v-ff689b94]{cursor:pointer;opacity:1;color:var(--scalar-color-3);margin-right:4px}.section-accordion-button:hover .section-accordion-chevron[data-v-ff689b94]{color:var(--scalar-color-1)}.section-accordion-content[data-v-ff689b94]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);flex-direction:column;display:flex}.section-accordion-description[data-v-ff689b94]{font-weight:var(--scalar-semibold);font-size:var(--scalar-mini);color:var(--scalar-color--1);padding:10px 12px 0}.section-accordion-content-card[data-v-ff689b94] .property:last-of-type{padding-bottom:9px}.section-column[data-v-699c28e3]{flex:1;min-width:0}@container narrow-references-container (width<=900px){.section-column[data-v-699c28e3]:nth-of-type(2){padding-top:0}}.section-columns[data-v-8b9602bf]{gap:48px;display:flex}@container narrow-references-container (width<=900px){.section-columns[data-v-8b9602bf]{flex-direction:column;gap:24px}}.section-container[data-v-20a1472a]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);width:100%;padding:0 60px;position:relative}.section-container[data-v-20a1472a]:has(.introduction-section){border-top:none}@container narrow-references-container (width<=900px){.section-container[data-v-20a1472a]{padding:0}}.section-accordion-wrapper[data-v-9419dd23]{padding:0 60px}.section-accordion[data-v-9419dd23]{width:100%;max-width:var(--refs-content-max-width);margin:auto;position:relative}.section-accordion-content[data-v-9419dd23]{flex-direction:column;gap:12px;padding-top:12px;display:flex}.section-accordion-button[data-v-9419dd23]{cursor:pointer;border-radius:var(--scalar-radius);width:100%;margin:-6px 0;padding:6px 0;display:flex}.section-accordion-chevron[data-v-9419dd23]{color:var(--scalar-color-3);position:absolute;top:12px;left:-22px}.section-accordion-button:hover .section-accordion-chevron[data-v-9419dd23]{color:var(--scalar-color-1)}.section-accordion-title[data-v-9419dd23]{flex-direction:column;flex:1;align-items:flex-start;padding:0 6px;display:flex}.section-accordion-title[data-v-9419dd23] .section-header-wrapper{grid-template-columns:1fr}.section-accordion-title[data-v-9419dd23] .section-header{margin-bottom:0}@container narrow-references-container (width<=900px){.section-accordion-chevron[data-v-9419dd23]{width:16px;top:14px;left:-16px}.section-accordion-wrapper[data-v-9419dd23]{padding:calc(var(--refs-viewport-offset)) 24px 0 24px}}.loading[data-v-8e0226d7]{background:var(--scalar-background-3);border-radius:var(--scalar-radius-lg);max-width:100%;min-height:1.6em;margin:.6em 0;animation:1.5s infinite alternate loading-skeleton-8e0226d7}.loading[data-v-8e0226d7]:first-of-type{min-height:3em;margin-top:0;margin-bottom:24px}.loading[data-v-8e0226d7]:last-of-type{width:60%}.loading.single-line[data-v-8e0226d7]{max-width:80%;min-height:3em;margin:.6em 0}@keyframes loading-skeleton-8e0226d7{0%{opacity:1}to{opacity:.33}}@container narrow-references-container (width<=900px){.section-content--with-columns[data-v-9735459e]{flex-direction:column;gap:24px}}.section-header-wrapper[data-v-8a5913a9]{grid-template-columns:1fr;display:grid}@media (width>=1200px){.section-header-wrapper[data-v-8a5913a9]{grid-template-columns:repeat(2,1fr)}}.section-header[data-v-8a5913a9]{font-size:var(--font-size,var(--scalar-heading-1));font-weight:var(--font-weight,var(--scalar-bold));color:var(--scalar-color-1);word-wrap:break-word;margin-top:0;line-height:1.45}.section-header.tight[data-v-8a5913a9]{margin-bottom:6px}.section-header.loading[data-v-8a5913a9]{width:80%}.section-header-label[data-v-f1ac6c38]{display:inline}.screenreader-only[data-v-df2e1026]{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.collapsible-section[data-v-999a158a]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);position:relative}.collapsible-section-header[data-v-999a158a]{color:var(--scalar-color-1)}.collapsible-section .collapsible-section-trigger[data-v-999a158a]{cursor:pointer;font-size:var(--scalar-font-size-3);z-index:1;align-items:center;padding:10px 0;display:flex;position:relative}.collapsible-section-trigger svg[data-v-999a158a]{color:var(--scalar-color-3);position:absolute;left:-19px}.collapsible-section:hover .collapsible-section-trigger svg[data-v-999a158a]{color:var(--scalar-color-1)}.collapsible-section .collapsible-section-trigger[data-v-999a158a] .anchor-copy{line-height:18.5px}.collapsible-section-content[data-v-999a158a]{margin:0 0 10px;padding:0;scroll-margin-top:140px}.references-classic .introduction-description[data-v-0370764f] img{max-width:720px}.icons-only[data-v-b59b0acf] span{display:none}.sticky-cards[data-v-6c24d687]{top:calc(var(--refs-viewport-offset) + 24px);flex-direction:column;display:flex;position:sticky}.introduction-card-item[data-v-dfab866f]{flex-direction:column;justify-content:flex-start;display:flex}.introduction-card-item[data-v-dfab866f]:empty{display:none}.introduction-card-item[data-v-dfab866f]:has(.description) .server-form-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.introduction-card-item[data-v-dfab866f] .request-item{border-bottom:0}.schema-type-icon[data-v-70cb5c13]{color:var(--scalar-color-1);display:none}.schema-type[data-v-70cb5c13]{font-family:var(--scalar-font-code);color:var(--scalar-color-1)}.property-enum-value[data-v-f4b54bdd]{color:var(--scalar-color-3);overflow-wrap:break-word;--decorator-width:1px;--decorator-color:color-mix(in srgb, var(--scalar-background-1), var(--scalar-color-1) 25%);align-items:stretch;line-height:1.5;display:flex;position:relative}.property-enum-value-content[data-v-f4b54bdd]{flex-direction:column;padding:3px 0;display:flex}.property-enum-value-label[data-v-f4b54bdd]{font-family:var(--scalar-font-code);color:var(--scalar-color-1);font-size:var(--scalar-font-size-4);position:relative}.property-enum-value:last-of-type .property-enum-value-label[data-v-f4b54bdd]{padding-bottom:0}.property-enum-value[data-v-f4b54bdd]:before{content:"";width:var(--decorator-width);background-color:var(--decorator-color);margin-right:12px;display:block}.property-enum-value[data-v-f4b54bdd]:last-of-type:before{height:calc(.5lh + 4px)}.property-enum-values:has(.enum-toggle-button) .property-enum-value[data-v-f4b54bdd]:nth-last-child(2):before{height:calc(.5lh + 4px)}.property-enum-value-label[data-v-f4b54bdd]:after{content:"";width:8px;height:var(--decorator-width);background-color:var(--decorator-color);position:absolute;top:.5lh;left:-12px}.property-enum-value[data-v-f4b54bdd]:last-of-type:after{background:var(--scalar-background-1);border-top:var(--scalar-border-width) solid var(--decorator-color);height:50%;bottom:0}.property-enum-value-description[data-v-f4b54bdd]{color:var(--scalar-color-3)}.property-heading:empty+.property-description[data-v-55c01b89]:last-of-type,.property-description[data-v-55c01b89]:first-of-type:last-of-type{margin-top:0}.property-list[data-v-55c01b89]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius);margin-top:10px}.property-list .property[data-v-55c01b89]:last-of-type{padding-bottom:10px}.property-enum-values[data-v-55c01b89]{font-size:var(--scalar-font-size-3);margin-top:8px;padding-left:2px;list-style:none}.enum-toggle-button[data-v-55c01b89]:hover{color:var(--scalar-color-1)}.property-enum-property-names[data-v-55c01b89]{font-size:var(--scalar-font-size-4);color:var(--scalar-color-2);margin-top:8px;padding:0 2px;display:inline-block}.property-default[data-v-4da5c70a]{font-size:var(--scalar-mini);flex-direction:column;display:flex;position:relative}.property-default[data-v-4da5c70a]:hover:before{content:"";border-radius:var(--scalar-radius);width:100%;height:20px;position:absolute;top:0;left:0}.property-default:hover .property-default-label span[data-v-4da5c70a]{color:var(--scalar-color-1)}.property-default-label span[data-v-4da5c70a]{color:var(--scalar-color-3);border-bottom:var(--scalar-border-width) dotted currentColor;position:relative}.property-default-value[data-v-4da5c70a]{font-family:var(--scalar-font-code);align-items:center;gap:8px;width:100%;padding:6px;display:flex}.property-default-value span[data-v-4da5c70a]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.property-default-value[data-v-4da5c70a] svg{color:var(--scalar-color-3)}.property-default-value[data-v-4da5c70a]:hover svg{color:var(--scalar-color-1)}.property-default-value[data-v-4da5c70a]{background:var(--scalar-background-2);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius)}.property-default-value-list[data-v-4da5c70a]{background-color:var(--scalar-background-1);box-shadow:var(--scalar-shadow-1);border-radius:var(--scalar-radius-lg);border:var(--scalar-border-width) solid var(--scalar-border-color);z-index:2;flex-direction:column;gap:3px;min-width:200px;max-width:300px;padding:9px;display:none;position:absolute;top:18px;left:50%;overflow:auto;transform:translate(-50%)}.property-default:hover .property-default-value-list[data-v-4da5c70a],.property-default:focus-within .property-default-value-list[data-v-4da5c70a]{display:flex}.property-detail[data-v-1295f965]{display:inline-flex}.property-detail+.property-detail[data-v-1295f965]:before{content:"·";margin:0 .5ch;display:block}.property-detail-truncate[data-v-1295f965]{overflow:hidden}.property-detail-truncate>.property-detail-value[data-v-1295f965]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.property-detail-prefix[data-v-1295f965]{color:var(--scalar-color-2)}code.property-detail-value[data-v-1295f965]{font-family:var(--scalar-font-code);font-size:var(--scalar-font-size-3);color:var(--scalar-color-2);background:color-mix(in srgb, var(--scalar-background-2), var(--scalar-background-1));border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius);padding:0 4px}.property-example[data-v-77f8279d]{font-size:var(--scalar-mini);flex-direction:column;display:flex;position:relative}.property-example[data-v-77f8279d]:hover:before{content:"";border-radius:var(--scalar-radius);width:100%;height:20px;position:absolute;top:0;left:0}.property-example-value[data-v-77f8279d]{font-family:var(--scalar-font-code);align-items:center;gap:8px;width:100%;padding:6px;display:flex}.property-example-value span[data-v-77f8279d]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.property-example-value[data-v-77f8279d] svg{color:var(--scalar-color-3)}.property-example-value[data-v-77f8279d]:hover svg{color:var(--scalar-color-1)}.property-example-value[data-v-77f8279d]{background:var(--scalar-background-2);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius)}.property-example-value-list[data-v-77f8279d]{background-color:var(--scalar-background-1);box-shadow:var(--scalar-shadow-1);border-radius:var(--scalar-radius-lg);border:var(--scalar-border-width) solid var(--scalar-border-color);z-index:1000;flex-direction:column;gap:3px;min-width:200px;max-width:300px;padding:9px;display:none;position:absolute;top:18px;left:50%;overflow:auto;transform:translate(-50%)}.property-example:hover .property-example-value-list[data-v-77f8279d],.property-example:focus-within .property-example-value-list[data-v-77f8279d]{display:flex}.property-heading[data-v-3264097c]{white-space:nowrap;flex-wrap:wrap;align-items:baseline;row-gap:9px;display:flex}:is(.property-heading[data-v-3264097c]:has(+.children),.property-heading[data-v-3264097c]:has(+.property-rule)){margin-bottom:9px}.property-heading[data-v-3264097c]>*{margin-right:9px}.property-heading[data-v-3264097c]:last-child,.property-heading>.property-detail[data-v-3264097c]:not(:last-of-type){margin-right:0}.property-name[data-v-3264097c]{max-width:100%;font-family:var(--scalar-font-code);font-weight:var(--scalar-bold);font-size:var(--scalar-font-size-4);white-space:normal;overflow-wrap:break-word}.property-additional[data-v-3264097c]{font-family:var(--scalar-font-code)}.property-required[data-v-3264097c],.property-optional[data-v-3264097c]{color:var(--scalar-color-2)}.property-required[data-v-3264097c]{font-size:var(--scalar-mini);color:var(--scalar-color-orange)}.property-read-only[data-v-3264097c]{font-size:var(--scalar-mini);color:var(--scalar-color-blue)}.property-write-only[data-v-3264097c]{font-size:var(--scalar-mini);color:var(--scalar-color-green)}.property-discriminator[data-v-3264097c]{font-size:var(--scalar-mini);color:var(--scalar-color-purple)}.property-detail[data-v-3264097c]{font-size:var(--scalar-mini);color:var(--scalar-color-2);align-items:center;min-width:0;display:flex}.property-const[data-v-3264097c]{color:var(--scalar-color-1)}.deprecated[data-v-3264097c]{text-decoration:line-through}.property[data-v-c8e3c666]{color:var(--scalar-color-1);font-size:var(--scalar-small);flex-direction:column;padding:10px;display:flex;position:relative}.property.property--level-0[data-v-c8e3c666]:has(>.property-rule>.schema-card>.schema-properties.schema-properties-open>ul>li.property){padding-top:0}.property--compact.property--level-0[data-v-c8e3c666],.property--compact.property--level-1[data-v-c8e3c666]{padding:10px 0}.composition-panel .property.property.property.property--level-0[data-v-c8e3c666]{padding:0}.property--compact.property--level-0 .composition-panel .property--compact.property--level-1[data-v-c8e3c666]{padding:8px}.property[data-v-c8e3c666]:has(>.property-rule:first-of-type):not(.property--compact){padding-top:8px;padding-bottom:8px}.property--deprecated[data-v-c8e3c666]{background:repeating-linear-gradient(-45deg, var(--scalar-background-2) 0, var(--scalar-background-2) 2px, transparent 2px, transparent 5px);background-size:100%}.property--deprecated[data-v-c8e3c666]>*{opacity:.75}.property-description[data-v-c8e3c666]{line-height:1.4;font-size:var(--scalar-small);margin-top:6px}.property-description[data-v-c8e3c666]:has(+.property-rule){margin-bottom:9px}[data-v-c8e3c666] .property-description *{color:var(--scalar-color-2)!important}.property[data-v-c8e3c666]:not(:last-of-type){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color)}.property-description+.children[data-v-c8e3c666],.children+.property-rule[data-v-c8e3c666]{margin-top:9px}.children[data-v-c8e3c666]{flex-direction:column;display:flex}.children .property--compact.property--level-1[data-v-c8e3c666]{padding:12px}.property-example-value[data-v-c8e3c666]{all:unset;font-family:var(--scalar-font-code);border-top:var(--scalar-border-width) solid var(--scalar-border-color);padding:6px}.property-rule[data-v-c8e3c666]{border-radius:var(--scalar-radius-lg);flex-direction:column;display:flex}.property--level-2[data-v-c8e3c666] .relative>button{left:-2rem}.property-rule[data-v-c8e3c666] .composition-panel .schema-card--level-1>.schema-properties.schema-properties-open{border-radius:0 0 var(--scalar-radius-lg) var(--scalar-radius-lg)}.property-rule[data-v-c8e3c666] .composition-panel>.schema-card>.schema-card-description{border-left:var(--scalar-border-width) solid var(--scalar-border-color);border-right:var(--scalar-border-width) solid var(--scalar-border-color);padding:10px}.property-rule[data-v-c8e3c666] .composition-panel>.schema-card>.schema-card-description+.schema-properties{margin-top:0}.property-example[data-v-c8e3c666]{background:0 0;border:none;flex-direction:row;gap:8px;display:flex}.property-example-label[data-v-c8e3c666],.property-example-value[data-v-c8e3c666]{padding:3px 0 0}.property-example-value[data-v-c8e3c666]{background:var(--scalar-background-2);border-radius:var(--scalar-radius);border-top:0;padding:3px 4px}.property-name[data-v-c8e3c666]{font-family:var(--scalar-font-code);font-weight:var(--scalar-semibold)}.property-name-additional-properties[data-v-c8e3c666]:before,.property-name-pattern-properties[data-v-c8e3c666]:before{text-transform:uppercase;font-size:var(--scalar-micro);border-radius:var(--scalar-radius);color:var(--scalar-color-1);border:var(--scalar-border-width) solid var(--scalar-border-color);background-color:var(--scalar-background-2);margin-right:4px;padding:2px 4px;display:inline-block}.property-name-pattern-properties[data-v-c8e3c666]:before{content:"regex"}.property-name-additional-properties[data-v-c8e3c666],.property-name-pattern-properties[data-v-c8e3c666]{border:1px dashed var(--scalar-border-color);color:var(--scalar-color-accent);border-radius:var(--scalar-radius);padding:2px;display:inline-block}.error[data-v-c988b726]{background-color:var(--scalar-color-red)}.schema-card[data-v-c988b726]{font-size:var(--scalar-font-size-4);color:var(--scalar-color-1)}.schema-card-title[data-v-c988b726]{height:var(--schema-title-height);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);font-size:var(--scalar-mini);border-bottom:var(--scalar-border-width) solid transparent;align-items:center;gap:4px;padding:6px 8px;display:flex}button.schema-card-title[data-v-c988b726]{cursor:pointer}button.schema-card-title[data-v-c988b726]:hover{color:var(--scalar-color-1)}.schema-card-title-icon--open[data-v-c988b726]{transform:rotate(45deg)}.schema-properties-open>.schema-card-title[data-v-c988b726]{border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom-right-radius:0;border-bottom-left-radius:0}.schema-properties-open>.schema-properties[data-v-c988b726]{width:fit-content}.schema-card-description[data-v-c988b726]{color:var(--scalar-color-2)}.schema-card-description+.schema-properties[data-v-c988b726]{width:fit-content;margin-top:8px}.schema-card--level-0:first-of-type>.schema-card-description[data-v-c988b726]:has(+.schema-properties){border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);margin-bottom:-8px;padding-bottom:8px}.schema-card--level-0~.schema-card--level-0>.schema-card-description[data-v-c988b726]:has(+.schema-properties){padding-top:8px}.schema-properties-open.schema-properties[data-v-c988b726],.schema-properties-open>.schema-card--open[data-v-c988b726]{width:100%}.schema-properties[data-v-c988b726]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);flex-direction:column;width:fit-content;display:flex}.schema-properties-name[data-v-c988b726]{width:100%}.schema-properties .schema-properties[data-v-c988b726]{border-radius:13.5px}.schema-properties .schema-properties.schema-properties-open[data-v-c988b726]{border-radius:var(--scalar-radius-lg)}.schema-properties-open[data-v-c988b726]{width:100%}.schema-card--compact[data-v-c988b726]{align-self:flex-start}.schema-card--compact.schema-card--open[data-v-c988b726]{align-self:initial}.schema-card-title--compact[data-v-c988b726]{color:var(--scalar-color-2);border-bottom:none;height:auto;padding:6px 10px 6px 8px}.schema-card-title--compact>.schema-card-title-icon[data-v-c988b726]{margin:0}.schema-card-title--compact>.schema-card-title-icon--open[data-v-c988b726]{transform:rotate(45deg)}.schema-properties-open>.schema-card-title--compact[data-v-c988b726]{position:static}.property--level-0>.schema-properties>.schema-card--level-0>.schema-properties[data-v-c988b726]{border:none}.property--level-0 .schema-card--level-0:not(.schema-card--compact) .property--level-1[data-v-c988b726]{padding:0 0 8px}:not(.composition-panel)>.schema-card--compact.schema-card--level-0>.schema-properties[data-v-c988b726]{border:none}[data-v-c988b726] .schema-card-description p{font-size:var(--scalar-small,var(--scalar-paragraph));color:var(--scalar-color-2);margin-bottom:6px;display:block}.children .schema-card-description[data-v-c988b726]:first-of-type{padding-top:0}.reference-models-anchor[data-v-5aa6b456]{color:var(--scalar-color-1);align-items:center;padding-left:6px;font-size:20px;display:flex}.reference-models-label[data-v-5aa6b456]{font-size:var(--scalar-mini);display:block}.reference-models-label[data-v-5aa6b456] em{font-weight:var(--scalar-bold)}.show-more[data-v-d1c2b649]{appearance:none;border:none;border:var(--scalar-border-width) solid var(--scalar-border-color);color:var(--scalar-color-1);font-weight:var(--scalar-semibold);font-size:var(--scalar-small);border-radius:30px;justify-content:center;align-items:center;gap:6px;margin:auto;padding:8px 12px 8px 16px;display:flex;position:relative;top:-48px}.show-more[data-v-d1c2b649]:hover{background:var(--scalar-background-2);cursor:pointer}.show-more[data-v-d1c2b649]:active{box-shadow:0 0 0 1px var(--scalar-border-color)}@container narrow-references-container (width<=900px){.show-more[data-v-d1c2b649]{top:-24px}}.tag-section[data-v-d4f47ce7]{margin-bottom:48px}.tag-name[data-v-d4f47ce7]{text-transform:capitalize}.tag-description[data-v-d4f47ce7]{text-align:left;padding-bottom:4px}.tag-section-group .tag-group-name[data-v-d4f47ce7]{grid-template-columns:auto 1fr;align-self:stretch;gap:12px}.tag-group-name[data-v-d4f47ce7]:after{content:"";background:var(--scalar-border-color);align-self:center;height:1px;display:block}:is(.tag-group-name[data-v-d4f47ce7]:has(*>:hover),.tag-group-name[data-v-d4f47ce7]:has(:focus-visible)){gap:32px}.tag-section-group .tag-section[data-v-d4f47ce7]{margin-bottom:24px;padding-inline:0}.tag-section-group .tag-section[data-v-d4f47ce7]:last-of-type{margin-bottom:0}.endpoint[data-v-ad8530a6]{white-space:nowrap;cursor:pointer;text-decoration:none;display:flex}.endpoint:hover .endpoint-path[data-v-ad8530a6],.endpoint:focus-visible .endpoint-path[data-v-ad8530a6]{text-decoration:underline}.endpoint .post[data-v-ad8530a6],.endpoint .get[data-v-ad8530a6],.endpoint .delete[data-v-ad8530a6],.endpoint .put[data-v-ad8530a6]{white-space:nowrap}.endpoint-method[data-v-ad8530a6],.endpoint-path[data-v-ad8530a6]{color:var(--scalar-color-1);min-width:62px;line-height:1.55;font-family:var(--scalar-font-code);font-size:var(--scalar-small);cursor:pointer;display:inline-flex}.endpoint-method[data-v-ad8530a6]{text-align:right}.endpoint-path[data-v-ad8530a6]{text-transform:initial;margin-left:12px}.deprecated[data-v-ad8530a6]{text-decoration:line-through}.endpoints-card[data-v-f726f753]{top:calc(var(--refs-viewport-offset) + 24px);font-size:var(--scalar-font-size-3);position:sticky}.endpoints[data-v-f726f753]{background:var(--scalar-background-2);width:100%;padding:10px 12px;overflow:auto}.section-container[data-v-8f1a275c]{border-top:var(--scalar-border-width) solid var(--scalar-border-color)}.section-container[data-v-8f1a275c]:has(.show-more){background-color:color-mix(in srgb, var(--scalar-background-2), transparent)}.operation-path[data-v-ec6c8861]{word-wrap:break-word;font-weight:var(--scalar-semibold);line-break:anywhere;overflow:hidden}.deprecated[data-v-ec6c8861]{text-decoration:line-through}.empty-state[data-v-6aae906d]{text-align:center;font-size:var(--scalar-mini);border-radius:var(--scalar-radius-lg);min-height:56px;color:var(--scalar-color-2);justify-content:center;align-items:center;margin:10px 0 10px 12px;display:flex}.rule-title[data-v-6aae906d]{font-family:var(--scalar-font-code);color:var(--scalar-color-1);border-radius:var(--scalar-radius);margin:12px 0 6px;display:inline-block}.rule[data-v-6aae906d]{border-radius:var(--scalar-radius-lg);margin:0 12px}.rule-items[data-v-6aae906d]{counter-reset:list-number;border-left:1px solid var(--scalar-border-color);flex-direction:column;gap:12px;padding:12px 0;display:flex}.rule-item[data-v-6aae906d]{counter-increment:list-number;border:1px solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);margin-left:24px;overflow:hidden}.rule-item[data-v-6aae906d]:before{border:1px solid var(--scalar-border-color);content:" ";border-radius:0 0 0 var(--scalar-radius-lg);width:24px;height:6px;color:var(--scalar-color-1);border-top:0;border-right:0;margin-top:6px;display:block;position:absolute;transform:translate(-25px)}.tab[data-v-804dba49]{font-size:var(--scalar-small);font-family:var(--scalar-font);font-weight:var(--scalar-font-normal);color:var(--scalar-color-2);line-height:calc(var(--scalar-small) + 2px);white-space:nowrap;cursor:pointer;text-transform:uppercase;background:0 0;border:none;margin-right:3px;padding:0;line-height:22px;position:relative}.tab[data-v-804dba49]:before{content:"";z-index:0;border-radius:var(--scalar-radius);background:var(--scalar-background-3);opacity:0;width:calc(100% + 12px);height:calc(100% + 4px);position:absolute;top:-2px;left:-6px}.tab[data-v-804dba49]:hover:before,.tab[data-v-804dba49]:focus-visible:before{opacity:1}.tab[data-v-804dba49]:focus-visible:before{outline:1px solid var(--scalar-color-accent)}.tab span[data-v-804dba49]{z-index:1;position:relative}.tab-selected[data-v-804dba49]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold)}.tab-selected[data-v-804dba49]:after{content:"";width:100%;height:1px;left:0;bottom:calc(var(--tab-list-padding-y) * -1);background:currentColor;position:absolute}.tab-list[data-v-fec8fbbb]{--tab-list-padding-y:7px;--tab-list-padding-x:12px;padding:var(--tab-list-padding-y) var(--tab-list-padding-x);flex:1;gap:6px;display:flex;position:relative;overflow:auto}.scalar-card-header.scalar-card-header-tabs[data-v-fec8fbbb]{padding:0}.response-card[data-v-4e56e3cf]{font-size:var(--scalar-font-size-3)}.code-copy[data-v-4e56e3cf]{appearance:none;cursor:pointer;color:var(--scalar-color-3);background:0 0;border:none;outline:none;justify-content:center;align-items:center;margin-right:12px;padding:0;display:flex}.code-copy[data-v-4e56e3cf]:hover{color:var(--scalar-color-1)}.code-copy svg[data-v-4e56e3cf]{width:13px;height:13px}.response-card-footer[data-v-4e56e3cf]{flex-flow:row-reverse wrap;flex-shrink:0;justify-content:start;column-gap:8px;padding:7px 12px;display:flex}.response-example-selector[data-v-4e56e3cf]{flex-shrink:0;margin:-4px}.response-description[data-v-4e56e3cf]{font-weight:var(--scalar-semibold);font-size:var(--scalar-small);color:var(--scalar-color--1);box-sizing:border-box;flex-grow:1}.response-description-markdown[data-v-4e56e3cf]{max-height:3lh}.response-description-markdown[data-v-4e56e3cf] *{margin:0}.schema-type[data-v-4e56e3cf]{font-size:var(--scalar-micro);color:var(--scalar-color-2);font-weight:var(--scalar-semibold);background:var(--scalar-background-3);border-radius:4px;margin-right:4px;padding:2px 4px}.schema-example[data-v-4e56e3cf]{font-size:var(--scalar-micro);color:var(--scalar-color-2);font-weight:var(--scalar-semibold)}.example-response-tab[data-v-4e56e3cf]{margin:6px;display:block}.scalar-card-checkbox[data-v-4e56e3cf]{cursor:pointer;-webkit-user-select:none;user-select:none;min-height:17px;font-size:var(--scalar-small);font-weight:var(--scalar-font-normal);color:var(--scalar-color-2);white-space:nowrap;justify-content:center;align-items:center;gap:6px;width:fit-content;padding:7px 6px;display:flex;position:relative}.scalar-card-checkbox:has(.scalar-card-checkbox-input:focus-visible) .scalar-card-checkbox-checkmark[data-v-4e56e3cf]{outline:1px solid var(--scalar-color-accent)}.scalar-card-checkbox[data-v-4e56e3cf]:hover{color:var(--scalar-color--1)}.scalar-card-checkbox .scalar-card-checkbox-input[data-v-4e56e3cf]{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.scalar-card-checkbox-checkmark[data-v-4e56e3cf]{border-radius:var(--scalar-radius);background-color:#0000;background-color:var(--scalar-background-3);width:16px;height:16px;box-shadow:inset 0 0 0 var(--scalar-border-width) var(--scalar-border-color)}.scalar-card-checkbox[data-v-4e56e3cf]:has(.scalar-card-checkbox-input:checked){color:var(--scalar-color-1);font-weight:var(--scalar-semibold)}.scalar-card-checkbox .scalar-card-checkbox-input:checked~.scalar-card-checkbox-checkmark[data-v-4e56e3cf]{background-color:var(--scalar-button-1);box-shadow:none}.scalar-card-checkbox-checkmark[data-v-4e56e3cf]:after{content:"";display:none;position:absolute}.scalar-card-checkbox .scalar-card-checkbox-input:checked~.scalar-card-checkbox-checkmark[data-v-4e56e3cf]:after{display:block}.scalar-card-checkbox .scalar-card-checkbox-checkmark[data-v-4e56e3cf]:after{border:solid 1px var(--scalar-button-1-color);border-width:0 1.5px 1.5px 0;width:5px;height:9px;top:12.5px;right:11.5px;transform:rotate(45deg)}.headers-card[data-v-ab19704d]{z-index:0;font-size:var(--scalar-font-size-4);color:var(--scalar-color-1);align-self:flex-start;margin-top:12px;margin-bottom:6px;position:relative}.headers-card.headers-card--open[data-v-ab19704d]{align-self:initial}.headers-card-title[data-v-ab19704d]{color:var(--scalar-color-3);font-weight:var(--scalar-semibold);font-size:var(--scalar-micro);border-radius:13.5px;align-items:center;gap:4px;padding:6px 10px;display:flex}button.headers-card-title[data-v-ab19704d]{cursor:pointer}button.headers-card-title[data-v-ab19704d]:hover{color:var(--scalar-color-1)}.headers-card-title-icon--open[data-v-ab19704d]{transform:rotate(45deg)}.headers-properties[data-v-ab19704d]{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:13.5px;flex-direction:column;width:fit-content;display:flex}.headers-properties-open>.headers-card-title[data-v-ab19704d]{border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);border-bottom-right-radius:0;border-bottom-left-radius:0}.headers-properties-open[data-v-ab19704d]{border-radius:var(--scalar-radius-lg);width:100%}.headers-card .property[data-v-ab19704d]:last-of-type{padding-bottom:10px}.headers-card-title>.headers-card-title-icon[data-v-ab19704d]{width:14px;height:14px;margin:0}.headers-card-title>.headers-card-title-icon--open[data-v-ab19704d]{transform:rotate(45deg)}.parameter-item[data-v-bd50387f]{border-top:var(--scalar-border-width) solid var(--scalar-border-color);flex-direction:column;display:flex;position:relative}.parameter-item:last-of-type .parameter-schema[data-v-bd50387f]{padding-bottom:0}.parameter-item-container[data-v-bd50387f]{padding:0}.parameter-item-headers[data-v-bd50387f]{border:var(--scalar-border-width) solid var(--scalar-border-color)}.parameter-item-name[data-v-bd50387f]{font-weight:var(--scalar-bold);font-size:var(--scalar-font-size-4);font-family:var(--scalar-font-code);color:var(--scalar-color-1);overflow-wrap:break-word;position:relative}.parameter-item-description[data-v-bd50387f],.parameter-item-description-summary[data-v-bd50387f]{font-size:var(--scalar-mini);color:var(--scalar-color-2)}.parameter-item-description-summary.parameter-item-description-summary[data-v-bd50387f]>*{--markdown-line-height:var(--scalar-line-height-5)}.parameter-item-trigger~.parameter-item-container[data-v-bd50387f] .property--level-0>.property-heading .property-detail-value{font-size:var(--scalar-micro)}.parameter-item-required-optional[data-v-bd50387f]{color:var(--scalar-color-2);font-weight:var(--scalar-semibold);margin-right:6px;position:relative}.parameter-item--required[data-v-bd50387f]{text-transform:uppercase;font-size:var(--scalar-micro);font-weight:var(--scalar-semibold);color:var(--scalar-color-orange)}.parameter-item-description[data-v-bd50387f]{font-size:var(--scalar-small);color:var(--scalar-color-2);margin-top:6px;line-height:1.4}.parameter-item-description[data-v-bd50387f] p{font-size:var(--scalar-small);color:var(--scalar-color-2);margin-top:4px}.parameter-schema[data-v-bd50387f]{margin-top:3px;padding-bottom:9px}.parameter-item-trigger[data-v-bd50387f]{line-height:var(--scalar-line-height-5);outline:none;flex-wrap:wrap;align-items:baseline;gap:6px;padding:10px 0;display:flex}.parameter-item-trigger-open[data-v-bd50387f]{padding-bottom:0}.parameter-item-icon[data-v-bd50387f]{color:var(--scalar-color-3);position:absolute;top:.5lh;left:-19px;translate:0 -50%}.parameter-item-trigger:hover .parameter-item-icon[data-v-bd50387f],.parameter-item-trigger:focus-visible .parameter-item-icon[data-v-bd50387f]{color:var(--scalar-color-1)}.parameter-item-trigger:focus-visible .parameter-item-icon[data-v-bd50387f]{outline:1px solid var(--scalar-color-accent);outline-offset:2px;border-radius:var(--scalar-radius)}.request-body[data-v-e475e108]{margin-top:24px}.request-body-header[data-v-e475e108]{border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);flex-flow:wrap;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.request-body-title[data-v-e475e108]{font-size:var(--scalar-font-size-2);font-weight:var(--scalar-semibold);color:var(--scalar-color-1);align-items:center;gap:8px;display:flex}.request-body-required[data-v-e475e108]{font-size:var(--scalar-micro);color:var(--scalar-color-orange);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:16px;height:20px;padding:2px 8px;font-weight:400}.request-body-description[data-v-e475e108]{font-size:var(--scalar-small);width:100%;margin-top:6px}:is(.request-body-header+.request-body-schema[data-v-e475e108]:has(>.schema-card>.schema-card-description),.request-body-header+.request-body-schema[data-v-e475e108]:has(>.schema-card>.schema-properties>*>.property--level-0)){padding-top:8px}.request-body-description[data-v-e475e108] .markdown *{color:var(--scalar-color-2)!important}.callback-sticky-offset[data-v-12fe1373]{top:var(--refs-viewport-offset,0px);z-index:1}.callback-operation-container[data-v-12fe1373] .request-body,.callback-operation-container[data-v-12fe1373] .request-body-description,.callback-operation-container[data-v-12fe1373] .request-body-header{margin-top:0}.callback-operation-container[data-v-12fe1373] .request-body-header{--scalar-font-size-2:var(--scalar-font-size-4);border-bottom:none;border:.5px solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;background:color-mix(in srgb, var(--scalar-background-2) 50%, transparent);padding:10px}.callback-operation-container[data-v-12fe1373] .request-body-schema>.schema-card>.schema-card-description{padding-inline:8px}.callback-operation-container[data-v-12fe1373] ul li.property.property--level-1{padding:10px}.callback-operation-container[data-v-12fe1373] .request-body-schema{background-color:var(--scalar-background-1);border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);border-top:none;overflow:hidden}.callback-operation-container[data-v-12fe1373] .parameter-list{margin-top:0}.callback-operation-container[data-v-12fe1373] .parameter-list-title{background:color-mix(in srgb, var(--scalar-background-2) 50%, transparent);border-radius:var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;border:var(--scalar-border-width) solid var(--scalar-border-color);--scalar-font-size-2:var(--scalar-font-size-4);border-bottom:none;margin-bottom:0;padding:10px}.callback-operation-container[data-v-12fe1373] .parameter-list-items{border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:0 0 var(--scalar-radius-lg) var(--scalar-radius-lg)}.callback-operation-container[data-v-12fe1373] .parameter-list-items>li:first-of-type{border-top:none}.callback-operation-container[data-v-12fe1373] .parameter-list-items>li{padding:0 8px}.show-api-client-button[data-v-15e312d9]{appearance:none;white-space:nowrap;border-radius:var(--scalar-radius);font-weight:var(--scalar-semibold);font-size:var(--scalar-small);color:var(--scalar-background-2);line-height:22px;font-family:var(--scalar-font);background:var(--scalar-button-1);cursor:pointer;box-sizing:border-box;outline-offset:2px;border:none;justify-content:center;align-items:center;padding:1px 6px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #0000001a}.show-api-client-button span[data-v-15e312d9],.show-api-client-button svg[data-v-15e312d9]{fill:currentColor;color:var(--scalar-button-1-color);z-index:1}.show-api-client-button[data-v-15e312d9]:hover{background:var(--scalar-button-1-hover)}.show-api-client-button svg[data-v-15e312d9]{margin-right:4px}.operation-title[data-v-8f643b1c]{justify-content:space-between;display:flex}.operation-details[data-v-8f643b1c]{flex-shrink:1;align-items:center;gap:9px;min-width:0;margin-top:0;display:flex}.operation-details[data-v-8f643b1c] .endpoint-anchor .scalar-button svg{width:16px;height:16px}.endpoint-type[data-v-8f643b1c]{z-index:0;width:60px;font-size:var(--scalar-small);text-transform:uppercase;font-weight:var(--scalar-bold);font-family:var(--scalar-font);flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:6px;display:flex;position:relative}.endpoint-type[data-v-8f643b1c]:after{content:"";z-index:-1;opacity:.15;border-radius:var(--scalar-radius);background:currentColor;position:absolute;inset:0}.endpoint-anchor[data-v-8f643b1c]{flex-shrink:1;align-items:center;min-width:0;display:flex}.endpoint-anchor.label[data-v-8f643b1c]{display:flex}.endpoint-label[data-v-8f643b1c]{min-width:0;color:var(--scalar-color-1);flex-shrink:1;align-items:baseline;gap:9px;display:flex}.endpoint-label-path[data-v-8f643b1c]{font-family:var(--scalar-font-code);font-size:var(--scalar-mini);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.endpoint-label-path[data-v-8f643b1c] em{color:var(--scalar-color-2)}.endpoint-label-name[data-v-8f643b1c]{color:var(--scalar-color-2);font-size:var(--scalar-small);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1000000000;overflow:hidden}.endpoint-try-hint[data-v-8f643b1c]{flex-shrink:0;padding:2px}.endpoint-copy[data-v-8f643b1c]{color:currentColor}.endpoint-copy[data-v-8f643b1c] svg{stroke-width:2px}.endpoint-content[data-v-8f643b1c]{grid-auto-columns:1fr;grid-auto-flow:row;gap:9px;padding:9px;display:grid}@media (width>=1000px){.endpoint-content[data-v-8f643b1c]{grid-auto-flow:column}}@container (width<=900px){.endpoint-content[data-v-8f643b1c]{grid-template-columns:1fr}}.endpoint-content[data-v-8f643b1c]>*{min-width:0}.operation-details-card[data-v-8f643b1c]{flex-direction:column;gap:12px;min-width:0;display:flex}:is(.operation-details-card-item[data-v-8f643b1c] .parameter-list,.operation-details-card-item[data-v-8f643b1c] .callbacks-list){border:var(--scalar-border-width) solid var(--scalar-border-color);border-radius:var(--scalar-radius-lg);margin-top:0}.operation-details-card-item[data-v-8f643b1c]{flex-direction:column;gap:12px;display:flex}.operation-details-card-item[data-v-8f643b1c] .parameter-list-items{margin-bottom:0}.operation-details-card[data-v-8f643b1c] .parameter-item:last-of-type .parameter-schema{padding-bottom:12px}.operation-details-card[data-v-8f643b1c] .parameter-list .parameter-list{margin-bottom:12px}.operation-details-card[data-v-8f643b1c] .parameter-item{margin:0;padding:0}.operation-details-card[data-v-8f643b1c] .property{margin:0;padding:9px}:is(.operation-details-card[data-v-8f643b1c] .parameter-list-title,.operation-details-card[data-v-8f643b1c] .request-body-title,.operation-details-card[data-v-8f643b1c] .callbacks-title){text-transform:uppercase;font-weight:var(--scalar-bold);font-size:var(--scalar-mini);color:var(--scalar-color-2);margin:0;padding:9px;line-height:1.33}.operation-details-card[data-v-8f643b1c] .callback-list-item-title{padding-left:28px;padding-right:12px}.operation-details-card[data-v-8f643b1c] .callback-list-item-icon{left:6px}.operation-details-card[data-v-8f643b1c] .callback-operation-container{padding-inline:9px;padding-bottom:9px}:is(.operation-details-card[data-v-8f643b1c] .callback-operation-container>.request-body,.operation-details-card[data-v-8f643b1c] .callback-operation-container>.parameter-list){border:none}.operation-details-card[data-v-8f643b1c] .callback-operation-container>.request-body>.request-body-header{border-bottom:var(--scalar-border-width) solid var(--scalar-border-color);padding:0 0 9px}.operation-details-card[data-v-8f643b1c] .request-body-description{border-top:var(--scalar-border-width) solid var(--scalar-border-color);margin-top:0;padding:9px 9px 0}.operation-details-card[data-v-8f643b1c] .request-body{border-radius:var(--scalar-radius-lg);border:var(--scalar-border-width) solid var(--scalar-border-color);margin-top:0}.operation-details-card[data-v-8f643b1c] .request-body .schema-card--level-0>.schema-card-description{padding-inline:9px}.operation-details-card[data-v-8f643b1c] .request-body-header{border-bottom:0;padding-bottom:0}.operation-details-card[data-v-8f643b1c] .contents button{margin-right:9px}.operation-details-card[data-v-8f643b1c] .schema-card--open+.schema-card:not(.schema-card--open){margin-inline:9px;margin-bottom:9px}.operation-details-card[data-v-8f643b1c] .request-body-schema .property--level-0{padding:0}.operation-details-card[data-v-8f643b1c] .selected-content-type{margin-right:9px}.operation-example-card[data-v-8f643b1c]{top:calc(var(--refs-viewport-offset) + 24px);max-height:calc(var(--refs-viewport-height) - 48px);position:sticky}@media (width<=600px){.operation-example-card[data-v-8f643b1c]{max-height:unset;position:static}}.agent-button-container[data-v-78f5377c]{color:var(--scalar-color-1);background:color-mix(in srgb, var(--scalar-background-3), white 15%);cursor:pointer;border-radius:var(--scalar-radius);z-index:2;align-items:center;height:100%;margin-right:4px;padding:1px 6px;display:flex;position:relative}.agent-button-container[data-v-78f5377c]:hover:not(:focus-within){background:color-mix(in srgb, var(--scalar-background-3), white 20%)}.agent-button-container[data-v-78f5377c]:focus-within{border-radius:var(--scalar-radius-lg);height:auto;margin-right:0;position:absolute;inset:2px}.agent-button-container[data-v-78f5377c]:has(.ask-agent-scalar-input-not-empty){border-radius:var(--scalar-radius-lg);height:auto;margin-right:0;position:absolute;inset:2px}.agent-button-container[data-v-78f5377c]:has(.ask-agent-scalar-input:focus-visible){outline-style:solid}.ask-agent-scalar-input[data-v-78f5377c]{opacity:0;border:none;width:0;font-size:0}.agent-button-container:focus-within .ask-agent-scalar-input[data-v-78f5377c]{width:100%;font-size:inherit;opacity:1;outline:none;padding-inline:4px;line-height:20px}.agent-button-container:has(.ask-agent-scalar-input-not-empty) .ask-agent-scalar-input[data-v-78f5377c]{width:100%;font-size:inherit;opacity:1;outline:none;padding-inline:4px;line-height:20px}.ask-agent-scalar-input[data-v-78f5377c]::placeholder{color:var(--scalar-color-2);font-family:inherit}.ask-agent-scalar-input-label[data-v-78f5377c]{color:var(--scalar-color-1);font-weight:var(--scalar-semibold);margin-left:4px}.agent-button-container:focus-within .ask-agent-scalar-input-label[data-v-78f5377c]{display:none}.agent-button-container:has(.ask-agent-scalar-input-not-empty) .ask-agent-scalar-input-label[data-v-78f5377c]{display:none}.ask-agent-scalar-send[data-v-78f5377c]{background:var(--scalar-color-blue);color:#fff;border-radius:var(--scalar-radius);outline-offset:1px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:none}.agent-button-container:has(.ask-agent-scalar-input-not-empty) .ask-agent-scalar-send[data-v-78f5377c]{display:flex}.ask-agent-scalar-send[data-v-78f5377c]:hover{background:color-mix(in srgb, var(--scalar-color-blue), transparent 10%)}.examples[data-v-1f2d95d2]{top:calc(var(--refs-viewport-offset) + 24px);position:sticky}.examples[data-v-1f2d95d2]>*{max-height:calc((var(--refs-viewport-height) - 60px) / 2);position:relative}.examples[data-v-1f2d95d2]>:first-of-type:last-of-type{max-height:calc((var(--refs-viewport-height) - 60px))}@media (width<=600px){.examples[data-v-1f2d95d2]>*{max-height:unset}}.deprecated[data-v-1f2d95d2] *{text-decoration:line-through}.operation-header[data-v-1f2d95d2]{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:4px;margin-bottom:12px;display:flex}@media (width>=600px){.operation-header[data-v-1f2d95d2]{flex-direction:row;align-items:center}}.section-flare[data-v-5cebff7a]{pointer-events:none;position:fixed;top:0;right:0}.narrow-references-container{container:narrow-references-container/inline-size}.ref-search-meta[data-v-9b0e55ef]{background:var(--scalar-background-1);border-bottom-left-radius:var(--scalar-radius-lg);border-bottom-right-radius:var(--scalar-radius-lg);font-size:var(--scalar-font-size-4);color:var(--scalar-color-3);font-weight:var(--scalar-semibold);border-top:var(--scalar-border-width) solid var(--scalar-border-color);gap:12px;padding:6px 12px;display:flex}:root{--scalar-loaded-api-reference:true}@layer scalar-config{.scalar-api-reference[data-v-e26e2526]{--refs-header-height:calc(var(--scalar-custom-header-height,0px) + var(--scalar-header-height,0px));--refs-viewport-offset:calc(var(--refs-header-height,0px) + var(--refs-content-offset,0px));--refs-viewport-height:calc(var(--full-height,100dvh) - var(--refs-viewport-offset,0px));--refs-sidebar-width:var(--scalar-sidebar-width,0px);--refs-sidebar-height:calc(var(--full-height,100dvh) - var(--refs-header-height,0px));--refs-content-max-width:var(--scalar-content-max-width,1540px)}.scalar-api-reference.references-classic[data-v-e26e2526]{--refs-content-max-width:var(--scalar-content-max-width,1420px);--refs-sidebar-width:0;min-height:100dvh}.references-sidebar[data-v-e26e2526]{--refs-sidebar-width:var(--scalar-sidebar-width,288px)}}.t-doc__sidebar[data-v-e26e2526]{z-index:10}.references-layout[data-v-e26e2526]{--full-height:100dvh;grid-template-rows:var(--scalar-header-height,0px) repeat(2, auto);background:var(--scalar-background-1);flex:1;grid-template-columns:auto 1fr;grid-template-areas:"header header""navigation rendered""footer footer";min-width:100%;max-width:100%;min-height:100dvh;display:grid}.references-editor[data-v-e26e2526]{background:var(--scalar-background-1);grid-area:editor;min-width:0;display:flex}.references-rendered[data-v-e26e2526]{background:var(--scalar-background-1);grid-area:rendered;min-width:0;position:relative}.scalar-api-reference.references-classic[data-v-e26e2526],.references-classic .references-rendered[data-v-e26e2526]{height:initial!important;max-height:initial!important}.references-footer[data-v-e26e2526]{grid-area:footer}@media (width<=1000px){.references-developer-tools[data-v-e26e2526]{display:none}.references-layout[data-v-e26e2526]{--refs-sidebar-height:calc(var(--full-height,100dvh) - var(--scalar-custom-header-height,0px));grid-template-columns:100%;grid-template-rows:var(--scalar-header-height,0px) 0px auto auto;grid-template-areas:"header""navigation""rendered""footer"}.references-editable[data-v-e26e2526]{grid-template-areas:"header""navigation""editor"}.references-rendered[data-v-e26e2526]{position:static}.scalar-api-references-standalone-mobile[data-v-e26e2526]:not(.references-classic){--scalar-header-height:50px}}.darklight-reference[data-v-e26e2526]{width:100%;margin-top:auto}/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})(); +(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require(`radix-vue/namespaced`)):typeof define==`function`&&define.amd?define([`radix-vue/namespaced`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`{}`]))})(this,function(e){var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(e&&(t=e(e=0)),t),c=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;lt[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e)),f,p=s((()=>{f=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}})),m,h=s((()=>{p(),m=(e,t)=>{if(!e)return!1;if(e.type===`any`||e.type===`unknown`)return!0;if(e.type===`function`)return typeof t==`function`;if(e.type===`number`)return typeof t==`number`&&!Number.isNaN(t)&&Number.isFinite(t);if(e.type===`string`)return typeof t==`string`;if(e.type===`boolean`)return typeof t==`boolean`;if(e.type===`nullable`)return t===null;if(e.type===`notDefined`)return t===void 0;if(e.type===`array`)return Array.isArray(t)&&t.every(t=>m(e.items,t));if(e.type===`record`)return f(t)?Object.keys(t).every(n=>m(e.key,n)&&m(e.value,t[n])):!1;if(e.type===`object`)return f(t)?Object.keys(e.properties).every(n=>m(e.properties[n],t[n])):!1;if(e.type===`optional`)return t===void 0||m(e.schema,t);if(e.type===`union`)return e.schemas.some(e=>m(e,t));if(e.type===`intersection`)return e.schemas.length===0?!0:f(t)?e.schemas.every(e=>m(e,t)):!1;if(e.type===`literal`)return t===e.value;if(e.type===`lazy`)return m(e.schema(),t);if(e.type===`evaluate`)return m(e.schema,e.expression(t));let n=e;return console.warn(`Unknown schema type:`,n),!1}})),g,_,v,y=s((()=>{p(),h(),g=e=>e.type===`optional`?g(e.schema):e.type===`literal`?!0:e.type===`union`?e.schemas.length>0&&e.schemas.every(g):!1,_=(e,t)=>e.type===`object`?f(t)?Object.keys(e.properties).reduce((n,r)=>{if(!(r in t))return n;let i=e.properties[r],a=t[r],o=_(i,a);return g(i)?n+(o>0?o*10:0):n+(o>0?o:1)},0):0:e.type===`array`?Array.isArray(t)?1:0:e.type===`record`?f(t)?1:0:e.type===`optional`?t===void 0?1:_(e.schema,t):e.type===`union`?Math.max(...e.schemas.map(e=>_(e,t))):e.type===`intersection`?e.schemas.length===0?1:e.schemas.reduce((e,n)=>e+_(n,t),0):e.type===`lazy`?_(e.schema(),t):e.type===`evaluate`?_(e.schema,e.expression(t)):m(e,t)?1:0,v=(e,t,n=new WeakMap)=>{if(f(t)&&n.get(t)?.has(e))return t;if(f(t)){let r=n.get(t)||new Set;r.add(e),n.set(t,r)}if(!e||e.type===`any`||e.type===`unknown`)return t;if(e.type===`function`)return typeof t==`function`?t:(()=>void 0);if(e.type===`number`)return m(e,t)?t:e.default??0;if(e.type===`string`)return m(e,t)?t:e.default??``;if(e.type===`boolean`)return m(e,t)?t:e.default??!1;if(e.type===`nullable`)return null;if(e.type===`notDefined`)return;if(e.type===`optional`)return t===void 0?void 0:v(e.schema,t,n);if(e.type===`array`)return Array.isArray(t)?t.map(t=>v(e.items,t,n)):[];if(e.type===`record`)return f(t)?Object.fromEntries(Object.entries(t).map(([t,r])=>[t,v(e.value,r,n)])):{};if(e.type===`object`){let r=Object.keys(e.properties),i=f(t)?t:null,a=[];for(let t of r){let r=e.properties[t],o=i?.[t];r.type===`optional`&&o===void 0||a.push([t,v(r,o,n)])}return Object.fromEntries(a)}if(e.type===`union`)return v(e.schemas.reduce((e,n)=>{let r=_(n,t);return r>e.score?{schema:n,score:r}:e},{schema:e.schemas[0],score:0}).schema,t,n);if(e.type===`intersection`)return e.schemas.reduce((e,r)=>Object.assign(e,v(r,t,n)),{});if(e.type===`literal`)return e.value;if(e.type===`lazy`)return v(e.schema(),t,n);if(e.type===`evaluate`)return v(e.schema,e.expression(t),n);let r=e;return console.warn(`Unknown schema type:`,r),t}})),b,x,S,C,w,ee,te,ne,re,T,ie,ae,E,D,oe,se,ce=s((()=>{b=e=>({type:`number`,default:e?.default,typeName:e?.typeName,typeComment:e?.typeComment}),x=e=>({type:`string`,default:e?.default,typeName:e?.typeName,typeComment:e?.typeComment}),S=e=>({type:`boolean`,default:e?.default,typeName:e?.typeName,typeComment:e?.typeComment}),C=e=>({type:`nullable`,typeName:e?.typeName,typeComment:e?.typeComment}),w=e=>({type:`any`,typeName:e?.typeName,typeComment:e?.typeComment}),ee=e=>({type:`unknown`,typeName:e?.typeName,typeComment:e?.typeComment}),te=e=>({type:`function`,typeName:e?.typeName,typeComment:e?.typeComment}),ne=(e,t)=>({type:`array`,items:e,typeName:t?.typeName,typeComment:t?.typeComment}),re=(e,t,n)=>({type:`record`,key:e,value:t,typeName:n?.typeName,typeComment:n?.typeComment}),T=(e,t)=>({type:`object`,properties:e,typeName:t?.typeName,typeComment:t?.typeComment}),ie=(e,t)=>({type:`union`,schemas:e,typeName:t?.typeName,typeComment:t?.typeComment}),ae=(e,t)=>({type:`intersection`,schemas:e,typeName:t?.typeName,typeComment:t?.typeComment}),E=(e,t)=>({type:`optional`,schema:e,typeName:t?.typeName,typeComment:t?.typeComment}),D=e=>({type:`literal`,value:e}),oe=e=>({type:`lazy`,schema:e}),se=(e,t)=>({type:`evaluate`,expression:e,schema:t})})),le=s((()=>{y(),ce(),h()})),ue,de,fe=s((()=>{le(),T({name:x({typeComment:"Name of specification extension property. Has to start with `x-`."}),component:ee({typeComment:`Vue component to render the specification extension`}),renderer:E(ee({typeComment:`Custom renderer to render the specification extension`}))}),ue=T({component:ee({typeComment:`Vue component to render in the view`}),renderer:E(ee({typeComment:`Custom renderer to render the view component (e.g., ReactRenderer)`})),props:E(re(x(),w()),{typeComment:`Additional props to pass to the component`})}),T({"content.end":E(ne(ue),{typeComment:`Components to render at specific views in the API Reference`})}),T({onInit:E(te()),onConfigChange:E(te()),onDestroy:E(te())}),de=te()})),pe,me,he=s((()=>{le(),pe=T({dashboardUrl:x({default:`https://dashboard.scalar.com`}),registryUrl:x({default:`https://registry.scalar.com`}),proxyUrl:x({default:`https://proxy.scalar.com`}),apiBaseUrl:x({default:`https://api.scalar.com`})},{typeComment:`External service URLs used by Scalar packages`}),me=T({title:E(x(),{typeComment:`The title of the OpenAPI document.`}),slug:E(x(),{typeComment:`The slug of the OpenAPI document used in the URL. If none is passed, the title will be used. If no title is used, it will just use the index.`}),authentication:E(w(),{typeComment:`Prefill authentication`}),baseServerURL:E(x(),{typeComment:`Base URL for the API server`}),hideClientButton:S({default:!1,typeComment:`Whether to hide the client button`}),proxyUrl:E(x(),{typeComment:`URL to a request proxy for the API client`}),oauth2RedirectUri:E(x(),{typeComment:`Default OAuth 2.0 redirect URI used to prefill auth flows in the API client.`}),searchHotKey:E(ie([D(`a`),D(`b`),D(`c`),D(`d`),D(`e`),D(`f`),D(`g`),D(`h`),D(`i`),D(`j`),D(`k`),D(`l`),D(`m`),D(`n`),D(`o`),D(`p`),D(`q`),D(`r`),D(`s`),D(`t`),D(`u`),D(`v`),D(`w`),D(`x`),D(`y`),D(`z`)]),{typeComment:`Key used with CTRL/CMD to open the search modal (defaults to 'k' e.g. CMD+k)`}),servers:E(ne(w()),{typeComment:`List of OpenAPI server objects`}),showSidebar:S({default:!0,typeComment:`Whether to show the sidebar`}),showDeveloperTools:ie([D(`localhost`),D(`always`),D(`never`)],{typeComment:`Whether and when to show the developer tools.`}),showToolbar:ie([D(`localhost`),D(`always`),D(`never`)],{typeComment:`@deprecated Use showDeveloperTools instead`}),operationTitleSource:ie([D(`summary`),D(`path`)],{typeComment:`Whether to use the operation summary or the operation path for the sidebar and search`}),theme:ie([D(`default`),D(`alternate`),D(`moon`),D(`purple`),D(`solarized`),D(`bluePlanet`),D(`deepSpace`),D(`saturn`),D(`kepler`),D(`elysiajs`),D(`fastify`),D(`mars`),D(`laserwave`),D(`none`)],{typeComment:`A string to use one of the color presets`}),_integration:E(ie([D(`adonisjs`),D(`astro`),D(`docusaurus`),D(`dotnet`),D(`elysiajs`),D(`express`),D(`fastapi`),D(`fastify`),D(`go`),D(`hono`),D(`html`),D(`laravel`),D(`litestar`),D(`nestjs`),D(`nextjs`),D(`nitro`),D(`nuxt`),D(`platformatic`),D(`react`),D(`rust`),D(`svelte`),D(`vue`),C()]),{typeComment:`Integration type identifier`}),onRequestSent:E(te(),{typeComment:`onRequestSent is fired when a request is sent`}),persistAuth:S({default:!1,typeComment:`Whether to persist auth to local storage`}),telemetry:S({default:!0,typeComment:`Enables / disables telemetry`}),externalUrls:pe})})),ge,_e,ve=s((()=>{le(),ge=ie([x(),C(),re(x(),w()),te()]),_e=T({default:S({default:!1}),url:E(x(),{typeComment:`URL to an OpenAPI/Swagger document`}),content:E(ge,{typeComment:`Directly embed the OpenAPI document. Can be a string, object, function returning an object, or null. It is recommended to pass a URL instead of content.`}),title:E(x(),{typeComment:"The title of the OpenAPI document. @deprecated Please move `title` to the top level and remove the `spec` prefix."}),slug:E(x(),{typeComment:"The slug of the OpenAPI document used in the URL. @deprecated Please move `slug` to the top level and remove the `spec` prefix."}),spec:E(T({url:E(x()),content:E(ge)}),{typeComment:"@deprecated Use `url` and `content` on the top level instead."}),agent:E(T({key:E(x()),disabled:E(S()),hideAddApi:E(S(),{typeComment:`When true, hide the control to add more APIs in the agent chat. Only preloaded/registry documents are shown; the public API list is not offered.`})}),{typeComment:`Agent Scalar configuration`})})})),ye,be,xe,Se,Ce=s((()=>{le(),fe(),he(),ve(),ye=ae([me,_e,T({layout:ie([D(`modern`),D(`classic`)],{typeComment:`The layout to use for the references`}),proxy:E(x(),{typeComment:`@deprecated Use proxyUrl instead`}),fetch:E(te(),{typeComment:`Custom fetch function for custom logic. Can be used to add custom headers, handle auth, etc.`}),plugins:E(ne(de),{typeComment:`Plugins for the API reference`}),isEditable:S({default:!1,typeComment:`Allows the user to inject an editor for the spec`}),isLoading:S({default:!1,typeComment:`Controls whether the references show a loading state in the intro`}),hideModels:S({default:!1,typeComment:`Whether to show models in the sidebar, search, and content.`}),documentDownloadType:ie([D(`both`),D(`yaml`),D(`json`),D(`direct`),D(`none`)],{typeComment:"Sets the file type of the document to download, set to `none` to hide the download button"}),hideDownloadButton:E(S(),{typeComment:"@deprecated Use `documentDownloadType: 'none'` instead"}),hideTestRequestButton:S({default:!1,typeComment:`Whether to show the "Test Request" button`}),hideSearch:S({default:!1,typeComment:`Whether to show the sidebar search bar`}),showOperationId:S({default:!1,typeComment:`Whether to show the operationId`}),darkMode:E(S(),{typeComment:`Whether dark mode is on or off initially (light mode)`}),forceDarkModeState:E(ie([D(`dark`),D(`light`)]),{typeComment:`forceDarkModeState makes it always this state no matter what`}),hideDarkModeToggle:S({default:!1,typeComment:`Whether to show the dark mode toggle`}),metaData:E(w(),{typeComment:`If used, passed data will be added to the HTML header. @see https://unhead.unjs.io/usage/composables/use-seo-meta`}),favicon:E(x(),{typeComment:`Path to a favicon image`}),hiddenClients:E(ie([re(x(),ie([S(),ne(x())])),ne(x()),D(!0)]),{typeComment:"List of httpsnippet clients to hide from the clients menu. By default hides Unirest, pass `[]` to show all clients"}),defaultHttpClient:E(T({targetKey:x(),clientKey:x()}),{typeComment:`Determine the HTTP client that is selected by default`}),customCss:E(x(),{typeComment:`Custom CSS to be added to the page`}),onSpecUpdate:E(te(),{typeComment:`onSpecUpdate is fired on spec/swagger content change`}),onServerChange:E(te(),{typeComment:`onServerChange is fired on selected server change`}),onDocumentSelect:E(te(),{typeComment:`onDocumentSelect is fired when the config is selected`}),onLoaded:E(te(),{typeComment:`Callback fired when the reference is fully loaded`}),onBeforeRequest:E(te(),{typeComment:`Fired before the outbound request is built; callback receives a mutable request builder. Experimental API.`}),onShowMore:E(te(),{typeComment:`onShowMore is fired when the user clicks the "Show more" button on the references`}),onSidebarClick:E(te(),{typeComment:`onSidebarClick is fired when the user clicks on a sidebar item`}),pathRouting:E(T({basePath:x()}),{typeComment:`Route using paths instead of hashes, your server MUST support this. @experimental`}),mcp:E(T({name:E(x(),{typeComment:`Display name for the MCP server`}),url:E(x(),{typeComment:`URL of the MCP server`}),disabled:E(S(),{typeComment:`When true, disables the MCP integration`})}),{typeComment:`MCP (Model Context Protocol) configuration. When provided, enables MCP integration with the given name and url.`}),generateHeadingSlug:E(te(),{typeComment:`Customize the heading portion of the hash`}),generateModelSlug:E(te(),{typeComment:`Customize the model portion of the hash`}),generateTagSlug:E(te(),{typeComment:`Customize the tag portion of the hash`}),generateOperationSlug:E(te(),{typeComment:`Customize the operation portion of the hash`}),generateWebhookSlug:E(te(),{typeComment:`Customize the webhook portion of the hash`}),redirect:E(te(),{typeComment:`To handle redirects, pass a function that receives the current path/hash and passes that to history.replaceState`}),withDefaultFonts:S({default:!0,typeComment:`Whether to include default fonts`}),defaultOpenFirstTag:S({default:!0,typeComment:`Whether to expand the first tag in the sidebar when no specific URL target is present`}),defaultOpenAllTags:S({default:!1,typeComment:`Whether to expand all tags by default. Warning: this can cause performance issues on big documents`}),expandAllModelSections:S({default:!1,typeComment:`Whether to expand all models by default. Warning: this can cause performance issues on big documents`}),expandAllResponses:S({default:!1,typeComment:`Whether to expand all responses by default. Warning: this can cause performance issues on big documents`}),tagsSorter:E(ie([D(`alpha`),te()]),{typeComment:`Function to sort tags`}),operationsSorter:E(ie([D(`alpha`),D(`method`),te()]),{typeComment:`Function to sort operations`}),orderSchemaPropertiesBy:ie([D(`alpha`),D(`preserve`)],{typeComment:`Order the schema properties by`}),orderRequiredPropertiesFirst:S({default:!0,typeComment:`Sort the schema properties by required ones first`})})]),be=`https://api.scalar.com/request-proxy`,xe=`https://proxy.scalar.com`,Se=e=>{let t=v(ye,e);return t.hideDownloadButton&&(console.warn(`[DEPRECATED] You're using the deprecated 'hideDownloadButton' attribute. Use 'documentDownloadType: 'none'' instead.`),t.documentDownloadType=`none`),t.spec?.url&&(console.warn(`[DEPRECATED] You're using the deprecated 'spec.url' attribute. Remove the spec prefix and move the 'url' attribute to the top level.`),t.url=t.spec.url,delete t.spec),t.spec?.content&&(console.warn(`[DEPRECATED] You're using the deprecated 'spec.content' attribute. Remove the spec prefix and move the 'content' attribute to the top level.`),t.content=t.spec.content,delete t.spec),t.proxy&&(console.warn(`[DEPRECATED] You're using the deprecated 'proxy' attribute. Use 'proxyUrl' instead.`),t.proxyUrl||=t.proxy,delete t.proxy),t.proxyUrl===be&&(console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${be}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${xe}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${xe}). Read more: https://github.com/scalar/scalar`),t.proxyUrl=xe),t.showToolbar&&t.showToolbar!==`localhost`&&(console.warn(`[DEPRECATED] You're using the deprecated 'showToolbar' attribute. Use 'showDeveloperTools' instead.`),t.showDeveloperTools=t.showToolbar,delete t.showToolbar),t}})),we=s((()=>{le(),T({cdn:x({default:`https://cdn.jsdelivr.net/npm/@scalar/api-reference`}),pageTitle:x({default:`Scalar API Reference`})})})),Te=s((()=>{Ce(),we()}));Te();function Ee(e,t={},n){for(let r in e){let i=e[r],a=n?`${n}:${r}`:r;typeof i==`object`&&i?Ee(i,t,a):typeof i==`function`&&(t[a]=i)}return t}var De=(()=>{if(console.createTask)return console.createTask;let e={run:e=>e()};return()=>e})();function Oe(e,t,n,r){for(let i=n;ie[i](...t)):e[i](...t);if(n instanceof Promise)return n.then(()=>Oe(e,t,i+1,r))}catch(e){return Promise.reject(e)}}function ke(e,t,n){if(e.length>0)return Oe(e,t,0,De(n))}function Ae(e,t,n){if(e.length>0){let r=De(n);return Promise.all(e.map(e=>r.run(()=>e(...t))))}}function je(e,t){for(let n of[...e])n(t)}var Me=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!=`function`)return()=>{};let r=e,i;for(;this._deprecatedHooks[e];)i=this._deprecatedHooks[e],e=i.to;if(i&&!n.allowDeprecated){let e=i.message;e||=`${r} hook has been deprecated`+(i.to?`, please use ${i.to}`:``),this._deprecatedMessages||=new Set,this._deprecatedMessages.has(e)||(console.warn(e),this._deprecatedMessages.add(e))}if(!t.name)try{Object.defineProperty(t,`name`,{get:()=>`_`+e.replace(/\W+/g,`_`)+`_hook_cb`,configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)}}hookOnce(e,t){let n,r=(...e)=>(typeof n==`function`&&n(),n=void 0,r=void 0,t(...e));return n=this.hook(e,r),n}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==`string`?{to:t}:t;let n=this._hooks[e]||[];this._hooks[e]=void 0;for(let t of n)this.hook(e,t)}deprecateHooks(e){for(let t in e)this.deprecateHook(t,e[t])}addHooks(e){let t=Ee(e),n=Object.keys(t).map(e=>this.hook(e,t[e]));return()=>{for(let e of n)e();n.length=0}}removeHooks(e){let t=Ee(e);for(let e in t)this.removeHook(e,t[e])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(ke,e,t)}callHookParallel(e,...t){return this.callHookWith(Ae,e,t)}callHookWith(e,t,n){let r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&je(this._before,r);let i=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return i instanceof Promise?i.finally(()=>{this._after&&r&&je(this._after,r)}):(this._after&&r&&je(this._after,r),i)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){let t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){let t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function Ne(){return new Me}var Pe=new Set([`link`,`style`,`script`,`noscript`]),Fe=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),Ie=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),Le=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),Re=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),ze=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),Be=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),Ve=new Set([`theme-color`,`google-site-verification`,`og`,`article`,`book`,`profile`,`twitter`,`author`]),He=[`name`,`property`,`http-equiv`],Ue=new Set([`viewport`,`description`,`keywords`,`robots`]);function We(e){let t=e.split(`:`);return t.length?Ve.has(t[1]):!1}function Ge(e){let{props:t,tag:n}=e;if(Re.has(n))return n;if(n===`link`&&t.rel===`canonical`)return`canonical`;if(n===`link`&&t.rel===`alternate`){let e=t.hreflang||t.type;if(e)return`alternate:${e}`}if(t.charset)return`charset`;if(e.tag===`meta`){for(let r of He)if(t[r]!==void 0){let i=t[r],a=i&&typeof i==`string`&&i.includes(`:`),o=i&&Ue.has(i);return`${n}:${i}${!(a||o)&&e.key?`:key:${e.key}`:``}`}}if(e.key)return`${n}:key:${e.key}`;if(t.id)return`${n}:id:${t.id}`;if(n===`link`&&t.rel===`alternate`)return`alternate:${t.href||``}`;if(Fe.has(n)){let t=e.textContent||e.innerHTML;if(t)return`${n}:content:${t}`}}function Ke(e){return e._h||e._d||e.textContent||e.innerHTML||`${e.tag}:${Object.entries(e.props).map(([e,t])=>`${e}:${String(t)}`).join(`,`)}`}function qe(e,t,n){typeof e==`function`&&(!n||n!==`titleTemplate`&&!(n[0]===`o`&&n[1]===`n`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r))return r.map(e=>qe(e,t));if(r?.constructor===Object){let e={};for(let n of Object.keys(r))e[n]=qe(r[n],t,n);return e}return r}function Je(e,t){let n=e===`style`?new Map:new Set;function r(t){if(t==null||t===void 0)return;let r=String(t).trim();if(r)if(e===`style`){let[e,...t]=r.split(`:`).map(e=>e?e.trim():``);e&&t.length&&n.set(e,t.join(`:`))}else r.split(` `).filter(Boolean).forEach(e=>n.add(e))}return typeof t==`string`?e===`style`?t.split(`;`).forEach(r):r(t):Array.isArray(t)?t.forEach(e=>r(e)):t&&typeof t==`object`&&Object.entries(t).forEach(([t,i])=>{i&&i!==`false`&&(e===`style`?n.set(String(t).trim(),String(i)):r(t))}),n}function Ye(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=Ie.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;return Object.entries(t).forEach(([r,i])=>{if(r===`__proto__`||r===`constructor`||r===`prototype`)return;if(i===null){e.props[r]=null;return}if(r===`class`||r===`style`){e.props[r]=Je(r,i);return}if(ze.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof i==`object`){let n=t.type;if(t.type||(n=`application/json`),!n?.endsWith(`json`)&&n!==`speculationrules`)return;t.type=n,e.props.type=n,e[r]=JSON.stringify(i)}else e[r]=i;return}let a=r.startsWith(`data-`),o=n&&!a?r.toLowerCase():r,s=String(i),c=e.tag===`meta`&&o===`content`;s===`true`||s===``?e.props[o]=a||c?s:!0:!i&&a&&s===`false`?e.props[o]=`false`:i!==void 0&&(e.props[o]=i)}),e}function eee(e,t){let n=Ye({tag:e,props:{}},typeof t==`object`&&typeof t!=`function`?t:{[e===`script`||e===`noscript`||e===`style`?`innerHTML`:`textContent`]:t});return n.key&&Pe.has(n.tag)&&(n.props[`data-hid`]=n._h=n.key),n.tag===`script`&&typeof n.innerHTML==`object`&&(n.innerHTML=JSON.stringify(n.innerHTML),n.props.type=n.props.type||`application/json`),Array.isArray(n.props.content)?n.props.content.map(e=>({...n,props:{...n.props,content:e}})):n}function Xe(e,t){if(!e)return[];typeof e==`function`&&(e=e());let n=(e,n)=>{for(let r=0;r{if(t!==void 0)for(let n of Array.isArray(t)?t:[t])r.push(eee(e,n))}),r.flat()}var Ze=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,tee={base:-10,title:10},nee={critical:-8,high:-1,low:2},ree={meta:{"content-security-policy":-30,charset:-20,viewport:-15},link:{preconnect:20,stylesheet:60,preload:70,modulepreload:70,prefetch:90,"dns-prefetch":90,prerender:90},script:{async:30,defer:80,sync:50},style:{imported:40,sync:60}},iee=/@import/,Qe=e=>e===``||e===!0;function aee(e,t){if(typeof t.tagPriority==`number`)return t.tagPriority;let n=100,r=nee[t.tagPriority]||0,i=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:ree;if(t.tag in tee)n=tee[t.tag];else if(t.tag===`meta`){let e=t.props[`http-equiv`]===`content-security-policy`?`content-security-policy`:t.props.charset?`charset`:t.props.name===`viewport`?`viewport`:null;e&&(n=ree.meta[e])}else if(t.tag===`link`&&t.props.rel)n=i.link[t.props.rel];else if(t.tag===`script`){let e=String(t.props.type);Qe(t.props.async)?n=i.script.async:t.props.src&&!Qe(t.props.defer)&&!Qe(t.props.async)&&e!==`module`&&!e.endsWith(`json`)||t.innerHTML&&!e.endsWith(`json`)?n=i.script.sync:(Qe(t.props.defer)&&t.props.src&&!Qe(t.props.async)||e===`module`)&&(n=i.script.defer)}else t.tag===`style`&&(n=t.innerHTML&&iee.test(t.innerHTML)?i.style.imported:i.style.sync);return(n||100)+r}function oee(e,t){let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);e.plugins.get(r)||(e.plugins.set(r,n),e.hooks.addHooks(n.hooks||{}))}function see(e={}){let t=Ne();t.addHooks(e.hooks||{});let n=!e.document,r=new Map,i=new Map,a=new Set,o={_entryCount:1,plugins:i,dirty:!1,resolvedOptions:e,hooks:t,ssr:n,entries:r,headEntries(){return[...r.values()]},use:e=>oee(o,e),push(e,i){let s={...i||{}};delete s.head;let c=s._index??o._entryCount++,l={_i:c,input:e,options:s},u={_poll(e=!1){o.dirty=!0,!e&&a.add(c),t.callHook(`entries:updated`,o)},dispose(){r.delete(c)&&o.invalidate()},patch(e){(!s.mode||s.mode===`server`&&n||s.mode===`client`&&!n)&&(l.input=e,r.set(c,l),u._poll())}};return u.patch(e),u},async resolveTags(){let n={tagMap:new Map,tags:[],entries:[...o.entries.values()]};for(await t.callHook(`entries:resolve`,n);a.size;){let n=a.values().next().value;a.delete(n);let i=r.get(n);if(i){let n={tags:Xe(i.input,e.propResolvers||[]).map(e=>Object.assign(e,i.options)),entry:i};await t.callHook(`entries:normalize`,n),i._tags=n.tags.map((e,t)=>(e._w=aee(o,e),e._p=(i._i<<10)+t,e._d=Ge(e),e._d||(e._h=Ke(e)),e))}}let i=!1;n.entries.flatMap(e=>(e._tags||[]).map(e=>({...e,props:{...e.props}}))).sort(Ze).reduce((e,t)=>{let n=t._d||t._h;if(!e.has(n))return e.set(n,t);let r=e.get(n);if((t?.tagDuplicateStrategy||(Be.has(t.tag)?`merge`:null)||(t.key&&t.key===r.key?`merge`:null))===`merge`){let i={...r.props};Object.entries(t.props).forEach(([e,t])=>i[e]=e===`style`?new Map([...r.props.style||new Map,...t]):e===`class`?new Set([...r.props.class||new Set,...t]):t),e.set(n,{...t,props:i})}else t._p>>10==r._p>>10&&t.tag===`meta`&&We(n)?(e.set(n,Object.assign([...Array.isArray(r)?r:[r],t],t)),i=!0):(t._w===r._w?t._p>r._p:t?._woee(o,e)),o.hooks.callHook(`init`,o),e.init?.forEach(e=>e&&o.push(e)),o}async function cee(e,t={}){let n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;let r={shouldRender:!0,tags:[]};if(await e.hooks.callHook(`dom:beforeRender`,r),r.shouldRender)return e._domUpdatePromise||=new Promise(async t=>{let r=new Map,i=new Promise(t=>{e.resolveTags().then(e=>{t(e.map(e=>{let t=r.get(e._d)||0,n={tag:e,id:(t?`${e._d}:${t}`:e._d)||e._h,shouldRender:!0};return e._d&&We(e._d)&&r.set(e._d,t+1),n}))})}),a=e._dom;if(!a){a={title:n.title,elMap:new Map().set(`htmlAttrs`,n.documentElement).set(`bodyAttrs`,n.body)};for(let e of[`body`,`head`]){let t=n[e]?.children;for(let e of t){let t=e.tagName.toLowerCase();if(!Ie.has(t))continue;let n=Ye({tag:t,props:{}},{innerHTML:e.innerHTML,...e.getAttributeNames().reduce((t,n)=>(t[n]=e.getAttribute(n),t),{})||{}});if(n.key=e.getAttribute(`data-hid`)||void 0,n._d=Ge(n)||Ke(n),a.elMap.has(n._d)){let t=1,r=n._d;for(;a.elMap.has(r);)r=`${n._d}:${t++}`;a.elMap.set(r,e)}else a.elMap.set(n._d,e)}}}a.pendingSideEffects={...a.sideEffects},a.sideEffects={};function o(e,t,n){let r=`${e}:${t}`;a.sideEffects[r]=n,delete a.pendingSideEffects[r]}function s({id:e,$el:t,tag:r}){let i=r.tag.endsWith(`Attrs`);a.elMap.set(e,t),i||(r.textContent&&r.textContent!==t.textContent&&(t.textContent=r.textContent),r.innerHTML&&r.innerHTML!==t.innerHTML&&(t.innerHTML=r.innerHTML),o(e,`el`,()=>{t?.remove(),a.elMap.delete(e)}));for(let a in r.props){if(!Object.prototype.hasOwnProperty.call(r.props,a))continue;let s=r.props[a];if(a.startsWith(`on`)&&typeof s==`function`){let e=t?.dataset;if(e&&e[`${a}fired`]){let e=a.slice(0,-5);s.call(t,new Event(e.substring(2)))}t.getAttribute(`data-${a}`)!==``&&((r.tag===`bodyAttrs`?n.defaultView:t).addEventListener(a.substring(2),s.bind(t)),t.setAttribute(`data-${a}`,``));continue}let c=`attr:${a}`;if(a===`class`){if(!s)continue;for(let n of s)i&&o(e,`${c}:${n}`,()=>t.classList.remove(n)),!t.classList.contains(n)&&t.classList.add(n)}else if(a===`style`){if(!s)continue;for(let[n,r]of s)o(e,`${c}:${n}`,()=>{t.style.removeProperty(n)}),t.style.setProperty(n,r)}else s!==!1&&s!==null&&(t.getAttribute(a)!==s&&t.setAttribute(a,s===!0?``:String(s)),i&&o(e,c,()=>t.removeAttribute(a)))}}let c=[],l={bodyClose:void 0,bodyOpen:void 0,head:void 0},u=await i;for(let e of u){let{tag:t,shouldRender:r,id:i}=e;if(r){if(t.tag===`title`){n.title=t.textContent,o(`title`,``,()=>n.title=a.title);continue}e.$el=e.$el||a.elMap.get(i),e.$el?s(e):Ie.has(t.tag)&&c.push(e)}}for(let e of c){let t=e.tag.tagPosition||`head`;e.$el=n.createElement(e.tag.tag),s(e),l[t]=l[t]||n.createDocumentFragment(),l[t].appendChild(e.$el)}for(let t of u)await e.hooks.callHook(`dom:renderTag`,t,n,o);l.head&&n.head.appendChild(l.head),l.bodyOpen&&n.body.insertBefore(l.bodyOpen,n.body.firstChild),l.bodyClose&&n.body.appendChild(l.bodyClose);for(let e in a.pendingSideEffects)a.pendingSideEffects[e]();e._dom=a,await e.hooks.callHook(`dom:rendered`,{renders:u}),t()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1}),e._domUpdatePromise}function lee(e={}){let t=e.domOptions?.render||cee;e.document=e.document||(typeof window<`u`?document:void 0);let n=e.document?.head.querySelector(`script[id="unhead:payload"]`)?.innerHTML||!1;return see({...e,plugins:[...e.plugins||[],{key:`client`,hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function uee(e,t){let n=0;return()=>{let r=++n;t(()=>{n===r&&e()})}}var $e={META:new Set([`twitter`]),OG:new Set([`og`,`book`,`article`,`profile`,`fb`]),MEDIA:new Set([`ogImage`,`ogVideo`,`ogAudio`,`twitterImage`]),HTTP_EQUIV:new Set([`contentType`,`defaultStyle`,`xUaCompatible`])},dee={articleExpirationTime:`article:expiration_time`,articleModifiedTime:`article:modified_time`,articlePublishedTime:`article:published_time`,bookReleaseDate:`book:release_date`,fbAppId:`fb:app_id`,ogAudioSecureUrl:`og:audio:secure_url`,ogAudioUrl:`og:audio`,ogImageSecureUrl:`og:image:secure_url`,ogImageUrl:`og:image`,ogSiteName:`og:site_name`,ogVideoSecureUrl:`og:video:secure_url`,ogVideoUrl:`og:video`,profileFirstName:`profile:first_name`,profileLastName:`profile:last_name`,profileUsername:`profile:username`,msapplicationConfig:`msapplication-Config`,msapplicationTileColor:`msapplication-TileColor`,msapplicationTileImage:`msapplication-TileImage`},fee={appleItunesApp:{unpack:{entrySeparator:`, `,resolve:({key:e,value:t})=>`${et(e)}=${t}`}},refresh:{metaKey:`http-equiv`,unpack:{entrySeparator:`;`,resolve:({key:e,value:t})=>e===`seconds`?`${t}`:void 0}},robots:{unpack:{entrySeparator:`, `,resolve:({key:e,value:t})=>typeof t==`boolean`?et(e):`${et(e)}:${t}`}},contentSecurityPolicy:{metaKey:`http-equiv`,unpack:{entrySeparator:`; `,resolve:({key:e,value:t})=>`${et(e)} ${t}`}},charset:{}};function et(e){let t=e.replace(/([A-Z])/g,`-$1`).toLowerCase(),n=t.indexOf(`-`);return n===-1?t:$e.META.has(t.slice(0,n))||$e.OG.has(t.slice(0,n))?e.replace(/([A-Z])/g,`:$1`).toLowerCase():t}function pee(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>String(t)!==`false`&&e))}function tt(e){return Array.isArray(e)?e.map(tt):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[et(e),tt(t)]))}function mee(e,t={}){let{entrySeparator:n=``,keyValueSeparator:r=``,wrapValue:i,resolve:a}=t;return Object.entries(e).map(([e,n])=>{if(a){let t=a({key:e,value:n});if(t!==void 0)return t}return`${e}${r}${typeof n==`object`?mee(n,t):typeof n==`number`?n.toString():typeof n==`string`&&i?`${i}${n.replace(new RegExp(i,`g`),`\\${i}`)}${i}`:n}`}).join(n)}function hee(e,t){let n=pee(t),r=et(e),i=gee(r);return Ve.has(r)?nt(Object.fromEntries(Object.entries(n).map(([t,n])=>[`${e}${t===`url`?``:`${t[0].toUpperCase()}${t.slice(1)}`}`,n]))||{}).sort((e,t)=>(e[i]?.length||0)-(t[i]?.length||0)):[{[i]:r,...n}]}function gee(e){if(fee[e]?.metaKey===`http-equiv`||$e.HTTP_EQUIV.has(e))return`http-equiv`;let t=et(e),n=t.indexOf(`:`);return n===-1?`name`:$e.OG.has(t.slice(0,n))?`property`:`name`}function _ee(e){return dee[e]||et(e)}function vee(e,t){return t===`refresh`?`${e.seconds};url=${e.url}`:mee(tt(e),{keyValueSeparator:`=`,entrySeparator:`, `,resolve:({value:e,key:t})=>e===null?``:typeof e==`boolean`?t:void 0,...fee[t]?.unpack})}function nt(e){let t=[],n={};for(let[r,i]of Object.entries(e)){if(Array.isArray(i)){if(r===`themeColor`){i.forEach(e=>{typeof e==`object`&&e&&t.push({name:`theme-color`,...e})});continue}for(let e of i)if(typeof e==`object`&&e){let n=[],i=[];for(let[t,a]of Object.entries(e)){let e=nt({[`${r}${t===`url`?``:`:${t}`}`]:a});(t===`url`?n:i).push(...e)}t.push(...n,...i)}else t.push(...typeof e==`string`?nt({[r]:e}):hee(r,e));continue}if(typeof i==`object`&&i)if($e.MEDIA.has(r)){let e=r.startsWith(`twitter`)?`twitter`:`og`,n=r.replace(/^(og|twitter)/,``).toLowerCase(),a=e===`twitter`?`name`:`property`;i.url&&t.push({[a]:`${e}:${n}`,content:i.url}),i.secureUrl&&t.push({[a]:`${e}:${n}:secure_url`,content:i.secureUrl});for(let[r,o]of Object.entries(i))r!==`url`&&r!==`secureUrl`&&t.push({[a]:`${e}:${n}:${r}`,content:o})}else Ve.has(et(r))?t.push(...hee(r,i)):n[r]=pee(i);else n[r]=i}let r=Object.entries(n).map(([e,t])=>{if(e===`charset`)return{charset:t===null?`_null`:t};let n=gee(e),r=_ee(e),i=t===null?`_null`:typeof t==`object`?vee(t,e):typeof t==`number`?t.toString():t;return n===`http-equiv`?{"http-equiv":r,content:i}:{[n]:r,content:i}});return[...t,...r].map(e=>`content`in e&&e.content===`_null`?{...e,content:null}:e)}function yee(e){return e}var bee=yee({key:`flatMeta`,hooks:{"entries:normalize":e=>{let t=[];e.tags=e.tags.map(e=>e.tag===`_flatMeta`?(t.push(nt(e.props).map(t=>({...e,tag:`meta`,props:t}))),!1):e).filter(Boolean).concat(...t)}}});function xee(e){if(Array.isArray(e))return e.map(xee);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))n===`__proto__`||n===`constructor`||n===`prototype`||(t[n]=xee(e[n]));return t}return e}function rt(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}function it(e){if(_t(e)){let t={};for(let n=0;n{if(e){let n=e.split(Nee);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function O(e){let t=``;if(St(e))t=e;else if(_t(e))for(let n=0;not(e,t))}function Tee(e){return e==null?`initial`:typeof e==`string`?e===``?` `:e:String(e)}var ct,lt,ut,dt,ft,pt,mt,ht,Eee,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Dee,Ot,kt,At,jt,Oee,Mt,kee,Nt,Pt,Ft,It,Lt,Rt,zt,Aee,jee,Bt,Mee,Nee,Pee,Vt,Fee,Ht,k,Ut,Wt,Gt=s((()=>{ct={},lt=[],ut=()=>{},dt=()=>!1,ft=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),pt=e=>e.startsWith(`onUpdate:`),mt=Object.assign,ht=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},Eee=Object.prototype.hasOwnProperty,gt=(e,t)=>Eee.call(e,t),_t=Array.isArray,vt=e=>Dt(e)===`[object Map]`,yt=e=>Dt(e)===`[object Set]`,bt=e=>Dt(e)===`[object Date]`,xt=e=>typeof e==`function`,St=e=>typeof e==`string`,Ct=e=>typeof e==`symbol`,wt=e=>typeof e==`object`&&!!e,Tt=e=>(wt(e)||xt(e))&&xt(e.then)&&xt(e.catch),Et=Object.prototype.toString,Dt=e=>Et.call(e),Dee=e=>Dt(e).slice(8,-1),Ot=e=>Dt(e)===`[object Object]`,kt=e=>St(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,At=rt(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),jt=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Oee=/-\w/g,Mt=jt(e=>e.replace(Oee,e=>e.slice(1).toUpperCase())),kee=/\B([A-Z])/g,Nt=jt(e=>e.replace(kee,`-$1`).toLowerCase()),Pt=jt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ft=jt(e=>e?`on${Pt(e)}`:``),It=(e,t)=>!Object.is(e,t),Lt=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},zt=e=>{let t=parseFloat(e);return isNaN(t)?e:t},Aee=e=>{let t=St(e)?Number(e):NaN;return isNaN(t)?e:t},Bt=()=>jee||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{},Mee=/;(?![^(]*\))/g,Nee=/:([^]+)/,Pee=/\/\*[^]*?\*\//g,Vt=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,Fee=rt(Vt),rt(Vt+`,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`),Ht=e=>!!(e&&e.__v_isRef===!0),k=e=>St(e)?e:e==null?``:_t(e)||wt(e)&&(e.toString===Et||!xt(e.toString))?Ht(e)?k(e.value):JSON.stringify(e,Ut,2):String(e),Ut=(e,t)=>Ht(t)?Ut(e,t.value):vt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Wt(t,r)+` =>`]=n,e),{})}:yt(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Wt(e))}:Ct(t)?Wt(t):wt(t)&&!_t(t)&&!Ot(t)?String(t):t,Wt=(e,t=``)=>Ct(e)?`Symbol(${e.description??t})`:e}));function Kt(){return En}function qt(e,t=!1){En&&En.cleanups.push(e)}function Iee(e,t=!1){if(e.flags|=8,t){e.next=Mn,Mn=e;return}e.next=jn,jn=e}function Jt(){An++}function Yt(){if(--An>0)return;if(Mn){let e=Mn;for(Mn=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;jn;){let t=jn;for(jn=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Lee(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ree(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Zt(r),Bee(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Xt(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(zee(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function zee(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Fn)||(e.globalVersion=Fn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Xt(e))))return;e.flags|=2;let t=e.dep,n=Dn,r=Nn;Dn=e,Nn=!0;try{Lee(e);let n=e.fn(e._value);(t.version===0||It(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{Dn=n,Nn=r,Ree(e),e.flags&=-3}}function Zt(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Zt(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Bee(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function Qt(){Pn.push(Nn),Nn=!1}function $t(){let e=Pn.pop();Nn=e===void 0?!0:e}function Vee(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=Dn;Dn=void 0;try{t()}finally{Dn=e}}}function Hee(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Hee(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}function en(e,t,n){if(Nn&&Dn){let t=Ln.get(e);t||Ln.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new In),r.map=t,r.key=n),r.track()}}function tn(e,t,n,r,i,a){let o=Ln.get(e);if(!o){Fn++;return}let s=e=>{e&&e.trigger()};if(Jt(),t===`clear`)o.forEach(s);else{let i=_t(e),a=i&&kt(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===Bn||!Ct(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(Bn)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Rn)),vt(e)&&s(o.get(zn)));break;case`delete`:i||(s(o.get(Rn)),vt(e)&&s(o.get(zn)));break;case`set`:vt(e)&&s(o.get(Rn));break}}Yt()}function Uee(e,t){let n=Ln.get(e);return n&&n.get(t)}function nn(e){let t=bn(e);return t===e?t:(en(t,`iterate`,Bn),vn(e)?t:t.map(Zn))}function rn(e){return en(e=bn(e),`iterate`,Bn),e}function an(e,t){return _n(e)?gn(e)?Qn(Zn(t)):Qn(t):Zn(t)}function on(e,t,n){let r=rn(e),i=r[t]();return r!==e&&!vn(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}function sn(e,t,n,r,i,a){let o=rn(e),s=o!==e&&!vn(e),c=o[t];if(c!==ute[t]){let t=c.apply(e,a);return s?Zn(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,an(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Wee(e,t,n,r){let i=rn(e),a=i!==e&&!vn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=an(e,t)),n.call(this,t,an(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?an(e,c):c}function cn(e,t,n){let r=bn(e);en(r,`iterate`,Bn);let i=r[t](...n);return(i===-1||i===!1)&&yn(n[0])?(n[0]=bn(n[0]),r[t](...n)):i}function ln(e,t,n=[]){Qt(),Jt();let r=bn(e)[t].apply(e,n);return Yt(),$t(),r}function Gee(e){Ct(e)||(e=String(e));let t=bn(this);return en(t,`has`,e),t.hasOwnProperty(e)}function Kee(e,t,n){return function(...r){let i=this.__v_raw,a=bn(i),o=vt(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Gn:t?Qn:Zn;return!t&&en(a,`iterate`,c?zn:Rn),mt(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function un(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function qee(e,t){let n={get(n){let r=this.__v_raw,i=bn(r),a=bn(n);e||(It(n,a)&&en(i,`get`,n),en(i,`get`,a));let{has:o}=Kn(i),s=t?Gn:e?Qn:Zn;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&en(bn(t),`iterate`,Rn),t.size},has(t){let n=this.__v_raw,r=bn(n),i=bn(t);return e||(It(t,i)&&en(r,`has`,t),en(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=bn(a),s=t?Gn:e?Qn:Zn;return!e&&en(o,`iterate`,Rn),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return mt(n,e?{add:un(`add`),set:un(`set`),delete:un(`delete`),clear:un(`clear`)}:{add(e){let n=bn(this),r=Kn(n),i=bn(e),a=!t&&!vn(e)&&!_n(e)?i:e;return r.has.call(n,a)||It(e,a)&&r.has.call(n,e)||It(i,a)&&r.has.call(n,i)||(n.add(a),tn(n,`add`,a,a)),this},set(e,n){!t&&!vn(n)&&!_n(n)&&(n=bn(n));let r=bn(this),{has:i,get:a}=Kn(r),o=i.call(r,e);o||=(e=bn(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?It(n,s)&&tn(r,`set`,e,n,s):tn(r,`add`,e,n),this},delete(e){let t=bn(this),{has:n,get:r}=Kn(t),i=n.call(t,e);i||=(e=bn(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&tn(t,`delete`,e,void 0,a),o},clear(){let e=bn(this),t=e.size!==0,n=e.clear();return t&&tn(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Kee(r,e,t)}),n}function dn(e,t){let n=qee(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(gt(n,r)&&r in t?n:t,r,i)}function Jee(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Yee(e){return e.__v_skip||!Object.isExtensible(e)?0:Jee(Dee(e))}function fn(e){return _n(e)?e:hn(e,!1,fte,gte,qn)}function Xee(e){return hn(e,!1,mte,_te,Jn)}function pn(e){return hn(e,!0,pte,vte,Yn)}function mn(e){return hn(e,!0,hte,yte,Xn)}function hn(e,t,n,r,i){if(!wt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let a=Yee(e);if(a===0)return e;let o=i.get(e);if(o)return o;let s=new Proxy(e,a===2?r:n);return i.set(e,s),s}function gn(e){return _n(e)?gn(e.__v_raw):!!(e&&e.__v_isReactive)}function _n(e){return!!(e&&e.__v_isReadonly)}function vn(e){return!!(e&&e.__v_isShallow)}function yn(e){return e?!!e.__v_raw:!1}function bn(e){let t=e&&e.__v_raw;return t?bn(t):e}function Zee(e){return!gt(e,`__v_skip`)&&Object.isExtensible(e)&&Rt(e,`__v_skip`,!0),e}function xn(e){return e?e.__v_isRef===!0:!1}function A(e){return Qee(e,!1)}function Sn(e){return Qee(e,!0)}function Qee(e,t){return xn(e)?e:new bte(e,t)}function $ee(e){e.dep&&e.dep.trigger()}function j(e){return xn(e)?e.value:e}function Cn(e){return xt(e)?e():j(e)}function ete(e){return gn(e)?e:new Proxy(e,xte)}function tte(e){return new Ste(e)}function nte(e){let t=_t(e)?Array(e.length):{};for(let n in e)t[n]=rte(e,n);return t}function wn(e,t,n){return xn(e)?e:xt(e)?new wte(e):wt(e)&&arguments.length>1?rte(e,t,n):A(e)}function rte(e,t,n){return new Cte(e,t,n)}function ite(e,t,n=!1){let r,i;return xt(e)?r=e:(r=e.get,i=e.set),new Tte(r,i,n)}function ate(e,t=!1,n=tr){if(n){let t=er.get(n);t||er.set(n,t=[]),t.push(e)}}function ote(e,t,n=ct){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>i?e:vn(e)||i===!1||i===0?Tn(e,1):Tn(e),u,d,f,p,m=!1,h=!1;if(xn(e)?(d=()=>e.value,m=vn(e)):gn(e)?(d=()=>l(e),m=!0):_t(e)?(h=!0,m=e.some(e=>gn(e)||vn(e)),d=()=>e.map(e=>{if(xn(e))return e.value;if(gn(e))return l(e);if(xt(e))return c?c(e,2):e()})):d=xt(e)?t?c?()=>c(e,2):e:()=>{if(f){Qt();try{f()}finally{$t()}}let t=tr;tr=u;try{return c?c(e,3,[p]):e(p)}finally{tr=t}}:ut,t&&i){let e=d,t=i===!0?1/0:i;d=()=>Tn(e(),t)}let g=Kt(),_=()=>{u.stop(),g&&g.active&&ht(g.effects,u)};if(a&&t){let e=t;t=(...t)=>{e(...t),_()}}let v=h?Array(e.length).fill($n):$n,y=e=>{if(!(!(u.flags&1)||!u.dirty&&!e))if(t){let e=u.run();if(i||m||(h?e.some((e,t)=>It(e,v[t])):It(e,v))){f&&f();let n=tr;tr=u;try{let n=[e,v===$n?void 0:h&&v[0]===$n?[]:v,p];v=e,c?c(t,3,n):t(...n)}finally{tr=n}}}else u.run()};return s&&s(y),u=new kn(d),u.scheduler=o?()=>o(y,!1):y,p=e=>ate(e,!1,u),f=u.onStop=()=>{let e=er.get(u);if(e){if(c)c(e,4);else for(let t of e)t();er.delete(u)}},t?r?y(!0):v=u.run():o?o(y.bind(null,!0),!0):u.run(),_.pause=u.pause.bind(u),_.resume=u.resume.bind(u),_.stop=_,_}function Tn(e,t=1/0,n){if(t<=0||!wt(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,xn(e))Tn(e.value,t,n);else if(_t(e))for(let r=0;r{Tn(e,t,n)});else if(Ot(e)){for(let r in e)Tn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Tn(e[r],t,n)}return e}var En,ste,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,cte,In,Ln,Rn,zn,Bn,lte,ute,dte,Vn,Hn,Un,Wn,fte,pte,mte,hte,Gn,Kn,gte,_te,vte,yte,qn,Jn,Yn,Xn,Zn,Qn,bte,xte,Ste,Cte,wte,Tte,$n,er,tr,Ete=s((()=>{Gt(),ste=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=En,!e&&En&&(this.index=(En.scopes||=[]).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0&&--this._on===0&&(En=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;tan(this,e))},concat(...e){return nn(this).concat(...e.map(e=>_t(e)?nn(e):e))},entries(){return on(this,`entries`,e=>(e[1]=an(this,e[1]),e))},every(e,t){return sn(this,`every`,e,t,void 0,arguments)},filter(e,t){return sn(this,`filter`,e,t,e=>e.map(e=>an(this,e)),arguments)},find(e,t){return sn(this,`find`,e,t,e=>an(this,e),arguments)},findIndex(e,t){return sn(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return sn(this,`findLast`,e,t,e=>an(this,e),arguments)},findLastIndex(e,t){return sn(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return sn(this,`forEach`,e,t,void 0,arguments)},includes(...e){return cn(this,`includes`,e)},indexOf(...e){return cn(this,`indexOf`,e)},join(e){return nn(this).join(e)},lastIndexOf(...e){return cn(this,`lastIndexOf`,e)},map(e,t){return sn(this,`map`,e,t,void 0,arguments)},pop(){return ln(this,`pop`)},push(...e){return ln(this,`push`,e)},reduce(e,...t){return Wee(this,`reduce`,e,t)},reduceRight(e,...t){return Wee(this,`reduceRight`,e,t)},shift(){return ln(this,`shift`)},some(e,t){return sn(this,`some`,e,t,void 0,arguments)},splice(...e){return ln(this,`splice`,e)},toReversed(){return nn(this).toReversed()},toSorted(e){return nn(this).toSorted(e)},toSpliced(...e){return nn(this).toSpliced(...e)},unshift(...e){return ln(this,`unshift`,e)},values(){return on(this,`values`,e=>an(this,e))}},ute=Array.prototype,dte=rt(`__proto__,__v_isRef,__isVue`),Vn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(Ct)),Hn=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Xn:Yn:i?Jn:qn).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=_t(e);if(!r){let e;if(a&&(e=lte[t]))return e;if(t===`hasOwnProperty`)return Gee}let o=Reflect.get(e,t,xn(e)?e:n);if((Ct(t)?Vn.has(t):dte(t))||(r||en(e,`get`,t),i))return o;if(xn(o)){let e=a&&kt(t)?o:o.value;return r&&wt(e)?pn(e):e}return wt(o)?r?pn(o):fn(o):o}},Un=class extends Hn{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=_t(e)&&kt(t);if(!this._isShallow){let e=_n(i);if(!vn(n)&&!_n(n)&&(i=bn(i),n=bn(n)),!a&&xn(i)&&!xn(n))return e||(i.value=n),!0}let o=a?Number(t)e,Kn=e=>Reflect.getPrototypeOf(e),gte={get:dn(!1,!1)},_te={get:dn(!1,!0)},vte={get:dn(!0,!1)},yte={get:dn(!0,!0)},qn=new WeakMap,Jn=new WeakMap,Yn=new WeakMap,Xn=new WeakMap,Zn=e=>wt(e)?fn(e):e,Qn=e=>wt(e)?pn(e):e,bte=class{constructor(e,t){this.dep=new In,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:bn(e),this._value=t?e:Zn(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||vn(e)||_n(e);e=n?e:bn(e),It(e,t)&&(this._rawValue=e,this._value=n?e:Zn(e),this.dep.trigger())}},xte={get:(e,t,n)=>t===`__v_raw`?e:j(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return xn(i)&&!xn(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}},Ste=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new In,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}},Cte=class{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=bn(e);let r=!0,i=e;if(!_t(e)||!kt(String(t)))do r=!yn(i)||vn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=j(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&xn(this._raw[this._key])){let t=this._object[this._key];if(xn(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return Uee(this._raw,this._key)}},wte=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}},Tte=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new In(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Fn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Dn!==this)return Iee(this,!0),!0}get value(){let e=this.dep.track();return zee(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}},$n={},er=new WeakMap,tr=void 0}));function nr(e,t,n,r){try{return r?e(...r):e()}catch(e){ir(e,t,n)}}function rr(e,t,n,r){if(xt(e)){let i=nr(e,t,n,r);return i&&Tt(i)&&i.catch(e=>{ir(e,t,n)}),i}if(_t(e)){let i=[];for(let a=0;a>>1,i=li[r],a=gi(i);a=gi(n)?li.push(e):li.splice(Ote(t),0,e),e.flags|=1,kte()}}function kte(){hi||=mi.then(Mte)}function Ate(e){_t(e)?di.push(...e):fi&&e.id===-1?fi.splice(pi+1,0,e):e.flags&1||(di.push(e),e.flags|=1),kte()}function jte(e,t,n=ui+1){for(;ngi(e)-gi(t));if(di.length=0,fi){fi.push(...e);return}for(fi=e,pi=0;pi{r._d&&Xr(-1);let i=cr(t),a;try{a=e(...n)}finally{cr(i),r._d&&Xr(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function lr(e,t){if(_i===null)return e;let n=si(_i),r=e.dirs||=[];for(let e=0;e1)return n&&xt(t)?t.call(r&&r.proxy):t}}function Nte(){return!!(ba()||$i)}function pr(e,t){return hr(e,null,t)}function Pte(e,t){return hr(e,null,{flush:`sync`})}function mr(e,t,n){return hr(e,t,n)}function hr(e,t,n=ct){let{immediate:r,deep:i,flush:a,once:o}=n,s=mt({},n),c=t&&r||!t&&a!==`post`,l;if(Ta){if(a===`sync`){let e=qne();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=ut,e.resume=ut,e.pause=ut,e}}let u=ya;s.call=(e,t,n)=>rr(e,u,t,n);let d=!1;a===`post`?s.scheduler=e=>{la(e,u&&u.suspense)}:a!==`sync`&&(d=!0,s.scheduler=(e,t)=>{t?e():or(e)}),s.augmentJob=e=>{t&&(e.flags|=4),d&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let f=ote(e,t,s);return Ta&&(l?l.push(f):c&&f()),f}function Fte(e,t,n){let r=this.proxy,i=St(e)?e.includes(`.`)?Ite(r,e):()=>r[e]:e.bind(r,r),a;xt(t)?a=t:(a=t.handler,n=t);let o=Ca(this),s=hr(i,a.bind(r),n);return o(),s}function Ite(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e{e.isMounted=!0}),Wi(()=>{e.isUnmounting=!0}),e}function zte(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==fa){t=n;break}}return t}function Bte(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function yr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),x=Bte(n,e),S=(e,t)=>{e&&rr(e,r,9,t)},C=(e,t)=>{let n=t[1];S(e,t),_t(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},w={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=g||c;else return;t[Oi]&&t[Oi](!0);let i=x[b];i&&Qr(e,i)&&i.el[Oi]&&i.el[Oi](),S(r,[t])},enter(t){if(x[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted)if(a)r=_||l,i=v||u,o=y||d;else return;let s=!1;t[ki]=e=>{s||(s=!0,S(e?o:i,[t]),w.delayedLeave&&w.delayedLeave(),t[ki]=void 0)};let c=t[ki].bind(null,!1);r?C(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[ki]&&t[ki](!0),n.isUnmounting)return r();S(f,[t]);let a=!1;t[Oi]=n=>{a||(a=!0,r(),S(n?h:m,[t]),t[Oi]=void 0,x[i]===e&&delete x[i])};let o=t[Oi].bind(null,!1);x[i]=e,p?C(p,[t,o]):o()},clone(e){let a=yr(e,t,n,r,i);return i&&i(a),a}};return w}function br(e){if(zi(e))return e=ei(e),e.children=null,e}function Vte(e){if(!zi(e))return bi(e.type)&&e.children?zte(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&xt(n.default))return n.default()}}function xr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Hte(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;en.value,set:e=>n.value=e})}return n}function Ute(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}function Tr(e,t,n,r,i=!1){if(_t(e)){e.forEach((e,a)=>Tr(e,t&&(_t(t)?t[a]:t),n,r,i));return}if(Ri(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Tr(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?si(r.component):r.el,o=i?null:a,{i:s,r:c}=e,l=t&&t.r,u=s.refs===ct?s.refs={}:s.refs,d=s.setupState,f=bn(d),p=d===ct?dt:e=>Ute(u,e)?!1:gt(f,e),m=(e,t)=>!(t&&Ute(u,t));if(l!=null&&l!==c){if(Wte(t),St(l))u[l]=null,p(l)&&(d[l]=null);else if(xn(l)){let e=t;m(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(xt(c))nr(c,s,12,[o,u]);else{let t=St(c),r=xn(c);if(t||r){let s=()=>{if(e.f){let n=t?p(c)?d[c]:u[c]:m(c)||!e.k?c.value:u[e.k];if(i)_t(n)&&ht(n,a);else if(_t(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],p(c)&&(d[c]=u[c]);else{let t=[a];m(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,p(c)&&(d[c]=o)):r&&(m(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){let t=()=>{s(),Ni.delete(e)};t.id=-1,Ni.set(e,t),la(t,n)}else Wte(e),s()}}}function Wte(e){let t=Ni.get(e);t&&(t.flags|=8,Ni.delete(e))}function Gte(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:a,parentNode:o,remove:s,insert:c,createComment:l}}=e,u=(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),sr(),t._vnode=e;return}d(t.firstChild,e,null,null,null),sr(),t._vnode=e},d=(n,r,s,l,u,y=!1)=>{y||=!!r.dynamicChildren;let b=Ii(n)&&n.data===`[`,x=()=>h(n,r,s,l,u,b),{type:S,ref:C,shapeFlag:w,patchFlag:ee}=r,te=n.nodeType;r.el=n,ee===-2&&(y=!1,r.dynamicChildren=null);let ne=null;switch(S){case da:te===3?(n.data!==r.children&&(Pi(),n.data=r.children),ne=a(n)):r.children===``?(c(r.el=i(``),o(n),n),ne=n):ne=x();break;case fa:v(n)?(ne=a(n),_(r.el=n.content.firstChild,n,s)):ne=te!==8||b?x():a(n);break;case pa:if(b&&(n=a(n),te=n.nodeType),te===1||te===3){ne=n;let e=!r.children.length;for(let t=0;t{o||=!!t.dynamicChildren;let{type:c,props:l,patchFlag:u,shapeFlag:d,dirs:f,transition:m}=t,h=c===`input`||c===`option`;if(h||u!==-1){f&&ur(t,null,n,`created`);let c=!1;if(v(e)){c=One(null,m)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(c){let e=r.getAttribute(`class`);e&&(r.$cls=e),m.beforeEnter(r)}_(r,e,n),t.el=e=r}if(d&16&&!(l&&(l.innerHTML||l.textContent))){let r=p(e.firstChild,t,e,n,i,a,o);for(;r;){Er(e,1)||Pi();let t=r;r=r.nextSibling,s(t)}}else if(d&8){let n=t.children;n[0]===` +`&&(e.tagName===`PRE`||e.tagName===`TEXTAREA`)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(Er(e,0)||Pi(),e.textContent=t.children)}if(l){if(h||!o||u&48){let t=e.tagName.includes(`-`);for(let i in l)(h&&(i.endsWith(`value`)||i===`indeterminate`)||ft(i)&&!At(i)||i[0]===`.`||t&&!At(i))&&r(e,i,null,l[i],void 0,n)}else if(l.onClick)r(e,`onClick`,null,l.onClick,void 0,n);else if(u&4&&gn(l.style))for(let e in l.style)l.style[e]}let g;(g=l&&l.onVnodeBeforeMount)&&oi(g,n,t),f&&ur(t,null,n,`beforeMount`),((g=l&&l.onVnodeMounted)||f||c)&&Nne(()=>{g&&oi(g,n,t),c&&m.enter(e),f&&ur(t,null,n,`mounted`)},i)}return e.nextSibling},p=(e,t,r,o,s,l,u)=>{u||=!!t.dynamicChildren;let f=t.children,p=f.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=o(e),f=p(a(e),t,d,n,r,i,s);return f&&Ii(f)&&f.data===`]`?a(t.anchor=f):(Pi(),c(t.anchor=l(`]`),d,f),f)},h=(e,t,r,i,c,l)=>{if(Er(e.parentElement,1)||Pi(),t.el=null,l){let t=g(e);for(;;){let n=a(e);if(n&&n!==t)s(n);else break}}let u=a(e),d=o(e);return s(e),n(null,t,d,u,r,i,Fi(d),c),r&&(r.vnode.el=t.el,yne(r,t.el)),u},g=(e,t=`[`,n=`]`)=>{let r=0;for(;e;)if(e=a(e),e&&Ii(e)&&(e.data===t&&r++,e.data===n)){if(r===0)return a(e);r--}return e},_=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},v=e=>e.nodeType===1&&e.tagName===`TEMPLATE`;return[u,d]}function Er(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Li);)e=e.parentElement;let n=e&&e.getAttribute(Li);if(n==null)return!1;if(n===``)return!0;{let e=n.split(`,`);return t===0&&e.includes(`children`)?!0:e.includes($ne[t])}}function Kte(e,t){if(Ii(e)&&e.data===`[`){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Ii(r))if(r.data===`]`){if(--n===0)break}else r.data===`[`&&n++;r=r.nextSibling}}else t(e)}function qte(e){xt(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,hydrate:a,timeout:o,suspensible:s=!0,onError:c}=e,l=null,u,d=0,f=()=>(d++,l=null,p()),p=()=>{let e;return l||(e=l=t().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t(f()),()=>n(e),d+1)});throw e}).then(t=>e!==l&&l?l:(t&&(t.__esModule||t[Symbol.toStringTag]===`Module`)&&(t=t.default),u=t,t)))};return N({name:`AsyncComponentWrapper`,__asyncLoader:p,__asyncHydrate(e,t,n){let r=!1;(t.bu||=[]).push(()=>r=!0);let i=()=>{r||n()},o=a?()=>{let n=a(i,t=>Kte(e,t));n&&(t.bum||=[]).push(n)}:i;u?o():p().then(()=>!t.isUnmounted&&o())},get __asyncResolved(){return u},setup(){let e=ya;if(Cr(e),u)return()=>Dr(u,e);let t=t=>{l=null,ir(t,e,13,!r)};if(s&&e.suspense||Ta)return p().then(t=>()=>Dr(t,e)).catch(e=>(t(e),()=>r?H(r,{error:e}):null));let a=A(!1),c=A(),d=A(!!i);return i&&setTimeout(()=>{d.value=!1},i),o!=null&&setTimeout(()=>{if(!a.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);t(e),c.value=e}},o),p().then(()=>{a.value=!0,e.parent&&zi(e.parent.vnode)&&e.parent.update()}).catch(e=>{t(e),c.value=e}),()=>{if(a.value&&u)return Dr(u,e);if(c.value&&r)return H(r,{error:c.value});if(n&&!d.value)return Dr(n,e)}}})}function Dr(e,t){let{ref:n,props:r,children:i,ce:a}=t.vnode,o=H(e,r,i);return o.ref=n,o.ce=a,delete t.vnode.ce,o}function Jte(e,t){Xte(e,`a`,t)}function Yte(e,t){Xte(e,`da`,t)}function Xte(e,t,n=ya){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Or(t,r,n),n){let e=n.parent;for(;e&&e.parent;)zi(e.parent.vnode)&&Zte(r,t,n,e),e=e.parent}}function Zte(e,t,n,r){let i=Or(t,e,r,!0);Gi(()=>{ht(r[t],i)},n)}function Or(e,t,n=ya,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Qt();let i=Ca(n),a=rr(t,n,e,r);return i(),$t(),a};return r?i.unshift(a):i.push(a),a}}function Qte(e,t=ya){Or(`ec`,e,t)}function $te(e,t){return ene(qi,e,!0,t)||e}function kr(e){return St(e)?ene(qi,e,!1)||e:e||Ji}function ene(e,t,n=!0,r=!1){let i=_i||ya;if(i){let n=i.type;if(e===qi){let e=Wne(n,!1);if(e&&(e===t||e===Mt(t)||e===Pt(Mt(t))))return n}let a=tne(i[e]||n[e],t)||tne(i.appContext[e],t);return!a&&r?n:a}}function tne(e,t){return e&&(e[t]||e[Mt(t)]||e[Pt(Mt(t))])}function Ar(e,t,n,r){let i,a=n&&n[r],o=_t(e);if(o||St(e)){let n=o&&gn(e),r=!1,s=!1;n&&(r=!vn(e),s=_n(e),e=rn(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function P(e,t,n={},r,i){if(_i.ce||_i.parent&&Ri(_i.parent)&&_i.parent.ce){let e=Object.keys(n).length>0;return t!==`default`&&(n.name=t),F(),L(V,null,[H(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),F();let o=a&&Mr(a(n)),s=n.key||o&&o.key,c=L(V,{key:(s&&!Ct(s)?s:`_${t}`)+(!o&&r?`_fb`:``)},o||(r?r():[]),o&&e._===1?64:-2);return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),a&&a._c&&(a._d=!0),c}function Mr(e){return e.some(e=>Zr(e)?!(e.type===fa||e.type===V&&!Mr(e.children)):!0)?e:null}function Nr(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:Ft(r)]=e[r];return n}function Pr(){return nne(`useSlots`).slots}function Fr(){return nne(`useAttrs`).attrs}function nne(e){let t=ba();return t.setupContext||=Une(t)}function Ir(e){return _t(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function Lr(e,t){return!e||!t?e||t:_t(e)&&_t(t)?e.concat(t):mt({},Ir(e),Ir(t))}function rne(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function ine(e){let t=Rr(e),n=e.proxy,r=e.ctx;Qi=!1,t.beforeCreate&&one(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:m,activated:h,deactivated:g,beforeDestroy:_,beforeUnmount:v,destroyed:y,unmounted:b,render:x,renderTracked:S,renderTriggered:C,errorCaptured:w,serverPrefetch:ee,expose:te,inheritAttrs:ne,components:re,directives:T,filters:ie}=t;if(l&&ane(l,r,null),o)for(let e in o){let t=o[e];xt(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);wt(t)&&(e.data=fn(t))}if(Qi=!0,a)for(let e in a){let t=a[e],i=U({get:xt(t)?t.bind(n,n):xt(t.get)?t.get.bind(n,n):ut,set:!xt(t)&&xt(t.set)?t.set.bind(n):ut});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(s)for(let e in s)sne(s[e],r,n,e);if(c){let e=xt(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{dr(t,e[t])})}u&&one(u,e,`c`);function ae(e,t){_t(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(ae(Vi,d),ae(Hi,f),ae(Ui,p),ae(ere,m),ae(Jte,h),ae(Yte,g),ae(Qte,w),ae(nre,S),ae(tre,C),ae(Wi,v),ae(Gi,b),ae(Ki,ee),_t(te))if(te.length){let t=e.exposed||={};te.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};x&&e.render===ut&&(e.render=x),ne!=null&&(e.inheritAttrs=ne),re&&(e.components=re),T&&(e.directives=T),ee&&Cr(e)}function ane(e,t,n=ut){_t(e)&&(e=Br(e));for(let n in e){let r=e[n],i;i=wt(r)?`default`in r?fr(r.from||n,r.default,!0):fr(r.from||n):fr(r),xn(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function one(e,t,n){rr(_t(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function sne(e,t,n,r){let i=r.includes(`.`)?Ite(n,r):()=>n[r];if(St(e)){let n=t[e];xt(n)&&mr(i,n)}else if(xt(e))mr(i,e.bind(n));else if(wt(e))if(_t(e))e.forEach(e=>sne(e,t,n,r));else{let r=xt(e.handler)?e.handler.bind(n):t[e.handler];xt(r)&&mr(i,r,e)}}function Rr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>zr(c,e,o,!0)),zr(c,t,o)),wt(t)&&a.set(t,c),c}function zr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&zr(e,a,n,!0),i&&i.forEach(t=>zr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=ire[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}function cne(e,t){return t?e?function(){return mt(xt(e)?e.call(this,this):e,xt(t)?t.call(this,this):t)}:t:e}function lne(e,t){return Hr(Br(e),Br(t))}function Br(e){if(_t(e)){let t={};for(let n=0;n{let c,l=ct,u;return Pte(()=>{let t=e[i];It(c,t)&&(c=t,s())}),{get(){return o(),n.get?n.get(c):c},set(e){let o=n.set?n.set(e):e;if(!It(o,c)&&!(l!==ct&&It(e,l)))return;let d=r.vnode.props;d&&(t in d||i in d||a in d)&&(`onUpdate:${t}`in d||`onUpdate:${i}`in d||`onUpdate:${a}`in d)||(c=e,s()),r.emit(`update:${t}`,o),It(e,o)&&It(e,l)&&!It(o,u)&&s(),l=e,u=o}}});return s[Symbol.iterator]=()=>{let e=0;return{next(){return e<2?{value:e++?o||ct:s,done:!1}:{done:!0}}}},s}function mne(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||ct,i=n,a=t.startsWith(`update:`),o=a&&ea(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>St(e)?e.trim():e)),o.number&&(i=n.map(zt)));let s,c=r[s=Ft(t)]||r[s=Ft(Mt(t))];!c&&a&&(c=r[s=Ft(Nt(t))]),c&&rr(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,rr(l,e,6,i)}}function hne(e,t,n=!1){let r=n?ore:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!xt(e)){let r=e=>{let n=hne(e,t,!0);n&&(s=!0,mt(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(wt(e)&&r.set(e,null),null):(_t(a)?a.forEach(e=>o[e]=null):mt(o,a),wt(e)&&r.set(e,o),o)}function Wr(e,t){return!e||!ft(t)?!1:(t=t.slice(2).replace(/Once$/,``),gt(e,t[0].toLowerCase()+t.slice(1))||gt(e,Nt(t))||gt(e,t))}function Gr(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,g=cr(e),_,v;try{if(n.shapeFlag&4){let e=i||r,t=e;_=ni(l.call(t,e,u,d,p,f,m)),v=s}else{let e=t;_=ni(e.length>1?e(d,{attrs:s,slots:o,emit:c}):e(d,null)),v=t.props?s:sre(s)}}catch(t){ma.length=0,ir(t,e,1),_=H(fa)}let y=_;if(v&&h!==!1){let e=Object.keys(v),{shapeFlag:t}=y;e.length&&t&7&&(a&&e.some(pt)&&(v=cre(v,a)),y=ei(y,v,!1,!0))}return n.dirs&&(y=ei(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&xr(y,n.transition),_=y,cr(g),_}function gne(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?_ne(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{c=!0;let[n,r]=Cne(e,t,!0);mt(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return wt(e)&&r.set(e,lt),lt;if(_t(a))for(let e=0;e{if(e===t)return;e&&!Qr(e,t)&&(r=he(e),ue(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case da:g(e,t,n,r);break;case fa:_(e,t,n,r);break;case pa:e??v(t,n,r,o);break;case V:re(e,t,n,r,i,a,o,s,c);break;default:d&1?x(e,t,n,r,i,a,o,s,c):d&6?T(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ve)}u!=null&&i?Tr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Tr(e.ref,null,a,e,!0)},g=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},_=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},v=(e,t,n,r)=>{[e.el,e.anchor]=m(e.children,t,n,r,e.el,e.anchor)},y=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=f(e),r(e,n,i),e=a;r(t,n,i)},b=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=f(e),i(e),e=n;i(t)},x=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)S(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ee(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},S=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&w(e.children,f,null,i,s,qr(e,c),l,d),_&&ur(e,null,i,`created`),C(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!At(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&oi(p,i,e)}_&&ur(e,null,i,`beforeMount`);let v=One(s,g);v&&g.beforeEnter(f),r(f,t,n),((p=m&&m.onVnodeMounted)||v||_)&&la(()=>{p&&oi(p,i,e),v&&g.enter(f),_&&ur(e,null,i,`mounted`)},s)},C=(e,t,n,r,i)=>{if(n&&p(e,n),r)for(let t=0;t{for(let l=c;l{let c=t.el=e.el,{patchFlag:l,dynamicChildren:d,dirs:f}=t;l|=e.patchFlag&16;let p=e.props||ct,m=t.props||ct,h;if(n&&Jr(n,!1),(h=m.onVnodeBeforeUpdate)&&oi(h,n,t,e),f&&ur(t,e,n,`beforeUpdate`),n&&Jr(n,!0),(p.innerHTML&&m.innerHTML==null||p.textContent&&m.textContent==null)&&u(c,``),d?te(e.dynamicChildren,d,c,n,r,qr(t,i),o):s||oe(e,t,c,null,n,r,qr(t,i),o,!1),l>0){if(l&16)ne(c,p,m,n,i);else if(l&2&&p.class!==m.class&&a(c,`class`,null,m.class,i),l&4&&a(c,`style`,p.style,m.style,i),l&8){let e=t.dynamicProps;for(let t=0;t{h&&oi(h,n,t,e),f&&ur(t,e,n,`updated`)},r)},te=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==ct)for(let o in t)!At(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(At(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},re=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),w(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(te(e.dynamicChildren,m,n,a,o,c,l),(t.key!=null||a&&t===a.subTree)&&Yr(e,t,!0)):oe(e,t,n,f,a,o,c,l,u)},T=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ie(t,n,r,i,a,o,c):ae(e,t,c)},ie=(e,t,n,r,i,a,o)=>{let s=e.component=Lne(e,r,i);if(zi(e)&&(s.ctx.renderer=ve),zne(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,E,o),!e.el){let r=s.subTree=H(fa);_(null,r,t,n),e.placeholder=r.el}}else E(s,e,t,n,i,a,o)},ae=(e,t,n)=>{let r=t.component=e.component;if(gne(e,t,n))if(r.asyncDep&&!r.asyncResolved){D(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},E=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Ane(e);if(n){t&&(t.el=c.el,D(e,t,o)),n.asyncDep.then(()=>{la(()=>{e.isUnmounted||l()},i)});return}}let u=t,f;Jr(e,!1),t?(t.el=c.el,D(e,t,o)):t=c,n&&Lt(n),(f=t.props&&t.props.onVnodeBeforeUpdate)&&oi(f,s,t,c),Jr(e,!0);let p=Gr(e),m=e.subTree;e.subTree=p,h(m,p,d(m.el),he(m),e,i,a),t.el=p.el,u===null&&yne(e,p.el),r&&la(r,i),(f=t.props&&t.props.onVnodeUpdated)&&la(()=>oi(f,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Ri(t);if(Jr(e,!1),l&&Lt(l),!m&&(o=c&&c.onVnodeBeforeMount)&&oi(o,d,t),Jr(e,!0),s&&be){let t=()=>{e.subTree=Gr(e),be(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Gr(e);h(null,o,n,r,e,i,a),t.el=o.el}if(u&&la(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;la(()=>oi(o,d,e),i)}(t.shapeFlag&256||d&&Ri(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&la(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new kn(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>or(u),Jr(e,!0),l()},D=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,xne(e,t.props,r,n),fre(e,t.children,n),Qt(),jte(e),$t()},oe=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){ce(l,f,n,r,i,a,o,s,c);return}else if(p&256){se(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&me(l,i,a),f!==l&&u(n,f)):d&16?m&16?ce(l,f,n,r,i,a,o,s,c):me(l,i,a,!0):(d&8&&u(n,``),m&16&&w(f,n,r,i,a,o,s,c))},se=(e,t,n,r,i,a,o,s,c)=>{e||=lt,t||=lt;let l=e.length,u=t.length,d=Math.min(l,u),f;for(f=0;fu?me(e,i,a,!0,!1,d):w(t,n,r,i,a,o,s,c,d)},ce=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,f=u-1;for(;l<=d&&l<=f;){let r=e[l],u=t[l]=c?ri(t[l]):ni(t[l]);if(Qr(r,u))h(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=f;){let r=e[d],l=t[f]=c?ri(t[f]):ni(t[f]);if(Qr(r,l))h(r,l,n,null,i,a,o,s,c);else break;d--,f--}if(l>d){if(l<=f){let e=f+1,d=ef)for(;l<=d;)ue(e[l],i,a,!0),l++;else{let p=l,m=l,g=new Map;for(l=m;l<=f;l++){let e=t[l]=c?ri(t[l]):ni(t[l]);e.key!=null&&g.set(e.key,l)}let _,v=0,y=f-m+1,b=!1,x=0,S=Array(y);for(l=0;l=y){ue(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=m;_<=f;_++)if(S[_-m]===0&&Qr(r,t[_])){u=_;break}u===void 0?ue(r,i,a,!0):(S[u-m]=l+1,u>=x?x=u:b=!0,h(r,t[u],n,null,i,a,o,s,c),v++)}let C=b?kne(S):lt;for(_=C.length-1,l=y-1;l>=0;l--){let e=m+l,d=t[e],f=t[e+1],p=e+1{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){le(e.component.subTree,t,n,a);return}if(d&128){e.suspense.move(t,n,a);return}if(d&64){c.move(e,t,n,ve);return}if(c===V){r(s,t,n);for(let e=0;el.enter(s),o);else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{s._isLeaving&&s[Oi](!0),a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}else r(s,t,n)},ue=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p}=e;if(d===-2&&(i=!1),s!=null&&(Qt(),Tr(s,null,n,e,!0),$t()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let m=u&1&&f,h=!Ri(e),g;if(h&&(g=o&&o.onVnodeBeforeUnmount)&&oi(g,t,e),u&6)pe(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}m&&ur(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ve,r):l&&!l.hasOnce&&(a!==V||d>0&&d&64)?me(l,t,n,!1,!0):(a===V&&d&384||!i&&u&16)&&me(c,t,n),r&&de(e)}(h&&(g=o&&o.onVnodeUnmounted)||m)&&la(()=>{g&&oi(g,t,e),m&&ur(e,null,t,`unmounted`)},n)},de=e=>{let{type:t,el:n,anchor:r,transition:a}=e;if(t===V){fe(n,r);return}if(t===pa){b(e);return}let o=()=>{i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(e.shapeFlag&1&&a&&!a.persisted){let{leave:t,delayLeave:r}=a,i=()=>t(n,o);r?r(e.el,o,i):i()}else o()},fe=(e,t)=>{let n;for(;e!==t;)n=f(e),i(e),e=n;i(t)},pe=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;jne(c),jne(l),r&&Lt(r),i.stop(),a&&(a.flags|=8,ue(o,e,t,n)),s&&la(s,t),la(()=>{e.isUnmounted=!0},t)},me=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return he(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=f(e.anchor||e.el),n=t&&t[yi];return n?f(n):t},ge=!1,_e=(e,t,n)=>{let r;e==null?t._vnode&&(ue(t._vnode,null,null,!0),r=t._vnode.component):h(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ge||=(ge=!0,jte(r),sr(),!1)},ve={p:h,um:ue,m:le,r:de,mt:ie,mc:w,pc:oe,pbc:te,n:he,o:e},ye,be;return t&&([ye,be]=t(ve)),{render:_e,hydrate:ye,createApp:pne(_e,ye)}}function qr({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Jr({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function One(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yr(e,t,n=!1){let r=e.children,i=t.children;if(_t(r)&&_t(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function Ane(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ane(t)}function jne(e){if(e)for(let t=0;t0?ha||lt:null,Pne(),ga>0&&ha&&ha.push(e),e}function I(e,t,n,r,i,a){return Fne(R(e,t,n,r,i,a,!0))}function L(e,t,n,r,i){return Fne(H(e,t,n,r,i,!0))}function Zr(e){return e?e.__v_isVNode===!0:!1}function Qr(e,t){return e.type===t.type&&e.key===t.key}function R(e,t=null,n=null,r=0,i=null,a=e===V?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_a(t),ref:t&&va(t),scopeId:vi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:_i};return s?(ii(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=St(n)?8:16),ga>0&&!o&&ha&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&ha.push(c),c}function Ine(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Ji)&&(e=fa),Zr(e)){let r=ei(e,t,!0);return n&&ii(r,n),ga>0&&!a&&ha&&(r.shapeFlag&6?ha[ha.indexOf(e)]=r:ha.push(r)),r.patchFlag=-2,r}if(Gne(e)&&(e=e.__vccOpts),t){t=$r(t);let{class:e,style:n}=t;e&&!St(e)&&(t.class=O(e)),wt(n)&&(yn(n)&&!_t(n)&&(n=mt({},n)),t.style=it(n))}let o=St(e)?1:ua(e)?128:bi(e)?64:wt(e)?4:xt(e)?2:0;return R(e,t,n,r,i,o,a,!0)}function $r(e){return e?yn(e)||ra(e)?mt({},e):e:null}function ei(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?ai(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_a(l),ref:t&&t.ref?n&&a?_t(a)?a.concat(va(t)):[a,va(t)]:va(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==V?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ei(e.ssContent),ssFallback:e.ssFallback&&ei(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&xr(u,c.clone(u)),u}function z(e=` `,t=0){return H(da,null,e,t)}function ti(e,t){let n=H(pa,null,e);return n.staticCount=t,n}function B(e=``,t=!1){return t?(F(),L(fa,null,e)):H(fa,null,e)}function ni(e){return e==null||typeof e==`boolean`?H(fa):_t(e)?H(V,null,e.slice()):Zr(e)?ri(e):H(da,null,String(e))}function ri(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ei(e)}function ii(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(_t(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ii(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!ra(t)?t._ctx=_i:r===3&&_i&&(_i.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else xt(t)?(t={default:t,_ctx:_i},n=32):(t=String(t),r&64?(n=16,t=[z(t)]):n=8);e.children=t,e.shapeFlag|=n}function ai(...e){let t={};for(let n=0;n1?Une(e):null,i=Ca(e),a=nr(r,e,0,[e.props,n]),o=Tt(a);if($t(),i(),(o||e.sp)&&!Ri(e)&&Cr(e),o){if(a.then(wa,wa),t)return a.then(n=>{Vne(e,n,t)}).catch(t=>{ir(t,e,0)});e.asyncDep=a}else Vne(e,a,t)}else Hne(e,t)}function Vne(e,t,n){xt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:wt(t)&&(e.setupState=ete(t)),Hne(e,n)}function Hne(e,t,n){let r=e.type;if(!e.render){if(!t&&hre&&!r.render){let t=r.template||Rr(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r;r.render=hre(t,mt(mt({isCustomElement:n,delimiters:a},i),o))}}e.render=r.render||ut,gre&&gre(e)}{let t=Ca(e);Qt();try{ine(e)}finally{$t(),t()}}}function Une(e){return{attrs:new Proxy(e.attrs,_re),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function si(e){return e.exposed?e.exposeProxy||=new Proxy(ete(Zee(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xi)return Xi[n](e)},has(e,t){return t in e||t in Xi}}):e.proxy}function Wne(e,t=!0){return xt(e)?e.displayName||e.name:e.name||t&&e.__name}function Gne(e){return xt(e)&&`__vccOpts`in e}function ci(e,t,n){try{Xr(-1);let r=arguments.length;return r===2?wt(t)&&!_t(t)?Zr(t)?H(e,null,[t]):H(e,t):H(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Zr(n)&&(n=[n]),H(e,t,n))}finally{Xr(1)}}var li,ui,di,fi,pi,mi,hi,gi,_i,vi,Kne,qne,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Jne,Yne,Ni,Xne,Pi,Zne,Qne,Fi,Ii,Li,$ne,Ri,zi,Bi,Vi,Hi,Ui,ere,Wi,Gi,Ki,tre,nre,qi,Ji,Yi,Xi,Zi,rre,Qi,ire,are,$i,ea,ore,sre,cre,ta,na,ra,lre,ia,aa,ure,oa,sa,ca,dre,fre,la,ua,V,da,fa,pa,ma,ha,ga,_a,va,H,pre,mre,ya,ba,xa,Sa,Ca,wa,Ta,hre,gre,_re,U,vre,Ea=s((()=>{Ete(),Gt(),li=[],ui=-1,di=[],fi=null,pi=0,mi=Promise.resolve(),hi=null,gi=e=>e.id==null?e.flags&2?-1:1/0:e.id,_i=null,vi=null,Kne=Symbol.for(`v-scx`),qne=()=>fr(Kne),yi=Symbol(`_vte`),bi=e=>e.__isTeleport,xi=e=>e&&(e.disabled||e.disabled===``),Si=e=>e&&(e.defer||e.defer===``),Ci=e=>typeof SVGElement<`u`&&e instanceof SVGElement,wi=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,Ti=(e,t)=>{let n=e&&e.to;return St(n)?t?t(n):null:n},Ei={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g}}=l,_=xi(t.props),{shapeFlag:v,children:y,dynamicChildren:b}=t;if(e==null){let e=t.el=h(``),l=t.anchor=h(``);p(e,n,r),p(l,n,r);let d=(e,t)=>{v&16&&u(y,e,t,i,a,o,s,c)},f=()=>{let e=t.target=Ti(t.props,m),n=vr(e,t,h,p);e&&(o!==`svg`&&Ci(e)?o=`svg`:o!==`mathml`&&wi(e)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(e),_||(d(e,n),_r(t,!1)))};_&&(d(n,l),_r(t,!0)),Si(t.props)?(t.el.__isMounted=!1,la(()=>{f(),delete t.el.__isMounted},a)):f()}else{if(Si(t.props)&&e.el.__isMounted===!1){la(()=>{Ei.process(e,t,n,r,i,a,o,s,c,l)},a);return}t.el=e.el,t.targetStart=e.targetStart;let u=t.anchor=e.anchor,p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=xi(e.props),v=g?n:p,y=g?u:h;if(o===`svg`||Ci(p)?o=`svg`:(o===`mathml`||wi(p))&&(o=`mathml`),b?(f(e.dynamicChildren,b,v,i,a,o,s),Yr(e,t,!0)):c||d(e,t,v,y,i,a,o,s,!1),_)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):gr(t,n,u,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=Ti(t.props,m);e&&gr(t,e,null,l,0)}else g&&gr(t,p,h,l,1);_r(t,_)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e;if(d&&(i(l),i(u)),a&&i(c),o&16){let e=a||!xi(f);for(let i=0;i{let t=e.subTree;return t.component?Mi(t.component):t},Jne={name:`BaseTransition`,props:ji,setup(e,{slots:t}){let n=ba(),r=Rte();return()=>{let i=t.default&&Hte(t.default(),!0);if(!i||!i.length)return;let a=zte(i),o=bn(e),{mode:s}=o;if(r.isLeaving)return br(a);let c=Vte(a);if(!c)return br(a);let l=yr(c,o,r,n,e=>l=e);c.type!==fa&&xr(c,l);let u=n.subTree&&Vte(n.subTree);if(u&&u.type!==fa&&!Qr(u,c)&&Mi(n).type!==fa){let e=yr(u,o,r,n);if(xr(u,e),s===`out-in`&&c.type!==fa)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},br(a);s===`in-out`&&c.type!==fa?e.delayLeave=(e,t,n)=>{let i=Bte(r,u);i[String(u.key)]=u,e[Oi]=()=>{t(),e[Oi]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}},Yne=Jne,Ni=new WeakMap,Xne=!1,Pi=()=>{Xne||=(console.error(`Hydration completed but contains mismatches.`),!0)},Zne=e=>e.namespaceURI.includes(`svg`)&&e.tagName!==`foreignObject`,Qne=e=>e.namespaceURI.includes(`MathML`),Fi=e=>{if(e.nodeType===1){if(Zne(e))return`svg`;if(Qne(e))return`mathml`}},Ii=e=>e.nodeType===8,Li=`data-allow-mismatch`,$ne={0:`text`,1:`children`,2:`class`,3:`style`,4:`attribute`},Bt().requestIdleCallback,Bt().cancelIdleCallback,Ri=e=>!!e.type.__asyncLoader,zi=e=>e.type.__isKeepAlive,Bi=e=>(t,n=ya)=>{(!Ta||e===`sp`)&&Or(e,(...e)=>t(...e),n)},Vi=Bi(`bm`),Hi=Bi(`m`),Ui=Bi(`bu`),ere=Bi(`u`),Wi=Bi(`bum`),Gi=Bi(`um`),Ki=Bi(`sp`),tre=Bi(`rtg`),nre=Bi(`rtc`),qi=`components`,Ji=Symbol.for(`v-ndc`),Yi=e=>e?Rne(e)?si(e):Yi(e.parent):null,Xi=mt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Yi(e.parent),$root:e=>Yi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||=()=>{or(e.update)},$nextTick:e=>e.n||=ar.bind(e.proxy),$watch:e=>Fte.bind(e)}),Zi=(e,t)=>e!==ct&&!e.__isScriptSetup&>(e,t),rre={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(Zi(r,t))return o[t]=1,r[t];else if(i!==ct&>(i,t))return o[t]=2,i[t];else if(gt(a,t))return o[t]=3,a[t];else if(n!==ct&>(n,t))return o[t]=4,n[t];else Qi&&(o[t]=0)}let l=Xi[t],u,d;if(l)return t===`$attrs`&&en(e.attrs,`get`,``),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==ct&>(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,gt(d,t))return d[t]},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return Zi(i,t)?(i[t]=n,!0):r!==ct&>(r,t)?(r[t]=n,!0):gt(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==ct&&s[0]!==`$`&>(e,s)||Zi(t,s)||gt(a,s)||gt(r,s)||gt(Xi,s)||gt(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?gt(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}},Qi=!0,ire={data:cne,props:une,emits:une,methods:Hr,computed:Hr,beforeCreate:Vr,created:Vr,beforeMount:Vr,mounted:Vr,beforeUpdate:Vr,updated:Vr,beforeDestroy:Vr,beforeUnmount:Vr,destroyed:Vr,unmounted:Vr,activated:Vr,deactivated:Vr,errorCaptured:Vr,serverPrefetch:Vr,components:Hr,directives:Hr,watch:dne,provide:cne,inject:lne},are=0,$i=null,ea=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${Mt(t)}Modifiers`]||e[`${Nt(t)}Modifiers`],ore=new WeakMap,sre=e=>{let t;for(let n in e)(n===`class`||n===`style`||ft(n))&&((t||={})[n]=e[n]);return t},cre=(e,t)=>{let n={};for(let r in e)(!pt(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n},ta={},na=()=>Object.create(ta),ra=e=>Object.getPrototypeOf(e)===ta,lre=new WeakMap,ia=e=>e===`_`||e===`_ctx`||e===`$stable`,aa=e=>_t(e)?e.map(ni):[ni(e)],ure=(e,t,n)=>{if(t._n)return t;let r=M((...e)=>aa(t(...e)),n);return r._c=!1,r},oa=(e,t,n)=>{let r=e._ctx;for(let n in e){if(ia(n))continue;let i=e[n];if(xt(i))t[n]=ure(n,i,r);else if(i!=null){let e=aa(i);t[n]=()=>e}}},sa=(e,t)=>{let n=aa(t);e.slots.default=()=>n},ca=(e,t,n)=>{for(let r in t)(n||!ia(r))&&(e[r]=t[r])},dre=(e,t,n)=>{let r=e.slots=na();if(e.vnode.shapeFlag&32){let e=t._;e?(ca(r,t,n),n&&Rt(r,`_`,e,!0)):oa(t,r)}else t&&sa(e,t)},fre=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=ct;if(r.shapeFlag&32){let e=t._;e?n&&e===1?a=!1:ca(i,t,n):(a=!t.$stable,oa(t,i)),o=t}else t&&(sa(e,t),o={default:1});if(a)for(let e in i)!ia(e)&&o[e]==null&&delete i[e]},la=Nne,ua=e=>e.__isSuspense,V=Symbol.for(`v-fgt`),da=Symbol.for(`v-txt`),fa=Symbol.for(`v-cmt`),pa=Symbol.for(`v-stc`),ma=[],ha=null,ga=1,_a=({key:e})=>e??null,va=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:St(e)||xn(e)||xt(e)?{i:_i,r:e,k:t,f:!!n}:e),H=Ine,pre=fne(),mre=0,ya=null,ba=()=>ya||_i;{let e=Bt(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};xa=t(`__VUE_INSTANCE_SETTERS__`,e=>ya=e),Sa=t(`__VUE_SSR_SETTERS__`,e=>Ta=e)}Ca=e=>{let t=ya;return xa(e),e.scope.on(),()=>{e.scope.off(),xa(t)}},wa=()=>{ya&&ya.scope.off(),xa(null)},Ta=!1,_re={get(e,t){return en(e,`get`,``),e[t]}},U=(e,t)=>ite(e,t,Ta),vre=`3.5.30`}));function yre(e){let t={};for(let n in e)n in Ga||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=bre(i),h=m&&m[0],g=m&&m[1],{onBeforeEnter:_,onEnter:v,onEnterCancelled:y,onLeave:b,onLeaveCancelled:x,onBeforeAppear:S=_,onAppear:C=v,onAppearCancelled:w=y}=t,ee=(e,t,n,r)=>{e._enterCancelled=r,ka(e,t?u:s),ka(e,t?l:o),n&&n()},te=(e,t)=>{e._isLeaving=!1,ka(e,d),ka(e,p),ka(e,f),t&&t()},ne=e=>(t,n)=>{let i=e?C:v,o=()=>ee(t,e,n);qa(i,[t,o]),xre(()=>{ka(t,e?c:a),Oa(t,e?u:s),Ja(i)||Sre(t,r,h,o)})};return mt(t,{onBeforeEnter(e){qa(_,[e]),Oa(e,a),Oa(e,o)},onBeforeAppear(e){qa(S,[e]),Oa(e,c),Oa(e,l)},onEnter:ne(!1),onAppear:ne(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>te(e,t);Oa(e,d),e._enterCancelled?(Oa(e,f),Ere(e)):(Ere(e),Oa(e,f)),xre(()=>{e._isLeaving&&(ka(e,d),Oa(e,p),Ja(b)||Sre(e,r,g,n))}),qa(b,[e,n])},onEnterCancelled(e){ee(e,!1,void 0,!0),qa(y,[e])},onAppearCancelled(e){ee(e,!0,void 0,!0),qa(w,[e])},onLeaveCancelled(e){te(e),qa(x,[e])}})}function bre(e){if(e==null)return null;if(wt(e))return[Da(e.enter),Da(e.leave)];{let t=Da(e);return[t,t]}}function Da(e){return Aee(e)}function Oa(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Wa]||(e[Wa]=new Set)).add(t)}function ka(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Wa];n&&(n.delete(t),n.size||(e[Wa]=void 0))}function xre(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}function Sre(e,t,n,r){let i=e._endId=++nie,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Cre(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${Ha}Delay`),a=r(`${Ha}Duration`),o=wre(i,a),s=r(`${Ua}Delay`),c=r(`${Ua}Duration`),l=wre(s,c),u=null,d=0,f=0;t===Ha?o>0&&(u=Ha,d=o,f=a.length):t===Ua?l>0&&(u=Ua,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?Ha:Ua:null,f=u?u===Ha?a.length:c.length:0);let p=u===Ha&&/\b(?:transform|all)(?:,|$)/.test(r(`${Ha}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function wre(e,t){for(;e.lengthTre(t)+Tre(e[n])))}function Tre(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function Ere(e){return(e?e.ownerDocument:document).body.offsetHeight}function Dre(e,t,n){let r=e[Wa];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}function Aa(e,t){e.style.display=t?e[Ya]:`none`,e[Xa]=!t}function Ore(e){let t=ba();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>Ma(e,n))},r=()=>{let r=e(t.proxy);t.ce?Ma(t.ce,r):ja(t.subTree,r),n(r)};Ui(()=>{Ate(r)}),Hi(()=>{mr(r,ut,{flush:`post`});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),Gi(()=>e.disconnect())})}function ja(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{ja(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Ma(e.el,t);else if(e.type===V)e.children.forEach(e=>ja(e,t));else if(e.type===pa){let{el:n,anchor:r}=e;for(;n&&(Ma(n,t),n!==r);)n=n.nextSibling}}function Ma(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=Tee(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[Qa]=r}}function kre(e,t,n){let r=e.style,i=St(n),a=!1;if(n&&!i){if(t)if(St(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Na(r,t,``)}else for(let e in t)n[e]??Na(r,e,``);for(let e in n)e===`display`&&(a=!0),Na(r,e,n[e])}else if(i){if(t!==n){let e=r[Qa];e&&(n+=`;`+e),r.cssText=n,a=rie.test(n)}}else t&&e.removeAttribute(`style`);Ya in e&&(e[Ya]=a?r.display:``,e[Xa]&&(r.display=`none`))}function Na(e,t,n){if(_t(n))n.forEach(n=>Na(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Are(e,t);$a.test(n)?e.setProperty(Nt(r),n.replace($a,``),`important`):e[r]=n}}function Are(e,t){let n=to[t];if(n)return n;let r=Mt(t);if(r!==`filter`&&r in e)return to[t]=r;r=Pt(r);for(let n=0;n{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;rr(Lre(e,n.value),t,5,[e])};return n.value=e,n.attached=aie(),n}function Lre(e,t){if(_t(t)){let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}else return t}function Rre(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&oo(t)&&xt(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return oo(t)&&St(n)?!1:t in e}function zre(e,t){let n=e._def.props;if(!n)return!1;let r=Mt(t);return Array.isArray(n)?n.some(e=>Mt(e)===r):Object.keys(n).some(e=>Mt(e)===r)}function Bre(e){e.target.composing=!0}function Vre(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}function Hre(e,t,n){return t&&(e=e.trim()),n&&(e=zt(e)),e}function Ure(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(_t(t))i=st(t,r.props.value)>-1;else if(yt(t))i=t.has(r.props.value);else{if(t===n)return;i=ot(t,Gre(e,!0))}e.checked!==i&&(e.checked=i)}function Wre(e,t){let n=e.multiple,r=_t(t);if(!(n&&!r&&!yt(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):a.selected=st(t,o)>-1}else a.selected=t.has(o);else if(ot(Fa(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Fa(e){return`_value`in e?e._value:e.value}function Gre(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}function Kre(e,t){switch(e){case`SELECT`:return cie;case`TEXTAREA`:return lo;default:switch(t){case`checkbox`:return uo;case`radio`:return sie;default:return lo}}}function Ia(e,t,n,r,i){let a=Kre(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}function qre(){return go||=Tne(ho)}function Jre(){return go=_o?go:Ene(ho),_o=!0,go}function Yre(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Xre(e){return St(e)?document.querySelector(e):e}var La,Ra,za,Zre,Qre,Ba,Va,$re,Ha,Ua,Wa,Ga,eie,tie,Ka,qa,Ja,nie,Ya,Xa,Za,Qa,rie,$a,eo,to,no,ro,io,ao,iie,aie,oo,oie,so,co,lo,uo,sie,cie,fo,lie,uie,po,die,mo,ho,go,_o,fie,vo,pie,mie=s((()=>{if(Ea(),Ea(),Gt(),La=void 0,Ra=typeof window<`u`&&window.trustedTypes,Ra)try{La=Ra.createPolicy(`vue`,{createHTML:e=>e})}catch{}za=La?e=>La.createHTML(e):e=>e,Zre=`http://www.w3.org/2000/svg`,Qre=`http://www.w3.org/1998/Math/MathML`,Ba=typeof document<`u`?document:null,Va=Ba&&Ba.createElement(`template`),$re={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?Ba.createElementNS(Zre,e):t===`mathml`?Ba.createElementNS(Qre,e):n?Ba.createElement(e,{is:n}):Ba.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Ba.createTextNode(e),createComment:e=>Ba.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ba.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{Va.innerHTML=za(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=Va.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ha=`transition`,Ua=`animation`,Wa=Symbol(`_vtc`),Ga={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},eie=mt({},ji,Ga),tie=e=>(e.displayName=`Transition`,e.props=eie,e),Ka=tie((e,{slots:t})=>ci(Yne,yre(e),t)),qa=(e,t=[])=>{_t(e)?e.forEach(e=>e(...t)):e&&e(...t)},Ja=e=>e?_t(e)?e.some(e=>e.length>1):e.length>1:!1,nie=0,Ya=Symbol(`_vod`),Xa=Symbol(`_vsh`),Za={name:`show`,beforeMount(e,{value:t},{transition:n}){e[Ya]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Aa(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Aa(e,!0),r.enter(e)):r.leave(e,()=>{Aa(e,!1)}):Aa(e,t))},beforeUnmount(e,{value:t}){Aa(e,t)}},Qa=Symbol(``),rie=/(?:^|;)\s*display\s*:/,$a=/\s*!important$/,eo=[`Webkit`,`Moz`,`ms`],to={},no=`http://www.w3.org/1999/xlink`,ro=Symbol(`_vei`),io=/(?:Once|Passive|Capture)$/,ao=0,iie=Promise.resolve(),aie=()=>ao||=(iie.then(()=>ao=0),Date.now()),oo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,oie=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Dre(e,r,o):t===`style`?kre(e,n,r):ft(t)?pt(t)||Pre(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Rre(e,t,r,o))?(Mre(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&jre(e,t,r,o,a,t!==`value`)):e._isVueCE&&(zre(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!St(r)))?Mre(e,Mt(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),jre(e,t,r,o))},so=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return _t(t)?e=>Lt(t,e):t},co=Symbol(`_assign`),lo={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[co]=so(i);let a=r||i.props&&i.props.type===`number`;Pa(e,t?`change`:`input`,t=>{t.target.composing||e[co](Hre(e.value,n,a))}),(n||a)&&Pa(e,`change`,()=>{e.value=Hre(e.value,n,a)}),t||(Pa(e,`compositionstart`,Bre),Pa(e,`compositionend`,Vre),Pa(e,`change`,Vre))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[co]=so(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?zt(e.value):e.value,c=t??``;s!==c&&(document.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c))}},uo={deep:!0,created(e,t,n){e[co]=so(n),Pa(e,`change`,()=>{let t=e._modelValue,n=Fa(e),r=e.checked,i=e[co];if(_t(t)){let e=st(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(yt(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Gre(e,r))})},mounted:Ure,beforeUpdate(e,t,n){e[co]=so(n),Ure(e,t,n)}},sie={created(e,{value:t},n){e.checked=ot(t,n.props.value),e[co]=so(n),Pa(e,`change`,()=>{e[co](Fa(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[co]=so(r),t!==n&&(e.checked=ot(t,r.props.value))}},cie={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=yt(t);Pa(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?zt(Fa(e)):Fa(e));e[co](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,ar(()=>{e._assigning=!1})}),e[co]=so(r)},mounted(e,{value:t}){Wre(e,t)},beforeUpdate(e,t,n){e[co]=so(n)},updated(e,{value:t}){e._assigning||Wre(e,t)}},fo={created(e,t,n){Ia(e,t,n,null,`created`)},mounted(e,t,n){Ia(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Ia(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Ia(e,t,n,r,`updated`)}},lie=[`ctrl`,`shift`,`alt`,`meta`],uie={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>lie.some(n=>e[`${n}Key`]&&!t.includes(n))},po=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=Nt(n.key);if(t.some(e=>e===r||die[e]===r))return e(n)}))},ho=mt({patchProp:oie},$re),_o=!1,fie=((...e)=>{qre().render(...e)}),vo=((...e)=>{let t=qre().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Xre(e);if(!r)return;let i=t._component;!xt(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Yre(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t}),pie=((...e)=>{let t=Jre().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=Xre(e);if(t)return n(t,!0,Yre(t))},t})})),W=s((()=>{mie()}));W();var hie=(e,t)=>xn(t)?Cn(t):t;W();var gie=`usehead`;function _ie(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide(gie,e)}}.install}function vie(){if(Nte()){let e=fr(gie);if(e)return e}throw Error(`useHead() was called without provide context, ensure you call it through the setup() function.`)}function yie(e,t={}){let n=t.head||vie();return n.ssr?n.push(e||{},t):bie(n,e,t)}function bie(e,t,n={}){let r=A(!1),i;return pr(()=>{let a=r.value?{}:qe(t,hie);i?i.patch(a):i=e.push(a,n)}),ba()&&(Wi(()=>{i.dispose()}),Yte(()=>{r.value=!0}),Jte(()=>{r.value=!1})),i}function xie(e={},t={}){(t.head||vie()).use(bee);let{title:n,titleTemplate:r,...i}=e;return yie({title:n,titleTemplate:r,_flatMeta:i},t)}W();function Sie(e={}){let t=lee({domOptions:{render:uee(()=>cee(t),e=>setTimeout(e,0))},...e});return t.install=_ie(t),t}function yo(e,t,n){let r=n.initialDeps??[],i;return()=>{var a;let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length{Cie=(e,t)=>Math.abs(e-t)<1,wie=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}}}));function Eie({measurements:e,outerSize:t,scrollOffset:n}){let r=e.length-1,i=So(0,r,t=>e[t].start,n),a=i;for(;a{Tie(),Die=e=>e,Oie=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},kie=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(n.getBoundingClientRect()),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(e=>{let t=e[0];if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e){i({width:e.inlineSize,height:e.blockSize});return}}i(n.getBoundingClientRect())});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},xo={passive:!0},Aie=typeof window>`u`?!0:`onscrollend`in window,jie=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=0,a=Aie?()=>void 0:wie(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),o=r=>()=>{i=n[e.options.horizontal?`scrollLeft`:`scrollTop`],a(),t(i,r)},s=o(!0),c=o(!1);return c(),n.addEventListener(`scroll`,s,xo),n.addEventListener(`scrollend`,c,xo),()=>{n.removeEventListener(`scroll`,s),n.removeEventListener(`scrollend`,c)}},Mie=(e,t,n)=>{if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}return Math.round(e.getBoundingClientRect()[n.options.horizontal?`width`:`height`])},Nie=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;let o=e+t;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:o,behavior:n})},Pie=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{this._measureElement(e.target,e)})}));return{disconnect:()=>t()?.disconnect(),observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{n===void 0&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Die,rangeExtractor:Oie,onChange:()=>{},measureElement:Mie,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,...e}},this.notify=(e,t)=>{var n,r;let{startIndex:i,endIndex:a}=this.range??{startIndex:void 0,endIndex:void 0},o=this.calculateRange();(e||i!==o?.startIndex||a!==o?.endIndex)&&((r=(n=this.options).onChange)==null||r.call(n,this,t))},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.observer.disconnect(),this.elementsCache.clear()},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.notify(!1,!1);return}this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.notify(!1,!1)})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=yo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,n,r,i)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i}),{key:!1}),this.getMeasurements=yo(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i},a)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let s=this.measurementsCache.slice(0,o);for(let i=o;i{let t=r(i),n=this.elementsCache.get(t);if(!e){n&&(this.observer.unobserve(n),this.elementsCache.delete(t));return}n!==e&&(n&&this.observer.unobserve(n),this.observer.observe(e),this.elementsCache.set(t,e)),e.isConnected&&this.resizeItem(i,this.options.measureElement(e,void 0,this))};let o=r(i),c=this.options.lanes===1?s[i-1]:this.getFurthestMeasurement(s,i),l=c?c.end+this.options.gap:t+n,u=a.get(o),d=typeof u==`number`?u:this.options.estimateSize(i),f=l+d,p=c?c.lane:i%this.options.lanes;s[i]={index:i,start:l,size:d,end:f,key:o,lane:p,measureElement:e}}return this.measurementsCache=s,s},{key:!1,debug:()=>this.options.debug}),this.calculateRange=yo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(e,t,n)=>this.range=e.length>0&&t>0?Eie({measurements:e,outerSize:t,scrollOffset:n}):null,{key:!1,debug:()=>this.options.debug}),this.getIndexes=yo(()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count],(e,t,n,r)=>t===null?[]:e({startIndex:t.startIndex,endIndex:t.endIndex,overscan:n,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let n=this.indexFromElement(e),r=this.getMeasurements()[n];if(!r||!e.isConnected){this.elementsCache.forEach((t,n)=>{t===e&&(this.observer.unobserve(e),this.elementsCache.delete(n))});return}let i=this.elementsCache.get(r.key);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.elementsCache.set(r.key,e)),this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let n=this.getMeasurements()[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start{e&&this._measureElement(e,void 0)},this.getVirtualItems=yo(()=>[this.getIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length!==0)return bo(t[So(0,t.length-1,e=>bo(t[e]).start,e)])},this.getOffsetForAlignment=(e,t)=>{let n=this.getSize(),r=this.getScrollOffset();t===`auto`&&(t=e<=r?`start`:e>=r+n?`end`:`start`),t===`start`?e=e:t===`end`?e-=n:t===`center`&&(e-=n/2);let i=this.options.horizontal?`scrollWidth`:`scrollHeight`,a=(this.scrollElement?`document`in this.scrollElement?this.scrollElement.document.documentElement[i]:this.scrollElement[i]:0)-n;return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getMeasurements()[e];if(!n)return;let r=this.getSize(),i=this.getScrollOffset();if(t===`auto`)if(n.end>=i+r-this.options.scrollPaddingEnd)t=`end`;else if(n.start<=i+this.options.scrollPaddingStart)t=`start`;else return[i,t];let a=t===`end`?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{this.scrollToIndexTimeoutId!==null&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:t=`start`,behavior:n}={})=>{this.cancelScrollToIndex(),n===`smooth`&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t=`auto`,behavior:n}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),n===`smooth`&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r;this._scrollToOffset(i,{adjustments:void 0,behavior:n}),n!==`smooth`&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(e))){let[t]=bo(this.getOffsetForIndex(e,a));Cie(t,this.getScrollOffset())||this.scrollToIndex(e,{align:a,behavior:n})}else this.scrollToIndex(e,{align:a,behavior:n})}))},this.scrollBy=(e,{behavior:t}={})=>{this.cancelScrollToIndex(),t===`smooth`&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;return t=e.length===0?this.options.paddingStart:this.options.lanes===1?e[e.length-1]?.end??0:Math.max(...e.slice(-this.options.lanes).map(e=>e.end)),t-this.options.scrollMargin+this.options.paddingEnd},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{var e,t;this.itemSizeCache=new Map,(t=(e=this.options).onChange)==null||t.call(e,this,!1)},this.setOptions(e)}},So=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(ar)t=i-1;else return i}return e>0?e-1:0}}));function Iie(e){let t=new Pie(j(e)),n=Sn(t),r=t._didMount();return mr(()=>j(e).getScrollElement(),e=>{e&&t._willUpdate()},{immediate:!0}),mr(()=>j(e),e=>{t.setOptions({...e,onChange:(t,r)=>{var i;$ee(n),(i=e.onChange)==null||i.call(e,t,r)}}),t._willUpdate(),$ee(n)},{immediate:!0}),qt(r),n}function Lie(e){return Iie(U(()=>({observeElementRect:kie,observeElementOffset:jie,scrollToFn:Nie,...j(e)})))}var Rie=s((()=>{Fie(),Fie(),W()}));function Co(e,t,n){let r=A(n?.value),i=U(()=>e.value!==void 0);return[U(()=>i.value?e.value:r.value),function(e){return i.value||(r.value=e),t?.(e)}]}var wo=s((()=>{W()}));function To(e){typeof queueMicrotask==`function`?queueMicrotask(e):Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e}))}var Eo=s((()=>{}));function Do(){let e=[],t={addEventListener(e,n,r,i){return e.addEventListener(n,r,i),t.add(()=>e.removeEventListener(n,r,i))},requestAnimationFrame(...e){let n=requestAnimationFrame(...e);t.add(()=>cancelAnimationFrame(n))},nextFrame(...e){t.requestAnimationFrame(()=>{t.requestAnimationFrame(...e)})},setTimeout(...e){let n=setTimeout(...e);t.add(()=>clearTimeout(n))},microTask(...e){let n={current:!0};return To(()=>{n.current&&e[0]()}),t.add(()=>{n.current=!1})},style(e,t,n){let r=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:n}),this.add(()=>{Object.assign(e.style,{[t]:r})})},group(e){let t=Do();return e(t),this.add(()=>t.dispose())},add(t){return e.push(t),()=>{let n=e.indexOf(t);if(n>=0)for(let t of e.splice(n,1))t()}},dispose(){for(let t of e.splice(0))t()}};return t}var Oo=s((()=>{Eo()}));function zie(){let e=Do();return Gi(()=>e.dispose()),e}var Bie=s((()=>{W(),Oo()}));function Vie(){let e=zie();return t=>{e.dispose(),e.nextFrame(t)}}var Hie=s((()=>{Bie()}));function Uie(e){dr(ko,e)}var ko,Wie,Ao,jo=s((()=>{W(),ko=Symbol(`headlessui.useid`),Wie=0,Ao=Sr??function(){return fr(ko,()=>`${++Wie}`)()}}));function G(e){if(e==null||e.value==null)return null;let t=e.value.$el??e.value;return t instanceof Node?t:null}var Mo=s((()=>{}));function No(e,t,...n){if(e in t){let r=t[e];return typeof r==`function`?r(...n):r}let r=Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(e=>`"${e}"`).join(`, `)}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,No),r}var Po=s((()=>{})),Gie,Kie,Fo,qie,Io,Lo=s((()=>{Gie=Object.defineProperty,Kie=(e,t,n)=>t in e?Gie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Fo=(e,t,n)=>(Kie(e,typeof t==`symbol`?t:t+``,n),n),qie=class{constructor(){Fo(this,`current`,this.detect()),Fo(this,`currentId`,0)}set(e){this.current!==e&&(this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===`server`}get isClient(){return this.current===`client`}detect(){return typeof window>`u`||typeof document>`u`?`server`:`client`}},Io=new qie}));function Ro(e){if(Io.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty(`value`)){let t=G(e);if(t)return t.ownerDocument}return document}var zo=s((()=>{Mo(),Lo()}));function Bo(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Go)).sort((e,t)=>Math.sign((e.tabIndex||2**53-1)-(t.tabIndex||2**53-1)))}function Vo(e,t=0){return e===Ro(e)?.body?!1:No(t,{0(){return e.matches(Go)},1(){let t=e;for(;t!==null;){if(t.matches(Go))return!0;t=t.parentElement}return!1}})}function Jie(e){let t=Ro(e);ar(()=>{t&&!Vo(t.activeElement,0)&&Ho(e)})}function Ho(e){e?.focus({preventScroll:!0})}function Yie(e){return(e?.matches)?.call(e,$ie)??!1}function Uo(e,t=e=>e){return e.slice().sort((e,n)=>{let r=t(e),i=t(n);if(r===null||i===null)return 0;let a=r.compareDocumentPosition(i);return a&Node.DOCUMENT_POSITION_FOLLOWING?-1:a&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Xie(e,t){return Wo(Bo(),t,{relativeTo:e})}function Wo(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:i=[]}={}){let a=(Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)??document,o=Array.isArray(e)?n?Uo(e):e:Bo(e);i.length>0&&o.length>1&&(o=o.filter(e=>!i.includes(e))),r??=a.activeElement;let s=(()=>{if(t&5)return 1;if(t&10)return-1;throw Error(`Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last`)})(),c=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,o.indexOf(r))-1;if(t&4)return Math.max(0,o.indexOf(r))+1;if(t&8)return o.length-1;throw Error(`Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last`)})(),l=t&32?{preventScroll:!0}:{},u=0,d=o.length,f;do{if(u>=d||u+d<=0)return 0;let e=c+u;if(t&16)e=(e+d)%d;else{if(e<0)return 3;if(e>=d)return 1}f=o[e],f?.focus(l),u+=s}while(f!==a.activeElement);return t&6&&Yie(f)&&f.select(),2}var Go,Ko,qo,Zie,Jo,Qie,$ie,Yo=s((()=>{W(),Po(),zo(),Go=[`[contentEditable=true]`,`[tabindex]`,`a[href]`,`area[href]`,`button:not([disabled])`,`iframe`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`].map(e=>`${e}:not([tabindex='-1'])`).join(`,`),Ko=(e=>(e[e.First=1]=`First`,e[e.Previous=2]=`Previous`,e[e.Next=4]=`Next`,e[e.Last=8]=`Last`,e[e.WrapAround=16]=`WrapAround`,e[e.NoScroll=32]=`NoScroll`,e))(Ko||{}),qo=(e=>(e[e.Error=0]=`Error`,e[e.Overflow=1]=`Overflow`,e[e.Success=2]=`Success`,e[e.Underflow=3]=`Underflow`,e))(qo||{}),Zie=(e=>(e[e.Previous=-1]=`Previous`,e[e.Next=1]=`Next`,e))(Zie||{}),Jo=(e=>(e[e.Strict=0]=`Strict`,e[e.Loose=1]=`Loose`,e))(Jo||{}),Qie=(e=>(e[e.Keyboard=0]=`Keyboard`,e[e.Mouse=1]=`Mouse`,e))(Qie||{}),typeof window<`u`&&typeof document<`u`&&(document.addEventListener(`keydown`,e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=``)},!0),document.addEventListener(`click`,e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=``)},!0)),$ie=[`textarea`,`input`].join(`,`)}));function eae(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function tae(){return/Android/gi.test(window.navigator.userAgent)}function nae(){return eae()||tae()}var Xo=s((()=>{}));function Zo(e,t,n){Io.isServer||pr(r=>{document.addEventListener(e,t,n),r(()=>document.removeEventListener(e,t,n))})}var rae=s((()=>{W(),Lo()}));function iae(e,t,n){Io.isServer||pr(r=>{window.addEventListener(e,t,n),r(()=>window.removeEventListener(e,t,n))})}var aae=s((()=>{W(),Lo()}));function Qo(e,t,n=U(()=>!0)){function r(r,i){if(!n.value||r.defaultPrevented)return;let a=i(r);if(a===null||!a.getRootNode().contains(a))return;let o=function e(t){return typeof t==`function`?e(t()):Array.isArray(t)||t instanceof Set?t:[t]}(e);for(let e of o){if(e===null)continue;let t=e instanceof HTMLElement?e:G(e);if(t!=null&&t.contains(a)||r.composed&&r.composedPath().includes(t))return}return!Vo(a,Jo.Loose)&&a.tabIndex!==-1&&r.preventDefault(),t(r,a)}let i=A(null);Zo(`pointerdown`,e=>{n.value&&(i.value=e.composedPath?.call(e)?.[0]||e.target)},!0),Zo(`mousedown`,e=>{n.value&&(i.value=e.composedPath?.call(e)?.[0]||e.target)},!0),Zo(`click`,e=>{nae()||(i.value&&=(r(e,()=>i.value),null))},!0),Zo(`touchend`,e=>r(e,()=>e.target instanceof HTMLElement?e.target:null),!0),iae(`blur`,e=>r(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var $o=s((()=>{W(),Mo(),Yo(),Xo(),rae(),aae()}));function oae(e,t){if(e)return e;let n=t??`button`;if(typeof n==`string`&&n.toLowerCase()===`button`)return`button`}function es(e,t){let n=A(oae(e.value.type,e.value.as));return Hi(()=>{n.value=oae(e.value.type,e.value.as)}),pr(()=>{var e;n.value||G(t)&&G(t)instanceof HTMLButtonElement&&!((e=G(t))!=null&&e.hasAttribute(`type`))&&(n.value=`button`)}),n}var ts=s((()=>{W(),Mo()}));function sae(e){return[e.screenX,e.screenY]}function ns(){let e=A([-1,-1]);return{wasMoved(t){let n=sae(t);return e.value[0]===n[0]&&e.value[1]===n[1]?!1:(e.value=n,!0)},update(t){e.value=sae(t)}}}var rs=s((()=>{W()}));function is({container:e,accept:t,walk:n,enabled:r}){pr(()=>{let i=e.value;if(!i||r!==void 0&&!r.value)return;let a=Ro(e);if(!a)return;let o=Object.assign(e=>t(e),{acceptNode:t}),s=a.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,o,!1);for(;s.nextNode();)n(s.currentNode)})}var as=s((()=>{W(),zo()}));function os({visible:e=!0,features:t=0,ourProps:n,theirProps:r,...i}){var a;let o=lae(r,n),s=Object.assign(i,{props:o});return e||t&2&&o.static?ss(s):t&1?No((a=o.unmount)==null||a?0:1,{0(){return null},1(){return ss({...i,props:{...o,hidden:!0,style:{display:`none`}}})}}):ss(s)}function ss({props:e,attrs:t,slots:n,slot:r,name:i}){let{as:a,...o}=ls(e,[`unmount`,`static`]),s=n.default?.call(n,r),c={};if(r){let e=!1,t=[];for(let[n,i]of Object.entries(r))typeof i==`boolean`&&(e=!0),i===!0&&t.push(n);e&&(c[`data-headlessui-state`]=t.join(` `))}if(a===`template`){if(s=cae(s??[]),Object.keys(o).length>0||Object.keys(t).length>0){let[e,...n]=s??[];if(!uae(e)||n.length>0)throw Error([`Passing props on "template"!`,``,`The current component <${i} /> is rendering a "template".`,`However we need to passthrough the following props:`,Object.keys(o).concat(Object.keys(t)).map(e=>e.trim()).filter((e,t,n)=>n.indexOf(e)===t).sort((e,t)=>e.localeCompare(t)).map(e=>` - ${e}`).join(` +`),``,`You can apply a few solutions:`,['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',`Render a single element as the child so that we can forward the props onto that element.`].map(e=>` - ${e}`).join(` +`)].join(` +`));let r=lae(e.props??{},o,c),a=ei(e,r,!0);for(let e in r)e.startsWith(`on`)&&(a.props||={},a.props[e]=r[e]);return a}return Array.isArray(s)&&s.length===1?s[0]:s}return ci(a,Object.assign({},o,c),{default:()=>s})}function cae(e){return e.flatMap(e=>e.type===V?cae(e.children):[e])}function lae(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let e in r)e.startsWith(`on`)&&typeof r[e]==`function`?(n[e]??(n[e]=[]),n[e].push(r[e])):t[e]=r[e];if(t.disabled||t[`aria-disabled`])return Object.assign(t,Object.fromEntries(Object.keys(n).map(e=>[e,void 0])));for(let e in n)Object.assign(t,{[e](t,...r){let i=n[e];for(let e of i){if(t instanceof Event&&t.defaultPrevented)return;e(t,...r)}}});return t}function cs(e){let t=Object.assign({},e);for(let e in t)t[e]===void 0&&delete t[e];return t}function ls(e,t=[]){let n=Object.assign({},e);for(let e of t)e in n&&delete n[e];return n}function uae(e){return e==null?!1:typeof e.type==`string`||typeof e.type==`object`||typeof e.type==`function`}var us,ds,fs=s((()=>{W(),Po(),us=(e=>(e[e.None=0]=`None`,e[e.RenderStrategy=1]=`RenderStrategy`,e[e.Static=2]=`Static`,e))(us||{}),ds=(e=>(e[e.Unmount=0]=`Unmount`,e[e.Hidden=1]=`Hidden`,e))(ds||{})})),ps,ms,hs=s((()=>{W(),fs(),ps=(e=>(e[e.None=1]=`None`,e[e.Focusable=2]=`Focusable`,e[e.Hidden=4]=`Hidden`,e))(ps||{}),ms=N({name:`Hidden`,props:{as:{type:[Object,String],default:`div`},features:{type:Number,default:1}},setup(e,{slots:t,attrs:n}){return()=>{let{features:r,...i}=e;return os({ourProps:{"aria-hidden":(r&2)==2?!0:i[`aria-hidden`]??void 0,hidden:(r&4)==4?!0:void 0,style:{position:`fixed`,top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`,...(r&4)==4&&(r&2)!=2&&{display:`none`}}},theirProps:i,slot:{},attrs:n,slots:t,name:`Hidden`})}}})}));function dae(){return gs()!==null}function gs(){return fr(vs,null)}function _s(e){dr(vs,e)}var vs,ys,bs=s((()=>{W(),vs=Symbol(`Context`),ys=(e=>(e[e.Open=1]=`Open`,e[e.Closed=2]=`Closed`,e[e.Closing=4]=`Closing`,e[e.Opening=8]=`Opening`,e))(ys||{})})),xs,Ss=s((()=>{xs=(e=>(e.Space=` `,e.Enter=`Enter`,e.Escape=`Escape`,e.Backspace=`Backspace`,e.Delete=`Delete`,e.ArrowLeft=`ArrowLeft`,e.ArrowUp=`ArrowUp`,e.ArrowRight=`ArrowRight`,e.ArrowDown=`ArrowDown`,e.Home=`Home`,e.End=`End`,e.PageUp=`PageUp`,e.PageDown=`PageDown`,e.Tab=`Tab`,e))(xs||{})})),Cs,fae=s((()=>{Cs=(e=>(e[e.Left=0]=`Left`,e[e.Right=2]=`Right`,e))(Cs||{})}));function pae(e){function t(){document.readyState!==`loading`&&(e(),document.removeEventListener(`DOMContentLoaded`,t))}typeof window<`u`&&typeof document<`u`&&(document.addEventListener(`DOMContentLoaded`,t),t())}var mae=s((()=>{})),ws,hae=s((()=>{mae(),ws=[],pae(()=>{function e(e){e.target instanceof HTMLElement&&e.target!==document.body&&ws[0]!==e.target&&(ws.unshift(e.target),ws=ws.filter(e=>e!=null&&e.isConnected),ws.splice(10))}window.addEventListener(`click`,e,{capture:!0}),window.addEventListener(`mousedown`,e,{capture:!0}),window.addEventListener(`focus`,e,{capture:!0}),document.body.addEventListener(`click`,e,{capture:!0}),document.body.addEventListener(`mousedown`,e,{capture:!0}),document.body.addEventListener(`focus`,e,{capture:!0})})}));function gae(e){throw Error(`Unexpected object: `+e)}function Ts(e,t){let n=t.resolveItems();if(n.length<=0)return null;let r=t.resolveActiveIndex(),i=r??-1;switch(e.focus){case 0:for(let e=0;e=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 2:for(let e=i+1;e=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 4:for(let r=0;r{Es=(e=>(e[e.First=0]=`First`,e[e.Previous=1]=`Previous`,e[e.Next=2]=`Next`,e[e.Last=3]=`Last`,e[e.Specific=4]=`Specific`,e[e.Nothing=5]=`Nothing`,e))(Es||{})}));function Os(e={},t=null,n=[]){for(let[r,i]of Object.entries(e))vae(n,_ae(t,r),i);return n}function _ae(e,t){return e?e+`[`+t+`]`:t}function vae(e,t,n){if(Array.isArray(n))for(let[r,i]of n.entries())vae(e,_ae(t,r.toString()),i);else n instanceof Date?e.push([t,n.toISOString()]):typeof n==`boolean`?e.push([t,n?`1`:`0`]):typeof n==`string`?e.push([t,n]):typeof n==`number`?e.push([t,`${n}`]):n==null?e.push([t,``]):Os(n,t,e)}function yae(e){var t;let n=e?.form??e.closest(`form`);if(n){for(let t of n.elements)if(t!==e&&(t.tagName===`INPUT`&&t.type===`submit`||t.tagName===`BUTTON`&&t.type===`submit`||t.nodeName===`INPUT`&&t.type===`image`)){t.click();return}(t=n.requestSubmit)==null||t.call(n)}}var ks=s((()=>{}));function bae(e,t){return e===t}function As(e){let t=fr(js,null);if(t===null){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,As),t}return t}var xae,Sae,Cae,js,Ms,wae,Tae=s((()=>{Rie(),W(),wo(),Hie(),jo(),$o(),ts(),rs(),as(),hs(),bs(),Ss(),fae(),hae(),Ds(),Oo(),Mo(),Yo(),ks(),Po(),zo(),Xo(),fs(),xae=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(xae||{}),Sae=(e=>(e[e.Single=0]=`Single`,e[e.Multi=1]=`Multi`,e))(Sae||{}),Cae=(e=>(e[e.Pointer=0]=`Pointer`,e[e.Focus=1]=`Focus`,e[e.Other=2]=`Other`,e))(Cae||{}),js=Symbol(`ComboboxContext`),Ms=Symbol(`VirtualContext`),wae=N({name:`VirtualProvider`,setup(e,{slots:t}){let n=As(`VirtualProvider`),r=U(()=>{let e=G(n.optionsRef);if(!e)return{start:0,end:0};let t=window.getComputedStyle(e);return{start:parseFloat(t.paddingBlockStart||t.paddingTop),end:parseFloat(t.paddingBlockEnd||t.paddingBottom)}}),i=Lie(U(()=>({scrollPaddingStart:r.value.start,scrollPaddingEnd:r.value.end,count:n.virtual.value.options.length,estimateSize(){return 40},getScrollElement(){return G(n.optionsRef)},overscan:12}))),a=U(()=>n.virtual.value?.options),o=A(0);return mr([a],()=>{o.value+=1}),dr(Ms,n.virtual.value?i:null),()=>[ci(`div`,{style:{position:`relative`,width:`100%`,height:`${i.value.getTotalSize()}px`},ref:e=>{if(e){if(typeof process<`u`&&process.env.JEST_WORKER_ID!==void 0||n.activationTrigger.value===0)return;n.activeOptionIndex.value!==null&&n.virtual.value.options.length>n.activeOptionIndex.value&&i.value.scrollToIndex(n.activeOptionIndex.value)}}},i.value.getVirtualItems().map(e=>ei(t.default({option:n.virtual.value.options[e.index],open:n.comboboxState.value===0})[0],{key:`${o.value}-${e.index}`,"data-index":e.index,"aria-setsize":n.virtual.value.options.length,"aria-posinset":e.index+1,style:{position:`absolute`,top:0,left:0,transform:`translateY(${e.start}px)`,overflowAnchor:`none`}})))]}}),N({name:`Combobox`,emits:{"update:modelValue":e=>!0},props:{as:{type:[Object,String],default:`template`},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],nullable:!0,default:null},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},nullable:{type:Boolean,default:!1},multiple:{type:[Boolean],default:!1},immediate:{type:[Boolean],default:!1},virtual:{type:Object,default:null}},inheritAttrs:!1,setup(e,{slots:t,attrs:n,emit:r}){let i=A(1),a=A(null),o=A(null),s=A(null),c=A(null),l=A({static:!1,hold:!1}),u=A([]),d=A(null),f=A(2),p=A(!1);function m(e=e=>e){let t=d.value===null?null:u.value[d.value],n=e(u.value.slice()),r=n.length>0&&n[0].dataRef.order.value!==null?n.sort((e,t)=>e.dataRef.order.value-t.dataRef.order.value):Uo(n,e=>G(e.dataRef.domRef)),i=t?r.indexOf(t):null;return i===-1&&(i=null),{options:r,activeOptionIndex:i}}let h=U(()=>e.multiple?1:0),g=U(()=>e.nullable),[_,v]=Co(U(()=>e.modelValue),e=>r(`update:modelValue`,e),U(()=>e.defaultValue)),y=U(()=>_.value===void 0?No(h.value,{1:[],0:void 0}):_.value),b=null,x=null;function S(e){return No(h.value,{0(){return v?.(e)},1:()=>{let t=bn(C.value.value).slice(),n=bn(e),r=t.findIndex(e=>C.compare(n,bn(e)));return r===-1?t.push(n):t.splice(r,1),v?.(t)}})}mr([U(()=>{})],([e],[t])=>{if(C.virtual.value&&e&&t&&d.value!==null){let n=e.indexOf(t[d.value]);n===-1?d.value=null:d.value=n}});let C={comboboxState:i,value:y,mode:h,compare(t,n){if(typeof e.by==`string`){let r=e.by;return t?.[r]===n?.[r]}return e.by===null?bae(t,n):e.by(t,n)},calculateIndex(t){return C.virtual.value?e.by===null?C.virtual.value.options.indexOf(t):C.virtual.value.options.findIndex(e=>C.compare(e,t)):u.value.findIndex(e=>C.compare(e.dataRef.value,t))},defaultValue:U(()=>e.defaultValue),nullable:g,immediate:U(()=>!1),virtual:U(()=>null),inputRef:o,labelRef:a,buttonRef:s,optionsRef:c,disabled:U(()=>e.disabled),options:u,change(e){v(e)},activeOptionIndex:U(()=>{if(p.value&&d.value===null&&(C.virtual.value?C.virtual.value.options.length>0:u.value.length>0)){if(C.virtual.value){let e=C.virtual.value.options.findIndex(e=>{var t;return!((t=C.virtual.value)!=null&&t.disabled(e))});if(e!==-1)return e}let e=u.value.findIndex(e=>!e.dataRef.disabled);if(e!==-1)return e}return d.value}),activationTrigger:f,optionsPropsRef:l,closeCombobox(){p.value=!1,!e.disabled&&i.value!==1&&(i.value=1,d.value=null)},openCombobox(){if(p.value=!0,!e.disabled&&i.value!==0){if(C.value.value){let e=C.calculateIndex(C.value.value);e!==-1&&(d.value=e)}i.value=0}},setActivationTrigger(e){f.value=e},goToOption(t,n,r){p.value=!1,b!==null&&cancelAnimationFrame(b),b=requestAnimationFrame(()=>{if(e.disabled||c.value&&!l.value.static&&i.value===1)return;if(C.virtual.value){d.value=t===Es.Specific?n:Ts({focus:t},{resolveItems:()=>C.virtual.value.options,resolveActiveIndex:()=>C.activeOptionIndex.value??C.virtual.value.options.findIndex(e=>{var t;return!((t=C.virtual.value)!=null&&t.disabled(e))})??null,resolveDisabled:e=>C.virtual.value.disabled(e),resolveId(){throw Error(`Function not implemented.`)}}),f.value=r??2;return}let a=m();if(a.activeOptionIndex===null){let e=a.options.findIndex(e=>!e.dataRef.disabled);e!==-1&&(a.activeOptionIndex=e)}d.value=t===Es.Specific?n:Ts({focus:t},{resolveItems:()=>a.options,resolveActiveIndex:()=>a.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.disabled}),f.value=r??2,u.value=a.options})},selectOption(e){let t=u.value.find(t=>t.id===e);if(!t)return;let{dataRef:n}=t;S(n.value)},selectActiveOption(){if(C.activeOptionIndex.value!==null){if(C.virtual.value)S(C.virtual.value.options[C.activeOptionIndex.value]);else{let{dataRef:e}=u.value[C.activeOptionIndex.value];S(e.value)}C.goToOption(Es.Specific,C.activeOptionIndex.value)}},registerOption(e,t){let n=fn({id:e,dataRef:t});if(C.virtual.value){u.value.push(n);return}x&&cancelAnimationFrame(x);let r=m(e=>(e.push(n),e));d.value===null&&C.isSelected(t.value.value)&&(r.activeOptionIndex=r.options.indexOf(n)),u.value=r.options,d.value=r.activeOptionIndex,f.value=2,r.options.some(e=>!G(e.dataRef.domRef))&&(x=requestAnimationFrame(()=>{let e=m();u.value=e.options,d.value=e.activeOptionIndex}))},unregisterOption(e,t){if(b!==null&&cancelAnimationFrame(b),t&&(p.value=!0),C.virtual.value){u.value=u.value.filter(t=>t.id!==e);return}let n=m(t=>{let n=t.findIndex(t=>t.id===e);return n!==-1&&t.splice(n,1),t});u.value=n.options,d.value=n.activeOptionIndex,f.value=2},isSelected(e){return No(h.value,{0:()=>C.compare(bn(C.value.value),bn(e)),1:()=>bn(C.value.value).some(t=>C.compare(bn(t),bn(e)))})},isActive(e){return d.value===C.calculateIndex(e)}};Qo([o,s,c],()=>C.closeCombobox(),U(()=>i.value===0)),dr(js,C),_s(U(()=>No(i.value,{0:ys.Open,1:ys.Closed})));let w=U(()=>G(o)?.closest(`form`));return Hi(()=>{mr([w],()=>{if(!w.value||e.defaultValue===void 0)return;function t(){C.change(e.defaultValue)}return w.value.addEventListener(`reset`,t),()=>{var e;(e=w.value)==null||e.removeEventListener(`reset`,t)}},{immediate:!0})}),()=>{let{name:r,disabled:a,form:o,...s}=e,c={open:i.value===0,disabled:a,activeIndex:C.activeOptionIndex.value,activeOption:C.activeOptionIndex.value===null?null:C.virtual.value?C.virtual.value.options[C.activeOptionIndex.value??0]:C.options.value[C.activeOptionIndex.value]?.dataRef.value??null,value:y.value};return ci(V,[...r!=null&&y.value!=null?Os({[r]:y.value}).map(([e,t])=>ci(ms,cs({features:ps.Hidden,key:e,as:`input`,type:`hidden`,hidden:!0,readOnly:!0,form:o,disabled:a,name:e,value:t}))):[],os({theirProps:{...n,...ls(s,[`by`,`defaultValue`,`immediate`,`modelValue`,`multiple`,`nullable`,`onUpdate:modelValue`,`virtual`])},ourProps:{},slot:c,slots:t,attrs:n,name:`Combobox`})])}}}),N({name:`ComboboxLabel`,props:{as:{type:[Object,String],default:`label`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n}){let r=e.id??`headlessui-combobox-label-${Ao()}`,i=As(`ComboboxLabel`);function a(){var e;(e=G(i.inputRef))==null||e.focus({preventScroll:!0})}return()=>{let o={open:i.comboboxState.value===0,disabled:i.disabled.value},{...s}=e;return os({ourProps:{id:r,ref:i.labelRef,onClick:a},theirProps:s,slot:o,attrs:t,slots:n,name:`ComboboxLabel`})}}}),N({name:`ComboboxButton`,props:{as:{type:[Object,String],default:`button`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-combobox-button-${Ao()}`,a=As(`ComboboxButton`);r({el:a.buttonRef,$el:a.buttonRef});function o(e){a.disabled.value||(a.comboboxState.value===0?a.closeCombobox():(e.preventDefault(),a.openCombobox()),ar(()=>G(a.inputRef)?.focus({preventScroll:!0})))}function s(e){switch(e.key){case xs.ArrowDown:e.preventDefault(),e.stopPropagation(),a.comboboxState.value===1&&a.openCombobox(),ar(()=>a.inputRef.value?.focus({preventScroll:!0}));return;case xs.ArrowUp:e.preventDefault(),e.stopPropagation(),a.comboboxState.value===1&&(a.openCombobox(),ar(()=>{a.value.value||a.goToOption(Es.Last)})),ar(()=>a.inputRef.value?.focus({preventScroll:!0}));return;case xs.Escape:if(a.comboboxState.value!==0)return;e.preventDefault(),a.optionsRef.value&&!a.optionsPropsRef.value.static&&e.stopPropagation(),a.closeCombobox(),ar(()=>a.inputRef.value?.focus({preventScroll:!0}));return}}let c=es(U(()=>({as:e.as,type:t.type})),a.buttonRef);return()=>{let r={open:a.comboboxState.value===0,disabled:a.disabled.value,value:a.value.value},{...l}=e;return os({ourProps:{ref:a.buttonRef,id:i,type:c.value,tabindex:`-1`,"aria-haspopup":`listbox`,"aria-controls":G(a.optionsRef)?.id,"aria-expanded":a.comboboxState.value===0,"aria-labelledby":a.labelRef.value?[G(a.labelRef)?.id,i].join(` `):void 0,disabled:a.disabled.value===!0?!0:void 0,onKeydown:s,onClick:o},theirProps:l,slot:r,attrs:t,slots:n,name:`ComboboxButton`})}}}),N({name:`ComboboxInput`,props:{as:{type:[Object,String],default:`input`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},displayValue:{type:Function},defaultValue:{type:String,default:void 0},id:{type:String,default:null}},emits:{change:e=>!0},setup(e,{emit:t,attrs:n,slots:r,expose:i}){let a=e.id??`headlessui-combobox-input-${Ao()}`,o=As(`ComboboxInput`),s=U(()=>Ro(G(o.inputRef))),c={value:!1};i({el:o.inputRef,$el:o.inputRef});function l(){o.change(null);let e=G(o.optionsRef);e&&(e.scrollTop=0),o.goToOption(Es.Nothing)}let u=U(()=>{let t=o.value.value;return G(o.inputRef)?e.displayValue!==void 0&&t!==void 0?e.displayValue(t)??``:typeof t==`string`?t:``:``});Hi(()=>{mr([u,o.comboboxState,s],([e,t],[n,r])=>{if(c.value)return;let i=G(o.inputRef);i&&((r===0&&t===1||e!==n)&&(i.value=e),requestAnimationFrame(()=>{if(c.value||!i||s.value?.activeElement!==i)return;let{selectionStart:e,selectionEnd:t}=i;Math.abs((t??0)-(e??0))===0&&e===0&&i.setSelectionRange(i.value.length,i.value.length)}))},{immediate:!0}),mr([o.comboboxState],([e],[t])=>{if(e===0&&t===1){if(c.value)return;let e=G(o.inputRef);if(!e)return;let t=e.value,{selectionStart:n,selectionEnd:r,selectionDirection:i}=e;e.value=``,e.value=t,i===null?e.setSelectionRange(n,r):e.setSelectionRange(n,r,i)}})});let d=A(!1);function f(){d.value=!0}function p(){Do().nextFrame(()=>{d.value=!1})}let m=Vie();function h(e){switch(c.value=!0,m(()=>{c.value=!1}),e.key){case xs.Enter:if(c.value=!1,o.comboboxState.value!==0||d.value)return;if(e.preventDefault(),e.stopPropagation(),o.activeOptionIndex.value===null){o.closeCombobox();return}o.selectActiveOption(),o.mode.value===0&&o.closeCombobox();break;case xs.ArrowDown:return c.value=!1,e.preventDefault(),e.stopPropagation(),No(o.comboboxState.value,{0:()=>o.goToOption(Es.Next),1:()=>o.openCombobox()});case xs.ArrowUp:return c.value=!1,e.preventDefault(),e.stopPropagation(),No(o.comboboxState.value,{0:()=>o.goToOption(Es.Previous),1:()=>{o.openCombobox(),ar(()=>{o.value.value||o.goToOption(Es.Last)})}});case xs.Home:if(e.shiftKey)break;return c.value=!1,e.preventDefault(),e.stopPropagation(),o.goToOption(Es.First);case xs.PageUp:return c.value=!1,e.preventDefault(),e.stopPropagation(),o.goToOption(Es.First);case xs.End:if(e.shiftKey)break;return c.value=!1,e.preventDefault(),e.stopPropagation(),o.goToOption(Es.Last);case xs.PageDown:return c.value=!1,e.preventDefault(),e.stopPropagation(),o.goToOption(Es.Last);case xs.Escape:if(c.value=!1,o.comboboxState.value!==0)return;e.preventDefault(),o.optionsRef.value&&!o.optionsPropsRef.value.static&&e.stopPropagation(),o.nullable.value&&o.mode.value===0&&o.value.value===null&&l(),o.closeCombobox();break;case xs.Tab:if(c.value=!1,o.comboboxState.value!==0)return;o.mode.value===0&&o.activationTrigger.value!==1&&o.selectActiveOption(),o.closeCombobox();break}}function g(e){t(`change`,e),o.nullable.value&&o.mode.value===0&&e.target.value===``&&l(),o.openCombobox()}function _(e){var t,n;let r=e.relatedTarget??ws.find(t=>t!==e.currentTarget);if(c.value=!1,!((t=G(o.optionsRef))!=null&&t.contains(r))&&!((n=G(o.buttonRef))!=null&&n.contains(r))&&o.comboboxState.value===0)return e.preventDefault(),o.mode.value===0&&(o.nullable.value&&o.value.value===null?l():o.activationTrigger.value!==1&&o.selectActiveOption()),o.closeCombobox()}function v(e){var t,n;let r=e.relatedTarget??ws.find(t=>t!==e.currentTarget);(t=G(o.buttonRef))!=null&&t.contains(r)||(n=G(o.optionsRef))!=null&&n.contains(r)||o.disabled.value||o.immediate.value&&o.comboboxState.value!==0&&(o.openCombobox(),Do().nextFrame(()=>{o.setActivationTrigger(1)}))}let y=U(()=>e.defaultValue??(o.defaultValue.value===void 0?null:e.displayValue?.call(e,o.defaultValue.value))??o.defaultValue.value??``);return()=>{let t={open:o.comboboxState.value===0},{displayValue:i,onChange:s,...c}=e;return os({ourProps:{"aria-controls":o.optionsRef.value?.id,"aria-expanded":o.comboboxState.value===0,"aria-activedescendant":o.activeOptionIndex.value===null?void 0:o.virtual.value?o.options.value.find(e=>!o.virtual.value.disabled(e.dataRef.value)&&o.compare(e.dataRef.value,o.virtual.value.options[o.activeOptionIndex.value]))?.id:o.options.value[o.activeOptionIndex.value]?.id,"aria-labelledby":G(o.labelRef)?.id??G(o.buttonRef)?.id,"aria-autocomplete":`list`,id:a,onCompositionstart:f,onCompositionend:p,onKeydown:h,onInput:g,onFocus:v,onBlur:_,role:`combobox`,type:n.type??`text`,tabIndex:0,ref:o.inputRef,defaultValue:y.value,disabled:o.disabled.value===!0?!0:void 0},theirProps:c,slot:t,attrs:n,slots:r,features:us.RenderStrategy|us.Static,name:`ComboboxInput`})}}}),N({name:`ComboboxOptions`,props:{as:{type:[Object,String],default:`ul`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},hold:{type:[Boolean],default:!1}},setup(e,{attrs:t,slots:n,expose:r}){let i=As(`ComboboxOptions`),a=`headlessui-combobox-options-${Ao()}`;r({el:i.optionsRef,$el:i.optionsRef}),pr(()=>{i.optionsPropsRef.value.static=e.static}),pr(()=>{i.optionsPropsRef.value.hold=e.hold});let o=gs(),s=U(()=>o===null?i.comboboxState.value===0:(o.value&ys.Open)===ys.Open);is({container:U(()=>G(i.optionsRef)),enabled:U(()=>i.comboboxState.value===0),accept(e){return e.getAttribute(`role`)===`option`?NodeFilter.FILTER_REJECT:e.hasAttribute(`role`)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute(`role`,`none`)}});function c(e){e.preventDefault()}return()=>{let r={open:i.comboboxState.value===0};return os({ourProps:{"aria-labelledby":G(i.labelRef)?.id??G(i.buttonRef)?.id,id:a,ref:i.optionsRef,role:`listbox`,"aria-multiselectable":i.mode.value===1?!0:void 0,onMousedown:c},theirProps:ls(e,[`hold`]),slot:r,attrs:t,slots:i.virtual.value&&i.comboboxState.value===0?{...n,default:()=>[ci(wae,{},n.default)]}:n,features:us.RenderStrategy|us.Static,visible:s.value,name:`ComboboxOptions`})}}}),N({name:`ComboboxOption`,props:{as:{type:[Object,String],default:`li`},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},order:{type:[Number],default:null}},setup(e,{slots:t,attrs:n,expose:r}){let i=As(`ComboboxOption`),a=`headlessui-combobox-option-${Ao()}`,o=A(null),s=U(()=>e.disabled);r({el:o,$el:o});let c=U(()=>i.virtual.value?i.activeOptionIndex.value===i.calculateIndex(e.value):i.activeOptionIndex.value===null?!1:i.options.value[i.activeOptionIndex.value]?.id===a),l=U(()=>i.isSelected(e.value)),u=fr(Ms,null),d=U(()=>({disabled:e.disabled,value:e.value,domRef:o,order:U(()=>e.order)}));Hi(()=>i.registerOption(a,d)),Gi(()=>i.unregisterOption(a,c.value)),pr(()=>{let e=G(o);e&&u?.value.measureElement(e)}),pr(()=>{i.comboboxState.value===0&&c.value&&(i.virtual.value||i.activationTrigger.value!==0&&ar(()=>{var e;return((e=G(o))?.scrollIntoView)?.call(e,{block:`nearest`})}))});function f(e){e.preventDefault(),e.button===Cs.Left&&(s.value||(i.selectOption(a),nae()||requestAnimationFrame(()=>G(i.inputRef)?.focus({preventScroll:!0})),i.mode.value===0&&i.closeCombobox()))}function p(){var t;if(e.disabled||(t=i.virtual.value)!=null&&t.disabled(e.value))return i.goToOption(Es.Nothing);let n=i.calculateIndex(e.value);i.goToOption(Es.Specific,n)}let m=ns();function h(e){m.update(e)}function g(t){var n;if(!m.wasMoved(t)||e.disabled||(n=i.virtual.value)!=null&&n.disabled(e.value)||c.value)return;let r=i.calculateIndex(e.value);i.goToOption(Es.Specific,r,0)}function _(t){var n;m.wasMoved(t)&&(e.disabled||(n=i.virtual.value)!=null&&n.disabled(e.value)||c.value&&(i.optionsPropsRef.value.hold||i.goToOption(Es.Nothing)))}return()=>{let{disabled:r}=e,i={active:c.value,selected:l.value,disabled:r};return os({ourProps:{id:a,ref:o,role:`option`,tabIndex:r===!0?void 0:-1,"aria-disabled":r===!0?!0:void 0,"aria-selected":l.value,disabled:void 0,onMousedown:f,onFocus:p,onPointerenter:h,onMouseenter:h,onPointermove:g,onMousemove:g,onPointerleave:_,onMouseleave:_},theirProps:ls(e,[`order`,`value`]),slot:i,attrs:n,slots:t,name:`ComboboxOption`})}}})}));function Ns(e,t,n,r){Io.isServer||pr(i=>{e??=window,e.addEventListener(t,n,r),i(()=>e.removeEventListener(t,n,r))})}var Ps=s((()=>{W(),Lo()}));function Fs(){let e=A(0);return iae(`keydown`,t=>{t.key===`Tab`&&(e.value=t.shiftKey?1:0)}),e}var Is,Eae=s((()=>{W(),aae(),Is=(e=>(e[e.Forwards=0]=`Forwards`,e[e.Backwards=1]=`Backwards`,e))(Is||{})}));function Dae(e){if(!e)return new Set;if(typeof e==`function`)return new Set(e());let t=new Set;for(let n of e.value){let e=G(n);e instanceof HTMLElement&&t.add(e)}return t}function Oae(e){let t=A(ws.slice());return mr([e],([e],[n])=>{n===!0&&e===!1?To(()=>{t.value.splice(0)}):n===!1&&e===!0&&(t.value=ws.slice())},{flush:`post`}),()=>t.value.find(e=>e!=null&&e.isConnected)??null}function kae({ownerDocument:e},t){let n=Oae(t);Hi(()=>{pr(()=>{t.value||e.value?.activeElement===e.value?.body&&Ho(n())},{flush:`post`})}),Gi(()=>{t.value&&Ho(n())})}function Aae({ownerDocument:e,container:t,initialFocus:n},r){let i=A(null),a=A(!1);return Hi(()=>a.value=!0),Gi(()=>a.value=!1),Hi(()=>{mr([t,n,r],(o,s)=>{if(o.every((e,t)=>s?.[t]===e)||!r.value)return;let c=G(t);c&&To(()=>{if(!a.value)return;let t=G(n),r=e.value?.activeElement;if(t){if(t===r){i.value=r;return}}else if(c.contains(r)){i.value=r;return}t?Ho(t):Wo(c,Ko.First|Ko.NoScroll)===qo.Error&&console.warn(`There are no focusable elements inside the `),i.value=e.value?.activeElement})},{immediate:!0,flush:`post`})}),i}function jae({ownerDocument:e,container:t,containers:n,previousActiveElement:r},i){Ns(e.value?.defaultView,`focus`,e=>{if(!i.value)return;let a=Dae(n);G(t)instanceof HTMLElement&&a.add(G(t));let o=r.value;if(!o)return;let s=e.target;s&&s instanceof HTMLElement?Mae(a,s)?(r.value=s,Ho(s)):(e.preventDefault(),e.stopPropagation(),Ho(o)):Ho(r.value)},!0)}function Mae(e,t){for(let n of e)if(n.contains(t))return!0;return!1}var Ls,Rs,Nae=s((()=>{W(),Ps(),Eae(),hs(),hae(),Mo(),Yo(),Po(),Eo(),zo(),fs(),Ls=(e=>(e[e.None=1]=`None`,e[e.InitialFocus=2]=`InitialFocus`,e[e.TabLock=4]=`TabLock`,e[e.FocusLock=8]=`FocusLock`,e[e.RestoreFocus=16]=`RestoreFocus`,e[e.All=30]=`All`,e))(Ls||{}),Rs=Object.assign(N({name:`FocusTrap`,props:{as:{type:[Object,String],default:`div`},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:A(new Set)}},inheritAttrs:!1,setup(e,{attrs:t,slots:n,expose:r}){let i=A(null);r({el:i,$el:i});let a=U(()=>Ro(i)),o=A(!1);Hi(()=>o.value=!0),Gi(()=>o.value=!1),kae({ownerDocument:a},U(()=>o.value&&!!(e.features&16)));let s=Aae({ownerDocument:a,container:i,initialFocus:U(()=>e.initialFocus)},U(()=>o.value&&!!(e.features&2)));jae({ownerDocument:a,container:i,containers:e.containers,previousActiveElement:s},U(()=>o.value&&!!(e.features&8)));let c=Fs();function l(e){let t=G(i);t&&(e=>e())(()=>{No(c.value,{[Is.Forwards]:()=>{Wo(t,Ko.First,{skipElements:[e.relatedTarget]})},[Is.Backwards]:()=>{Wo(t,Ko.Last,{skipElements:[e.relatedTarget]})}})})}let u=A(!1);function d(e){e.key===`Tab`&&(u.value=!0,requestAnimationFrame(()=>{u.value=!1}))}function f(t){if(!o.value)return;let n=Dae(e.containers);G(i)instanceof HTMLElement&&n.add(G(i));let r=t.relatedTarget;r instanceof HTMLElement&&r.dataset.headlessuiFocusGuard!==`true`&&(Mae(n,r)||(u.value?Wo(G(i),No(c.value,{[Is.Forwards]:()=>Ko.Next,[Is.Backwards]:()=>Ko.Previous})|Ko.WrapAround,{relativeTo:t.target}):t.target instanceof HTMLElement&&Ho(t.target)))}return()=>{let r={},a={ref:i,onKeydown:d,onFocusout:f},{features:o,initialFocus:s,containers:c,...u}=e;return ci(V,[!!(o&4)&&ci(ms,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:l,features:ps.Focusable}),os({ourProps:a,theirProps:{...t,...u},slot:r,attrs:t,slots:n,name:`FocusTrap`}),!!(o&4)&&ci(ms,{as:`button`,type:`button`,"data-headlessui-focus-guard":!0,onFocus:l,features:ps.Focusable})])}}}),{features:Ls})}));function Pae(e){let t=Sn(e.getSnapshot());return Gi(e.subscribe(()=>{t.value=e.getSnapshot()})),t}var Fae=s((()=>{W()}));function Iae(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(e){return r.add(e),()=>r.delete(e)},dispatch(e,...i){let a=t[e].call(n,...i);a&&(n=a,r.forEach(e=>e()))}}}var Lae=s((()=>{}));function Rae(){let e;return{before({doc:t}){let n=t.documentElement;e=(t.defaultView??window).innerWidth-n.clientWidth},after({doc:t,d:n}){let r=t.documentElement,i=r.clientWidth-r.offsetWidth,a=e-i;n.style(r,`paddingRight`,`${a}px`)}}}var zae=s((()=>{}));function Bae(){return eae()?{before({doc:e,d:t,meta:n}){function r(e){return n.containers.flatMap(e=>e()).some(t=>t.contains(e))}t.microTask(()=>{if(window.getComputedStyle(e.documentElement).scrollBehavior!==`auto`){let n=Do();n.style(e.documentElement,`scrollBehavior`,`auto`),t.add(()=>t.microTask(()=>n.dispose()))}let n=window.scrollY??window.pageYOffset,i=null;t.addEventListener(e,`click`,t=>{if(t.target instanceof HTMLElement)try{let n=t.target.closest(`a`);if(!n)return;let{hash:a}=new URL(n.href),o=e.querySelector(a);o&&!r(o)&&(i=o)}catch{}},!0),t.addEventListener(e,`touchstart`,e=>{if(e.target instanceof HTMLElement)if(r(e.target)){let n=e.target;for(;n.parentElement&&r(n.parentElement);)n=n.parentElement;t.style(n,`overscrollBehavior`,`contain`)}else t.style(e.target,`touchAction`,`none`)}),t.addEventListener(e,`touchmove`,e=>{if(e.target instanceof HTMLElement){if(e.target.tagName===`INPUT`)return;if(r(e.target)){let t=e.target;for(;t.parentElement&&t.dataset.headlessuiPortal!==``&&!(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth);)t=t.parentElement;t.dataset.headlessuiPortal===``&&e.preventDefault()}else e.preventDefault()}},{passive:!1}),t.add(()=>{n!==(window.scrollY??window.pageYOffset)&&window.scrollTo(0,n),i&&i.isConnected&&(i.scrollIntoView({block:`nearest`}),i=null)})})}}:{}}var Vae=s((()=>{Oo(),Xo()}));function Hae(){return{before({doc:e,d:t}){t.style(e.documentElement,`overflow`,`hidden`)}}}var Uae=s((()=>{}));function Wae(e){let t={};for(let n of e)Object.assign(t,n(t));return t}var zs,Gae=s((()=>{Oo(),Lae(),zae(),Vae(),Uae(),zs=Iae(()=>new Map,{PUSH(e,t){let n=this.get(e)??{doc:e,count:0,d:Do(),meta:new Set};return n.count++,n.meta.add(t),this.set(e,n),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t)),this},SCROLL_PREVENT({doc:e,d:t,meta:n}){let r={doc:e,d:t,meta:Wae(n)},i=[Bae(),Rae(),Hae()];i.forEach(({before:e})=>e?.(r)),i.forEach(({after:e})=>e?.(r))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}}),zs.subscribe(()=>{let e=zs.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let e=t.get(n.doc)===`hidden`,r=n.count!==0;(r&&!e||!r&&e)&&zs.dispatch(n.count>0?`SCROLL_PREVENT`:`SCROLL_ALLOW`,n),n.count===0&&zs.dispatch(`TEARDOWN`,n)}})}));function Kae(e,t,n){let r=Pae(zs),i=U(()=>{let t=e.value?r.value.get(e.value):void 0;return t?t.count>0:!1});return mr([e,t],([e,t],[r],i)=>{if(!e||!t)return;zs.dispatch(`PUSH`,e,n);let a=!1;i(()=>{a||=(zs.dispatch(`POP`,r??e,n),!0)})},{immediate:!0}),i}var qae=s((()=>{W(),Fae(),Gae()}));function Jae(e,t=A(!0)){pr(n=>{if(!t.value)return;let r=G(e);if(!r)return;n(function(){if(!r)return;let e=Vs.get(r)??1;if(e===1?Vs.delete(r):Vs.set(r,e-1),e!==1)return;let t=Bs.get(r);t&&(t[`aria-hidden`]===null?r.removeAttribute(`aria-hidden`):r.setAttribute(`aria-hidden`,t[`aria-hidden`]),r.inert=t.inert,Bs.delete(r))});let i=Vs.get(r)??0;Vs.set(r,i+1),i===0&&(Bs.set(r,{"aria-hidden":r.getAttribute(`aria-hidden`),inert:r.inert}),r.setAttribute(`aria-hidden`,`true`),r.inert=!0)})}var Bs,Vs,Yae=s((()=>{W(),Mo(),Bs=new Map,Vs=new Map}));function Xae({defaultContainers:e=[],portals:t,mainTreeNodeRef:n}={}){let r=A(null),i=Ro(r);function a(){let n=[];for(let t of e)t!==null&&(t instanceof HTMLElement?n.push(t):`value`in t&&t.value instanceof HTMLElement&&n.push(t.value));if(t!=null&&t.value)for(let e of t.value)n.push(e);for(let e of i?.querySelectorAll(`html > *, body > *`)??[])e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e.id!==`headlessui-portal-root`&&(e.contains(G(r))||e.contains(G(r)?.getRootNode()?.host)||n.some(t=>e.contains(t))||n.push(e));return n}return{resolveContainers:a,contains(e){return a().some(t=>t.contains(e))},mainTreeNodeRef:r,MainTreeNode(){return n==null?ci(ms,{features:ps.Hidden,ref:r}):null}}}function Zae(){let e=A(null);return{mainTreeNodeRef:e,MainTreeNode(){return ci(ms,{features:ps.Hidden,ref:e})}}}var Qae=s((()=>{W(),hs(),Mo(),zo()}));function $ae(){return fr(Hs,!1)}var Hs,Us,eoe=s((()=>{W(),fs(),Hs=Symbol(`ForcePortalRootContext`),Us=N({name:`ForcePortalRoot`,props:{as:{type:[Object,String],default:`template`},force:{type:Boolean,default:!1}},setup(e,{slots:t,attrs:n}){return dr(Hs,e.force),()=>{let{force:r,...i}=e;return os({theirProps:i,ourProps:{},slot:{},slots:t,attrs:n,name:`ForcePortalRoot`})}}})}));function toe(){return fr(Ws,()=>{})}function noe({type:e,enabled:t,element:n,onUpdate:r}){let i=toe();function a(...e){r?.(...e),i(...e)}Hi(()=>{mr(t,(t,r)=>{t?a(0,e,n):r===!0&&a(1,e,n)},{immediate:!0,flush:`sync`})}),Gi(()=>{t.value&&a(1,e,n)}),dr(Ws,a)}var Ws,Gs,roe=s((()=>{W(),Ws=Symbol(`StackContext`),Gs=(e=>(e[e.Add=0]=`Add`,e[e.Remove=1]=`Remove`,e))(Gs||{})}));function ioe(){let e=fr(qs,null);if(e===null)throw Error(`Missing parent`);return e}function Ks({slot:e=A({}),name:t=`Description`,props:n={}}={}){let r=A([]);function i(e){return r.value.push(e),()=>{let t=r.value.indexOf(e);t!==-1&&r.value.splice(t,1)}}return dr(qs,{register:i,slot:e,name:t,props:n}),U(()=>r.value.length>0?r.value.join(` `):void 0)}var qs,Js=s((()=>{W(),jo(),fs(),qs=Symbol(`DescriptionContext`),N({name:`Description`,props:{as:{type:[Object,String],default:`p`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n}){let r=e.id??`headlessui-description-${Ao()}`,i=ioe();return Hi(()=>Gi(i.register(r))),()=>{let{name:a=`Description`,slot:o=A({}),props:s={}}=i,{...c}=e;return os({ourProps:{...Object.entries(s).reduce((e,[t,n])=>Object.assign(e,{[t]:j(n)}),{}),id:r},theirProps:c,slot:o.value,attrs:t,slots:n,name:a})}}})}));function aoe(e){let t=Ro(e);if(!t){if(e===null)return null;throw Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`)}let n=t.getElementById(`headlessui-portal-root`);if(n)return n;let r=t.createElement(`div`);return r.setAttribute(`id`,`headlessui-portal-root`),t.body.appendChild(r)}function ooe(e){return Ys.get(e)??0}function soe(e,t){let n=t(ooe(e));return n<=0?Ys.delete(e):Ys.set(e,n),n}function coe(){let e=fr(Zs,null),t=A([]);function n(n){return t.value.push(n),e&&e.register(n),()=>r(n)}function r(n){let r=t.value.indexOf(n);r!==-1&&t.value.splice(r,1),e&&e.unregister(n)}let i={register:n,unregister:r,portals:t};return[t,N({name:`PortalWrapper`,setup(e,{slots:t}){return dr(Zs,i),()=>t.default?.call(t)}})]}var Ys,Xs,Zs,Qs,loe,uoe=s((()=>{W(),eoe(),Mo(),zo(),fs(),Ys=new WeakMap,Xs=N({name:`Portal`,props:{as:{type:[Object,String],default:`div`}},setup(e,{slots:t,attrs:n}){let r=A(null),i=U(()=>Ro(r)),a=$ae(),o=fr(Qs,null),s=A(a===!0||o==null?aoe(r.value):o.resolveTarget());s.value&&soe(s.value,e=>e+1);let c=A(!1);Hi(()=>{c.value=!0}),pr(()=>{a||o!=null&&(s.value=o.resolveTarget())});let l=fr(Zs,null),u=!1,d=ba();return mr(r,()=>{if(u||!l)return;let e=G(r);e&&(Gi(l.register(e),d),u=!0)}),Gi(()=>{var e;let t=i.value?.getElementById(`headlessui-portal-root`);!t||s.value!==t||soe(s.value,e=>e-1)||s.value.children.length>0||(e=s.value.parentElement)==null||e.removeChild(s.value)}),()=>{if(!c.value||s.value===null)return null;let i={ref:r,"data-headlessui-portal":``};return ci(Di,{to:s.value},os({ourProps:i,theirProps:e,slot:{},attrs:n,slots:t,name:`Portal`}))}}}),Zs=Symbol(`PortalParentContext`),Qs=Symbol(`PortalGroupContext`),loe=N({name:`PortalGroup`,props:{as:{type:[Object,String],default:`template`},target:{type:Object,default:null}},setup(e,{attrs:t,slots:n}){return dr(Qs,fn({resolveTarget(){return e.target}})),()=>{let{target:r,...i}=e;return os({theirProps:i,ourProps:{},slot:{},attrs:t,slots:n,name:`PortalGroup`})}}})}));function $s(e){let t=fr(ec,null);if(t===null){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,$s),t}return t}var doe,ec,tc,foe,poe,moe,hoe=s((()=>{W(),Nae(),qae(),Ps(),jo(),Yae(),$o(),Qae(),bs(),eoe(),roe(),Ss(),Mo(),Po(),zo(),fs(),Js(),uoe(),doe=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(doe||{}),ec=Symbol(`DialogContext`),tc=`DC8F892D-2EBD-447C-A4C8-A03058436FF4`,foe=N({name:`Dialog`,inheritAttrs:!1,props:{as:{type:[Object,String],default:`div`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:tc},initialFocus:{type:Object,default:null},id:{type:String,default:null},role:{type:String,default:`dialog`}},emits:{close:e=>!0},setup(e,{emit:t,attrs:n,slots:r,expose:i}){let a=e.id??`headlessui-dialog-${Ao()}`,o=A(!1);Hi(()=>{o.value=!0});let s=!1,c=U(()=>e.role===`dialog`||e.role===`alertdialog`?e.role:(s||(s=!0,console.warn(`Invalid role [${c}] passed to . Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),`dialog`)),l=A(0),u=gs(),d=U(()=>e.open===tc&&u!==null?(u.value&ys.Open)===ys.Open:e.open),f=A(null),p=U(()=>Ro(f));if(i({el:f,$el:f}),!(e.open!==tc||u!==null))throw Error("You forgot to provide an `open` prop to the `Dialog`.");if(typeof d.value!=`boolean`)throw Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${d.value===tc?void 0:e.open}`);let m=U(()=>o.value&&d.value?0:1),h=U(()=>m.value===0),g=U(()=>l.value>1),_=fr(ec,null)!==null,[v,y]=coe(),{resolveContainers:b,mainTreeNodeRef:x,MainTreeNode:S}=Xae({portals:v,defaultContainers:[U(()=>T.panelRef.value??f.value)]}),C=U(()=>g.value?`parent`:`leaf`),w=U(()=>u===null?!1:(u.value&ys.Closing)===ys.Closing),ee=U(()=>_||w.value?!1:h.value);Jae(U(()=>Array.from(p.value?.querySelectorAll(`body > *`)??[]).find(e=>e.id===`headlessui-portal-root`?!1:e.contains(G(x))&&e instanceof HTMLElement)??null),ee);let te=U(()=>g.value?!0:h.value);Jae(U(()=>Array.from(p.value?.querySelectorAll(`[data-headlessui-portal]`)??[]).find(e=>e.contains(G(x))&&e instanceof HTMLElement)??null),te),noe({type:`Dialog`,enabled:U(()=>m.value===0),element:f,onUpdate:(e,t)=>{if(t===`Dialog`)return No(e,{[Gs.Add]:()=>l.value+=1,[Gs.Remove]:()=>--l.value})}});let ne=Ks({name:`DialogDescription`,slot:U(()=>({open:d.value}))}),re=A(null),T={titleId:re,panelRef:A(null),dialogState:m,setTitleId(e){re.value!==e&&(re.value=e)},close(){t(`close`,!1)}};dr(ec,T),Qo(b,(e,t)=>{e.preventDefault(),T.close(),ar(()=>t?.focus())},U(()=>!(!h.value||g.value)));let ie=U(()=>!(g.value||m.value!==0));return Ns(p.value?.defaultView,`keydown`,e=>{ie.value&&(e.defaultPrevented||e.key===xs.Escape&&(e.preventDefault(),e.stopPropagation(),T.close()))}),Kae(p,U(()=>!(w.value||m.value!==0||_)),e=>({containers:[...e.containers??[],b]})),pr(e=>{if(m.value!==0)return;let t=G(f);if(!t)return;let n=new ResizeObserver(e=>{for(let t of e){let e=t.target.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&T.close()}});n.observe(t),e(()=>n.disconnect())}),()=>{let{open:t,initialFocus:i,...o}=e,s={...n,ref:f,id:a,role:c.value,"aria-modal":m.value===0?!0:void 0,"aria-labelledby":re.value,"aria-describedby":ne.value},l={open:m.value===0};return ci(Us,{force:!0},()=>[ci(Xs,()=>ci(loe,{target:f.value},()=>ci(Us,{force:!1},()=>ci(Rs,{initialFocus:i,containers:b,features:h.value?No(C.value,{parent:Rs.features.RestoreFocus,leaf:Rs.features.All&~Rs.features.FocusLock}):Rs.features.None},()=>ci(y,{},()=>os({ourProps:s,theirProps:{...o,...n},slot:l,attrs:n,slots:r,visible:m.value===0,features:us.RenderStrategy|us.Static,name:`Dialog`})))))),ci(S)])}}}),N({name:`DialogOverlay`,props:{as:{type:[Object,String],default:`div`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n}){let r=e.id??`headlessui-dialog-overlay-${Ao()}`,i=$s(`DialogOverlay`);function a(e){e.target===e.currentTarget&&(e.preventDefault(),e.stopPropagation(),i.close())}return()=>{let{...o}=e;return os({ourProps:{id:r,"aria-hidden":!0,onClick:a},theirProps:o,slot:{open:i.dialogState.value===0},attrs:t,slots:n,name:`DialogOverlay`})}}}),N({name:`DialogBackdrop`,props:{as:{type:[Object,String],default:`div`},id:{type:String,default:null}},inheritAttrs:!1,setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-dialog-backdrop-${Ao()}`,a=$s(`DialogBackdrop`),o=A(null);return r({el:o,$el:o}),Hi(()=>{if(a.panelRef.value===null)throw Error(`A component is being used, but a component is missing.`)}),()=>{let{...r}=e,s={id:i,ref:o,"aria-hidden":!0};return ci(Us,{force:!0},()=>ci(Xs,()=>os({ourProps:s,theirProps:{...t,...r},slot:{open:a.dialogState.value===0},attrs:t,slots:n,name:`DialogBackdrop`})))}}}),poe=N({name:`DialogPanel`,props:{as:{type:[Object,String],default:`div`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-dialog-panel-${Ao()}`,a=$s(`DialogPanel`);r({el:a.panelRef,$el:a.panelRef});function o(e){e.stopPropagation()}return()=>{let{...r}=e;return os({ourProps:{id:i,ref:a.panelRef,onClick:o},theirProps:r,slot:{open:a.dialogState.value===0},attrs:t,slots:n,name:`DialogPanel`})}}}),moe=N({name:`DialogTitle`,props:{as:{type:[Object,String],default:`h2`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n}){let r=e.id??`headlessui-dialog-title-${Ao()}`,i=$s(`DialogTitle`);return Hi(()=>{i.setTitleId(r),Gi(()=>i.setTitleId(null))}),()=>{let{...a}=e;return os({ourProps:{id:r},theirProps:a,slot:{open:i.dialogState.value===0},attrs:t,slots:n,name:`DialogTitle`})}}})}));function nc(e){let t=fr(rc,null);if(t===null){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,nc),t}return t}function goe(){return fr(ic,null)}var _oe,rc,ic,ac,oc,sc,voe=s((()=>{W(),jo(),ts(),bs(),Ss(),Mo(),Po(),fs(),_oe=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(_oe||{}),rc=Symbol(`DisclosureContext`),ic=Symbol(`DisclosurePanelContext`),ac=N({name:`Disclosure`,props:{as:{type:[Object,String],default:`template`},defaultOpen:{type:[Boolean],default:!1}},setup(e,{slots:t,attrs:n}){let r=A(e.defaultOpen?0:1),i=A(null),a=A(null),o={buttonId:A(`headlessui-disclosure-button-${Ao()}`),panelId:A(`headlessui-disclosure-panel-${Ao()}`),disclosureState:r,panel:i,button:a,toggleDisclosure(){r.value=No(r.value,{0:1,1:0})},closeDisclosure(){r.value!==1&&(r.value=1)},close(e){o.closeDisclosure(),(e?e instanceof HTMLElement?e:e.value instanceof HTMLElement?G(e):G(o.button):G(o.button))?.focus()}};return dr(rc,o),_s(U(()=>No(r.value,{0:ys.Open,1:ys.Closed}))),()=>{let{defaultOpen:i,...a}=e;return os({theirProps:a,ourProps:{},slot:{open:r.value===0,close:o.close},slots:t,attrs:n,name:`Disclosure`})}}}),oc=N({name:`DisclosureButton`,props:{as:{type:[Object,String],default:`button`},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=nc(`DisclosureButton`),a=goe(),o=U(()=>a===null?!1:a.value===i.panelId.value);Hi(()=>{o.value||e.id!==null&&(i.buttonId.value=e.id)}),Gi(()=>{o.value||(i.buttonId.value=null)});let s=A(null);r({el:s,$el:s}),o.value||pr(()=>{i.button.value=s.value});let c=es(U(()=>({as:e.as,type:t.type})),s);function l(){var t;e.disabled||(o.value?(i.toggleDisclosure(),(t=G(i.button))==null||t.focus()):i.toggleDisclosure())}function u(t){var n;if(!e.disabled)if(o.value)switch(t.key){case xs.Space:case xs.Enter:t.preventDefault(),t.stopPropagation(),i.toggleDisclosure(),(n=G(i.button))==null||n.focus();break}else switch(t.key){case xs.Space:case xs.Enter:t.preventDefault(),t.stopPropagation(),i.toggleDisclosure();break}}function d(e){switch(e.key){case xs.Space:e.preventDefault();break}}return()=>{let r={open:i.disclosureState.value===0},{id:a,...f}=e;return os({ourProps:o.value?{ref:s,type:c.value,onClick:l,onKeydown:u}:{id:i.buttonId.value??a,ref:s,type:c.value,"aria-expanded":i.disclosureState.value===0,"aria-controls":i.disclosureState.value===0||G(i.panel)?i.panelId.value:void 0,disabled:e.disabled?!0:void 0,onClick:l,onKeydown:u,onKeyup:d},theirProps:f,slot:r,attrs:t,slots:n,name:`DisclosureButton`})}}}),sc=N({name:`DisclosurePanel`,props:{as:{type:[Object,String],default:`div`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=nc(`DisclosurePanel`);Hi(()=>{e.id!==null&&(i.panelId.value=e.id)}),Gi(()=>{i.panelId.value=null}),r({el:i.panel,$el:i.panel}),dr(ic,i.panelId);let a=gs(),o=U(()=>a===null?i.disclosureState.value===0:(a.value&ys.Open)===ys.Open);return()=>{let r={open:i.disclosureState.value===0,close:i.close},{id:a,...s}=e;return os({ourProps:{id:i.panelId.value??a,ref:i.panel},theirProps:s,slot:r,attrs:t,slots:n,features:us.RenderStrategy|us.Static,visible:o.value,name:`DisclosurePanel`})}}})}));function yoe(e){let t=e.innerText??``,n=e.cloneNode(!0);if(!(n instanceof HTMLElement))return t;let r=!1;for(let e of n.querySelectorAll(`[hidden],[aria-hidden],[role="img"]`))e.remove(),r=!0;let i=r?n.innerText??``:t;return cc.test(i)&&(i=i.replace(cc,``)),i}function boe(e){let t=e.getAttribute(`aria-label`);if(typeof t==`string`)return t.trim();let n=e.getAttribute(`aria-labelledby`);if(n){let e=n.split(` `).map(e=>{let t=document.getElementById(e);if(t){let e=t.getAttribute(`aria-label`);return typeof e==`string`?e.trim():yoe(t).trim()}return null}).filter(Boolean);if(e.length>0)return e.join(`, `)}return yoe(e).trim()}var cc,xoe=s((()=>{cc=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g}));function Soe(e){let t=A(``),n=A(``);return()=>{let r=G(e);if(!r)return``;let i=r.innerText;if(t.value===i)return n.value;let a=boe(r).trim().toLowerCase();return t.value=i,n.value=a,a}}var Coe=s((()=>{W(),Mo(),xoe()}));function woe(e,t){return e===t}function Toe(e){requestAnimationFrame(()=>requestAnimationFrame(e))}function lc(e){let t=fr(uc,null);if(t===null){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,lc),t}return t}var Eoe,Doe,Ooe,uc,koe,Aoe,joe,Moe,Noe,Poe=s((()=>{W(),wo(),jo(),$o(),ts(),Coe(),rs(),hs(),bs(),Ss(),Ds(),Mo(),Yo(),ks(),Po(),fs(),Eoe=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Eoe||{}),Doe=(e=>(e[e.Single=0]=`Single`,e[e.Multi=1]=`Multi`,e))(Doe||{}),Ooe=(e=>(e[e.Pointer=0]=`Pointer`,e[e.Other=1]=`Other`,e))(Ooe||{}),uc=Symbol(`ListboxContext`),koe=N({name:`Listbox`,emits:{"update:modelValue":e=>!0},props:{as:{type:[Object,String],default:`template`},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>woe},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},multiple:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(e,{slots:t,attrs:n,emit:r}){let i=A(1),a=A(null),o=A(null),s=A(null),c=A([]),l=A(``),u=A(null),d=A(1);function f(e=e=>e){let t=u.value===null?null:c.value[u.value],n=Uo(e(c.value.slice()),e=>G(e.dataRef.domRef)),r=t?n.indexOf(t):null;return r===-1&&(r=null),{options:n,activeOptionIndex:r}}let p=U(()=>e.multiple?1:0),[m,h]=Co(U(()=>e.modelValue),e=>r(`update:modelValue`,e),U(()=>e.defaultValue)),g=U(()=>m.value===void 0?No(p.value,{1:[],0:void 0}):m.value),_={listboxState:i,value:g,mode:p,compare(t,n){if(typeof e.by==`string`){let r=e.by;return t?.[r]===n?.[r]}return e.by(t,n)},orientation:U(()=>e.horizontal?`horizontal`:`vertical`),labelRef:a,buttonRef:o,optionsRef:s,disabled:U(()=>e.disabled),options:c,searchQuery:l,activeOptionIndex:u,activationTrigger:d,closeListbox(){e.disabled||i.value!==1&&(i.value=1,u.value=null)},openListbox(){e.disabled||i.value!==0&&(i.value=0)},goToOption(t,n,r){if(e.disabled||i.value===1)return;let a=f(),o=Ts(t===Es.Specific?{focus:Es.Specific,id:n}:{focus:t},{resolveItems:()=>a.options,resolveActiveIndex:()=>a.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.disabled});l.value=``,u.value=o,d.value=r??1,c.value=a.options},search(t){if(e.disabled||i.value===1)return;let n=l.value===``?1:0;l.value+=t.toLowerCase();let r=(u.value===null?c.value:c.value.slice(u.value+n).concat(c.value.slice(0,u.value+n))).find(e=>e.dataRef.textValue.startsWith(l.value)&&!e.dataRef.disabled),a=r?c.value.indexOf(r):-1;a===-1||a===u.value||(u.value=a,d.value=1)},clearSearch(){e.disabled||i.value!==1&&l.value!==``&&(l.value=``)},registerOption(e,t){let n=f(n=>[...n,{id:e,dataRef:t}]);c.value=n.options,u.value=n.activeOptionIndex},unregisterOption(e){let t=f(t=>{let n=t.findIndex(t=>t.id===e);return n!==-1&&t.splice(n,1),t});c.value=t.options,u.value=t.activeOptionIndex,d.value=1},theirOnChange(t){e.disabled||h(t)},select(t){e.disabled||h(No(p.value,{0:()=>t,1:()=>{let e=bn(_.value.value).slice(),n=bn(t),r=e.findIndex(e=>_.compare(n,bn(e)));return r===-1?e.push(n):e.splice(r,1),e}}))}};Qo([o,s],(e,t)=>{var n;_.closeListbox(),Vo(t,Jo.Loose)||(e.preventDefault(),(n=G(o))==null||n.focus())},U(()=>i.value===0)),dr(uc,_),_s(U(()=>No(i.value,{0:ys.Open,1:ys.Closed})));let v=U(()=>G(o)?.closest(`form`));return Hi(()=>{mr([v],()=>{if(!v.value||e.defaultValue===void 0)return;function t(){_.theirOnChange(e.defaultValue)}return v.value.addEventListener(`reset`,t),()=>{var e;(e=v.value)==null||e.removeEventListener(`reset`,t)}},{immediate:!0})}),()=>{let{name:r,modelValue:a,disabled:o,form:s,...c}=e,l={open:i.value===0,disabled:o,value:g.value};return ci(V,[...r!=null&&g.value!=null?Os({[r]:g.value}).map(([e,t])=>ci(ms,cs({features:ps.Hidden,key:e,as:`input`,type:`hidden`,hidden:!0,readOnly:!0,form:s,disabled:o,name:e,value:t}))):[],os({ourProps:{},theirProps:{...n,...ls(c,[`defaultValue`,`onUpdate:modelValue`,`horizontal`,`multiple`,`by`])},slot:l,slots:t,attrs:n,name:`Listbox`})])}}}),Aoe=N({name:`ListboxLabel`,props:{as:{type:[Object,String],default:`label`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n}){let r=e.id??`headlessui-listbox-label-${Ao()}`,i=lc(`ListboxLabel`);function a(){var e;(e=G(i.buttonRef))==null||e.focus({preventScroll:!0})}return()=>{let o={open:i.listboxState.value===0,disabled:i.disabled.value},{...s}=e;return os({ourProps:{id:r,ref:i.labelRef,onClick:a},theirProps:s,slot:o,attrs:t,slots:n,name:`ListboxLabel`})}}}),joe=N({name:`ListboxButton`,props:{as:{type:[Object,String],default:`button`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-listbox-button-${Ao()}`,a=lc(`ListboxButton`);r({el:a.buttonRef,$el:a.buttonRef});function o(e){switch(e.key){case xs.Space:case xs.Enter:case xs.ArrowDown:e.preventDefault(),a.openListbox(),ar(()=>{var e;(e=G(a.optionsRef))==null||e.focus({preventScroll:!0}),a.value.value||a.goToOption(Es.First)});break;case xs.ArrowUp:e.preventDefault(),a.openListbox(),ar(()=>{var e;(e=G(a.optionsRef))==null||e.focus({preventScroll:!0}),a.value.value||a.goToOption(Es.Last)});break}}function s(e){switch(e.key){case xs.Space:e.preventDefault();break}}function c(e){a.disabled.value||(a.listboxState.value===0?(a.closeListbox(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0}))):(e.preventDefault(),a.openListbox(),Toe(()=>G(a.optionsRef)?.focus({preventScroll:!0}))))}let l=es(U(()=>({as:e.as,type:t.type})),a.buttonRef);return()=>{let r={open:a.listboxState.value===0,disabled:a.disabled.value,value:a.value.value},{...u}=e;return os({ourProps:{ref:a.buttonRef,id:i,type:l.value,"aria-haspopup":`listbox`,"aria-controls":G(a.optionsRef)?.id,"aria-expanded":a.listboxState.value===0,"aria-labelledby":a.labelRef.value?[G(a.labelRef)?.id,i].join(` `):void 0,disabled:a.disabled.value===!0?!0:void 0,onKeydown:o,onKeyup:s,onClick:c},theirProps:u,slot:r,attrs:t,slots:n,name:`ListboxButton`})}}}),Moe=N({name:`ListboxOptions`,props:{as:{type:[Object,String],default:`ul`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-listbox-options-${Ao()}`,a=lc(`ListboxOptions`),o=A(null);r({el:a.optionsRef,$el:a.optionsRef});function s(e){switch(o.value&&clearTimeout(o.value),e.key){case xs.Space:if(a.searchQuery.value!==``)return e.preventDefault(),e.stopPropagation(),a.search(e.key);case xs.Enter:if(e.preventDefault(),e.stopPropagation(),a.activeOptionIndex.value!==null){let e=a.options.value[a.activeOptionIndex.value];a.select(e.dataRef.value)}a.mode.value===0&&(a.closeListbox(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0})));break;case No(a.orientation.value,{vertical:xs.ArrowDown,horizontal:xs.ArrowRight}):return e.preventDefault(),e.stopPropagation(),a.goToOption(Es.Next);case No(a.orientation.value,{vertical:xs.ArrowUp,horizontal:xs.ArrowLeft}):return e.preventDefault(),e.stopPropagation(),a.goToOption(Es.Previous);case xs.Home:case xs.PageUp:return e.preventDefault(),e.stopPropagation(),a.goToOption(Es.First);case xs.End:case xs.PageDown:return e.preventDefault(),e.stopPropagation(),a.goToOption(Es.Last);case xs.Escape:e.preventDefault(),e.stopPropagation(),a.closeListbox(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0}));break;case xs.Tab:e.preventDefault(),e.stopPropagation();break;default:e.key.length===1&&(a.search(e.key),o.value=setTimeout(()=>a.clearSearch(),350));break}}let c=gs(),l=U(()=>c===null?a.listboxState.value===0:(c.value&ys.Open)===ys.Open);return()=>{var r;let o={open:a.listboxState.value===0},{...c}=e;return os({ourProps:{"aria-activedescendant":a.activeOptionIndex.value===null||(r=a.options.value[a.activeOptionIndex.value])==null?void 0:r.id,"aria-multiselectable":a.mode.value===1?!0:void 0,"aria-labelledby":G(a.buttonRef)?.id,"aria-orientation":a.orientation.value,id:i,onKeydown:s,role:`listbox`,tabIndex:0,ref:a.optionsRef},theirProps:c,slot:o,attrs:t,slots:n,features:us.RenderStrategy|us.Static,visible:l.value,name:`ListboxOptions`})}}}),Noe=N({name:`ListboxOption`,props:{as:{type:[Object,String],default:`li`},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(e,{slots:t,attrs:n,expose:r}){let i=e.id??`headlessui-listbox-option-${Ao()}`,a=lc(`ListboxOption`),o=A(null);r({el:o,$el:o});let s=U(()=>a.activeOptionIndex.value===null?!1:a.options.value[a.activeOptionIndex.value].id===i),c=U(()=>No(a.mode.value,{0:()=>a.compare(bn(a.value.value),bn(e.value)),1:()=>bn(a.value.value).some(t=>a.compare(bn(t),bn(e.value)))})),l=U(()=>No(a.mode.value,{1:()=>{let e=bn(a.value.value);return a.options.value.find(t=>e.some(e=>a.compare(bn(e),bn(t.dataRef.value))))?.id===i},0:()=>c.value})),u=Soe(o),d=U(()=>({disabled:e.disabled,value:e.value,get textValue(){return u()},domRef:o}));Hi(()=>a.registerOption(i,d)),Gi(()=>a.unregisterOption(i)),Hi(()=>{mr([a.listboxState,c],()=>{a.listboxState.value===0&&c.value&&No(a.mode.value,{1:()=>{l.value&&a.goToOption(Es.Specific,i)},0:()=>{a.goToOption(Es.Specific,i)}})},{immediate:!0})}),pr(()=>{a.listboxState.value===0&&s.value&&a.activationTrigger.value!==0&&ar(()=>{var e;return((e=G(o))?.scrollIntoView)?.call(e,{block:`nearest`})})});function f(t){if(e.disabled)return t.preventDefault();a.select(e.value),a.mode.value===0&&(a.closeListbox(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0})))}function p(){if(e.disabled)return a.goToOption(Es.Nothing);a.goToOption(Es.Specific,i)}let m=ns();function h(e){m.update(e)}function g(t){m.wasMoved(t)&&(e.disabled||s.value||a.goToOption(Es.Specific,i,0))}function _(t){m.wasMoved(t)&&(e.disabled||s.value&&a.goToOption(Es.Nothing))}return()=>{let{disabled:r}=e,a={active:s.value,selected:c.value,disabled:r},{value:l,disabled:u,...d}=e;return os({ourProps:{id:i,ref:o,role:`option`,tabIndex:r===!0?void 0:-1,"aria-disabled":r===!0?!0:void 0,"aria-selected":c.value,disabled:void 0,onClick:f,onFocus:p,onPointerenter:h,onMouseenter:h,onPointermove:g,onMousemove:g,onPointerleave:_,onMouseleave:_},theirProps:d,slot:a,attrs:n,slots:t,name:`ListboxOption`})}}})}));function Foe(e){requestAnimationFrame(()=>requestAnimationFrame(e))}function dc(e){let t=fr(fc,null);if(t===null){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,dc),t}return t}var Ioe,Loe,fc,Roe,zoe,Boe,Voe,Hoe=s((()=>{W(),jo(),$o(),ts(),Coe(),rs(),as(),bs(),Ss(),Ds(),Mo(),Yo(),Po(),fs(),Ioe=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Ioe||{}),Loe=(e=>(e[e.Pointer=0]=`Pointer`,e[e.Other=1]=`Other`,e))(Loe||{}),fc=Symbol(`MenuContext`),Roe=N({name:`Menu`,props:{as:{type:[Object,String],default:`template`}},setup(e,{slots:t,attrs:n}){let r=A(1),i=A(null),a=A(null),o=A([]),s=A(``),c=A(null),l=A(1);function u(e=e=>e){let t=c.value===null?null:o.value[c.value],n=Uo(e(o.value.slice()),e=>G(e.dataRef.domRef)),r=t?n.indexOf(t):null;return r===-1&&(r=null),{items:n,activeItemIndex:r}}let d={menuState:r,buttonRef:i,itemsRef:a,items:o,searchQuery:s,activeItemIndex:c,activationTrigger:l,closeMenu:()=>{r.value=1,c.value=null},openMenu:()=>r.value=0,goToItem(e,t,n){let r=u(),i=Ts(e===Es.Specific?{focus:Es.Specific,id:t}:{focus:e},{resolveItems:()=>r.items,resolveActiveIndex:()=>r.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.disabled});s.value=``,c.value=i,l.value=n??1,o.value=r.items},search(e){let t=s.value===``?1:0;s.value+=e.toLowerCase();let n=(c.value===null?o.value:o.value.slice(c.value+t).concat(o.value.slice(0,c.value+t))).find(e=>e.dataRef.textValue.startsWith(s.value)&&!e.dataRef.disabled),r=n?o.value.indexOf(n):-1;r===-1||r===c.value||(c.value=r,l.value=1)},clearSearch(){s.value=``},registerItem(e,t){let n=u(n=>[...n,{id:e,dataRef:t}]);o.value=n.items,c.value=n.activeItemIndex,l.value=1},unregisterItem(e){let t=u(t=>{let n=t.findIndex(t=>t.id===e);return n!==-1&&t.splice(n,1),t});o.value=t.items,c.value=t.activeItemIndex,l.value=1}};return Qo([i,a],(e,t)=>{var n;d.closeMenu(),Vo(t,Jo.Loose)||(e.preventDefault(),(n=G(i))==null||n.focus())},U(()=>r.value===0)),dr(fc,d),_s(U(()=>No(r.value,{0:ys.Open,1:ys.Closed}))),()=>os({ourProps:{},theirProps:e,slot:{open:r.value===0,close:d.closeMenu},slots:t,attrs:n,name:`Menu`})}}),zoe=N({name:`MenuButton`,props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:`button`},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-menu-button-${Ao()}`,a=dc(`MenuButton`);r({el:a.buttonRef,$el:a.buttonRef});function o(e){switch(e.key){case xs.Space:case xs.Enter:case xs.ArrowDown:e.preventDefault(),e.stopPropagation(),a.openMenu(),ar(()=>{var e;(e=G(a.itemsRef))==null||e.focus({preventScroll:!0}),a.goToItem(Es.First)});break;case xs.ArrowUp:e.preventDefault(),e.stopPropagation(),a.openMenu(),ar(()=>{var e;(e=G(a.itemsRef))==null||e.focus({preventScroll:!0}),a.goToItem(Es.Last)});break}}function s(e){switch(e.key){case xs.Space:e.preventDefault();break}}function c(t){e.disabled||(a.menuState.value===0?(a.closeMenu(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0}))):(t.preventDefault(),a.openMenu(),Foe(()=>G(a.itemsRef)?.focus({preventScroll:!0}))))}let l=es(U(()=>({as:e.as,type:t.type})),a.buttonRef);return()=>{let r={open:a.menuState.value===0},{...u}=e;return os({ourProps:{ref:a.buttonRef,id:i,type:l.value,"aria-haspopup":`menu`,"aria-controls":G(a.itemsRef)?.id,"aria-expanded":a.menuState.value===0,onKeydown:o,onKeyup:s,onClick:c},theirProps:u,slot:r,attrs:t,slots:n,name:`MenuButton`})}}}),Boe=N({name:`MenuItems`,props:{as:{type:[Object,String],default:`div`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-menu-items-${Ao()}`,a=dc(`MenuItems`),o=A(null);r({el:a.itemsRef,$el:a.itemsRef}),is({container:U(()=>G(a.itemsRef)),enabled:U(()=>a.menuState.value===0),accept(e){return e.getAttribute(`role`)===`menuitem`?NodeFilter.FILTER_REJECT:e.hasAttribute(`role`)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute(`role`,`none`)}});function s(e){var t;switch(o.value&&clearTimeout(o.value),e.key){case xs.Space:if(a.searchQuery.value!==``)return e.preventDefault(),e.stopPropagation(),a.search(e.key);case xs.Enter:if(e.preventDefault(),e.stopPropagation(),a.activeItemIndex.value!==null){let e=a.items.value[a.activeItemIndex.value];(t=G(e.dataRef.domRef))==null||t.click()}a.closeMenu(),Jie(G(a.buttonRef));break;case xs.ArrowDown:return e.preventDefault(),e.stopPropagation(),a.goToItem(Es.Next);case xs.ArrowUp:return e.preventDefault(),e.stopPropagation(),a.goToItem(Es.Previous);case xs.Home:case xs.PageUp:return e.preventDefault(),e.stopPropagation(),a.goToItem(Es.First);case xs.End:case xs.PageDown:return e.preventDefault(),e.stopPropagation(),a.goToItem(Es.Last);case xs.Escape:e.preventDefault(),e.stopPropagation(),a.closeMenu(),ar(()=>G(a.buttonRef)?.focus({preventScroll:!0}));break;case xs.Tab:e.preventDefault(),e.stopPropagation(),a.closeMenu(),ar(()=>Xie(G(a.buttonRef),e.shiftKey?Ko.Previous:Ko.Next));break;default:e.key.length===1&&(a.search(e.key),o.value=setTimeout(()=>a.clearSearch(),350));break}}function c(e){switch(e.key){case xs.Space:e.preventDefault();break}}let l=gs(),u=U(()=>l===null?a.menuState.value===0:(l.value&ys.Open)===ys.Open);return()=>{var r;let o={open:a.menuState.value===0},{...l}=e;return os({ourProps:{"aria-activedescendant":a.activeItemIndex.value===null||(r=a.items.value[a.activeItemIndex.value])==null?void 0:r.id,"aria-labelledby":G(a.buttonRef)?.id,id:i,onKeydown:s,onKeyup:c,role:`menu`,tabIndex:0,ref:a.itemsRef},theirProps:l,slot:o,attrs:t,slots:n,features:us.RenderStrategy|us.Static,visible:u.value,name:`MenuItems`})}}}),Voe=N({name:`MenuItem`,inheritAttrs:!1,props:{as:{type:[Object,String],default:`template`},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(e,{slots:t,attrs:n,expose:r}){let i=e.id??`headlessui-menu-item-${Ao()}`,a=dc(`MenuItem`),o=A(null);r({el:o,$el:o});let s=U(()=>a.activeItemIndex.value===null?!1:a.items.value[a.activeItemIndex.value].id===i),c=Soe(o),l=U(()=>({disabled:e.disabled,get textValue(){return c()},domRef:o}));Hi(()=>a.registerItem(i,l)),Gi(()=>a.unregisterItem(i)),pr(()=>{a.menuState.value===0&&s.value&&a.activationTrigger.value!==0&&ar(()=>{var e;return((e=G(o))?.scrollIntoView)?.call(e,{block:`nearest`})})});function u(t){if(e.disabled)return t.preventDefault();a.closeMenu(),Jie(G(a.buttonRef))}function d(){if(e.disabled)return a.goToItem(Es.Nothing);a.goToItem(Es.Specific,i)}let f=ns();function p(e){f.update(e)}function m(t){f.wasMoved(t)&&(e.disabled||s.value||a.goToItem(Es.Specific,i,0))}function h(t){f.wasMoved(t)&&(e.disabled||s.value&&a.goToItem(Es.Nothing))}return()=>{let{disabled:r,...c}=e,l={active:s.value,disabled:r,close:a.closeMenu};return os({ourProps:{id:i,ref:o,role:`menuitem`,tabIndex:r===!0?void 0:-1,"aria-disabled":r===!0?!0:void 0,onClick:u,onFocus:d,onPointerenter:p,onMouseenter:p,onPointermove:m,onMousemove:m,onPointerleave:h,onMouseleave:h},theirProps:{...n,...c},slot:l,attrs:n,slots:t,name:`MenuItem`})}}})}));function pc(e){let t=fr(mc,null);if(t===null){let t=Error(`<${e} /> is missing a parent <${_c.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,pc),t}return t}function Uoe(){return fr(hc,null)}function Woe(){return fr(gc,null)}var Goe,mc,hc,gc,_c,vc,yc,Koe=s((()=>{W(),uoe(),Ps(),jo(),$o(),ts(),Qae(),Eae(),hs(),bs(),Ss(),Mo(),Yo(),Po(),zo(),fs(),Goe=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Goe||{}),mc=Symbol(`PopoverContext`),hc=Symbol(`PopoverGroupContext`),gc=Symbol(`PopoverPanelContext`),_c=N({name:`Popover`,inheritAttrs:!1,props:{as:{type:[Object,String],default:`div`}},setup(e,{slots:t,attrs:n,expose:r}){let i=A(null);r({el:i,$el:i});let a=A(1),o=A(null),s=A(null),c=A(null),l=A(null),u=U(()=>Ro(i)),d=U(()=>{var e,t;if(!G(o)||!G(l))return!1;for(let e of document.querySelectorAll(`body > *`))if(Number(e?.contains(G(o)))^Number(e?.contains(G(l))))return!0;let n=Bo(),r=n.indexOf(G(o)),i=(r+n.length-1)%n.length,a=(r+1)%n.length,s=n[i],c=n[a];return!((e=G(l))!=null&&e.contains(s))&&!((t=G(l))!=null&&t.contains(c))}),f={popoverState:a,buttonId:A(null),panelId:A(null),panel:l,button:o,isPortalled:d,beforePanelSentinel:s,afterPanelSentinel:c,togglePopover(){a.value=No(a.value,{0:1,1:0})},closePopover(){a.value!==1&&(a.value=1)},close(e){f.closePopover(),(e?e instanceof HTMLElement?e:e.value instanceof HTMLElement?G(e):G(f.button):G(f.button))?.focus()}};dr(mc,f),_s(U(()=>No(a.value,{0:ys.Open,1:ys.Closed})));let p={buttonId:f.buttonId,panelId:f.panelId,close(){f.closePopover()}},m=Uoe(),h=m?.registerPopover,[g,_]=coe(),v=Xae({mainTreeNodeRef:m?.mainTreeNodeRef,portals:g,defaultContainers:[o,l]});function y(){return m?.isFocusWithinPopoverGroup()??(u.value?.activeElement&&(G(o)?.contains(u.value.activeElement)||G(l)?.contains(u.value.activeElement)))}return pr(()=>h?.(p)),Ns(u.value?.defaultView,`focus`,e=>{var t,n;e.target!==window&&e.target instanceof HTMLElement&&a.value===0&&(y()||o&&l&&(v.contains(e.target)||(t=G(f.beforePanelSentinel))!=null&&t.contains(e.target)||(n=G(f.afterPanelSentinel))!=null&&n.contains(e.target)||f.closePopover()))},!0),Qo(v.resolveContainers,(e,t)=>{var n;f.closePopover(),Vo(t,Jo.Loose)||(e.preventDefault(),(n=G(o))==null||n.focus())},U(()=>a.value===0)),()=>{let r={open:a.value===0,close:f.close};return ci(V,[ci(_,{},()=>os({theirProps:{...e,...n},ourProps:{ref:i},slot:r,slots:t,attrs:n,name:`Popover`})),ci(v.MainTreeNode)])}}}),vc=N({name:`PopoverButton`,props:{as:{type:[Object,String],default:`button`},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},inheritAttrs:!1,setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-popover-button-${Ao()}`,a=pc(`PopoverButton`),o=U(()=>Ro(a.button));r({el:a.button,$el:a.button}),Hi(()=>{a.buttonId.value=i}),Gi(()=>{a.buttonId.value=null});let s=Uoe()?.closeOthers,c=Woe(),l=U(()=>c===null?!1:c.value===a.panelId.value),u=A(null),d=`headlessui-focus-sentinel-${Ao()}`;l.value||pr(()=>{a.button.value=G(u)});let f=es(U(()=>({as:e.as,type:t.type})),u);function p(e){var t,n,r,i,c;if(l.value){if(a.popoverState.value===1)return;switch(e.key){case xs.Space:case xs.Enter:e.preventDefault(),(n=(t=e.target).click)==null||n.call(t),a.closePopover(),(r=G(a.button))==null||r.focus();break}}else switch(e.key){case xs.Space:case xs.Enter:e.preventDefault(),e.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover();break;case xs.Escape:if(a.popoverState.value!==0)return s?.(a.buttonId.value);if(!G(a.button)||(i=o.value)!=null&&i.activeElement&&!((c=G(a.button))!=null&&c.contains(o.value.activeElement)))return;e.preventDefault(),e.stopPropagation(),a.closePopover();break}}function m(e){l.value||e.key===xs.Space&&e.preventDefault()}function h(t){var n,r;e.disabled||(l.value?(a.closePopover(),(n=G(a.button))==null||n.focus()):(t.preventDefault(),t.stopPropagation(),a.popoverState.value===1&&s?.(a.buttonId.value),a.togglePopover(),(r=G(a.button))==null||r.focus()))}function g(e){e.preventDefault(),e.stopPropagation()}let _=Fs();function v(){let e=G(a.panel);if(!e)return;function t(){No(_.value,{[Is.Forwards]:()=>Wo(e,Ko.First),[Is.Backwards]:()=>Wo(e,Ko.Last)})===qo.Error&&Wo(Bo().filter(e=>e.dataset.headlessuiFocusGuard!==`true`),No(_.value,{[Is.Forwards]:Ko.Next,[Is.Backwards]:Ko.Previous}),{relativeTo:G(a.button)})}t()}return()=>{let r=a.popoverState.value===0,o={open:r},{...s}=e;return ci(V,[os({ourProps:l.value?{ref:u,type:f.value,onKeydown:p,onClick:h}:{ref:u,id:i,type:f.value,"aria-expanded":a.popoverState.value===0,"aria-controls":G(a.panel)?a.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:p,onKeyup:m,onClick:h,onMousedown:g},theirProps:{...t,...s},slot:o,attrs:t,slots:n,name:`PopoverButton`}),r&&!l.value&&a.isPortalled.value&&ci(ms,{id:d,features:ps.Focusable,"data-headlessui-focus-guard":!0,as:`button`,type:`button`,onFocus:v})])}}}),N({name:`PopoverOverlay`,props:{as:{type:[Object,String],default:`div`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0}},setup(e,{attrs:t,slots:n}){let r=pc(`PopoverOverlay`),i=`headlessui-popover-overlay-${Ao()}`,a=gs(),o=U(()=>a===null?r.popoverState.value===0:(a.value&ys.Open)===ys.Open);function s(){r.closePopover()}return()=>{let a={open:r.popoverState.value===0};return os({ourProps:{id:i,"aria-hidden":!0,onClick:s},theirProps:e,slot:a,attrs:t,slots:n,features:us.RenderStrategy|us.Static,visible:o.value,name:`PopoverOverlay`})}}}),yc=N({name:`PopoverPanel`,props:{as:{type:[Object,String],default:`div`},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:null}},inheritAttrs:!1,setup(e,{attrs:t,slots:n,expose:r}){let i=e.id??`headlessui-popover-panel-${Ao()}`,{focus:a}=e,o=pc(`PopoverPanel`),s=U(()=>Ro(o.panel)),c=`headlessui-focus-sentinel-before-${Ao()}`,l=`headlessui-focus-sentinel-after-${Ao()}`;r({el:o.panel,$el:o.panel}),Hi(()=>{o.panelId.value=i}),Gi(()=>{o.panelId.value=null}),dr(gc,o.panelId),pr(()=>{var e;if(!a||o.popoverState.value!==0||!o.panel)return;let t=s.value?.activeElement;(e=G(o.panel))!=null&&e.contains(t)||Wo(G(o.panel),Ko.First)});let u=gs(),d=U(()=>u===null?o.popoverState.value===0:(u.value&ys.Open)===ys.Open);function f(e){var t,n;switch(e.key){case xs.Escape:if(o.popoverState.value!==0||!G(o.panel)||s.value&&!((t=G(o.panel))!=null&&t.contains(s.value.activeElement)))return;e.preventDefault(),e.stopPropagation(),o.closePopover(),(n=G(o.button))==null||n.focus();break}}function p(e){var t,n,r,i,a;let s=e.relatedTarget;s&&G(o.panel)&&((t=G(o.panel))!=null&&t.contains(s)||(o.closePopover(),((r=(n=G(o.beforePanelSentinel))?.contains)!=null&&r.call(n,s)||(a=(i=G(o.afterPanelSentinel))?.contains)!=null&&a.call(i,s))&&s.focus({preventScroll:!0})))}let m=Fs();function h(){let e=G(o.panel);if(!e)return;function t(){No(m.value,{[Is.Forwards]:()=>{var t;Wo(e,Ko.First)===qo.Error&&((t=G(o.afterPanelSentinel))==null||t.focus())},[Is.Backwards]:()=>{var e;(e=G(o.button))==null||e.focus({preventScroll:!0})}})}t()}function g(){let e=G(o.panel);if(!e)return;function t(){No(m.value,{[Is.Forwards]:()=>{let e=G(o.button),t=G(o.panel);if(!e)return;let n=Bo(),r=n.indexOf(e),i=n.slice(0,r+1),a=[...n.slice(r+1),...i];for(let e of a.slice())if(e.dataset.headlessuiFocusGuard===`true`||t!=null&&t.contains(e)){let t=a.indexOf(e);t!==-1&&a.splice(t,1)}Wo(a,Ko.First,{sorted:!1})},[Is.Backwards]:()=>{var t;Wo(e,Ko.Previous)===qo.Error&&((t=G(o.button))==null||t.focus())}})}t()}return()=>{let r={open:o.popoverState.value===0,close:o.close},{focus:s,...u}=e;return os({ourProps:{ref:o.panel,id:i,onKeydown:f,onFocusout:a&&o.popoverState.value===0?p:void 0,tabIndex:-1},theirProps:{...t,...u},attrs:t,slot:r,slots:{...n,default:(...e)=>[ci(V,[d.value&&o.isPortalled.value&&ci(ms,{id:c,ref:o.beforePanelSentinel,features:ps.Focusable,"data-headlessui-focus-guard":!0,as:`button`,type:`button`,onFocus:h}),n.default?.call(n,...e),d.value&&o.isPortalled.value&&ci(ms,{id:l,ref:o.afterPanelSentinel,features:ps.Focusable,"data-headlessui-focus-guard":!0,as:`button`,type:`button`,onFocus:g})])]},features:us.RenderStrategy|us.Static,visible:d.value,name:`PopoverPanel`})}}}),N({name:`PopoverGroup`,inheritAttrs:!1,props:{as:{type:[Object,String],default:`div`}},setup(e,{attrs:t,slots:n,expose:r}){let i=A(null),a=Sn([]),o=U(()=>Ro(i)),s=Zae();r({el:i,$el:i});function c(e){let t=a.value.indexOf(e);t!==-1&&a.value.splice(t,1)}function l(e){return a.value.push(e),()=>{c(e)}}function u(){var e;let t=o.value;if(!t)return!1;let n=t.activeElement;return(e=G(i))!=null&&e.contains(n)?!0:a.value.some(e=>t.getElementById(e.buttonId.value)?.contains(n)||t.getElementById(e.panelId.value)?.contains(n))}function d(e){for(let t of a.value)t.buttonId.value!==e&&t.close()}return dr(hc,{registerPopover:l,unregisterPopover:c,isFocusWithinPopoverGroup:u,closeOthers:d,mainTreeNodeRef:s.mainTreeNodeRef}),()=>ci(V,[os({ourProps:{ref:i},theirProps:{...e,...t},slot:{},attrs:t,slots:n,name:`PopoverGroup`}),ci(s.MainTreeNode)])}})}));function qoe(){let e=fr(xc,null);if(e===null){let e=Error(`You used a